Title: [285358] trunk/Source/WebCore
- Revision
- 285358
- Author
- [email protected]
- Date
- 2021-11-05 16:55:38 -0700 (Fri, 05 Nov 2021)
Log Message
[GLIB] Be more careful about calling LowPowerModeNotifier's callback
https://bugs.webkit.org/show_bug.cgi?id=232767
Reviewed by Michael Catanzaro.
This callback is expected to only be called when the value changes
otherwise it will hit asserts elsewhere such as in NetworkCache.
* platform/LowPowerModeNotifier.h:
* platform/glib/LowPowerModeNotifierGLib.cpp:
(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::isLowPowerModeEnabled const):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (285357 => 285358)
--- trunk/Source/WebCore/ChangeLog 2021-11-05 23:06:50 UTC (rev 285357)
+++ trunk/Source/WebCore/ChangeLog 2021-11-05 23:55:38 UTC (rev 285358)
@@ -1,3 +1,18 @@
+2021-11-05 Patrick Griffis <[email protected]>
+
+ [GLIB] Be more careful about calling LowPowerModeNotifier's callback
+ https://bugs.webkit.org/show_bug.cgi?id=232767
+
+ Reviewed by Michael Catanzaro.
+
+ This callback is expected to only be called when the value changes
+ otherwise it will hit asserts elsewhere such as in NetworkCache.
+
+ * platform/LowPowerModeNotifier.h:
+ * platform/glib/LowPowerModeNotifierGLib.cpp:
+ (WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
+ (WebCore::LowPowerModeNotifier::isLowPowerModeEnabled const):
+
2021-11-05 Nikolaos Mouchtaris <[email protected]>
Make scroll bar mode an enum class
Modified: trunk/Source/WebCore/platform/LowPowerModeNotifier.h (285357 => 285358)
--- trunk/Source/WebCore/platform/LowPowerModeNotifier.h 2021-11-05 23:06:50 UTC (rev 285357)
+++ trunk/Source/WebCore/platform/LowPowerModeNotifier.h 2021-11-05 23:55:38 UTC (rev 285358)
@@ -60,6 +60,7 @@
LowPowerModeChangeCallback m_callback;
GRefPtr<GPowerProfileMonitor> m_powerProfileMonitor;
#endif
+ bool m_lowPowerModeEnabled { false };
#endif
};
Modified: trunk/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp (285357 => 285358)
--- trunk/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp 2021-11-05 23:06:50 UTC (rev 285357)
+++ trunk/Source/WebCore/platform/glib/LowPowerModeNotifierGLib.cpp 2021-11-05 23:55:38 UTC (rev 285358)
@@ -31,11 +31,16 @@
#if GLIB_CHECK_VERSION(2, 69, 1)
: m_callback(WTFMove(callback))
, m_powerProfileMonitor(adoptGRef(g_power_profile_monitor_dup_default()))
+ , m_lowPowerModeEnabled(g_power_profile_monitor_get_power_saver_enabled(m_powerProfileMonitor.get()))
#endif
{
#if GLIB_CHECK_VERSION(2, 69, 1)
- g_signal_connect_swapped(m_powerProfileMonitor.get(), "notify::power-saver-enabled", G_CALLBACK(+[] (LowPowerModeNotifier* self, GParamSpec*, GPowerProfileMonitor*) {
- self->m_callback(self->isLowPowerModeEnabled());
+ g_signal_connect_swapped(m_powerProfileMonitor.get(), "notify::power-saver-enabled", G_CALLBACK(+[] (LowPowerModeNotifier* self, GParamSpec*, GPowerProfileMonitor* monitor) {
+ bool powerSaverEnabled = g_power_profile_monitor_get_power_saver_enabled(monitor);
+ if (self->m_lowPowerModeEnabled != powerSaverEnabled) {
+ self->m_lowPowerModeEnabled = powerSaverEnabled;
+ self->m_callback(self->m_lowPowerModeEnabled);
+ }
}), this);
#endif
}
@@ -49,11 +54,7 @@
bool LowPowerModeNotifier::isLowPowerModeEnabled() const
{
-#if GLIB_CHECK_VERSION(2, 69, 1)
- return g_power_profile_monitor_get_power_saver_enabled(m_powerProfileMonitor.get());
-#else
- return false;
-#endif
+ return m_lowPowerModeEnabled;
}
} // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes