Title: [242060] trunk/Source/WebCore
- Revision
- 242060
- Author
- [email protected]
- Date
- 2019-02-25 16:20:55 -0800 (Mon, 25 Feb 2019)
Log Message
[ContentChangeObserver] Move observing logic from DOMWindow::clearTimeout to ContentChangeObserver
https://bugs.webkit.org/show_bug.cgi?id=194988
<rdar://problem/48343040>
Reviewed by Tim Horton.
ContentChangeObserver::removeDOMTimer takes care of the canceled timer removal.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clearTimeout):
* page/ios/ContentChangeObserver.h:
* page/ios/ContentChangeObserver.mm:
(WebCore::ContentChangeObserver::startObservingDOMTimer):
(WebCore::ContentChangeObserver::stopObservingDOMTimer):
(WebCore::ContentChangeObserver::removeDOMTimer):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (242059 => 242060)
--- trunk/Source/WebCore/ChangeLog 2019-02-26 00:19:49 UTC (rev 242059)
+++ trunk/Source/WebCore/ChangeLog 2019-02-26 00:20:55 UTC (rev 242060)
@@ -1,5 +1,23 @@
2019-02-25 Zalan Bujtas <[email protected]>
+ [ContentChangeObserver] Move observing logic from DOMWindow::clearTimeout to ContentChangeObserver
+ https://bugs.webkit.org/show_bug.cgi?id=194988
+ <rdar://problem/48343040>
+
+ Reviewed by Tim Horton.
+
+ ContentChangeObserver::removeDOMTimer takes care of the canceled timer removal.
+
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::clearTimeout):
+ * page/ios/ContentChangeObserver.h:
+ * page/ios/ContentChangeObserver.mm:
+ (WebCore::ContentChangeObserver::startObservingDOMTimer):
+ (WebCore::ContentChangeObserver::stopObservingDOMTimer):
+ (WebCore::ContentChangeObserver::removeDOMTimer):
+
+2019-02-25 Zalan Bujtas <[email protected]>
+
[ContentChangeObserver] Move observing logic from DOMTimer to ContentChangeObserver
https://bugs.webkit.org/show_bug.cgi?id=194987
<rdar://problem/48342910>
Modified: trunk/Source/WebCore/page/DOMWindow.cpp (242059 => 242060)
--- trunk/Source/WebCore/page/DOMWindow.cpp 2019-02-26 00:19:49 UTC (rev 242059)
+++ trunk/Source/WebCore/page/DOMWindow.cpp 2019-02-26 00:20:55 UTC (rev 242060)
@@ -1688,18 +1688,8 @@
if (timeoutId <= 0)
return;
auto& document = *frame()->document();
- auto* timer = document.findTimeout(timeoutId);
- if (!timer)
- return;
- auto& page = *document.page();
- auto& contentChangeObserver = page.contentChangeObserver();
- if (!contentChangeObserver.containsObservedDOMTimer(*timer))
- return;
- LOG_WITH_STREAM(ContentObservation, stream << "DOMWindow::clearTimeout: remove registered timer (" << timer << ")");
- contentChangeObserver.removeObservedDOMTimer(*timer);
- if (contentChangeObserver.countOfObservedDOMTimers())
- return;
- page.chrome().client().observedContentChange(*frame());
+ if (auto* timer = document.findTimeout(timeoutId))
+ document.page()->contentChangeObserver().removeDOMTimer(*timer);
};
handleObservedTimerCancelIfNeeded();
#endif
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.h (242059 => 242060)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-02-26 00:19:49 UTC (rev 242059)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-02-26 00:20:55 UTC (rev 242060)
@@ -39,6 +39,7 @@
ContentChangeObserver(Page&);
void registerDOMTimerForContentObservationIfNeeded(const DOMTimer&, Seconds timeout, bool singleShot);
+ void removeDOMTimer(const DOMTimer&);
void startObservingDOMTimerExecute(const DOMTimer&);
void stopObservingDOMTimerExecute(const DOMTimer&);
@@ -57,8 +58,6 @@
void setObservedContentChange(WKContentChange);
WEBCORE_EXPORT WKContentChange observedContentChange();
- void removeObservedDOMTimer(const DOMTimer&);
- bool containsObservedDOMTimer(const DOMTimer&);
WEBCORE_EXPORT unsigned countOfObservedDOMTimers();
WEBCORE_EXPORT void clearObservedDOMTimers();
@@ -65,6 +64,8 @@
private:
void addObservedDOMTimer(const DOMTimer&);
bool isObservingDOMTimerScheduling();
+ void removeObservedDOMTimer(const DOMTimer&);
+ bool containsObservedDOMTimer(const DOMTimer&);
void startObservingStyleRecalcScheduling();
void stopObservingStyleRecalcScheduling();
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.mm (242059 => 242060)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.mm 2019-02-26 00:19:49 UTC (rev 242059)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.mm 2019-02-26 00:20:55 UTC (rev 242060)
@@ -86,6 +86,17 @@
}
}
+void ContentChangeObserver::removeDOMTimer(const DOMTimer& timer)
+{
+ if (!containsObservedDOMTimer(timer))
+ return;
+ removeObservedDOMTimer(timer);
+ LOG_WITH_STREAM(ContentObservation, stream << "removeDOMTimer: remove registered timer (" << &timer << ")");
+ if (countOfObservedDOMTimers())
+ return;
+ m_page.chrome().client().observedContentChange(m_page.mainFrame());
+}
+
void ContentChangeObserver::startObservingContentChanges()
{
WKStartObservingContentChanges();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes