Title: [242108] trunk/Source
Revision
242108
Author
[email protected]
Date
2019-02-26 14:31:07 -0800 (Tue, 26 Feb 2019)

Log Message

[ContentChangeObserver] clearContentChangeObservers should be internal to ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=195066
<rdar://problem/48411682>

Reviewed by Tim Horton.

Source/WebCore:

Now all the empty clearContentChangeObservers() implementations can be removed.

* dom/Document.cpp:
(WebCore::Document::platformSuspendOrStopActiveDOMObjects):
* loader/EmptyClients.h:
* page/ChromeClient.h:
* page/Frame.cpp:
(WebCore::Frame::willDetachPage):
* page/ios/ContentChangeObserver.h:
* page/ios/ContentChangeObserver.mm:
(WebCore::ContentChangeObserver::clearTimersAndReportContentChange):
(WebCore::ContentChangeObserver::didSuspendActiveDOMObjects): Might need to merge them.
(WebCore::ContentChangeObserver::willDetachPage):

Source/WebKit:

* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::clearContentChangeObservers): Deleted.

Source/WebKitLegacy/ios:

* WebCoreSupport/WebChromeClientIOS.h:
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::clearContentChangeObservers): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (242107 => 242108)


--- trunk/Source/WebCore/ChangeLog	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebCore/ChangeLog	2019-02-26 22:31:07 UTC (rev 242108)
@@ -1,5 +1,27 @@
 2019-02-26  Zalan Bujtas  <[email protected]>
 
+        [ContentChangeObserver] clearContentChangeObservers should be internal to ContentChangeObserver class
+        https://bugs.webkit.org/show_bug.cgi?id=195066
+        <rdar://problem/48411682>
+
+        Reviewed by Tim Horton.
+
+        Now all the empty clearContentChangeObservers() implementations can be removed.
+
+        * dom/Document.cpp:
+        (WebCore::Document::platformSuspendOrStopActiveDOMObjects):
+        * loader/EmptyClients.h:
+        * page/ChromeClient.h:
+        * page/Frame.cpp:
+        (WebCore::Frame::willDetachPage):
+        * page/ios/ContentChangeObserver.h:
+        * page/ios/ContentChangeObserver.mm:
+        (WebCore::ContentChangeObserver::clearTimersAndReportContentChange):
+        (WebCore::ContentChangeObserver::didSuspendActiveDOMObjects): Might need to merge them.
+        (WebCore::ContentChangeObserver::willDetachPage):
+
+2019-02-26  Zalan Bujtas  <[email protected]>
+
         [ContentChangeObserver] Move style recalc schedule observation logic to ContentChangeObserver
         https://bugs.webkit.org/show_bug.cgi?id=195062
         <rdar://problem/48409258>

Modified: trunk/Source/WebCore/dom/Document.cpp (242107 => 242108)


--- trunk/Source/WebCore/dom/Document.cpp	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebCore/dom/Document.cpp	2019-02-26 22:31:07 UTC (rev 242108)
@@ -2631,13 +2631,8 @@
 void Document::platformSuspendOrStopActiveDOMObjects()
 {
 #if PLATFORM(IOS_FAMILY)
-    if (!page() || !frame())
-        return;
-    auto& page = *this->page();
-    if (!page.contentChangeObserver().countOfObservedDOMTimers())
-        return;
-    LOG_WITH_STREAM(ContentObservation, stream << "Document::platformSuspendOrStopActiveDOMObjects: remove registered timers.");
-    page.chrome().client().clearContentChangeObservers(*frame());
+    if (auto* page = this->page())
+        page->contentChangeObserver().didSuspendActiveDOMObjects();
 #endif
 }
 

Modified: trunk/Source/WebCore/loader/EmptyClients.h (242107 => 242108)


--- trunk/Source/WebCore/loader/EmptyClients.h	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebCore/loader/EmptyClients.h	2019-02-26 22:31:07 UTC (rev 242108)
@@ -166,7 +166,6 @@
     void didReceiveMobileDocType(bool) final { }
     void setNeedsScrollNotifications(Frame&, bool) final { }
     void observedContentChange(Frame&) final { }
-    void clearContentChangeObservers(Frame&) final { }
     void notifyRevealedSelectionByScrollingFrame(Frame&) final { }
     void didLayout(LayoutType) final { }
     void didStartOverflowScroll() final { }

Modified: trunk/Source/WebCore/page/ChromeClient.h (242107 => 242108)


--- trunk/Source/WebCore/page/ChromeClient.h	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebCore/page/ChromeClient.h	2019-02-26 22:31:07 UTC (rev 242108)
@@ -242,7 +242,6 @@
     virtual void didReceiveMobileDocType(bool) = 0;
     virtual void setNeedsScrollNotifications(Frame&, bool) = 0;
     virtual void observedContentChange(Frame&) = 0;
-    virtual void clearContentChangeObservers(Frame&) = 0;
     virtual void notifyRevealedSelectionByScrollingFrame(Frame&) = 0;
 
     enum LayoutType { NormalLayout, Scroll };

Modified: trunk/Source/WebCore/page/Frame.cpp (242107 => 242108)


--- trunk/Source/WebCore/page/Frame.cpp	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebCore/page/Frame.cpp	2019-02-26 22:31:07 UTC (rev 242108)
@@ -838,10 +838,8 @@
         page()->scrollingCoordinator()->willDestroyScrollableArea(*m_view);
 
 #if PLATFORM(IOS_FAMILY)
-    if (page() && page()->contentChangeObserver().countOfObservedDOMTimers()) {
-        LOG(ContentObservation, "Frame::willDetachPage: remove registered timers.");
-        m_page->chrome().client().clearContentChangeObservers(*this);
-    }
+    if (auto* page = this->page())
+        page->contentChangeObserver().willDetachPage();
 #endif
 
     script().clearScriptObjects();

Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.h (242107 => 242108)


--- trunk/Source/WebCore/page/ios/ContentChangeObserver.h	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.h	2019-02-26 22:31:07 UTC (rev 242108)
@@ -47,14 +47,14 @@
     void startObservingStyleResolve();
     void stopObservingStyleResolve();
 
+    void didSuspendActiveDOMObjects();
+    void willDetachPage();
+
     WEBCORE_EXPORT void startObservingContentChanges();
     WEBCORE_EXPORT void stopObservingContentChanges();
 
     WEBCORE_EXPORT WKContentChange observedContentChange();
 
-    WEBCORE_EXPORT unsigned countOfObservedDOMTimers();
-    WEBCORE_EXPORT void clearObservedDOMTimers();
-
     class StyleChange {
     public:
         StyleChange(const Element&, ContentChangeObserver&);
@@ -88,6 +88,11 @@
 
     void setObservedContentChange(WKContentChange);
 
+    unsigned countOfObservedDOMTimers();
+    void clearObservedDOMTimers();
+
+    void clearTimersAndReportContentChange();
+
     Page& m_page;
 };
 

Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.mm (242107 => 242108)


--- trunk/Source/WebCore/page/ios/ContentChangeObserver.mm	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.mm	2019-02-26 22:31:07 UTC (rev 242108)
@@ -128,6 +128,25 @@
     m_page.chrome().client().observedContentChange(m_page.mainFrame());
 }
 
+void ContentChangeObserver::clearTimersAndReportContentChange()
+{
+    if (!countOfObservedDOMTimers())
+        return;
+    LOG(ContentObservation, "clearTimersAndReportContentChange: remove registered timers and report content change.");
+    clearObservedDOMTimers();
+    m_page.chrome().client().observedContentChange(m_page.mainFrame());
+}
+
+void ContentChangeObserver::didSuspendActiveDOMObjects()
+{
+    clearTimersAndReportContentChange();
+}
+
+void ContentChangeObserver::willDetachPage()
+{
+    clearTimersAndReportContentChange();
+}
+
 void ContentChangeObserver::startObservingContentChanges()
 {
     startObservingDOMTimerScheduling();

Modified: trunk/Source/WebKit/ChangeLog (242107 => 242108)


--- trunk/Source/WebKit/ChangeLog	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebKit/ChangeLog	2019-02-26 22:31:07 UTC (rev 242108)
@@ -1,3 +1,15 @@
+2019-02-26  Zalan Bujtas  <[email protected]>
+
+        [ContentChangeObserver] clearContentChangeObservers should be internal to ContentChangeObserver class
+        https://bugs.webkit.org/show_bug.cgi?id=195066
+        <rdar://problem/48411682>
+
+        Reviewed by Tim Horton.
+
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
+        (WebKit::WebChromeClient::clearContentChangeObservers): Deleted.
+
 2019-02-26  Per Arne Vollan  <[email protected]>
 
         [iOS] Sandbox should allow mach lookups related to media capturing

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h (242107 => 242108)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h	2019-02-26 22:31:07 UTC (rev 242108)
@@ -156,7 +156,6 @@
     void didReceiveMobileDocType(bool) final;
     void setNeedsScrollNotifications(WebCore::Frame&, bool) final;
     void observedContentChange(WebCore::Frame&) final;
-    void clearContentChangeObservers(WebCore::Frame&) final;
     void notifyRevealedSelectionByScrollingFrame(WebCore::Frame&) final;
     bool isStopping() final;
 

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm (242107 => 242108)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm	2019-02-26 22:31:07 UTC (rev 242108)
@@ -68,11 +68,6 @@
     m_page.completePendingSyntheticClickForContentChangeObserver();
 }
 
