servo/components
bors-servo c48ef50b72 Auto merge of #18514 - asajeffrey:layout-dont-panic-if-no-iframe-bc, r=emilio
Remove sources of panic when laying out an iframe without a nested browsing context

<!-- Please describe your changes on the following line: -->

At the moment, layout panics if it discovers an iframe without a nested browsing context. Under normal circumstances, this is reasonable, but it requires very tight synchronization between script, layout, the constellation and the compositor. In particular, if a layout is in progress when an iframe's browsing context is discarded, this can trigger panic.

This PR fixes this in two ways:

1. Making the pipeline and browsing context ids optional in layout's representation of an iframe.
2. Shutting down layout before discarding a browsing context, rather than after.

This is belt and braces.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #17482 and #18477
- [X] These changes do not require tests because the PR is fixing a panic caused by a race condition

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- 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/18514)
<!-- Reviewable:end -->
2017-09-22 09:34:12 -05:00
..
atoms Do not NIH queueing a task to fire an event in htmlmediaelement 2017-09-04 16:14:04 +02:00
bluetooth Use BluetoohAdapter mock when bluetooth is disabled 2017-09-17 12:15:00 +02:00
bluetooth_traits
canvas Improve Webrender<->WebGL synchronization 2017-09-20 11:48:11 +02:00
canvas_traits Improve Webrender<->WebGL synchronization 2017-09-20 11:48:11 +02:00
compositing Update WR (font variations, runtime dp ratio changes) 2017-09-21 10:11:30 +10:00
config enable antialiasing by default 2017-08-29 17:50:26 +02:00
constellation Auto merge of #17083 - danielj41:javascript-url-global-3, r=jdm 2017-09-09 04:39:43 -05:00
debugger
deny_public_fields
devtools Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10) 2017-08-15 14:10:44 +02:00
devtools_traits order derivable traits lists 2017-08-23 21:38:44 +02:00
dom_struct Use the better TokenStream API in dom_struct 2017-09-01 12:15:12 +02:00
domobject_derive Fix quote dependency version 2017-08-23 18:35:42 +02:00
fallible Bug 1398593 - stylo: mitigate performance impact of fallible allocation on stylist rebuilds. r=emilio. 2017-09-12 15:18:49 +02:00
geometry
gfx Auto merge of #18579 - mbrubeck:features, r=KiChjang 2017-09-21 15:08:04 -05:00
gfx_traits order derivable traits lists 2017-08-23 21:38:44 +02:00
hashglobe Bug 1398593 - stylo: mitigate performance impact of fallible allocation on stylist rebuilds. r=emilio. 2017-09-12 15:18:49 +02:00
jstraceable_derive Fix quote dependency version 2017-08-23 18:35:42 +02:00
layout Auto merge of #18514 - asajeffrey:layout-dont-panic-if-no-iframe-bc, r=emilio 2017-09-22 09:34:12 -05:00
layout_thread Auto merge of #18514 - asajeffrey:layout-dont-panic-if-no-iframe-bc, r=emilio 2017-09-22 09:34:12 -05:00
layout_traits WR multi-document update 2017-07-28 22:28:11 -04:00
lru_cache Hoist lookup() into lru_cache. 2017-09-20 23:22:33 -07:00
malloc_size_of Fix MallocSizeOf for TypedSize2D. 2017-09-21 09:06:20 +10:00
malloc_size_of_derive Overhaul MallocSizeOf and related things. 2017-09-12 12:37:51 +10:00
metrics Add paint metrics to Performance Timeline API 2017-08-23 17:30:13 +02:00
msg Made PipelineId non-zero, so optional ids take no more space. 2017-09-18 15:49:38 -05:00
net Update some dependencies to fix some warnings 2017-09-20 11:50:39 +02:00
net_traits order derivable traits lists 2017-08-23 21:38:44 +02:00
profile Make Performance Timeline API work in Workers 2017-09-05 17:07:15 +02:00
profile_traits Make Performance Timeline API work in Workers 2017-09-05 17:07:15 +02:00
rand
range order derivable traits lists 2017-08-23 21:38:44 +02:00
remutex order derivable traits lists 2017-08-23 21:38:44 +02:00
script Auto merge of #18514 - asajeffrey:layout-dont-panic-if-no-iframe-bc, r=emilio 2017-09-22 09:34:12 -05:00
script_layout_interface Remove sources of panic when laying out an iframe without a nested browsing context. 2017-09-22 09:04:18 -05:00
script_plugins Auto merge of #18553 - mdboom:tidy-support-multiline-strings, r=wafflespeanut 2017-09-21 23:38:29 -05:00
script_traits Introduce MainThreadScriptMsg::RegisterPaintWorklet 2017-09-17 10:19:59 +02:00
selectors Implement an nth-index cache. 2017-09-21 15:25:38 -07:00
servo Improve Webrender<->WebGL synchronization 2017-09-20 11:48:11 +02:00
servo_arc style: Share user agent cascade data across documents. 2017-09-15 09:26:23 +02:00
size_of_test
style Auto merge of #18595 - bholley:nth_index_cache, r=emilio 2017-09-21 18:10:05 -05:00
style_derive style: Remove HasViewportPercentage. 2017-08-29 23:51:21 +02:00
style_traits Preserve sourceURL comment on style sheets 2017-09-14 12:39:18 -06:00
url order derivable traits lists 2017-08-23 21:38:44 +02:00
webdriver_server Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10) 2017-08-15 14:10:44 +02:00
webvr Update rust-webvr to 0.8 2017-08-31 01:24:54 +02:00
webvr_traits Update rust-webvr to 0.8 2017-08-31 01:24:54 +02:00