diff options
author | Shinichi Morimoto <shnmorimoto@gmail.com> | 2019-11-13 15:37:53 +0900 |
---|---|---|
committer | Shinichi Morimoto <shnmorimoto@gmail.com> | 2019-11-18 22:44:07 +0900 |
commit | 2d995ba41a73e42c9710e1fec132b5d3b501581e (patch) | |
tree | 175b43d9eea2f059c41fd8a0d59e34b954f2b63a /components/script | |
parent | dfa78986a6f74176bc36f4ba29969ec421a8730c (diff) | |
download | servo-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.rs | 16 |
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(); + } } } } |