Commit Graph

275514 Commits

Author SHA1 Message Date
Bogdan Postelnicu
1fb24586ed Bug 1230118 - added asserts on aOwner and aOwner->Elm() r=surkov 2015-12-03 14:07:43 -08:00
Wes Kocher
2959d0906d Backed out 2 changesets (bug 1221992) for windows debug assertions in browser_perf-categories-js-calltree.js
Backed out changeset bcd90e591038 (bug 1221992)
Backed out changeset 6affaa386b9b (bug 1221992)
2015-12-03 15:56:59 -08:00
Jeff Gilbert
8ccec81bc1 Bug 1228711 - Cubemap images must be square. - r=benwa 2015-12-03 15:38:06 -08:00
Wes Kocher
f2b9245dc2 Backed out 2 changesets (bug 1230118, bug 1230110) for windows debug assertions in browser_perf-categories-js-calltree.js
Backed out changeset a9ce85f77af9 (bug 1230118)
Backed out changeset b9d8d05aa4ee (bug 1230110)
2015-12-03 15:38:04 -08:00
Brian Birtles
38b3df3ef5 Bug 1226118 part 15 - Remove no-longer-necessary delays from test_running_on_compositor.html; r=hiro
Since part 3 in this patch series updated the way we clear the "running on
compositor" flag, we can update these tests so they no longer wait for this
flag (see bug 1226118 comment 21).
2015-12-04 08:34:18 +09:00
Brian Birtles
186e1d0faf Bug 1226118 part 14 - Rewrite GetAnimationCollection(nsIFrame*) in terms of the existing GetAnimationCollection; r=dholbert
This simply allows us to share the code that maps from pseudo-types to atoms.
2015-12-04 08:34:18 +09:00
Brian Birtles
11fdf2a0ab Bug 1226118 part 13 - Move the GetAnimationCollection definitions side-by-side; r=dholbert
This is to match the order in the header file and because in the next patch I'd
like to somewhat re-implement one method in terms of the other and having them
side-by-side will make it easier to read the code.

This patch makes no code changes whatsoever besides shifting the placement of
the function definitions within the .cpp file.
2015-12-04 08:34:17 +09:00
Brian Birtles
df158e0d92 Bug 1226118 part 12b - Rename CommonAnimationManager::GetAnimations to GetAnimationCollection; r=dholbert
This is to align with the existing GetAnimationCollection method that takes
a frame. Also, by making this name more specific hopefully it will be used less
since we are trying to move as much code as possible over to using EffectSet
instead of AnimationCollection.
2015-12-04 08:34:17 +09:00
Brian Birtles
fa1af95f1c Bug 1226118 part 12a - Make RestyleManager::GetMaxAnimationGenerationForFrame used frame-based GetAnimationCollection; r=dholbert 2015-12-04 08:34:17 +09:00
Brian Birtles
dd79e63f78 Bug 1226118 part 11 - Remove CommonAnimationManager::GetAnimationsForCompositor; r=dholbert 2015-12-04 08:34:17 +09:00
Brian Birtles
eaecb3067b Bug 1226118 part 10 - Use EffectCompositor::GetAnimationsForCompositor in nsLayoutUtils; r=dholbert 2015-12-04 08:34:17 +09:00
Brian Birtles
468c29ecc4 Bug 1226118 part 9 - Use EffectCompositor::GetAnimationsForCompositor in nsDisplayList; r=dholbert
The existing code contains a comment about needing to add transitions before
animations. However, this is unnecessary since the interaction between
transitions and animations is handled by the mWinsInCascade member that is
checked in AddAnimationsForProperty.
2015-12-04 08:34:17 +09:00
Brian Birtles
4e070f4c17 Bug 1226118 part 8 - Add EffectCompositor::GetAnimationsForCompositor that uses the EffectSet rather than AnimationCollection; r=dholbert
This added method should behave in an equivalent manner to the existing
CommonAnimationManager::GetAnimationsForCompositor except for the following
differences:

* It uses the EffectSet attached to a target element rather than one of the
  AnimationCollection object on the owning element.

* It returns an array of Animation objects consisting of only those Animations
  that actually have the specified property as opposed to the
  AnimationCollection consisting of *all* CSS animations or *all* CSS
  transitions for the element regardless of whether they run on the compositor
  or not.

It may not be obvious why these two methods otherwise behave in an equivalent
fashion so the following explains how the existing code is mirrored in the new
method.

The existing code is as follows:

> AnimationCollection*
> CommonAnimationManager::GetAnimationsForCompositor(const nsIFrame* aFrame,
>                                                    nsCSSProperty aProperty)
> {
>   AnimationCollection* collection = GetAnimationCollection(aFrame);
>   if (!collection ||
>       !collection->HasCurrentAnimationOfProperty(aProperty) ||
>       !collection->CanPerformOnCompositorThread(aFrame)) {
>     return nullptr;
>   }
>
>   // This animation can be done on the compositor.
>   return collection;
> }

The new EffectCompositor::GetAnimationsForCompositor begins with two checks
performed at the beginning of CanPerformOnCompositorThread: the checks for
whether async animations are enabled or not and whether the frame has refused
async animations since these are cheap and it makes sense to check them first.

The next part of EffectCompositor::GetAnimationsForCompositor checks if there is
an EffectSet associated with the frame. This is equivalent to the check whether
|collection| is null or not above.

Following, we iterate through the effects in the EffectSet.

We first check if each effect is playing or not. In the above code,
HasCurrentAnimationOfProperty only checks if the effect is *current* or not.
However, CanPerformOnCompositorThread will only return true if it finds an
animation that can run on the compositor that is *playing*. Since playing is
a strict subset of current we only need to perform the more restrictive test.

Next we check if the effect should block running other animations on the
compositor. This is equivalent to the remainder of CanPerformOnCompositorThread.
Note that the order is important here. Only playing animations should block
other animations from running on the compositor. Furthermore, this needs to
happen before the following step since animations of property other than
|aProperty| can still block animations from running on the compositor.

Finally, we check if the effect has an animation of |aProperty|. This is
equivalent to the remainder of HasCurrentAnimationOfProperty.

If all these checks succeed, we add the effect's animation to the result to
return.
2015-12-04 08:34:12 +09:00
Brian Birtles
01072f313f Bug 1226118 part 7 - Rename and rework KeyframeEffectReadOnly::CanAnimatePropertyOnCompositor to ShouldBlockCompositorAnimations; r=hiro
KeyframeEffectReadOnly::CanAnimatePropertyOnCompositor has a comment that says
it, "Returns true |aProperty| can be run on compositor for |aFrame|" but it
does nothing of the sort.

What it *does* do is check answer the question, "If there happened to be an
animation of |aProperty| on |aFrame|, should we still run animations on the
compositor for this element?".

This patch renames the method accordingly and moves the step where we iterate
over a given effect's animated properties from
AnimationCollection::CanPerformOnCompositor to inside this method, making this
method a class method rather than a static method at the same time.

