Title: [184243] branches/safari-601.1.32-branch/Source/WebCore
Revision
184243
Author
[email protected]
Date
2015-05-12 20:58:15 -0700 (Tue, 12 May 2015)

Log Message

Merge r183953. rdar://problem/19997548

Modified Paths

Diff

Modified: branches/safari-601.1.32-branch/Source/WebCore/ChangeLog (184242 => 184243)


--- branches/safari-601.1.32-branch/Source/WebCore/ChangeLog	2015-05-13 03:58:11 UTC (rev 184242)
+++ branches/safari-601.1.32-branch/Source/WebCore/ChangeLog	2015-05-13 03:58:15 UTC (rev 184243)
@@ -2,155 +2,149 @@
 Dana Burkart  <[email protected]
 [email protected]>
 
-        Merge r183943. rdar://problem/19913748
+        Merge r183953. rdar://problem/19997548
 
-    2015-05-07  Simon Fraser  <[email protected]>
+    2015-05-06  Roger Fong  <[email protected]>
 
-            Remove the WK1-only code path for independently composited iframes
-            https://bugs.webkit.org/show_bug.cgi?id=144722
+            Media Controls: Scrubber should be independent of actual video time, causes scrubber to be jumpy.
+            https://bugs.webkit.org/show_bug.cgi?id=144700.
+            <rdar://problem/19997548>
 
-            Reviewed by Dean Jackson.
+            Reviewed by Jer Noble.
 
-            In WebKit1 on Mac, we allowed iframes to be composited independently of their
-            parent document, relying on the fact that the frame's platform view can host
-            a layer-backed view. However, this ran into bugs (rdar://problem/18862298),
-            and triggers the assertion at the end of FrameView::updateLayoutAndStyleIfNeededRecursive(),
-            because the compositing update after a layout can dirty style in notifyIFramesOfCompositingChange().
+            Update time and timeline during the timeline input event instead of the wrapper's mousemove.
+            (Controller.prototype.handleWrapperMouseMove):
+            (Controller.prototype.handleTimelineMouseMove):
+            (Controller.prototype.drawTimelineBackground):
 
-            Removing the WK1-only code path solves these problems. It also eliminates the need
-            to do compositing-specific frame overlap testing.
+            (Controller.prototype.updateControlsWhileScrubbing):
+            Updates time and scrubber to reflect timeline user input.
 
-            * page/FrameView.cpp:
-            (WebCore::FrameView::setIsOverlapped): No need to do compositing-related things here.
-            Any iframe that gets composited will participate in the normal compositing overlap
-            testing in its parent frame.
-            (WebCore::FrameView::hasCompositedContentIncludingDescendants): Deleted.
-            (WebCore::FrameView::hasCompositingAncestor): Deleted.
-            * page/FrameView.h:
-            * rendering/RenderLayerCompositor.cpp: Replace ownerElement() checks in this file
-            with an isMainFrameCompositor() for readability. Some 0->nullptr.
-            (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
-            (WebCore::RenderLayerCompositor::chromeClient):
-            (WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers):
-            (WebCore::RenderLayerCompositor::updateCompositingLayers):
-            (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
-            (WebCore::RenderLayerCompositor::updateBacking):
-            (WebCore::RenderLayerCompositor::layerTreeAsText):
-            (WebCore::RenderLayerCompositor::frameContentsCompositor):
-            (WebCore::RenderLayerCompositor::setIsInWindow):
-            (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
-            (WebCore::RenderLayerCompositor::requiresCompositingForFrame): frameRenderer.requiresAcceleratedCompositing()
-            already bails on no content RenderView, so the shouldPropagateCompositingToEnclosingFrame() check does
-            nothing and is removed.
-            (WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer):
-            (WebCore::RenderLayerCompositor::requiresScrollLayer):
-            (WebCore::RenderLayerCompositor::documentUsesTiledBacking):
-            (WebCore::RenderLayerCompositor::isMainFrameCompositor):
-            (WebCore::RenderLayerCompositor::shouldCompositeOverflowControls):
-            (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
-            (WebCore::RenderLayerCompositor::requiresContentShadowLayer):
-            (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
-            (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
-            (WebCore::RenderLayerCompositor::updateLayerForHeader):
-            (WebCore::RenderLayerCompositor::updateLayerForFooter):
-            (WebCore::RenderLayerCompositor::ensureRootLayer): Main frame attaches via ChromeClient,
-            all other frames attach via parent frame.
-            (WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange): This call to
-            scheduleSetNeedsStyleRecalc(SyntheticStyleChange) was the source of dirtying style after
-            layout, but is no longer needed so remove it.
-            (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
-            (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
-            (WebCore::RenderLayerCompositor::scrollingCoordinator):
-            (WebCore::RenderLayerCompositor::graphicsLayerFactory):
-            (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames): Deleted.
-            (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Deleted.
-            (WebCore::RenderLayerCompositor::mainFrameBackingIsTiled): Deleted. This was mis-named;
-            it really asks whether the document uses tiled backing, but does not check for main frame.
-            * rendering/RenderLayerCompositor.h:
-            * rendering/RenderWidget.cpp:
-            (WebCore::RenderWidget::paintContents): No need to do frame overlap testing for
-            compositing now.
-
     2015-05-12  Dana Burkart
     Dana Burkart  <[email protected]
     [email protected]>
 
-            Merge r183927. rdar://problem/20854785
+            Merge r183943. rdar://problem/19913748
 
-        2015-05-07  Eric Carlson  <[email protected]>
+        2015-05-07  Simon Fraser  <[email protected]>
 
-                [Mac] Playback target isn't set on new element
-                https://bugs.webkit.org/show_bug.cgi?id=144724
+                Remove the WK1-only code path for independently composited iframes
+                https://bugs.webkit.org/show_bug.cgi?id=144722
 
-                Reviewed by Jer Noble.
+                Reviewed by Dean Jackson.
 
-                * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
-                * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
-                (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setShouldPlayToPlaybackTarget
-                if necessary.
-                (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Remember
-                the setting in case we don't have an AVPlayer yet.
+                In WebKit1 on Mac, we allowed iframes to be composited independently of their
+                parent document, relying on the fact that the frame's platform view can host
+                a layer-backed view. However, this ran into bugs (rdar://problem/18862298),
+                and triggers the assertion at the end of FrameView::updateLayoutAndStyleIfNeededRecursive(),
+                because the compositing update after a layout can dirty style in notifyIFramesOfCompositingChange().
 
+                Removing the WK1-only code path solves these problems. It also eliminates the need
+                to do compositing-specific frame overlap testing.
+
+                * page/FrameView.cpp:
+                (WebCore::FrameView::setIsOverlapped): No need to do compositing-related things here.
+                Any iframe that gets composited will participate in the normal compositing overlap
+                testing in its parent frame.
+                (WebCore::FrameView::hasCompositedContentIncludingDescendants): Deleted.
+                (WebCore::FrameView::hasCompositingAncestor): Deleted.
+                * page/FrameView.h:
+                * rendering/RenderLayerCompositor.cpp: Replace ownerElement() checks in this file
+                with an isMainFrameCompositor() for readability. Some 0->nullptr.
+                (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
+                (WebCore::RenderLayerCompositor::chromeClient):
+                (WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers):
+                (WebCore::RenderLayerCompositor::updateCompositingLayers):
+                (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
+                (WebCore::RenderLayerCompositor::updateBacking):
+                (WebCore::RenderLayerCompositor::layerTreeAsText):
+                (WebCore::RenderLayerCompositor::frameContentsCompositor):
+                (WebCore::RenderLayerCompositor::setIsInWindow):
+                (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
+                (WebCore::RenderLayerCompositor::requiresCompositingForFrame): frameRenderer.requiresAcceleratedCompositing()
+                already bails on no content RenderView, so the shouldPropagateCompositingToEnclosingFrame() check does
+                nothing and is removed.
+                (WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer):
+                (WebCore::RenderLayerCompositor::requiresScrollLayer):
+                (WebCore::RenderLayerCompositor::documentUsesTiledBacking):
+                (WebCore::RenderLayerCompositor::isMainFrameCompositor):
+                (WebCore::RenderLayerCompositor::shouldCompositeOverflowControls):
+                (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
+                (WebCore::RenderLayerCompositor::requiresContentShadowLayer):
+                (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
+                (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
+                (WebCore::RenderLayerCompositor::updateLayerForHeader):
+                (WebCore::RenderLayerCompositor::updateLayerForFooter):
+                (WebCore::RenderLayerCompositor::ensureRootLayer): Main frame attaches via ChromeClient,
+                all other frames attach via parent frame.
+                (WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange): This call to
+                scheduleSetNeedsStyleRecalc(SyntheticStyleChange) was the source of dirtying style after
+                layout, but is no longer needed so remove it.
+                (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
+                (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
+                (WebCore::RenderLayerCompositor::scrollingCoordinator):
+                (WebCore::RenderLayerCompositor::graphicsLayerFactory):
+                (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames): Deleted.
+                (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Deleted.
+                (WebCore::RenderLayerCompositor::mainFrameBackingIsTiled): Deleted. This was mis-named;
+                it really asks whether the document uses tiled backing, but does not check for main frame.
+                * rendering/RenderLayerCompositor.h:
+                * rendering/RenderWidget.cpp:
+                (WebCore::RenderWidget::paintContents): No need to do frame overlap testing for
+                compositing now.
+
         2015-05-12  Dana Burkart
         Dana Burkart  <[email protected]
         [email protected]>
 
-                Merge r183909. rdar://problem/18894598
+                Merge r183927. rdar://problem/20854785
 
-            2015-05-06  Daniel Bates  <[email protected]>
+            2015-05-07  Eric Carlson  <[email protected]>
 
-                    [iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
-                    https://bugs.webkit.org/show_bug.cgi?id=144657
-                    <rdar://problem/18894598>
+                    [Mac] Playback target isn't set on new element
+                    https://bugs.webkit.org/show_bug.cgi?id=144724
 
-                    Reviewed by Andy Estes.
+                    Reviewed by Jer Noble.
 
-                    Export WebCore functionality to pause and resume the database thread so that we can
-                    make use of this functionality from WebKit2.
+                    * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+                    * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+                    (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setShouldPlayToPlaybackTarget
+                    if necessary.
+                    (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Remember
+                    the setting in case we don't have an AVPlayer yet.
 
-                    * Modules/webdatabase/AbstractDatabaseServer.h:
-                    * Modules/webdatabase/DatabaseManager.cpp:
-                    (WebCore::DatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseServer::setPauseAllDatabases().
-                    * Modules/webdatabase/DatabaseManager.h:
-                    * Modules/webdatabase/DatabaseServer.cpp:
-                    (WebCore::DatabaseServer::setPauseAllDatabases): Added; turns around and calls
-                    DatabaseTracker::tracker().setDatabasesPaused() to pause or resume the database thread.
-                    For now, we guard this call with PLATFORM(IOS). We'll look to remove this guard once
-                    we fix <https://bugs.webkit.org/show_bug.cgi?id=144660>.
-                    * Modules/webdatabase/DatabaseServer.h:
-
             2015-05-12  Dana Burkart
-            Dana Burkart  <[email protected]>
+            Dana Burkart  <[email protected]
+            [email protected]>
 
-                    Merge r183942. rdar://problem/20049088
+                    Merge r183909. rdar://problem/18894598
 
-                2015-05-06  Dean Jackson  <[email protected]>
+                2015-05-06  Daniel Bates  <[email protected]>
 
-                        Handle backdrop views that have to tile
-                        https://bugs.webkit.org/show_bug.cgi?id=142317
-                        <rdar://problem/20049088>
+                        [iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
+                        https://bugs.webkit.org/show_bug.cgi?id=144657
+                        <rdar://problem/18894598>
 
-                        Reviewed by Simon Fraser.
+                        Reviewed by Andy Estes.
 
-                        Take 2 - this was rolled out because Mavericks was crashing.
+                        Export WebCore functionality to pause and resume the database thread so that we can
+                        make use of this functionality from WebKit2.
 
-                        Make sure backdrop layers don't tile. If they are big
-                        enough, we'll leave it to the platform compositor to handle.
+                        * Modules/webdatabase/AbstractDatabaseServer.h:
+                        * Modules/webdatabase/DatabaseManager.cpp:
+                        (WebCore::DatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseServer::setPauseAllDatabases().
+                        * Modules/webdatabase/DatabaseManager.h:
+                        * Modules/webdatabase/DatabaseServer.cpp:
+                        (WebCore::DatabaseServer::setPauseAllDatabases): Added; turns around and calls
+                        DatabaseTracker::tracker().setDatabasesPaused() to pause or resume the database thread.
+                        For now, we guard this call with PLATFORM(IOS). We'll look to remove this guard once
+                        we fix <https://bugs.webkit.org/show_bug.cgi?id=144660>.
+                        * Modules/webdatabase/DatabaseServer.h:
 
-                        This also fixes a bug where if a layer changed from a backdrop
-                        type to a tiled type, it would still retain its custom appearance
-                        and we'd try to add children to the wrong layer.
-
-                        Test: compositing/media-controls-bar-appearance-big.html
-
-                        * platform/graphics/ca/GraphicsLayerCA.cpp:
-                        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Check if
-                        a layer needs a backdrop before checking if it needs to tile.
-
                 2015-05-12  Dana Burkart
                 Dana Burkart  <[email protected]>
 
-                        Merge r183894. rdar://problem/20049088
+                        Merge r183942. rdar://problem/20049088
 
                     2015-05-06  Dean Jackson  <[email protected]>
 
@@ -160,6 +154,8 @@
 
                             Reviewed by Simon Fraser.
 
+                            Take 2 - this was rolled out because Mavericks was crashing.
+
                             Make sure backdrop layers don't tile. If they are big
                             enough, we'll leave it to the platform compositor to handle.
 
@@ -173,6 +169,32 @@
                             (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Check if
                             a layer needs a backdrop before checking if it needs to tile.
 
+                    2015-05-12  Dana Burkart
+                    Dana Burkart  <[email protected]>
+
+                            Merge r183894. rdar://problem/20049088
+
+                        2015-05-06  Dean Jackson  <[email protected]>
+
+                                Handle backdrop views that have to tile
+                                https://bugs.webkit.org/show_bug.cgi?id=142317
+                                <rdar://problem/20049088>
+
+                                Reviewed by Simon Fraser.
+
+                                Make sure backdrop layers don't tile. If they are big
+                                enough, we'll leave it to the platform compositor to handle.
+
+                                This also fixes a bug where if a layer changed from a backdrop
+                                type to a tiled type, it would still retain its custom appearance
+                                and we'd try to add children to the wrong layer.
+
+                                Test: compositing/media-controls-bar-appearance-big.html
+
+                                * platform/graphics/ca/GraphicsLayerCA.cpp:
+                                (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Check if
+                                a layer needs a backdrop before checking if it needs to tile.
+
 2015-05-06  Brent Fulgham  <[email protected]>
 
         Scroll-snap points do not handle margins and padding propertly

Modified: branches/safari-601.1.32-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js (184242 => 184243)


--- branches/safari-601.1.32-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js	2015-05-13 03:58:11 UTC (rev 184242)
+++ branches/safari-601.1.32-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js	2015-05-13 03:58:15 UTC (rev 184243)
@@ -762,9 +762,6 @@
         if (this.controlsAreHidden())
             this.showControls();
         this.resetHideControlsTimer();
-        
-        if (this.scrubbing)
-            this.updateTime();
 
         if (!this.isDragging)
             return;
@@ -855,6 +852,7 @@
     handleTimelineInput: function(event)
     {
         this.video.fastSeek(this.controls.timeline.value);
+        this.updateControlsWhileScrubbing();
     },
 
     handleTimelineChange: function(event)
@@ -1157,8 +1155,8 @@
         
         if (!width || !height)
             return;
-        
-        var played = this.video.currentTime / this.video.duration;
+
+        var played = this.controls.timeline.value / this.controls.timeline.max;
         var buffered = 0;
         for (var i = 0, end = this.video.buffered.length; i < end; ++i)
             buffered = Math.max(this.video.buffered.end(i), buffered);
@@ -1408,7 +1406,19 @@
         this.controls.timeline.value = this.video.currentTime;
         this.controls.remainingTime.innerText = this.formatTime(timeRemaining);
     },
+    
+    updateControlsWhileScrubbing: function()
+    {
+        if (!this.scrubbing)
+            return;
 
+        var currentTime = (this.controls.timeline.value / this.controls.timeline.max) * this.video.duration;
+        var timeRemaining = currentTime - this.video.duration;
+        this.controls.currentTime.innerText = this.formatTime(currentTime);
+        this.controls.remainingTime.innerText = this.formatTime(timeRemaining);
+        this.drawTimelineBackground();
+    },
+
     updateReadyState: function()
     {
         this.updateStatusDisplay();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to