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

10390 Коммитов

Автор SHA1 Сообщение Дата
Robert O'Callahan a1480fca87 Bug 1048752. Part 19: Create nsCaret::GetPaintGeometry to call during painting. r=tn
This is the start of the changes to caret-drawing proper.

The idea is to combine GetCaretFrame and GetCaretRect into a method
GetPaintGeometry which looks like GetGeometry but returns values
needed for painting (i.e. including bidi decorations, and returning
a null frame if we're not supposed to paint due to specific caret
state, e.g. in the "off" phase of the blink cycle).

Mostly a straightforward refactoring but there are a few interesting changes:
-- nsDisplayCaret stores its bounds instead of getting them from nsCaret on
demand. Eventually those bounds will not be stored in nsCaret at all.
-- nsDisplayCaret::GetBounds returns true for aSnap. nsCaret draws snapped
rects, so why not.
-- I removed "if (caretRect.Intersects(aDirtyRect))" in EnterPresShell.
As far as I can tell, this check is incorrect because it doesn't take
transforms into account. Since there's at most one drawn caret per window,
hence we do this at most once per paint, I don't think there's any real
performance advantage to having this check.

--HG--
extra : rebase_source : c98d3a5994478b482d19cc2e2ac83ab51bd17e00
2014-08-06 17:19:28 +12:00
Robert O'Callahan 0a6d04586e Bug 1048752. Part 17: Rename Get/SetCaretDOMSelection to Get/SetSelection. r=tn
The forward declaration of Selection in nsCaret.h will be used in later patches.

--HG--
extra : rebase_source : d1b749adac983c04d3365bb6bfb76a50101beeb5
2014-08-06 17:19:27 +12:00
Robert O'Callahan 2489dc1f01 Bug 1048752. Part 16: Move nsFrameSelection::HINT to CaretAssociationHint.h. r=tn
This patch started an attempt to remove nsFrameSelection.h from nsCaret.h
and metastasized into a rather large refactoring patch that removed it
from some other header files as well, and changed nsFrameSelection::HINT
into a global-scope enum with better names. I also converted bools
into CaretAssociationHint in a few places where that was appropriate,
but there are still some more places (GetChildFrameContainingOffset)
where bools need to be converted. I figured this patch was big enough already.

--HG--
extra : rebase_source : cc618ef60e707e1360644340a2648de389383da0
2014-08-06 17:19:27 +12:00
Robert O'Callahan b4ed20d441 Bug 1048752. Part 14: Split GetGeometry into a static and a non-static version. r=tn
GetGeometry is used in two different ways. Sometimes it's used to get
information about a particular caret. Sometimes it's used to get
information about a particular selection that's not associated with
a caret. Splitting GetGeometry into a non-static version for the former
and a static version for the latter makes this more clear. Also it saves
code since for the latter version we don't have to get an nsCaret first.

--HG--
extra : rebase_source : b7730dac56b308a82b79b175749234c9a92b6f59
2014-08-06 17:19:26 +12:00
Robert O'Callahan 0de1b9e514 Bug 1048752. Part 10: Remove FrameLayerBuilder.h from nsDisplayList.h. r=tn
I was inspired by the previous patch to remove FrameLayerBuilder.h from
nsDisplayList.h too.

--HG--
extra : rebase_source : b34a01bea5865da4737817e2396b98d54cc6d1bf
2014-08-06 17:19:25 +12:00
Robert O'Callahan b8bd1730f3 Bug 1048752. Part 9: Remove nsCaret.h from nsDisplayList.h. r=tn
I got tired of slow build turnarounds every time I modified nsCaret.h.

--HG--
extra : rebase_source : 0c4598c4881ab8de0a636b08c70fb801bb912247
2014-08-06 17:19:25 +12:00
Robert O'Callahan 787f2f51a5 Bug 1048752. Part 3: Make GetCaretFrameForNodeOffset static. r=tn
GetCaretFrameForNodeOffset only uses the nsFrameSelection and mBidiUI
from its nsCaret. For mBidiUI we can just get the pref directly whenever
we need it. By modifying GetCaretFrameForNodeOffset to take nsFrameSelection
as a parameter, we can make it static to make it clear it isn't really
related to the state of the nsCaret.

This may also fix a bug in Selection::GetPrimaryFrameForFocusNode where
things would go unexpectedly wrong if mCaret is temporarily observing
a different selection to the Selection.

--HG--
extra : rebase_source : cdd59f6e20cd1060bc5d2325cb3adb5e5c4a1d2c
2014-08-06 17:19:24 +12:00
Susanna Bowen c622b18e05 Bug 1030993 - Fix assertion failure in reftest css-ruby/ruby-whitespace-1.html. r=dbaron
Fixes the assertion failure with text:
"###!!! ASSERTION: Wrong line container
hint: '!aForFrame || (aLineContainer == FindLineContainer(aForFrame) ||
aLineContainer->GetType() == nsGkAtoms::rubyTextContainerFrame ||
(aLineContainer->GetType() == nsGkAtoms::letterFrame &&
aLineContainer->IsFloating()))', file
/home/sgbowen/builds/mozilla-central/layout/generic/nsTextFrame.cpp, line 1259"
which occasionally appears when opening pages with ruby or when running ruby
reftests.

Updates the manifest for ruby reftests to the current expectations (adjust
assertion counts, etc.)
2014-08-15 10:34:20 -07:00
Susanna Bowen 779f8cef59 Bug 1030993 - Basic reflow implementation for ruby frame classes. r=dbaron
To account for spacing between bases or text boxes during reflow, the line
layout which manages the bases updates its inline direction coordinate based on
the preferred inline size for the corresponding text boxes. Next, the base is
reflowed at the correct inline coordinate. Each paired text box is then also
reflowed at the proper inline position determined by (1) the current position of
its corresponding base and (2) its own preferred width.

In computing intrinsic widths, accounting for spacing is less complicated. The
minimum intrinsic width is the width of the widest ruby column, and the
preferred intrinsic width is the sum of all the ruby column widths. Each ruby
column width is the maximum width of its base box and text boxes. These
individual widths are determined using GetPrefISize on the base and text boxes.

Ruby base container frames store a list of pointers to the ruby text container
frames in the segment they denote. This list of pointers is created in the ruby
frame reflow method before calling the reflow method for the ruby base
container. The list exists and is used only during reflow of the main ruby frame
and is cleared before returning from reflow.
2014-08-15 10:34:20 -07:00
Seth Fowler 983a3f905a Bug 913586 (Part 7) - Update Maybe users in layout. r=dbaron
--HG--
extra : rebase_source : 1bf45d1356d36269ca951b58ebf1e448313c55c5
2014-08-13 15:42:15 -07:00
L. David Baron ebafb4f9b6 Bug 625289 patch 6 - Store style contexts being reframed in the ReframingStyleContexts struct. r=heycam 2014-08-13 15:39:01 -07:00
Trevor Saunders 8f78184d9a bug 1016545 - Provide an iterator that iterates over all children of an element r=bz 2014-07-16 14:41:57 -04:00
Seth Fowler 3be514e0be Bug 981924 - Update ReportToConsole calls in layout code to use the right category. r=dbaron 2014-08-11 16:52:01 -07:00
Jonathan Kew 31f53d899f bug 1048050 - ignore region (or other) subtags when checking for language-specific casing behavior. r=smontagu 2014-08-11 09:49:11 +01:00
Markus Stange 3262aee646 Backed out changeset 411a075b3624 (bug 987030) because it probably caused timeouts of browser_tabview_expander.js. CLOSED TREE 2014-08-08 18:05:40 +02:00
Robert O'Callahan f4028459f4 Bug 1050096. Clip scrollparts to the viewport for root scrollframes. r=tnikkel 2014-08-09 01:00:53 +12:00
Markus Stange 42d041842e Bug 987030 - Fix compressed paint timer scheduling. r=roc 2014-08-08 12:46:50 +02:00
Nicholas Nethercote a7cf4142b4 Bug 1050009 - Initialize pldhash tables with a length, not a capacity. r=roc.
* * *
imported patch rm-dummy-params

--HG--
extra : rebase_source : c25987eb11bae197218d5fc53b77def19afa36ac
2014-08-06 06:31:21 -07:00
Daniel Holbert abbc77f1fc Bug 1032922 part 2: Rename flex-basis's "auto" keyword to "main-size" (but retain "flex:auto" as shorthand for "1 1 main-size"). r=heycam 2014-08-07 22:11:48 -07:00
Daniel Holbert 39bd7337db Bug 1050412 part 2: Assert about frame type before static_casting, and drop useless null-check. r=tn 2014-08-07 22:07:16 -07:00
Daniel Holbert 405e80dc03 Bug 1050412 part 1: Use nsFrameList::Enumerator in nsSimplePageSequenceFrame to iterate over child frames. r=tn 2014-08-07 22:07:15 -07:00
Timothy Nikkel fb63d1472a Bug 1042772. Update the reference frame and current frame offset when moving to outside a transform so that we can use the correct offset to compute the initial visible rect for wrap list display items. r=roc
* * *
The current reference frame is still the same as our reference frame because we set and restore it in nsFrame::BuildDisplayListForChild before this. So we need to actually compute it.
2014-08-07 11:33:18 -05:00
Timothy Nikkel c98f0d0c71 Bug 1042772. offsetToReferenceFrame is always zero when we use it. Remove it. r=mattwoodrow 2014-08-07 11:33:16 -05:00
Timothy Nikkel 4dcc187fd5 Bug 1042772. Set the dirty rect relative to the current frame, not the reference frame. r=roc
The offsetToReferenceFrame is to the reference frame for this, since we are transformed we are the reference frame, so the offset was 0,0. So the computation still produced correct results.
2014-08-07 11:33:14 -05:00
Ehsan Akhgari 2b84010cb8 Bug 1048246 - Fix more bad implicit constructors in layout; r=roc
--HG--
extra : rebase_source : ed828993139bc70232508364a9f046e38b7d3e06
2014-08-07 19:48:38 -04:00
Timothy Nikkel 2dc2f9e427 Backout f7a499183de0, 5dfd8d0a0ea6, dec09b1a21e4 (bug 1042772) for reftest failure on CLOSED TREE 2014-08-07 12:49:15 -05:00
Timothy Nikkel a351c40d5a Bug 1042772. Update the reference frame and current frame offset when moving to outside a transform so that we can use the correct offset to compute the initial visible rect for wrap list display items. r=roc 2014-08-07 11:33:18 -05:00
Timothy Nikkel 2c8ee8bbfc Bug 1042772. offsetToReferenceFrame is always zero when we use it. Remove it. r=mattwoodrow 2014-08-07 11:33:16 -05:00
Timothy Nikkel 6d1a7bd986 Bug 1042772. Set the dirty rect relative to the current frame, not the reference frame. r=roc
The offsetToReferenceFrame is to the reference frame for this, since we are transformed we are the reference frame, so the offset was 0,0. So the computation still produced correct results.
2014-08-07 11:33:14 -05:00
Morris Tseng f3682709b7 Bug 1046498 - Constrain frame to anchor subtree when dragging selection caret. r=roc 2014-08-06 01:55:00 -04:00
Olli Pettay 87b818700b Bug 1026164, improve focus handling in shadow dom, r=wchen
--HG--
extra : rebase_source : 026b9ee49cdce82a703700593d7a1f0e5d27969f
2014-08-06 02:23:02 +03:00
Ryan VanderMeulen b11ac7d582 Backed out changeset 80d85e3fdf41 (bug 1046573) for bustage.
CLOSED TREE
2014-08-05 13:58:50 -04:00
kernp25@yahoo.com 4ea8e680aa Bug 1046573 - Add an observer notification for newly created selection objects; r=ehsan 2014-08-05 13:44:26 -04:00
Morris Tseng e805832aca Bug 1023041 - Part 1: Rename SetMouseDownState to SetDragState. r=roc 2014-08-04 00:26:00 -04:00
Matt Woodrow cfce6663f6 Bug 1045864 - Disable layerized background-attachment:fixed when we're using a software compositor. r=roc 2014-08-05 15:25:00 +12:00
Masayuki Nakano fbbc8bd11e Bug 1046101 part.18 Rename NS_TOUCH_EVENT to eTouchEventClass r=smaug 2014-08-04 14:28:53 +09:00
Masayuki Nakano 5a96c29b49 Bug 1046101 part.11 Rename NS_MOUSE_EVENT to eMouseEventClass r=smaug 2014-08-04 14:28:50 +09:00
Masayuki Nakano 00f048e7cd Bug 1046101 part.1 Rename nsEventStructType to mozilla::EventClassID r=smaug 2014-08-04 14:28:46 +09:00
Ryan VanderMeulen 04016822d8 Backed out 3 changesets (bug 1022818) for B2G test failures on a CLOSED TREE.
Backed out changeset 9b37b8ae8302 (bug 1022818)
Backed out changeset bfe7d53e220a (bug 1022818)
Backed out changeset 6c5208ca3274 (bug 1022818)
2014-08-01 11:14:14 -04:00
Kearwood (Kip) Gilbert 09c2a8c1e1 Bug 1022818 - Part 3: Tests for CSSOM-View Smooth-Scroll DOM API Methods and MSD Animation. r=bz
- Verify that instant scroll-behavior is synchronous.
- Verify that smooth scroll-behavior is asynchronous.
- Verify that smooth scroll-behavior is triggered by CSSOM-View DOM methods.
- Verify that instant scroll-behavior interrupts smooth scroll-behavior
  animation.
- Verify that smooth scroll-behavior is not framerate dependant.
- Verify that smooth scroll-behavior physics simulations used by animations
  converge and allow the animation to reach completion.
- CSSOM-View scroll-behavior smooth scroll animations must produce the same
  results indendently of frame-rate:
  - Reference samples of scroll position for each frame are captured from a
    smooth scroll at 120fps for variations in X-Distance, Y-Distance.
  - Test samples are captured from an animation with the same parameters at
    varying framerates.
  - Variance in position at each sampled interval is compared to the 120fps
    reference.  To pass the test, the position of each test sample must match
    the reference position with a tolerance of one test sample frame's range
    of motion.  This range of motion is calculated by the position delta of
    the reference samples one test frame duration before and after.
  - The duration of the reference sample animation and the test sample
    animation must match within 1 frame to pass the test.
  - The simulation driving the animation must converge and stop on the
    destination position for the test to pass.
2014-07-25 14:20:45 -07:00
David Zbarsky 1c4b5d248a Bug 952977: More gfx::Matrix cleanup in nsDisplayTransform r=nical 2014-08-01 08:31:48 -04:00
Nathan Froyd 12c76f15f7 Bug 1042878 - part 2 - move MOZ_CAIRO_CFLAGS et al additions to C*FLAGS into moz.build; r=glandium 2014-07-24 11:55:33 -04:00
Kearwood (Kip) Gilbert 3bd3d5624a Bug 1026023 - Part 4: Allow smooth scrolling to override momentum mouse wheel scroll events. r=mwoodrow
- When a smooth scroll is being processed on a frame, mouse wheel and trackpad
  momentum scroll event updates will no longer cancel the SMOOTH or SMOOTH_MSD
  scroll animations, enabling scripts that depend on them to be responsive
  without forcing the user to wait for the fling animations to completely stop.
2014-07-15 16:13:00 +02:00
Kearwood (Kip) Gilbert 1453cb535f Bug 1026023 - Part 3: Integrate MSD movement with nsGfxScrollFrame. r=mattwoodrow
- Added nsIScrollableFrame::ScrollMode::SMOOTH_MSD to differentiate
  existing smooth scrolls used by keyboard and mousewheel events from the
  CSSOM-View scroll-behavior's MSD motion scrolling.
- Implemented ScrollFrameHelper::AsyncSmoothMSDScroll, which takes the role
  of ScrollFrameHelper::AsyncScroll when SMOOTH_MSD scrolls are requested.
- Implemented glue code to handle callbacks from AsyncSmoothMSDScroll and
  to hand off velocity between the classes when one scroll animation is
  interrupted by another.
2014-07-09 10:02:31 -07:00
Wes Kocher 3c155637a3 Backed out 11 changesets (bug 952977) for reftest-no-accel failures
Backed out changeset ea2367c19da3 (bug 952977)
Backed out changeset c401c8748eb3 (bug 952977)
Backed out changeset a93e9ff1043b (bug 952977)
Backed out changeset 765b7f67163e (bug 952977)
Backed out changeset 3d8cf4f5777f (bug 952977)
Backed out changeset 8993710a3ab3 (bug 952977)
Backed out changeset 1298c39b745a (bug 952977)
Backed out changeset be0b899fbe5e (bug 952977)
Backed out changeset f69bea1f1feb (bug 952977)
Backed out changeset 1a745777f07e (bug 952977)
Backed out changeset 5ad1d18dfe17 (bug 952977)
2014-07-29 18:58:46 -07:00
Wes Kocher 411bb10871 Merge m-c to inbound 2014-07-29 17:17:31 -07:00
Wes Kocher 10853dd305 Merge inbound to m-c a=merge 2014-07-29 17:01:18 -07:00
David Zbarsky b967b647bf Bug 952977: More gfx::Matrix cleanup in nsDisplayTransform r=nical 2014-07-29 19:18:50 -04:00
Matt Woodrow 21c89b906b Bug 1043961 - Disabled desktop display port changes for android. r=tn
--HG--
extra : rebase_source : d1de78af825bac1e7f06ff81c4394d70a75cc8fd
2014-07-29 12:07:36 +12:00
Bill McCloskey 6f3af986c5 Bug 1041247 - Allow font inflation test to pass in e10s (r=dbaron) 2014-07-25 16:00:03 -07:00