diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-11-05 23:04:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-05 23:04:58 -0500 |
commit | 147c042c5a36f75179e251454e84dd9d23435fd6 (patch) | |
tree | 265684810e564f61ca94d448db35d1077074afc6 /components | |
parent | 748f10dfc307b8c10c1b7d9b941e0e732c84a810 (diff) | |
parent | 01e0b2cb5e47c28f7b85483f5ed82a09beb60bb5 (diff) | |
download | servo-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.py | 12 | ||||
-rw-r--r-- | components/script/dom/bluetooth.rs | 32 | ||||
-rw-r--r-- | components/script/dom/dedicatedworkerglobalscope.rs | 2 | ||||
-rw-r--r-- | components/script/dom/dissimilaroriginwindow.rs | 19 | ||||
-rw-r--r-- | components/script/dom/messageport.rs | 2 | ||||
-rw-r--r-- | components/script/dom/serviceworker.rs | 2 | ||||
-rw-r--r-- | components/script/dom/webidls/Bluetooth.webidl | 2 | ||||
-rw-r--r-- | components/script/dom/webidls/BluetoothPermissionResult.webidl | 2 | ||||
-rw-r--r-- | components/script/dom/webidls/DissimilarOriginWindow.webidl | 2 | ||||
-rw-r--r-- | components/script/dom/webidls/MessagePort.webidl | 4 | ||||
-rw-r--r-- | components/script/dom/webidls/Window.webidl | 5 | ||||
-rw-r--r-- | components/script/dom/window.rs | 19 | ||||
-rw-r--r-- | components/script/dom/worker.rs | 2 |
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(), |