New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add contentDocument support for HTMLIFrameElement. Fixes #3808. #3953
Add contentDocument support for HTMLIFrameElement. Fixes #3808. #3953
Conversation
Critic review: https://critic.hoppipolla.co.uk/r/3144 This is an external review system which you may optionally use for the code review of your pull request. In order to help critic track your changes, please do not make in-place history rewrites (e.g. via |
8bd59d7
to
1d85cd5
Compare
I would be exceedingly surprised if the test suddenly started to work. The fundamental problem identified in #2122 should still be present. |
Worth a try, anyways! |
…ntDocument, r=jdm Because of #2122 I cannot write test for this right now because it will be failing randomly due to that iframe issue. However, if it doesn't fail due to that issue a test like this: ```html <html> <head> <meta charset="utf8" /> <script src="harness.js"></script> <title>Iframe contentDocument test.</title> </head> <body> <iframe src="test_iframe_contentDocument_inner.html" id="iframe"></iframe> <script> waitForExplicitFinish(); var timeout = 100; var iframe = document.getElementById('iframe'); function test_contentWindow() { if (!iframe.contentWindow) { // Iframe not loaded yet, try again. // No load event for iframe, insert bug number here. setTimeout(test_contentWindow, timeout); return; } is(iframe.contentDocument.getElementById('test').textContent, 'value'); finish(); } test_contentWindow(); </script> </body> </html> ``` where inner is simply: ```html <html><body><div id="test">value</div></body></html> ``` passes. I have added `SameOrigin` method to the `UrlHelper`. I wanted to reuse it in [`constellation.rs` same_script check](https://github.com/servo/servo/blob/f0184a2d011e12845258a242d2d2f6b8b504a28d/components/compositing/constellation.rs#L625) but I it didn't want to compile saying ``` error: unresolved import `dom::urlhelper::UrlHelper`. Maybe a missing `extern crate dom`? ``` So I didn't include it in this PR for now. There is more discussion about the cross origin iframes in [another issue](#3939). In this PR I just added same origin check.
…test harness (and does not fail).
8d168f3
to
fb8a45c
Compare
@jdm, there were some failures, can we try again? |
…ntDocument, r=jdm Because of #2122 I cannot write test for this right now because it will be failing randomly due to that iframe issue. However, if it doesn't fail due to that issue a test like this: ```html <html> <head> <meta charset="utf8" /> <script src="harness.js"></script> <title>Iframe contentDocument test.</title> </head> <body> <iframe src="test_iframe_contentDocument_inner.html" id="iframe"></iframe> <script> waitForExplicitFinish(); var timeout = 100; var iframe = document.getElementById('iframe'); function test_contentWindow() { if (!iframe.contentWindow) { // Iframe not loaded yet, try again. // No load event for iframe, insert bug number here. setTimeout(test_contentWindow, timeout); return; } is(iframe.contentDocument.getElementById('test').textContent, 'value'); finish(); } test_contentWindow(); </script> </body> </html> ``` where inner is simply: ```html <html><body><div id="test">value</div></body></html> ``` passes. I have added `SameOrigin` method to the `UrlHelper`. I wanted to reuse it in [`constellation.rs` same_script check](https://github.com/servo/servo/blob/f0184a2d011e12845258a242d2d2f6b8b504a28d/components/compositing/constellation.rs#L625) but I it didn't want to compile saying ``` error: unresolved import `dom::urlhelper::UrlHelper`. Maybe a missing `extern crate dom`? ``` So I didn't include it in this PR for now. There is more discussion about the cross origin iframes in [another issue](#3939). In this PR I just added same origin check.
I'm pretty sure we did sth wrong here because I wasn't asked to squash before it got merged and so this silly change has two commits. I'm sorry about that. |
I just re-r+d since Josh had already done so, after quickly cross checking. Yeah, you could have squashed; but it's not necessary :) |
Because of #2122 I cannot write test for this right now because it will be failing randomly due to that iframe issue. However, if it doesn't fail due to that issue a test like this:
where inner is simply:
passes.
I have added
SameOrigin
method to theUrlHelper
. I wanted to reuse it inconstellation.rs
same_script check but I it didn't want to compile sayingSo I didn't include it in this PR for now.
There is more discussion about the cross origin iframes in another issue. In this PR I just added same origin check.