diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-03-22 16:38:32 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-22 16:38:32 -0400 |
commit | f467bdce1ba95e950b01f59ba284873137bca5d5 (patch) | |
tree | 34a249c2341216233d407c1e9c7a568698ccf5d5 /components/script/dom/storage.rs | |
parent | c20d0c00d711cda61ad1b35f15f2fb563c042c5e (diff) | |
parent | 7d4e2b11e940545eaa74877b75908e1e02f6eeb5 (diff) | |
download | servo-f467bdce1ba95e950b01f59ba284873137bca5d5.tar.gz servo-f467bdce1ba95e950b01f59ba284873137bca5d5.zip |
Auto merge of #20132 - nakul02:issue_19223, r=jdm
Profiler for blocked IpcReceiver::recv()
<!-- Please describe your changes on the following line: -->
Implements feature #19223
---
<!-- 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 #19223 (github issue number if applicable).
<!-- 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. -->
WIP.
@jdm - this is the new profiler : "Blocked at IPC Receive"
Should I dig through all the calls to `ipc::channel` and replace them with this profiled `IpcReceiver`?

<!-- 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/20132)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/storage.rs')
-rw-r--r-- | components/script/dom/storage.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs index 37ff6a69fe3..b2c3783c010 100644 --- a/components/script/dom/storage.rs +++ b/components/script/dom/storage.rs @@ -14,9 +14,10 @@ use dom::event::{Event, EventBubbles, EventCancelable}; use dom::storageevent::StorageEvent; use dom::window::Window; use dom_struct::dom_struct; -use ipc_channel::ipc::{self, IpcSender}; +use ipc_channel::ipc::IpcSender; use net_traits::IpcSend; use net_traits::storage_thread::{StorageThreadMsg, StorageType}; +use profile_traits::ipc; use script_traits::ScriptMsg; use servo_url::ServoUrl; use task_source::TaskSource; @@ -52,7 +53,7 @@ impl Storage { impl StorageMethods for Storage { // https://html.spec.whatwg.org/multipage/#dom-storage-length fn Length(&self) -> u32 { - let (sender, receiver) = ipc::channel().unwrap(); + let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap(); self.get_storage_thread().send(StorageThreadMsg::Length(sender, self.get_url(), self.storage_type)).unwrap(); receiver.recv().unwrap() as u32 @@ -60,7 +61,7 @@ impl StorageMethods for Storage { // https://html.spec.whatwg.org/multipage/#dom-storage-key fn Key(&self, index: u32) -> Option<DOMString> { - let (sender, receiver) = ipc::channel().unwrap(); + let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap(); self.get_storage_thread() .send(StorageThreadMsg::Key(sender, self.get_url(), self.storage_type, index)) @@ -70,7 +71,7 @@ impl StorageMethods for Storage { // https://html.spec.whatwg.org/multipage/#dom-storage-getitem fn GetItem(&self, name: DOMString) -> Option<DOMString> { - let (sender, receiver) = ipc::channel().unwrap(); + let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap(); let name = String::from(name); let msg = StorageThreadMsg::GetItem(sender, self.get_url(), self.storage_type, name); @@ -80,7 +81,7 @@ impl StorageMethods for Storage { // https://html.spec.whatwg.org/multipage/#dom-storage-setitem fn SetItem(&self, name: DOMString, value: DOMString) -> ErrorResult { - let (sender, receiver) = ipc::channel().unwrap(); + let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap(); let name = String::from(name); let value = String::from(value); @@ -99,7 +100,7 @@ impl StorageMethods for Storage { // https://html.spec.whatwg.org/multipage/#dom-storage-removeitem fn RemoveItem(&self, name: DOMString) { - let (sender, receiver) = ipc::channel().unwrap(); + let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap(); let name = String::from(name); let msg = StorageThreadMsg::RemoveItem(sender, self.get_url(), self.storage_type, name.clone()); @@ -111,7 +112,7 @@ impl StorageMethods for Storage { // https://html.spec.whatwg.org/multipage/#dom-storage-clear fn Clear(&self) { - let (sender, receiver) = ipc::channel().unwrap(); + let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap(); self.get_storage_thread().send(StorageThreadMsg::Clear(sender, self.get_url(), self.storage_type)).unwrap(); if receiver.recv().unwrap() { @@ -121,7 +122,7 @@ impl StorageMethods for Storage { // https://html.spec.whatwg.org/multipage/#the-storage-interface:supported-property-names fn SupportedPropertyNames(&self) -> Vec<DOMString> { - let (sender, receiver) = ipc::channel().unwrap(); + let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap(); self.get_storage_thread().send(StorageThreadMsg::Keys(sender, self.get_url(), self.storage_type)).unwrap(); receiver.recv() |