aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorShinichi Morimoto <shnmorimoto@gmail.com>2019-11-13 15:37:53 +0900
committerShinichi Morimoto <shnmorimoto@gmail.com>2019-11-18 22:44:07 +0900
commit2d995ba41a73e42c9710e1fec132b5d3b501581e (patch)
tree175b43d9eea2f059c41fd8a0d59e34b954f2b63a /components/script
parentdfa78986a6f74176bc36f4ba29969ec421a8730c (diff)
downloadservo-2d995ba41a73e42c9710e1fec132b5d3b501581e.tar.gz
servo-2d995ba41a73e42c9710e1fec132b5d3b501581e.zip
check same-origin and url against the blob beign revoked
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/url.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/components/script/dom/url.rs b/components/script/dom/url.rs
index 9952739243b..cc6c83e2c18 100644
--- a/components/script/dom/url.rs
+++ b/components/script/dom/url.rs
@@ -129,13 +129,15 @@ impl URL {
let origin = get_blob_origin(&global.get_url());
if let Ok(url) = ServoUrl::parse(&url) {
- if let Ok((id, _)) = parse_blob_url(&url) {
- let resource_threads = global.resource_threads();
- let (tx, rx) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
- let msg = FileManagerThreadMsg::RevokeBlobURL(id, origin, tx);
- let _ = resource_threads.send(CoreResourceMsg::ToFileManager(msg));
-
- let _ = rx.recv().unwrap();
+ if url.fragment().is_none() && origin == get_blob_origin(&url) {
+ if let Ok((id, _)) = parse_blob_url(&url) {
+ let resource_threads = global.resource_threads();
+ let (tx, rx) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
+ let msg = FileManagerThreadMsg::RevokeBlobURL(id, origin, tx);
+ let _ = resource_threads.send(CoreResourceMsg::ToFileManager(msg));
+
+ let _ = rx.recv().unwrap();
+ }
}
}
}