Title: [184238] branches/safari-601.1.32-branch/Source/WebKit2
Revision
184238
Author
[email protected]
Date
2015-05-12 20:22:10 -0700 (Tue, 12 May 2015)

Log Message

Merge r183937. rdar://problem/20458697

Modified Paths

Diff

Modified: branches/safari-601.1.32-branch/Source/WebKit2/ChangeLog (184237 => 184238)


--- branches/safari-601.1.32-branch/Source/WebKit2/ChangeLog	2015-05-13 03:22:07 UTC (rev 184237)
+++ branches/safari-601.1.32-branch/Source/WebKit2/ChangeLog	2015-05-13 03:22:10 UTC (rev 184238)
@@ -2,89 +2,93 @@
 Dana Burkart  <[email protected]
 [email protected]>
 
-        Merge r183911. rdar://problem/20702435
+        Merge r183937. rdar://problem/20458697
 
-    2015-05-06  Jer Noble  <[email protected]>
+    2015-05-07  Jer Noble  <[email protected]>
 
-            [WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode.
-            https://bugs.webkit.org/show_bug.cgi?id=144716
+            [WK2][Fullscreen] Fullscreen video does not enter low-power mode.
+            https://bugs.webkit.org/show_bug.cgi?id=144744
 
             Reviewed by Darin Adler.
 
-            We create a mask animation for the transition between windowed and fullscreen modes, on the
-            assumption that the element being taken into fullscreen mode does not have visible children
-            who extend beyond that elements bounds. This assumption breaks down in the case where div
-            with absolutely positioned children is taken fullscreen. While we can't necessarily make the
-            transition look correct in this case, we can remove the mask after the transition completes.
+            One of the requirements of entering low-power compositing mode is that no masking layers
+            are present in any of the ancestors of the fullscreen video layer. So once our fullscreen
+            transition animation completes, remove the mask layer entirely from our clipping layer.
+            This means it needs to be re-created and added when entering fullscreen, rather than just
+            at initialization time.
 
             * UIProcess/mac/WKFullScreenWindowController.mm:
+            (-[WKFullScreenWindowController initWithWindow:webView:]):
             (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
-            * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
-            (WebKit::removeAllMediaKeyStorageForOriginPath):
+            (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
 
     2015-05-12  Dana Burkart
     Dana Burkart  <[email protected]
     [email protected]>
 
-            Merge r183909. rdar://problem/18894598
+            Merge r183911. rdar://problem/20702435
 
-        2015-05-06  Daniel Bates  <[email protected]>
+        2015-05-06  Jer Noble  <[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>
+                [WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode.
+                https://bugs.webkit.org/show_bug.cgi?id=144716
 
-                Reviewed by Andy Estes.
+                Reviewed by Darin Adler.
 
-                Pause and resume the database thread when the UIProcess enters and leaves the background,
-                respectively, so that we avoid WebProcess termination due to holding a locked SQLite
-                database file when the WebProcess is suspended. This behavior matches the analagous
-                behavior in Legacy WebKit.
+                We create a mask animation for the transition between windowed and fullscreen modes, on the
+                assumption that the element being taken into fullscreen mode does not have visible children
+                who extend beyond that elements bounds. This assumption breaks down in the case where div
+                with absolutely positioned children is taken fullscreen. While we can't necessarily make the
+                transition look correct in this case, we can remove the mask after the transition completes.
 
-                * UIProcess/WebPageProxy.h:
-                * UIProcess/ios/WKContentView.mm:
-                (-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground()
-                when the UIProcess enters the background.
-                * UIProcess/ios/WebPageProxyIOS.mm:
-                (WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread.
-                We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the
-                WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the
-                notification.
-                * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
-                (WebKit::WebDatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseManager::setPauseAllDatabases().
-                * WebProcess/WebCoreSupport/WebDatabaseManager.h:
-                * WebProcess/WebPage/WebPage.h:
-                * WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also,
-                add empty lines to help demarcate this message and the other UIKit application lifecycle-related
-                messages from the rest of the list of messages.
-                * WebProcess/WebPage/ios/WebPageIOS.mm:
-                (WebKit::WebPage::applicationWillEnterForeground): Resume the database thread.
-                (WebKit::WebPage::applicationDidEnterBackground): Pause the database thread.
+                * UIProcess/mac/WKFullScreenWindowController.mm:
+                (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
+                * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
+                (WebKit::removeAllMediaKeyStorageForOriginPath):
 
         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.
+                    Pause and resume the database thread when the UIProcess enters and leaves the background,
+                    respectively, so that we avoid WebProcess termination due to holding a locked SQLite
+                    database file when the WebProcess is suspended. This behavior matches the analagous
+                    behavior in Legacy WebKit.
 
-                    Add some better logging for custom appearance.
+                    * UIProcess/WebPageProxy.h:
+                    * UIProcess/ios/WKContentView.mm:
+                    (-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground()
+                    when the UIProcess enters the background.
+                    * UIProcess/ios/WebPageProxyIOS.mm:
+                    (WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread.
+                    We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the
+                    WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the
+                    notification.
+                    * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
+                    (WebKit::WebDatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseManager::setPauseAllDatabases().
+                    * WebProcess/WebCoreSupport/WebDatabaseManager.h:
+                    * WebProcess/WebPage/WebPage.h:
+                    * WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also,
+                    add empty lines to help demarcate this message and the other UIKit application lifecycle-related
+                    messages from the rest of the list of messages.
+                    * WebProcess/WebPage/ios/WebPageIOS.mm:
+                    (WebKit::WebPage::applicationWillEnterForeground): Resume the database thread.
+                    (WebKit::WebPage::applicationDidEnterBackground): Pause the database thread.
 
-                    * Shared/mac/RemoteLayerTreeTransaction.mm:
-                    (WebKit::RemoteLayerTreeTextStream::operator<<):
-
             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]>
 
@@ -94,11 +98,31 @@
 
                         Reviewed by Simon Fraser.
 
+                        Take 2 - this was rolled out because Mavericks was crashing.
+
                         Add some better logging for custom appearance.
 
                         * Shared/mac/RemoteLayerTreeTransaction.mm:
                         (WebKit::RemoteLayerTreeTextStream::operator<<):
 
+                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.
+
+                            Add some better logging for custom appearance.
+
+                            * Shared/mac/RemoteLayerTreeTransaction.mm:
+                            (WebKit::RemoteLayerTreeTextStream::operator<<):
+
 2015-05-11  Babak Shafiei  <[email protected]>
 
         Merge r184004.

Modified: branches/safari-601.1.32-branch/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm (184237 => 184238)


--- branches/safari-601.1.32-branch/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2015-05-13 03:22:07 UTC (rev 184237)
+++ branches/safari-601.1.32-branch/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2015-05-13 03:22:10 UTC (rev 184238)
@@ -102,12 +102,6 @@
     _clipView = adoptNS([[NSView alloc] initWithFrame:contentView.bounds]);
     [_clipView setWantsLayer:YES];
     [_clipView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
-    CALayer *maskLayer = [CALayer layer];
-    maskLayer.anchorPoint = CGPointZero;
-    maskLayer.frame = NSRectToCGRect(contentView.bounds);
-    maskLayer.backgroundColor = CGColorGetConstantColor(kCGColorBlack);
-    maskLayer.autoresizingMask = (NSViewWidthSizable | NSViewHeightSizable);
-    [_clipView layer].mask = maskLayer;
     [contentView addSubview:_clipView.get()];
 
     [self windowDidLoad];
@@ -300,7 +294,7 @@
         NSView *contentView = [[self window] contentView];
         [contentView.layer removeAllAnimations];
         [[_clipView layer] removeAllAnimations];
-        [[_clipView layer].mask removeAllAnimations];
+        [[_clipView layer] setMask:nil];
 
         [_webViewPlaceholder setExitWarningVisible:YES];
         [_webViewPlaceholder setTarget:self];
@@ -584,10 +578,17 @@
 
 - (void)_startEnterFullScreenAnimationWithDuration:(NSTimeInterval)duration
 {
+    NSView* contentView = [[self window] contentView];
+
     [[_clipView layer] addAnimation:zoomAnimation(_initialFrame, _finalFrame, self.window.screen.frame, duration, AnimateIn) forKey:@"fullscreen"];
-    [[_clipView layer].mask addAnimation:maskAnimation(_initialFrame, _finalFrame, self.window.screen.frame, duration, AnimateIn) forKey:@"fullscreen"];
+    CALayer *maskLayer = [CALayer layer];
+    maskLayer.anchorPoint = CGPointZero;
+    maskLayer.frame = NSRectToCGRect(contentView.bounds);
+    maskLayer.backgroundColor = CGColorGetConstantColor(kCGColorBlack);
+    maskLayer.autoresizingMask = (NSViewWidthSizable | NSViewHeightSizable);
+    [maskLayer addAnimation:maskAnimation(_initialFrame, _finalFrame, self.window.screen.frame, duration, AnimateIn) forKey:@"fullscreen"];
+    [_clipView layer].mask = maskLayer;
 
-    NSView* contentView = [[self window] contentView];
     contentView.layer.hidden = NO;
     [contentView.layer addAnimation:fadeAnimation(duration, AnimateIn) forKey:@"fullscreen"];
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to