Commit Graph

7821 Commits

Author SHA1 Message Date
L. David Baron
bd3e3e117e Bug 1115812 patch 6 - Move ProcessRestyles from RestyleTracker to RestyleManager. r=heycam
This is needed for the following patch, so that it can access a member
variable of RestyleManager.
2015-01-13 21:03:12 -08:00
L. David Baron
353a518622 Bug 1115812 patch 5 - Store the state of whether we're currently rebuilding all style data in a member variable, to prepare for future merging of the rebuild into other code. r=heycam
This adds a member variable that is currently only used within a single
function, but that function will be split apart so that different parts
of it can be called from different places within ProcessPendingRestyles.
2015-01-13 21:03:12 -08:00
L. David Baron
740dcec630 Bug 1115812 patch 4 - Rename mRebuildAllStyleData to mDoRebuildAllStyleData. r=heycam
This is the variable that says we *need to* rebuild style data.  Since
the next patch will introduce a variable that says we're *currently*
rebuilding all style data, renaming this one makes things clearer.
2015-01-13 21:03:11 -08:00
L. David Baron
5d2e2e0c78 Bug 1115812 patch 3 - Pass the hints to DoRebuildAllStyleData via the member variables, in preparation for future refactoring. r=heycam
Part of this refactoring involves the ability to start the rebuild-all
process within the processing of restyles.  This means we can't pass
parameters directly from RebuildAllStyleData into DoRebuildAllStyleData.
So this continues storing the hints as member variables a little bit
deeper into the process.

(I tried to move in a different direction in this patch queue, and store
these hints in mPendingRestyles, for the root element.  But that broke
layout/style/test/test_counter_style.html and
layout/style/test/test_font_loading_api.html, and I didn't want to
figure out why.  It would be somewhat better in the long run, since
currently these hints will get processed if we do a rebuild-all on a
RestyleTracker other than mPendingRestyles, which can happen if we have
'rem' units and have a root element font size change in the
animation-only update or in mPendingAnimationRestyles.)
2015-01-13 21:03:11 -08:00
L. David Baron
989020c241 Bug 1115812 patch 2 - Move the eRestyle_ChangeAnimationPhaseDescendants hint in DoRebuildAllStyleData so that the new rebuild-all codepaths will keep it. r=heycam
The patches in this series refactor the process of rebuilding all style
data (RestyleManager::RebuildAllStyleData and
RestyleManager::DoRebuildAllStyleData) so that the process of rebuilding
all style data uses the existing restyle processing loops in
ProcessPendingRestyles.  (Rebuilding all style data is what we do when
we need to throw away the rule tree because something has invalidated
the cached data in it.)  This removes (increasing, especially with bug
960465 coming) code duplicated between the two codepaths, fixes some
omissions from the separate rebuild-all codepath, and (more immediately)
allows fixing lifetime issues of ReframingStyleContexts objects in bug
1110277 so that we can have a single ReframingStyleContexts for all of
the restyle processing in each restyle processing operation.  In other
words, the goal is to change the rebuild-all process from a separate
codepath to a few variables that modify the way ProcessPendingRestyles
works (and make it do the extra work).

This is just a small first step in that process, which moves one piece
of code from a chunk of duplicated and to-be-removed code into a chunk
of code that will be preserved.
2015-01-13 21:03:11 -08:00
L. David Baron
5a6daf61dc Bug 1115812 patch 1 - Remove obsolete comment that was fixed by bug 1047928. r=heycam 2015-01-13 21:03:11 -08:00
L. David Baron
6342166719 Bug 908987 - Honor mIsActive more aggressively to avoid calling IsVisibleConsideringAncestors. r=roc
This means that we avoid an O(N^2) calling pattern of IsVisible when we
call IsVisible for all tabs of a tabbrowser, since in a tabbrowser
(which uses an nsDeckFrame), IsVisibleConsideringAncestors is O(N) in
number of earlier tabs.
2015-01-13 21:03:11 -08:00
Mats Palmgren
299cf3cc08 Bug 1120198 part 2 - Optimize RebuildImageVisibility[DisplayList]() using nsTHashtable::SwapElements. r=tn 2015-01-13 14:44:33 +00:00
Jeremy Chen
56fa844627 Bug 1110917 - Part 2: Fix focus not changing while selecting text by long press v2. r=roc 2015-01-12 18:10:03 +08:00
Jeremy Chen
a871d5973b Bug 1110917 - Add test cases for selectioncaret changes. r=automatedtester 2014-12-31 14:40:39 +08:00
L. David Baron
8693102462 Bug 1110277 patch 3 - Look for the GenConPseudos() property on the first continuation/ib-split so that we can find it when looking for the ::after frame. r=bzbarsky
The change to GetAfterFrameForContent prevents the reframe that is part
of the chain of events leading to this bug, and thus fixes the bug on
its own.  The change to GetBeforeFrameForContent seems desirable for
symmetry.

Note that patch 6 also independently fixes the reported bug.

This probably needs somewhat careful review.  We should examine:

 (1) what the rules for calling nsLayoutUtils::GetBeforeFrame and
     nsLayoutUtils::GetAfterFrame are, and whether both (or neither)
     need to be patched.

 (2) What the rules are for which frame the GenConProperty() lives on,
     and whether we should adjust nsIFrame::GetGenConPseudos() to either
     do something more intelligent, or assert about callers.

(We should probably clean up some of these things in a followup bug.)

Since the symptom of this bug is (once patch 4 is in the tree) only
causing extra reframes, it can only be tested using the new API (from
bug 1115691) for observing reframes.  I confirmed that the test for this
bug fails without the patch and passes with the patch (as noted by the
removal of its todo annotation).

This patch fixes the assertion on layout/generic/crashtests/600100.xhtml,
though I haven't investigated why.
2015-01-11 15:43:11 -08:00
L. David Baron
877c418cca Bug 1110277 patch 2 - Add nsLayoutUtils::LastContinuationOrIBSplitSibling(). r=bzbarsky
This is used in patch 3.
2015-01-11 15:43:10 -08:00
L. David Baron
9c0ffc3692 Bug 1110277 patch 1 - Consider the ib-split chain when checking for ::before and ::after in order to reframe when they're missing. r=bzbarsky
This patch is not needed to fix the bug, but it seems like it's probably
desirable.  It's not needed for this bug because
MaybeReframeForBeforePseudo and MaybeReframeForAfterPseudo are already
called (by ElementRestyler::RestyleChildren) on only the first and last
continuation or ib-split sibling with the same style.  So this patch
should only actually change anything for cases like a block-in-inline
split whose initial inline part is inside of a ::first-line (where
different parts of the block-in-inline split chain have different style).

Since the symptom of this bug is (once patch 6 is in the tree) only
causing extra reframes, it can only be tested using the new API (from
bug 1115691) for observing reframes.  I confirmed that the test for this
bug fails without the patch and passes with the patch (as noted by the
removal of its todo annotation).
2015-01-11 15:43:10 -08:00
L. David Baron
ac3bd5e648 Bug 1110277 patch 0 - Add mochitest for patch 1 and patch 3. r=heycam
Patch 1 and patch 3 will change the todo status of the first and second
tests, respectively, since they are what fix the tests.
2015-01-11 15:43:10 -08:00
L. David Baron
f1a791b803 Bug 1115691 patch 1 - Store counts of frames constructed and reflowed on the pres context. r=roc
(I've tested the frame construction counts in my test for bug 1110277; I
haven't actually tested the reflow counts.)
2015-01-11 15:43:10 -08:00
Masatoshi Kimura
f70d08c5aa Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Geoff Lankow
b26884fe2a Bug 1114297 - Improve performance of nsTreeBodyFrame::AdjustForCellText for very long strings; r=smontagu 2015-01-11 00:07:58 +13:00
Gregor Wagner
f59502cc09 Bug 1103106 - Make assertion failure: !mWillChangeBudgetCalculated non fatal. r=benwa 2015-01-09 13:29:43 -08:00
Ryan VanderMeulen
85d5bf698c Merge inbound to m-c. a=merge 2015-01-09 14:45:50 -05:00
Carsten "Tomcat" Book
eabda1c7ba Merge mozilla-central to b2g-inbound 2015-01-09 15:54:18 +01:00
Fernando Jimenez Moreno
e7366b0d51 Bug 1101029 - Overlay iframe on top of front-most app. r=roc, sicking 2015-01-09 09:55:18 +01:00
Makoto Kato
2e0919196e Bug 966157 - Part 3. Ignore assertion of test_bug558663.html for Linux e10s. r=masayuki 2015-01-09 16:40:25 +09:00
Kartikaya Gupta
01e045fa21 Bug 1109873 - Implement the expanded HitTestingTree. r=botond 2015-01-08 09:40:01 -05:00
pchang
dc0b00c38c Bug 1111433 - Dispatch the SelectionStateChanged event for blur. r=ehsan 2015-01-07 01:01:00 -05:00
Ehsan Akhgari
b6e35bb4b4 Bug 1118486 - Part 1: Use = delete instead of MOZ_DELETE directly; r=Waldo
Most of this patch (with the exception of dom/bindings/Codegen.py) was
generated by the following bash script:

#!/bin/bash

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "*/.git*" \
       ! -wholename "obj-*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_DELETE '= delete'
2015-01-08 23:19:05 -05:00
Michael Pruett
b9d2bd339e Bug 1118024 - Use new PL_DHashTable{Add,Lookup,Remove} functions. r=nfroyd 2015-01-05 20:27:28 -06:00
Botond Ballo
2e46796a0f Bug 1076241 - Add an API for setting a resolution on a document and scaling it by that amount. r=kats,tn 2015-01-02 20:06:14 -05:00
Ehsan Akhgari
6446250173 Bug 1118427 - Mark virtual overridden functions as MOZ_OVERRIDE in layout; r=roc 2015-01-07 10:07:36 -05:00
Morris Tseng
306e6a2bf2 Bug 1117643 - Always send blur event to selection carets but cancel long tap detector when leaving document. r=roc 2015-01-05 01:15:00 +01:00
pchang
a222d544ee Bug 1098161 - Notify shortcut mode to system app when long tap on content with empty text. r=roc 2014-12-19 14:04:45 +08:00
Jonathan Kew
0e4fbcf5fd Bug 1111944 - part 1 - Make nsLayoutUtils::DrawString (and the nsFontMetrics methods it calls) handle vertical text. r=smontagu 2015-01-06 20:56:03 +00:00
JerryShih
1c75ae0748 Bug 1118336. Extract timer rate function from RefreshDriverTimer into SimpleTimerBasedRefreshTimer. r=roc 2015-01-06 09:28:18 -08:00
Jonathan Kew
65c4ca0e3f Bug 619521 - Part 1: Send a notification of any scripts for which font coverage is lacking. r=jdaggett 2014-12-22 16:35:54 +00:00
Ryan VanderMeulen
967224de70 Backed out changesets 4d2d510fbd62, 5e51dc838a89, and 652bd77f36c1 (bug 1116714) for Linux opt mochitest-dt orange.
CLOSED TREE
2015-01-06 08:57:43 -05:00
Mats Palmgren
8b28082cae Bug 1116714 part 3 - Use GetParentOrPlaceholderFor (not GetParent) so that reframing anonymous content frames works also for fixed pos frames. r=roc 2015-01-06 09:27:56 +00:00
Brian Birtles
197cde67e9 Bug 1112480 part 6 - Make PendingPlayerTracker call StartOnNextTick; r=jwatt
This patch switches on the new, "actually start the player in the next refresh
driver tick" behavior. It updates PendingPlayerTracker, adding
a StartPendingPlayersOnNextTick method which calls the appropriate method on
AnimationPlayer. The existing StartPendingPlayers is renamed to
StartPendingPlayersNow and is used for testing only.

Furthermore, since we now expect AnimationPlayer::StartOnNextTick to be
functional, AnimationPlayer::DoPlay is updated to use it when there is no
document available. This should make playing an animation player always
asynchronous, that is, always transition to the pending state temporarily
(unless we are already playing).
2015-01-09 07:57:58 +09:00
Brian Birtles
720fca4e3f Bug 1113413 - Make refresh driver go back immediately when restored from test control; r=vlad 2015-01-06 10:56:02 +09:00
Wes Kocher
b22f691e1d Merge fx-team to m-c a=merge 2015-01-05 17:08:49 -08:00
Tom Tromey
626168339b Bug 1113706 - move TimelineMarker to a new header; r=smaug 2015-01-05 09:39:16 -08:00
Phil Ringnalda
d24a57bdfd Backed out 4 changesets (bug 1116821, bug 1110928) for Windows OOMs
CLOSED TREE

Backed out changeset 9d593597df5f (bug 1110928)
Backed out changeset d68c75986335 (bug 1110928)
Backed out changeset 21d807074550 (bug 1110928)
Backed out changeset ca77252e50dd (bug 1116821)
2015-01-04 21:12:19 -08:00
Andrew McCreight
23afe7c9b0 Bug 1110928, part 3 - Try to pass a relevant zone to PokeGC. r=smaug
This means the browser will do less full GCs.
2015-01-04 17:46:50 -08:00
Andrew McCreight
d541b6c427 Bug 1110928, part 2 - Call PokeGC in nsDocumentViewer::PageHide before the call to OnPageHide. r=smaug
This ensures that the document isn't destroyed when we call PokeGC, which will be useful later.
2015-01-04 17:46:50 -08:00
Andrew McCreight
a8c632a6f8 Bug 1110928, part 1 - Hoist the LOAD_END PokeGC out of nsJSContext::LoadEnd. r=smaug
nsDocumentViewer knows which document is involved which will help us later.

Also, fix a typo in the comment.
2015-01-04 17:46:50 -08:00
Bas Schouten
87bc3fd5d5 Bug 1084450: Disable subpixelAA text when requested for header/footer drawing code. r=mattwoodrow 2015-01-05 01:18:11 +01:00
Carsten "Tomcat" Book
8586519a65 Merge mozilla-central to b2g-inbound 2015-01-02 14:15:38 +01:00
Joel Maher
e8ac3f45a2 Bug 1114710 - test_leaf_layers_partition_browser_window.xul fails when run as a standalone directory. r=tn 2014-12-31 12:02:00 +01:00
Morris Tseng
2ba8102f1c Bug 1114853 - Part 5: Don't dispatch event when we're at drag mode. r=roc 2014-12-24 00:02:00 +01:00
Morris Tseng
a6bbfddb27 Bug 1114853 - Part 4: Bail out if selections are mismatch. r=roc 2014-12-29 20:02:00 +01:00
Morris Tseng
68d1a81af7 Bug 1114853 - Part 3: Reset mSelectionVisibleInScrollFrames when visibility set to false. r=roc 2014-12-24 01:07:00 +01:00
Morris Tseng
e31d727e5a Bug 1114853 - Part 2: Remove useless SetVisibility calls. r=roc 2014-12-24 00:01:00 +01:00