summaryrefslogtreecommitdiffstats
path: root/dom
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-09-23 08:24:14 +0000
committerMoonchild <moonchild@palemoon.org>2020-09-23 08:29:21 +0000
commit312f0b3a767112621278c97c1f5099e37238b337 (patch)
treea9733493b61ba3c4b1fd7ee11f87d9593964e077 /dom
parent04479387a21dd0bbf6006e27ec49101d1f2380a4 (diff)
downloadUXP-312f0b3a767112621278c97c1f5099e37238b337.tar
UXP-312f0b3a767112621278c97c1f5099e37238b337.tar.gz
UXP-312f0b3a767112621278c97c1f5099e37238b337.tar.lz
UXP-312f0b3a767112621278c97c1f5099e37238b337.tar.xz
UXP-312f0b3a767112621278c97c1f5099e37238b337.zip
Issue #1655: Update MediaQueryList to the current draft spec.
This make MediaQueryList inherit from EventTarget and adds MediaQueryListEvent as an interface as well as the onchange() method. This should not affect compatibility with other code; the event object is a MediaQueryListEvent instance, which is recognized as a MediaListQuery instance.
Diffstat (limited to 'dom')
-rw-r--r--dom/base/nsDocument.cpp2
-rw-r--r--dom/webidl/MediaQueryList.webidl16
-rw-r--r--dom/webidl/MediaQueryListEvent.webidl18
-rw-r--r--dom/webidl/moz.build1
4 files changed, 30 insertions, 7 deletions
diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp
index 48d23e325..0b07ef4ec 100644
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -1831,7 +1831,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsDocument)
l != &tmp->mDOMMediaQueryLists; ) {
PRCList *next = PR_NEXT_LINK(l);
MediaQueryList *mql = static_cast<MediaQueryList*>(l);
- mql->RemoveAllListeners();
+ mql->Disconnect();
l = next;
}
diff --git a/dom/webidl/MediaQueryList.webidl b/dom/webidl/MediaQueryList.webidl
index 519ddb0e5..af641a268 100644
--- a/dom/webidl/MediaQueryList.webidl
+++ b/dom/webidl/MediaQueryList.webidl
@@ -4,17 +4,21 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this IDL file is
- * http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface
+ * https://drafts.csswg.org/cssom-view/#mediaquerylist
*
* Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.
*/
-interface MediaQueryList {
+interface MediaQueryList : EventTarget {
readonly attribute DOMString media;
readonly attribute boolean matches;
- void addListener(MediaQueryListListener listener);
- void removeListener(MediaQueryListListener listener);
-};
-callback MediaQueryListListener = void (MediaQueryList list);
+ [Throws]
+ void addListener(EventListener? listener);
+
+ [Throws]
+ void removeListener(EventListener? listener);
+
+ attribute EventHandler onchange;
+};
diff --git a/dom/webidl/MediaQueryListEvent.webidl b/dom/webidl/MediaQueryListEvent.webidl
new file mode 100644
index 000000000..f3a66fb57
--- /dev/null
+++ b/dom/webidl/MediaQueryListEvent.webidl
@@ -0,0 +1,18 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * https://drafts.csswg.org/cssom-view/#mediaquerylistevent
+ */
+
+[Constructor(DOMString type, optional MediaQueryListEventInit eventInitDict)]
+interface MediaQueryListEvent : Event {
+ readonly attribute DOMString media;
+ readonly attribute boolean matches;
+};
+
+dictionary MediaQueryListEventInit : EventInit {
+ DOMString media = "";
+ boolean matches = false;
+};
diff --git a/dom/webidl/moz.build b/dom/webidl/moz.build
index 5699e7721..a4214caea 100644
--- a/dom/webidl/moz.build
+++ b/dom/webidl/moz.build
@@ -681,6 +681,7 @@ GENERATED_EVENTS_WEBIDL_FILES = [
'HashChangeEvent.webidl',
'HiddenPluginEvent.webidl',
'ImageCaptureErrorEvent.webidl',
+ 'MediaQueryListEvent.webidl',
'MediaStreamEvent.webidl',
'MediaStreamTrackEvent.webidl',
'MozSettingsEvent.webidl',