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](f0184a2d01/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](https://github.com/servo/servo/issues/3939). In this PR I just added same origin check.
Accepted and closed incoming streams
Added header to for constant use.
Removed extra spaces.
Corrected spacing to conform to coding standards.
Corrected spacing to conform to coding standards.
Corrected spacing to conform with coding standards.
Moving new import next to old import for devtools_traits as specified in comment.
Removed method definition to include as inline code and changed to iter_mut.
Using loops to exit devtools on server exit message and disconnected message to simply break as suggested in the comment.
Removing TODO comment for completed functionality.
Moved the operation for exit of devtools on servo closing outside the match loop.
Removing trailing ';' and adding new line before connection closing loop.
Instead of creating a display list for the entire page, only create one
for an area that expands around the viewport. On my machine this makes
incremental layout of http://timecube.com 50% faster.
I was messing around devtools code and saw some TODOs, is anyone working on it? I took one of them:
```// TODO: this really belongs in the protocol module.```
I would be glad to help with this if no one is on it already, just let me know.
This is the first step to allowing incremental iframe creation and destruction. This should eliminate task failures when an iframe is added to the frame tree lazily via script.
This allows the compositor to add frames after the call to SetIds,
where the initial frame tree is created. There are still some issues
preventing proper late frame creation, but this prevents crashes when
it happens.
Fixes#3738.
Actually `<img>` elements in `<noscript>` are not prefetched anymore.
Probably because html5ever already parses the `<noscript>` content as raw
text data if `scripting_enabled` is activated.
See https://github.com/servo/html5ever/blob/servo/src/tree_builder/rules.rs#L126
Also, added a test to the images cache.
Instead of creating a display list for the entire page, only create one
for an area that expands around the viewport. On my machine this makes
incremental layout of http://timecube.com 50% faster.
Actually <img> elements in <noscript> are not prefetched anymore.
Probably because html5ever already parses the <noscript> content as raw
text data if `scripting_enabled` is activated.
See
https://github.com/servo/html5ever/blob/servo/src/tree_builder/rules.rs#
L126
Also, added a test to the images cache.