diff --git a/components/net/storage_task.rs b/components/net/storage_task.rs index b84e4b5f6da..5f15025b77b 100644 --- a/components/net/storage_task.rs +++ b/components/net/storage_task.rs @@ -11,26 +11,32 @@ use url::Url; use util::str::DOMString; use util::task::spawn_named; +#[derive(Copy)] +pub enum StorageType { + Session, + Local +} + /// Request operations on the storage data associated with a particular url pub enum StorageTaskMsg { /// gets the number of key/value pairs present in the associated storage data - Length(Sender, Url), + Length(Sender, Url, StorageType), /// gets the name of the key at the specified index in the associated storage data - Key(Sender>, Url, u32), + Key(Sender>, Url, StorageType, u32), /// gets the value associated with the given key in the associated storage data - GetItem(Sender>, Url, DOMString), + GetItem(Sender>, Url, StorageType, DOMString), /// sets the value of the given key in the associated storage data /// TODO throw QuotaExceededError in case of error - SetItem(Sender, Url, DOMString, DOMString), + SetItem(Sender, Url, StorageType, DOMString, DOMString), /// removes the key/value pair for the given key in the associated storage data - RemoveItem(Sender, Url, DOMString), + RemoveItem(Sender, Url, StorageType, DOMString), /// clears the associated storage data by removing all the key/value pairs - Clear(Sender, Url), + Clear(Sender, Url, StorageType), /// shut down this task Exit @@ -56,14 +62,16 @@ impl StorageTaskFactory for StorageTask { struct StorageManager { port: Receiver, - data: HashMap>, + session_data: HashMap>, + local_data: HashMap>, } impl StorageManager { fn new(port: Receiver) -> StorageManager { StorageManager { port: port, - data: HashMap::new(), + session_data: HashMap::new(), + local_data: HashMap::new(), } } } @@ -72,23 +80,23 @@ impl StorageManager { fn start(&mut self) { loop { match self.port.recv().unwrap() { - StorageTaskMsg::Length(sender, url) => { - self.length(sender, url) + StorageTaskMsg::Length(sender, url, storage_type) => { + self.length(sender, url, storage_type) } - StorageTaskMsg::Key(sender, url, index) => { - self.key(sender, url, index) + StorageTaskMsg::Key(sender, url, storage_type, index) => { + self.key(sender, url, storage_type, index) } - StorageTaskMsg::SetItem(sender, url, name, value) => { - self.set_item(sender, url, name, value) + StorageTaskMsg::SetItem(sender, url, storage_type, name, value) => { + self.set_item(sender, url, storage_type, name, value) } - StorageTaskMsg::GetItem(sender, url, name) => { - self.get_item(sender, url, name) + StorageTaskMsg::GetItem(sender, url, storage_type, name) => { + self.get_item(sender, url, storage_type, name) } - StorageTaskMsg::RemoveItem(sender, url, name) => { - self.remove_item(sender, url, name) + StorageTaskMsg::RemoveItem(sender, url, storage_type, name) => { + self.remove_item(sender, url, storage_type, name) } - StorageTaskMsg::Clear(sender, url) => { - self.clear(sender, url) + StorageTaskMsg::Clear(sender, url, storage_type) => { + self.clear(sender, url, storage_type) } StorageTaskMsg::Exit => { break @@ -97,25 +105,42 @@ impl StorageManager { } } - fn length(&self, sender: Sender, url: Url) { - let origin = self.get_origin_as_string(url); - sender.send(self.data.get(&origin).map_or(0u, |entry| entry.len()) as u32).unwrap(); + fn select_data(& self, storage_type: StorageType) -> &HashMap> { + match storage_type { + StorageType::Session => &self.session_data, + StorageType::Local => &self.local_data + } } - fn key(&self, sender: Sender>, url: Url, index: u32) { + fn select_data_mut(&mut self, storage_type: StorageType) -> &mut HashMap> { + match storage_type { + StorageType::Session => &mut self.session_data, + StorageType::Local => &mut self.local_data + } + } + + fn length(&self, sender: Sender, url: Url, storage_type: StorageType) { let origin = self.get_origin_as_string(url); - sender.send(self.data.get(&origin) + let data = self.select_data(storage_type); + sender.send(data.get(&origin).map_or(0u, |entry| entry.len()) as u32).unwrap(); + } + + fn key(&self, sender: Sender>, url: Url, storage_type: StorageType, index: u32) { + let origin = self.get_origin_as_string(url); + let data = self.select_data(storage_type); + sender.send(data.get(&origin) .and_then(|entry| entry.keys().nth(index as uint)) .map(|key| key.clone())).unwrap(); } - fn set_item(&mut self, sender: Sender, url: Url, name: DOMString, value: DOMString) { + fn set_item(&mut self, sender: Sender, url: Url, storage_type: StorageType, name: DOMString, value: DOMString) { let origin = self.get_origin_as_string(url); - if !self.data.contains_key(&origin) { - self.data.insert(origin.clone(), BTreeMap::new()); + let data = self.select_data_mut(storage_type); + if !data.contains_key(&origin) { + data.insert(origin.clone(), BTreeMap::new()); } - let updated = self.data.get_mut(&origin).map(|entry| { + let updated = data.get_mut(&origin).map(|entry| { if entry.get(&origin).map_or(true, |item| item.as_slice() != value.as_slice()) { entry.insert(name.clone(), value.clone()); true @@ -127,22 +152,25 @@ impl StorageManager { sender.send(updated).unwrap(); } - fn get_item(&self, sender: Sender>, url: Url, name: DOMString) { + fn get_item(&self, sender: Sender>, url: Url, storage_type: StorageType, name: DOMString) { let origin = self.get_origin_as_string(url); - sender.send(self.data.get(&origin) + let data = self.select_data(storage_type); + sender.send(data.get(&origin) .and_then(|entry| entry.get(&name)) .map(|value| value.to_string())).unwrap(); } - fn remove_item(&mut self, sender: Sender, url: Url, name: DOMString) { + fn remove_item(&mut self, sender: Sender, url: Url, storage_type: StorageType, name: DOMString) { let origin = self.get_origin_as_string(url); - sender.send(self.data.get_mut(&origin) + let data = self.select_data_mut(storage_type); + sender.send(data.get_mut(&origin) .map_or(false, |entry| entry.remove(&name).is_some())).unwrap(); } - fn clear(&mut self, sender: Sender, url: Url) { + fn clear(&mut self, sender: Sender, url: Url, storage_type: StorageType) { let origin = self.get_origin_as_string(url); - sender.send(self.data.get_mut(&origin) + let data = self.select_data_mut(storage_type); + sender.send(data.get_mut(&origin) .map_or(false, |entry| { if !entry.is_empty() { entry.clear(); diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index fa7dcdd6ffb..e0738e3b07a 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -48,6 +48,7 @@ use layout_interface::{LayoutRPC, LayoutChan}; use libc; use msg::constellation_msg::{PipelineId, SubpageId, WindowSizeData}; use net::image_cache_task::ImageCacheTask; +use net::storage_task::StorageType; use script_traits::ScriptControlChan; use script_traits::UntrustedNodeAddress; use msg::compositor_msg::ScriptListener; @@ -231,6 +232,7 @@ no_jsmanaged_fields!(UntrustedNodeAddress); no_jsmanaged_fields!(LengthOrPercentageOrAuto); no_jsmanaged_fields!(RGBA); no_jsmanaged_fields!(Matrix2D); +no_jsmanaged_fields!(StorageType); impl JSTraceable for Box { #[inline] diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs index 2dedef9f132..d15bb12b14a 100644 --- a/components/script/dom/storage.rs +++ b/components/script/dom/storage.rs @@ -7,9 +7,9 @@ use dom::bindings::codegen::Bindings::StorageBinding::StorageMethods; use dom::bindings::global::{GlobalRef, GlobalField}; use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; -use dom::bindings::error::Fallible; use util::str::DOMString; use net::storage_task::StorageTask; +use net::storage_task::StorageType; use net::storage_task::StorageTaskMsg; use std::sync::mpsc::channel; use url::Url; @@ -18,22 +18,20 @@ use url::Url; pub struct Storage { reflector_: Reflector, global: GlobalField, + storage_type: StorageType } impl Storage { - fn new_inherited(global: &GlobalRef) -> Storage { + fn new_inherited(global: &GlobalRef, storage_type: StorageType) -> Storage { Storage { reflector_: Reflector::new(), global: GlobalField::from_rooted(global), + storage_type: storage_type } } - pub fn new(global: &GlobalRef) -> Temporary { - reflect_dom_object(box Storage::new_inherited(global), *global, StorageBinding::Wrap) - } - - pub fn Constructor(global: &GlobalRef) -> Fallible> { - Ok(Storage::new(global)) + pub fn new(global: &GlobalRef, storage_type: StorageType) -> Temporary { + reflect_dom_object(box Storage::new_inherited(global, storage_type), *global, StorageBinding::Wrap) } fn get_url(&self) -> Url { @@ -54,21 +52,21 @@ impl<'a> StorageMethods for JSRef<'a, Storage> { fn Length(self) -> u32 { let (sender, receiver) = channel(); - self.get_storage_task().send(StorageTaskMsg::Length(sender, self.get_url())).unwrap(); + self.get_storage_task().send(StorageTaskMsg::Length(sender, self.get_url(), self.storage_type)).unwrap(); receiver.recv().unwrap() } fn Key(self, index: u32) -> Option { let (sender, receiver) = channel(); - self.get_storage_task().send(StorageTaskMsg::Key(sender, self.get_url(), index)).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 { let (sender, receiver) = channel(); - self.get_storage_task().send(StorageTaskMsg::GetItem(sender, self.get_url(), name)).unwrap(); + self.get_storage_task().send(StorageTaskMsg::GetItem(sender, self.get_url(), self.storage_type, name)).unwrap(); receiver.recv().unwrap() } @@ -81,7 +79,7 @@ impl<'a> StorageMethods for JSRef<'a, Storage> { fn SetItem(self, name: DOMString, value: DOMString) { let (sender, receiver) = channel(); - self.get_storage_task().send(StorageTaskMsg::SetItem(sender, self.get_url(), name, value)).unwrap(); + self.get_storage_task().send(StorageTaskMsg::SetItem(sender, self.get_url(), self.storage_type, name, value)).unwrap(); if receiver.recv().unwrap() { //TODO send notification } @@ -98,7 +96,7 @@ impl<'a> StorageMethods for JSRef<'a, Storage> { fn RemoveItem(self, name: DOMString) { let (sender, receiver) = channel(); - self.get_storage_task().send(StorageTaskMsg::RemoveItem(sender, self.get_url(), name)).unwrap(); + self.get_storage_task().send(StorageTaskMsg::RemoveItem(sender, self.get_url(), self.storage_type, name)).unwrap(); if receiver.recv().unwrap() { //TODO send notification } @@ -111,10 +109,9 @@ impl<'a> StorageMethods for JSRef<'a, Storage> { fn Clear(self) { let (sender, receiver) = channel(); - self.get_storage_task().send(StorageTaskMsg::Clear(sender, self.get_url())).unwrap(); + self.get_storage_task().send(StorageTaskMsg::Clear(sender, self.get_url(), self.storage_type)).unwrap(); if receiver.recv().unwrap() { //TODO send notification } } } - diff --git a/components/script/dom/webidls/Window.webidl b/components/script/dom/webidls/Window.webidl index ea8559dadb7..c24057eeeba 100644 --- a/components/script/dom/webidls/Window.webidl +++ b/components/script/dom/webidls/Window.webidl @@ -134,3 +134,10 @@ interface WindowSessionStorage { readonly attribute Storage sessionStorage; }; Window implements WindowSessionStorage; + +// https://html.spec.whatwg.org/multipage/webstorage.html#dom-localstorage +[NoInterfaceObject] +interface WindowLocalStorage { + readonly attribute Storage localStorage; +}; +Window implements WindowLocalStorage; diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index e7b2233cff1..1e67ebaaa60 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -39,7 +39,7 @@ use msg::compositor_msg::ScriptListener; use msg::constellation_msg::{LoadData, PipelineId, SubpageId, ConstellationChan, WindowSizeData}; use net::image_cache_task::ImageCacheTask; use net::resource_task::ResourceTask; -use net::storage_task::StorageTask; +use net::storage_task::{StorageTask, StorageType}; use util::geometry::{self, Au, MAX_RECT}; use util::opts; use util::str::{DOMString,HTML_SPACE_CHARACTERS}; @@ -95,6 +95,7 @@ pub struct Window { navigation_start_precise: f64, screen: MutNullableJS, session_storage: MutNullableJS, + local_storage: MutNullableJS, timers: TimerManager, /// For providing instructions to an optional devtools server. @@ -288,7 +289,11 @@ impl<'a> WindowMethods for JSRef<'a, Window> { } fn SessionStorage(self) -> Temporary { - self.session_storage.or_init(|| Storage::new(&GlobalRef::Window(self))) + self.session_storage.or_init(|| Storage::new(&GlobalRef::Window(self), StorageType::Session)) + } + + fn LocalStorage(self) -> Temporary { + self.local_storage.or_init(|| Storage::new(&GlobalRef::Window(self), StorageType::Local)) } fn Console(self) -> Temporary { @@ -775,6 +780,7 @@ impl Window { navigation_start_precise: time::precise_time_ns() as f64, screen: Default::default(), session_storage: Default::default(), + local_storage: Default::default(), timers: TimerManager::new(), id: id, subpage_id: subpage_id, diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index d664d89fc2c..a6591ee1fce 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -8367,9 +8367,6 @@ [Window interface: calling createImageBitmap(ImageBitmapSource,long,long,long,long) on window with too few arguments must throw TypeError] expected: FAIL - [Window interface: window must inherit property "localStorage" with the proper type (124)] - expected: FAIL - [BarProp interface: existence and properties of interface object] expected: FAIL diff --git a/tests/wpt/metadata/webstorage/event_local_key.html.ini b/tests/wpt/metadata/webstorage/event_local_key.html.ini index 5f54d432d31..04177a58d9d 100644 --- a/tests/wpt/metadata/webstorage/event_local_key.html.ini +++ b/tests/wpt/metadata/webstorage/event_local_key.html.ini @@ -1,5 +1,4 @@ [event_local_key.html] type: testharness - [Web Storage] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/webstorage/event_local_newvalue.html.ini b/tests/wpt/metadata/webstorage/event_local_newvalue.html.ini index 981a1cc71f9..018fa4c03ca 100644 --- a/tests/wpt/metadata/webstorage/event_local_newvalue.html.ini +++ b/tests/wpt/metadata/webstorage/event_local_newvalue.html.ini @@ -1,5 +1,4 @@ [event_local_newvalue.html] type: testharness - [Web Storage] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/webstorage/event_local_oldvalue.html.ini b/tests/wpt/metadata/webstorage/event_local_oldvalue.html.ini index 47af2218771..68d406e1016 100644 --- a/tests/wpt/metadata/webstorage/event_local_oldvalue.html.ini +++ b/tests/wpt/metadata/webstorage/event_local_oldvalue.html.ini @@ -1,5 +1,3 @@ [event_local_oldvalue.html] type: testharness - [Web Storage] - expected: FAIL - + expected: TIMEOUT diff --git a/tests/wpt/metadata/webstorage/event_local_storagearea.html.ini b/tests/wpt/metadata/webstorage/event_local_storagearea.html.ini index a62e41a3dc0..b77fc198195 100644 --- a/tests/wpt/metadata/webstorage/event_local_storagearea.html.ini +++ b/tests/wpt/metadata/webstorage/event_local_storagearea.html.ini @@ -1,5 +1,3 @@ [event_local_storagearea.html] type: testharness - [Web Storage] - expected: FAIL - + expected: TIMEOUT diff --git a/tests/wpt/metadata/webstorage/event_local_url.html.ini b/tests/wpt/metadata/webstorage/event_local_url.html.ini index 722350a9237..65eb22478b1 100644 --- a/tests/wpt/metadata/webstorage/event_local_url.html.ini +++ b/tests/wpt/metadata/webstorage/event_local_url.html.ini @@ -1,5 +1,3 @@ [event_local_url.html] type: testharness - [Web Storage] - expected: FAIL - + expected: TIMEOUT diff --git a/tests/wpt/metadata/webstorage/idlharness.html.ini b/tests/wpt/metadata/webstorage/idlharness.html.ini index 8bbc54402a1..f592faf9b40 100644 --- a/tests/wpt/metadata/webstorage/idlharness.html.ini +++ b/tests/wpt/metadata/webstorage/idlharness.html.ini @@ -6,42 +6,6 @@ [Storage interface object length] expected: FAIL - [Storage must be primary interface of window.localStorage] - expected: FAIL - - [Stringification of window.localStorage] - expected: FAIL - - [Storage interface: window.localStorage must inherit property "length" with the proper type (0)] - expected: FAIL - - [Storage interface: window.localStorage must inherit property "key" with the proper type (1)] - expected: FAIL - - [Storage interface: calling key(unsigned long) on window.localStorage with too few arguments must throw TypeError] - expected: FAIL - - [Storage interface: window.localStorage must inherit property "getItem" with the proper type (2)] - expected: FAIL - - [Storage interface: calling getItem(DOMString) on window.localStorage with too few arguments must throw TypeError] - expected: FAIL - - [Storage interface: window.localStorage must inherit property "setItem" with the proper type (3)] - expected: FAIL - - [Storage interface: calling setItem(DOMString,DOMString) on window.localStorage with too few arguments must throw TypeError] - expected: FAIL - - [Storage interface: window.localStorage must inherit property "removeItem" with the proper type (4)] - expected: FAIL - - [Storage interface: calling removeItem(DOMString) on window.localStorage with too few arguments must throw TypeError] - expected: FAIL - - [Storage interface: window.localStorage must inherit property "clear" with the proper type (5)] - expected: FAIL - [StorageEvent interface: existence and properties of interface object] expected: FAIL diff --git a/tests/wpt/metadata/webstorage/missing_arguments.html.ini b/tests/wpt/metadata/webstorage/missing_arguments.html.ini index f77922a2628..185bf2084c8 100644 --- a/tests/wpt/metadata/webstorage/missing_arguments.html.ini +++ b/tests/wpt/metadata/webstorage/missing_arguments.html.ini @@ -1,19 +1,5 @@ [missing_arguments.html] type: testharness - [Should throw TypeError for function "function () { localStorage.key(); }".] - expected: FAIL - - [Should throw TypeError for function "function () { localStorage.getItem(); }".] - expected: FAIL - - [Should throw TypeError for function "function () { localStorage.setItem(); }".] - expected: FAIL - - [Should throw TypeError for function "function () { localStorage.setItem("a"); }".] - expected: FAIL - - [Should throw TypeError for function "function () { localStorage.removeItem(); }".] - expected: FAIL [Should throw TypeError for function "function () { new StorageEvent(); }".] expected: FAIL diff --git a/tests/wpt/metadata/webstorage/storage_local_builtins.html.ini b/tests/wpt/metadata/webstorage/storage_local_builtins.html.ini index 6d9e7fcb5a4..5bdcdc55b49 100644 --- a/tests/wpt/metadata/webstorage/storage_local_builtins.html.ini +++ b/tests/wpt/metadata/webstorage/storage_local_builtins.html.ini @@ -1,3 +1,4 @@ [storage_local_builtins.html] type: testharness - expected: TIMEOUT + [Web Storage] + expected: FAIL diff --git a/tests/wpt/metadata/webstorage/storage_local_clear.html.ini b/tests/wpt/metadata/webstorage/storage_local_clear.html.ini deleted file mode 100644 index 728b5ddd8b6..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_clear.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_clear.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_clear_js.html.ini b/tests/wpt/metadata/webstorage/storage_local_clear_js.html.ini deleted file mode 100644 index c64e382a913..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_clear_js.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_clear_js.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_getitem.html.ini b/tests/wpt/metadata/webstorage/storage_local_getitem.html.ini deleted file mode 100644 index 47d478c1b2b..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_getitem.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_getitem.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_getitem_js.html.ini b/tests/wpt/metadata/webstorage/storage_local_getitem_js.html.ini deleted file mode 100644 index 2f1bf472f6e..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_getitem_js.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_getitem_js.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_in_js.html.ini b/tests/wpt/metadata/webstorage/storage_local_in_js.html.ini index cca131c9660..1e7897cf54b 100644 --- a/tests/wpt/metadata/webstorage/storage_local_in_js.html.ini +++ b/tests/wpt/metadata/webstorage/storage_local_in_js.html.ini @@ -1,8 +1,5 @@ [storage_local_in_js.html] type: testharness - [Web Storage] - expected: FAIL - [Web Storage 1] expected: FAIL diff --git a/tests/wpt/metadata/webstorage/storage_local_index_js.html.ini b/tests/wpt/metadata/webstorage/storage_local_index_js.html.ini index 812afee1720..78171ba283b 100644 --- a/tests/wpt/metadata/webstorage/storage_local_index_js.html.ini +++ b/tests/wpt/metadata/webstorage/storage_local_index_js.html.ini @@ -1,5 +1,4 @@ [storage_local_index_js.html] type: testharness - [Web Storage] + [Web Storage 3] expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_key.html.ini b/tests/wpt/metadata/webstorage/storage_local_key.html.ini index acb79d11732..6c1b6d8aac8 100644 --- a/tests/wpt/metadata/webstorage/storage_local_key.html.ini +++ b/tests/wpt/metadata/webstorage/storage_local_key.html.ini @@ -1,5 +1,5 @@ [storage_local_key.html] type: testharness - [Web Storage] + [Web Storage 3] expected: FAIL diff --git a/tests/wpt/metadata/webstorage/storage_local_length.html.ini b/tests/wpt/metadata/webstorage/storage_local_length.html.ini deleted file mode 100644 index a33b04f84a8..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_length.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_length.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_length_js.html.ini b/tests/wpt/metadata/webstorage/storage_local_length_js.html.ini deleted file mode 100644 index 44e5a8f5097..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_length_js.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_length_js.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_removeitem.html.ini b/tests/wpt/metadata/webstorage/storage_local_removeitem.html.ini deleted file mode 100644 index 9bf7c2fee12..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_removeitem.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_removeitem.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_removeitem_js.html.ini b/tests/wpt/metadata/webstorage/storage_local_removeitem_js.html.ini deleted file mode 100644 index 1584e37b132..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_removeitem_js.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_removeitem_js.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_setitem.html.ini b/tests/wpt/metadata/webstorage/storage_local_setitem.html.ini deleted file mode 100644 index 0dea107acdd..00000000000 --- a/tests/wpt/metadata/webstorage/storage_local_setitem.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[storage_local_setitem.html] - type: testharness - [Web Storage] - expected: FAIL - diff --git a/tests/wpt/metadata/webstorage/storage_local_setitem_js.html.ini b/tests/wpt/metadata/webstorage/storage_local_setitem_js.html.ini index 249159c2484..cb80d1bc2d2 100644 --- a/tests/wpt/metadata/webstorage/storage_local_setitem_js.html.ini +++ b/tests/wpt/metadata/webstorage/storage_local_setitem_js.html.ini @@ -1,5 +1,14 @@ [storage_local_setitem_js.html] type: testharness - [Web Storage] + [Web Storage 4] + expected: FAIL + [Web Storage 6] + expected: FAIL + [Web Storage 7] + expected: FAIL + [Web Storage 8] + expected: FAIL + [Web Storage 9] + expected: FAIL + [Web Storage 10] expected: FAIL -