From 44e05e224c4795847721b34532bdb9a0cefff17a Mon Sep 17 00:00:00 2001 From: Charles Vandevoorde Date: Tue, 28 Feb 2017 17:14:14 +0100 Subject: [PATCH] Remove support for Blob::{close, isClosed} --- components/script/dom/blob.rs | 26 +------------------ components/script/dom/filereader.rs | 13 ++-------- components/script/dom/url.rs | 12 +-------- components/script/dom/webidls/Blob.webidl | 8 +----- .../wpt/metadata/FileAPI/historical.html.ini | 5 ---- 5 files changed, 5 insertions(+), 59 deletions(-) delete mode 100644 tests/wpt/metadata/FileAPI/historical.html.ini diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index e4e623d799d..036dcfab483 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -18,7 +18,6 @@ use ipc_channel::ipc; use net_traits::{CoreResourceMsg, IpcSend}; use net_traits::blob_url_store::{BlobBuf, get_blob_origin}; use net_traits::filemanager_thread::{FileManagerThreadMsg, ReadFileProgress, RelativePos}; -use std::cell::Cell; use std::mem; use std::ops::Index; use std::path::PathBuf; @@ -75,7 +74,6 @@ pub struct Blob { blob_impl: DOMRefCell, /// content-type string type_string: String, - is_closed: Cell, } impl Blob { @@ -95,7 +93,6 @@ impl Blob { // NOTE: Guarding the format correctness here, // https://w3c.github.io/FileAPI/#dfn-type type_string: normalize_type_string(&type_string), - is_closed: Cell::new(false), } } @@ -297,9 +294,7 @@ impl Blob { impl Drop for Blob { fn drop(&mut self) { - if !self.IsClosed() { - self.clean_up_file_resource(); - } + self.clean_up_file_resource(); } } @@ -375,25 +370,6 @@ impl BlobMethods for Blob { let rel_pos = RelativePos::from_opts(start, end); Blob::new_sliced(self, rel_pos, content_type.unwrap_or(DOMString::from(""))) } - - // https://w3c.github.io/FileAPI/#dfn-isClosed - fn IsClosed(&self) -> bool { - self.is_closed.get() - } - - // https://w3c.github.io/FileAPI/#dfn-close - fn Close(&self) { - // Step 1 - if self.is_closed.get() { - return; - } - - // Step 2 - self.is_closed.set(true); - - // Step 3 - self.clean_up_file_resource(); - } } /// Get the normalized, MIME-parsable type string diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 53493dbd167..e28c08b5efa 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -375,20 +375,11 @@ impl FileReader { if self.ready_state.get() == FileReaderReadyState::Loading { return Err(Error::InvalidState); } + // Step 2 - let global = self.global(); - if blob.IsClosed() { - let exception = DOMException::new(&global, DOMErrorName::InvalidStateError); - self.error.set(Some(&exception)); - - self.dispatch_progress_event(atom!("error"), 0, None); - return Ok(()); - } - - // Step 3 self.change_ready_state(FileReaderReadyState::Loading); - // Step 4 + // Step 3 let blob_contents = Arc::new(blob.get_bytes().unwrap_or(vec![])); let type_ = blob.Type(); diff --git a/components/script/dom/url.rs b/components/script/dom/url.rs index 5cf2e867149..6c9139e99fc 100644 --- a/components/script/dom/url.rs +++ b/components/script/dom/url.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::cell::DOMRefCell; -use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods; use dom::bindings::codegen::Bindings::URLBinding::{self, URLMethods}; use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::js::{MutNullableJS, Root}; @@ -102,12 +101,6 @@ impl URL { /// and should not be trusted. See issue https://github.com/servo/servo/issues/11722 let origin = get_blob_origin(&global.get_url()); - if blob.IsClosed() { - // Generate a dummy id - let id = Uuid::new_v4(); - return DOMString::from(URL::unicode_serialization_blob_url(&origin, &id)); - } - let id = blob.get_blob_url_id(); DOMString::from(URL::unicode_serialization_blob_url(&origin, &id)) @@ -116,13 +109,10 @@ impl URL { // https://w3c.github.io/FileAPI/#dfn-revokeObjectURL pub fn RevokeObjectURL(global: &GlobalScope, url: DOMString) { /* - If the url refers to a Blob that has a readability state of CLOSED OR - if the value provided for the url argument is not a Blob URL, OR + If the value provided for the url argument is not a Blob URL OR if the value provided for the url argument does not have an entry in the Blob URL Store, this method call does nothing. User agents may display a message on the error console. - - NOTE: The first step is unnecessary, since closed blobs do not exist in the store */ let origin = get_blob_origin(&global.get_url()); diff --git a/components/script/dom/webidls/Blob.webidl b/components/script/dom/webidls/Blob.webidl index 899c1a84923..18a009d39a9 100644 --- a/components/script/dom/webidls/Blob.webidl +++ b/components/script/dom/webidls/Blob.webidl @@ -11,21 +11,15 @@ interface Blob { readonly attribute unsigned long long size; readonly attribute DOMString type; - readonly attribute boolean isClosed; - - //slice Blob into byte-ranged chunks + // slice Blob into byte-ranged chunks Blob slice([Clamp] optional long long start, [Clamp] optional long long end, optional DOMString contentType); - void close(); - }; dictionary BlobPropertyBag { - DOMString type = ""; - }; typedef (/*ArrayBuffer or ArrayBufferView or */Blob or DOMString) BlobPart; diff --git a/tests/wpt/metadata/FileAPI/historical.html.ini b/tests/wpt/metadata/FileAPI/historical.html.ini deleted file mode 100644 index f28e3f85232..00000000000 --- a/tests/wpt/metadata/FileAPI/historical.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[historical.html] - type: testharness - [Blob.close() should not be supported] - expected: FAIL -