-void WebChromeClient::clearContentChangeObservers(WebCore::Frame&)
-{
-    notImplemented();
-}
-
 void WebChromeClient::notifyRevealedSelectionByScrollingFrame(WebCore::Frame&)
 {
     m_page.didChangeSelection();

Modified: trunk/Source/WebKitLegacy/ios/ChangeLog (242107 => 242108)


--- trunk/Source/WebKitLegacy/ios/ChangeLog	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebKitLegacy/ios/ChangeLog	2019-02-26 22:31:07 UTC (rev 242108)
@@ -1,3 +1,15 @@
+2019-02-26  Zalan Bujtas  <[email protected]>
+
+        [ContentChangeObserver] clearContentChangeObservers should be internal to ContentChangeObserver class
+        https://bugs.webkit.org/show_bug.cgi?id=195066
+        <rdar://problem/48411682>
+
+        Reviewed by Tim Horton.
+
+        * WebCoreSupport/WebChromeClientIOS.h:
+        * WebCoreSupport/WebChromeClientIOS.mm:
+        (WebChromeClientIOS::clearContentChangeObservers): Deleted.
+
 2019-02-24  Zalan Bujtas  <[email protected]>
 
         Introduce ContentChangeObserver class

Modified: trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebChromeClientIOS.h (242107 => 242108)


--- trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebChromeClientIOS.h	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebChromeClientIOS.h	2019-02-26 22:31:07 UTC (rev 242108)
@@ -56,7 +56,6 @@
     void didReceiveMobileDocType(bool) final;
     void setNeedsScrollNotifications(WebCore::Frame&, bool) final;
     void observedContentChange(WebCore::Frame&) final;
-    void clearContentChangeObservers(WebCore::Frame&) final;
     WebCore::FloatSize screenSize() const final;
     WebCore::FloatSize availableScreenSize() const final;
     WebCore::FloatSize overrideScreenSize() const final;

Modified: trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebChromeClientIOS.mm (242107 => 242108)


--- trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebChromeClientIOS.mm	2019-02-26 22:14:51 UTC (rev 242107)
+++ trunk/Source/WebKitLegacy/ios/WebCoreSupport/WebChromeClientIOS.mm	2019-02-26 22:31:07 UTC (rev 242108)
@@ -189,18 +189,6 @@
     [[webView() _UIKitDelegateForwarder] webView:webView() didObserveDeferredContentChange:frame.page()->contentChangeObserver().observedContentChange() forFrame:kit(&frame)];
 }
 
-void WebChromeClientIOS::clearContentChangeObservers(WebCore::Frame& frame)
-{
-    if (!frame.page())
-        return;
-    auto& contentChangeObserver = frame.page()->contentChangeObserver();
-    ASSERT(contentChangeObserver.countOfObservedDOMTimers());
-    if (!contentChangeObserver.countOfObservedDOMTimers())
-        return;
-    contentChangeObserver.clearObservedDOMTimers();
-    observedContentChange(frame);
-}
-
 static inline NSString *nameForViewportFitValue(ViewportFit value)
 {
     switch (value) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to