mirror of
https://github.com/servo/servo.git
synced 2025-06-25 09:34:32 +01:00
Add and update some FIXME comments about origin handling with iframes.
This commit is contained in:
parent
68076fbd7b
commit
eba74554f3
2 changed files with 6 additions and 1 deletions
|
@ -990,11 +990,12 @@ impl<LTF: LayoutThreadFactory, STF: ScriptThreadFactory> Constellation<LTF, STF>
|
||||||
// then reuse the script thread in creating the new pipeline
|
// then reuse the script thread in creating the new pipeline
|
||||||
let source_url = &source_pipeline.url;
|
let source_url = &source_pipeline.url;
|
||||||
|
|
||||||
|
// FIXME(#10968): this should probably match the origin check in
|
||||||
|
// HTMLIFrameElement::contentDocument.
|
||||||
let same_script = source_url.host() == new_url.host() &&
|
let same_script = source_url.host() == new_url.host() &&
|
||||||
source_url.port() == new_url.port() &&
|
source_url.port() == new_url.port() &&
|
||||||
load_info.sandbox == IFrameSandboxState::IFrameUnsandboxed;
|
load_info.sandbox == IFrameSandboxState::IFrameUnsandboxed;
|
||||||
|
|
||||||
// FIXME(tkuehn): Need to follow the standardized spec for checking same-origin
|
|
||||||
// Reuse the script thread if the URL is same-origin
|
// Reuse the script thread if the URL is same-origin
|
||||||
let script_chan = if same_script {
|
let script_chan = if same_script {
|
||||||
debug!("Constellation: loading same-origin iframe, \
|
debug!("Constellation: loading same-origin iframe, \
|
||||||
|
|
|
@ -429,6 +429,8 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement {
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-iframe-contentdocument
|
// https://html.spec.whatwg.org/multipage/#dom-iframe-contentdocument
|
||||||
fn GetContentDocument(&self) -> Option<Root<Document>> {
|
fn GetContentDocument(&self) -> Option<Root<Document>> {
|
||||||
self.GetContentWindow().and_then(|window| {
|
self.GetContentWindow().and_then(|window| {
|
||||||
|
// FIXME(#10964): this should use the Document's origin and the
|
||||||
|
// origin of the incumbent settings object.
|
||||||
let self_url = self.get_url();
|
let self_url = self.get_url();
|
||||||
let win_url = window_from_node(self).get_url();
|
let win_url = window_from_node(self).get_url();
|
||||||
|
|
||||||
|
@ -582,6 +584,8 @@ impl VirtualMethods for HTMLIFrameElement {
|
||||||
// iframes, and since that would cause a deadlock, don't do it.
|
// iframes, and since that would cause a deadlock, don't do it.
|
||||||
let ConstellationChan(ref chan) = *window.constellation_chan();
|
let ConstellationChan(ref chan) = *window.constellation_chan();
|
||||||
let same_origin = {
|
let same_origin = {
|
||||||
|
// FIXME(#10968): this should probably match the origin check in
|
||||||
|
// HTMLIFrameElement::contentDocument.
|
||||||
let self_url = self.get_url();
|
let self_url = self.get_url();
|
||||||
let win_url = window_from_node(self).get_url();
|
let win_url = window_from_node(self).get_url();
|
||||||
UrlHelper::SameOrigin(&self_url, &win_url)
|
UrlHelper::SameOrigin(&self_url, &win_url)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue