Commit Graph

8709 Commits

Author SHA1 Message Date
Jamie Nicol
7f8f9c94b5 Bug 1176077 - Only recompute PaintedLayer item visibility when display list has changed. r=mattwoodrow
FrameLayerManager::RecomputeItemsVisibility() was being called on every
call to FrameLayerBuilder::DrawPaintedLayer(), each time for the region
to be painted by that paint call. This is inefficient when progressive
paint is enabled. Change it so that we compute the visibility of all the
layer's items within the total region to be painted, but only on the
first paint after the display list has been modified.
2015-07-21 09:19:25 +01:00
Jeff Muizelaar
d93fe7cfe4 Bug 1186025. Optimize the usage of regions. r=mstange
This eliminates a bad idiom in some places.
2015-07-21 10:54:44 -04:00
Kartikaya Gupta
5bbc6f2c76 Bug 1178847 - Don't use the MobileViewportManager code on Mulet or Fennec yet. r=botond 2015-07-21 10:52:11 -04:00
Kartikaya Gupta
04cafb7401 Bug 1178847 - Add a MobileViewportManager to manage setting the CSS viewport on B2G. r=botond,tn
The MobileViewportManager ("MVM") is responsible for setting the CSS viewport on
any of the following events:
- a page is painted for the first time (on the before-first-paint event)
- a meta-viewport tag is added (on the DOMMetaAdded event)
- the full-zoom is changed (on the FullZoomChanged event)
- if the window is resized (ResizeReflow gets called as part of normal layout
  processing, and this will pick up a new CSS viewport from MVM)

If the CSS viewport changes or if it is the initial paint, the MVM additionally
calls SetResolutionAndScaleTo on the presShell to update the displayed zoom.
The APZ code in AsyncPanZoomController::NotifyLayersUpdated already has
corresponding code to accept this updated zoom when the CSS viewport changes.
2015-07-21 10:51:55 -04:00
Carsten "Tomcat" Book
1fa65384c1 Backed out changeset 313ea7f814d3 (bug 1178847) 2015-07-21 08:34:57 +02:00
Carsten "Tomcat" Book
5f09c93614 Backed out changeset 8ff54001c29a (bug 1178847) 2015-07-21 08:34:51 +02:00
Wes Kocher
1a2fd984b2 Merge m-c to inbound, a=merge 2015-07-20 16:36:55 -07:00
Ryan VanderMeulen
744bb6cb5f Merge m-c to fx-team. a=merge 2015-07-20 16:05:14 -04:00
Boris Zbarsky
af8251d70c Bug 909154. Remove the prefixed mozRequestAnimationFrame and its accoutrements. r=bkelly 2015-07-20 10:14:24 -04:00
Victor Porof
0852533047 Bug 1183229 - Add a way to count the number of timeline-observed docshells outside of nsDocShell, r=smaug 2015-07-18 09:35:59 -04:00
Kartikaya Gupta
8986e4df8d Bug 1178847 - Don't use the MobileViewportManager code on Mulet or Fennec yet. r=botond 2015-07-20 18:19:41 -04:00
Kartikaya Gupta
f2cce21d65 Bug 1178847 - Add a MobileViewportManager to manage setting the CSS viewport on B2G. r=botond,tn
The MobileViewportManager ("MVM") is responsible for setting the CSS viewport on
any of the following events:
- a page is painted for the first time (on the before-first-paint event)
- a meta-viewport tag is added (on the DOMMetaAdded event)
- the full-zoom is changed (on the FullZoomChanged event)
- if the window is resized (ResizeReflow gets called as part of normal layout
  processing, and this will pick up a new CSS viewport from MVM)

If the CSS viewport changes or if it is the initial paint, the MVM additionally
calls SetResolutionAndScaleTo on the presShell to update the displayed zoom.
The APZ code in AsyncPanZoomController::NotifyLayersUpdated already has
corresponding code to accept this updated zoom when the CSS viewport changes.
2015-07-20 18:19:40 -04:00
Seth Fowler
ba9ca914cb Bug 1151359 (Part 3) - Treat nsImageFrames subject to scale animation as having an identity scale when predicting size. r=tn,birtles 2015-07-19 19:30:40 -07:00
Seth Fowler
11d5627e9f Bug 1151359 (Part 2) - Add support for detecting transform property changes that affect scale to ActiveLayerTracker. r=mstange 2015-07-19 19:30:37 -07:00
Seth Fowler
c849abe316 Bug 1151359 (Part 1) - Predict the size of nsImageFrame images before drawing. r=tn 2015-07-19 19:30:35 -07:00
Eric Rahm
0a5b3139db Bug 1183879 - Soften "non-subdocument frame" warning to also allow dummy nsFrames, which exist while subdocument is loading. r=dholbert 2015-07-19 12:27:40 -07:00
Xidorn Quan
dc0f32b794 Bug 1184443 - Make async ExitFullscreen call ask the window to exit fullscreen first. r=smaug 2015-07-19 10:30:52 +10:00
Markus Stange
66bdfa9ab2 Bug 1181554 - Snap the spread radius for inset box shadows to device pixels. 2015-07-17 14:42:44 -04:00
Kartikaya Gupta
3311542644 Bug 1181763 - Allow the target fluffing code to fluff even when directly hitting something clickable. r=roc
There is a common pattern on the web where a click listener is registered on a
container element high up in the DOM tree, and based on the target of the click
events, it performs the appropriate action. In such cases, our existing fluffing
code was not getting activated anywhere inside the container, because the entire
container was considered clickable. However, this is not user-friendly because
often the actual targets inside the container are small and hard to hit. Also,
the fluffing code will often take the container element itself as the target,
even if the user actually hit something inside the container.

This patch changes this behaviour so when an event hits inside a clickable
container, fluffing still occurs, but is restricted to DOM descendants of the
container. This allows fluffing to work in the above scenarios, and since the
events will bubble up to the container, the listeners on the container are
guaranteed to still trigger.
2015-07-17 08:36:00 -04:00
Ryan VanderMeulen
7326166bf6 Backed out changeset ec3acc5237a8 (bug 1181763) for WinXP test_event_target_radius.html failures.
CLOSED TREE
2015-07-17 10:46:31 -04:00
Kartikaya Gupta
44ebfefb86 Bug 1181763 - Allow the target fluffing code to fluff even when directly hitting something clickable. r=roc
There is a common pattern on the web where a click listener is registered on a
container element high up in the DOM tree, and based on the target of the click
events, it performs the appropriate action. In such cases, our existing fluffing
code was not getting activated anywhere inside the container, because the entire
container was considered clickable. However, this is not user-friendly because
often the actual targets inside the container are small and hard to hit. Also,
the fluffing code will often take the container element itself as the target,
even if the user actually hit something inside the container.

This patch changes this behaviour so when an event hits inside a clickable
container, fluffing still occurs, but is restricted to DOM descendants of the
container. This allows fluffing to work in the above scenarios, and since the
events will bubble up to the container, the listeners on the container are
guaranteed to still trigger.
2015-07-17 08:36:00 -04:00
Cameron McCormack
67cc5004eb Bug 1182496 - Don't create frames for SVG <text> descendants with failing conditional processing attributes. r=dholbert 2015-07-17 11:29:22 +10:00
Boris Zbarsky
d02960758f Bug 1183896. Don't assume that relatively positioned table cells actually have positioned offsets computed, because in the case of position:sticky they don't. r=dholbert 2015-07-16 17:53:52 -04:00
Jonathan Kew
49dbd7fce4 Bug 1131451 part 2 - Respect the container height when converting vertical-RTL inline-direction coordinates. r=dholbert
* * *
Bug 1131451 part 2a - Remove hack for rtl-in-vertical-mode from ReflowAbsoluteFrame. r=dholbert
* * *
Bug 1131451 part 2b - Mark relative-overconstrained tests that now pass in vertical mode with rtl. r=dholbert
* * *
Bug 1131451 part 2c - Mark vertical border-collapse bevel tests that now pass. r=dholbert
* * *
Bug 1131451 part 2d - Remove partial rtl-in-vertical support from nsBidiPresUtils now that logical-coordinate classes handle it better. r=dholbert
* * *
Bug 1131451 part 2e - Remove hack for float positioning in vertical mode with dir=rtl. r=dholbert
* * *
Bug 1131451 part 2f - Mark vertical-mode float-in-rtl reftests that are now passing. r=dholbert
* * *
Bug 1131451 part 2g - Compute both dimensions of containerSize in nsFlexContainerFrame::DoLayout. r=dholbert
* * *
Bug 1131451 part 2h - Mark flexbox writing-mode tests that are now passing. r=dholbert
2015-07-16 10:08:05 +01:00
Jonathan Kew
b9987170d7 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
Kartikaya Gupta
0cb64d81eb Bug 1184200 - Update a check for APZ enabled. r=dvander 2015-07-15 17:13:22 -04:00
Botond Ballo
9efddab3d5 Bug 1180899 - Do not clobber frame metrics on the root layer added during a previous paint if there is no other frame metrics for the root scroll frame. r=tn 2015-07-13 17:48:14 -04:00
Masatoshi Kimura
eed4479c2c Backed out changeset acb7eb7f5ad4 (bug 1176496) for web compat problems 2015-07-15 23:37:22 +09:00
Ting-Yu Lin
ff09ec6b56 Bug 1182963 - Use nsTHashTable::Iterator in nsPresContext. r=njn 2015-07-15 17:05:07 +08:00
Ting-Yu Lin
6604ee80b9 Bug 1182963 - Use nsTHashTable::Iterator in nsPresShell. r=njn 2015-07-15 17:05:06 +08:00
Ting-Yu Lin
2b70a9054c Bug 1182963 - Use nsTHashTable::Iterator in nsRefreshDriver. r=njn 2015-07-15 17:05:06 +08:00
Ting-Yu Lin
0ce8b20dd3 Bug 1182963 - Use nsTHashTable::Iterator in nsPresArena. r=njn 2015-07-15 17:05:06 +08:00
Ting-Yu Lin
62773d16dc Bug 1182963 - Use nsTHashTable::Iterator in MaskLayerImageCache. r=njn 2015-07-15 17:05:06 +08:00
Ting-Yu Lin
8392c254ad Bug 1182963 - Use nsTHashTable::Iterator in FramePropertyTable. r=njn 2015-07-15 17:05:06 +08:00
Ting-Yu Lin
63af1a7ae5 Bug 1182963 - Use nsTHashTable::Iterator in FrameLayerBuilder. r=roc,njn
Get rid of EnumerateEntries by inlining those enumerate functions. Also
move gPaintedDisplayItemLayerUserData, gColorLayerUserData, etc. to the
front of the file since LayerManagerData::Dump() references to one of
them.
2015-07-15 17:05:06 +08:00
Boris Zbarsky
46cc08f728 Bug 1181765. Remove uses of mozRequestAnimationFrame from layout tests. r=bkelly 2015-07-14 15:28:58 -04:00
Alex Henrie
1b3c03eeb2 Bug 941858 - Do not scale down elements passed to setDragImage. r=roc 2015-07-11 10:15:19 -06:00
Ting-Yu Lin
0df0dc3808 Bug 1183085 - Correct a typo in FrameLayerBuilder.h; r=roc 2015-07-13 21:44:11 +08:00
Ting-Yu Lin
0ef1f76f1c Bug 1183085 - Update description for nsDisplayList methods; r=roc
AppendNewToTop and AppendNewToBottom do not return
NS_ERROR_OUT_OF_MEMORY now.
2015-07-13 21:44:11 +08:00
Ting-Yu Lin
3d94a876f3 Bug 1183085 - Correct argument name for BuildContainerLayerFor; r=roc 2015-07-13 21:44:11 +08:00
Ting-Yu Lin
cc259f1fa9 Bug 1183085 - Correct the name for nsDisplayItem; r=roc 2015-07-13 21:44:11 +08:00
Botond Ballo
1108f5b6cd Bug 1181832 - Keep gfxPrefs.h out of header files. r=kats 2015-07-13 11:53:10 -04:00
Birunthan Mohanathas
e52329c788 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
7211bcdf16 Bug 1132518, add a flag to nsIFrameTraversal to skip the popup checks, r=mats 2015-07-13 06:07:49 -04:00
Birunthan Mohanathas
1a72e5c813 Bug 1167418 - Follow-up: Fix bustage 2015-07-12 23:46:04 -07:00
Michael Layzell
3792b23c23 Bug 1182744 - Make MaskLayerImageKey::mLayerCount and its mutators private. r=dholbert 2015-07-12 21:13:42 -07:00
Michael Layzell
0d3e3f7dae Bug 1073219 - Use a simple RAII struct instead of nsRefPtr to manage mLayerCount for MaskLayerImageKey. r=dholbert 2015-07-12 21:09:57 -07:00
Xidorn Quan
dfc652acca Bug 1181890 - Center children of ruby content frame if necessary after the bidi reposition. r=jfkthame 2015-07-13 09:32:15 +10:00
Xidorn Quan
cfdd028bdd Bug 1179939 - Avoid crash if we destroy the pres context during flushing style or layout. r=roc 2015-07-13 09:32:04 +10:00
Geoff Brown
495b7cbfe1 Bug 1026290 - Update mochitest-chrome manifests for android; r=jgriffin 2015-07-10 14:41:59 -06:00