RESOLVED WONTFIX 58502
Highly experimental fullscreen implementation for Chromium
https://bugs.webkit.org/show_bug.cgi?id=58502
Summary Highly experimental fullscreen implementation for Chromium
Andrew Scherkus
Reported 2011-04-13 18:38:56 PDT
Highly experimental fullscreen implementation for Chromium
Attachments
Patch (26.14 KB, patch)
2011-04-13 18:39 PDT, Andrew Scherkus
no flags
Patch (29.95 KB, patch)
2011-04-14 14:52 PDT, Andrew Scherkus
no flags
Patch (26.92 KB, patch)
2011-04-14 18:08 PDT, Andrew Scherkus
no flags
Patch (64.60 KB, patch)
2011-04-20 17:53 PDT, Andrew Scherkus
no flags
Less crazy active WebWidgetClient patch (28.87 KB, patch)
2011-06-29 17:16 PDT, Andrew Scherkus
no flags
Crazy view/widget split patch (65.46 KB, patch)
2011-06-29 17:42 PDT, Andrew Scherkus
no flags
Andrew Scherkus
Comment 1 2011-04-13 18:39:31 PDT
Andrew Scherkus
Comment 2 2011-04-14 14:52:44 PDT
Andrew Scherkus
Comment 3 2011-04-14 18:08:15 PDT
Andrew Scherkus
Comment 4 2011-04-14 18:10:16 PDT
Applied a tiny bit of darin's patch to ChromeClientImpl for paints/scrolls and now WebViewImpl swaps between m_client and m_fullscreen->client() as needed.
Darin Fisher (:fishd, Google)
Comment 5 2011-04-15 10:24:15 PDT
Comment on attachment 89709 [details] Patch Looking better...
Andrew Scherkus
Comment 6 2011-04-20 17:53:43 PDT
Andrew Scherkus
Comment 7 2011-04-20 18:26:39 PDT
Alright in this latest patch I experimented with seeing what would happen if we forced all existing users of WebViewImpl::client() to explicitly use WebWidgetClient or WebViewClient -- in effect simulating what would happen if WebViewClient didn't inherit from WebWidgetClient. I changed the method names so I could see which classes use WebWidgetClient as opposed to WebViewClient, etc etc Result: works ok -- cursors get properly set, invalidations work, etc... Also in this version WebFullscreenWidgetImpl is a pure delegate to the existing WebViewImpl meaning we might be able to do without it. Basically I wonder if we can get to the point where we have the following set of objects to play with: - ChromeClientImpl (implements ChromeClient) - RenderView (implements WebViewClient) - RenderWidget (implements WebWidgetClient) - RenderFullscreenWidget (implements WebWidgetClient) - WebViewImpl (implements WebView) If we allowed swapping WebWidgets on WebWidgetClients at run-time (as opposed to creation time), we could do some neat tricks where we point the existing RenderWidget to a NULL/fake WebWidget (so the old HWND doesn't try to render stuff), then swap in the existing WebViewImpl into the RenderFullscreenWidget -- avoiding the need for having WebFullscreenWidgetImpl. I'm a bit worried about having both RenderWidget/View and RenderWidgetFullscreen point at the same WebViewImpl. Again this is all new ground for me so happy to discuss in person!
Andrew Scherkus
Comment 8 2011-06-29 17:16:38 PDT
Created attachment 99187 [details] Less crazy active WebWidgetClient patch Updated to work on trunk
WebKit Review Bot
Comment 9 2011-06-29 17:18:12 PDT
Attachment 99187 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/chromium/ChangeLog', u'Sourc..." exit_code: 1 Source/WebKit/chromium/src/WebFullscreenWidgetImpl.h:38: Missing space before { [whitespace/braces] [5] Source/WebKit/chromium/src/WebFullscreenWidgetImpl.h:58: The parameter name "canvas" adds no information, so it should be removed. [readability/parameter_name] [5] Source/WebKit/chromium/src/WebFullscreenWidgetImpl.h:58: The parameter name "rect" adds no information, so it should be removed. [readability/parameter_name] [5] Source/WebKit/chromium/src/WebFullscreenWidgetImpl.h:75: The parameter name "direction" adds no information, so it should be removed. [readability/parameter_name] [5] Source/WebKit/chromium/src/WebFullscreenWidgetImpl.h:85: One space before end of line comments [whitespace/comments] [5] Source/WebKit/chromium/src/WebFullscreenWidgetImpl.h:88: The parameter name "client" adds no information, so it should be removed. [readability/parameter_name] [5] Source/WebKit/chromium/src/WebViewImpl.cpp:2692: WebViewImpl::active_client is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4] Source/WebKit/chromium/src/WebViewImpl.h:457: active_client is incorrectly named. Don't use underscores in your identifier names. [readability/naming] [4] Source/WebKit/chromium/src/WebViewImpl.h:593: One space before end of line comments [whitespace/comments] [5] Source/WebKit/chromium/src/WebFullscreenWidgetImpl.cpp:36: Alphabetical sorting problem. [build/include_order] [4] Source/WebKit/chromium/src/WebFullscreenWidgetImpl.cpp:84: One space before end of line comments [whitespace/comments] [5] Total errors found: 11 in 11 files If any of these errors are false positives, please file a bug against check-webkit-style.
Andrew Scherkus
Comment 10 2011-06-29 17:42:15 PDT
Created attachment 99194 [details] Crazy view/widget split patch Crazy view/widget split patch
Note You need to log in before you can comment on or make changes to this bug.