Граф коммитов

19800 Коммитов

Автор SHA1 Сообщение Дата
Brad Werth 16be774e5b Bug 1501665 Part 8: Allow MVM::RequestReflow to adjust resolution, and do so when destroying the MVM. r=botond
Currently the MobileViewportManager leaves somethings permanently changed
even after it is destroyed: it may have changed the resolution of
the Document, and it may have set a fixed size for the visual viewport.
Both of these changes need to be un-done to return to normal display of
the Document.

Differential Revision: https://phabricator.services.mozilla.com/D17999

--HG--
extra : source : 088dc24eabc75eea96301d50550e0a8817f5f809
2019-03-18 14:58:31 +00:00
Brad Werth ba8e9742ef Bug 1501665 Part 7: Add a new function to allow visual viewport size to be un-set. r=smaug
Once nsIPresShell::SetVisualViewportSize is called, we currently have
no way to restore the default viewport sizing behavior. This corrects that.
We need the default behavior to get correctly-placed scrollbars when
turning off meta viewport handling in Responsive Design Mode panes.

Differential Revision: https://phabricator.services.mozilla.com/D20593

--HG--
extra : source : 178210eb72baa05f877b3a35e0c94d0b23880d13
2019-03-18 14:58:07 +00:00
Brad Werth 7fc19a53b5 Bug 1501665 Part 4: Use the new function as a replacement for APZAllowZooming. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D19239

--HG--
extra : source : cf42ea4e8443cdcb5f446dfb95d92d5998f55f24
2019-03-18 14:56:55 +00:00
Brad Werth 83ef115c9e Bug 1501665 Part 3: Add a new function to determine if a document can use resolution zooming. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D19238

--HG--
extra : source : 731d7ee06d86794fb9ec58b32f1495ad11205a1c
2019-03-18 14:56:32 +00:00
shindli b7de66af4f Backed out 13 changesets (bug 1501665) for failing a11y tests in accessible/tests/mochitest/relations/test_tabbrowser.xul CLOSED TREE
Backed out changeset 2fa518cb0dfc (bug 1501665)
Backed out changeset afaf26d7df42 (bug 1501665)
Backed out changeset 5bdf0ad9dc66 (bug 1501665)
Backed out changeset 520dd24a73fc (bug 1501665)
Backed out changeset 3542bf2b89dd (bug 1501665)
Backed out changeset 088dc24eabc7 (bug 1501665)
Backed out changeset 178210eb72ba (bug 1501665)
Backed out changeset 9eebe767ef20 (bug 1501665)
Backed out changeset 6a84e97d0e62 (bug 1501665)
Backed out changeset cf42ea4e8443 (bug 1501665)
Backed out changeset 731d7ee06d86 (bug 1501665)
Backed out changeset 8e0afe4a041a (bug 1501665)
Backed out changeset be1026de486b (bug 1501665)
2019-03-18 18:08:58 +02:00
Emilio Cobos Álvarez ac54c9333b Bug 1534494 - Try to bring some more sanity into our font code. r=manishearth
It's not very easy to understand on its current state, and it causes subtle bugs
like bug 1533654.

It could be simpler if we centralized where the interactions between properties
are handled. This patch does this.

This patch also changes how MathML script sizes are tracked when scriptlevel
changes and they have relative fonts in between.

With this patch, any explicitly specified font-size is treated the same (being a
scriptlevel boundary), regardless of whether it's either an absolute size, a
relative size, or a wide keyword.

Relative lengths always resolve relative to the constrained size, which allows
us to avoid the double font-size computation, and not give up on sanity with
keyword font-sizes.

I think given no other browser supports scriptlevel it seems like the right
trade-off.

Differential Revision: https://phabricator.services.mozilla.com/D23070

--HG--
extra : moz-landing-system : lando
2019-03-18 15:37:03 +00:00
Emilio Cobos Álvarez 2884637218 Bug 1395964 - Make image loading changes not reframe. r=tnikkel
Bug 1472637 makes the decision of whether to construct an image frame not depend
on this, so this is sound.

We need to avoid reframing to fix this bug because otherwise we lose track of
the previously painted image.

Differential Revision: https://phabricator.services.mozilla.com/D23127
2019-03-18 16:18:52 +01:00
Emilio Cobos Álvarez 59c8f44032 Bug 1472637 - Don't display alt text while loading, to match other UAs. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D18518

--HG--
extra : moz-landing-system : lando
2019-03-18 15:15:13 +00:00
Brad Werth e77eba40ba Bug 1501665 Part 10: Modify viewport resize zoom scaling to account for clamped zoom levels. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D21291

--HG--
extra : moz-landing-system : lando
2019-03-18 14:59:12 +00:00
Brad Werth 217c46ca45 Bug 1501665 Part 9: Early exit around an unnecessary call to UpdateVisualViewportSize. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D21287

--HG--
extra : moz-landing-system : lando
2019-03-18 14:58:49 +00:00
Brad Werth a4eaa45fd4 Bug 1501665 Part 8: Allow MVM::RequestReflow to adjust resolution, and do so when destroying the MVM. r=botond
Currently the MobileViewportManager leaves somethings permanently changed
even after it is destroyed: it may have changed the resolution of
the Document, and it may have set a fixed size for the visual viewport.
Both of these changes need to be un-done to return to normal display of
the Document.

Differential Revision: https://phabricator.services.mozilla.com/D17999

--HG--
extra : moz-landing-system : lando
2019-03-18 14:58:31 +00:00
Brad Werth 1e6b91bfc7 Bug 1501665 Part 7: Add a new function to allow visual viewport size to be un-set. r=smaug
Once nsIPresShell::SetVisualViewportSize is called, we currently have
no way to restore the default viewport sizing behavior. This corrects that.
We need the default behavior to get correctly-placed scrollbars when
turning off meta viewport handling in Responsive Design Mode panes.

Differential Revision: https://phabricator.services.mozilla.com/D20593

--HG--
extra : moz-landing-system : lando
2019-03-18 14:58:07 +00:00
Brad Werth b43c639430 Bug 1501665 Part 4: Use the new function as a replacement for APZAllowZooming. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D19239

--HG--
extra : moz-landing-system : lando
2019-03-18 14:56:55 +00:00
Brad Werth e0fb57be15 Bug 1501665 Part 3: Add a new function to determine if a document can use resolution zooming. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D19238

--HG--
extra : moz-landing-system : lando
2019-03-18 14:56:32 +00:00
Brian Birtles 76cea81357 Bug 1518816 - Set the "may have transform animations" flag on the primary frame; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D23635

--HG--
extra : moz-landing-system : lando
2019-03-18 04:12:23 +00:00
Brian Birtles 75b97de014 Bug 1518816 - Rename EffectSet::GetEffectSet(const nsIFrame*) to make it more clear what it does; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D23286

--HG--
extra : moz-landing-system : lando
2019-03-18 04:12:14 +00:00
Brian Birtles f9f6d9275c Bug 1518816 - Make nsLayoutUtils utility functions for getting animations use the EffectSet::GetEffectSetForFrame; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D23285

--HG--
extra : moz-landing-system : lando
2019-03-18 04:12:12 +00:00
Brian Birtles 8e3d3cbf03 Bug 1518816 - Clarify when and why KeyframeEffect::HasEffectiveAnimationOfPropertySet might return false even when there are effective animations in a property set; r=boris
It took me a long time to understand why
KeyframeEffect::HasEffectiveAnimationOfPropertySet behaved so differently to
KeyframeEffect::HasAnimationOfPropertySet. This patch attempts to clarify that
while making KeyframeEffect::HasEffectiveAnimationOnPropertySet a little more
generally useful. This will allow us to tidy up the various animation checks in
nsLayoutUtils later in this patch series.

Ultimately, however, we should make this check part of the regular compositor
animation vetting machinery in bug 1534884. That should remove a number of
inconsistencies such that we don't need the extended comments added in this
patch.

Differential Revision: https://phabricator.services.mozilla.com/D23281

--HG--
extra : moz-landing-system : lando
2019-03-18 04:10:10 +00:00
Brian Birtles fb706f4828 Bug 1518816 - Replace nsLayoutUtils::HasCurrentTransition with something that takes an element/pseudo pair; r=hiro
The trouble with utility functions that take an nsIFrame is it's not clear what
the caller's intention is. For example, with
nsLayoutUtils::HasCurrentTransition, is the caller asking for transitions on
that frame? Or animations on _both_ that frame and its corresponding
style/primary frame?

Probably the caller hasn't even thought about it and there are likely to be bugs
when display:table content is encountered.

Where practical it's much better to take an element/pseudo pair since it's clear
that the caller is concerned with all animations (or transitions in this case)
on the element regardless of how it is represented in the frame tree.

This patch updates nsLayoutUtils::HasCurrentTransition to take an element/pseudo
pair and moves it to mozilla::AnimationUtils at the same time.

Differential Revision: https://phabricator.services.mozilla.com/D23280

--HG--
extra : moz-landing-system : lando
2019-03-18 04:09:55 +00:00
Ting-Yu Lin 7f6824aa03 Bug 1493317 Part 2 - Enable AccessibleCaret in unit tests. r=jchen
And use correct AccessibleCaret preference to disable it individually in tests.

Differential Revision: https://phabricator.services.mozilla.com/D10299

--HG--
extra : moz-landing-system : lando
2019-03-16 07:38:34 +00:00
Ting-Yu Lin 2fac17be1a Bug 1493317 Part 1 - Fix pending popup group assertion after enabling AccessibleCaret in unittest. r=mats
The assertion can be reproduced locally by running
"./mach test dom/canvas/test/chrome/test_drawWindow_widget_layers.html"
with layout.accessiblecaret.enabled=true.

When AccessibleCaret is enabled, caret elements will be inserted into
nsCanvasFrame::mCustomContentContainer, thus it recursively invokes
ConstructFramesFromItemList() to construct frames for carets before it had a
chance to construct popup group.

I feel it's too strict to assume that ConstructFramesFromItemList() cannot be
invoke recursively whenever there's a popup group item. I move the assertion to
the end of ConstructDocElementFrame() to ensure the popup group is processed by
then.

Differential Revision: https://phabricator.services.mozilla.com/D10298

--HG--
extra : moz-landing-system : lando
2019-03-16 07:29:11 +00:00
Dorel Luca 0e9ffb4c4f Merge mozilla-inbound to mozilla-central. a=merge 2019-03-14 18:25:40 +02:00
Emilio Cobos Álvarez 5aa8533517 Bug 1533963 - Use a single RestyleHint representation. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D22828

--HG--
extra : moz-landing-system : lando
2019-03-14 11:47:50 +00:00
Sylvestre Ledru 4aa92e3091 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
Chris Peterson 2b18063c04 Bug 1534467 - Fix layout debugger build in non-DEBUG builds. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D23397

--HG--
extra : moz-landing-system : lando
2019-03-13 21:36:00 +00:00
Csoregi Natalia d6418fe8b9 Merge mozilla-central to autoland. CLOSED TREE 2019-03-13 23:47:01 +02:00
David Major e5773183d6 Bug 1528074 - Remove MSVC warning flags that clang-cl doesn't understand r=chmanchester
Per the previous patch, clang-cl only understands five MSVC-style warning flags: 7219c7e9af/clang/include/clang/Driver/CLCompatOptions.td (L188-L197)

This patch removes the flags that clang-cl doesn't understand.

Differential Revision: https://phabricator.services.mozilla.com/D22588

--HG--
extra : moz-landing-system : lando
2019-03-13 20:19:08 +00:00
Emilio Cobos Álvarez 32f44a84cd Bug 1533085 - Fix some usage of display in XBL bindings in thunderbird. r=npotb 2019-03-13 19:00:08 +01:00
Masayuki Nakano a5791dba14 Bug 1466208 - part 45: Rename `aFrame` of `HandleEvent()` to `aFrameForPresShell` r=smaug
Now, other methods taking `aFrame` of `HandleEvent()` names the argument as
`aFrameForPresShell`.  So, `HandleEvent()`'s `aFrame` should also be renamed.

This patch renames it and adds MOZ_CAN_RUN_SCRIPT and comment to
`nsIPresShell::HandleEvent()`.

This is the final patch for bug 1466208.

Differential Revision: https://phabricator.services.mozilla.com/D22463

--HG--
extra : moz-landing-system : lando
2019-03-13 10:32:36 +00:00
Boris Zbarsky 4ff91d4938 Bug 1506439 part 2. Stop creating a useless nsCOMPtr in DispatchInputEvent. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D23068

--HG--
extra : moz-landing-system : lando
2019-03-13 02:34:48 +00:00
Boris Zbarsky ccfb4f16b1 Bug 1534370 part 1. Annotate doCommandWithParams as MOZ_CAN_RUN_SCRIPT. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D23036

--HG--
extra : moz-landing-system : lando
2019-03-13 00:43:48 +00:00
Boris Zbarsky 5bf2e408e6 Bug 1534608. MOZ_CAN_RUN_SCRIPT should disallow non-stack refptr arguments. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D23217

--HG--
extra : moz-landing-system : lando
2019-03-13 00:30:11 +00:00
Masayuki Nakano 229762b203 Bug 1466208 - part 44: Rename PresShell::EventHandler::HandleEventInternal() to HandleEventWithCurrentEventInfo() r=smaug
In my understanding, `PresShell::EventHandler::HandleEvent()` may redirect
the event to another class or PresShell first.  Otherwise, it computes
event target and sets current event info of mPresShell to it.  Then, calls
`HandleEventInternal()` to dispatch the event.  Then, `HandleEventInternal()`
may handle the event before dispatch, and/or prepare to dispatch, then,
finally dispatches the event and finalize the state of mPresShell and the
event.  Therefore, `HandleEventInternal()` actually handles the event, but
the word, "internal" is not explicitly explain its different points from
`HandleEvent()`.  Therefore, I think that `HandleEventWithCurrentEventInfo()`
is better name since `HandleEvent()` considers the current event info.

Differential Revision: https://phabricator.services.mozilla.com/D22462

--HG--
extra : moz-landing-system : lando
2019-03-12 04:25:13 +00:00
Olli Pettay bc7cdf91ba Bug 1265104, paint dnd'ed content also when it is under non-displayed content (display: contents or ShadowRoot), r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D23050

--HG--
extra : moz-landing-system : lando
2019-03-11 22:47:12 +00:00
Masayuki Nakano 5c8444252b Bug 1466208 - part 43: Create PresShell::EventHandler::FinalizeHandlingEvent() r=smaug
Finally, we should move the last switch statement in `HandleEventInternal()`
to the new method.  Then, `HandleEventInternal() does nothing complicated
things by itself.

Differential Revision: https://phabricator.services.mozilla.com/D22461

--HG--
extra : moz-landing-system : lando
2019-03-11 01:52:40 +00:00
Henrik Skupin 4b889bad47 Bug 1533786 - [marionette] Add support for the WebDriver Actions API. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D22757

--HG--
extra : moz-landing-system : lando
2019-03-11 20:33:49 +00:00
Dorel Luca 57823a4f04 Backed out changeset e510d3ed595a (bug 1533786) for Marionette failures 2019-03-11 20:38:21 +02:00
Henrik Skupin c7b107e581 Bug 1533786 - [marionette] Add support for the WebDriver Actions API. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D22757

--HG--
extra : moz-landing-system : lando
2019-03-11 15:26:20 +00:00
Boris Zbarsky 68863e1004 Bug 1533617 part 4. Mark virtual methods with CAN_RUN_SCRIPT overrides as CAN_RUN_SCRIPT. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D22838

--HG--
extra : moz-landing-system : lando
2019-03-11 14:20:29 +00:00
Boris Zbarsky 6f2f3304b0 Bug 1533617 part 1. Improve MOZ_CAN_RUN_SCRIPT annotations around synth mouse events. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D22835

--HG--
extra : moz-landing-system : lando
2019-03-11 14:58:04 +00:00
Masayuki Nakano 60f9f583fc Bug 1466208 - part 42: Clean up PresShell::EventHandler::DispatchEvent() with using early-return style r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D22460

--HG--
extra : moz-landing-system : lando
2019-03-11 01:52:17 +00:00
Masayuki Nakano 2e39c4ee90 Bug 1466208 - part 41: Create PresShell::EventHandler::DispatchEvent() r=smaug
This is the part which actually handles the event.  The new method should
notify EventStateManager of dispatching event before and after that, and
actually dispatch the event into the DOM.

Differential Revision: https://phabricator.services.mozilla.com/D22459

--HG--
extra : moz-landing-system : lando
2019-03-09 23:39:16 +00:00
Masayuki Nakano 930da74b1d Bug 1466208 - part 40: Create PresShell::EventHandler::PrepareToDispatchEvent() r=smaug
For making `PresShell::EventHandler::HandleEventInternal()` easier to read,
move the large switch statement for preparation into the new method.

Differential Revision: https://phabricator.services.mozilla.com/D21341

--HG--
extra : moz-landing-system : lando
2019-03-09 23:38:38 +00:00
Masayuki Nakano 1b0e6d02fe Bug 1466208 - part 39: Create PresShell::EventHandler::MaybeHandleKeyboardEventBeforeDispatch() r=smaug
`PresShell::EventHandler::HandleEventInternal()` may handle `Escape` key before
dispatching it in some cases.  This requires too many lines for somebody who
investigate the method for the other events.  Therefore, this patch moves it
into the new method.

Additionally, this patch creates `WidgetKeyboardEvent::CanTreatAsUserInput()`
and `WidgetKeyboardEvent::ShouldInteractionTimeRecorded()` because we should
manage similar checks in one place (we already have
`WidgetKeyboardEvent::CanUserGestureActivateTarget()`).  Finally, their
conditions are not enough for what the comment wants to do there since they do
not check some modifier keys.  Therefore, this patch makes them check all
possible modifier keys too.

Differential Revision: https://phabricator.services.mozilla.com/D21340

--HG--
extra : moz-landing-system : lando
2019-03-08 12:46:17 +00:00
Razvan Maries 87c4a3175f Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2019-03-09 23:55:26 +02:00
Henri Sivonen decc78f432 Bug 1530661 - Make APZ report the per LayersId layer-to-screen transform matrices to the chrome process. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D22082

--HG--
extra : moz-landing-system : lando
2019-03-09 20:33:17 +00:00
longsonr 1260feab53 Bug 1531578 - don't process nsChangeHint_UpdateSubtreeOverflow for nondisplay frames r=dholbert 2019-03-09 16:01:31 +00:00
Masayuki Nakano cca9243a46 Bug 1466208 - part 38: Create PresShell::EventHandler::PrepareToDispatchContextMenuEvent() r=smaug
The first switch statement of `PresShell::EventHandler::HandleEventInternal()`
has 2 jobs:
- Prepare something for specific event type.
- Record the preparation time of some types of events to telemetry.

This intermixed code is not easy to understand and somebody may add new
preparation after recording them.  So, even though the preparation time
becomes worse a couple of nanoseconds, we should split those jobs.

The patch moves the latter job into the new method.

Differential Revision: https://phabricator.services.mozilla.com/D21339

--HG--
extra : moz-landing-system : lando
2019-03-08 23:41:30 +00:00
Masayuki Nakano e43a1df256 Bug 1466208 - part 37: Move trusted eMouseMove event preparation into the previous switch-case block r=smaug
Oddly, there are two trusted eMouseMove preparation code in
`PresShell::EventHandler::HandleEventInternal()`.  One is in the `switch`
statement which is used only when `aEvent` is trusted.  The other is after
`TouchManager::PreHandleEvent()` is called and after
`AutoHandlingUserInputStatePusher` is created.  However, both of them do
nothing if the event is `eMouseMove`.  Therefore, we can move the latter
into the former.

Differential Revision: https://phabricator.services.mozilla.com/D21338

--HG--
extra : moz-landing-system : lando
2019-03-08 23:37:34 +00:00
Ting-Yu Lin 0ac3561306 Bug 1533885 - Bail out from MaybeRecreateForColumnSpan if aFrameList is empty. r=dbaron
The test case triggers MOZ_ASSERT(!IsFramePartOfIBSplit(aParentFrame))
in MaybeRecreateForColumnSpan() because WipeContainingBlock() returns
early when the FrameConstructionItemList is empty. Thus, it doesn't wipe
the aParentFrame even if it's part of an IB split.

An empty FrameConstructionItemList constructs no frames. Therefore,
MaybeRecreateForColumnSpan() doesn't need to do anything if aFrameList is empty
since an empty frame list cannot contain any column-span.

Differential Revision: https://phabricator.services.mozilla.com/D23820

--HG--
extra : moz-landing-system : lando
2019-03-20 21:17:38 +00:00
Masayuki Nakano c59fa8ef73 Bug 1466208 - part 36: Create PresShell::EventHandler::PrepareToDispatchContextMenuEvent() r=smaug
If `Shift` state of `eContextMenu` event is active, we make it not fired on
web content.  Additionally, if it's not time to open context menu, we shouldn't
dispatch it into the DOM.  The new method prepare and check them.

Differential Revision: https://phabricator.services.mozilla.com/D21337

--HG--
extra : moz-landing-system : lando
2019-02-28 10:33:52 +00:00
Masayuki Nakano 933d7866ff Bug 1466208 - part 35: Reduce one indent level in PresShell::EventHandler::HandleEventInternal() r=smaug
If `aEvent` requires frame but there is no event target,
`PresShell::EventHandler::HandleEventInternal()` just records the response
time.  So, we can reduce one indent level in the big method.

Note that I'm not sure recording the response time in such case because
the *good* values may make the average and median better.  But this is
out of scope of bug 1466208.

Differential Revision: https://phabricator.services.mozilla.com/D21336

--HG--
extra : moz-landing-system : lando
2019-03-07 06:30:36 +00:00
arthur.iakab 93997623bd Merge mozilla-central to autoland a=merge on a CLOSED TREE 2019-03-08 00:14:12 +02:00
arthur.iakab 85ad02d41a Merge inbound to mozilla-central a=merge 2019-03-07 23:58:42 +02:00
Miko Mynttinen d546ab5155 Bug 1526941 - Part 1: Simplify nsDisplayTransform constructors r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D21184

--HG--
extra : moz-landing-system : lando
2019-03-07 17:12:21 +00:00
Timothy Nikkel 7e07e94a56 Bug 1306896. Disable assert on 32-bit Windows. r=kats
The Timestamp implementation on Windows seems to be based off of two system APIs: GetTickCount64 and QueryPerformanceCounter. QPC seems to be preferred over GTC, unless a "failure" in QPC is detected.

There is code in the Timestamp implementation to detect if QPC "fails" be comparing elapsed time of QPC to elapsed time of GTC.

Through logging on try server I observed the following in different failures:

1) the QPC failure detection kicks in a lot and disables use of QPC
2) the QPC of the vsync timestamp was in the future compared to the QPC of TimeStamp::Now().
3) the QPC of TimeStamp::Now() was missing (presumably because it was disabled) and the GTC of the vsync timestamp was in the future compared to the GTC of TimeStamp::Now()
4) the vsync timestamp printf of raw GTC and QPC values matched at the source (SoftwareDisplay::NotifyVsync) and in the refresh driver, so the vsync timestamp wasn't getting messed up.

I guess we could spend more time on the error detection in our Windows TimeStamp code, but this failure is only happening on 32-bit machines.

Here's a patch to disable the assertions on 32-bit Windows. Depends how important we think this assertion is relative to the work to investigate more.

Differential Revision: https://phabricator.services.mozilla.com/D22453

--HG--
extra : moz-landing-system : lando
2019-03-07 14:24:23 +00:00
Masayuki Nakano 20dc75af80 Bug 1466208 - part 34: Create a helper class, PresShell::EventHandler::HandlingTimeAccumulator() r=smaug
`PresShell::EventHandler::HandleEventInternal()` needs to accumulate event
handling time per each event type.  The handling start time needs to be
recorded before sending EventStateManager.  Therefore, this patch makes the
helper class which is a stack class, records current time at construction
and calls `Telemetry::AccumulateTimeDelta()` at destruction automatically.

Differential Revision: https://phabricator.services.mozilla.com/D21335

--HG--
extra : moz-landing-system : lando
2019-03-07 06:30:08 +00:00
Brian Birtles 46f45a965b Bug 1532568 - Look up the animation generation on the primary frame for transform display items; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D22443

--HG--
extra : moz-landing-system : lando
2019-03-07 05:40:51 +00:00
Masayuki Nakano 6f89be791a Bug 1466208 - part 33: Create PresShell::EventHandler::RecordEventHandlingResponsePerformance() r=smaug
`PresShell::EventHandler::HandleEventInternal()` recodes event handling
response performance with telemetry after it dispatches the event.  We can move
it into new method simply.

Differential Revision: https://phabricator.services.mozilla.com/D21334

--HG--
extra : moz-landing-system : lando
2019-03-06 06:03:54 +00:00
Emilio Cobos Álvarez 2028cb1479 Bug 1530751 - Make the pres context optional in the style system. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D21239

--HG--
extra : moz-landing-system : lando
2019-03-06 21:36:12 +00:00
Emilio Cobos Álvarez 8c9a745531 Bug 1530193 - Refactor preference stylesheet prefs to not require a pres context. r=jwatt
We really only have two sets of prefs, one for chrome-like documents
(stuff in chrome docshells + chrome-origin images), and one for the rest.

Differential Revision: https://phabricator.services.mozilla.com/D20946

--HG--
extra : moz-landing-system : lando
2019-03-06 21:34:30 +00:00
Masayuki Nakano 90e0a6d2d9 Bug 1466208 - part 32: Create PresShell::EventHandler::HandleEventAtFocusedContent() and PresShell::EventHandler::HandleEventWithFrameForPresShell() r=smaug
The remaining part of `PresShell::EventHandler::HandleEvent()` does:
1. Handles the event at focused content.
2. Handles the event with given frame which is a frame for `mPresShell`.

For making them clearer, this patch moves them into new methods.

Differential Revision: https://phabricator.services.mozilla.com/D21197

--HG--
extra : moz-landing-system : lando
2019-03-06 06:03:31 +00:00
Csoregi Natalia 56c430aac5 Merge mozilla-central to autoland. CLOSED TREE
--HG--
extra : rebase_source : 10555d94c948e45e86188feff6153ac981879fcc
2019-03-06 12:39:05 +02:00
Emilio Cobos Álvarez 87b3e6bbd3 Bug 1450652 - Remove platform support for display="" in XBL bindings. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D12586

--HG--
extra : moz-landing-system : lando
2019-03-06 00:47:13 +00:00
Masayuki Nakano 772c722daf Bug 1466208 - part 31: Create a PresShell::EventHandler::MaybeHandleEventWithAnotherPresShell() overload r=smaug
If focused element is in another document,
`PresShell::EventHandler::HandleEvent()` needs to retarget the event to another
`PresShell`.  This patch moves the case into new overload method,
`MaybeHandleEventWithAnotherPresShell()`.

Additionally, removes `PresShell::HandleRetargetedEvent()` and makes
`EventHandler::HandleRetargetedEvent()` non-public because the new method
is the only user of them.

Differential Revision: https://phabricator.services.mozilla.com/D21196

--HG--
extra : moz-landing-system : lando
2019-03-05 06:09:02 +00:00
Tim Nguyen fa021187df Bug 1513343 - Remove textarea binding and replace usages with html:textarea. r=bgrins,dao
Differential Revision: https://phabricator.services.mozilla.com/D15001

--HG--
extra : moz-landing-system : lando
2019-03-05 11:41:42 +00:00
Emilio Cobos Álvarez f1c235dc68 Bug 1512993 - Get rid of XBL display usage for buttons and toolbarbuttons. r=mats
This is the last use of them!

Differential Revision: https://phabricator.services.mozilla.com/D21924

--HG--
extra : moz-landing-system : lando
2019-03-04 17:20:29 +00:00
Brian Birtles 8ed54f03c6 Bug 1527210 - Drop KeyframeEffect::MaybeUpdateFrameForCompositor; r=hiro
Since bug 1524480 we set the NS_FRAME_MAY_BE_TRANSFORMED frame bit when needed
in RestyleManager::ProcessRestyledFrames so that it is now redundant to also set
it from KeyframeEffect.

Furthermore, setting frame bits from KeyframeEffect is a little fragile since it
depends on the life cycle of the KeyframeEffect which is independent of the
nsFrame. If we can avoid doing that, we probably should.

Differential Revision: https://phabricator.services.mozilla.com/D21885

--HG--
extra : moz-landing-system : lando
2019-03-05 03:09:48 +00:00
Brian Birtles d83da99f63 Bug 1527210 - Fix handling of animation of opacity on display:table; r=hiro
As with the previous patch in this series, we need to pay particular attention
to how we handle display:table content when detecting animations on a element.
Please see the extended description in that patch for an explanation of
different frame types involved.

As with transforms, our handling of opacity is also inconsistent.  In
particular, we fail to return true from nsIFrame::HasOpacityInternal for
display:table content with opacity animations applied due to the conflicting
requirements for a primary frame and having opacity animations (which are stored
on the style frame).

Unlike transforms, however, we do not inherit the opacity to the table wrapper.
Instead we leave it on the inner table frame. As a result, we should not check
for a primary frame, but instead we should check for the style frame for the
primary frame.

This patch adjusts this handling to check instead for the appropriate style
frame as opposed to requiring a primary frame. It includes a reftest that fails
without the code changes in this patch.

Differential Revision: https://phabricator.services.mozilla.com/D21884

--HG--
extra : moz-landing-system : lando
2019-03-05 03:09:33 +00:00
Brian Birtles 4264e3210a Bug 1527210 - Be more consistent about only applying transforms to primary frames; r=hiro
For display:table content we generate two frames: a table wrapper frame and an
inner table frame. The styles are applied to the inner frame (referred to as the
style frame), whilst the wrapper frame is the primary frame for the content.

However, in order to make tables with transforms behave as a container for
abspos/fixed-pos content as required by the spec, we apply the transform to the
wrapper frame (bug 722777) by inheriting the transform from inner to wrapper and
then ignoring the transform on the inner frame (bug 722777 and bug 816458).

When handling animations on table elements we need to be careful of this
distinction. in particular, css animations[1] and web animations[2] require that
when we have an unfinished transform animation targetting an element, the
element acts as if it had `will-change: transform` applied and therefore
generates a stacking context. As a result we need to accurately detect when
a frame should be considered as having transform animations applied to it or not
for the purpose of creating a stacking context.

Previously our handling of display:table content was quite inconsistent and
contradictory. For example, `nsIFrame::HasAnimationOfTransform` would check for
a primary frame AND for animations on that frame, despite the fact that we only
ever store animations on the style frame. As a result it could never return true
for either a table wrapper or inner table frame.

This patch attempts to make this handling at least a little more consistent,
producing the following result:

Outer table frame (primary frame):

    nsIFrame::IsTransformed → true
    nsIFrame::IsCSSTransformed → true
    nsIFrame::HasAnimationOfTransform → true
    nsLayoutUtils::HasAnimationOfProperty(frame, eCSSProperty_transform) → false

Inner table frame (style frame):

    nsIFrame::IsTransformed → false
    nsIFrame::IsCSSTransformed → false
    nsIFrame::HasAnimationOfTransform → false
    nsLayoutUtils::HasAnimationOfProperty(frame, eCSSProperty_transform) → true

We maintain that the NS_FRAME_MAY_BE_TRANSFORMED bit is only set on the primary
frame whilst the mMayHaveTransformAnimation flag is only set on the style frame.

Note that we don't simply always put everything on the primary frame because for
other property types (e.g. opacity) the default setup of putting all styles and
animations on the style frame is simpler and correct. So far it is only
transforms that require special handling to apply the effect to the wrapper
frame.

This patch adds a reftest that fails without the code changes included in this
patch.


[1] https://drafts.csswg.org/css-animations/#animations
[2] https://drafts.csswg.org/web-animations-1/#side-effects-section

Differential Revision: https://phabricator.services.mozilla.com/D21883

--HG--
extra : moz-landing-system : lando
2019-03-05 03:09:19 +00:00
Masayuki Nakano f410998652 Bug 1466208 - part 30: Create PresShell::EventHandler::AutoCurrentEventInfoSetter class r=smaug
With splitting `HandleEvent()` a lot, it becomes more difficult to keep
managing each set of calling `PushCurrentEventInfo()` and
`PopCurrentEventInfo()`.  So, `EventHandler` should have a helper class
to push and pop current event info into/from the stack.

Differential Revision: https://phabricator.services.mozilla.com/D21198

--HG--
extra : moz-landing-system : lando
2019-03-04 06:12:22 +00:00
Chris Peterson f582ab2be4 Bug 1532128 - layout: Move NS_NewLayoutDebugger() function prototype to a common header file. r=dholbert
clang's -Wmissing-prototypes option identifies global functions that can be made static (because they're only called from one compilation unit) or removed (if they're never called).

NS_NewLayoutDebugger() is defined in nsLayoutDebugger.cpp.

layout/base/nsLayoutDebugger.cpp:44:10 [-Wmissing-prototypes] no previous prototype for function 'NS_NewLayoutDebugger'

Differential Revision: https://phabricator.services.mozilla.com/D21853

--HG--
extra : rebase_source : d56bdbce2030fdd3d036493c32af69addc6d1b73
extra : histedit_source : 61343f17eb6d5a774c848b1694e6507b7c1239ed
2019-02-22 22:01:01 -08:00
Emilio Cobos Álvarez 759875a3fe Bug 1530193 - followup: Fix default type and value of browser.display.focus_ring_style.
It warns on debug builds.
2019-03-07 15:06:35 +01:00
Masayuki Nakano 47ef72825f Bug 1466208 - part 29: Create PresShell::EventHandler::ComputeFocusedEventTargetElement() r=smaug
Most remaining code in `PresShell::EventHandler::HandleEvent()` is what computes
event target of the event which should be handled on focused content.  This
patch moves the part to the new method.

Additionally, moves `nsIPresShell::gKeyDownTarget` to
`EventHandler::sLastKeyDownEventTargetElement` and make it use `StaticRefPtr`.

Finally, for using `Element*` instead of `nsIContent*`, changes the result type
of `Document::GetUnfocusedKeyEventTarget()` to `Element*`.

Differential Revision: https://phabricator.services.mozilla.com/D21195

--HG--
extra : moz-landing-system : lando
2019-03-04 06:11:41 +00:00
Emilio Cobos Álvarez 37d6170f7f Bug 1530177 - Downgrade an assertion to a diagnostic assert since it exposes pre-existing bugs. r=dholbert
nsIconChannel (for moz-icon:// images) is unsound, see bug 1438939.

nsMenuPopupFrame::Init is also unsound on mac, looks like...

I'll try to get them fixed on trunk, but it's not worth crashing release for
this IMO, given it's pre-existing. The assert in PresShell::~PresShell hopefully
avoids exploitable issues.

Differential Revision: https://phabricator.services.mozilla.com/D20945

--HG--
extra : moz-landing-system : lando
2019-02-28 23:37:44 +00:00
Masayuki Nakano 3ea27c2fd8 Bug 1466208 - part 28: Make PresShell::EventHandler::HandleEvent() handle non-using-coordinates events without frame before with frame case r=smaug
When the event is not handled with coordinates and there is no frame for
`mPresShell`, `PresShell::EventHandler::HandleEvent()` handles the events
simpler than the case there is a frame.  Therefore, this patch moves the
`else` block of `if (aFrame)` and reduce the indent of `if (aFrame)` case.

Differential Revision: https://phabricator.services.mozilla.com/D21194

--HG--
extra : moz-landing-system : lando
2019-03-02 20:35:21 +00:00
Masayuki Nakano 291457b9da Bug 1466208 - part 27: Create PresShell::EventHandler::HandleEventUsingCoordinates() r=smaug
Now, the block in HandleEvent(), which handles event using coordinates is
less than 200 lines.  Perhaps, this is good amount to be split to a method.

This patch just moves the block to a new method.

Differential Revision: https://phabricator.services.mozilla.com/D21193

--HG--
extra : moz-landing-system : lando
2019-03-02 00:03:01 +00:00
Razvan Maries cfdc9fc660 Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2019-03-02 12:06:27 +02:00
Razvan Maries c51046f730 Merge mozilla-inbound to mozilla-central a=merge 2019-03-02 11:41:18 +02:00
Masayuki Nakano fcb0072133 Bug 1466208 - part 26: Create PresShell::EventHandler::EventTargetData::UpdateTouchEventTarget() r=smaug
After dispatching pointer events, `PresShell::EventHandler::HandleEvent()`
updates event target only when the event is a touch event.  We should do it in
a new method of `EventTargetData`.

Although I don't know why this is done in
`PresShell::EventHandler::DispatchPrecedingPointerEvent()`.

Differential Revision: https://phabricator.services.mozilla.com/D21192

--HG--
extra : moz-landing-system : lando
2019-03-02 00:02:10 +00:00
Boris Chiou a47dc39197 Bug 1526850 - Part 3: Use DisplayItemType as the input of AddTransitionsAndAnimationsToLayer. r=hiro
Transform display item may have multiple properties, so it's better to
use display item type as the input.

Also, factor some code out of AddAnimationsForProperty, so we can easier
to extend this for multiple properties.

We will pass a list of layers::Animation to the compositor thread. In
this list, the animations belonging to the same property are grouped together,
so we can easily separate the animations by property and sample the animations
for each property on the compositor thread. (Will do this in Bug 1425837.)

Depends on D19628

Differential Revision: https://phabricator.services.mozilla.com/D19629

--HG--
extra : moz-landing-system : lando
2019-03-01 21:13:05 +00:00
Boris Chiou 97ae508f2d Bug 1526850 - Part 2: Let FindAnimationsForCompositor take nsCSSPropertyIDSet. r=hiro
We use DisplayItemType as the input of HasAnimationsForCompositor, and
nsCSSPropertyIDSet as the input of GetAnimationsForCompositor.

The caller of HasAnimationsForCompositor just wants to check if there is
any compositor animation for a display item, so we can replace it by the
display item, and get the properties from this display item.

However, the caller of GetAnimationsForCompositor may use a subset of
transform-like properties for getting scale factors, or use all the
transform-like properties for sending all transform animations to the
compositor thread.

Depends on D19630

Differential Revision: https://phabricator.services.mozilla.com/D19628

--HG--
extra : moz-landing-system : lando
2019-03-01 21:13:03 +00:00
Masayuki Nakano 72ca6260c0 Bug 1466208 - part 25: Create PresShell::EventHandler::DispatchPrecedingPointerEvent() r=smaug
Now, we can move the block dispatching preceding pointer event to separated
method.  Then, we can hide the complicated retarget process after dispatching
a pointer event from HandleEvent().

Differential Revision: https://phabricator.services.mozilla.com/D21191

--HG--
extra : moz-landing-system : lando
2019-03-01 02:02:31 +00:00
Gurzau Raul a218f01445 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-03-01 15:14:00 +02:00
Gurzau Raul cdf9392948 Merge inbound to mozilla-central. a=merge 2019-03-01 15:01:31 +02:00
Narcis Beleuzu 98480534f6 Backed out changeset 60128088f862 (bug 1531582) for reftest failures on value-prop.html . CLOSED TREE 2019-03-01 07:55:22 +02:00
Emilio Cobos Álvarez 94bec57b28 Bug 1531582 - Don't drop the change hint for ContentStateChanged on the floor. r=heycam
This doesn't matter yet because all the states that return a change hint are on
stylesheets, but will matter with bug 1472637.

Differential Revision: https://phabricator.services.mozilla.com/D21616

--HG--
extra : moz-landing-system : lando
2019-03-01 02:04:12 +00:00
Masayuki Nakano cfd764b949 Bug 1466208 - part 24: Move `overrideClickTarget` into EventTargetData r=smaug
Currently, PresShell::EventHandler::HandleEvent() sets `overrideClickTarget`
only when Pointer Events is enabled and there is pointer capturing content,
and this is computed while dispatching a pointer event.

So, if we move it into EventTargetData, we can move the pointer event
dispatching block into a separated method and caller can receive it with
an EventTargetData instance which is anyway necessary to receive new
target frame after dispatching a pointer event.

Differential Revision: https://phabricator.services.mozilla.com/D21190

--HG--
extra : moz-landing-system : lando
2019-03-01 01:58:02 +00:00
Emilio Cobos Álvarez 5696ae7e4c Bug 1531582 - Don't drop the change hint for ContentStateChanged on the floor. r=heycam
This doesn't matter yet because all the states that return a change hint are on
stylesheets, but will matter with bug 1472637.

Differential Revision: https://phabricator.services.mozilla.com/D21616
2019-03-01 11:16:36 +01:00
Masayuki Nakano 1a1542b28c Bug 1466208 - part 23: Create PresShell::EventHandler::ComputeEventTargetFrameAndPresShellAtEventPoint() r=smaug
We cannot move each block into separated methods while computing EventTargetData
because we need to check capturing contents, etc.  Therefore, only each block
should be moved to separated methods for now.

This moves a block which computes event target from point of the event.  If
this can be moved to EventTargetData, it might be easier to understand, but
its helper method GetFrameToHandleNonTouchEvent() requires to access members
of EventHandler.  Therefore, we need to treat EventTargetData as an out param
of the new method.

Differential Revision: https://phabricator.services.mozilla.com/D21189

--HG--
extra : moz-landing-system : lando
2019-02-27 13:59:30 +00:00
Hiroyuki Ikezoe 163a45f495 Bug 1531173 - Drop nsIContentViewer.scrollToNode. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D21458

--HG--
extra : moz-landing-system : lando
2019-02-28 01:31:47 +00:00
Boris Zbarsky 2e5c884144 Bug 1489308 part 5. Align the work we do on document.open with the spec. r=mccr8,smaug
The main behavior changes are:

1) We no longer create a new Window when doing document.open().  We use the
same Window but remove all the event listeners on it and on the existing DOM
tree before removing the document's existing kids.

2) We no longer create a new session history entry.  The existing one always
gets replaced instead.

3) We now support document.open on documents that are not in a Window.

The reasons for the various test changes are as follows:

The change to browser_modifiedclick_inherit_principal.js is because we no
longer set the docshell to a wyciwyg URL when document.open() happens and the
test was depending on that to terminate.

browser_wyciwyg_urlbarCopying.js is being removed because it's trying to test
wyciwyg URIs, which no longer exist.

The changes in docshell/test/navigation are because document.open() no longer
affects session history.  One of the tests was testing the interactions there
and is being removed; another is being repurposed to just test that
document.open() does not affect history.length.

The change to test_x-frame-options.html is because document.open() now removes
event listeners on the window, which it didn't use to do (and in the specific
case in this test reused the existing inner too, so the listener was still
around in practice).  The new behavior matches other browsers.

The removal of test_bug172261.html is because document.open() no longer affects
session history, so you can't go back across it or forward to the "opened"
state, so the situation that test is trying to test no longer exists.

The changes to test_bug255820.html are because reloading a document after
document.open() will now just load the URL of the document that was the entry
document for the open() call, not reload the written content.  So there's not
much point testing reload behavior, and in this test it was just reloading the
toplevel test file inside the frames.

The change to test_bug346659.html is because now we no longer create a new
Window on document.open().

The change to test_bug1232829.html is because document.open() (implicit in this
test) no longer adds history entries, so the back() was just leaving the test
page instead of going back across the document.open().  The test is a
crashtest in practice, so might still be testing something useful about how
document.open() interacts with animations.

The change to test_bug715739.html is because the URL of the document after
document.open() is now the URL of the entry document, not a wyciwyg URL, so
reload() has different behavior than it used to.

The change to test_bug329869.html is because now when we go back we're
reloading the original document we had, not doing a wyciwyg load, and the
security info now doesn't include the untrusted script.

The changes to the wpt expectations are removing a bunch of expected failures
now that we pass those tests and disabling some tests that are fundamentally
racy and hence fail randomly.  The latter all have github issues filed for the
test problem.

The change to testing/web-platform/tests/common/object-association.js is fixing
tests that were not matching the spec (and were failing in other browsers).

The change to parser-uses-registry-of-owner-document.html is fixing tests that
were not matching the spec (and were failing in other browsers).

The change to document-write.tentative.html is because the test was buggy: it
was using the same iframe element for all its tests and racing loads from some
tests against API calls from other tests, etc.  It's a wonder it ever managed
to pass, independent of these patches (and in fact it doesn't pass according to
wpt.fyi data, even in Firefox).

The changes in html/browsers/history/the-history-interface are because
document.open() no longer adds history entries.  The test was failing in all
other browsers for the same reason.

The changes in html/browsers/history/the-location-interface are because
reloading a document.open()-created thing now loads the URL of the page that
was the entry document for the open() call.  The test was failing in all other
browsers.

The change to reload_document_open_write.html is because we now reload the url
of the document that entered the script that called open() when we reload, not
the written content.  Other browsers were failing this test too; Gecko with
the old document.open implementation was the only one that passed.

The change to http-refresh.py is to fix a test bug: it was not returning a
Content-Type header, so we were putting up helper app dialogs, etc.

The change to test_ext_contentscript.js is because we no create a new global
for document.open() calls.  Kris Maglione OKed this part.

Differential Revision: https://phabricator.services.mozilla.com/D17323

--HG--
extra : moz-landing-system : lando
2019-02-27 23:24:48 +00:00
Ciure Andrei 56434d5988 Backed out 2 changesets (bug 1509466) for rusttests build bustages CLOSED TREE
Backed out changeset 65c438efa01f (bug 1509466)
Backed out changeset e1cdaf345c39 (bug 1509466)
2019-02-28 01:29:15 +02:00
Brian Birtles bcad38978b Bug 1509466 - Make cancelAnimationFrame cancel a pending request frame callback scheduled in the same frame; r=farre
As per the following change to the HTML spec:

  86b05f8a07

when running a requestAnimationFrame callback it should be possible to cancel
another requestAnimationFrame callback scheduled to run in the same frame by
using cancelAnimationFrame.

See issue:

  https://github.com/whatwg/html/issues/4359

Differential Revision: https://phabricator.services.mozilla.com/D20974

--HG--
extra : moz-landing-system : lando
2019-02-27 10:18:48 +00:00
Brian Birtles c2a7b658ea Bug 1509466 - Pass frame request callbacks along with their handles to nsRefreshDriver; r=farre
In the next patch in this series we want to compare the handle of frame
callbacks we are about to run,  with a set of canceled handles stored on the
document. This patch makes us pass the handles along with the callbacks so we
can do that.

Incidentally doing this allows us to just swap array elements when building up
the refresh driver's set of callbacks to run. That is hopefully a little more
efficient than running the implicit conversion operator on each item and then
appending to an array.

Differential Revision: https://phabricator.services.mozilla.com/D20973

--HG--
extra : moz-landing-system : lando
2019-02-27 13:43:23 +00:00
shindli c442603050 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-02-26 18:58:45 +02:00
Emilio Cobos Álvarez b7bb398730 Bug 1516454 - Use rust lengths for border corners. r=boris
The test in https://github.com/web-platform-tests/wpt/pull/15423 hasn't been
synced over yet, but it passes with this patch of course.

Differential Revision: https://phabricator.services.mozilla.com/D20960
2019-02-26 06:01:34 -08:00
Timothy Nikkel 4a54583c19 Bug 1505871. C++ code to get component transfer filter data into webrender. r=jrmuizel
Have to use a pointer/size pair to transfer the value list to rust.

We use a "filter holder" that contains an nsTArray that owns the values.
2019-02-26 00:16:36 -06:00
Timothy Nikkel b2695b4b73 Backed out changeset 2bf33f573505 2019-02-25 22:48:35 -06:00
Timothy Nikkel b9d0354d8a Bug 1505871. C++ code to get component transfer filter data into webrender. r=jrmuizel
Have to use a pointer/size pair to transfer the value list to rust.

We use a "filter holder" that contains an nsTArray that owns the values.
2019-02-25 22:45:15 -06:00
Noemi Erli a50bfca7a3 Backed out 10 changesets (bug 1505871) for wrench bustages CLOSED TREE
Backed out changeset 045ab0ec3613 (bug 1505871)
Backed out changeset 6486435a048d (bug 1505871)
Backed out changeset 9be871042749 (bug 1505871)
Backed out changeset 0007feaf988d (bug 1505871)
Backed out changeset 3cb8fb01e77e (bug 1505871)
Backed out changeset 2fff213d97e3 (bug 1505871)
Backed out changeset 1ad20d485eca (bug 1505871)
Backed out changeset 0fd8742fa662 (bug 1505871)
Backed out changeset 1899600a7985 (bug 1505871)
Backed out changeset f9578d20e54e (bug 1505871)
2019-02-26 03:43:12 +02:00
Timothy Nikkel 17f5b2d751 Bug 1505871. C++ code to get component transfer filter data into webrender. r=jrmuizel
Have to use a pointer/size pair to transfer the value list to rust.

We use a "filter holder" that contains an nsTArray that owns the values.
2019-02-25 19:20:26 -06:00
Matt Woodrow b09e2d7048 Bug 1468021 - Handle anonymous content when comparing using DoCompareTreePosition. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D20596

--HG--
extra : moz-landing-system : lando
2019-02-25 05:22:43 +00:00
Boris Chiou 57e96cc438 Bug 1529422 - Part 3: Make sure the callers of ActivityTracker takes individual transforms into account. r=mstange
Add comments and property check for the caller of ActivityTracker.

Depends on D19525

Differential Revision: https://phabricator.services.mozilla.com/D19632

--HG--
extra : moz-landing-system : lando
2019-02-22 23:36:19 +00:00
Boris Chiou cc43fb306a Bug 1529422 - Part 1: Add all transform-like properties into ActiveLayerTracker. r=hiro,mattwoodrow
Let ActiveLayerTracker track individual transforms. (Will add
motion-path in the future.)

Besides, using a property set for transform and opacity is more efficient,
so let's change it. For background position, we use a different code path,
so we can have more restrictions in IsStyleAnimated.

Differential Revision: https://phabricator.services.mozilla.com/D19631

--HG--
extra : moz-landing-system : lando
2019-02-23 00:21:45 +00:00
Ehsan Akhgari c9d73149e1 Bug 1529619 - Remove a needless null check from nsCSSFrameConstructor::BeginBuildingScrollFrame() which confuses Coverity; r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D20673

--HG--
extra : moz-landing-system : lando
2019-02-21 16:47:45 +00:00
Ting-Yu Lin d373ed0def Bug 1526097 - Remove nsIFrame::eBlockFrame flag. r=dholbert
Only nsBlockFrame and its subclasses recognize the nsIFrame::eBlockFrame
flag, so we can replace the usage of the flag with either
nsIFrame::IsBlockFrameOrSubclass() or a do_QueryFrame().

Differential Revision: https://phabricator.services.mozilla.com/D20542

--HG--
extra : moz-landing-system : lando
2019-02-20 21:18:14 +00:00
Ting-Yu Lin 93d595b35d Bug 1524382 - Flush all out-of-flow frames before destroying the frame list when reframing multicol container. r=dbaron
aFrameList can contain placeholder frames. If we decide to nuke
aFrameList, we need to destroy the out-of-flow frames gracefully.

In this case, out-of-flow frames are still in nsFrameConstructorState's
absolute item lists. To rely on nsPlaceholderFrame::DestroyFrom() to
remove its out-of-flow frame properly, we manually flush all the frame
insertions for all the lists in aState before destroying aFrameList.

Differential Revision: https://phabricator.services.mozilla.com/D19460

--HG--
extra : moz-landing-system : lando
2019-02-19 22:37:24 +00:00
Boris Chiou b332718138 Bug 1505225 - Part 1: Make sure we also check the existence of individual transform animations. r=hiro
nsIFrame::BuildDisplayListForStackingContext() will check the existence
of transform animations, so we need to update
nsLayoutUtils::HasAnimationsOfPoperty(). However, checking only
eCSSProperty_transform is not enough. We have to check all the transform-like
properties. Therefore, we update these functions to accept a property
set as the argument, and pass a collection of transform-like properties
into them.

Differential Revision: https://phabricator.services.mozilla.com/D20412

--HG--
extra : moz-landing-system : lando
2019-02-20 02:14:39 +00:00
Emilio Cobos Álvarez 99549860f7 Bug 1529058 - Use Rust types from transform-origin / perspective-origin. r=mattwoodrow
Depends on D20381

Differential Revision: https://phabricator.services.mozilla.com/D20382

--HG--
extra : moz-landing-system : lando
2019-02-19 20:28:47 +00:00
Emilio Cobos Álvarez a59f4ed1fb Bug 1528914 - Tidy the relationship between the doc shell and the pres context. r=qdot
Make it always forward to the document's docshell. We rely on it being setup by
the time our stuff runs, and we cannot have multiple pres contexts per document
in different docshells anymore.

This allows me to also move some state to the document (about whether it's
currently loaded in a chrome docshell (nsPresContext::mIsChrome) and whether
it's a chrome origin image (nsPresContext::mIsChromeOriginImage), which will
help for bug 1490401 / bug 1418159.

The pres context already relies on having the docshell available on `Init` and
we don't properly handle dynamic changes to it.

The reason I store some state like whether the doc URI is chrome:// and whether
we're in a chrome docshell is not (only) to avoid recomputing it over and over,
but also to allow me to read them from Stylo (main-thread blocked, but poke at
that from multiple non-main-threads).

Differential Revision: https://phabricator.services.mozilla.com/D20301

--HG--
extra : moz-landing-system : lando
2019-02-19 22:53:40 +00:00
Emilio Cobos Álvarez 85e9363f96 Bug 1528451 - Move code that starts image loads to DidSetComputedStyle. r=heycam
This is more consistent with all the other image request code, and handles
pseudo-elements properly without having to add more out-of-band calls to
UpdateStyleOfOwnedChildFrame and such.

Differential Revision: https://phabricator.services.mozilla.com/D20107
2019-02-19 15:00:58 +01:00
Emilio Cobos Álvarez d2cbf071d5 Bug 1528712 - Remove nsFont::featureValueLookup. r=jfkthame
It's a global object, it doesn't have to be stored in nsFont. Pass it from the
caller like the user font set and co.

Depends on D20141

Differential Revision: https://phabricator.services.mozilla.com/D20142
2019-02-19 14:54:04 +01:00
Emilio Cobos Álvarez 8ccb77e27d Bug 1528712 - Remove a couple trivial dependencies on nsPresContext. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D20141
2019-02-19 14:54:01 +01:00
Emilio Cobos Álvarez dad3a20b22 Bug 1525955 - Include anon boxes in CSSPseudoElementType, to remove ComputedStyle::mPseudoTag. r=heycam
This is more consistent with what the Rust bits of the style system do, and
removes a pointer from ComputedStyle which is always nice.

This also aligns the Rust bits with the C++ bits re. not treating xul pseudos as
anonymous boxes. See the comment in nsTreeStyleCache.cpp regarding those.

Can't wait for XUL trees to die.

Depends on D19001

Differential Revision: https://phabricator.services.mozilla.com/D19002

--HG--
extra : moz-landing-system : lando
2019-02-19 13:44:33 +00:00
Ciure Andrei 965d533ca4 Backed out 2 changesets (bug 1528712) for Linux spcshell and reftest failures (test_ext_browserSettings.js, 1022481-1.html) CLOSED TREE
Backed out changeset 2d5c4e71e258 (bug 1528712)
Backed out changeset d981515b874b (bug 1528712)
2019-02-19 14:25:57 +02:00
Emilio Cobos Álvarez f97a9f50a2 Bug 1528712 - Remove nsFont::featureValueLookup. r=jfkthame
It's a global object, it doesn't have to be stored in nsFont. Pass it from the
caller like the user font set and co.

Depends on D20141

Differential Revision: https://phabricator.services.mozilla.com/D20142

--HG--
extra : moz-landing-system : lando
2019-02-18 14:03:47 +00:00
Emilio Cobos Álvarez 522e6c9366 Bug 1528712 - Remove a couple trivial dependencies on nsPresContext. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D20141

--HG--
extra : moz-landing-system : lando
2019-02-19 11:17:28 +00:00
Ciure Andrei bdd1cad961 Backed out changeset d33544f0d8e6 (bug 1528451) for Assertion failure: IsResolved ...nsStyleStruct.h failures CLOSED TREE
--HG--
extra : rebase_source : 7cb6575b90f503100bbe1b5d07a9f072b8f350d4
2019-02-19 12:44:44 +02:00
Emilio Cobos Álvarez 39d3da7fd5 Bug 1528644 - Internal value changes shouldn't change validity state. r=masayuki
Even less so on reframe, where it's just unsound to do so. I had to give a value
to eSetValue_Internal, since otherwise I cannot check for its presence. I can
further special-case the reframe case if you prefer.

Differential Revision: https://phabricator.services.mozilla.com/D20133

--HG--
extra : moz-landing-system : lando
2019-02-19 09:25:55 +00:00
Emilio Cobos Álvarez 6560e5525b Bug 1528451 - Move code that starts image loads to DidSetComputedStyle. r=heycam
This is more consistent with all the other image request code, and handles
pseudo-elements properly without having to add more out-of-band calls to
UpdateStyleOfOwnedChildFrame and such.

Differential Revision: https://phabricator.services.mozilla.com/D20107

--HG--
extra : moz-landing-system : lando
2019-02-19 00:40:10 +00:00
Miko Mynttinen f42dc06545 Bug 1526957 - Part 1: Remove unused mIsAtRootOfPseudoStackingContext from nsDisplayListBuilder and AutoBuildingDisplayList r=mattwoodrow
unused

Differential Revision: https://phabricator.services.mozilla.com/D19857

--HG--
extra : moz-landing-system : lando
2019-02-18 15:32:10 +00:00
Masayuki Nakano ab3745273c Bug 1466208 - part 22: Create PresShell::EventHandler::EventTargetData::ComputeElementFromFrame() r=smaug
This patch moves the block to compute event target of the event using
coordinates into the new method of PresShell::EventHandler::EventTargetData.

Differential Revision: https://phabricator.services.mozilla.com/D19320

--HG--
extra : moz-landing-system : lando
2019-02-18 04:33:06 +00:00
Emilio Cobos Álvarez 4fc1b18570 Bug 1528613 - Downgrade two assertions from release assert for now. r=heycam
These assertions can happen in certain circumstances (see the referenced bug).

These assertions are not security sensitive, but they affect correctness.

They're old (from before my change), so I prefer dealing with them in a public
bug and stop crashing release for now.

Differential Revision: https://phabricator.services.mozilla.com/D20105

--HG--
extra : moz-landing-system : lando
2019-02-18 00:30:17 +00:00
Csoregi Natalia 952908fda0 Merge mozilla-central to mozilla-inbound. CLOSED TREE 2019-02-17 00:14:07 +02:00
Sylvestre Ledru e0c61dafa5 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Summary: # ignore-this-changeset

Reviewers: Ehsan

Reviewed By: Ehsan

Subscribers: emilio, jandem, bbouvier, jya

Bug #: 1519636

Differential Revision: https://phabricator.services.mozilla.com/D20062
2019-02-16 20:20:37 +01:00
Markus Stange d8f5613d1e Bug 1500692 - Add LAYOUT subcategories. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D11341

--HG--
extra : moz-landing-system : lando
2019-02-16 17:38:35 +00:00
Markus Stange ad3f9a53de Bug 1500692 - Add GRAPHICS subcategories. r=njn,mattwoodrow
r?njn only because this is the first example that adds any actual subcategories.

Differential Revision: https://phabricator.services.mozilla.com/D11340

--HG--
extra : moz-landing-system : lando
2019-02-16 17:38:23 +00:00
Markus Stange 0b151b8c2b Bug 1500692 - Centralize profiling category definition and add infrastructure for subcategories. r=njn
The actual subcategories will be added in later patches, so that there are no
unused categories.

Differential Revision: https://phabricator.services.mozilla.com/D11334

--HG--
extra : moz-landing-system : lando
2019-02-16 17:37:43 +00:00
Botond Ballo 3d1382e6b4 Bug 1526486 - Build an async zoom container for event delivery as well. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D19219

--HG--
extra : moz-landing-system : lando
2019-02-16 00:51:40 +00:00
Edgar Chen 408cdd3a53 Bug 1323400 - Part 2: Filter out duplicated touchmove for pointer event; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D19804

--HG--
extra : moz-landing-system : lando
2019-02-15 22:04:13 +00:00
Edgar Chen 0518b15392 Bug 1323400 - Part 1: Mark Touch::Equals as a const method; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D18232

--HG--
extra : moz-landing-system : lando
2019-02-15 16:28:35 +00:00
Emilio Cobos Álvarez 7365804cf7 Bug 1525509 - Add release asserts. r=dholbert
Just for my sanity. I think the other scroll observer is sane after a quick
look, but this will ensure we don't ship security issues.

Differential Revision: https://phabricator.services.mozilla.com/D19725

--HG--
extra : moz-landing-system : lando
2019-02-15 06:29:55 +00:00
Boris Zbarsky 1d1e39ab16 Remove no longer relevant comment. No bug. r=emilio
The primary frame hashtable is long gone; we have a pointer on the node now.

Differential Revision: https://phabricator.services.mozilla.com/D19952

--HG--
extra : moz-landing-system : lando
2019-02-15 19:01:11 +00:00
Cosmin Sabou 8cb8ef3973 Merge mozilla-central to autoland. 2019-02-15 20:50:34 +02:00
Cosmin Sabou a4b19fcd61 Merge mozilla-inbound to mozilla-central. a=merge
--HG--
rename : browser/components/nsBrowserContentHandler.js => browser/components/BrowserContentHandler.jsm
2019-02-15 20:39:45 +02:00
Masayuki Nakano 00e1cae15d Bug 1466208 - part 21: Clean up PresShell::EventHandler::EventTargetData::MaybeRetargetToActiveDocument() with early-return style r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D19319

--HG--
extra : moz-landing-system : lando
2019-02-15 02:08:37 +00:00
Brian Birtles 78671d57b6 Bug 1524480 - Set NS_FRAME_MAY_BE_TRANSFORMED bit when we have nsChangeHint_UpdateTransformLayer; r=hiro
Typically we set the NS_FRAME_MAY_BE_TRANSFORMED bit on a frame when one of the
following situations arises:

a. We update the keyframes of a KeyframeEffect to include transforms or we
   create a new KeyframeEffect that animates transforms (in
   KeyframeEffect::SetKeyframes), or
b. We retarget a KeyframeEffect with transforms at a new element (in
   KeyframeEffect::SetTarget), or
c. We create an nsFrame with transform animations applied to it (in
   nsFrame::Init), or
d. We get a nsChangeHint_AddOrRemoveTransform hint in
   RestyleManager::ProcessRestyledFrames and decide to update the frame bit on
   the frame and its continuations accordingly.

However, there are some situations where we can have a transform animation on
a frame where none of the above are triggered.

For example, if the style frame is not unavailable (e.g.  a display:none
element) when the KeyframeEffect is initialized we will fail to the frame bit in
(a) and if we never retarget the effect we will never set reach (b).

Furthermore, if we have an animation that is "not relevant" (e.g.  idle) and
hence not registered with the EffectSet when the frame is initialized we will
fail to set the frame bit in (c).

Finally, if the the animation does not produce a style change that causes the
nsChangeHint_AddOrRemoveTransform bit to be set (e.g. the transform animation
begins at 'none') we will not set the frame bit in (d).

As a result, we can end up failing to set the NS_FRAME_MAY_BE_TRANSFORMED bit
for some content.

The crashtest included in this patch produces such a case and, without the code
changes in this patch, will fail the assertion in ApplyRenderingChangeToTree[1]:

  NS_ASSERTION(!(aChange & nsChangeHint_UpdateTransformLayer) ||
                   aFrame->IsTransformed() ||
                   aFrame->StyleDisplay()->HasTransformStyle(),
               "Unexpected UpdateTransformLayer hint");

That is because although the nsChangeHint_UpdateTransformLayer bit will be set,
aFrame->IsTransformed() will return false because the frame bit has not been
set, and aFrame->StyleDisplay()->HasTransformStyle() will return false because
the animation sets the transform to 'none'.

Not only will this assertion fail, but once we cease flushing style as part of
triggering an animation later in this patch, the reftest
layout/reftests/web-animations/stacking-context-transform-changing-effect.html
will begin to fail. That reftest produces a similar situation to the crashtest
but it currently does not fail because the style flush that happens as part of
creating an animation ensures the style frame is available at the point when the
animation is triggered and hence case (a) from above is hit.

This patch addresses this by detecting the case where we have this change hint
set but not the corresponding frame bit, and setting the frame bit.

[1] https://searchfox.org/mozilla-central/rev/9eb30227b21e0aa40d51d9f9b08bb0b113c5fadb/layout/base/RestyleManager.cpp#1191-1199

Differential Revision: https://phabricator.services.mozilla.com/D18911

--HG--
extra : moz-landing-system : lando
2019-02-15 06:35:55 +00:00
Sylvestre Ledru 41d1d79094 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D19663

--HG--
extra : moz-landing-system : lando
2019-02-15 08:15:57 +00:00
Masayuki Nakano cdf451cbdd Bug 1466208 - part 20: Create PresShell::EventHandler::EventTargetData::MaybeRetargetToActiveDocument() r=smaug
Now, we can create methods to update event target into EventTargetData().
This moves a block in PresShell::EventHandler::HandleEvent() to retarget
to active document into the new method.

Differential Revision: https://phabricator.services.mozilla.com/D19318

--HG--
extra : moz-landing-system : lando
2019-02-15 02:06:31 +00:00
Emilio Cobos Álvarez f30b7747dd Bug 1528098 - Remove content-select code. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D19869

--HG--
extra : moz-landing-system : lando
2019-02-15 01:51:33 +00:00
Ting-Yu Lin 8c62035164 Bug 1527519 Part 3 - Replace remaining nsLayoutUtils::GetAsBlock() with do_QueryFrame(), and delete nsLayoutUtils::GetAsBlock(). r=mats
Depends on D19861

Differential Revision: https://phabricator.services.mozilla.com/D19863

--HG--
extra : moz-landing-system : lando
2019-02-15 01:38:05 +00:00
Ting-Yu Lin 6694012956 Bug 1527519 Part 2 - Replace some nsLayoutUtils::GetAsBlock() with nsIFrame::IsBlockFrameOrSubclass(). r=mats
Depends on D19860

Differential Revision: https://phabricator.services.mozilla.com/D19861

--HG--
extra : moz-landing-system : lando
2019-02-15 01:38:04 +00:00
Ryan Hunt fc7e92ad83 Bug 1520363 - Rename nsIScrollableFrame::GetAnchor() to Anchor(). r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D19872

--HG--
extra : moz-landing-system : lando
2019-02-15 01:25:55 +00:00
Razvan Maries 2fb9019d41 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2019-02-15 11:59:08 +02:00
Emilio Cobos Álvarez 95454d416b Bug 1527438 - Use Rust types for Position. r=jwatt
This one should be much easier to review / much more pleasant to see :-)

Differential Revision: https://phabricator.services.mozilla.com/D19563
2019-02-15 04:05:32 +01:00
Emilio Cobos Álvarez e9ae3b0907 Bug 1527410 - Use Rust sizes for flex-basis, width, height, and their min/max properties. r=jwatt
Really sorry for the size of the patch :(

Only intentional behavior change is in the uses of HasLengthAndPercentage(),
where it's easier to do the right thing. The checks that used to check for
(IsCalcUnit() && CalcHasPercentage()) are wrong since bug 957915.

Differential Revision: https://phabricator.services.mozilla.com/D19553
2019-02-15 03:59:31 +01:00
Daniel Varga 1e9aa9e1fc Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE
--HG--
rename : browser/components/nsBrowserContentHandler.js => browser/components/BrowserContentHandler.jsm
2019-02-15 03:51:05 +02:00
Mike Hommey ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

Differential Revision: https://phabricator.services.mozilla.com/D19615

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Emilio Cobos Álvarez 323b5be77a Bug 1526294 - Should not need a pres context to get a system font. r=jfkthame
The only caller wants CSS pixels, no need to go back and forth.

This is the last dependency on the pres context, I think, from the style system
font code.

Differential Revision: https://phabricator.services.mozilla.com/D19147
2019-02-15 01:35:13 +01:00