bors-servo
8b274f25d3
Auto merge of #14559 - asajeffrey:script-track-document-and-bc-discarding, r=cbrewster
...
Implement browsing context discarding
<!-- Please describe your changes on the following line: -->
Implement browsing context discarding (https://html.spec.whatwg.org/multipage/browsers.html#discard-a-document ).
* When a pipeline is closed, inform the script thread whether the browsing context is to be discarded.
* In script threads, synchronously discard any similar-origin documents and browsing contexts.
* When a browsing context is discarded, it loses the reference to the active document, but the window keeps it, so we need to move the `Document` pointer from `BrowsingContext` to `Window`.
* Fix the webIDL for Window to make parent and top optional (the spec says they can return null when the browsing context is discarded).
---
<!-- 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 #14411
- [X] There are tests for these changes
<!-- 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/14559 )
<!-- Reviewable:end -->
2017-01-05 18:20:12 -08:00
..
2017-01-05 07:33:46 -08:00
2016-12-23 11:15:46 +01:00
2016-10-23 17:46:10 -07:00
2017-01-05 18:20:12 -08:00
2016-12-22 16:06:22 +01:00
2016-12-08 08:50:35 -10:00
2016-10-11 19:44:32 +02:00
2016-12-12 10:47:54 -10:00
2016-12-22 16:06:22 +01:00
2016-12-08 08:50:35 -10:00
2016-12-22 06:51:16 -08:00
2016-12-14 20:42:31 +01:00
2016-10-06 20:59:09 +02:00
2016-12-22 15:49:29 +01:00
2016-12-16 21:02:58 +01:00
2016-12-14 15:29:43 -08:00
2016-12-22 15:49:29 +01:00
2016-12-16 21:02:58 +01:00
2016-12-06 17:30:40 -08:00
2017-01-05 21:12:57 +00:00
2016-10-06 20:59:09 +02:00
2016-10-06 20:59:09 +02:00
2016-12-28 23:14:46 +05:30
2016-12-14 18:04:37 -06:00
2016-12-12 10:47:54 -10:00
2016-11-03 16:23:05 +01:00
2016-11-30 23:23:41 +01:00
2016-10-06 21:35:49 +02:00
2016-12-16 16:57:20 +01:00
2017-01-05 13:51:53 +00:00
2016-11-30 23:23:42 +01:00
2016-11-28 16:50:38 +01:00
2016-12-22 16:06:22 +01:00
2016-12-16 16:57:20 +01:00
2016-11-28 16:50:38 +01:00
2016-12-14 12:48:47 +03:00
2016-12-12 10:47:54 -10:00
2016-11-28 16:50:38 +01:00
2016-12-22 16:06:22 +01:00
2016-12-12 10:47:54 -10:00
2016-12-17 23:03:40 -08:00
2016-12-22 16:06:22 +01:00
2016-12-12 10:47:54 -10:00
2016-11-28 16:50:38 +01:00
2016-11-14 11:06:17 +01:00
2017-01-05 13:51:53 +00:00
2017-01-05 21:12:57 +00:00
2016-11-30 23:23:41 +01:00
2016-07-14 08:44:22 +02:00
2016-12-22 16:06:22 +01:00
2016-12-29 01:38:19 -08:00
2016-10-06 21:35:49 +02:00
2016-12-08 08:50:35 -10:00
2016-12-29 01:38:19 -08:00
2016-10-06 21:35:49 +02:00
2016-10-06 21:35:49 +02:00
2016-12-08 08:50:35 -10:00
2016-10-06 21:35:49 +02:00
2016-10-06 20:59:09 +02:00
2016-10-06 21:35:49 +02:00
2016-10-11 19:44:32 +02:00
2016-11-03 16:23:05 +01:00
2016-12-26 10:09:09 -08:00
2016-11-14 11:06:17 +01:00
2016-12-27 12:42:19 +05:30
2016-12-25 19:18:34 +01:00
2016-12-08 08:50:35 -10:00
2016-12-08 08:50:35 -10:00
2016-11-30 23:23:41 +01:00
2016-11-30 23:23:41 +01:00
2016-10-06 21:35:49 +02:00
2016-10-06 20:59:09 +02:00
2016-12-14 18:04:37 -06:00
2016-10-06 21:35:49 +02:00
2016-12-12 10:47:54 -10:00
2016-10-06 20:59:09 +02:00
2016-12-08 08:50:35 -10:00
2016-12-23 11:15:44 +01:00
2016-11-03 16:23:05 +01:00
2016-10-06 21:35:49 +02:00
2016-10-06 20:59:13 +02:00
2016-12-14 18:04:37 -06:00
2016-11-03 16:23:05 +01:00
2016-12-12 10:47:54 -10:00
2016-11-03 16:23:05 +01:00
2016-11-17 18:34:23 +01:00
2016-11-17 18:34:23 +01:00
2016-11-03 16:23:05 +01:00
2016-11-25 06:49:44 -08:00
2016-12-12 10:47:54 -10:00
2016-12-12 10:47:54 -10:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 17:04:30 -04:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-12-17 23:03:40 -08:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-12-08 08:50:35 -10:00
2017-01-05 13:51:53 +00:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-12-06 00:42:29 +00:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2017-01-05 21:12:57 +00:00
2016-11-30 23:23:41 +01:00
2016-12-27 15:57:34 +05:30
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-12-22 16:06:22 +01:00
2016-11-03 16:23:05 +01:00
2016-12-22 16:06:22 +01:00
2016-12-14 18:04:37 -06:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-25 06:49:44 -08:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-12-15 17:24:13 -05:00
2016-12-13 03:31:52 -08:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-12-16 17:59:45 +01:00
2016-11-03 16:23:05 +01:00
2016-12-26 10:09:09 -08:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-12-12 10:47:54 -10:00
2016-11-03 16:23:05 +01:00
2016-12-12 10:47:54 -10:00
2016-11-03 16:23:05 +01:00
2016-12-12 10:47:54 -10:00
2016-12-27 15:57:34 +05:30
2016-12-19 09:04:13 -07:00
2016-12-15 17:24:13 -05:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-03 16:23:05 +01:00
2016-11-14 11:06:17 +01:00
2016-12-06 13:15:06 -10:00
2016-11-18 12:38:12 +08:00
2016-12-12 10:47:55 -10:00
2016-10-06 20:59:09 +02:00
2016-12-02 23:46:40 +03:00
2016-12-20 22:13:01 +01:00
2016-12-22 16:06:22 +01:00
2016-11-14 11:06:17 +01:00
2016-05-27 10:18:44 +01:00
2016-10-06 20:59:09 +02:00
2016-12-22 15:58:54 +01:00
2016-12-14 18:04:37 -06:00
2016-11-03 16:23:05 +01:00
2016-12-12 10:47:54 -10:00
2016-12-14 18:04:37 -06:00
2016-12-29 01:38:19 -08:00
2016-12-22 16:06:22 +01:00
2016-12-12 10:47:54 -10:00
2016-11-03 16:23:05 +01:00
2016-10-06 20:59:09 +02:00
2016-10-11 19:44:32 +02:00
2016-08-30 19:07:19 +02:00
2016-10-06 20:59:09 +02:00
2016-11-14 11:06:17 +01:00
2016-05-24 10:54:57 +02:00
2016-11-03 16:23:05 +01:00
2016-12-08 08:50:35 -10:00
2016-10-06 20:59:09 +02:00
2016-12-22 16:06:22 +01:00
2016-12-12 10:47:54 -10:00
2016-12-19 19:43:26 +01:00
2016-12-19 19:43:26 +01:00
2016-10-06 20:59:09 +02:00
2016-12-08 08:50:35 -10:00
2016-12-12 10:47:54 -10:00
2017-01-05 13:51:53 +00:00
2016-11-22 01:29:37 +05:30
2016-12-08 08:50:35 -10:00
2016-12-12 10:47:54 -10:00
2016-11-25 11:27:51 +08:00
2016-11-15 06:56:18 -08:00
2016-12-22 16:06:22 +01:00
2016-12-22 16:06:22 +01:00
2016-11-03 16:23:05 +01:00
2016-12-14 18:04:37 -06:00
2016-10-06 21:35:49 +02:00
2016-10-06 21:35:49 +02:00
2016-08-30 19:07:19 +02:00
2016-12-08 08:50:35 -10:00
2016-11-30 23:23:41 +01:00
2016-12-27 16:13:11 +02:00
2016-11-14 11:06:17 +01:00
2016-12-12 10:47:54 -10:00
2016-12-12 10:47:54 -10:00
2016-10-06 20:59:09 +02:00
2016-11-30 23:23:41 +01:00
2016-12-31 12:34:05 +01:00
2016-12-12 10:47:54 -10:00
2016-12-12 10:47:54 -10:00
2016-11-22 01:29:37 +05:30
2016-10-07 17:35:54 +02:00
2016-12-14 18:04:37 -06:00
2016-11-23 22:46:57 -08:00
2016-12-22 16:06:22 +01:00
2016-11-03 16:23:05 +01:00
2016-11-30 23:23:39 +01:00
2016-11-30 23:23:39 +01:00
2016-11-30 23:23:41 +01:00
2016-12-12 10:47:54 -10:00
2016-12-22 16:06:22 +01:00
2016-12-12 10:47:54 -10:00
2016-11-30 23:23:39 +01:00
2017-01-04 18:02:32 -08:00
2016-11-30 23:23:39 +01:00
2016-12-22 16:06:22 +01:00
2016-12-06 13:15:18 -10:00
2016-11-30 23:23:39 +01:00
2016-12-26 13:22:41 -06:00
2017-01-05 21:12:57 +00:00
2016-12-08 08:50:35 -10:00
2016-12-12 10:47:54 -10:00
2016-11-17 18:34:23 +01:00
2016-10-06 20:59:09 +02:00
2016-12-23 11:15:46 +01:00
2016-12-23 11:15:46 +01:00
2015-10-21 11:37:16 +02:00
2016-10-06 20:59:09 +02:00