Граф коммитов

93 Коммитов

Автор SHA1 Сообщение Дата
shindli 5898cbcbdf Backed out changeset b584ff6f5afa (bug 1453668) for R failures in file:///C:/Users/task_1523893739/build/tests/reftest/tests/layout/reftests/display-list/retained-dl-style-change-stacking-context-1.html on a CLOSED TREE 2018-04-16 20:15:19 +03:00
Matt Woodrow 61b0638917 Bug 1453668 - Restrict the retained display list stacking context optimization to frames that are also containing blockks for position:fixed. r=miko
This makes the optimization rarer, but is significantly simpler, since we should now be guaranteed that all placeholder frames have their out of flow frames in the same stacking context.

MozReview-Commit-ID: 1Nf8Sx1dca7

--HG--
extra : rebase_source : 74856420fdf6108fe749c94418a20bc9faa6fc5e
2018-04-16 14:23:47 +12:00
Andreea Pavel fc3488c8d7 Backed out changeset ee5f61737378 (bug 1452805) for failing awsy/test_memory_usage.py on a CLOSED TREE 2018-04-16 17:05:13 +03:00
Matt Woodrow 552eaff7ef Bug 1453942 - Invalidate if any content ancestor of the display item frame is modified, not just frame tree ancestors. r=miko
We already rebuild all display items for out-of-flow descendants of a modified frame, but we don't currently mark them modified.
In this case, a scrollframe becomes active, and causes position:fixed descendants to use nsDisplayFixedPosition instead of nsDisplayWrapList.
Not invalidating means that we end up with both versions, instead of removing the old one.

MozReview-Commit-ID: LXjjsQhzxiB

--HG--
extra : rebase_source : e286bad815f2d799ec641e5b2ef6507eb57d22cd
2018-04-16 10:14:00 +12:00
Matt Woodrow 7594997fb9 Bug 1452805 - Make sure we rebuild contents infront and behind stacking contexts if their size might have changed. r=miko
The test invalidates the z-index element, so that we do a partial build with just that and the DAG no longer knows the relative ordering between it and the other blue elements.
We then expand the size of the 'first' elements stacking context, and ensure that we provide enough intersecting items to know that we're on top of the z-index element.

MozReview-Commit-ID: 13aRGm1eucp

--HG--
extra : amend_source : 11d530fbec816b3dbcfa7228625e0ba0e73064d0
2018-04-13 11:09:11 +12:00
Matt Woodrow 5f47a3aed8 Bug 1451971 - Rebuild the whole page when we have perspective or preserve-3d. r=miko
MozReview-Commit-ID: 2SkKvpdLWMi

--HG--
extra : rebase_source : 6b19d557a93fb3e0f2a2faf34f238b96c3e0f0bd
2018-04-11 21:49:30 +12:00
Matt Woodrow bbc9200a88 Bug 1451384 - Check IsChanged on the old item during merging, since that's the one that might have a deleted frame. r=mstange
This happens when an nsIFrame* that builds an nsDisplayWrapList is deleted, but then the memory is immediately reused for another frame that builds the same type display item, within the same display list.

PreProcessDisplayLists chooses not to descend into the nsDisplayWrapList for the deleted frame, and so mOldItems remains uninitialized for the old sublist.
When adding the new instance, IsChanged returns false, since the pointers are the same, and we're checking HasDeletedFrame on the new instance (where it's never true), instead of the old. We then recurse into MergeDisplayLists, with an uninitialized mOldItems array, and crash.

I haven't added a test because I haven't yet figured out how to create a minimal testcase, and the test would rely on implementation details of the frame allocator to remain unchanged to be useful.

MozReview-Commit-ID: pHimEvfAND

--HG--
extra : rebase_source : 10baa8cabf1eca8d592f2be0eb7bc7c9461f9785
2018-04-05 12:20:32 +12:00
Matt Woodrow 3cd23bdc29 Bug 1450360 - Reland chunk that got accidentally removed during a branch merge. r=mattwoodrow
MozReview-Commit-ID: 7gVvlsNcJnn

--HG--
extra : rebase_source : 3431ceb7ac784b378c7723b4d4f38a5770ee3f9c
2018-04-04 11:30:35 +12:00
Andreea Pavel 9048f2f6cb Backed out changeset 08c9beb155d5 (bug 1450360) for build bustages at builds/worker/workspace/build/src/layout/painting/RetainedDisplayListBuilder.cpp:1118 on a CLOSED TREE 2018-04-04 02:22:21 +03:00
Matt Woodrow 9a7f6d89b0 Bug 1443027 - Fix the merging algorithm to pass the new tests correctly. r=mstange
MozReview-Commit-ID: JnglCbdhZzE
* * *
[mq]: update-test

--HG--
extra : rebase_source : c9e861bcf811575aedeef5ab9b6fe9d963036740
2018-03-23 16:47:37 +13:00
Matt Woodrow 2d4435d3af Bug 1450360 - Reland chunk that got accidentally removed during a branch merge. r=mattwoodrow
MozReview-Commit-ID: MvE411GaHO

--HG--
extra : rebase_source : a696e0d77c41cd01f8991a76c9762b3f75284499
2018-04-04 10:56:55 +12:00
Sebastian Hengst a0665934fa Backed out 2 changesets (bug 1443027) for frequent crashes on OS X. a=backout
Backed out changeset 1e3dc6112e76 (bug 1443027)
Backed out changeset d2734042605a (bug 1443027)
2018-04-03 19:51:49 +03:00
Matt Woodrow 8e39fcdbe0 Bug 1443027 - Fix the merging algorithm to pass the new tests correctly. r=mstange
MozReview-Commit-ID: JnglCbdhZzE
* * *
[mq]: update-test

--HG--
extra : rebase_source : 1db0cc9843edd9654154d400b578a0432e5d765f
2018-03-23 16:47:37 +13:00
Noemi Erli 42b34ba196 Backed out 2 changesets (bug 1443027) for breacking Gmail on OSX r=pascalc a=backout
Backed out changeset 5deb310542a9 (bug 1443027)
Backed out changeset e04979dd66be (bug 1443027)
2018-03-30 19:08:30 +03:00
Matt Woodrow 0ab5810be5 Bug 1443027 - Fix the merging algorithm to pass the new tests correctly. r=mstange
MozReview-Commit-ID: JnglCbdhZzE
* * *
[mq]: update-test

MozReview-Commit-ID: JMIzrnVeSTo

--HG--
extra : rebase_source : 0ea5ff0e79d1eb1a8f13ea4a17e37fe2601d44e7
2018-03-23 16:47:37 +13:00
Jeff Muizelaar d07c300116 Bug 1388842. Add blob invalidation. r=mstange
MozReview-Commit-ID: 5xwqlULUbZe
2018-03-27 17:31:04 -04:00
Jonathan Watt 82ebebe276 Bug 1448714 - Fix up comments referring to 'style context' after the rename of nsStyleContext. r=emilio 2018-03-23 13:49:21 +00:00
Ryan VanderMeulen 49cc27555d Backed out changesets d9f154931d6d and 90e564873aa1 (bug 1443027) for causing Nightly topcrash bug 1448841. 2018-03-26 09:13:54 -04:00
Matt Woodrow 0c51f3f066 Bug 1443027 - Fix the merging algorithm to pass the new tests correctly. r=mstange
MozReview-Commit-ID: JnglCbdhZzE
* * *
[mq]: update-test

MozReview-Commit-ID: JMIzrnVeSTo

--HG--
extra : rebase_source : 0ea5ff0e79d1eb1a8f13ea4a17e37fe2601d44e7
2018-03-23 16:47:37 +13:00
Miko Mynttinen 65c6bee9d6 Bug 1445302 - Replace TArray.RemoveElementAt(TArray.Length() - 1) pattern with TArray.RemoveLastElement() or TArray.PopLastElement() r=froydnj
MozReview-Commit-ID: rGjabnP2iz

--HG--
extra : rebase_source : 1ef6c5ce028ac9ebd9f3176d57835c43fe46bada
2018-03-13 14:51:33 +01:00
Matt Woodrow 20a885856b Back out changeset dd8af18e26d4 (Bug 1439809) for having incorrect merging behaviour and causing crashes. r=backout 2018-03-08 20:00:41 +13:00
Chris Peterson 73675ec9f2 Bug 1443402 - Fix some -Wmissing-prototypes warnings in layout. r=dholbert
-Wmissing-prototypes is a new optional warning available in clang ToT. It warns about global functions that have no previous function declaration (e.g. from an #included header file). These functions can probably be made static (allowing the compiler to better optimize them) or they may be unused.

Confusingly, clang's -Wmissing-prototypes is equivalent to gcc's -Wmissing-declarations, not gcc's -Wmissing-prototypes. A function prototype is a function declaration that specifies the function's argument types. C++ requires that all function declarations specify their argument types, but C does not. As such, gcc's -Wmissing-prototypes is a C-only warning about C functions that have no previous function *prototypes* (with argument types), even if a previous function *declaration* (without argument types) was seen.

MozReview-Commit-ID: FGKVLzeQ2oK

--HG--
extra : rebase_source : 81e62163bf41a5d5dd87abf5397e6e8c62ed4096
extra : source : 653a9fc279e2f6a6d066474a94a70d65ac703d6b
2018-02-22 21:03:45 -08:00
Matt Woodrow 809bf8f61f Bug 1439809 - Change the display list merging algorithm to no longer require a hashtable of the old display list items. r=miko,mstange 2018-03-01 16:16:02 +13:00
Matt Woodrow 886dde8dd7 Bug 1437374 - Don't intersect the rebuild rect with the frame's overflow area if we're about to take the displayport into account. r=miko 2018-02-15 19:31:47 +13:00
Ciure Andrei fbd74d8452 Backed out changeset b8eeddf07480 (bug 1437374) for failing builds/worker/workspace/build/tests/reftest/tests/layout/reftests/display-list/1437374-1.html a=backout on a CLOSED TREE 2018-02-15 11:37:21 +02:00
Matt Woodrow adf4e4cd1a Bug 1437374 - Don't intersect the rebuild rect with the frame's overflow area if we're about to take the displayport into account. r=miko 2018-02-15 19:31:47 +13:00
Daniel Holbert df4b3ddfcf Bug 1437623 part 3: (layout/painting) Add missing includes/namespaces to preemptively fix unified bustage. r=mattwoodrow
MozReview-Commit-ID: GvYoCro4HAU

--HG--
extra : rebase_source : ffdabc2c26543784218820bdb6d3a95fc1451152
2018-02-13 09:08:42 -08:00
Matt Woodrow cfc46fcb12 Bug 1436189 - Part 2: Make sure we descend to the modified frame so that we descend through the containing block and mark out of flow frames for display. r=miko a=mass-reftest-fix CLOSED TREE
--HG--
extra : source : 3403b5f669d1395097f26c69c514e52d302a3ec0
extra : amend_source : 2d4c67e9142fd4e2404a772643a845634110ea0e
2018-02-09 11:47:08 +13:00
Matt Woodrow 745b1a42db Bug 1429932 - Part 7: Restrict dirty regions in ComputeRebuildRegion to the overflow area of the current frame so that we discard invalidations that aren't visible. r=miko
MozReview-Commit-ID: BJ5Ud7c9ofk

--HG--
extra : source : 24cf388d5d5b85e17a7cacaa53e2956cda20aff4
2018-01-12 11:51:08 +13:00
Matt Woodrow 83e16d1481 Bug 1429932 - Part 4: Determine when AttemptPartialUpdate made no changes, and return the result to the caller. r=miko
MozReview-Commit-ID: 6S8WkzHcxP5
* * *
[mq]: detect-changes-merging

MozReview-Commit-ID: KTy7wdE7dPK

--HG--
extra : source : c91a2b710a654530336760b83c6335bc11e4ed0d
2018-01-12 11:46:23 +13:00
Matt Woodrow 6fe2885534 Bug 1429932 - Part 3: Refactor RetainedDisplayListBuilder::AttemptPartialUpdate to have an early return instead of a nested scope. r=miko
MozReview-Commit-ID: L91euwUeJ5x

--HG--
extra : source : 5d146aec735e9bef2b95d3cbdfa5a5d13788e9ad
2018-01-12 11:43:41 +13:00
Sebastian Hengst 51a308a50b merge mozilla-inbound to mozilla-central. a=merge 2018-02-12 13:36:48 +02:00
arthur.iakab 9c5831300f Backed out 7 changesets (bug 1429932) for frequently failing layout/reftests/table-background/backgr_layers-opacity.html a=backout
Backed out changeset 24cf388d5d5b (bug 1429932)
Backed out changeset 8f7a4df5efcc (bug 1429932)
Backed out changeset c48601351975 (bug 1429932)
Backed out changeset c91a2b710a65 (bug 1429932)
Backed out changeset 5d146aec735e (bug 1429932)
Backed out changeset db244e692584 (bug 1429932)
Backed out changeset 39ffcc432d0c (bug 1429932)
2018-02-12 12:09:21 +02:00
arthur.iakab 3f11c2714c Backed out 2 changesets (bug 1436189) for frequently failing on layout/reftests/table-background/backgr_layers-opacity.html a=backout
Backed out changeset 3403b5f669d1 (bug 1436189)
Backed out changeset ee3062043923 (bug 1436189)
2018-02-12 12:06:58 +02:00
Matt Woodrow a48efa458b Bug 1420480 - Build display items infront and behind a stacking context if the size might have changed. r=miko 2018-02-12 16:05:28 +13:00
Matt Woodrow 9cab76c73d Bug 1436189 - Part 2: Make sure we descend to the modified frame so that we descend through the containing block and mark out of flow frames for display. r=miko 2018-02-09 11:47:08 +13:00
Matt Woodrow 596d61752a Bug 1429932 - Part 7: Restrict dirty regions in ComputeRebuildRegion to the overflow area of the current frame so that we discard invalidations that aren't visible. r=miko
MozReview-Commit-ID: BJ5Ud7c9ofk
2018-01-12 11:51:08 +13:00
Matt Woodrow 026652fdb6 Bug 1429932 - Part 4: Determine when AttemptPartialUpdate made no changes, and return the result to the caller. r=miko
MozReview-Commit-ID: 6S8WkzHcxP5
* * *
[mq]: detect-changes-merging

MozReview-Commit-ID: KTy7wdE7dPK
2018-01-12 11:46:23 +13:00
Matt Woodrow 89fd9a5858 Bug 1429932 - Part 3: Refactor RetainedDisplayListBuilder::AttemptPartialUpdate to have an early return instead of a nested scope. r=miko
MozReview-Commit-ID: L91euwUeJ5x
2018-01-12 11:43:41 +13:00
Gerald Squelart 3f1acad94a Bug 1435175 - RDL checker also outputs list of modified items before merge - r=mattwoodrow
MozReview-Commit-ID: 7ElZT9t5zYH

--HG--
extra : rebase_source : 69d7759533badb2d7b9f61f57fcabed5c32e1557
2018-02-02 18:18:59 +11:00
Miko Mynttinen eeba6c855d Bug 1431209 - Part 3: Clear mWindowOpaqueRegion before building a display list r=mattwoodrow
MozReview-Commit-ID: 2GFsg7WByGr

--HG--
extra : rebase_source : 0c36eaba904a5f5b4457d6e755181f572a04d972
2018-01-25 14:27:45 +01:00
Miko Mynttinen 226e3d7c8c Bug 1431209 - Part 1: Add WeakFrameRegion and use it for WindowDraggingRegions r=mattwoodrow
MozReview-Commit-ID: JxwxemwY20p

--HG--
extra : rebase_source : b0703ea8ba3e411d728e3cf9086cebddb299ed17
2018-01-25 14:26:30 +01:00
Phil Ringnalda 85431794dc Backed out 7 changesets (bug 1429932) for extremely frequent QuantumRender reftest failures
Backed out changeset b0ac71407500 (bug 1429932)
Backed out changeset 469ceaefd7a4 (bug 1429932)
Backed out changeset 2f801e78f798 (bug 1429932)
Backed out changeset 72852fdf476c (bug 1429932)
Backed out changeset 09e5e25d48ee (bug 1429932)
Backed out changeset bb1394cba514 (bug 1429932)
Backed out changeset 65b8996eb50c (bug 1429932)
2018-01-29 23:43:27 -08:00
Matt Woodrow 760ed538b7 Bug 1429932 - Part 7: Restrict dirty regions in ComputeRebuildRegion to the overflow area of the current frame so that we discard invalidations that aren't visible. r=miko
MozReview-Commit-ID: BJ5Ud7c9ofk
2018-01-12 11:51:08 +13:00
Matt Woodrow 6a606ff229 Bug 1429932 - Part 4: Determine when AttemptPartialUpdate made no changes, and return the result to the caller. r=miko
MozReview-Commit-ID: 6S8WkzHcxP5
2018-01-12 11:46:23 +13:00
Matt Woodrow b18337f9bd Bug 1429932 - Part 3: Refactor RetainedDisplayListBuilder::AttemptPartialUpdate to have an early return instead of a nested scope. r=miko
MozReview-Commit-ID: L91euwUeJ5x
2018-01-12 11:43:41 +13:00
Matt Woodrow 119e50197f Bug 1432348 - Null check the inner view when looking for the sub doc for painting. r=miko
--HG--
extra : rebase_source : 4e830b7e4a40e8a82dfea53876606867c28e96d1
2018-01-29 17:21:00 -05:00
Timothy Nikkel f1bc1aa42e Bug 1417358. Make sure that the override dirty rect that we set when a displayport changes gets cleared even if we don't perform a partial display list update. r=mattwoodrow
We do this by tracking them as a property on the root frame the same way we do for modified frames.

We also set the property in ProcessFrame but that is okay because we are guaranteed to finish the partial update at that point.
2018-01-25 23:42:44 -06:00
Miko Mynttinen 19b51b0b4c Bug 1432553 - Fix OOF frame overflow coordinate space r=mattwoodrow
MozReview-Commit-ID: 3VTyAAUM3VR

--HG--
extra : rebase_source : c234a54614796468602019000bd44df54f446655
2018-01-23 20:11:34 +01:00
Gerald Squelart ef7190dff0 Bug 1430494 - Skip new-list loop and its related operations if list is empty - r=mattwoodrow
MozReview-Commit-ID: LkY2lldl7Al

--HG--
extra : rebase_source : 80cb71dff67545e42034676c3ab813b5470cfb42
2018-01-15 10:15:50 +11:00