aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlimageelement.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2018-09-17 17:56:56 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2018-09-18 10:33:42 +0200
commit8c100b23b1e2d29911f44802adc3b8cdffce38bf (patch)
tree9c70bc1e9b3ec8583e9d2d7c73e449b3dcf0b4b4 /components/script/dom/htmlimageelement.rs
parente745050f3af38e6328f9ac63fd8abae77a5ec87b (diff)
downloadservo-8c100b23b1e2d29911f44802adc3b8cdffce38bf.tar.gz
servo-8c100b23b1e2d29911f44802adc3b8cdffce38bf.zip
Implement proper origin checks for WebGL textures (fixes #21522)
Diffstat (limited to 'components/script/dom/htmlimageelement.rs')
-rw-r--r--components/script/dom/htmlimageelement.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 1c49185ad0d..b665014cdca 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -55,7 +55,7 @@ use network_listener::{NetworkListener, PreInvoke};
use num_traits::ToPrimitive;
use script_thread::ScriptThread;
use servo_url::ServoUrl;
-use servo_url::origin::ImmutableOrigin;
+use servo_url::origin::MutableOrigin;
use std::cell::{Cell, RefMut};
use std::char;
use std::collections::HashSet;
@@ -1186,11 +1186,10 @@ impl HTMLImageElement {
useMapElements.map(|mapElem| mapElem.get_area_elements())
}
- pub fn get_origin(&self) -> Option<ImmutableOrigin> {
- match self.current_request.borrow_mut().final_url {
- Some(ref url) => Some(url.origin()),
- None => None
- }
+ pub fn same_origin(&self, origin: &MutableOrigin) -> bool {
+ self.current_request.borrow_mut().final_url.as_ref().map_or(false, |url| {
+ url.scheme() == "data" || url.origin().same_origin(origin)
+ })
}
}