Title: [86981] trunk
Revision
86981
Author
[email protected]
Date
2011-05-20 14:00:46 -0700 (Fri, 20 May 2011)

Log Message

2011-05-20  Simon Fraser  <[email protected]>

        Reviewed by Sam Weinig.

        numberOfActiveAnimations() can include animations from documents in the page cache
        https://bugs.webkit.org/show_bug.cgi?id=53641

        Some transition tests using layoutTestController.numberOfActiveAnimations() failed
        in WebKit2 because numberOfActiveAnimations() could include those from other documents
        in the page cache.

        Fix by passing in the document for which we wish to count animations.

        * WebCore.exp.in:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
        (WebCore::AnimationController::numberOfActiveAnimations):
        * page/animation/AnimationController.h:
        * page/animation/AnimationControllerPrivate.h:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (86980 => 86981)


--- trunk/LayoutTests/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/LayoutTests/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1,3 +1,14 @@
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+
+        Unskip tests that were broken because of bad numberOfActiveAnimations() behavior.
+        
+        * platform/mac-wk2/Skipped:
+
 2011-05-20  Dirk Schulze  <[email protected]>
 
         Unreviewed rebaseline of Qt. One of the two tests doesn't even need a platform specific result anymore.

Modified: trunk/LayoutTests/platform/mac-wk2/Skipped (86980 => 86981)


--- trunk/LayoutTests/platform/mac-wk2/Skipped	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/LayoutTests/platform/mac-wk2/Skipped	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1462,13 +1462,6 @@
 fast/parser/remove-misnested-iframe-in-beforeload.html
 fast/parser/remove-misnested-iframe-parent-in-beforeload.html
 
-# Transitions sometimes don't stop when they should in WebKit2
-# <rdar://problem/8883326>
-transitions/hang-with-bad-transition-list.html
-transitions/remove-transition-style.html
-transitions/repeated-firing-background-color.html
-transitions/zero-duration-with-non-zero-delay-end.html
-
 # CSSValue and CSSPrimitiveValue prototypes are wrong
 # <rdar://problem/8772988>
 fast/dom/global-constructors.html

Modified: trunk/Source/WebCore/ChangeLog (86980 => 86981)


--- trunk/Source/WebCore/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebCore/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1,3 +1,23 @@
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+        
+        Some transition tests using layoutTestController.numberOfActiveAnimations() failed
+        in WebKit2 because numberOfActiveAnimations() could include those from other documents
+        in the page cache.
+        
+        Fix by passing in the document for which we wish to count animations.
+
+        * WebCore.exp.in:
+        * page/animation/AnimationController.cpp:
+        (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
+        (WebCore::AnimationController::numberOfActiveAnimations):
+        * page/animation/AnimationController.h:
+        * page/animation/AnimationControllerPrivate.h:
+
 2011-05-20  Adam Barth  <[email protected]>
 
         Reviewed by Alexey Proskuryakov.

Modified: trunk/Source/WebCore/WebCore.exp.in (86980 => 86981)


--- trunk/Source/WebCore/WebCore.exp.in	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebCore/WebCore.exp.in	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1160,7 +1160,7 @@
 __ZNK7WebCore16VisibleSelection23isContentRichlyEditableEv
 __ZNK7WebCore16VisibleSelection5isAllENS_27EditingBoundaryCrossingRuleE
 __ZNK7WebCore17ResourceErrorBase8lazyInitEv
-__ZNK7WebCore19AnimationController24numberOfActiveAnimationsEv
+__ZNK7WebCore19AnimationController24numberOfActiveAnimationsEPNS_8DocumentE
 __ZNK7WebCore19HTMLTextAreaElement21lastChangeWasUserEditEv
 __ZNK7WebCore19ResourceRequestBase10httpMethodEv
 __ZNK7WebCore19ResourceRequestBase15httpHeaderFieldEPKc

Modified: trunk/Source/WebCore/page/animation/AnimationController.cpp (86980 => 86981)


--- trunk/Source/WebCore/page/animation/AnimationController.cpp	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebCore/page/animation/AnimationController.cpp	2011-05-20 21:00:46 UTC (rev 86981)
@@ -352,14 +352,16 @@
     return animatingStyle.release();
 }
 
-unsigned AnimationControllerPrivate::numberOfActiveAnimations() const
+unsigned AnimationControllerPrivate::numberOfActiveAnimations(Document* document) const
 {
     unsigned count = 0;
     
     RenderObjectAnimationMap::const_iterator animationsEnd = m_compositeAnimations.end();
     for (RenderObjectAnimationMap::const_iterator it = m_compositeAnimations.begin(); it != animationsEnd; ++it) {
+        RenderObject* renderer = it->first;
         CompositeAnimation* compAnim = it->second.get();
-        count += compAnim->numberOfActiveAnimations();
+        if (renderer->document() == document)
+            count += compAnim->numberOfActiveAnimations();
     }
     
     return count;
@@ -525,9 +527,9 @@
     return m_data->pauseAnimationAtTime(renderer, name, t);
 }
 
-unsigned AnimationController::numberOfActiveAnimations() const
+unsigned AnimationController::numberOfActiveAnimations(Document* document) const
 {
-    return m_data->numberOfActiveAnimations();
+    return m_data->numberOfActiveAnimations(document);
 }
 
 bool AnimationController::pauseTransitionAtTime(RenderObject* renderer, const String& property, double t)

Modified: trunk/Source/WebCore/page/animation/AnimationController.h (86980 => 86981)


--- trunk/Source/WebCore/page/animation/AnimationController.h	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebCore/page/animation/AnimationController.h	2011-05-20 21:00:46 UTC (rev 86981)
@@ -58,7 +58,7 @@
 
     bool pauseAnimationAtTime(RenderObject*, const String& name, double t); // To be used only for testing
     bool pauseTransitionAtTime(RenderObject*, const String& property, double t); // To be used only for testing
-    unsigned numberOfActiveAnimations() const; // To be used only for testing
+    unsigned numberOfActiveAnimations(Document*) const; // To be used only for testing
     
     bool isRunningAnimationOnRenderer(RenderObject*, CSSPropertyID, bool isRunningNow = true) const;
     bool isRunningAcceleratedAnimationOnRenderer(RenderObject*, CSSPropertyID, bool isRunningNow = true) const;

Modified: trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h (86980 => 86981)


--- trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebCore/page/animation/AnimationControllerPrivate.h	2011-05-20 21:00:46 UTC (rev 86981)
@@ -80,7 +80,7 @@
 
     bool pauseAnimationAtTime(RenderObject*, const String& name, double t);
     bool pauseTransitionAtTime(RenderObject*, const String& property, double t);
-    unsigned numberOfActiveAnimations() const;
+    unsigned numberOfActiveAnimations(Document*) const;
 
     PassRefPtr<RenderStyle> getAnimatedStyleForRenderer(RenderObject* renderer);
 

Modified: trunk/Source/WebKit/chromium/ChangeLog (86980 => 86981)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1,3 +1,15 @@
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+
+        Pass the Frame's document as the one to count animations on.
+
+        * src/WebAnimationControllerImpl.cpp:
+        (WebKit::WebAnimationControllerImpl::numberOfActiveAnimations):
+
 2011-05-19  Evan Martin  <[email protected]>
 
         Reviewed by Tony Chang.

Modified: trunk/Source/WebKit/chromium/src/WebAnimationControllerImpl.cpp (86980 => 86981)


--- trunk/Source/WebKit/chromium/src/WebAnimationControllerImpl.cpp	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/chromium/src/WebAnimationControllerImpl.cpp	2011-05-20 21:00:46 UTC (rev 86981)
@@ -84,7 +84,7 @@
     AnimationController* controller = animationController();
     if (!controller)
         return 0;
-    return controller->numberOfActiveAnimations();
+    return controller->numberOfActiveAnimations(m_frameImpl->frame()->document());
 }
 
 void WebAnimationControllerImpl::suspendAnimations() const

Modified: trunk/Source/WebKit/gtk/ChangeLog (86980 => 86981)


--- trunk/Source/WebKit/gtk/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/gtk/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1,3 +1,15 @@
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+
+        Pass the Frame's document as the one to count animations on.
+
+        * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+        (DumpRenderTreeSupportGtk::numberOfActiveAnimations):
+
 2011-05-16  Martin Robinson  <[email protected]>
 
         Reviewed by Xan Lopez.

Modified: trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp (86980 => 86981)


--- trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp	2011-05-20 21:00:46 UTC (rev 86981)
@@ -431,7 +431,7 @@
     if (!coreFrame)
         return 0;
 
-    return coreFrame->animation()->numberOfActiveAnimations();
+    return coreFrame->animation()->numberOfActiveAnimations(coreFrame->document());
 }
 
 void DumpRenderTreeSupportGtk::suspendAnimations(WebKitWebFrame* frame)

Modified: trunk/Source/WebKit/mac/ChangeLog (86980 => 86981)


--- trunk/Source/WebKit/mac/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/mac/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1,3 +1,15 @@
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+
+        Pass the Frame's document as the one to count animations on.
+
+        * WebView/WebFrame.mm:
+        (-[WebFrame _numberOfActiveAnimations]):
+
 2011-05-17  Timothy Hatcher  <[email protected]>
 
         Update the the context menu to reflect the system search provider on Mac.

Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (86980 => 86981)


--- trunk/Source/WebKit/mac/WebView/WebFrame.mm	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1040,7 +1040,7 @@
     if (!controller)
         return false;
 
-    return controller->numberOfActiveAnimations();
+    return controller->numberOfActiveAnimations(frame->document());
 }
 
 - (void) _suspendAnimations

Modified: trunk/Source/WebKit/qt/ChangeLog (86980 => 86981)


--- trunk/Source/WebKit/qt/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/qt/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1,3 +1,15 @@
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+
+        Pass the Frame's document as the one to count animations on.
+
+        * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+        (DumpRenderTreeSupportQt::numberOfActiveAnimations):
+
 2011-05-20  Csaba Osztrogonác  <[email protected]>
 
         Reviewed by Benjamin Poulain.

Modified: trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp (86980 => 86981)


--- trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp	2011-05-20 21:00:46 UTC (rev 86981)
@@ -355,7 +355,7 @@
     if (!controller)
         return false;
 
-    return controller->numberOfActiveAnimations();
+    return controller->numberOfActiveAnimations(coreFrame->document());
 }
 
 void DumpRenderTreeSupportQt::suspendAnimations(QWebFrame *frame)

Modified: trunk/Source/WebKit/win/ChangeLog (86980 => 86981)


--- trunk/Source/WebKit/win/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/win/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1,3 +1,15 @@
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+
+        Pass the Frame's document as the one to count animations on.
+
+        * WebFrame.cpp:
+        (WebFrame::numberOfActiveAnimations):
+
 2011-05-20  Jer Noble  <[email protected]>
 
         Reviewed by Maciej Stachowiak.

Modified: trunk/Source/WebKit/win/WebFrame.cpp (86980 => 86981)


--- trunk/Source/WebKit/win/WebFrame.cpp	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit/win/WebFrame.cpp	2011-05-20 21:00:46 UTC (rev 86981)
@@ -1303,7 +1303,7 @@
     if (!controller)
         return E_FAIL;
 
-    *number = controller->numberOfActiveAnimations();
+    *number = controller->numberOfActiveAnimations(frame->document());
     return S_OK;
 }
 

Modified: trunk/Source/WebKit2/ChangeLog (86980 => 86981)


--- trunk/Source/WebKit2/ChangeLog	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit2/ChangeLog	2011-05-20 21:00:46 UTC (rev 86981)
@@ -2,6 +2,18 @@
 
         Reviewed by Sam Weinig.
 
+        numberOfActiveAnimations() can include animations from documents in the page cache
+        https://bugs.webkit.org/show_bug.cgi?id=53641
+
+        Pass the Frame's document as the one to count animations on.
+
+        * WebProcess/WebPage/WebFrame.cpp:
+        (WebKit::WebFrame::numberOfActiveAnimations):
+
+2011-05-20  Simon Fraser  <[email protected]>
+
+        Reviewed by Sam Weinig.
+
         WebKitTestRunner needs layoutTestController.pauseTransitionAtTimeOnElementWithId
         https://bugs.webkit.org/show_bug.cgi?id=42550
         

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp (86980 => 86981)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp	2011-05-20 20:58:34 UTC (rev 86980)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp	2011-05-20 21:00:46 UTC (rev 86981)
@@ -384,7 +384,7 @@
     if (!controller)
         return 0;
 
-    return controller->numberOfActiveAnimations();
+    return controller->numberOfActiveAnimations(m_coreFrame->document());
 }
 
 bool WebFrame::pauseAnimationOnElementWithId(const String& animationName, const String& elementID, double time)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to