diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-09-15 08:34:22 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-15 08:34:22 -0500 |
commit | 0ec4ea4ee188f2e5db9d387d182c34a9d97d07cd (patch) | |
tree | 738a39d85d1ce67f5ab9d7b4a04a60cc2bf41287 /components/script/dom/workerglobalscope.rs | |
parent | b3db4b4c0dfc41ffbf566da15bd85ebdb7b1ea1f (diff) | |
parent | 314dedb96fdea9d7656a3be166aec7749d2b85da (diff) | |
download | servo-0ec4ea4ee188f2e5db9d387d182c34a9d97d07cd.tar.gz servo-0ec4ea4ee188f2e5db9d387d182c34a9d97d07cd.zip |
Auto merge of #12910 - creativcoder:swsender, r=jdm
Implement postMessage for ServiceWorkers
<!-- Please describe your changes on the following line: -->
Fixes #12773
r? @jdm
Changes:
* Implements `postMessage` on `ServiceWorker` object.
* Removes unused channels from sw and their scopes.
* Fixes a crash when calling `scope.script_chan()` in sw-scopes event handling.
---
<!-- 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 #12773
<!-- Either: -->
- [X] There are tests for these changes at `tests/html/service-worker`
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12910)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/workerglobalscope.rs')
-rw-r--r-- | components/script/dom/workerglobalscope.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 95e9bb13106..bb9a9c3f4ab 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -397,12 +397,14 @@ impl WorkerGlobalScope { } pub fn script_chan(&self) -> Box<ScriptChan + Send> { - let dedicated = - self.downcast::<DedicatedWorkerGlobalScope>(); + let dedicated = self.downcast::<DedicatedWorkerGlobalScope>(); + let service_worker = self.downcast::<ServiceWorkerGlobalScope>(); if let Some(dedicated) = dedicated { return dedicated.script_chan(); + } else if let Some(service_worker) = service_worker { + return service_worker.script_chan(); } else { - panic!("need to implement a sender for SharedWorker/ServiceWorker") + panic!("need to implement a sender for SharedWorker") } } |