gecko-dev/dom/xbl
Emilio Cobos Álvarez 1e6e97fed1 Bug 1389743: Only reconstruct frames synchronously from ContentRemoved when called from frame construction. r=mats
There's only one case of sync frame construction from ContentRemoved now, and
it's not on the element being removed, but on the whitespace siblings if needed,
and _only_ when they don't support lazy frame construction.

Basically, this switches all the RecreateFramesForContent calls to use
`aAsyncInsert` (which I changed to an enum class for readability), except when
we're already reframing.

Also, it switches ReframeTextIfNeeded to opt-in into lazy frame construction,
since it's used only when aFlags == CONTENT_REMOVED.

This allows to simplify the DestroyFramesFor API (which I'm happy to rename to
something more meaningful, since now it's something like
DestroyFramesForAndRecreateThemAsync), and do some other consistency cleanups.

A bunch of the ContentRemoved callsites were pretty random at passing
aAsyncInsert, and that was some kind of a mess. This patch ensures consistency,
and makes it impossible to do O(n^2) work when removing DOM nodes, which is
nice.

The underlying reason for this is explained in the description of bug 1377848,
and basically allows us to remove a bunch of Servo hacks on the longer term (a
few of them are going away already, yay!).

MozReview-Commit-ID: 2DrUTxGV8RX

--HG--
extra : rebase_source : f428d839a5482477dea22c0fea600d54f3e8799c
2017-08-23 09:58:57 +02:00
..
builtin
crashtests Bug 1341102 - Re-enable some crashtests. r=me 2017-07-24 18:35:19 -07:00
test Bug 1373513 - Part 2: Revert Bug 1364367. r=ckerschb 2017-07-12 11:00:27 +08:00
XBLChildrenElement.cpp Bug 1365092 - Move side effects of SetAttr, UnsetAttr, and ParseAttribute functions to BeforeSetAttr and AfterSetAttr r=bz 2017-06-07 10:28:20 -07:00
XBLChildrenElement.h Bug 1365092 - Move side effects of SetAttr, UnsetAttr, and ParseAttribute functions to BeforeSetAttr and AfterSetAttr r=bz 2017-06-07 10:28:20 -07:00
moz.build Bug 1351783 part 6 - Create and send KeyboardMap to APZCTreeManager. r=kats 2017-06-05 18:35:32 -05:00
nsBindingManager.cpp Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu 2017-07-29 20:50:21 +09:00
nsBindingManager.h
nsXBLBinding.cpp Bug 1386865 part 1 - Have GetServoStyleSet return non-const ServoStyleSet. r=TYLin 2017-08-03 16:58:23 +10:00
nsXBLBinding.h Bug 1386865 part 1 - Have GetServoStyleSet return non-const ServoStyleSet. r=TYLin 2017-08-03 16:58:23 +10:00
nsXBLContentSink.cpp Bug 1381253 - Remove redundant control flow declarations rs=ehsan 2017-07-15 19:03:04 +02:00
nsXBLContentSink.h Bug 1363640 Part 3 - Strip whitespaces for files under dom/xbl. r=heycam 2017-05-09 20:45:11 -07:00
nsXBLDocumentInfo.cpp Bug 1389300 - Inherit style backend into NS_NewDOMDocument. r=smaug,r=heycam 2017-08-15 19:10:43 -07:00
nsXBLDocumentInfo.h Bug 1363640 Part 5 - Add a table in nsXULPrototypeCache to cache XBL documents with servo backend. r=bz,heycam 2017-05-19 15:18:00 -07:00
nsXBLEventHandler.cpp
nsXBLEventHandler.h Bug 1351783 part 4 - Add a KeyboardShortcut type. r=kats,masayuki 2017-06-05 18:24:35 -05:00
nsXBLMaybeCompiled.h
nsXBLProtoImpl.cpp Bug 1363640 Part 3 - Strip whitespaces for files under dom/xbl. r=heycam 2017-05-09 20:45:11 -07:00
nsXBLProtoImpl.h
nsXBLProtoImplField.cpp Bug 1390106 - Stop using versioned scripts in dom. r=mrbkap 2017-08-14 20:42:55 +09:00
nsXBLProtoImplField.h Bug 1363640 Part 3 - Strip whitespaces for files under dom/xbl. r=heycam 2017-05-09 20:45:11 -07:00
nsXBLProtoImplMember.h
nsXBLProtoImplMethod.cpp Bug 1390106 - Stop using versioned scripts in dom. r=mrbkap 2017-08-14 20:42:55 +09:00
nsXBLProtoImplMethod.h
nsXBLProtoImplProperty.cpp Bug 1390106 - Stop using versioned scripts in dom. r=mrbkap 2017-08-14 20:42:55 +09:00
nsXBLProtoImplProperty.h Bug 1363640 Part 3 - Strip whitespaces for files under dom/xbl. r=heycam 2017-05-09 20:45:11 -07:00
nsXBLPrototypeBinding.cpp Bug 1386865 part 1 - Have GetServoStyleSet return non-const ServoStyleSet. r=TYLin 2017-08-03 16:58:23 +10:00
nsXBLPrototypeBinding.h Bug 1386865 part 1 - Have GetServoStyleSet return non-const ServoStyleSet. r=TYLin 2017-08-03 16:58:23 +10:00
nsXBLPrototypeHandler.cpp Bug 1390106 - Stop using versioned scripts in dom. r=mrbkap 2017-08-14 20:42:55 +09:00
nsXBLPrototypeHandler.h Bug 1351783 part 4 - Add a KeyboardShortcut type. r=kats,masayuki 2017-06-05 18:24:35 -05:00
nsXBLPrototypeResources.cpp Bug 1388165 - Clear mPresContext after creating XBL styleset. r=xidorn 2017-08-22 14:46:25 +08:00
nsXBLPrototypeResources.h Bug 1386865 part 1 - Have GetServoStyleSet return non-const ServoStyleSet. r=TYLin 2017-08-03 16:58:23 +10:00
nsXBLResourceLoader.cpp Bug 1388939, part 5 - Rename nsFrameManager::GetUndisplayedContent to GetDisplayNoneStyleFor. r=dholbert 2017-08-01 15:27:59 +01:00
nsXBLResourceLoader.h Bug 1290276 Part 5 - Add XBL stylesheets to ServoStyleSet so that it can be used in servo cascading later. r=heycam 2017-06-05 13:06:52 +08:00
nsXBLSerialize.cpp
nsXBLSerialize.h Bug 1363640 Part 3 - Strip whitespaces for files under dom/xbl. r=heycam 2017-05-09 20:45:11 -07:00
nsXBLService.cpp Bug 1389743: Only reconstruct frames synchronously from ContentRemoved when called from frame construction. r=mats 2017-08-23 09:58:57 +02:00
nsXBLService.h
nsXBLWindowKeyHandler.cpp Bug 1387406 - part5: nsXBLWindowKeyHandler should treat editor as HTMLEditor r=smaug 2017-08-07 15:08:02 +09:00
nsXBLWindowKeyHandler.h Bug 1351783 part 19 - Rename Keyboard.h to KeyboardMap.h. r=masayuki 2017-06-15 18:06:00 -04:00