Bug 44797 - fullscreen javascript bindings not implemented for v8
Summary: fullscreen javascript bindings not implemented for v8
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC OS X 10.5
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 55297
Blocks: 55726
  Show dependency treegraph
 
Reported: 2010-08-27 14:40 PDT by Tony Chang
Modified: 2011-03-03 16:53 PST (History)
12 users (show)

See Also:


Attachments
Patch (8.98 KB, patch)
2011-02-22 16:28 PST, David Dorwin
no flags Details | Formatted Diff | Diff
Addressed Darin's feedback. TODO -> FIXME (8.96 KB, patch)
2011-02-23 15:22 PST, David Dorwin
no flags Details | Formatted Diff | Diff
Fixed the build break when ENABLE_FULLSCREEN_API is not 1 and used notImplemented() as Eric suggested. (8.94 KB, patch)
2011-02-24 14:39 PST, David Dorwin
no flags Details | Formatted Diff | Diff
Added UNUSED_PARAM(). (9.15 KB, patch)
2011-02-24 15:12 PST, David Dorwin
no flags Details | Formatted Diff | Diff
Removed whitespace. (9.14 KB, patch)
2011-02-24 16:40 PST, David Dorwin
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tony Chang 2010-08-27 14:40:40 PDT
These were added http://trac.webkit.org/changeset/66251, but need to be implemented for V8.

Of course, the related layout tests are also failing.

cc-ing dglazkov to triage.  I'm going to add to test_expectations for now.
Comment 1 David Dorwin 2011-02-22 16:28:40 PST
Created attachment 83411 [details]
Patch
Comment 2 David Dorwin 2011-02-22 16:31:26 PST
With this patch and another small one to Chromium, Chromium supports the WebKit Full Screen APIs and passes all the layout tests when --enable-fullscreen is specified. The layout tests remain disabled until we make this the default.

As mentioned in the patch description, the fullscreen rendering still needs to be implemented.
Comment 3 Darin Fisher (:fishd, Google) 2011-02-23 14:55:53 PST
Comment on attachment 83411 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=83411&action=review

I only reviewed the WebKit/chromium changes.

> Source/WebKit/chromium/public/WebSettings.h:114
> +    virtual void setFullScreenEnabled(bool) = 0;

LGTM for this WebKit API change.

> Source/WebKit/chromium/src/ChromeClientImpl.cpp:872
> +    // TODO(ddorwin): We may need to call these someplace else when window resizes.

TODO(ddorwin) -> FIXME

> Source/WebKit/chromium/src/ChromeClientImpl.cpp:879
> +    // TODO(ddorwin): We may need to call these someplace else when window resizes.

ditto

> Source/WebKit/chromium/src/ChromeClientImpl.cpp:886
> +    // TODO(ddorwin): Implement.

ditto
Comment 4 David Dorwin 2011-02-23 15:22:01 PST
Created attachment 83561 [details]
Addressed Darin's feedback. TODO -> FIXME
Comment 5 Eric Seidel (no email) 2011-02-24 02:41:39 PST
Comment on attachment 83561 [details]
Addressed Darin's feedback. TODO -> FIXME

View in context: https://bugs.webkit.org/attachment.cgi?id=83561&action=review

Seems reasonable.

> Source/WebKit/chromium/src/ChromeClientImpl.cpp:886
> +    // FIXME: Implement.

we have a notImplemented() call which may be more useful than a FIXME.
Comment 6 WebKit Commit Bot 2011-02-24 10:00:14 PST
Comment on attachment 83561 [details]
Addressed Darin's feedback. TODO -> FIXME

Clearing flags on attachment: 83561

Committed r79584: <http://trac.webkit.org/changeset/79584>
Comment 7 WebKit Commit Bot 2011-02-24 10:00:19 PST
All reviewed patches have been landed.  Closing bug.
Comment 8 James Robinson 2011-02-24 10:31:36 PST
This doesn't compile if ENABLE_FULLSCREEN_API is not set to true (which means it's broken on the canaries currently since they use features_overrides.gypi).  At a minimum you need a feature guard inside WebSettingsImpl::setFullScreenEnabled(bool enabled).
Comment 9 James Robinson 2011-02-24 10:38:07 PST
Reverted r79584 for reason:

[chromium] Patch does not compile if ENABLE_FULLSCREEN_API is not set

Committed r79588: <http://trac.webkit.org/changeset/79588>
Comment 10 David Dorwin 2011-02-24 14:39:25 PST
Created attachment 83724 [details]
Fixed the build break when ENABLE_FULLSCREEN_API is not 1 and used notImplemented() as Eric suggested.
Comment 11 James Robinson 2011-02-24 14:51:16 PST
Comment on attachment 83724 [details]
Fixed the build break when ENABLE_FULLSCREEN_API is not 1 and used notImplemented() as Eric suggested.

Looks like you'll get an unused variable warning in WebSettingsImpl::setFullScreenEnabled(bool enabled) if ENABLE(FULLSCREEN_API) is false, which is a compile error on at least some configs.  We have an UNUSED_PARAM() macro for such things.
Comment 12 David Dorwin 2011-02-24 15:12:48 PST
Created attachment 83726 [details]
Added UNUSED_PARAM().

Thanks for catching that. The Mac Chromium config is apparently not one of them.
Comment 13 Darin Fisher (:fishd, Google) 2011-02-24 15:43:43 PST
Comment on attachment 83726 [details]
Added UNUSED_PARAM().

View in context: https://bugs.webkit.org/attachment.cgi?id=83726&action=review

R=me, but please fix the nit before committing.

> Source/WebKit/chromium/src/ChromeClientImpl.cpp:889
> +  

please do not add gratuitous whitespace.  only one new line here.
Comment 14 WebKit Review Bot 2011-02-24 15:58:56 PST
http://trac.webkit.org/changeset/79588 might have broken GTK Linux 32-bit Release
Comment 15 David Dorwin 2011-02-24 16:40:04 PST
Created attachment 83747 [details]
Removed whitespace.
Comment 16 WebKit Commit Bot 2011-02-26 02:18:04 PST
Comment on attachment 83747 [details]
Removed whitespace.

Clearing flags on attachment: 83747

Committed r79774: <http://trac.webkit.org/changeset/79774>
Comment 17 WebKit Commit Bot 2011-02-26 02:18:11 PST
All reviewed patches have been landed.  Closing bug.
Comment 19 Ryosuke Niwa 2011-02-26 07:37:37 PST
(In reply to comment #18)
> Broke Chromium Windows:
> http://build.webkit.org/builders/Chromium%20Win%20Release/builds/19456/steps/compile-webkit/logs/stdio

I don't think this is a real failure after all.  It's failing on build.webkit.org but building fine on build.chromium.org.  We need to investigate what's happening though.
Comment 20 David Dorwin 2011-02-26 11:12:53 PST
(In reply to comment #19)
> (In reply to comment #18)
> > Broke Chromium Windows:
> > http://build.webkit.org/builders/Chromium%20Win%20Release/builds/19456/steps/compile-webkit/logs/stdio
> 
> I don't think this is a real failure after all.  It's failing on build.webkit.org but building fine on build.chromium.org.  We need to investigate what's happening though.

I think a clobber of the WebKit Chromium bots should resolve this. Looking at the build output, Document.cpp was not rebuilt even though the value of ENABLE_FULLSCREEN_API changed in Source/WebKit/chromium/features.gypi. The new value is being picked up in ChromeClientImpl.cpp, causing ChromeClientImpl::exitFullScreenForElement() to be compiled.

The full Chromium build still has ENABLE_FULLSCREEN_API=0 until I check in the corresponding Chromium CL.
Comment 21 David Dorwin 2011-02-26 12:56:08 PST
(In reply to comment #20)

The Chromium Win bot is passing now.