Skip to content
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

Implement synchronous about:blank loading. #13996

Merged
merged 6 commits into from
Dec 1, 2016
Merged

Implement synchronous about:blank loading. #13996

merged 6 commits into from
Dec 1, 2016

Conversation

Ms2ger
Copy link
Contributor

@Ms2ger Ms2ger commented Oct 31, 2016

Based on initial work by jdm in #8600.


This change is Reviewable

@highfive
Copy link

Heads up! This PR modifies the following files:

  • @asajeffrey: components/constellation/pipeline.rs, components/constellation/constellation.rs
  • @fitzgen: components/script_traits/lib.rs, components/script_traits/lib.rs, components/script_traits/script_msg.rs, components/script_traits/script_msg.rs, components/script/script_thread.rs, components/script_layout_interface/message.rs, components/script/dom/htmliframeelement.rs
  • @KiChjang: components/script_traits/lib.rs, components/script_traits/lib.rs, components/script_traits/script_msg.rs, components/script_traits/script_msg.rs, components/script/script_thread.rs, components/script_layout_interface/message.rs, components/script/dom/htmliframeelement.rs

@highfive highfive added the S-awaiting-review There is new code that needs to be reviewed. label Oct 31, 2016
@highfive
Copy link

warning Warning warning

  • These commits modify unsafe code. Please review it carefully!

@Ms2ger
Copy link
Contributor Author

Ms2ger commented Oct 31, 2016

@bors-servo try

@bors-servo
Copy link
Contributor

⌛ Trying commit 88926e2 with merge 639bb3f...

bors-servo pushed a commit that referenced this pull request Oct 31, 2016
Implement synchronous about:blank loading.

Based on initial work by jdm in <#8600>.
@bors-servo
Copy link
Contributor

💔 Test failed - mac-rel-wpt1

