New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 383813 link

Starred by 23 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 6
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task


Sign in to add a comment

Unprefix the Fullscreen API

Reported by phil...@opera.com, Jun 12 2014

Issue description

Comment 1 by phil...@opera.com, Jun 12 2014

Blocking: chromium:346236
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 27 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=177061

------------------------------------------------------------------
r177061 | philipj@opera.com | 2014-06-27T04:15:51.686982Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.h?r1=177061&r2=177060&pathrev=177061
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=177061&r2=177060&pathrev=177061
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLMediaElement.cpp?r1=177061&r2=177060&pathrev=177061
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=177061&r2=177060&pathrev=177061
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.cpp?r1=177061&r2=177060&pathrev=177061

Introduce FullscreenElementStack::RequestType

This replaces flags + FullScreenCheckType, for a few reasons:

 1. An UnprefixedRequest will be added, for which neither
    ALLOW_KEYBOARD_INPUT nor FullScreenCheckType is possible. Not all
    previously possible combinations are possible, either.

 2. An enum is clearer than flags at the call site. In particular,
    0 was passed to HTMLMediaElement::enterFullscreen() which would
    disallow keyboard input, which was not obivous and possibly not
    even the original intention. The behavior was preserved but should
    probably be changed to allow keyboard input in a future patch.

 3. LEGACY_MOZILLA_REQUEST as a public part of Element.h is weird.

BUG= 383813 

Review URL: https://codereview.chromium.org/356933002
-----------------------------------------------------------------
Cc: mlamouri@chromium.org
Status: Started
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 4 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=177509

------------------------------------------------------------------
r177509 | philipj@opera.com | 2014-07-04T05:38:45.338142Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=177509&r2=177508&pathrev=177509
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=177509&r2=177508&pathrev=177509

Merge the fullscreen event queues

The two queues are both processed by a single timer, so they might just
as well be a single queue, which also avoids looping over each queue
separately.

Instead of queuing Nodes, Events are created and queued. This means that
the event type is made explicit, which will make it simpler to support
both prefixed and unprefixed events using the same code.

BUG= 383813 

Review URL: https://codereview.chromium.org/365903006
-----------------------------------------------------------------
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 4 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=177512

------------------------------------------------------------------
r177512 | sigbjornf@opera.com | 2014-07-04T06:21:26.733954Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=177512&r2=177511&pathrev=177512

Oilpan: fix build after r177509.

TBR=haraken@chromium.org
BUG= 383813 
NOTRY=true

Review URL: https://codereview.chromium.org/370693002
-----------------------------------------------------------------
Project Member

Comment 7 by bugdroid1@chromium.org, Jul 17 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=178339

------------------------------------------------------------------
r178339 | philipj@opera.com | 2014-07-17T08:43:54.541801Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=178339&r2=178338&pathrev=178339
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/FullscreenController.cpp?r1=178339&r2=178338&pathrev=178339
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/testing/Internals.cpp?r1=178339&r2=178338&pathrev=178339
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/DocumentFullscreen.cpp?r1=178339&r2=178338&pathrev=178339
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=178339&r2=178338&pathrev=178339
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/testing/Internals.h?r1=178339&r2=178338&pathrev=178339
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/testing/Internals.idl?r1=178339&r2=178338&pathrev=178339

Unprefix most methods on FullscreenElementStack

fullscreenEnabled no longer even considers the webkitallowfullscreen
attribute, and the prefixes do no good internally anyway. They are
left only on the Mozilla-style API since they should generally not be
used other than for bindings.

It turned out that the Internals wrappers were unused. They were added
in http://trac.webkit.org/changeset/114790 "to facilitate writing
reproducible LayoutTests", but no tests using them were ever added.

BUG= 383813 

Review URL: https://codereview.chromium.org/390363002
-----------------------------------------------------------------
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 17 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=178360

------------------------------------------------------------------
r178360 | philipj@opera.com | 2014-07-17T11:46:40.469262Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=178360&r2=178359&pathrev=178360

Simplify an error condition in requestFullScreenForElement()

Use the existing getter for the top element and do the ancestor test
in a more direct manner.

BUG= 383813 
R=falken@chromium.org

Review URL: https://codereview.chromium.org/392913002
-----------------------------------------------------------------

Comment 10 by phil...@opera.com, Jul 23 2014

Blockedon: chromium:396575

Comment 11 by phil...@opera.com, Jul 23 2014

 Issue 396576  is about synchronizing the fullscreenchange event with animation frames. However, I don't think it needs to block unprefixing, although I will try to finish it so that both changes go into M38.

Comment 12 by phil...@opera.com, Aug 1 2014

Blockedon: chromium:399556
Project Member

Comment 14 by bugdroid1@chromium.org, Aug 8 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=179787

------------------------------------------------------------------
r179787 | chrome-bot@google.com | 2014-08-08T05:10:06.448049Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=179787&r2=179786&pathrev=179787
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLMediaElement.cpp?r1=179787&r2=179786&pathrev=179787
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=179787&r2=179786&pathrev=179787
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.cpp?r1=179787&r2=179786&pathrev=179787

Rename FullscreenElementStack::requestFullScreenForElement to requestFullscreen

It's unambigious without the suffix, and now matches the spec:
http://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen

If there ever was any disambiguity about document fullscreen vs.
element fullscreen, there isn't any longer, at least not here.

BUG= 383813 

Review URL: https://codereview.chromium.org/444033003
-----------------------------------------------------------------
Project Member

Comment 15 by bugdroid1@chromium.org, Aug 8 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=179805

------------------------------------------------------------------
r179805 | philipj@opera.com | 2014-08-08T09:06:42.029469Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/DocumentFullscreen.h?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/DocumentFullscreen.idl?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.cpp?r1=179805&r2=179804&pathrev=179805
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ElementFullscreen.cpp?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebElement.cpp?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.h?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.idl?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/tests/WebFrameTest.cpp?r1=179805&r2=179804&pathrev=179805
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ElementFullscreen.h?r1=179805&r2=179804&pathrev=179805
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ElementFullscreen.idl?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.h?r1=179805&r2=179804&pathrev=179805
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.idl?r1=179805&r2=179804&pathrev=179805

Move Web-facing fullscreen APIs to DocumentFullscreen and ElementFullscreen

This is closer to the partial interfaces of the spec:
http://fullscreen.spec.whatwg.org/#api

As a side-effect, the prefixed functions are now only used for bindings,
forcing internal clients to pick a request type more explicitly.

BUG= 383813 

Review URL: https://codereview.chromium.org/449133003
-----------------------------------------------------------------

Comment 16 by phil...@opera.com, Aug 11 2014

Blockedon: chromium:402376

Comment 17 by phil...@opera.com, Aug 11 2014

Blockedon: chromium:402378

Comment 18 by phil...@opera.com, Aug 11 2014

Blockedon: chromium:402421
Project Member

Comment 19 by bugdroid1@chromium.org, Aug 12 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180052

------------------------------------------------------------------
r180052 | philipj@opera.com | 2014-08-12T09:32:10.408486Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ElementFullscreen.cpp?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/events/EventTypeNames.in?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ElementFullscreen.h?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-prefixed-and-unprefixed-expected.txt?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-unprefixed-and-prefixed-expected.txt?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/DocumentFullscreen.idl?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api/document-fullscreen-element.html?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api/document-fullscreen-enabled.html?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/trusted-event.js?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/RuntimeEnabledFeatures.in?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/DocumentFullscreen.cpp?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ElementFullscreen.idl?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api/element-request-fullscreen.html?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/DocumentFullscreen.h?r1=180052&r2=180051&pathrev=180052
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api/document-onfullscreenchange.html?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-prefixed-and-unprefixed.html?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-unprefixed-and-prefixed.html?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api/document-exit-fullscreen.html?r1=180052&r2=180051&pathrev=180052
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api/document-onfullscreenerror.html?r1=180052&r2=180051&pathrev=180052

Implement the unprefixed the Fullscreen API

Intent to Implement and Ship:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/GLl6aWs9-EM/uTqxEmM4iGcJ

The API is only enabled for testing, to allow the recent spec changes
to be implemented with tests for the new API:  http://crbug.com/402376 

This does not add support for the :fullscreen pseudo-class, which is
tracked by a dedicate issue:  http://crbug.com/402378 

BUG= 383813 

Review URL: https://codereview.chromium.org/395633011
-----------------------------------------------------------------
Project Member

Comment 20 by bugdroid1@chromium.org, Aug 12 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180061

------------------------------------------------------------------
r180061 | sigbjornf@opera.com | 2014-08-12T11:02:37.089461Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=180061&r2=180060&pathrev=180061

Oilpan: fix build after r180052.

TBR=haraken,oilpan-reviews
BUG= 383813 
NOTRY=true

Review URL: https://codereview.chromium.org/460983002
-----------------------------------------------------------------
Project Member

Comment 21 by bugdroid1@chromium.org, Aug 12 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180062

------------------------------------------------------------------
r180062 | fdegans@chromium.org | 2014-08-12T11:15:50.246716Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=180062&r2=180061&pathrev=180062

Revert of Oilpan: fix build after r180052. (https://codereview.chromium.org/460983002/)

Reason for revert:
Android Builder failed to compile

Original issue's description:
> Oilpan: fix build after r180052.
> 
> TBR=haraken,oilpan-reviews
> BUG= 383813 
> NOTRY=true
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=180061

TBR=haraken@chromium.org,oilpan-reviews@chromium.org,sigbjornf@opera.com
NOTREECHECKS=true
NOTRY=true
BUG= 383813 

Review URL: https://codereview.chromium.org/461963002
-----------------------------------------------------------------
Project Member

Comment 22 by bugdroid1@chromium.org, Aug 12 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180070

------------------------------------------------------------------
r180070 | sigbjornf@opera.com | 2014-08-12T12:32:31.686576Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=180070&r2=180069&pathrev=180070

Oilpan: fix build after r180052.

R=haraken
BUG= 383813 

Review URL: https://codereview.chromium.org/463633004
-----------------------------------------------------------------
Project Member

Comment 23 by bugdroid1@chromium.org, Aug 14 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180243

------------------------------------------------------------------
r180243 | philipj@opera.com | 2014-08-14T06:24:25.557437Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-css.html?r1=180243&r2=180242&pathrev=180243
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=180243&r2=180242&pathrev=180243
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-twice.html?r1=180243&r2=180242&pathrev=180243
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-css-expected.txt?r1=180243&r2=180242&pathrev=180243
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/frame/UseCounter.h?r1=180243&r2=180242&pathrev=180243
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/full-screen-twice-expected.txt?r1=180243&r2=180242&pathrev=180243

Remove the fullscreen element stack exemption for webkitRequestFullScreen()

This exemption allowed the fullscreen element stack to get into a state
not otherwise possible, namely with elements in any order as opposed to
in tree order. It also seemed possible to enter fullscreen in a sibling
iframe, leading to a (cross-document) set of fullscreen elements forming
a tree instead of a simple chain, a case without any test coverage.

Removing the exemption means that a webkitfullscreenerror event will be
fired if one is already in fullscreen and requests fullscreen for an
element other than a descendant of the current fullscreen element.

The use counter was intended to tell whether any content depends on this
or not, but data will not be available for a long time yet. In order to
be affected one needs to, in fullscreen, have a currently visible button
request fullscreen for an element currently not visible, which seems
far-fetched, so site compat is probably not a problem.

The use counter for webkitRequestFullScreen() provides an upper bound:
http://www.chromestatus.com/metrics/feature/timeline/popularity/177

BUG= 383813 

Review URL: https://codereview.chromium.org/458223003
-----------------------------------------------------------------

Comment 24 by phil...@opera.com, Aug 14 2014

Blockedon: chromium:403730

Comment 25 by phil...@opera.com, Aug 14 2014

Blockedon: chromium:403741

Comment 26 by phil...@opera.com, Aug 14 2014

Blockedon: chromium:403763
Project Member

Comment 27 by bugdroid1@chromium.org, Aug 14 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180259

------------------------------------------------------------------
r180259 | philipj@opera.com | 2014-08-14T14:32:00.764602Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/model/remove-first.html?r1=180259&r2=180258&pathrev=180259
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=180259&r2=180258&pathrev=180259
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=180259&r2=180258&pathrev=180259
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ContainerNode.cpp?r1=180259&r2=180258&pathrev=180259
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/model/remove-single.html?r1=180259&r2=180258&pathrev=180259
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.cpp?r1=180259&r2=180258&pathrev=180259
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/model?r1=180259&r2=180258&pathrev=180259
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/model/remove-last.html?r1=180259&r2=180258&pathrev=180259

Sync fullscreen element removal with the spec

http://fullscreen.spec.whatwg.org/#model
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26326

TEST=LayoutTests/fullscreen/model/remove-*.html (new)
TEST=LayoutTests/fullscreen/full-screen-remove-*.html (no regression)

The distinction between fullyExitFullscreen() and exitFullscreen() was
not tested, but the new remove-last.html test fails with the old code.

BUG= 383813 

Review URL: https://codereview.chromium.org/476433002
-----------------------------------------------------------------
Project Member

Comment 28 by bugdroid1@chromium.org, Aug 18 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180433

------------------------------------------------------------------
r180433 | philipj@opera.com | 2014-08-18T07:54:59.342019Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/FrameLoaderClientImpl.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/EventHandler.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/ElementFullscreen.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderInline.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/FullscreenController.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/SelectorChecker.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/EventHandler.h?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebDocument.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Document.h?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/compositing/RenderLayerCompositor.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/page/scrolling/ScrollingCoordinator.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/resolver/SharedStyleFinder.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Element.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/WebElement.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/testing/Internals.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/tests/WebFrameTest.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderFullScreen.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/DocumentFullscreen.cpp?r1=180433&r2=180432&pathrev=180433
   D http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.cpp?r1=180433&r2=180432&pathrev=180433
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Fullscreen.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/html/HTMLMediaElement.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/css/CSSDefaultStyleSheets.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/web/ChromeClientImpl.cpp?r1=180433&r2=180432&pathrev=180433
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/RenderTreeBuilder.cpp?r1=180433&r2=180432&pathrev=180433
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Fullscreen.h?r1=180433&r2=180432&pathrev=180433
   D http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FullscreenElementStack.h?r1=180433&r2=180432&pathrev=180433

Rename FullscreenElementStack to just Fullscreen

This class does more than just manage the fullscreen element stack, and
the shorter name makes the code more readable in many places. In the
renamed Fullscreen class, it also makes it more obvious when the actual
fullscreen element stack is being manipulated.

BUG= 383813 

Review URL: https://codereview.chromium.org/476763004
-----------------------------------------------------------------
Project Member

Comment 29 by bugdroid1@chromium.org, Aug 18 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180435

------------------------------------------------------------------
r180435 | philipj@opera.com | 2014-08-18T08:43:08.345268Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/Fullscreen.cpp?r1=180435&r2=180434&pathrev=180435

Sync fullscreen element removal with the spec (again)

http://fullscreen.spec.whatwg.org/#model
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26568#c12
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26568#c16

BUG= 383813 
NOTRY=true

Review URL: https://codereview.chromium.org/477133002
-----------------------------------------------------------------
Project Member

Comment 31 by bugdroid1@chromium.org, Aug 21 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=180700

------------------------------------------------------------------
r180700 | philipj@opera.com | 2014-08-21T06:23:18.115078Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/model/remove-child.html?r1=180700&r2=180699&pathrev=180700
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/model/remove-parent.html?r1=180700&r2=180699&pathrev=180700
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fullscreen/api/element-request-fullscreen-top.html?r1=180700&r2=180699&pathrev=180700

Add tests for removing the parent/child of the fullscreen element

The parent test would fail if Fullscreen::elementRemoved() were only
called for the top-most removed element.

The child test would require a more serious misinterpretation of "in
fullscreen element stack".

BUG= 383813 

Review URL: https://codereview.chromium.org/479113003
-----------------------------------------------------------------

Comment 32 by phil...@opera.com, Oct 7 2014

Cc: benm@chromium.org mattgaunt@chromium.org
 Issue 420039  has been merged into this issue.
Hi guys,

I was just wondering where things are at with the unprefixed API, it's still prefixed in Chrome 43. The complimentary Pointer Lock API has been unprefixed for a while now.

Thanks :)

Comment 34 by phil...@opera.com, May 7 2015

#33, there's a bunch of work to do to bring the API in sync with the spec, linked as blocking bugs.
Blocking: chromium:491440

Comment 36 by phil...@opera.com, Oct 29 2015

Blockedon: chromium:240576
Cc: e...@chromium.org
Labels: -Type-Bug Type-Launch-OWP OWP-Type-NewAPI Cr-Blink-Layout
We agreed with eae@ offline that layout-dev owns driving this (will add it to https://www.chromium.org/blink/layout-team/potential-projects).

Comment 38 by phil...@opera.com, Nov 3 2015

Cc: phil...@opera.com
Owner: ----
Status: Available
Marking as available to reflect reality.

Comment 39 by Deleted ...@, Nov 4 2015

Sudan cukup2 sudahhh....hmm.

Comment 40 by phil...@opera.com, Nov 16 2015

Blocking: chromium:237173
 Issue 107288  has been merged into this issue.
Cc: -phil...@opera.com
Owner: foolip@chromium.org
Status: Started (was: Available)
Blockedon: 627790
Blockedon: 627792
Components: Blink>Fullscreen
Blockedon: 660846
Project Member

Comment 47 by bugdroid1@chromium.org, Dec 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb076a85441fa682dada999e283ff22d36ee4563

commit fb076a85441fa682dada999e283ff22d36ee4563
Author: foolip <foolip@chromium.org>
Date: Wed Dec 07 14:52:31 2016

Make media controls not depend on the webkitfullscreenchange event

With the unprefixed API, a fullscreenchange event will be fired at the
document, so this is not a reliable signal that the video element is
fullscreen.

Background: HTMLMediaElement::didEnterFullscreen() is called as part of
Fullscreen::didEnterFullscreen(), while the webkitfullscreenchange event
is fired on a timer started by Fullscreen::didEnterFullscreen().

Both before and after this change, the webkitfullscreenchange event is
fired after the post-enter MediaControls::notifyPanelWidthChanged().

Before, HTMLMediaElement::preDispatchEventHandler() called
configureMediaControls(), which would run
MediaControls::computeWhichControlsFit() with the new panel width and
update the visibility of the overflow button.

Now, MediaControls::panelWidthChangedTimerFired() will run
computeWhichControlsFit() after the event has been fired.

The difference isn't observable to web content, and it's still the case
that the media controls depend on layout to update, giving one bad frame
after entering fullscreen (or any other size-changing layout).

BUG= 383813 

Review-Url: https://codereview.chromium.org/2557043003
Cr-Commit-Position: refs/heads/master@{#436949}

[modify] https://crrev.com/fb076a85441fa682dada999e283ff22d36ee4563/third_party/WebKit/LayoutTests/media/video-controls-overflow-menu-fullscreen-button.html
[modify] https://crrev.com/fb076a85441fa682dada999e283ff22d36ee4563/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
[modify] https://crrev.com/fb076a85441fa682dada999e283ff22d36ee4563/third_party/WebKit/Source/core/html/HTMLMediaElement.h

Comment 48 by zcorpan@gmail.com, Dec 15 2016

Tests for removing prefixed names: https://github.com/w3c/web-platform-tests/pull/4332
Blockedon: -627792
Project Member

Comment 50 by bugdroid1@chromium.org, Jun 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d451c22dd200c25002a5643462e390106ef7e53

commit 5d451c22dd200c25002a5643462e390106ef7e53
Author: Philip Jägenstedt <foolip@chromium.org>
Date: Thu Jun 22 21:30:52 2017

Enable the unprefixed Fullscreen API behind experimental flag

After https://chromium-review.googlesource.com/521162 the API is quite
closely aligned with the standard, although the rendering bits still are
not.

Enabling it will make it easier to test, and might shake out compat
problems in the wild earlier.

Bug:  383813 
Change-Id: I0c9add3bdc77f689deeafb207022e5c9fea1e3bd
Reviewed-on: https://chromium-review.googlesource.com/544303
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481669}
[modify] https://crrev.com/5d451c22dd200c25002a5643462e390106ef7e53/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5

Blockedon: 736737
Labels: migrated-launch-owp Type-Task
This issue has been automatically relabelled type=task because type=launch-owp issues are now officially deprecated. The deprecation is because they were creating confusion about how to get launch approvals, which should be instead done via type=launch issues.

We recommend this issue be used for implementation tracking (for public visibility), but if you already have an issue for that, you may mark this as duplicate.

For more details see here: https://docs.google.com/document/d/1JA6RohjtZQc26bTrGoIE_bSXGXUDQz8vc6G0n_sZJ2o/edit

For any questions, please contact owencm, sshruthi, larforge
Project Member

Comment 53 by bugdroid1@chromium.org, May 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f24f5da91960f0afa3b0e325ebab7c81ece796d4

commit f24f5da91960f0afa3b0e325ebab7c81ece796d4
Author: Dave Tapuska <dtapuska@chromium.org>
Date: Wed May 30 19:05:06 2018

Support promises for fullscreen API.

Add ability to store the promises in the pending requests and exits.

Adjust tests to ensure they work correctly with promises.

BUG= 383813 

Change-Id: I81e4780d5ea25b3a1ac7fef54b1fbc9c0d31897a
Reviewed-on: https://chromium-review.googlesource.com/1075711
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562946}
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/document-onfullscreenerror.html
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-not-allowed.html
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-timing-manual.html
[add] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/promises-reject.html
[add] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/promises-resolve-manual.html
[delete] https://crrev.com/c6910841861c3e67089ec41976b47d639af670c9/third_party/WebKit/LayoutTests/external/wpt/fullscreen/interfaces-expected.txt
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/external/wpt/fullscreen/trusted-click.js
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-elements.html
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/WebKit/LayoutTests/fullscreen/trusted-click.js
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/document_fullscreen.cc
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/document_fullscreen.h
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/document_fullscreen.idl
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/element_fullscreen.cc
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/element_fullscreen.h
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/element_fullscreen.idl
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/fullscreen.cc
[modify] https://crrev.com/f24f5da91960f0afa3b0e325ebab7c81ece796d4/third_party/blink/renderer/core/fullscreen/fullscreen.h

Cc: foolip@chromium.org
Labels: M-71
Owner: dtapu...@chromium.org
Status: Fixed (was: Started)

Sign in to add a comment