Title: [282553] releases/WebKitGTK/webkit-2.32/Source/WebCore
Revision
282553
Author
ape...@igalia.com
Date
2021-09-16 04:42:34 -0700 (Thu, 16 Sep 2021)

Log Message

Merge r280099 - 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: releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog (282552 => 282553)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog	2021-09-16 11:42:27 UTC (rev 282552)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog	2021-09-16 11:42:34 UTC (rev 282553)
@@ -1,3 +1,17 @@
+2021-07-20  Fujii Hironori  <hironori.fu...@sony.com>
+
+        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  Said Abou-Hallawa  <s...@apple.com>
 
         Make SVGPropertyAnimator::computeCSSPropertyValue() take a reference to SVGElement

Modified: releases/WebKitGTK/webkit-2.32/Source/WebCore/page/ActivityStateChangeObserver.h (282552 => 282553)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/page/ActivityStateChangeObserver.h	2021-09-16 11:42:27 UTC (rev 282552)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/page/ActivityStateChangeObserver.h	2021-09-16 11:42:34 UTC (rev 282553)
@@ -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: releases/WebKitGTK/webkit-2.32/Source/WebCore/page/Page.cpp (282552 => 282553)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/page/Page.cpp	2021-09-16 11:42:27 UTC (rev 282552)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/page/Page.cpp	2021-09-16 11:42:34 UTC (rev 282553)
@@ -1404,12 +1404,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()
@@ -2255,8 +2255,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: releases/WebKitGTK/webkit-2.32/Source/WebCore/page/Page.h (282552 => 282553)


--- releases/WebKitGTK/webkit-2.32/Source/WebCore/page/Page.h	2021-09-16 11:42:27 UTC (rev 282552)
+++ releases/WebKitGTK/webkit-2.32/Source/WebCore/page/Page.h	2021-09-16 11:42:34 UTC (rev 282553)
@@ -54,6 +54,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>
 
@@ -1056,7 +1057,7 @@
     Ref<UserContentProvider> m_userContentProvider;
     Ref<VisitedLinkStore> m_visitedLinkStore;
     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
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to