aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-11-05 23:04:58 -0500
committerGitHub <noreply@github.com>2019-11-05 23:04:58 -0500
commit147c042c5a36f75179e251454e84dd9d23435fd6 (patch)
tree265684810e564f61ca94d448db35d1077074afc6 /components
parent748f10dfc307b8c10c1b7d9b941e0e732c84a810 (diff)
parent01e0b2cb5e47c28f7b85483f5ed82a09beb60bb5 (diff)
downloadservo-147c042c5a36f75179e251454e84dd9d23435fd6.tar.gz
servo-147c042c5a36f75179e251454e84dd9d23435fd6.zip
Auto merge of #24644 - saschanaz:sequence-default, r=jdm
Use IDL sequence default value <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #24643 <!-- Either: --> - [x] There are tests for these changes <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py12
-rw-r--r--components/script/dom/bluetooth.rs32
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs2
-rw-r--r--components/script/dom/dissimilaroriginwindow.rs19
-rw-r--r--components/script/dom/messageport.rs2
-rw-r--r--components/script/dom/serviceworker.rs2
-rw-r--r--components/script/dom/webidls/Bluetooth.webidl2
-rw-r--r--components/script/dom/webidls/BluetoothPermissionResult.webidl2
-rw-r--r--components/script/dom/webidls/DissimilarOriginWindow.webidl2
-rw-r--r--components/script/dom/webidls/MessagePort.webidl4
-rw-r--r--components/script/dom/webidls/Window.webidl5
-rw-r--r--components/script/dom/window.rs19
-rw-r--r--components/script/dom/worker.rs2
13 files changed, 40 insertions, 65 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 86ee03d7ddd..77c3c776c3e 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -6388,8 +6388,11 @@ class CGDictionary(CGThing):
def struct(self):
d = self.dictionary
if d.parent:
- inheritance = " pub parent: %s::%s,\n" % (self.makeModuleName(d.parent),
- self.makeClassName(d.parent))
+ typeName = "%s::%s" % (self.makeModuleName(d.parent),
+ self.makeClassName(d.parent))
+ if type_needs_tracing(d.parent):
+ typeName = "RootedTraceableBox<%s>" % typeName
+ inheritance = " pub parent: %s,\n" % typeName
else:
inheritance = ""
memberDecls = [" pub %s: %s," %
@@ -6520,10 +6523,7 @@ class CGDictionary(CGThing):
})
def membersNeedTracing(self):
- for member, _ in self.memberInfo:
- if type_needs_tracing(member.type):
- return True
- return False
+ return type_needs_tracing(self.dictionary)
@staticmethod
def makeDictionaryName(dictionary):
diff --git a/components/script/dom/bluetooth.rs b/components/script/dom/bluetooth.rs
index 989bcce27b7..fad367bb454 100644
--- a/components/script/dom/bluetooth.rs
+++ b/components/script/dom/bluetooth.rs
@@ -164,7 +164,7 @@ impl Bluetooth {
&self,
p: &Rc<Promise>,
filters: &Option<Vec<BluetoothLEScanFilterInit>>,
- optional_services: &Option<Vec<BluetoothServiceUUID>>,
+ optional_services: &[BluetoothServiceUUID],
sender: IpcSender<BluetoothResponseResult>,
) {
// TODO: Step 1: Triggered by user activation.
@@ -197,23 +197,21 @@ impl Bluetooth {
}
let mut optional_services_uuids = vec![];
- if let &Some(ref opt_services) = optional_services {
- for opt_service in opt_services {
- // Step 2.5 - 2.6.
- let uuid = match BluetoothUUID::service(opt_service.clone()) {
- Ok(u) => u.to_string(),
- Err(e) => {
- p.reject_error(e);
- return;
- },
- };
+ for opt_service in optional_services {
+ // Step 2.5 - 2.6.
+ let uuid = match BluetoothUUID::service(opt_service.clone()) {
+ Ok(u) => u.to_string(),
+ Err(e) => {
+ p.reject_error(e);
+ return;
+ },
+ };
- // Step 2.7.
- // Note: What we are doing here, is adding the not blocklisted UUIDs to the result vector,
- // instead of removing them from an already filled vector.
- if !uuid_is_blocklisted(uuid.as_ref(), Blocklist::All) {
- optional_services_uuids.push(uuid);
- }
+ // Step 2.7.
+ // Note: What we are doing here, is adding the not blocklisted UUIDs to the result vector,
+ // instead of removing them from an already filled vector.
+ if !uuid_is_blocklisted(uuid.as_ref(), Blocklist::All) {
+ optional_services_uuids.push(uuid);
}
}
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 3745ef9f1ac..f5895379003 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -619,8 +619,6 @@ impl DedicatedWorkerGlobalScopeMethods for DedicatedWorkerGlobalScope {
let mut rooted = CustomAutoRooter::new(
options
.transfer
- .as_ref()
- .unwrap_or(&Vec::with_capacity(0))
.iter()
.map(|js: &RootedTraceableBox<Heap<*mut JSObject>>| js.get())
.collect(),
diff --git a/components/script/dom/dissimilaroriginwindow.rs b/components/script/dom/dissimilaroriginwindow.rs
index c628923604e..ac596048717 100644
--- a/components/script/dom/dissimilaroriginwindow.rs
+++ b/components/script/dom/dissimilaroriginwindow.rs
@@ -141,15 +141,9 @@ impl DissimilarOriginWindowMethods for DissimilarOriginWindow {
cx: JSContext,
message: HandleValue,
target_origin: USVString,
- mut transfer: CustomAutoRooterGuard<Option<Vec<*mut JSObject>>>,
+ transfer: CustomAutoRooterGuard<Vec<*mut JSObject>>,
) -> ErrorResult {
- if transfer.is_some() {
- let mut rooted = CustomAutoRooter::new(transfer.take().unwrap());
- let transfer = Some(CustomAutoRooterGuard::new(*cx, &mut rooted));
- self.post_message_impl(&target_origin, cx, message, transfer)
- } else {
- self.post_message_impl(&target_origin, cx, message, None)
- }
+ self.post_message_impl(&target_origin, cx, message, transfer)
}
/// https://html.spec.whatwg.org/multipage/#dom-window-postmessage-options
@@ -161,14 +155,13 @@ impl DissimilarOriginWindowMethods for DissimilarOriginWindow {
) -> ErrorResult {
let mut rooted = CustomAutoRooter::new(
options
+ .parent
.transfer
- .as_ref()
- .unwrap_or(&Vec::with_capacity(0))
.iter()
.map(|js: &RootedTraceableBox<Heap<*mut JSObject>>| js.get())
.collect(),
);
- let transfer = Some(CustomAutoRooterGuard::new(*cx, &mut rooted));
+ let transfer = CustomAutoRooterGuard::new(*cx, &mut rooted);
self.post_message_impl(&options.targetOrigin, cx, message, transfer)
}
@@ -208,10 +201,10 @@ impl DissimilarOriginWindow {
target_origin: &USVString,
cx: JSContext,
message: HandleValue,
- transfer: Option<CustomAutoRooterGuard<Vec<*mut JSObject>>>,
+ transfer: CustomAutoRooterGuard<Vec<*mut JSObject>>,
) -> ErrorResult {
// Step 6-7.
- let data = structuredclone::write(cx, message, transfer)?;
+ let data = structuredclone::write(cx, message, Some(transfer))?;
self.post_message(target_origin, data)
}
diff --git a/components/script/dom/messageport.rs b/components/script/dom/messageport.rs
index 67d470a10a2..3198df50923 100644
--- a/components/script/dom/messageport.rs
+++ b/components/script/dom/messageport.rs
@@ -294,8 +294,6 @@ impl MessagePortMethods for MessagePort {
let mut rooted = CustomAutoRooter::new(
options
.transfer
- .as_ref()
- .unwrap_or(&Vec::with_capacity(0))
.iter()
.map(|js: &RootedTraceableBox<Heap<*mut JSObject>>| js.get())
.collect(),
diff --git a/components/script/dom/serviceworker.rs b/components/script/dom/serviceworker.rs
index ec64036d305..43e7245f3c5 100644
--- a/components/script/dom/serviceworker.rs
+++ b/components/script/dom/serviceworker.rs
@@ -141,8 +141,6 @@ impl ServiceWorkerMethods for ServiceWorker {
let mut rooted = CustomAutoRooter::new(
options
.transfer
- .as_ref()
- .unwrap_or(&Vec::with_capacity(0))
.iter()
.map(|js: &RootedTraceableBox<Heap<*mut JSObject>>| js.get())
.collect(),
diff --git a/components/script/dom/webidls/Bluetooth.webidl b/components/script/dom/webidls/Bluetooth.webidl
index a24206036bf..e5e135c0577 100644
--- a/components/script/dom/webidls/Bluetooth.webidl
+++ b/components/script/dom/webidls/Bluetooth.webidl
@@ -21,7 +21,7 @@ dictionary BluetoothLEScanFilterInit {
dictionary RequestDeviceOptions {
sequence<BluetoothLEScanFilterInit> filters;
- sequence<BluetoothServiceUUID> optionalServices /*= []*/;
+ sequence<BluetoothServiceUUID> optionalServices = [];
boolean acceptAllDevices = false;
};
diff --git a/components/script/dom/webidls/BluetoothPermissionResult.webidl b/components/script/dom/webidls/BluetoothPermissionResult.webidl
index 4f9f2871a2e..95c06797aef 100644
--- a/components/script/dom/webidls/BluetoothPermissionResult.webidl
+++ b/components/script/dom/webidls/BluetoothPermissionResult.webidl
@@ -8,7 +8,7 @@ dictionary BluetoothPermissionDescriptor : PermissionDescriptor {
DOMString deviceId;
// These match RequestDeviceOptions.
sequence<BluetoothLEScanFilterInit> filters;
- sequence<BluetoothServiceUUID> optionalServices/* = []*/;
+ sequence<BluetoothServiceUUID> optionalServices = [];
boolean acceptAllDevices = false;
};
diff --git a/components/script/dom/webidls/DissimilarOriginWindow.webidl b/components/script/dom/webidls/DissimilarOriginWindow.webidl
index bbfcb75b69b..b690736469a 100644
--- a/components/script/dom/webidls/DissimilarOriginWindow.webidl
+++ b/components/script/dom/webidls/DissimilarOriginWindow.webidl
@@ -25,7 +25,7 @@ interface DissimilarOriginWindow : GlobalScope {
void close();
readonly attribute boolean closed;
- [Throws] void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer /*= []*/);
+ [Throws] void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
[Throws] void postMessage(any message, optional WindowPostMessageOptions options = {});
attribute any opener;
void blur();
diff --git a/components/script/dom/webidls/MessagePort.webidl b/components/script/dom/webidls/MessagePort.webidl
index c2fd1dbd1f4..58a3f06a960 100644
--- a/components/script/dom/webidls/MessagePort.webidl
+++ b/components/script/dom/webidls/MessagePort.webidl
@@ -8,7 +8,7 @@
[Exposed=(Window,Worker)]
interface MessagePort : EventTarget {
- [Throws] void postMessage(any message, sequence<object> transfer /*= []*/);
+ [Throws] void postMessage(any message, sequence<object> transfer);
[Throws] void postMessage(any message, optional PostMessageOptions options = {});
void start();
void close();
@@ -19,5 +19,5 @@ interface MessagePort : EventTarget {
};
dictionary PostMessageOptions {
- sequence<object> transfer;
+ sequence<object> transfer = [];
};
diff --git a/components/script/dom/webidls/Window.webidl b/components/script/dom/webidls/Window.webidl
index 26edbca5c7a..f2cdeeb18a5 100644
--- a/components/script/dom/webidls/Window.webidl
+++ b/components/script/dom/webidls/Window.webidl
@@ -64,7 +64,7 @@
void cancelAnimationFrame(unsigned long handle);
[Throws]
- void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer /*= []*/);
+ void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
[Throws]
void postMessage(any message, optional WindowPostMessageOptions options = {});
@@ -175,7 +175,6 @@ partial interface Window {
readonly attribute unsigned long runningAnimationCount;
};
-dictionary WindowPostMessageOptions {
+dictionary WindowPostMessageOptions : PostMessageOptions {
USVString targetOrigin = "/";
- sequence<object> transfer;
};
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 37b5b5e3b2c..70099ee5866 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -979,19 +979,13 @@ impl WindowMethods for Window {
cx: JSContext,
message: HandleValue,
target_origin: USVString,
- mut transfer: CustomAutoRooterGuard<Option<Vec<*mut JSObject>>>,
+ transfer: CustomAutoRooterGuard<Vec<*mut JSObject>>,
) -> ErrorResult {
let incumbent = GlobalScope::incumbent().expect("no incumbent global?");
let source = incumbent.as_window();
let source_origin = source.Document().origin().immutable().clone();
- if transfer.is_some() {
- let mut rooted = CustomAutoRooter::new(transfer.take().unwrap());
- let transfer = Some(CustomAutoRooterGuard::new(*cx, &mut rooted));
- self.post_message_impl(&target_origin, source_origin, source, cx, message, transfer)
- } else {
- self.post_message_impl(&target_origin, source_origin, source, cx, message, None)
- }
+ self.post_message_impl(&target_origin, source_origin, source, cx, message, transfer)
}
/// <https://html.spec.whatwg.org/multipage/#dom-messageport-postmessage>
@@ -1003,14 +997,13 @@ impl WindowMethods for Window {
) -> ErrorResult {
let mut rooted = CustomAutoRooter::new(
options
+ .parent
.transfer
- .as_ref()
- .unwrap_or(&Vec::with_capacity(0))
.iter()
.map(|js: &RootedTraceableBox<Heap<*mut JSObject>>| js.get())
.collect(),
);
- let transfer = Some(CustomAutoRooterGuard::new(*cx, &mut rooted));
+ let transfer = CustomAutoRooterGuard::new(*cx, &mut rooted);
let incumbent = GlobalScope::incumbent().expect("no incumbent global?");
let source = incumbent.as_window();
@@ -1330,10 +1323,10 @@ impl Window {
source: &Window,
cx: JSContext,
message: HandleValue,
- transfer: Option<CustomAutoRooterGuard<Vec<*mut JSObject>>>,
+ transfer: CustomAutoRooterGuard<Vec<*mut JSObject>>,
) -> ErrorResult {
// Step 1-2, 6-8.
- let data = structuredclone::write(cx, message, transfer)?;
+ let data = structuredclone::write(cx, message, Some(transfer))?;
// Step 3-5.
let target_origin = match target_origin.0[..].as_ref() {
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index 3b9830f8ded..f08bdcab79e 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -218,8 +218,6 @@ impl WorkerMethods for Worker {
let mut rooted = CustomAutoRooter::new(
options
.transfer
- .as_ref()
- .unwrap_or(&Vec::with_capacity(0))
.iter()
.map(|js: &RootedTraceableBox<Heap<*mut JSObject>>| js.get())
.collect(),