commit ad6efdaa6c125648084a06b99c0305c99ff3d0d8
parent 66002eb2b53d9c87570d31a82bbd8ffbafa1801e
Author: Edgar Chen <echen@mozilla.com>
Date: Wed, 1 Oct 2025 06:38:06 +0000
Bug 1989559 - Mark window.fullScreen attribute deprecated in webIDL; r=webidl,saschanaz,flod
The attribute is non-standard and only implemented in Gecko.
It is used internally to switch chrome windows to fullscreen mode.
Differential Revision: https://phabricator.services.mozilla.com/D265440
Diffstat:
7 files changed, 159 insertions(+), 6 deletions(-)
diff --git a/browser/components/tests/marionette/test_no_errors_clean_profile.py b/browser/components/tests/marionette/test_no_errors_clean_profile.py
@@ -59,6 +59,12 @@ known_errors = [
# for sidebar.
"message": "toggleSidebarKb",
},
+ {
+ # Triggered as soon as anything tries to access window.fullScreen.
+ # Bug 1709294 to stop exposing window.fullScreen to the web content and
+ # the warning can be removed.
+ "message": 'JavaScript Warning: "Window.fullScreen attribute is deprecated and will be removed in the future."',
+ },
]
# Same rules apply here - please don't add anything! - but headless runs
diff --git a/dom/base/nsDeprecatedOperationList.h b/dom/base/nsDeprecatedOperationList.h
@@ -56,3 +56,4 @@ DEPRECATED_OPERATION(SVGDeselectAll)
DEPRECATED_OPERATION(IDBObjectStoreCreateIndexLocale)
DEPRECATED_OPERATION(BeforeScriptExecuteEvent)
DEPRECATED_OPERATION(AfterScriptExecuteEvent)
+DEPRECATED_OPERATION(FullscreenAttribute)
diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml
@@ -108,7 +108,7 @@ use.counter:
send_in_pings:
- use-counters
-# Total of 2369 use counter metrics (excludes denominators).
+# Total of 2377 use counter metrics (excludes denominators).
# Total of 355 'page' use counters.
use.counter.page:
svgsvgelement_getelementbyid:
@@ -14892,7 +14892,7 @@ use.counter.worker.service:
send_in_pings:
- use-counters
-# Total of 46 'deprecated operations (page)' use counters.
+# Total of 47 'deprecated operations (page)' use counters.
use.counter.deprecated_ops.page:
components:
type: counter
@@ -15676,7 +15676,24 @@ use.counter.deprecated_ops.page:
send_in_pings:
- use-counters
-# Total of 46 'deprecated operations (document)' use counters.
+ fullscreen_attribute:
+ type: counter
+ description: >
+ Whether a page used FullscreenAttribute.
+ Compare against `use.counter.top_level_content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
+# Total of 47 'deprecated operations (document)' use counters.
use.counter.deprecated_ops.doc:
components:
type: counter
@@ -16460,7 +16477,24 @@ use.counter.deprecated_ops.doc:
send_in_pings:
- use-counters
-# Total of 704 'CSS (page)' use counters.
+ fullscreen_attribute:
+ type: counter
+ description: >
+ Whether a document used FullscreenAttribute.
+ Compare against `use.counter.content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
+# Total of 707 'CSS (page)' use counters.
use.counter.css.page:
css_align_content:
type: counter
@@ -18927,6 +18961,40 @@ use.counter.css.page:
send_in_pings:
- use-counters
+ css_overflow_clip_box_block:
+ type: counter
+ description: >
+ Whether a page used the CSS property overflow-clip-box-block.
+ Compare against `use.counter.top_level_content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
+ css_overflow_clip_box_inline:
+ type: counter
+ description: >
+ Whether a page used the CSS property overflow-clip-box-inline.
+ Compare against `use.counter.top_level_content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
css_fill_opacity:
type: counter
description: >
@@ -23891,6 +23959,23 @@ use.counter.css.page:
send_in_pings:
- use-counters
+ css_overflow_clip_box:
+ type: counter
+ description: >
+ Whether a page used the CSS property overflow-clip-box.
+ Compare against `use.counter.top_level_content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
css_overscroll_behavior:
type: counter
description: >
@@ -28430,7 +28515,7 @@ use.counter.css.page:
send_in_pings:
- use-counters
-# Total of 704 'CSS (document)' use counters.
+# Total of 707 'CSS (document)' use counters.
use.counter.css.doc:
css_align_content:
type: counter
@@ -30897,6 +30982,40 @@ use.counter.css.doc:
send_in_pings:
- use-counters
+ css_overflow_clip_box_block:
+ type: counter
+ description: >
+ Whether a document used the CSS property overflow-clip-box-block.
+ Compare against `use.counter.content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
+ css_overflow_clip_box_inline:
+ type: counter
+ description: >
+ Whether a document used the CSS property overflow-clip-box-inline.
+ Compare against `use.counter.content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
css_fill_opacity:
type: counter
description: >
@@ -35861,6 +35980,23 @@ use.counter.css.doc:
send_in_pings:
- use-counters
+ css_overflow_clip_box:
+ type: counter
+ description: >
+ Whether a document used the CSS property overflow-clip-box.
+ Compare against `use.counter.content_documents_destroyed`
+ to calculate the rate.
+ bugs:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ data_reviews:
+ - https://bugzilla.mozilla.org/show_bug.cgi?id=1852098
+ notification_emails:
+ - dom-core@mozilla.com
+ - emilio@mozilla.com
+ expires: never
+ send_in_pings:
+ - use-counters
+
css_overscroll_behavior:
type: counter
description: >
diff --git a/dom/locales/en-US/chrome/dom/dom.properties b/dom/locales/en-US/chrome/dom/dom.properties
@@ -476,3 +476,6 @@ BeforeScriptExecuteEventNotSupportedWarning=Adding a listener for beforescriptex
# LOCALIZATION NOTE: Do not translate "intercept()". %1$S is the overridden option, %2$S is the new value and %3$S is the old value.
PreviousInterceptCallOptionOverriddenWarning=The ’%1$S’ option for a previous call to intercept() was overridden by ’%2$S’, and the previous value ’%3$S’ will be ignored.
+
+# LOCALIZATION NOTE: Do not translate "Window.fullScreen".
+FullscreenAttributeWarning=Window.fullScreen attribute is deprecated and will be removed in the future.
diff --git a/dom/webidl/Window.webidl b/dom/webidl/Window.webidl
@@ -487,7 +487,7 @@ partial interface Window {
[Replaceable, Throws] readonly attribute long scrollMaxX;
[Replaceable, Throws] readonly attribute long scrollMaxY;
- [Throws] attribute boolean fullScreen;
+ [Throws, Deprecated=FullscreenAttribute] attribute boolean fullScreen;
undefined updateCommands(DOMString action);
diff --git a/testing/web-platform/meta/fullscreen/api/historical.html.ini b/testing/web-platform/meta/fullscreen/api/historical.html.ini
@@ -15,3 +15,6 @@
[<video> member must not be supported: mozRequestFullScreen (uppercase S)]
expected: FAIL
+
+ [Window member must not be supported: fullScreen]
+ expected: FAIL
diff --git a/testing/web-platform/tests/fullscreen/api/historical.html b/testing/web-platform/tests/fullscreen/api/historical.html
@@ -35,4 +35,8 @@
// it is convenient to just test all names on both <video> and document.
});
});
+
+test(function() {
+ assert_false("fullScreen" in window);
+}, 'Window member must not be supported: fullScreen');
</script>