@highfive highfive added the S-tests-failed The changes caused existing tests to fail. label Oct 31, 2016
@highfive
Copy link

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 5 [paras[1].firstChild, 2, paras[1].firstChild, 9]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 5 [paras[1].firstChild, 2, paras[1].firstChild, 9]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 5 [paras[1].firstChild, 2, paras[1].firstChild, 9]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 6 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 6 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 6 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 7 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 7 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 7 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 8 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 8 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 8 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 9 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 9 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 9 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 10 [document.documentElement, 0, document.documentElement, 1]

  ▶ Unexpect</span><span class="stdout">ed subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 10 [document.documentElement, 0, document.documentElement, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 10 [document.documentElement, 0, document.documentElement, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 11 [document.documentElement, 0, document.documentElement, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 11 [document.documentElement, 0, document.documentElement, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 11 [document.documentElement, 0, document.documentElement, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 12 [document.documentElement, 1, document.documentElement, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 12 [document.documentElement, 1, document.documentElement, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 12 [document.documentElement, 1, document.documentElement, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 13 [document.head, 1, document.head, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 13 [document.head, 1, document.head, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 13 [document.head, 1, document.head, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 14 [document.body, 4, document.body, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 14 [document.body, 4, document.body, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 14 [document.body, 4, document.body, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 15 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 15 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 15 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 16 [paras[0], 0, paras[0], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 16 [paras[0], 0, paras[0], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 16 [paras[0], 0, paras[0], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 17 [detachedPara1, 0, detachedPara1, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 17 [detachedPara1, 0, detachedPara1, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 17 [detachedPara1, 0, detachedPara1, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 18 [paras[0].firstChild, 0, paras[1].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 18 [paras[0].firstChild, 0, paras[1].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 18 [paras[0].firstChild, 0, paras[1].firstChild, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 19 [paras[0].firstChild, 0, paras[1].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 19 [paras[0].firstChild, 0, paras[1].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 19 [paras[0].firstChild, 0, paras[1].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 20 [paras[0].firstChild, 3, paras[3], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 20 [paras[0].firstChild, 3, paras[3], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 20 [paras[0].firstChild, 3, paras[3], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 21 [paras[0], 0, paras[0].firstChild, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 21 [paras[0], 0, paras[0].firstChild, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 21 [paras[0], 0, paras[0].firstChild, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 22 [testDiv, 2, paras[4], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 22 [testDiv, 2, paras[4], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 22 [testDiv, 2, paras[4], 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 23 [document, 0, document, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 23 [document, 0, document, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 23 [document, 0, document, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 24 [document, 0, document, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 24 [document, 0, document, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 24 [document, 0, document, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 25 [comment, 2, comment, 3]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 25 [comment, 2, comment, 3]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 25 [comment, 2, comment, 3]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 26 [testDiv, 0, comment, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 26 [testDiv, 0, comment, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 26 [testDiv, 0, comment, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 27 [foreignDoc, 1, foreignComment, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 27 [foreignDoc, 1, foreignComment, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 27 [foreignDoc, 1, foreignComment, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 28 [foreignDoc.body, 0, foreignTextNode, 36]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 28 [foreignDoc.body, 0, foreignTextNode, 36]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 28 [foreignDoc.body, 0, foreignTextNode, 36]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 29 [xmlDoc, 1, xmlComment, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cl</span><span class="stdout">oneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 29 [xmlDoc, 1, xmlComment, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 29 [xmlDoc, 1, xmlComment, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 30 [detachedTextNode, 0, detachedTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 30 [detachedTextNode, 0, detachedTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 30 [detachedTextNode, 0, detachedTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 31 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 31 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 31 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 32 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 32 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 32 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 33 [detachedComment, 3, detachedComment, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 33 [detachedComment, 3, detachedComment, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 33 [detachedComment, 3, detachedComment, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 34 [detachedForeignComment, 0, detachedForeignComment, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 34 [detachedForeignComment, 0, detachedForeignComment, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 34 [detachedForeignComment, 0, detachedForeignComment, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 35 [detachedXmlComment, 2, detachedXmlComment, 6]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 35 [detachedXmlComment, 2, detachedXmlComment, 6]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 35 [detachedXmlComment, 2, detachedXmlComment, 6]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 36 [docfrag, 0, docfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 36 [docfrag, 0, docfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 36 [docfrag, 0, docfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 37 [processingInstruction, 0, processingInstruction, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 37 [processingInstruction, 0, processingInstruction, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 37 [processingInstruction, 0, processingInstruction, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 38 [paras[1].firstChild, 0, paras[1].firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 38 [paras[1].firstChild, 0, paras[1].firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 38 [paras[1].firstChild, 0, paras[1].firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 39 [paras[1].firstChild, 2, paras[1].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 39 [paras[1].firstChild, 2, paras[1].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 39 [paras[1].firstChild, 2, paras[1].firstChild, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 40 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 40 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 40 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 41 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 41 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 41 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 42 [foreignDoc.head, 1, foreignDoc.head, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 42 [foreignDoc.head, 1, foreignDoc.head, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 42 [foreignDoc.head, 1, foreignDoc.head, 1]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 43 [foreignDoc.body, 0, foreignDoc.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 43 [foreignDoc.body, 0, foreignDoc.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 43 [foreignDoc.body, 0, foreignDoc.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 44 [paras[0], 0, paras[0], 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 44 [paras[0], 0, paras[0], 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 44 [paras[0], 0, paras[0], 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 45 [detachedPara1, 0, detachedPara1, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 45 [detachedPara1, 0, detachedPara1, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 45 [detachedPara1, 0, detachedPara1, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 46 [testDiv, 1, paras[2].firstChild, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 46 [testDiv, 1, paras[2].firstChild, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 46 [testDiv, 1, paras[2].firstChild, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 47 [document.documentElement, 1, document.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 47 [document.documentElement, 1, document.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 47 [document.documentEle</span><span class="stdout">ment, 1, document.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 48 [foreignDoc.documentElement, 1, foreignDoc.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 48 [foreignDoc.documentElement, 1, foreignDoc.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 48 [foreignDoc.documentElement, 1, foreignDoc.body, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 49 [document, 1, document, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 49 [document, 1, document, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 49 [document, 1, document, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 50 [paras[2].firstChild, 4, comment, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 50 [paras[2].firstChild, 4, comment, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 50 [paras[2].firstChild, 4, comment, 2]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 51 [paras[3], 1, comment, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 51 [paras[3], 1, comment, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 51 [paras[3], 1, comment, 8]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 52 [foreignDoc, 0, foreignDoc, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 52 [foreignDoc, 0, foreignDoc, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 52 [foreignDoc, 0, foreignDoc, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 53 [xmlDoc, 0, xmlDoc, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 53 [xmlDoc, 0, xmlDoc, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 53 [xmlDoc, 0, xmlDoc, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 54 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 54 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 54 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 55 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 55 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 55 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 56 [detachedComment, 5, detachedComment, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 56 [detachedComment, 5, detachedComment, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 56 [detachedComment, 5, detachedComment, 5]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 57 [detachedForeignComment, 4, detachedForeignComment, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 57 [detachedForeignComment, 4, detachedForeignComment, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 57 [detachedForeignComment, 4, detachedForeignComment, 4]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 58 [foreignDocfrag, 0, foreignDocfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 58 [foreignDocfrag, 0, foreignDocfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 58 [foreignDocfrag, 0, foreignDocfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting DOM for range 59 [xmlDocfrag, 0, xmlDocfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Resulting cursor position for range 59 [xmlDocfrag, 0, xmlDocfrag, 0]

  ▶ Unexpected subtest result in /dom/ranges/Range-cloneContents.html:
  └ NOTRUN [expected PASS] Returned fragment for range 59 [xmlDocfrag, 0, xmlDocfrag, 0]

  ▶ Unexpected subtest result in /html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
  │ FAIL [expected PASS] Same-origin observers get different accessors for cross-origin Window
  │   → assert_true: different Window accessors per-incumbent script settings object expected true got false
  │ 
  │ @http://web-platform.test:8000/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:285:3
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1401:20
  │ test@http://web-platform.test:8000/resources/testharness.js:501:9
  │ runNextTest@http://web-platform.test:8000/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:307:3
  └ frameLoaded@http://web-platform.test:8000/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:23:7

@Ms2ger
Copy link
Contributor Author

Ms2ger commented Oct 31, 2016

r? @jdm

@highfive highfive assigned jdm and unassigned nox Oct 31, 2016
Copy link
Member

@jdm jdm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This design is much better than the one in #8600. Great work!

assert!(self.nested_browsing_context.get().is_none());
// Synchronously create a new context and navigate it to about:blank.
let url = Url::parse("about:blank").unwrap();
// TODO - loaddata here should have referrer info (not None, None)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's do this? Get it from the iframe's document.

pub fn window_for_pipeline(pipeline: PipelineId) -> Root<Window> {
SCRIPT_THREAD_ROOT.with(|root| {
let script_thread = unsafe { &*root.get().unwrap() };
let page = script_thread.find_child_context(pipeline).unwrap();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's make this function return Option<Root<Window>> instead.

impl Runnable for IframeLoadEventSteps {
fn handler(self: Box<IframeLoadEventSteps>) {
let this = self.frame_element.root();
this.iframe_load_event_steps(this.pipeline_id().unwrap());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps the pipeline id should be stored in the runnable, to avoid problems with initiating multiple loads for an iframe?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea why that method even takes a pipeline id; all it does is compare it to self.pipeline_id().unwrap().

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's to determine if the load event is relevant to the current iframe contents. As written, this is redundant; we should store the pipeline that was in use when the runnable was created instead.

fn process_the_iframe_attributes(&self, mode: ProcessingMode) {
// TODO: srcdoc

if mode == ProcessingMode::FirstTime && !self.upcast::<Element>().has_attribute(&atom!("src")) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add a comment pointing at whatwg/html#490.

@@ -73,6 +83,7 @@ pub struct HTMLIFrameElement {
sandbox_allowance: Cell<Option<SandboxAllowance>>,
load_blocker: DOMRefCell<Option<LoadBlocker>>,
visibility: Cell<bool>,
nested_browsing_context: MutNullableHeap<JS<BrowsingContext>>,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not clear to me what the purpose of this is, except for asserting that it doesn't exist in create_nested_browsing_context.

@@ -277,7 +277,9 @@ impl LayoutThreadFactory for LayoutThread {
layout.start();
}, reporter_name, sender, Msg::CollectReports);
}
let _ = content_process_shutdown_chan.send(());
if let Some(content_process_shutdown_chan) = content_process_shutdown_chan {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not clear to me what the effect of this change is. Why is it ok to not have one for about:blank layout threads?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We only listen on the receiver if we spawned a new script thread (or process) for the new pipeline; about:blank always lives in its parent's script thread. I could create a channel and immediately drop the receiver, but that seemed pointless.

@jdm jdm added S-needs-code-changes Changes have not yet been made that were requested by a reviewer. and removed S-awaiting-review There is new code that needs to be reviewed. labels Oct 31, 2016
@bors-servo
Copy link
Contributor

☔ The latest upstream changes (presumably #13742) made this pull request unmergeable. Please resolve the merge conflicts.

@highfive highfive added the S-needs-rebase There are merge conflict errors. label Nov 2, 2016
@highfive highfive added S-awaiting-review There is new code that needs to be reviewed. and removed S-tests-failed The changes caused existing tests to fail. S-needs-code-changes Changes have not yet been made that were requested by a reviewer. labels Nov 2, 2016
@emilio
Copy link
Member

emilio commented Nov 2, 2016

@bors-servo try

@bors-servo
Copy link
Contributor

⌛ Trying commit 5a38298 with merge dccb4cd...

bors-servo pushed a commit that referenced this pull request Nov 2, 2016
Implement synchronous about:blank loading.

Based on initial work by jdm in <#8600>.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13996)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

💔 Test failed - linux-rel-wpt

@highfive highfive added the S-tests-failed The changes caused existing tests to fail. label Nov 2, 2016
@jdm jdm removed the S-needs-rebase There are merge conflict errors. label Nov 2, 2016
@jdm
Copy link
Member

jdm commented Nov 2, 2016

I'm going to delay reviewing the newest changes until the tests pass.

@bors-servo
Copy link
Contributor

💔 Test failed - linux-rel-wpt

@highfive highfive added S-tests-failed The changes caused existing tests to fail. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels Nov 30, 2016
@bors-servo
Copy link
Contributor

⚡ Previous build results for arm32, arm64, linux-dev, linux-rel-css, mac-dev-unit, mac-rel-css, mac-rel-wpt1, mac-rel-wpt2, windows-dev are reusable. Rebuilding only linux-rel-wpt...

@bors-servo
Copy link
Contributor

💔 Test failed - linux-rel-wpt

@highfive highfive added the S-tests-failed The changes caused existing tests to fail. label Nov 30, 2016
@bors-servo
Copy link
Contributor

⚡ Previous build results for arm32, arm64, linux-dev, linux-rel-css, mac-dev-unit, mac-rel-css, mac-rel-wpt1, mac-rel-wpt2, windows-dev are reusable. Rebuilding only linux-rel-wpt...

@bors-servo
Copy link
Contributor

💔 Test failed - linux-rel-wpt

@highfive highfive added the S-tests-failed The changes caused existing tests to fail. label Nov 30, 2016
@bors-servo
Copy link
Contributor

⚡ Previous build results for arm32, arm64, linux-dev, linux-rel-css, mac-dev-unit, mac-rel-css, mac-rel-wpt1, mac-rel-wpt2, windows-dev are reusable. Rebuilding only linux-rel-wpt...

@bors-servo
Copy link
Contributor

💔 Test failed - linux-rel-wpt

@highfive highfive added the S-tests-failed The changes caused existing tests to fail. label Nov 30, 2016
@asajeffrey
Copy link
Member

Another collection of intermittents, sigh:

  ▶ FAIL [expected PASS] /_mozilla/css/iframe/overflow.html
  └   → /_mozilla/css/iframe/overflow.html d9d9e489bc5b4508c01b06c7ff92f19dcc2ece3c
/_mozilla/css/iframe/overflow_ref.html 10bfffa0585cecabc78f349636827d6267b2f816
Testing d9d9e489bc5b4508c01b06c7ff92f19dcc2ece3c == 10bfffa0585cecabc78f349636827d6267b2f816

  ▶ FAIL [expected PASS] /_mozilla/css/iframe/navigation.html
  └   → /_mozilla/css/iframe/navigation.html 8250706e506ad24231cc23be315b9b868387c598
/_mozilla/css/iframe/navigation_ref.html e60785ff75153e5d215bd0f65141fbb13cfbc61b
Testing 8250706e506ad24231cc23be315b9b868387c598 == e60785ff75153e5d215bd0f65141fbb13cfbc61b

  ▶ Unexpected subtest result in /html/browsers/browsing-the-web/navigating-across-documents/002.html:
  │ FAIL [expected PASS] Multiple simultaneous navigations
  │   → assert_equals: expected "002-2" but got "002-1"
  │ 
  │ onmessage<@http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/002.html:13:3
  │ Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1406:20
  └ Test.prototype.step_func/<@http://web-platform.test:8000/resources/testharness.js:1430:20

@Ms2ger
Copy link
Contributor Author

Ms2ger commented Dec 1, 2016

Let's see how intermittent

@bors-servo retry

@bors-servo
Copy link
Contributor

⌛ Testing commit 6075d0e with merge 0d896a8...

bors-servo pushed a commit that referenced this pull request Dec 1, 2016
Implement synchronous about:blank loading.

Based on initial work by jdm in <#8600>.

<!-- Reviewable:start -->

---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13996)
<!-- Reviewable:end -->
@highfive highfive added S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. and removed S-tests-failed The changes caused existing tests to fail. labels Dec 1, 2016
@bors-servo
Copy link
Contributor

@bors-servo bors-servo merged commit 6075d0e into master Dec 1, 2016
@highfive highfive removed the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Dec 1, 2016
@asajeffrey
Copy link
Member

@Ms2ger must have the magic touch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants