Title: [173888] trunk/Source/WebKit2
Revision
173888
Author
jer.no...@apple.com
Date
2014-09-23 14:04:53 -0700 (Tue, 23 Sep 2014)

Log Message

REGRESSION (r171197): Clip's content is drawn behind Safari window when entering Full Screen youtube html5 first time
https://bugs.webkit.org/show_bug.cgi?id=137029

Reviewed by Brent Fulgham.

In r171197, we ordered the full screen window on- and off-screen so that the fullscreen animation went to the
correct screen, which introduced a subtle glitch at the beginning and end of an animation. For entering, ensure
that the window is scaled to its starting size before ordering on-screen. For exiting, order the window off-
screen before resetting its clipping rect.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (173887 => 173888)


--- trunk/Source/WebKit2/ChangeLog	2014-09-23 20:54:14 UTC (rev 173887)
+++ trunk/Source/WebKit2/ChangeLog	2014-09-23 21:04:53 UTC (rev 173888)
@@ -1,3 +1,19 @@
+2014-09-23  Jer Noble  <jer.no...@apple.com>
+
+        REGRESSION (r171197): Clip's content is drawn behind Safari window when entering Full Screen youtube html5 first time
+        https://bugs.webkit.org/show_bug.cgi?id=137029
+
+        Reviewed by Brent Fulgham.
+
+        In r171197, we ordered the full screen window on- and off-screen so that the fullscreen animation went to the
+        correct screen, which introduced a subtle glitch at the beginning and end of an animation. For entering, ensure
+        that the window is scaled to its starting size before ordering on-screen. For exiting, order the window off-
+        screen before resetting its clipping rect.
+
+        * UIProcess/mac/WKFullScreenWindowController.mm:
+        (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
+        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
+
 2014-09-23  Joseph Pecoraro  <pecor...@apple.com>
 
         Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed

Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm (173887 => 173888)


--- trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2014-09-23 20:54:14 UTC (rev 173887)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2014-09-23 21:04:53 UTC (rev 173888)
@@ -267,6 +267,12 @@
     if (!_backgroundWindow)
         _backgroundWindow = createBackgroundFullscreenWindow(NSZeroRect);
 
+    // The -orderBack: call below can cause the full screen window's contents to draw on top of
+    // all other visible windows on the screen, despite NSDisableScreenUpdates having been set, and
+    // despite being explicitly ordered behind all other windows. Set the initial scaled frame here
+    // before ordering the window on-screen to avoid this flash. <rdar://problem/18325063>
+    WKWindowSetScaledFrame(self.window, initialFrame, finalFrame);
+
     [self.window orderBack: self]; // Make sure the full screen window is part of the correct Space.
     [[self window] enterFullScreenMode:self];
 }
@@ -383,11 +389,11 @@
     [self _replaceView:_webViewPlaceholder.get() with:_webView];
     makeResponderFirstResponderIfDescendantOfView(_webView.window, firstResponder, _webView);
 
+    [[self window] orderOut:self];
+
     NSRect windowBounds = [[self window] frame];
     windowBounds.origin = NSZeroPoint;
     WKWindowSetClipRect([self window], windowBounds);
-
-    [[self window] orderOut:self];
     [[self window] setFrame:NSZeroRect display:YES];
 
     [_scaleAnimation stopAnimation];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to