Commit Graph

2581 Commits

Author SHA1 Message Date
Robert O'Callahan
afc76520ea Bug 1199534. Only set TabChild canvas background for the background of root PresContexts. r=mats 2015-08-28 15:20:10 +12:00
Kartikaya Gupta
b938c9d021 Bug 1180267 - Switch Fennec over to using the MobileViewportManager for computing the CSS viewport. r=snorp 2015-08-24 13:45:45 -04:00
Masayuki Nakano
5473d2dcb9 Bug 895274 part.1 Rename WidgetEvent::message to WidgetEvent::mMessage r=smaug 2015-08-22 10:34:51 +09:00
Kartikaya Gupta
d6bfe53b6e Bug 1180295 - Rip out call to setContentDocumentFixedPositionMargins. r=rbarker 2015-08-18 14:27:18 -04:00
Brian Birtles
f47429980c Bug 1188251 part 6 - Unify FlushAnimations and FlushTransitions; r=dholbert
The implementations of FlushAnimations and FlushTransitions should now be all
but equivalent so this patch combines them into a single implementation on
CommonAnimationManager.

Regarding some of the minor differences between the two methods:

* The combined implementation drops the check for an empty list of collections
  found only in FlushTransitions. This seems like a very minor optimization
  that could possibly cause us to fail to unregister from the refresh driver
  if we forgot to do so when removing the last collection.

* The combined implementation uses the loop implementation from FlushAnimations
  since it is more compact.

This patch also removes the extra nested scope since it doesn't seem necessary.
2015-08-17 13:59:44 +09:00
Brian Birtles
f118652a48 Bug 1180125 part 7 - Queue transition events from CSSTransition::Tick; r=dbaron
This patch moves the logic for queueing events out of the logic for flushing
transitions making it a separate step. It still doesn't delay the dispatch of
those events into a separate step, however. That is done in a subsequent patch.

This patch also makes sure to clear any queued events when the nsPresShell that
owns the transition manager is destroyed. We don't expect CSSTransition::Tick to
be called anywhere except nsTransitionManger::FlushTransitions so there
shouldn't be any orphaned events but for completeness it seems best to add this
now. (Later, when we tick transitions from their timeline we will need this.)

This patch introduces a separate flag to CSSTransition for tracking if a
transition is newly-finished so we can correctly dispatch the transitionend
event. Although, this may seem to be redundant with the "IsFinishedTransition"
we also track, that state will soon be removed in bug 1181392 and hence this
flag will be needed then.

Note that Animation already has flags mIsPreviousStateFinished and
mFinishedAtLastComposeStyle which would appear to be similar however,

- mIsPreviousStateFinished will be removed in bug 1178665 and is updated more
  often than we queue events so it is not useful here.
- mFinishedAtLastComposeStyle is used to determine if we can throttle a style
  update and is also updated more frequently than we queue events and hence
  can't be used here.

Once we guarantee one call to Tick() per frame we may be able to simplify this
by tracking "state on last tick" but for now we need this additional flag on
CSSTransition. CSSAnimation has a similar flag for this
(mPreviousPhaseOrIteration) which we may be able to unify at the same point.
2015-07-29 10:57:40 +09:00
Brian Birtles
94c7d4f13c Bug 1180125 part 1 - Queue and dispatch CSS animation events as a separate step; r=dbaron
This patch prepares the way for script-generated events by making
event dispatch a separate process that happens after sampling animations.
This will allow us to sample animations from their associated timeline
(removing the need for a further manager to tracker script-generated
animations).

Furthermore, once we sample animations from timelines the order in which they
are sampled is likely to be more or less random so by making event dispatch at
separate step, we have an opportunity to sort the events and dispatch in
a consistent and sensible order. It also ensures that event callbacks will
not be run until all animations (including transitions) have been updated
ensuring they see a consistent view of timing properties.

This patch only affects event handling for CSS animations. Transitions will
be dealt with in a subsequent patch.
2015-07-29 10:57:39 +09:00
Nicholas Nethercote
62022ea522 Bug 1189156 (part 2) - Don't use enumeration style for nsTHashtable::SizeOf{In,Ex}cludingThis(). r=erahm.
After this change, we have ShallowSizeOf{In,Ex}cludingThis(), which don't do
anything to measure children. (They can be combined with iteration to measure
children.)

