Title: [93381] trunk/Source/WebKit/chromium
- Revision
- 93381
- Author
- [email protected]
- Date
- 2011-08-18 18:17:22 -0700 (Thu, 18 Aug 2011)
Log Message
Chromium plumbing for webkitRequestFullScreen
https://bugs.webkit.org/show_bug.cgi?id=66031
Reviewed by Darin Fisher.
* public/WebView.h:
* public/WebViewClient.h:
(WebKit::WebViewClient::enterFullscreenForElement):
(WebKit::WebViewClient::exitFullscreenForElement):
* src/ChromeClientImpl.cpp:
(WebKit::ChromeClientImpl::enterFullScreenForElement):
(WebKit::ChromeClientImpl::exitFullScreenForElement):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::exitFullscreen):
* src/WebViewImpl.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit/chromium/ChangeLog (93380 => 93381)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-08-19 01:09:34 UTC (rev 93380)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-08-19 01:17:22 UTC (rev 93381)
@@ -1,3 +1,21 @@
+2011-08-18 James Kozianski <[email protected]>
+
+ Chromium plumbing for webkitRequestFullScreen
+ https://bugs.webkit.org/show_bug.cgi?id=66031
+
+ Reviewed by Darin Fisher.
+
+ * public/WebView.h:
+ * public/WebViewClient.h:
+ (WebKit::WebViewClient::enterFullscreenForElement):
+ (WebKit::WebViewClient::exitFullscreenForElement):
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::enterFullScreenForElement):
+ (WebKit::ChromeClientImpl::exitFullScreenForElement):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::exitFullscreen):
+ * src/WebViewImpl.h:
+
2011-08-18 Chris Rogers <[email protected]>
Implement WebMediaPlayerClientImpl::audioSourceProvider() and interface into chromium
Modified: trunk/Source/WebKit/chromium/public/WebView.h (93380 => 93381)
--- trunk/Source/WebKit/chromium/public/WebView.h 2011-08-19 01:09:34 UTC (rev 93380)
+++ trunk/Source/WebKit/chromium/public/WebView.h 2011-08-19 01:17:22 UTC (rev 93381)
@@ -373,6 +373,12 @@
virtual void setVisibilityState(WebPageVisibilityState visibilityState,
bool isInitialState) { }
+
+ // Fullscreen -----------------------------------------------------------
+
+ virtual void exitFullscreen() = 0;
+
+
protected:
~WebView() {}
};
Modified: trunk/Source/WebKit/chromium/public/WebViewClient.h (93380 => 93381)
--- trunk/Source/WebKit/chromium/public/WebViewClient.h 2011-08-19 01:09:34 UTC (rev 93380)
+++ trunk/Source/WebKit/chromium/public/WebViewClient.h 2011-08-19 01:17:22 UTC (rev 93381)
@@ -215,6 +215,8 @@
virtual bool supportsFullscreen() { return false; }
virtual void enterFullscreenForNode(const WebNode&) { }
virtual void exitFullscreenForNode(const WebNode&) { }
+ virtual void enterFullscreen() { }
+ virtual void exitFullscreen() { }
// UI ------------------------------------------------------------------
Modified: trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp (93380 => 93381)
--- trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp 2011-08-19 01:09:34 UTC (rev 93380)
+++ trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp 2011-08-19 01:17:22 UTC (rev 93381)
@@ -899,8 +899,12 @@
void ChromeClientImpl::enterFullScreenForElement(WebCore::Element* element)
{
+ // FIXME: Make this code support asynchronous embedder implementations of
+ // enterFullscreenForElement() by restructuring this code to wait for an
+ // ACK.
// FIXME: We may need to call these someplace else when window resizes.
element->document()->webkitWillEnterFullScreenForElement(element);
+ m_webView->client()->enterFullscreen();
element->document()->webkitDidEnterFullScreenForElement(element);
}
@@ -908,6 +912,7 @@
{
// FIXME: We may need to call these someplace else when window resizes.
element->document()->webkitWillExitFullScreenForElement(element);
+ m_webView->client()->exitFullscreen();
element->document()->webkitDidExitFullScreenForElement(element);
}
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (93380 => 93381)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2011-08-19 01:09:34 UTC (rev 93380)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2011-08-19 01:17:22 UTC (rev 93381)
@@ -2693,5 +2693,16 @@
}
#endif
+void WebViewImpl::exitFullscreen()
+{
+#if ENABLE(FULLSCREEN_API)
+ Document* document = page()->mainFrame()->document();
+ Element* fullscreenElement = document->webkitCurrentFullScreenElement();
+ if (!fullscreenElement)
+ return;
+ document->webkitWillExitFullScreenForElement(fullscreenElement);
+ document->webkitDidExitFullScreenForElement(fullscreenElement);
+#endif
+}
} // namespace WebKit
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.h (93380 => 93381)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.h 2011-08-19 01:09:34 UTC (rev 93380)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.h 2011-08-19 01:17:22 UTC (rev 93381)
@@ -208,6 +208,7 @@
unsigned inactiveBackgroundColor,
unsigned inactiveForegroundColor);
virtual void performCustomContextMenuAction(unsigned action);
+ virtual void exitFullscreen();
// CCLayerTreeHostClient
virtual void animateAndLayout(double frameBeginTime);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes