Title: [243315] trunk/Source/WebCore
- Revision
- 243315
- Author
- [email protected]
- Date
- 2019-03-21 12:52:18 -0700 (Thu, 21 Mar 2019)
Log Message
[ContentChangeObserver] Cleanup reset state.
https://bugs.webkit.org/show_bug.cgi?id=196076
<rdar://problem/49107931>
Reviewed by Simon Fraser.
stopObservingPendingActivities() is a subset of reset() and call it when we've observed a visible change.
* page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::willNotProceedWithClick):
(WebCore::ContentChangeObserver::stopObservingPendingActivities):
(WebCore::ContentChangeObserver::reset):
(WebCore::ContentChangeObserver::didSuspendActiveDOMObjects):
(WebCore::ContentChangeObserver::willDetachPage):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::cancelPendingActivities): Deleted.
* page/ios/ContentChangeObserver.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (243314 => 243315)
--- trunk/Source/WebCore/ChangeLog 2019-03-21 19:21:11 UTC (rev 243314)
+++ trunk/Source/WebCore/ChangeLog 2019-03-21 19:52:18 UTC (rev 243315)
@@ -1,5 +1,25 @@
2019-03-21 Zalan Bujtas <[email protected]>
+ [ContentChangeObserver] Cleanup reset state.
+ https://bugs.webkit.org/show_bug.cgi?id=196076
+ <rdar://problem/49107931>
+
+ Reviewed by Simon Fraser.
+
+ stopObservingPendingActivities() is a subset of reset() and call it when we've observed a visible change.
+
+ * page/ios/ContentChangeObserver.cpp:
+ (WebCore::ContentChangeObserver::willNotProceedWithClick):
+ (WebCore::ContentChangeObserver::stopObservingPendingActivities):
+ (WebCore::ContentChangeObserver::reset):
+ (WebCore::ContentChangeObserver::didSuspendActiveDOMObjects):
+ (WebCore::ContentChangeObserver::willDetachPage):
+ (WebCore::ContentChangeObserver::adjustObservedState):
+ (WebCore::ContentChangeObserver::cancelPendingActivities): Deleted.
+ * page/ios/ContentChangeObserver.h:
+
+2019-03-21 Zalan Bujtas <[email protected]>
+
Unreviewed build fix.
* page/ios/ContentChangeObserver.h:
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp (243314 => 243315)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp 2019-03-21 19:21:11 UTC (rev 243314)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.cpp 2019-03-21 19:52:18 UTC (rev 243315)
@@ -198,7 +198,6 @@
{
LOG(ContentObservation, "willNotProceedWithClick: click will not happen.");
adjustObservedState(Event::WillNotProceedWithClick);
- // FIXME: Add support for preventDefault().
}
void ContentChangeObserver::domTimerExecuteDidStart(const DOMTimer& timer)
@@ -242,9 +241,26 @@
adjustObservedState(Event::EndedStyleRecalc);
}
-void ContentChangeObserver::cancelPendingActivities()
+void ContentChangeObserver::stopObservingPendingActivities()
{
+ setShouldObserveNextStyleRecalc(false);
+ setShouldObserveDOMTimerScheduling(false);
+ setShouldObserveTransitions(false);
clearObservedDOMTimers();
+ clearObservedTransitions();
+}
+
+void ContentChangeObserver::reset()
+{
+ stopObservingPendingActivities();
+ setHasNoChangeState();
+ setIsBetweenTouchEndAndMouseMoved(false);
+
+ m_touchEventIsBeingDispatched = false;
+ m_isInObservedStyleRecalc = false;
+ m_observedDomTimerIsBeingExecuted = false;
+ m_mouseMovedEventIsBeingDispatched = false;
+
m_contentObservationTimer.stop();
}
@@ -251,13 +267,13 @@
void ContentChangeObserver::didSuspendActiveDOMObjects()
{
LOG(ContentObservation, "didSuspendActiveDOMObjects");
- cancelPendingActivities();
+ reset();
}
void ContentChangeObserver::willDetachPage()
{
LOG(ContentObservation, "willDetachPage");
- cancelPendingActivities();
+ reset();
}
void ContentChangeObserver::contentVisibilityDidChange()
@@ -333,13 +349,14 @@
void ContentChangeObserver::adjustObservedState(Event event)
{
- auto reset = [&] {
+ auto resetToStartObserving = [&] {
setHasNoChangeState();
clearObservedDOMTimers();
clearObservedTransitions();
setIsBetweenTouchEndAndMouseMoved(false);
- ASSERT(!m_isObservingDOMTimerScheduling);
- ASSERT(!m_isWaitingForStyleRecalc);
+ setShouldObserveNextStyleRecalc(false);
+ setShouldObserveDOMTimerScheduling(false);
+ setShouldObserveTransitions(false);
ASSERT(!m_isInObservedStyleRecalc);
ASSERT(!m_observedDomTimerIsBeingExecuted);
};
@@ -370,7 +387,7 @@
switch (event) {
case Event::StartedTouchStartEventDispatching:
- reset();
+ resetToStartObserving();
setShouldObserveDOMTimerScheduling(true);
setShouldObserveTransitions(true);
break;
@@ -385,7 +402,7 @@
case Event::StartedMouseMovedEventDispatching:
ASSERT(!m_document.hasPendingStyleRecalc());
if (!isBetweenTouchEndAndMouseMoved())
- reset();
+ resetToStartObserving();
setIsBetweenTouchEndAndMouseMoved(false);
setShouldObserveDOMTimerScheduling(!hasVisibleChangeState());
setShouldObserveTransitions(!hasVisibleChangeState());
@@ -429,10 +446,8 @@
break;
case Event::ContentVisibilityChanged:
setHasVisibleChangeState();
- // Remove pending activities. We don't need to observe them anymore.
- setShouldObserveNextStyleRecalc(false);
- clearObservedDOMTimers();
- clearObservedTransitions();
+ // Stop pending activities. We don't need to observe them anymore.
+ stopObservingPendingActivities();
break;
}
}
Modified: trunk/Source/WebCore/page/ios/ContentChangeObserver.h (243314 => 243315)
--- trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-03-21 19:21:11 UTC (rev 243314)
+++ trunk/Source/WebCore/page/ios/ContentChangeObserver.h 2019-03-21 19:52:18 UTC (rev 243315)
@@ -139,7 +139,8 @@
bool isObservingContentChanges() const;
- void cancelPendingActivities();
+ void stopObservingPendingActivities();
+ void reset();
void setHasIndeterminateState();
void setHasVisibleChangeState();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes