Commit Graph

1873 Commits

Author SHA1 Message Date
Andreas Farre
b6e8a0530c Bug 1198381 - Implement the requestIdleCallback feature, r=froydnj,mattwoodrow,smaug
Expose requestIdleCallback on Window and implement running callbacks
in idle periods by posting rICs to the main threads idle queue.

MozReview-Commit-ID: KSYQsyaZ6is
2016-08-22 14:52:45 +02:00
Carsten "Tomcat" Book
3fb3787b20 Backed out changeset eb2606332cb8 (bug 1198381) 2016-10-25 12:32:54 +02:00
Andreas Farre
a990fe8f33 Bug 1198381 - Implement the requestIdleCallback feature, r=froydnj,mattwoodrow,smaug
Expose requestIdleCallback on Window and implement running callbacks
in idle periods by posting rICs to the main threads idle queue.

MozReview-Commit-ID: KSYQsyaZ6is
2016-08-22 14:52:45 +02:00
Jeremy Chen
b1dad671ed Bug 1286468 followup - Fix naming issues.
MozReview-Commit-ID: C2PDA4R5k5F
2016-10-24 15:01:25 +08:00
Jeremy Chen
677ecc039d Bug 1286468 - Rename line related functions in nsBlockFrame. r=TYLin
1. Rename these functions to agree with Mozilla coding style.
2. Use singular naming instead of plural naming since each of these functions
returns an iterator pointing to a singular line.
3. Rename line() and rline() to BeginLineFrom() and RBeginLineFrom(), which
shall improve the readability.

MozReview-Commit-ID: txZjVnv9Yb
2016-10-22 19:41:05 +08:00
Jeremy Chen
a63dddda2b Bug 1286468 - Rename line related typedefs in nsBlockFrame. r=TYLin
MozReview-Commit-ID: Cz9R3D4NzMc
2016-10-22 19:41:04 +08:00
Xidorn Quan
f2930fb5a2 Bug 1309868 part 2 - Use const nsIContent pointer in some layout utils. r=heycam
MozReview-Commit-ID: 5GMave4FS48
2016-10-18 15:29:03 +11:00
Jorg K
82d11230ae Bug 1263357 - When the caret is placed after visible line break, associate caret with frame on the next line instead. r=mats 2016-10-14 14:21:00 -04:00
Hiroyuki Ikezoe
74aa7d188c Bug 1223658 - Part 8: Drop nsLayoutUtils::HasActiveAnimationOfProperty. r=birtles
MozReview-Commit-ID: 3uI5wQoviqK
2016-10-14 19:14:12 +09:00
Carsten "Tomcat" Book
336718da07 merge mozilla-inbound to mozilla-central a=merge 2016-10-14 11:59:12 +02:00
Kartikaya Gupta
c3b617b547 Bug 1304689 - Ensure frame reconstructions don't clobber a 'stronger' scroll origin with a 'weaker' one. r=tnikkel
If, within a single refresh driver tick, the scroll position is updated by JS
explicitly, and then subsequently also updated by a frame reconstruction, the
scroll origin from the former (nsGkAtoms::other) can get clobbered by the latter
(to nsGkAtoms::restore). The restore scroll origin is "weaker" in that it can
be ignored by the APZ code in some circumstances. This is undesirable because
it means the JS scroll update also gets ignored. This patch ensures that when
setting the scroll origin we don't do this clobbering of stronger origins with
weaker origins.

MozReview-Commit-ID: DA4EHp1Debu
2016-10-11 09:36:22 -04:00
David Anderson
74d3d2ad0c Add telemetry for how phases of the painting pipeline contribute to large frame times. (bug 1309442, r=mattwoodrow) 2016-10-12 20:58:04 +13:00
Phil Ringnalda
2ab744056c Backed out 2 changesets (bug 1278136) for failures in no-stacking-context-opacity-removing-animation-in-delay.html
Backed out changeset 62cf4a7d6007 (bug 1278136)
Backed out changeset 5f2db29e67ca (bug 1278136)

MozReview-Commit-ID: K9WcZFjL2XB
2016-10-11 20:40:36 -07:00
Hiroyuki Ikezoe
ecfa2ce611 Bug 1278136 - Part 5: Create a stacking context for opacity/transform animations even if it's in delay phase and even if the property is overridden by !important rules. r=birtles
This patch introduces a new functions named HasEffectiveAnimationOfProperty.
This function checks that a given CSS property is overridden by !important
rules.
On the other hand, now KeyframeEffetReadOnly::HasAnimationOfProperty() does
just check that the effect has a given CSS property.  This is used to create
a stacking context because we should create a stacking context for opacity or
transform animations even if the property is overridden by !important rules.

MozReview-Commit-ID: AG1Y0IgoB3U
2016-10-12 09:59:03 +09:00
Hiroyuki Ikezoe
0d6fbdaea1 Bug 1278136 - Part 5: Create a stacking context for opacity/transform animations even if it's in delay phase and even if the property is overridden by !important rules. r=birtles
This patch introduces a new functions named HasEffectiveAnimationOfProperty.
This function checks that a given CSS property is overridden by !important
rules.
On the other hand, now KeyframeEffetReadOnly::HasAnimationOfProperty() does
just check that the effect has a given CSS property.  This is used to create
a stacking context because we should create a stacking context for opacity or
transform animations even if the property is overridden by !important rules.

Note about no-stacking-context-(opacity|transform)-removing-animation-in-delay.html
Before this patch we don't create any stacking context for animations overridden
by !important rules, but after this patch we do create a stacking context for
such animations.  As a result, in the test case we did paint a stacking context
in the first rAF callback and then in the second rAF callback we did clear the
painted stacking context. Unfortunately sometimes the second rAF callback was
called prior to clear the stacking context on the compositor because of
compositor delay. To avoid this situation, we have to wait for MozAfterPaint
instead of rAF callback.

MozReview-Commit-ID: AG1Y0IgoB3U
2016-10-13 16:54:25 +09:00
Mats Palmgren
07eae574b4 Bug 1307806 - [css-grid][css-flexbox][css-align] Implement nsLayoutUtils::GetFirstLineBaseline for flex/grid containers. r=dholbert 2016-10-06 22:43:22 +02:00
Carsten "Tomcat" Book
4b9350d45c merge mozilla-inbound to mozilla-central a=merge 2016-10-06 11:59:54 +02:00
Kartikaya Gupta
f8b4d8d000 Bug 1307522 - Remove obsolete comment. r=me and DONTBUILD because NPOTB
MozReview-Commit-ID: BA6Ak87vhKQ
2016-10-05 16:32:06 -04:00
Hiroyuki Ikezoe
20167227bf Bug 1304922 - Part 10: Drop non-const version of KeyframeEffectReadOnly::Properties(). r=birtles
We no longer modify AnimationProperty outside KeyframeEffectReadOnly class.

MozReview-Commit-ID: 1YJglDhuS1w
2016-10-05 14:54:01 +09:00
Hiroyuki Ikezoe
7b9de990cb Bug 1304922 - Part 1: Rename nsLayoutUtils::HasCurrentAnimationOfProperty() to nsLayoutUtils::HasActiveAnimationOfProperty(). r=birtles
KeyframeEffectReadOnly::HasAnimationOfProperty() calls GetAnimationOfProperty()
which checks mWinsInCascade flag and the mWinsInCascade flag is set to true
only if the effect is in-effect.
That means nsLayoutUtils::HasCurrentAnimationOfProperty() actually represents
that a given frame has at least one animation which is current and *in-effect*
(i.e. active).

MozReview-Commit-ID: 93rMMmzrBMi
2016-10-05 14:25:41 +09:00
Brad Werth
1148c21217 Bug 1304012 -- Part 2: Rename nsStyleStruct Computed**Self functions to Used**Self. r=dholbert
MozReview-Commit-ID: FCBuT2Z7sy6
2016-09-30 09:15:57 -07:00
Mats Palmgren
a18380557e Bug 1303643 part 2 - [css-grid] Apply percentages to grid item min-content contributions. r=dholbert 2016-09-29 21:49:54 +02:00
Mats Palmgren
d520a4e996 Bug 1303643 part 1 - Add a flag to control whether percentages should be applied also to min-content contributions. r=dholbert 2016-09-29 21:49:54 +02:00
Carsten "Tomcat" Book
a4f6123bde Merge mozilla-central to autoland 2016-09-28 16:52:13 +02:00
Bill McCloskey
7664022ea0 Bug 1305165 - UpdateDisplayPortMarginsFromPendingMessages should use PCompositorBridge channel (r=kats) 2016-09-27 18:48:00 -07:00
James Cheng
42e8029df1 Bug 1300654 Part1-Remove MOZ_EME from code base. r=cpearce,smaug
MozReview-Commit-ID: JboGO0w4tcE
2016-09-08 18:06:20 +08:00
Jonathan Kew
547974631f Bug 1302389 - patch 3 - Handle vertical writing mode in nsLayoutUtils::GetScrolledRect(). r=dholbert 2016-09-12 13:33:23 +01:00
Jeff Muizelaar
c031e44d61 Bug 1298829. Move non-operator OVER handling to callback drawables. r=bas
This cleans up the code and makes us use an extra surface less.
2016-09-13 11:05:58 -04:00
Carsten "Tomcat" Book
e426d2d1e9 Merge mozilla-central to autoland 2016-09-09 12:19:59 +02:00
Manish Goregaokar
49b3b83008 Bug 1300337 - Replace None_ variants from nsStyleConsts.h with None; r=heycam,TYLin
MozReview-Commit-ID: CxHzbEzjLxT
2016-09-04 00:16:58 +05:30
Nicolas Silva
fdb7ab259e Bug 1301027 - Remove the matrix * point operator and replace it with TransformPoint methods. r=Bas 2016-09-08 18:26:03 +02:00
Jeremy Chen
351de41d83 Bug 1297306 - part6:replace NS_STYLE_CLEAR_* with StyleClear enum class. r=xidorn
After using enum class, a switch-case warning in CombineBreakType is caught.
This is one of such kind safty checks that we would like to gain.
Fix it by adding default case for switch-case in CombineBreakType.

MozReview-Commit-ID: BdS3LPN6qzX
2016-09-07 10:20:17 +08:00
Brian Birtles
cf51ad1c35 Bug 1300045 part 2 - Split KeyframeEffect.cpp into KeyframeEffect{ReadOnly}.cpp r=hiro,smaug
MozReview-Commit-ID: DdBEicunApv
2016-09-04 16:34:21 +09:00
Lee Salzman
a1eb2dd81d Bug 1297211 - treat an empty src as available in image requests for canvas2d drawImage. r=mchang
MozReview-Commit-ID: GwB2oQHy7Ex
2016-09-02 16:13:44 -04:00
Nicholas Nethercote
887efe04d5 Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.
2016-09-01 15:01:16 +10:00
Emilio Cobos Álvarez
2efcfaad38 Bug 1299066: Make NS_STYLE_DISPLAY_* an enum class. Prefer indexing instead of linear search in the frame constructor r=heycam,bz
The main renaming was generated with the following python script:

```

import sys
import re

CAMEL_CASE_REGEX = re.compile(r"(^|_|-)([A-Z])([A-Z]+)")
DISPLAY_REGEX = re.compile(r"\bNS_STYLE_DISPLAY_([^M][A-Z_]+)\b")

def to_camel_case(ident):
  return re.sub(CAMEL_CASE_REGEX,
                lambda m: m.group(2) + m.group(3).lower(), ident)

def constant_to_enum(constant):
  return "StyleDisplay::" + to_camel_case(constant) + ("_" if constant == "NONE" else "")

def process_line(line):
  return re.sub(DISPLAY_REGEX,
                lambda m: constant_to_enum(m.group(1)), line)

lines = []
with open(sys.argv[1], "r") as f:
  for line in f:
    lines.append(process_line(line))

with open(sys.argv[1], "w") as f:
  for line in lines:
    f.write(line)
```

And the following shell commands:

```
find . -name '*.cpp' -exec python display.py {} \;
find . -name '*.h' -exec python display.py {} \;
```

MozReview-Commit-ID: 91xYCbLC2Vf
2016-09-01 20:41:17 -07:00
Julian Seward
b46b575caa Bug 1298377 - Uninitialised value use in nsLayoutUtils::TransformToAncestorAndCombineRegions. r=kats. 2016-08-30 15:10:49 +02:00
tlin@mozilla.com
ac64370cdb Bug 1295084 Part 4 - Rename Position::PositionCoord to Position::Coord. r=dholbert 2016-08-25 09:59:51 +00:00
tlin@mozilla.com
299b487db0 Bug 1295084 Part 3 - Move nsStyleImageLayers::Position to mozilla::Position. r=dholbert 2016-08-25 09:59:51 +00:00
Wes Kocher
00c5aee754 Merge inbound to central, a=merge 2016-08-25 16:59:00 -07:00
Ryan VanderMeulen
dbf61a2219 Merge m-c to autoland. a=merge 2016-08-25 08:14:36 -04:00
Sebastian Hengst
c42699270d Backed out changeset 9fa5ccaa8c6c (bug 1289650) 2016-08-24 23:15:49 +02:00
Ryan Hunt
205148488b Bug 1289650 - Use PAPZCTreeManager in content process instead of PAPZ. r=kats
MozReview-Commit-ID: LRhvZlNqli
2016-07-31 12:39:00 -07:00
Jinank Jain
b875b54a4e Bug 712936 - Convert users of PR_STATIC_ASSERT to C++11 static_assert(). r=Ms2ger 2016-08-23 11:24:54 -04:00
Kartikaya Gupta
2aa9d01032 Bug 1292781 - Send scroll-position-restore updates to APZ, but don't allow them to clobber user scrolls. r=tnikkel
Previously we weren't sending scroll position updates with origin nsGkAtoms::restore
over to the APZ at all, on the assumption that they should never clobber an APZ
scroll offset. However, there are scenarios where that is not true.

In particular, during a frame reconstruction, a layers update may be sent to the
compositor between the time a scrollframe has RestoreState() called on it, and
the time the scrollframe has ScrollToRestoredPosition() called on it. The layers
update that happens during this interval (correctly) sends a scroll position of
(0,0), and forces the APZ to scroll to that position. This is necessary to
prevent APZ from remaining at an invalid scroll offset while the frame is still
being rebuilt.

However, once ScrollToRestoredPosition() is called and the old scroll offset is
restored, that restored scroll position needs to get sent to the APZ in order to
have it properly restore to the original scroll position. In order to do this,
the main thread must flag the metrics with a scroll offset update. Since the user
may have scrolled concurrently in the compositor from the (0,0) position, we also
need to check for that case in the APZ code and avoid restoring the scroll
position. This is equivalent to the corresponding main-thread code in
ScrollToRestoredPosition().

MozReview-Commit-ID: LxRapVSrsJ3
2016-08-24 09:15:29 -04:00
Ryan Hunt
367f0130ba Bug 1289650 - Use PAPZCTreeManager in content process instead of PAPZ. r=kats
MozReview-Commit-ID: LRhvZlNqli
2016-07-31 12:39:00 -07:00
Boris Chiou
1ef0babead Bug 1049975 - Part 4: Merge two Animation::SetEffect()s. r=birtles
This is a pre-patch for part 5, which is trying to make our code closer to the
spec. Some methods in KeyframeEffectReadOnly belong to AnimationEffectReadOnly,
so first, use AsKeyframeEffect() to access those keyframe-related methods, and
then add virtual methods for timing-related methods to AnimationEffectReadOnly.

MozReview-Commit-ID: 1srA1f8JYeN
2016-07-25 16:56:34 +08:00
Kan-Ru Chen
a9b19d0584 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES
2016-08-24 14:47:04 +08:00
Nicholas Nethercote
8b8bd02a31 Bug 1293596 (part 2) - Rework nsIWidget bounds getters. r=mstange.
This patch makes GetBounds(), GetScreenBounds() and GetClientBounds() more
obviously infallible, like existing functions such as GetNaturalBounds() and
GetClientSize(). This results in clearer behaviour in nsCocoaWindow.mm if
Objective C exceptions occur. Along the way, the patch removes some useless
failure checks for these functions.

The patch also removes the NS_IMETHOD from GetRestoredBounds and makes that
function MOZ_MUST_USE.
2016-08-19 09:03:04 +10:00
Randall Barker
bac11cde77 Bug 1291373 - [geckoview] part 3, Remove MOZ_ANDROID_APZ r=botond,snorp 2016-08-16 14:33:43 -07:00