Commit Graph

2008 Commits

Author SHA1 Message Date
David Anderson
78853a67df Hoist scroll info items above inactive blur containers. (bug 1193557 part 1, r=mstange) 2015-09-04 17:17:50 -07:00
Masayuki Nakano
5efe61139d Bug 895274 part.27 Rename NS_MOUSE_BUTTON_DOWN to eMouseDown r=smaug 2015-08-29 08:58:30 +09:00
Masayuki Nakano
00ded62efd Bug 895274 part.26 Rename NS_MOUSE_BUTTON_UP to eMouseUp r=smaug 2015-08-29 08:58:30 +09:00
Masayuki Nakano
329427650a Bug 895274 part.25 Rename NS_MOUSE_MOVE to eMouseMove r=smaug 2015-08-29 08:58:29 +09:00
Masayuki Nakano
5473d2dcb9 Bug 895274 part.1 Rename WidgetEvent::message to WidgetEvent::mMessage r=smaug 2015-08-22 10:34:51 +09:00
Robert O'Callahan
f25aed7b2b Bug 1179288. Make position:fixed induce a stacking context. r=heycam 2015-08-17 11:02:54 +12:00
William Chen
fe0c135b44 Bug 1181130 - Part 3: Keep track of editable descendants per node and prevent NS_STYLE_USER_SELECT_ALL selection for nodes with editable descendants. r=bz 2015-08-14 10:52:38 -07:00
Ehsan Akhgari
cfe587abe5 Bug 1181130 - Part 1: Add support for -moz-user-select: -moz-text; r=dbaron 2015-08-14 10:49:27 -07:00
Brian Birtles
b6971d7557 Bug 1181392 part 5 - Remove use of IsFinishedTransition from AnimationCollection::HasAnimationOfProperty; r=dbaron
AnimationCollection::HasAnimationOfProperty uses IsFinishedTransition to filter
out transitions that should otherwise be ignored. This is used in the following
places:

1. nsLayoutUtils::HasAnimations

   The is only used by nsIFrame::BuildDisplayListForStackingContext to see if
   there are any opacity animations

   For this case, simply returning *current* animations would be sufficient
   (since finished but filling animations should have already filled in the
   display opacity)

2. CommonAnimationManager::GetAnimationsForCompositor

   This should really only return *current* animations--that is, animations that
   are running or scheduled to run. Finished animations never run on the
   compositor. Indeed, only *playing* animations run on the compositor but, as
   we will see in some of the cases below, it is sometimes useful to know that
   an animation *will* run on the compositor in the near future (e.g. so we can
   pre-render content).

   The places where GetAnimationsForCompositor is used are:

   - When building layers to add animations to layers in nsDisplayList--in this
     case we skip any animations that aren't playing so if
     GetAnimationsForCompositor only returned current animations that would be
     more than sufficient.

   - In nsLayoutUtils::HasAnimationsForCompositor. This in turn is used:

     - In ChooseScaleAndSetTransform to see if the transform is being animated
       on the compositor. If so, it calls
       nsLayoutUtils::ComputeSuitableScaleForAnimation (which also calls
       GetAnimationsForCompositor) and passes the result to
       GetMinAndMaxScaleForAnimationProperty which we have already adjusted in
       part 4 of this patch series to only deal with *relevant* animations

       Relevant animations include both current animations and in effect
       animations but we don't run forwards-filling animations on the compositor
       so GetAnimationsForCompositor should NOT return them. Current animations
       should be enough. In fact, playing animations should be enough but we
       might want to pre-render layers at a suitable size during their delay
       phase so returning current animations is probably ok.

     - In nsDisplayListBuilder::MarkOutOfFlowFrameForDisplay to add a fuzz
       factor to the overflow rect for frames undergoing a transform animation
       on the compositor. In this case too current animations should be
       sufficient.

     - In nsDisplayOpacity::NeedsActiveLayer to say "yes" if we are animating
       opacity on the compositor. Presumably in this case it would be good to
       say "yes" if the animation is in the delay phase too (as it currently
       does). After the animation is finished, we should drop the layer, i.e.
       current animations should be sufficient.

     - In nsDisplayTransform::ShouldPrerenderTransformedContent. As with
       nsDisplayOpacity::NeedsActiveLayer, we only need to pre-render
       transformed content for animations that are current.

     - In nsDisplayTransform::GetLayerState. As with
       nsDisplayOpacity::NeedsActiveLayer, we only need to return active here
       for current animations.

     - In nsIFrame::IsTransformed. Here we test the display style to see if
       there is a transform and also check if transform is being animated on the
       compositor. As a result, we really only need HasAnimationsForCompositor
       to return true for animations that are playing--otherwise the display
       style will tell us if we're transformed or not. Returning true for all
       current compositor animations (which is a superset of playing), however,
       should not cause problems (we already return true for even more than
       that).

     - In nsIFrame::HasOpacityInternal which is much the same as
       nsIFrame::IsTransformed and hence current should be fine.

3. AnimationCollection::CanThrottleAnimation

   Here, HasAnimationOfProperty is used when looking for animations that would
   disqualify us from throttling the animation by having an out-of-date layer
   generation or being a transform animation that affects scroll and so requires
   that we do the occasional main thread sample to update scrollbars.

   It would seem like current animations are enough here too. One interesting
   case is where we *had* a compositor animation but it has finished or been
   cancelled. In that case, the animation won't be current and we should not
   throttle the animation since we need to take it off its layer.

   It turns out checking for current animations is still ok in this case too.
   The reasoning is as follows:

   - If the animation is newly-finished, we'll pick that up in
     Animation::CanThrottle and return false then.

   - If the animation is newly-idle then there are two cases:

     If the cancelled animation was the only compositor animation then
     AnimationCollection::CanPerformOnCompositorThread will notice that there
     are no playing compositor animations and return false and
     AnimationCollection::CanThrottleAnimation will never be called.

     If there are other compositor animations running, then
     AnimationCollection::CanThrottleAnimation will still return false because
     whatever cancelled the animation will update the animation generation and
     we'll notice the mismatch between the layer animation generation and the
     animation generation on the collection.

Based on the above analysis it appears that making
AnimationCollection::HasAnimationOfProperty return only current animations (and
simulatneously renaming it to HasCurrentAnimationOfProperty) is safe. Indeed, in
effect, we already do this for transitions but not for animations. This patch
generalizes this behavior to all animations.

This patch also updates test_animations_omta.html since it was incorrectly
testing that a finished opacity animation was still running on the compositor.
Finished animations should not run on the compositor and the changes in this
patch cause that to happen. The reason we don't just update this test to check
for RunningOn.MainThread is that for opacity animations, unlike transform
animations, we can't detect if an opacity on a layer was set by animation or
not. As a result, for opacity animations we typically test the opacity on
either the main thread or compositor in order to allow for the case where an
animation-set opacity is still lingering on the compositor.
2015-08-07 12:29:36 +09:00
Robert O'Callahan
374220dcc3 Bug 1172239. Add NS_FRAME_DESCENDANT_INTRINSIC_ISIZE_DEPENDS_ON_BSIZE. r=bz 2015-07-18 12:24:53 +12:00
Kearwood (Kip) Gilbert
a92527b792 Bug 1181240 - Part 2: Replace gfx3DMatrix with Matrix4x4 in layout,r=vlad
- Refactored code to use Matrix4x4 instead of gfx3DMatrix.
- There is not expected to be any functional effect.
2015-07-10 17:05:47 -07:00
Ting-Yu Lin
cfe207dbf6 Bug 1185436 - Mark DumpFrameTree() and DumpFrameTreeLimited() const. r=roc
Let's make it easier to dump the frame tree via |const nsIFrame*| in
a debugger.
2015-07-19 23:39:00 +02:00
Jonathan Kew
7e8bda5a72 Bug 1131451 part 1 - Replace containerWidth with containerSize in logical-coordinate classes and APIs, frame classes, etc. r=dholbert 2015-07-16 10:07:57 +01:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Neil Deakin
19545a1a28 Bug 1132518, add a flag to nsIFrameTraversal to skip the popup checks, r=mats 2015-07-13 06:07:49 -04:00
Tim Taubert
59b839ab05 Bug 834830 - Add nsISelectionController.SELECTION_URLSTRIKEOUT to enable striking out parts of the URL in the URL bar r=roc 2015-07-08 15:45:21 +02:00
Markus Stange
a947998735 Bug 1178382 - Ignore overflow: -moz-hidden-unscrollable on <select size=n> listboxes. r=roc
forms.css sets overflow: -moz-hidden-unscrollable on all select elements.
ApplyOverflowClipping in nsFrame.cpp applies overflow clips that are not managed by scroll frames.
nsCSSFrameConstructor::ConstructSelectFrame creates an nsListControlFrame for listbox select elements.
nsListControlFrame is an nsHTMLScrollFrame.
As a result, the clip as applied twice - once by the nsHTMLScrollFrame, and then again by ApplyOverflowClipping.
Adding an exception for nsListControlFrame to ShouldApplyOverflowClipping gets rid of the double clip.
But we still need to apply the clip when calculating the frame's visual overflow rect, so we add the
list box frame type to the list of special-cased frames in UnionBorderBoxes.
2015-07-06 17:57:37 -04:00
Simon Montagu
48d331ff82 Bug 1180178: Add writing-mode and logical coordinates to frame dumps, r=jfkthame 2015-07-07 06:37:30 -07:00
Jonathan Kew
3dd8633878 Bug 1181087 - part 1 - Eliminate the few callers of physical-coordinate setters on the logical-coordinate geometry classes. r=smontagu 2015-07-07 14:20:09 +01:00
Lee Salzman
fad233b142 Bug 771367 - Support compositor animation for pseudo-elements. r=dbaron 2015-07-01 11:55:51 -04:00
Jonathan Kew
2e820e821b Bug 1174711 - patch 4 - Rename mSpecialHeightReflow to mSpecialBSizeReflow, and update comments to match. r=dholbert 2015-06-22 10:33:34 +01:00
Jonathan Kew
ac7784827a Bug 1174711 - patch 1 - Rename nsIPercentHeightObserver to nsIPercentBSizeObserver, and update related frame methods to match. r=dholbert 2015-06-22 10:33:34 +01:00
Mats Palmgren
71f08511bd Bug 1174450 part 9c - Rename local var 'orthogonal' to 'verticalAxis' and simplify getting the GetComputedBorderWidth sides. r=jfkthame 2015-06-16 11:21:04 +00:00
Mats Palmgren
fcb056fcd4 Bug 1174450 part 9 - Remove the nsRenderingContext* param from Intrinsic*SizeOffsets methods since it's unused. r=jfkthame 2015-06-16 11:21:04 +00:00
Mats Palmgren
0d694139d2 Bug 1174450 part 8 - Add a new method nsIFrame::IntrinsicBSizeOffsets. r=jfkthame 2015-06-16 11:21:04 +00:00
Jonathan Kew
a0016ac6be Bug 1079151 - patch 2 - Convert nsAbsoluteContainingBlock to use logical coordinates. r=smontagu 2015-06-05 08:47:09 +01:00
Simon Montagu
e6de936024 Bug 1147834: Use abstract coordinates in nsHTMLReflowState, r=jfkthame 2015-06-04 03:43:02 -07:00
Ryan VanderMeulen
c86afc17c0 Backed out changeset 4126c66c9a80 (bug 1166728) for Gaia sound_manager_test.js failures.
CLOSED TREE
2015-05-29 15:16:53 -04:00
Kyle Zentner
3d8d101f51 Bug 1166728 - Remove box-sizing: padding-box, as per CSS WG. r=dholbert 2015-05-29 09:17:00 -04:00
Ryan VanderMeulen
b4f972448b Backed out changeset 541cd29ea626 (bug 1166728) because the updated patch wasn't posted to the bug. 2015-05-29 12:48:22 -04:00
Kyle Zentner
e89b7c3c14 Bug 1166728 - Remove box-sizing: padding-box, as per CSS WG. r=dholbert 2015-05-27 09:57:00 -04:00
Ryan VanderMeulen
d6ec37dedb Backed out changeset dd96df1da2b5 (bug 1166728) for making test_bug320799.html permafail on Mulet.
CLOSED TREE
2015-05-28 11:01:18 -04:00
Kyle Zentner
e085cc0fac Bug 1166728 - Remove box-sizing: padding-box, as per CSS WG. r=dholbert 2015-05-27 09:57:00 -04:00
Botond Ballo
3c50c1e080 Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj 2015-05-26 14:33:55 -04:00
Phil Ringnalda
4c7e666e55 Back out 3 changesets (bug 1119980) for emulator-l bustage
CLOSED TREE

Backed out changeset 12ce98475c6e (bug 1119980)
Backed out changeset bdb8d05f8870 (bug 1119980)
Backed out changeset a68a18840492 (bug 1119980)
2015-05-25 18:48:51 -07:00
Botond Ballo
3602e7412d Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj 2015-05-25 20:45:17 -04:00
Eric Rahm
ddc8ac650b Bug 1165518 - Part 2: Replace prlog.h with Logging.h. rs=froydnj 2015-05-19 11:15:34 -07:00
Jose' Rios
fea85bb007 Bug 1142295 - Closing descriptor when GECKO_DISPLAY_REFLOW_RULES_FILE is setted. r=erahm 2015-05-14 17:07:00 -07:00
Jonathan Watt
ea50a9c4c0 Bug 1165893 - Fix rounding issue in nsDisplaySelectionOverlay::Paint. r=mattwoodrow 2015-05-04 14:35:22 +01:00
Jonathan Kew
b45f261251 Bug 1159305 - patch 2 - Clean up layout code by using the new accessors. r=smontagu 2015-05-11 11:37:46 +01:00
Markus Stange
6d6e33904f Bug 1147194 - Do scroll info layer hoisting when building the display list. r=tn 2015-04-30 14:54:48 -04:00
Mats Palmgren
5d7fa88ea8 Bug 1153757 - Tweak DoGetParentStyleContext to exclude pseudos with a non-primary frame from using a display:contents parent as the style context parent. r=heycam 2015-04-29 13:13:47 +00:00
Xidorn Quan
e8df90d3ac Bug 1156222 - Check frame type instead of display type for ruby and simplify code. r=dholbert 2015-04-23 13:32:53 +12:00
Nicolas Silva
ea494e1155 Bug 1155621 - Remove no-op gfx2DGlue conversion helpers. r=Bas 2015-04-21 17:22:30 +02:00
Nicolas Silva
d73f54cb00 Bug 1155621 - Make nsIntRect and nsIntPoint typedefs of mozilla::gfx::IntRect and mozilla::gfx::IntPoint. r=Bas 2015-04-21 17:04:57 +02:00
Ehsan Akhgari
9aaa361672 Bug 956530 - Clear the delayed caret data when clicking on a selected part of a text control if the focus event handler selects the control; r=roc 2015-04-14 08:29:11 -04:00
Nathan Froyd
023e3d5c3f Bug 1153267 - part 1 - use smart-pointer .forget() instead of NS_ADDREF+assign; r=ehsan 2015-03-31 10:03:49 -04:00
Mats Palmgren
fa1148962b Bug 1143130 - Initialize nsIFrame::ContentOffsets members, and some additional cleanup. r=roc 2015-04-09 17:57:34 +00:00
Jonathan Kew
4d2cd9c151 Bug 1130907 - patch 1 - Account for writing-mode when incorporating border widths into intrinsic size. r=smontagu 2015-04-07 09:24:04 +01:00
Mats Palmgren
fe65991446 Bug 1148971 - Make nsITheme::GetMinimumWidgetSize return a LayoutDeviceIntSize result instead of the unit-less nsIntSize type. r=roc 2015-03-30 11:36:14 -04:00