Title: [280099] trunk/Source/WebCore
Revision
280099
Author
[email protected]
Date
2021-07-20 12:54:46 -0700 (Tue, 20 Jul 2021)

Log Message

Use WeakHashSet for Page::m_activityStateChangeObservers
https://bugs.webkit.org/show_bug.cgi?id=228065

Reviewed by Chris Dumez.

* page/ActivityStateChangeObserver.h: Inherit CanMakeWeakPtr.
* page/Page.cpp:
(WebCore::Page::addActivityStateChangeObserver):
(WebCore::Page::removeActivityStateChangeObserver):
(WebCore::Page::setActivityState):
* page/Page.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (280098 => 280099)


--- trunk/Source/WebCore/ChangeLog	2021-07-20 19:44:18 UTC (rev 280098)
+++ trunk/Source/WebCore/ChangeLog	2021-07-20 19:54:46 UTC (rev 280099)
@@ -1,3 +1,17 @@
+2021-07-20  Fujii Hironori  <[email protected]>
+
+        Use WeakHashSet for Page::m_activityStateChangeObservers
+        https://bugs.webkit.org/show_bug.cgi?id=228065
+
+        Reviewed by Chris Dumez.
+
+        * page/ActivityStateChangeObserver.h: Inherit CanMakeWeakPtr.
+        * page/Page.cpp:
+        (WebCore::Page::addActivityStateChangeObserver):
+        (WebCore::Page::removeActivityStateChangeObserver):
+        (WebCore::Page::setActivityState):
+        * page/Page.h:
+
 2021-07-20  Tim Horton  <[email protected]>
 
         REGRESSION (r278062): Misplaced text in Wikipedia search field

Modified: trunk/Source/WebCore/page/ActivityStateChangeObserver.h (280098 => 280099)


--- trunk/Source/WebCore/page/ActivityStateChangeObserver.h	2021-07-20 19:44:18 UTC (rev 280098)
+++ trunk/Source/WebCore/page/ActivityStateChangeObserver.h	2021-07-20 19:54:46 UTC (rev 280099)
@@ -26,10 +26,11 @@
 #pragma once
 
 #include "ActivityState.h"
+#include <wtf/WeakPtr.h>
 
 namespace WebCore {
 
-class ActivityStateChangeObserver {
+class ActivityStateChangeObserver : public CanMakeWeakPtr<ActivityStateChangeObserver> {
 public:
     virtual ~ActivityStateChangeObserver()
     {

Modified: trunk/Source/WebCore/page/Page.cpp (280098 => 280099)


--- trunk/Source/WebCore/page/Page.cpp	2021-07-20 19:44:18 UTC (rev 280098)
+++ trunk/Source/WebCore/page/Page.cpp	2021-07-20 19:54:46 UTC (rev 280099)
@@ -1449,12 +1449,12 @@
 
 void Page::addActivityStateChangeObserver(ActivityStateChangeObserver& observer)
 {
-    m_activityStateChangeObservers.add(&observer);
+    m_activityStateChangeObservers.add(observer);
 }
 
 void Page::removeActivityStateChangeObserver(ActivityStateChangeObserver& observer)
 {
-    m_activityStateChangeObservers.remove(&observer);
+    m_activityStateChangeObservers.remove(observer);
 }
 
 void Page::layoutIfNeeded()
@@ -2348,8 +2348,8 @@
     if (changed.containsAny({ActivityState::IsVisible, ActivityState::IsVisuallyIdle, ActivityState::IsAudible, ActivityState::IsLoading, ActivityState::IsCapturingMedia }))
         updateTimerThrottlingState();
 
-    for (auto* observer : m_activityStateChangeObservers)
-        observer->activityStateDidChange(oldActivityState, m_activityState);
+    for (auto& observer : m_activityStateChangeObservers)
+        observer.activityStateDidChange(oldActivityState, m_activityState);
 
     if (wasVisibleAndActive != isVisibleAndActive())
         PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary();

Modified: trunk/Source/WebCore/page/Page.h (280098 => 280099)


--- trunk/Source/WebCore/page/Page.h	2021-07-20 19:44:18 UTC (rev 280098)
+++ trunk/Source/WebCore/page/Page.h	2021-07-20 19:54:46 UTC (rev 280099)
@@ -55,6 +55,7 @@
 #include <wtf/Noncopyable.h>
 #include <wtf/Ref.h>
 #include <wtf/UniqueRef.h>
+#include <wtf/WeakHashSet.h>
 #include <wtf/WeakPtr.h>
 #include <wtf/text/WTFString.h>
 
@@ -1089,7 +1090,7 @@
     Ref<VisitedLinkStore> m_visitedLinkStore;
     Ref<BroadcastChannelRegistry> m_broadcastChannelRegistry;
     RefPtr<WheelEventTestMonitor> m_wheelEventTestMonitor;
-    HashSet<ActivityStateChangeObserver*> m_activityStateChangeObservers;
+    WeakHashSet<ActivityStateChangeObserver> m_activityStateChangeObservers;
 
 #if ENABLE(RESOURCE_USAGE)
     std::unique_ptr<ResourceUsageOverlay> m_resourceUsageOverlay;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to