Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Перейти к файлу
Alan Jeffrey 322859253d servo: Merge #18514 - Remove sources of panic when laying out an iframe without a nested browsing context (from asajeffrey:layout-dont-panic-if-no-iframe-bc); r=emilio
<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: c48ef50b7260df7f2e781e15bba37b08f0970062

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d2bff55daaa2c40d23ef05e75b61f4979ae2cbe2
2017-09-22 09:34:12 -05:00
.cargo
.vscode Bug 1377937 - Fix VSCode tasks on Windows (NPOTB, DONTBUILD). r=gps 2017-07-03 21:55:07 +03:00
accessible Bug 1401392: Use ApplicationAccessibleWrap for content application accessible on Windows; r=davidb 2017-09-19 16:55:34 -06:00
browser Bug 1402351 - Make the Linux level 3 / read sandbox ride the trains. r=jld 2017-09-22 17:20:51 +02:00
build Bug 1402233 - Add web platform tools files to taskgraph sparse profile r=mshal 2017-09-22 11:12:56 -07:00
caps Bug 1363200 - JSAPI for realms: Change a few XPConnect methods to take Realm arguments instead of JSCompartments. r=mrbkap 2017-06-28 12:31:53 -07:00
chrome Backed out changeset 05fc8d2d7ca9 (bug 863246) for failing various reftests, e.g. parser/htmlparser/tests/reftest/bug535530-2.html. r=backout on a CLOSED TREE 2017-08-25 16:44:40 +02:00
config Bug 1052573 - Generically whitelist memalign calls from anything under memory/. r=njn 2017-09-22 08:57:23 +09:00
db Bug 1369361 - Backport SQLite fix removing rand_s() in an attempt to avoid Lenovo DLL crashes. r=mak 2017-09-12 12:58:59 -07:00
devtools Backed out changeset 693f32f563d2 (bug 1383974) for failing devtools' devtools/client/animationinspector/test/browser_animation_detail_easings.js. r=backout 2017-09-22 18:12:42 +02:00
docshell Bug 1401813 - Rename Null[C]String() as Void[C]String(). r=erahm. 2017-09-22 14:35:46 +10:00
dom Bug 1401147 - part2 : add test. r=jya 2017-09-23 00:00:56 +08:00
editor Bug 1400777 (part 1) - Remove eHTMLTags. r=mrbkap. 2017-09-19 11:07:49 +10:00
embedding Bug 1356569 - Remove notifyObservers' last parameter when it is falsy, r=jaws. 2017-04-14 21:51:39 +02:00
extensions Bug 1401050 - Add vanishingly to the en-US dictionary. r=ehsan 2017-09-19 07:01:39 +07:00
gfx Bug 1402304 - Fix bindings to go with WR cset 4dbc5d8e. r=kats 2017-09-22 10:00:44 -04:00
gradle/wrapper
hal Bug 1389598 - Part 4: Remove remaining gonk refs. r=froydnj 2017-08-11 17:45:18 -07:00
image Bug 1247843 - Part 3: Set request context ID to the http channel created in imgLoader::LoadImage. r=baku 2017-09-20 20:09:00 -04:00
intl Backed out changeset e46cfa3b45ff (bug 1347798) because it will fail browser-chrome's browser_all_files_referenced.js. r=backout 2017-09-21 22:28:55 +02:00
ipc Merge inbound to central, a=merge 2017-09-20 17:18:21 -07:00
js Bug 1401568 - [Ion] Add ResumePoint to JSOP_SETPROP TypedObject case r=jandem 2017-09-20 15:44:59 -04:00
layout Bug 1402246 - Remove unused NS_SPACING_{MARGIN, PADDING, BORDER}. r=heycam 2017-09-22 15:57:14 +08:00
media Merge m-c to inbound, a=merge 2017-09-20 17:39:08 -07:00
memory Backed out changeset 14dac365b5f6 (bug 1402174) for frequently asserting rbp_i_cmp > 0, at mozjemalloc.cpp:2381. r=backout 2017-09-22 16:48:08 +02:00
mfbt Bug 1356936 - Use __builtin_add/sub/mul_overflow() where available to optimize CheckedInt. r=waldo,ehsan 2017-09-21 18:24:10 +02:00
mobile Bug 1396951 - 6. Remove setLayerView/getLayerView; r=snorp 2017-09-22 14:35:23 -04:00
modules Backed out changeset from bug 1392841 due to speedometer regression. r=backout 2017-09-19 18:37:40 +02:00
mozglue Backed out changeset 4dab43248f15 (bug 1372823) for crashing GTest on Windows 10 x64 debug. r=backout 2017-09-21 17:27:32 +02:00
netwerk Merge inbound to central, a=merge 2017-09-21 17:03:29 -07:00
nsprpub Bug 1393854, land NSPR_4_18_RTM, no code change, only version numbers, r=me 2017-09-19 18:43:02 +02:00
other-licenses Bug 1381916 - Remove support for plugins on Android r=jchen,bsmedberg 2017-07-31 12:25:16 -05:00
parser Bug 1401813 - Rename Null[C]String() as Void[C]String(). r=erahm. 2017-09-22 14:35:46 +10:00
probes Bug 1344878 - add BUG_COMPONENT to probes/* files. r=Ms2ger 2017-03-24 09:50:48 -04:00
python Backed out 12 changesets (bug 1383880) for decision task bustage 2017-09-20 19:57:39 -07:00
rdf Bug 1396682 - Remove exposure of nsIAtom to script in rdf/. r=pike. 2017-09-05 09:33:54 +10:00
security Merge autoland to central, a=merge 2017-09-21 16:29:32 -07:00
services Bug 1401590 - Mock FxAccounts#newAccountState in push service tests. r=markh 2017-09-21 13:27:46 -04:00
servo servo: Merge #18514 - Remove sources of panic when laying out an iframe without a nested browsing context (from asajeffrey:layout-dont-panic-if-no-iframe-bc); r=emilio 2017-09-22 09:34:12 -05:00
startupcache Bug 1386825 - Part 4: Remove remaining instances of MOZ_B2G. r=froydnj 2017-08-08 14:41:09 -07:00
storage Merge autoland to m-c. a=merge 2017-08-24 20:20:08 -04:00
taskcluster Merge m-c to autoland, a=merge 2017-09-21 17:04:03 -07:00
testing Bug 1393366 - Increase the marionette connect timeout in wptrunner, r=maja_zf 2017-09-21 17:56:43 +01:00
third_party Bug 1402304 - Update Cargo lockfiles and re-vendor rust dependencies. r=jrmuizel 2017-09-22 09:58:21 -04:00
toolkit Bug 1402304 - Update Cargo lockfiles and re-vendor rust dependencies. r=jrmuizel 2017-09-22 09:58:21 -04:00
tools Merge m-c to m-i 2017-09-21 20:49:43 -07:00
uriloader Bug 1400453 - yield thread between each call to gExternalProtocolService.getProtocolHandlerInfo; r=florian 2017-09-19 15:55:07 -07:00
view Bug 1398196, flush layout before hittesting when handling mousedown/up, r=ehsan 2017-09-14 23:26:24 +03:00
widget Bug 1397918 - don't use versions of libxcb before 1.11.1. r=karlt 2017-09-22 00:10:35 -04:00
xpcom Bug 1401813 - Rename Null[C]String() as Void[C]String(). r=erahm. 2017-09-22 14:35:46 +10:00
xpfe Bug 1401813 - Rename Null[C]String() as Void[C]String(). r=erahm. 2017-09-22 14:35:46 +10:00
.clang-format Bug 1399359 - Enable clang-format option SplitEmptyFunction to have empty constructor correctly placed r=andi,jya 2017-09-13 08:39:43 +02:00
.clang-format-ignore No bug - Remove an non-breaking space r=me DONTBUILD 2017-09-01 11:41:39 +02:00
.clang-tidy
.cron.yml bug 1349227 - 2 nightlies per day on m-c. r=catlee DONTBUILD 2017-08-29 16:01:14 -07:00
.eslintignore Bug 1399449 - Convert devtools/client/responsivedesign/responsivedesign.jsm to a commonjs module. r=jryans 2017-09-13 14:33:58 +02:00
.eslintrc.js Bug 1359011 - Make the mozilla/recommended eslint configuration the default for the whole tree. r=mossop 2017-04-25 20:12:21 +01:00
.flake8 Bug 1395126 - Support cascading configuration for flake8, r=bc 2017-08-29 17:32:31 -04:00
.gdbinit
.gdbinit_python Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
.gitignore Bug 1382304: hg/gitignore captures/ dir. r=nalexander 2017-07-19 11:08:06 -07:00
.hgignore Bug 1387265 - Expand talos tp6 to macosx; r=jmaher 2017-08-15 15:30:23 -04:00
.hgtags No bug - Tagging mozilla-central f7e9777221a34f9f23c2e4933307eb38b621b679 with with FIREFOX_NIGHTLY_57_END a=release DONTBUILD CLOSED TREE 2017-09-21 16:41:11 +02:00
.inferconfig Bug 1357629 - Add httpclientandroidlib to .inferconfig ignore list r=nalexander,njpark 2017-04-18 20:05:25 -07:00
.lldbinit Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted 2017-05-25 11:48:03 -04:00
.taskcluster.yml Backed out 4 changesets (bug 1394883) for Windows signing chain-of-trust failures 2017-08-31 20:02:34 -07:00
.yamllint Bug 1392795 - [yamllint] Group paths to lint by their closest config and run each config group separately, r=dustin 2017-08-23 11:28:28 -04:00
.ycm_extra_conf.py
AUTHORS Bug 1111333 - Enable double-tap-drag to zoom. r=kats 2017-05-23 19:53:06 +02:00
CLOBBER Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release 2017-09-21 16:42:31 +02:00
GNUmakefile
LEGAL
LICENSE
Makefile.in Backed out 4 changesets (bug 1259832) for apparently scheduling nightlies on every push/platform a=backout 2017-08-16 17:26:08 -07:00
README.txt Bug 1349108 - Update links in README.txt to HTTPS r=RyanVM 2017-03-21 00:11:02 -04:00
aclocal.m4 Bug 1363992 - Remove jemalloc 4. r=njn 2017-05-11 13:23:07 +09:00
build.gradle Bug 1255227 - Part 1: Stop using deprecated android-sdk-manager Gradle plugin. r=sebastian 2017-07-18 09:46:09 -07:00
client.mk Bug 1386739 - Only pass --output-sync=line to make in automation. r=gps 2017-08-15 12:30:28 -07:00
client.py Bug 1399100 - fix client.py follow-up, r=kaie 2017-09-20 09:13:14 +02:00
configure.in
configure.py
gradle.properties
gradlew
mach Bug 1316140 - Allow use of multiprocessing from config.status on windows. r=mshal 2016-12-21 16:28:28 -08:00
moz.build Backed out 12 changesets (bug 1383880) for decision task bustage 2017-09-20 19:57:39 -07:00
moz.configure Backed out changeset d9bc6c96c492 (bug 1399877) for build bustage a=backout 2017-09-15 14:53:20 -07:00
mozilla-config.h.in Bug 1371266 - libpng should be built with -std=c89. r=glennrp 2017-06-08 06:29:03 -07:00
npm-shrinkwrap.json Bug 1395879 - Remove espree/escope etc from the direct dependencies of eslint-plugin-mozilla since they are really peerDependencies supplied by the existing eslint peer. r=mossop 2017-09-01 11:27:33 +01:00
old-configure.in Bug 1281101 Part 3 - Remove MOZ_ENABLE_MASK_AS_SHORTHAND in old-configure.in. r=ted 2017-09-21 17:41:25 +08:00
package.json Bug 1380956 - List only the directly required dependencies for ESLint in the top-level package.json. r=ahal 2017-07-14 12:21:54 +01:00
settings.gradle Backed out 2 changesets (bug 1355625) for causing bustage a=backout 2017-06-22 12:05:56 -07:00
test.mozbuild

README.txt

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure

For information on how to build Mozilla from the source code, see:

    https://developer.mozilla.org/en/docs/Build_Documentation

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla (https://bugzilla.mozilla.org). Instructions are at:

    https://developer.mozilla.org/en/docs/Creating_a_patch
    https://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree

If you have a question about developing Mozilla, and can't find the solution
on https://developer.mozilla.org, you can try asking your question in a
mozilla.* Usenet group, or on IRC at irc.mozilla.org. [The Mozilla news groups
are accessible on Google Groups, or news.mozilla.org with a NNTP reader.]

You can download nightly development builds from the Mozilla FTP server.
Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy. Firefox nightlies, for example, can be found at:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://nightly.mozilla.org/