Title: [242210] trunk/Source/WebCore
- Revision
- 242210
- Author
- [email protected]
- Date
- 2019-02-28 11:19:51 -0800 (Thu, 28 Feb 2019)
Log Message
[ContentChangeObserver] Move timer removal code from DOMWindow::clearTimeout to DOMTimer::removeById
https://bugs.webkit.org/show_bug.cgi?id=195143
<rdar://problem/48462351>
Reviewed by Simon Fraser.
Currently DOMWindow::clearTimeout() is the only callsite that we are interested in, but this is more future-proof.
* page/DOMTimer.cpp:
(WebCore::DOMTimer::removeById):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clearTimeout):
* page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::startObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::didRemoveDOMTimer):
(WebCore::ContentChangeObserver::removeDOMTimer): Deleted.
* page/ios/ContentChangeObserver.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (242209 => 242210)
--- trunk/Source/WebCore/ChangeLog 2019-02-28 19:09:32 UTC (rev 242209)
+++ trunk/Source/WebCore/ChangeLog 2019-02-28 19:19:51 UTC (rev 242210)
@@ -1,3 +1,24 @@
+2019-02-28 Zalan Bujtas <[email protected]>
+
+ [ContentChangeObserver] Move timer removal code from DOMWindow::clearTimeout to DOMTimer::removeById
+ https://bugs.webkit.org/show_bug.cgi?id=195143
+ <rdar://problem/48462351>
+
+ Reviewed by Simon Fraser.
+
+ Currently DOMWindow::clearTimeout() is the only callsite that we are interested in, but this is more future-proof.
+
+ * page/DOMTimer.cpp:
+ (WebCore::DOMTimer::removeById):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::clearTimeout):
+ * page/ios/ContentChangeObserver.cpp:
+ (WebCore::ContentChangeObserver::startObservingDOMTimerExecute):
+ (WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
+ (WebCore::ContentChangeObserver::didRemoveDOMTimer):
+ (WebCore::ContentChangeObserver::removeDOMTimer): Deleted.
+ * page/ios/ContentChangeObserver.h:
+
2019-02-28 Charles Vazac <[email protected]>
Fix Resource Timing buffer edge cases for WPT
Modified: trunk/Source/WebCore/page/DOMTimer.cpp (242209 => 242210)
--- trunk/Source/WebCore/page/DOMTimer.cpp 2019-02-28 19:09:32 UTC (rev 242209)
+++ trunk/Source/WebCore/page/DOMTimer.cpp 2019-02-28 19:19:51 UTC (rev 242210)
@@ -236,6 +236,14 @@
if (timeoutId <= 0)
return;
+#if PLATFORM(IOS_FAMILY)
+ if (is<Document>(context) && downcast<Document>(context).page()) {
+ auto& document = downcast<Document>(context);
+ if (auto* timer = document.findTimeout(timeoutId))
+ document.page()->contentChangeObserver().didRemoveDOMTimer(*timer);
+ }
+#endif
+
if (NestedTimersMap* nestedTimers = NestedTimersMap::instanceForContext(context))
nestedTimers->remove(timeoutId);
Modified: trunk/Source/WebCore/page/DOMWindow.cpp (242209 => 242210)
--- trunk/Source/WebCore/page/DOMWindow.cpp 2019-02-28 19:09:32 UTC (rev 242209)
+++ trunk/Source/WebCore/page/DOMWindow.cpp 2019-02-28 19:19:51 UTC (rev 242210)
@@ -140,10 +140,6 @@
#include "PointerLockController.h"
#endif
-#if PLATFORM(IOS_FAMILY)
-#include "ContentChangeObserver.h"
-#endif
-
namespace WebCore {
using namespace Inspector;
@@ -1683,18 +1679,6 @@
void DOMWindow::clearTimeout(int timeoutId)
{
-#if PLATFORM(IOS_FAMILY)
- auto handleObservedTimerCancelIfNeeded = [&] {
- if (!frame() || !frame()->document() || !frame()->document()->page())
- return;
- if (timeoutId <= 0)
- return;
- auto& document = *frame()->document();
- if (auto* timer = document.findTimeout(timeoutId))
- document.page()->contentChangeObserver().removeDOMTimer(*timer);
- };
- handleObservedTimerCancelIfNeeded();
-#endif
ScriptExecutionContext* context = scriptExecutionContext();
if (!context)
return;
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp (242209 => 242210)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp 2019-02-28 19:09:32 UTC (rev 242209)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp 2019-02-28 19:19:51 UTC (rev 242210)
@@ -117,7 +117,7 @@
m_page.chrome().client().observedContentChange(m_page.mainFrame());
}
-void ContentChangeObserver::removeDOMTimer(const DOMTimer& timer)
+void ContentChangeObserver::didRemoveDOMTimer(const DOMTimer& timer)
{
if (!containsObservedDOMTimer(timer))
return;
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.h (242209 => 242210)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-02-28 19:09:32 UTC (rev 242209)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-02-28 19:19:51 UTC (rev 242210)
@@ -39,7 +39,7 @@
ContentChangeObserver(Page&);
void didInstallDOMTimer(const DOMTimer&, Seconds timeout, bool singleShot);
- void removeDOMTimer(const DOMTimer&);
+ void didRemoveDOMTimer(const DOMTimer&);
void startObservingDOMTimerExecute(const DOMTimer&);
void stopObservingDOMTimerExecute(const DOMTimer&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes