Title: [226795] trunk
- Revision
- 226795
- Author
- grao...@webkit.org
- Date
- 2018-01-11 12:18:35 -0800 (Thu, 11 Jan 2018)
Log Message
[iOS] There should be no controls markup generated in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=181540
<rdar://problem/35060379>
Reviewed by Eric Carlson.
Source/WebCore:
We completely forgo the display of any content when fullscreen on iOS by setting the
"visible" flag to "false" on the MediaControls, which will prevent any DOM content from
being added.
* Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype.handleEvent):
(MediaController.prototype._updateiOSFullscreenProperties):
(MediaController):
(MediaController.prototype._updateSupportingObjectsEnabledState): Deleted.
LayoutTests:
We update this test to simply check that we're removing all child nodes.
* media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt:
* media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (226794 => 226795)
--- trunk/LayoutTests/ChangeLog 2018-01-11 20:11:13 UTC (rev 226794)
+++ trunk/LayoutTests/ChangeLog 2018-01-11 20:18:35 UTC (rev 226795)
@@ -1,3 +1,16 @@
+2018-01-11 Antoine Quint <grao...@apple.com>
+
+ [iOS] There should be no controls markup generated in fullscreen
+ https://bugs.webkit.org/show_bug.cgi?id=181540
+ <rdar://problem/35060379>
+
+ Reviewed by Eric Carlson.
+
+ We update this test to simply check that we're removing all child nodes.
+
+ * media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt:
+ * media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html:
+
2018-01-11 Youenn Fablet <you...@apple.com>
Redirected iframe loading with Request.redirect=follow should fail
Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt (226794 => 226795)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt 2018-01-11 20:11:13 UTC (rev 226794)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt 2018-01-11 20:18:35 UTC (rev 226795)
@@ -8,17 +8,12 @@
Entering fullscreen.
-Obtained a webkitpresentationmodechanged event
-media.webkitDisplayingFullscreen = true.
+Entered fullscreen
PASS media.paused is false
+PASS window.internals.shadowRoot(media).querySelector('.media-controls').childElementCount became 0
-Time progressed.
-PASS elapsedTimeWhenEnteringFullscreen === elapsedTime() is true
+Exited fullscreen
-Obtained a webkitpresentationmodechanged event
-media.webkitDisplayingFullscreen = false.
-PASS elapsedTimeWhenEnteringFullscreen === elapsedTime() became false
-
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html (226794 => 226795)
--- trunk/LayoutTests/media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html 2018-01-11 20:11:13 UTC (rev 226794)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html 2018-01-11 20:18:35 UTC (rev 226795)
@@ -14,31 +14,21 @@
button.textContent = "Enter Fullscreen";
button.style = "position: absolute; left: 0; top: 0";
-let elapsedTimeWhenEnteringFullscreen;
-
media.addEventListener("webkitpresentationmodechanged", () => {
- debug("");
- debug("Obtained a webkitpresentationmodechanged event");
- debug(`media.webkitDisplayingFullscreen = ${media.webkitDisplayingFullscreen}.`);
+ if (media.webkitDisplayingFullscreen) {
+ debug("");
+ debug("Entered fullscreen");
- if (media.webkitDisplayingFullscreen) {
shouldBeFalse("media.paused");
- elapsedTimeWhenEnteringFullscreen = elapsedTime();
-
- // Let time progress and check after a while that we didn't update the tree.
- let timeupdateEventCount = 0;
- media.addEventListener("timeupdate", () => {
- timeupdateEventCount++;
- if (timeupdateEventCount == 5) {
- debug("");
- debug("Time progressed.");
- shouldBeTrue("elapsedTimeWhenEnteringFullscreen === elapsedTime()");
- media.pause();
- media.webkitExitFullscreen();
- }
+ shouldBecomeEqual("window.internals.shadowRoot(media).querySelector('.media-controls').childElementCount", "0", () => {
+ media.pause();
+ media.webkitExitFullscreen();
});
- } else
- shouldBecomeEqual("elapsedTimeWhenEnteringFullscreen === elapsedTime()", "false", endTest);
+ } else {
+ debug("");
+ debug("Exited fullscreen");
+ endTest();
+ }
});
media.addEventListener("play", () => {
@@ -63,11 +53,6 @@
pressOnElement(button);
}
-function elapsedTime()
-{
- return window.internals.shadowRoot(media).querySelectorAll(".time-label")[0].textContent;
-}
-
function startTest()
{
enterFullscreen();
Modified: trunk/Source/WebCore/ChangeLog (226794 => 226795)
--- trunk/Source/WebCore/ChangeLog 2018-01-11 20:11:13 UTC (rev 226794)
+++ trunk/Source/WebCore/ChangeLog 2018-01-11 20:18:35 UTC (rev 226795)
@@ -1,3 +1,21 @@
+2018-01-11 Antoine Quint <grao...@apple.com>
+
+ [iOS] There should be no controls markup generated in fullscreen
+ https://bugs.webkit.org/show_bug.cgi?id=181540
+ <rdar://problem/35060379>
+
+ Reviewed by Eric Carlson.
+
+ We completely forgo the display of any content when fullscreen on iOS by setting the
+ "visible" flag to "false" on the MediaControls, which will prevent any DOM content from
+ being added.
+
+ * Modules/modern-media-controls/media/media-controller.js:
+ (MediaController.prototype.handleEvent):
+ (MediaController.prototype._updateiOSFullscreenProperties):
+ (MediaController):
+ (MediaController.prototype._updateSupportingObjectsEnabledState): Deleted.
+
2018-01-11 Alex Christensen <achristen...@webkit.org>
Revert changes accidentally committed with r226789.
Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js (226794 => 226795)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2018-01-11 20:11:13 UTC (rev 226794)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js 2018-01-11 20:18:35 UTC (rev 226795)
@@ -158,7 +158,7 @@
scheduler.flushScheduledLayoutCallbacks();
} else if (event.currentTarget === this.media) {
this._updateControlsIfNeeded();
- this._updateSupportingObjectsEnabledState();
+ this._updateiOSFullscreenProperties();
if (event.type === "webkitpresentationmodechanged")
this._returnMediaLayerToInlineIfNeeded();
} else if (event.type === "keydown" && this.isFullscreen && event.key === " ") {
@@ -286,7 +286,7 @@
this.host.textTrackContainer.classList.toggle("visible-controls-bar", !this.controls.faded);
}
- _updateSupportingObjectsEnabledState()
+ _updateiOSFullscreenProperties()
{
// On iOS, we want to make sure not to update controls when we're in fullscreen since the UI
// will be completely invisible.
@@ -293,10 +293,13 @@
if (!(this.layoutTraits & LayoutTraits.iOS))
return;
- if (this.isFullscreen)
+ const isFullscreen = this.isFullscreen;
+ if (isFullscreen)
this._supportingObjects.forEach(supportingObject => supportingObject.disable());
else
this._supportingObjects.forEach(supportingObject => supportingObject.enable());
+
+ this.controls.visible = !isFullscreen;
}
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes