aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/url.rs
diff options
context:
space:
mode:
authorZhen Zhang <izgzhen@gmail.com>2016-07-11 08:33:55 +0800
committerZhen Zhang <izgzhen@gmail.com>2016-07-11 10:51:55 +0800
commit0ff6f313e881279c75daa0d6c974e726ef2759f3 (patch)
tree3bc9d920e4c3bfdf8e9acf5c03395d346ffe9d41 /components/script/dom/url.rs
parentc6827a9e66585c6d8bd9b02b77cab66b860d0af2 (diff)
downloadservo-0ff6f313e881279c75daa0d6c974e726ef2759f3.tar.gz
servo-0ff6f313e881279c75daa0d6c974e726ef2759f3.zip
Add FileID validity setting/checking logic to Blob URL implementation
Diffstat (limited to 'components/script/dom/url.rs')
-rw-r--r--components/script/dom/url.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/components/script/dom/url.rs b/components/script/dom/url.rs
index c2d7516dd6f..961d3c2fd29 100644
--- a/components/script/dom/url.rs
+++ b/components/script/dom/url.rs
@@ -16,7 +16,7 @@ use dom::urlsearchparams::URLSearchParams;
use ipc_channel::ipc;
use net_traits::IpcSend;
use net_traits::blob_url_store::parse_blob_url;
-use net_traits::filemanager_thread::{SelectedFileId, FileManagerThreadMsg};
+use net_traits::filemanager_thread::{FileOrigin, SelectedFileId, FileManagerThreadMsg};
use std::borrow::ToOwned;
use std::default::Default;
use url::quirks::domain_to_unicode;
@@ -125,7 +125,7 @@ impl URL {
return DOMString::from(URL::unicode_serialization_blob_url(&origin, &id));
}
- let id = blob.get_id();
+ let id = blob.get_blob_url_id();
DOMString::from(URL::unicode_serialization_blob_url(&origin, &id.0))
}
@@ -148,7 +148,7 @@ impl URL {
let filemanager = global.resource_threads().sender();
let id = SelectedFileId(id.simple().to_string());
let (tx, rx) = ipc::channel().unwrap();
- let msg = FileManagerThreadMsg::DecRef(id, origin, tx);
+ let msg = FileManagerThreadMsg::RevokeBlobURL(id, origin, tx);
let _ = filemanager.send(msg);
let _ = rx.recv().unwrap();
@@ -173,12 +173,11 @@ impl URL {
result
}
- // XXX: change String to FileOrigin
/* NOTE(izgzhen): WebKit will return things like blob:file:///XXX
while Chrome will return blob:null/XXX
This is not well-specified, and I prefer the WebKit way here
*/
- fn get_blob_origin(url: &Url) -> String {
+ fn get_blob_origin(url: &Url) -> FileOrigin {
if url.scheme() == "file" {
"file://".to_string()
} else {