mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Implements profiler for blocked recv
This commit is contained in:
parent
563f0ec824
commit
7d4e2b11e9
27 changed files with 176 additions and 58 deletions
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue