mirror of
https://github.com/servo/servo.git
synced 2025-08-29 17:18:23 +01:00
script: send StorageThreadMsg directly (#38921)
Remove the intermediate clone of an IpcSender, by directly sending. Testing: No functional changes Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This commit is contained in:
parent
91c08f49e1
commit
c4b2f3af56
1 changed files with 35 additions and 40 deletions
|
@ -5,9 +5,8 @@
|
|||
use base::id::WebViewId;
|
||||
use constellation_traits::ScriptToConstellationMessage;
|
||||
use dom_struct::dom_struct;
|
||||
use ipc_channel::ipc::IpcSender;
|
||||
use net_traits::IpcSend;
|
||||
use net_traits::storage_thread::{StorageThreadMsg, StorageType};
|
||||
use net_traits::{IpcSend, IpcSendResult};
|
||||
use profile_traits::ipc;
|
||||
use servo_url::ServoUrl;
|
||||
|
||||
|
@ -58,8 +57,8 @@ impl Storage {
|
|||
self.global().get_url()
|
||||
}
|
||||
|
||||
fn get_storage_thread(&self) -> IpcSender<StorageThreadMsg> {
|
||||
self.global().resource_threads().sender()
|
||||
fn send_storage_msg(&self, msg: StorageThreadMsg) -> IpcSendResult {
|
||||
self.global().resource_threads().send(msg)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,8 +67,7 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
|
|||
fn Length(&self) -> u32 {
|
||||
let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap();
|
||||
|
||||
self.get_storage_thread()
|
||||
.send(StorageThreadMsg::Length(
|
||||
self.send_storage_msg(StorageThreadMsg::Length(
|
||||
sender,
|
||||
self.storage_type,
|
||||
self.webview_id(),
|
||||
|
@ -83,8 +81,7 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
|
|||
fn Key(&self, index: u32) -> Option<DOMString> {
|
||||
let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap();
|
||||
|
||||
self.get_storage_thread()
|
||||
.send(StorageThreadMsg::Key(
|
||||
self.send_storage_msg(StorageThreadMsg::Key(
|
||||
sender,
|
||||
self.storage_type,
|
||||
self.webview_id(),
|
||||
|
@ -107,7 +104,7 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
|
|||
self.get_url(),
|
||||
name,
|
||||
);
|
||||
self.get_storage_thread().send(msg).unwrap();
|
||||
self.send_storage_msg(msg).unwrap();
|
||||
receiver.recv().unwrap().map(DOMString::from)
|
||||
}
|
||||
|
||||
|
@ -125,7 +122,7 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
|
|||
name.clone(),
|
||||
value.clone(),
|
||||
);
|
||||
self.get_storage_thread().send(msg).unwrap();
|
||||
self.send_storage_msg(msg).unwrap();
|
||||
match receiver.recv().unwrap() {
|
||||
Err(_) => Err(Error::QuotaExceeded {
|
||||
quota: None,
|
||||
|
@ -152,7 +149,7 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
|
|||
self.get_url(),
|
||||
name.clone(),
|
||||
);
|
||||
self.get_storage_thread().send(msg).unwrap();
|
||||
self.send_storage_msg(msg).unwrap();
|
||||
if let Some(old_value) = receiver.recv().unwrap() {
|
||||
self.broadcast_change_notification(Some(name), Some(old_value), None);
|
||||
}
|
||||
|
@ -162,8 +159,7 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
|
|||
fn Clear(&self) {
|
||||
let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap();
|
||||
|
||||
self.get_storage_thread()
|
||||
.send(StorageThreadMsg::Clear(
|
||||
self.send_storage_msg(StorageThreadMsg::Clear(
|
||||
sender,
|
||||
self.storage_type,
|
||||
self.webview_id(),
|
||||
|
@ -179,8 +175,7 @@ impl StorageMethods<crate::DomTypeHolder> for Storage {
|
|||
fn SupportedPropertyNames(&self) -> Vec<DOMString> {
|
||||
let (sender, receiver) = ipc::channel(self.global().time_profiler_chan().clone()).unwrap();
|
||||
|
||||
self.get_storage_thread()
|
||||
.send(StorageThreadMsg::Keys(
|
||||
self.send_storage_msg(StorageThreadMsg::Keys(
|
||||
sender,
|
||||
self.storage_type,
|
||||
self.webview_id(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue