Auto merge of #6746 - pcwalton:storage-task-ipc, r=jdm

net: Convert the storage task to use IPC.

r? @jdm

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6746)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2015-07-26 18:07:32 -06:00
commit 362de03902
8 changed files with 58 additions and 31 deletions

View file

@ -13,6 +13,7 @@ use dom::event::{EventHelpers, EventBubbles, EventCancelable};
use dom::storageevent::StorageEvent;
use dom::urlhelper::UrlHelper;
use dom::window::WindowHelpers;
use ipc_channel::ipc;
use util::str::DOMString;
use page::IterablePage;
use net_traits::storage_task::{StorageTask, StorageTaskMsg, StorageType};
@ -58,21 +59,21 @@ impl Storage {
impl<'a> StorageMethods for &'a Storage {
fn Length(self) -> u32 {
let (sender, receiver) = channel();
let (sender, receiver) = ipc::channel().unwrap();
self.get_storage_task().send(StorageTaskMsg::Length(sender, self.get_url(), self.storage_type)).unwrap();
receiver.recv().unwrap() as u32
}
fn Key(self, index: u32) -> Option<DOMString> {
let (sender, receiver) = channel();
let (sender, receiver) = ipc::channel().unwrap();
self.get_storage_task().send(StorageTaskMsg::Key(sender, self.get_url(), self.storage_type, index)).unwrap();
receiver.recv().unwrap()
}
fn GetItem(self, name: DOMString) -> Option<DOMString> {
let (sender, receiver) = channel();
let (sender, receiver) = ipc::channel().unwrap();
let msg = StorageTaskMsg::GetItem(sender, self.get_url(), self.storage_type, name);
self.get_storage_task().send(msg).unwrap();
@ -86,7 +87,7 @@ impl<'a> StorageMethods for &'a Storage {
}
fn SetItem(self, name: DOMString, value: DOMString) {
let (sender, receiver) = channel();
let (sender, receiver) = ipc::channel().unwrap();
let msg = StorageTaskMsg::SetItem(sender, self.get_url(), self.storage_type, name.clone(), value.clone());
self.get_storage_task().send(msg).unwrap();
@ -105,7 +106,7 @@ impl<'a> StorageMethods for &'a Storage {
}
fn RemoveItem(self, name: DOMString) {
let (sender, receiver) = channel();
let (sender, receiver) = ipc::channel().unwrap();
let msg = StorageTaskMsg::RemoveItem(sender, self.get_url(), self.storage_type, name.clone());
self.get_storage_task().send(msg).unwrap();
@ -119,7 +120,7 @@ impl<'a> StorageMethods for &'a Storage {
}
fn Clear(self) {
let (sender, receiver) = channel();
let (sender, receiver) = ipc::channel().unwrap();
self.get_storage_task().send(StorageTaskMsg::Clear(sender, self.get_url(), self.storage_type)).unwrap();
if receiver.recv().unwrap() {