As noted in the expanded comment, the approach of blocking opacity animations
in these situations seems unnecessary but for now this patch just preserves the
existing behavior.
2015-12-04 08:32:53 +09:00
Brian Birtles
52e54a7480 Bug 1226118 part 6 - Remove no longer used LayerAnimationRecord/Info code from AnimationCommon; r=dholbert
This code has now been moved to LayerAnimationInfo.{h,cpp} and is not used in
AnimationCommon.
2015-12-04 08:32:53 +09:00
Brian Birtles
657ea3b306 Bug 1226118 part 5 - Move LogAsyncAnimationFailure to AnimationUtils; r=dholbert
This patch also moves AnimationUtils out of the dom namespace since it seems
unnecessary. We typically only put actual DOM interfaces in the dom namespace.
2015-12-04 08:32:53 +09:00
Brian Birtles
d3bb8fe7d5 Bug 1226118 part 4 - Use EffectSet in ActiveLayerManager's animated-scale checks; r=dholbert 2015-12-04 08:32:53 +09:00
Brian Birtles
ec42c2b226 Bug 1226118 part 3 - Use EffectSet in CommonAnimationManager::ClearIsRunningOnCompositor; r=hiro, r=dholbert 2015-12-04 08:32:53 +09:00
Brian Birtles
0a77f40330 Bug 1226118 part 2 - Use EffectSet in nsLayoutUtils animation functions; r=dholbert 2015-12-04 08:32:52 +09:00
Brian Birtles
1525268b3d Bug 1226118 part 1 - Add EffectSet::GetEffectSet(const nsIFrame*); r=dholbert 2015-12-04 08:32:52 +09:00
Henrik Skupin
8a2568e4ac Bug 1229908 - ScriptMixin._urlopen() has to use quoted URL to not fail if spaces are contained. r=jlund 2015-12-04 00:29:50 +01:00
Blake Kaplan
cba4151a41 Bug 1116478 - Open web content handlers in the proper tab in e10s. r=billm 2015-12-03 15:04:28 -08:00
Maja Frydrychowicz
72ac61332b Bug 1229467 - Include wptserve in common.tests.zip; r=gps 2015-12-01 15:45:41 -05:00
Bogdan Postelnicu
181c843650 Bug 1230118 - added asserts on aOwner and aOwner->Elm() r=surkov 2015-12-03 14:07:43 -08:00
Andrew McCreight
f44fa434ce Bug 1230110 - HTMLImageElement should call its superclass's DestroyContent(). r=smaug 2015-12-03 14:03:12 -08:00
Nicholas Nethercote
7e3ab1c697 Bug 1229665 - Convert widget clip regions to LayoutDevicePixels. r=botond. 2015-12-02 14:32:55 -08:00
Jeff Muizelaar
79bcae7606 Bug 1229152. Expose unsized GL_FLOAT formats required by GL_OES_texture_float
BUG=angleproject:1209
2015-12-03 16:40:51 -05:00
Catalin Badea
2034aee970 Bug 1221992 - Fix test using GetMostRecentWindow from the child process. r=smaug 2015-12-03 23:19:29 +02:00
Catalin Badea
79faf0518a Bug 1221992 - Prevent ServiceWorkerClients.OpenWindow from opening tabs in private mode windows. r=smaug 2015-12-03 23:19:29 +02:00
Morgan Phillips
631342f4d1 Bug 1197095 - ensure that ForOfIterator does not pass arguments to next calls; r=evilpie 2015-12-03 12:23:41 -08:00
Ralph Giles
2c558f1b8e Bug 1228721 - Conditionalize other webvtt navigator access. r=kinetik
Missed this in the previous commit.
2015-12-03 09:32:00 -08:00
Benjamin Bouvier
b19393a579 Bug 1229396: Templatize constants merging in the shared x86 masm; r=jandem 2015-12-01 19:35:03 +01:00
Benjamin Bouvier
37e9cf4958 Bug 1229396: Templatize Float/Double/SimdData in MacroAssembler-x86-shared.h; r=jandem 2015-12-01 19:24:49 +01:00
Benjamin Bouvier
be21d17cc3 Bug 1229396: Templatize get{Float,Double,SimdData}; r=jandem 2015-12-01 19:09:40 +01:00
Benjamin Bouvier
ee353bcee2 Bug 1229396: Propagate OOM when pushing elements to the uses array; r=jandem 2015-12-01 18:28:51 +01:00
Jeff Muizelaar
dc1ad09c39 Bug 1207288. Ask ANGLE for the correct output version. r=jgilbert 2015-12-03 14:37:02 -05:00
Robert O'Callahan
7fd0e2d5f6 Bug 927228 - Allow ImageLayerization for images using 'contain' and 'cover'. r=mstange 2015-12-03 17:36:40 +01:00
Markus Stange
2f88224e05 Bug 1200611 - Size ImageLayers correctly for <img>s using object-fit. r=dholbert
This changes nsDisplayImage::GetDestRect and nsImageFrame::PredictedDestRect to return
the true dest rect of the image, without intersecting it with the image content box.
The only caller of these functions that actually requires a rectangle that's within
the image's content bounds is nsDisplayImage::GetOpaqueRegion, so I'm changing that
to intersect with the display item's bounds.
I'm pretty sure nsImageFrame::MaybeDecodeForPredictedSize() also prefers the unclipped
dest rect, because it cares about the scale at which the image is painted, and not
about which parts of the image are painted.
2015-12-03 15:20:10 +01:00
Chris Pearce
721114d8a6 Bug 1230026 - Add test for 'webm' initDataType for ClearKey initData. r=gerald 2015-12-04 07:24:32 +13:00
Chris Pearce
af59514dee Bug 1230026 - Support 'webm' initDataType format for MP4 ClearKey initData. r=gerald 2015-12-04 07:24:11 +13:00
Maja Frydrychowicz
7ac3a96713 Bug 1230079 - Update media-test revisions to use latest Marionette; r=me 2015-12-03 10:01:44 -05:00
Olli Pettay
69f939fe3e Bug 1229760 - CustomElement registry keeps strong reference to the unresolved elements, r=wchen 2015-12-03 18:21:04 +02:00
Geoff Brown
55b23b1f11 Bug 1201018 - Catch exception in PersistTabsRunnable; r=rnewman 2015-12-03 09:10:46 -07:00
Jan Beich
faa3451700 Bug 1229395 - Part 2 - Rely on MALLOC_H to provide function prototypes for MOZ_NATIVE_JEMALLOC. r=glandium 2015-12-01 16:54:44 +00:00
Jan Beich
2ee4eafa9f Bug 1229395 - Part 1 - Unbreak MOZ_NATIVE_JEMALLOC after bug 1141079. r=glandium 2015-12-01 16:39:33 +00:00
Jan Beich
c592cbd9e4 Bug 1228208 - Make sure ICU flags are prepended before system flags. r=glandium 2015-12-02 09:40:50 +00:00
Bogdan Postelnicu
219746ae37 Bug 1228342 - initialize mTainting by all constructors. r=bkelly 2015-12-03 02:39:00 +01:00
Mike Conley
64e29b6869 Bug 1193838 - Allow ProfileGatherer to gather profiles from exiting processes. r=BenWa 2015-08-18 14:57:35 -04:00
Mike Conley
339480d36b Bug 1193838 - Expose ProfileGatherer as an nsISupports through nsIProfiler for process parent actors. r=BenWa
We need to let ContentParent and PluginModuleParent get a reference to the ProfileGatherer
during the window of time that we're profiling so that if they start to die (the actor is
starting to go away), they have a gatherer they can send their last profile data to.
2015-08-12 14:20:26 -04:00
Mike Conley
101cff675a Bug 1193838 - Make ProfileGatherer exist during the lifetime of a GeckoSampler. r=BenWa 2015-12-01 13:01:27 -05:00