- Revision
- 141173
- Author
- [email protected]
- Date
- 2013-01-29 15:54:46 -0800 (Tue, 29 Jan 2013)
Log Message
Allow clients to ask for the WebView/WKView placeholder view when in full screen mode.
https://bugs.webkit.org/show_bug.cgi?id=103558
<rdar://problem/12763112>
Reviewed by Benjamin Poulain.
Source/WebKit/mac:
Clients may want to behave differently when their WebView/WKView has been swapped out by a placeholder
view when in full screen mode. Add a simple accessor for the existing placeholder view to
WebFullScreenController and WebView.
* WebView/WebFullScreenController.h:
* WebView/WebFullScreenController.mm:
(-[WebFullScreenController webViewPlaceholder]): Added simple accessor.
* WebView/WebView.mm:
(-[WebView fullScreenPlaceholderView]): Added simple accessor.
Source/WebKit2:
Clients may want to behave differently when their WebView/WKView has been swapped out by a placeholder
view when in full screen mode. Add a simple accessor for the existing placeholder view to
WKFullScreenWindowController and WKView.
* UIProcess/API/mac/WKView.mm:
(-[WKView fullScreenPlaceholderView]): Added simple accessor.
* UIProcess/API/mac/WKViewPrivate.h:
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController webViewPlaceholder]): Added simple accessor.
Modified Paths
Diff
Modified: trunk/Source/WebKit/mac/ChangeLog (141172 => 141173)
--- trunk/Source/WebKit/mac/ChangeLog 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit/mac/ChangeLog 2013-01-29 23:54:46 UTC (rev 141173)
@@ -1,3 +1,21 @@
+2012-11-28 Jer Noble <[email protected]>
+
+ Allow clients to ask for the WebView/WKView placeholder view when in full screen mode.
+ https://bugs.webkit.org/show_bug.cgi?id=103558
+ <rdar://problem/12763112>
+
+ Reviewed by Benjamin Poulain.
+
+ Clients may want to behave differently when their WebView/WKView has been swapped out by a placeholder
+ view when in full screen mode. Add a simple accessor for the existing placeholder view to
+ WebFullScreenController and WebView.
+
+ * WebView/WebFullScreenController.h:
+ * WebView/WebFullScreenController.mm:
+ (-[WebFullScreenController webViewPlaceholder]): Added simple accessor.
+ * WebView/WebView.mm:
+ (-[WebView fullScreenPlaceholderView]): Added simple accessor.
+
2013-01-28 Pratik Solanki <[email protected]>
PLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED
Modified: trunk/Source/WebKit/mac/WebView/WebFullScreenController.h (141172 => 141173)
--- trunk/Source/WebKit/mac/WebView/WebFullScreenController.h 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit/mac/WebView/WebFullScreenController.h 2013-01-29 23:54:46 UTC (rev 141173)
@@ -59,6 +59,8 @@
- (WebView*)webView;
- (void)setWebView:(WebView*)webView;
+- (NSView*)webViewPlaceholder;
+
- (BOOL)isFullScreen;
- (void)setElement:(PassRefPtr<WebCore::Element>)element;
Modified: trunk/Source/WebKit/mac/WebView/WebFullScreenController.mm (141172 => 141173)
--- trunk/Source/WebKit/mac/WebView/WebFullScreenController.mm 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit/mac/WebView/WebFullScreenController.mm 2013-01-29 23:54:46 UTC (rev 141173)
@@ -139,6 +139,11 @@
_webView = webView;
}
+- (NSView*)webViewPlaceholder
+{
+ return _webViewPlaceholder.get();
+}
+
- (Element*)element
{
return _element.get();
Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (141172 => 141173)
--- trunk/Source/WebKit/mac/WebView/WebView.mm 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm 2013-01-29 23:54:46 UTC (rev 141173)
@@ -6719,6 +6719,19 @@
@end
+@implementation WebView (WebViewFullScreen)
+
+- (NSView*)fullScreenPlaceholderView
+{
+#if ENABLE(FULLSCREEN_API)
+ if (_private->newFullscreenController && [_private->newFullscreenController isFullScreen])
+ return [_private->newFullscreenController webViewPlaceholder];
+#endif
+ return nil;
+}
+
+@end
+
void WebInstallMemoryPressureHandler(void)
{
memoryPressureHandler().install();
Modified: trunk/Source/WebKit2/ChangeLog (141172 => 141173)
--- trunk/Source/WebKit2/ChangeLog 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit2/ChangeLog 2013-01-29 23:54:46 UTC (rev 141173)
@@ -1,3 +1,22 @@
+2012-11-28 Jer Noble <[email protected]>
+
+ Allow clients to ask for the WebView/WKView placeholder view when in full screen mode.
+ https://bugs.webkit.org/show_bug.cgi?id=103558
+ <rdar://problem/12763112>
+
+ Reviewed by Benjamin Poulain.
+
+ Clients may want to behave differently when their WebView/WKView has been swapped out by a placeholder
+ view when in full screen mode. Add a simple accessor for the existing placeholder view to
+ WKFullScreenWindowController and WKView.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView fullScreenPlaceholderView]): Added simple accessor.
+ * UIProcess/API/mac/WKViewPrivate.h:
+ * UIProcess/mac/WKFullScreenWindowController.h:
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController webViewPlaceholder]): Added simple accessor.
+
2013-01-29 Huang Dongsung <[email protected]>
[WK2] Call LayerTreeHost::deviceOrPageScaleFactorChanged() when a device or page scale factor is changed.
Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (141172 => 141173)
--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm 2013-01-29 23:54:46 UTC (rev 141173)
@@ -82,6 +82,7 @@
#import <WebCore/SharedBuffer.h>
#import <WebCore/TextAlternativeWithRange.h>
#import <WebCore/WebCoreNSStringExtras.h>
+#import <WebCore/WebCoreFullScreenPlaceholderView.h>
#import <WebCore/FileSystem.h>
#import <WebKitSystemInterface.h>
#import <sys/stat.h>
@@ -3267,6 +3268,15 @@
_data->_page->setMainFrameIsScrollable(!expandsToFit);
}
+- (NSView*)fullScreenPlaceholderView
+{
+#if ENABLE(FULLSCREEN_API)
+ if (_data->_fullScreenWindowController && [_data->_fullScreenWindowController isFullScreen])
+ return [_data->_fullScreenWindowController webViewPlaceholder];
+#endif
+ return nil;
+}
+
@end
@implementation WKResponderChainSink
Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKViewPrivate.h (141172 => 141173)
--- trunk/Source/WebKit2/UIProcess/API/mac/WKViewPrivate.h 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKViewPrivate.h 2013-01-29 23:54:46 UTC (rev 141173)
@@ -53,4 +53,6 @@
@property (readwrite) CGFloat minimumLayoutWidth;
@property (readwrite) CGFloat minimumWidthForAutoLayout;
+- (NSView*)fullScreenPlaceholderView;
+
@end
Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h (141172 => 141173)
--- trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h 2013-01-29 23:54:46 UTC (rev 141173)
@@ -62,6 +62,8 @@
- (WKView*)webView;
- (void)setWebView:(WKView*)webView;
+- (WebCoreFullScreenPlaceholderView*)webViewPlaceholder;
+
- (BOOL)isFullScreen;
- (void)enterFullScreen:(NSScreen *)screen;
Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm (141172 => 141173)
--- trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm 2013-01-29 23:35:54 UTC (rev 141172)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm 2013-01-29 23:54:46 UTC (rev 141173)
@@ -133,6 +133,11 @@
return _isFullScreen;
}
+- (WebCoreFullScreenPlaceholderView*)webViewPlaceholder
+{
+ return _webViewPlaceholder.get();
+}
+
#pragma mark -
#pragma mark NSWindowController overrides