And we still have the existing single-arg SizeOf{In,Ex}cluding() functions,
which work if the entry type itself defines SizeOfExcludingThis().
2015-07-29 01:50:52 -07:00
Robert O'Callahan
f7fdb828f0 Bug 1184842. Route aOldValue/aNewValue to AttributeData. r=heycam 2015-07-22 15:54:07 +12:00
Robert O'Callahan
7d17ed419a Bug 1184842. Add aNewValue to nsIMutationObserver::AttributeWillChange. r=peterv 2015-07-25 18:05:19 +12:00
Robert O'Callahan
5bde6d4aaa Bug 1184842. Pass aOldValue to all mutation observers. r=peterv 2015-07-25 18:01:19 +12:00
Carsten "Tomcat" Book
e088d1a6e6 Backed out changeset 79bcd4f744c0 (bug 1180125) 2015-07-29 17:32:24 +02:00
Carsten "Tomcat" Book
ac065c36c4 Backed out changeset ad38421023a9 (bug 1180125) 2015-07-29 17:31:59 +02:00
Brian Birtles
f2c776fcb8 Bug 1180125 part 7 - Queue transition events from CSSTransition::Tick; r=dbaron
This patch moves the logic for queueing events out of the logic for flushing
transitions making it a separate step. It still doesn't delay the dispatch of
those events into a separate step, however. That is done in a subsequent patch.

This patch also makes sure to clear any queued events when the nsPresShell that
owns the transition manager is destroyed. We don't expect CSSTransition::Tick to
be called anywhere except nsTransitionManger::FlushTransitions so there
shouldn't be any orphaned events but for completeness it seems best to add this
now. (Later, when we tick transitions from their timeline we will need this.)

This patch introduces a separate flag to CSSTransition for tracking if a
transition is newly-finished so we can correctly dispatch the transitionend
event. Although, this may seem to be redundant with the "IsFinishedTransition"
we also track, that state will soon be removed in bug 1181392 and hence this
flag will be needed then.

Note that Animation already has flags mIsPreviousStateFinished and
mFinishedAtLastComposeStyle which would appear to be similar however,

- mIsPreviousStateFinished will be removed in bug 1178665 and is updated more
  often than we queue events so it is not useful here.
- mFinishedAtLastComposeStyle is used to determine if we can throttle a style
  update and is also updated more frequently than we queue events and hence
  can't be used here.

Once we guarantee one call to Tick() per frame we may be able to simplify this
by tracking "state on last tick" but for now we need this additional flag on
CSSTransition. CSSAnimation has a similar flag for this
(mPreviousPhaseOrIteration) which we may be able to unify at the same point.
2015-07-29 10:57:40 +09:00
Brian Birtles
52884f9d33 Bug 1180125 part 1 - Queue and dispatch CSS animation events as a separate step; r=dbaron
This patch prepares the way for script-generated events by making
event dispatch a separate process that happens after sampling animations.
This will allow us to sample animations from their associated timeline
(removing the need for a further manager to tracker script-generated
animations).

Furthermore, once we sample animations from timelines the order in which they
are sampled is likely to be more or less random so by making event dispatch at
separate step, we have an opportunity to sort the events and dispatch in
a consistent and sensible order. It also ensures that event callbacks will
not be run until all animations (including transitions) have been updated
ensuring they see a consistent view of timing properties.

This patch only affects event handling for CSS animations. Transitions will
be dealt with in a subsequent patch.
2015-07-29 10:57:39 +09:00
Kartikaya Gupta
fcfdd7e5e9 Bug 1187792 - Don't set the SPCSPS unless meta-viewport or zooming is enabled. r=botond 2015-07-27 22:09:37 -04:00
Carsten "Tomcat" Book
2842531c0d merge mozilla-inbound to mozilla-central a=merge 2015-07-24 12:54:13 +02:00
Kartikaya Gupta
23f4538421 Bug 1178354 - Ensure we fire a before-first-paint event for printing as well. r=tn 2015-07-23 17:53:32 -04:00
Neil Deakin
0a7d9b19cd Bug 1183623, redirect keyup events to keydown target when focus shifts from chrome to content in-between, r=smaug 2015-07-23 10:04:19 -04:00
Kartikaya Gupta
f0368036ee 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
064fc767ff 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
8ee59042e8 Backed out changeset 313ea7f814d3 (bug 1178847) 2015-07-21 08:34:57 +02:00
Carsten "Tomcat" Book
31d9adb3e4 Backed out changeset 8ff54001c29a (bug 1178847) 2015-07-21 08:34:51 +02:00
Kartikaya Gupta
90f9b1af45 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
1e07d34a09 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
Xidorn Quan
a9eeb693db Bug 1184443 - Make async ExitFullscreen call ask the window to exit fullscreen first. r=smaug 2015-07-19 10:30:52 +10:00
Ting-Yu Lin
e6e4f3a353 Bug 1182963 - Use nsTHashTable::Iterator in nsPresShell. r=njn 2015-07-15 17:05:06 +08:00
Alex Henrie
043f3878d9 Bug 941858 - Do not scale down elements passed to setDragImage. r=roc 2015-07-11 10:15:19 -06:00
Cameron McCormack
98a05182dd Bug 1177563 - Test that we share agent rule processors across different documents. r=dbaron 2015-07-08 15:57:31 +10:00
Carsten "Tomcat" Book
809fb6de52 Backed out changeset 42e80a07acd6 (bug 1177563) for bustage on a CLOSED TREE 2015-07-08 09:44:16 +02:00
Cameron McCormack
9c51300b2a Bug 1177563 - Test that we share agent rule processors across different documents. r=dbaron 2015-07-08 15:57:31 +10:00
Olli Pettay
593ae12d5e Bug 1144418 - target events for text nodes in shadow dom to the nearest element in the flattened tree. r=wchen 2015-07-07 01:56:10 +03:00
Juan Gomez
89035d527e Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-07-03 18:29:00 -07:00
Victor Porof
e89678a96c Bug 1184376 - Remove nsDocShell::AddProfileTimelineMarker, r=smaug 2015-07-18 09:35:59 -04:00
Maksim Lebedev
2fa5a955f4 Bug 1151152 - Change behavior when pointer is dragged out of the document. r=smaug 2015-06-15 10:27:00 -04:00
Nathan Froyd
92a8124fef Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Ryan VanderMeulen
db67139e7a Backed out changeset 9b51e066a4e6 (bug 1151152) for various pointerevent test failures. 2015-06-29 11:44:36 -04:00
Maksim Lebedev
3ff616fb94 Bug 1151152 - Change behavior when pointer is dragged out of the document. r=smaug 2015-06-15 10:27:00 -04:00
Cameron McCormack
5040660045 Bug 1161413 - Part 4: Move FontFaceSet ownership from nsPresContext to nsIDocument. r=smaug 2015-06-27 11:39:54 +10:00
Ryan VanderMeulen
7aba9d7002 Backed out changeset 8b4e4083639e (bug 1171931) for B2G debug emulator bustage. 2015-06-25 19:48:42 -04:00
Juan Gomez
7323e89a40 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-06-24 14:11:00 -04:00
L. David Baron
a4a54f3788 Bug 1169440 patch 6 - Add parameter to nsIFrame::FrameNeedsReflow to control handling of target being a reflow root. r=dholbert 2015-06-20 21:54:15 -07:00
Carsten "Tomcat" Book
ac8979d5ac Backed out changeset 1a0729e5b901 (bug 1151152) for m1 test failures in test_pointerevent_pointerleave_descendant_over-manual.html on a CLOSED TREE 2015-06-19 12:04:52 +02:00
Maksim Lebedev
9152187603 Bug 1151152 - Change behavior when pointer is dragged out of the document. r=smaug 2015-06-15 10:27:00 +02:00
Milan Sreckovic
4284dc6e11 Bug 1019063 - Check for ::CreateDCW failing when printing. r=dvander 2015-06-18 08:18:00 +02:00
David Anderson
b57de80569 Add an observer service notification for the first widget paint message. (bug 1173117 part 2, r=roc) 2015-06-18 13:42:39 -07:00
Kartikaya Gupta
f8ae55b733 Bug 1055557 - Add a ZoomConstraintsClient class to manage pushing zoom constraints updates to the APZ code. r=botond
Original patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>.
2015-06-17 12:32:42 -04:00
Shelly Lin
674494b7ef Bug 1113562 - Expected delay time of tasks should not be the latency of those kind. r=sinker 2015-06-16 10:57:19 +08:00
Cameron McCormack
55338d31e4 Bug 1169514 - Part 3: Use a shared preference style sheet across all pres contexts. r=jwatt 2015-06-16 11:34:48 +10:00
Cameron McCormack
8765417a37 Bug 1169514 - Part 2: Move noframes rules from the preferences style sheet to a cached UA style sheet. r=jwatt 2015-06-16 11:34:47 +10:00