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

62879 Коммитов

Автор SHA1 Сообщение Дата
Sebastian Hengst 1761ef65c7 merge mozilla-central to mozilla-inbound. CLOSED TREE 2018-02-28 20:19:28 +02:00
Florian Quèze f3ee8dd20b Bug 1433175 - more aggressive scripted patch to replace remaining Components.classes, Components.interfaces, Components.utils and Components.results uses with Cc, Ci, Cu and Cr, r=Mossop. 2018-02-28 18:51:35 +01:00
Florian Quèze c546946f86 Bug 1433175 - remove by hands some variations of Cc,Ci,Cu definitions, r=Standard8. 2018-02-28 18:51:34 +01:00
Florian Quèze 6df7549a3e Bug 1433175 - semi-automated indent fix, r=Mossop. 2018-02-28 18:51:34 +01:00
Florian Quèze c714053d73 Bug 1433175 - scripted patch to replace Components.classes[, Components.interfaces.nsI, Components.utils. and Components.results. with Cc, Ci, Cu and Cr, r=Mossop. 2018-02-28 18:51:33 +01:00
Sebastian Hengst 1ded4e973b merge mozilla-central to mozilla-inbound 2018-02-28 12:58:05 +02:00
Sebastian Hengst 769222fadf merge mozilla-inbound to mozilla-central. a=merge
--HG--
rename : browser/base/content/tabbrowser.xml => browser/base/content/tabbrowser.js
2018-02-28 12:54:12 +02:00
Nicholas Nethercote f76d17db0f Bug 529808 - Remove the static atom table. r=froydnj
Various atom-related things have improved recently.

- The main atom table is now threadsafe (bug 1275755) and so can be accessed on
  any thread. It has also been split into pieces (bug 1440824), which greatly
  reduces lock contention.

- A cache has been added to the HTML5 parser (bug 1352874) that removes the
  need for most of the full table lookups.

As a result, there is no point having a separate static atom table. This patch
removes it.

MozReview-Commit-ID: 8ou1BrnPAwd

--HG--
extra : rebase_source : 0c6ab073b1a20b703705582d28731a68456741e1
2018-02-28 07:34:12 +11:00
Mats Palmgren 4689c2b9ad Bug 1440962 - Fix '-webkit-fill' typo in tests. r=me 2018-02-28 03:56:14 +01:00
Mats Palmgren 1d7d56824c Bug 1427608 - [css-grid] Adjust test expectations. r=dholbert 2018-02-28 03:56:14 +01:00
Mats Palmgren e06a462e0f Bug 1427608 - [css-grid] Fix span=1 'auto' min-sizing for intrinsic sizing. r=dholbert
When sizing the container under a min- or max-content constraint,
the item's min/max-content contribution needs to be clamped (when
Automatic Minimum Size / clamping applies) if its size is 'auto'.
That'll give the container the right intrinsic size. In Reflow,
we'll size the track initially to the clamped min-content
contribution again (in the Resolve Intrinsic Track Sizes step),
but since the container now has a definite size we'll grow
the track in the Maximize Tracks step up to its limit
(i.e. the clamp size).

For more details on the underlying issue, see:
https://github.com/w3c/csswg-drafts/issues/2303
2018-02-28 03:56:13 +01:00
Emilio Cobos Álvarez f3344c9f7b Bug 1425759: Update test expectations. r=smaug,xidorn
This is enough to get the stylo-enabled build green.

There's still some orange in WPT with stylo disabled (due to interfaces not
exposed and that) that I'll update tomorrow.

Will send a different patch on top of this for that, though I'll land together.

MozReview-Commit-ID: CsN5CM93RUz
2018-02-27 12:39:58 +01:00
Emilio Cobos Álvarez 6c417367d6 Bug 1425759: Make Shadow DOM not use XBL anymore. r=smaug,xidorn
More improvements to come. In particular, this still iterates through Shadow DOM
in each_xbl_cascade_data, but that should be changed later. That allows to
cleanup a bunch of stuff and finally fix Shadow DOM cascade order.

We still rely on the binding parent to be setup properly in the shadow tree, but
that requirement can go away later (we can walk the containing shadow chain
instead).

This mostly focuses on removing the XBL binding from the Shadow host.

It'd be nice to do EnumerateShadowRoots faster. I think that should also be a
followup, if needed.

MozReview-Commit-ID: Jf2iGvLC5de
2018-02-27 12:39:35 +01:00
Emilio Cobos Álvarez ac779f9004 Bug 1439395: Avoid leaving an stale restyle root if there's no servo data on it. r=bholley
If a single element is inserted in the document, from the lazy frame
construction path we mark it as the restyle root.

It has no restyle data, and we weren't calling ClearServoData when its parent
was being removed from ClearServoDataFromSubtree, thus leaving the stale restyle
root.

MozReview-Commit-ID: GY812b8tDk0

--HG--
extra : rebase_source : e6d1035e7d3a72b931aa53ac8dcbf7db58982479
2018-02-26 18:50:19 +01:00
Emilio Cobos Álvarez f3fc2e4852 Bug 1439395: Clear Servo data only when the DOM is in a consistent state. r=bholley
We used to do it this way effectively until I fixed it in bug 1400936.

Per the list of fuzz bugs that bug has in the "Depends on" field, some of those
without a super-clear fix, and others that aren't listed in there, and all the
complexity we had to deal with while receiving restyle requests mid-unbind, etc,
I think this is the right call.

This clears data on RestyleManager::ContentRemoved for non-anonymous nodes, and
on UnbindFromTree for subtrees rooted at anonymous nodes.

This will hopefully yield enforceable invariants.

MozReview-Commit-ID: IMwX5Uh1apv

--HG--
extra : rebase_source : 6cafc4499c9b80cbc96f1c4d1496e524f59e3c4d
2018-02-19 14:46:38 +01:00
Eitan Isaacson f24dd705f9 Bug 1431466 - expose colormatrix in docshell. r=kats
--HG--
extra : rebase_source : e007cdaf28e4e67a2760c1e8105312cec94bf16a
2018-02-27 13:00:00 +02:00
Brian Grinstead ae62dc9519 Bug 1431522 - Remove the 'thumb' binding;r=enndeakin+6102+6102
MozReview-Commit-ID: JioZr8WAuPw

--HG--
extra : rebase_source : ceb229c1c19713462a617127cd9a32924775b146
2018-01-19 08:08:49 -08:00
Emilio Cobos Álvarez 9f26540cc4 Bug 1441547: Make character data change notifications use a const reference for the info parameter. r=smaug
It's not intended to be mutated.

MozReview-Commit-ID: 5nkD1YkidlV

--HG--
extra : rebase_source : 810d429208fa3eaf30e220e77a7d27107cb77346
2018-02-27 15:30:27 +01:00
Valentin Gosu 4c1c2d2005 Bug 1433958 - Change code that sets nsIURI.ref to use nsIURIMutator r=mayhemer
MozReview-Commit-ID: 4caicZFBkcQ

--HG--
extra : rebase_source : fe32f156392a9e0ce69fa6030278eaca43a69482
2018-02-26 20:43:46 +01:00
Emilio Cobos Álvarez 3d6d2d9586 Bug 1440682: Make the XUL tooltip stuff saner. r=enn
We never removed the event listeners (the code was there, lol, but the function
that was supposed to call into the tooltip listener returned
NS_ERROR_NOT_IMPLEMENTED instead).

Furthermore, we added an event listener each time we reframed an element, which
is insane. Basically, each time an element with tooltip / tooltiptext gets its
frame tree reconstructed, we add the even listener, again, and we never free it.

Xidorn pointed out that this is not such a huge deal because we deduplicate
event listeners per spec, but still...

Move the code from the RestyleManager and the frame constructor to AfterSetAttr
/ BindToTree / UnbindFromTree in nsXULElement to hopefully make this saner.

MozReview-Commit-ID: 6BQbIQJ87qt
2018-02-26 15:44:48 +01:00
Andrew Halberstadt ec94dfd4df Bug 1353461 - Increase fuzzy-if for layout/reftests/svg/foreignObject-form-theme.svg with webrender, r=jmaher
This test already has a fuzzy-if annotation with webrender, but when run-by-manifest
is enabled, the fuzz increases. The fix will be tracked in bug 1439980.


MozReview-Commit-ID: 14xidhwXCue

--HG--
extra : rebase_source : cc16f16421478189dc367a739c84e5894c58366c
2018-02-23 15:50:47 -05:00
Andrew Halberstadt 608b69a9a4 Bug 1353461 - [reftest] Implement run-by-manifest for reftest, r=jmaher
Run-by-manifest is a mode where we restart Firefox between every manifest of
tests. It sacrifices a little bit of runtime for better test isolation and
improved stability.

This turns run-by-manifest on for all platforms except Android. It also skips
jsreftests and crashtests for now (mostly to limit the scope of what was
landing all at once). Follow-ups will be filed to get it turned on in those
places.

MozReview-Commit-ID: DmvozAIPE5Q

--HG--
extra : rebase_source : 67470894a7aa0b3189380a4874495395401909bb
2018-02-08 16:16:34 -05:00
Andrew Halberstadt 463bd10a62 Bug 1353461 - [reftest] remove the start-after-crash feature, r=jmaher
The point of start-after-crash was to resume running tests after a crash so we
don't miss out on test coverage when a crash happens. Now that we're close to
landing run-by-manifest, this feature is as necessary since only tests that
appear later in the same manifest as the crashing test will be skipped.

Another reason to remove it, is that it's current implementation is buggy. It
assumes tests have a unique ID (they don't), which means we could accidentally
get into an infinite loop if the wrong test happens to crash at the wrong time.

A third reason to remove it is that it adds a lot of complexity to the harness.
Especially now with run-by-manifest, supporting both would require handling a
lot of different edge cases and make things much more complicated than the
already are.

All that being said, it would still provide value. Not only would it allow us
to resume tests in the same manifest, but run-by-manifest isn't yet enabled on
Android, jsreftest or crashtest (though we hope to get it enabled in those
places in the future). So it may be worth re-implementing start-after-crash
again based on the new manifest parsing mechanism that run-by-manifest uses. It
should be possible to implement it a lot more cleanly now. This work will have
to be left to a follow-up.

MozReview-Commit-ID: P2hh5VecKW

--HG--
extra : rebase_source : 809d5103b8d513c709aa950b102d3efee28fb205
2018-02-05 14:24:49 -05:00
Andrew Halberstadt adbe589f59 Bug 1353461 - [manifestparser] Implement a chunk_by_manifest algorithm, r=jmaher
This implements a chunk_by_manifest algorithm. It is similar to chunk_by_slice
in that it tries to make an even number of tests run in each chunk. However,
unlike chunk_by_slice it will guarantee that tests in the same manifest will
all run in the same chunk. This makes it suitable to use with run-by-manifest.

This means the chunks won't be perfect (as manifests are differnet sizes). It
is also prone to more randomization, similar to chunk-by-runtime.

In fact, this algorithm is nearly identical to the chunk-by-runtime one, so it
was refactored out to a base class.

MozReview-Commit-ID: HI2ByxW0i8V

--HG--
extra : rebase_source : e066c034b85222d26bafe6873a80366d5bd9df9e
2018-02-13 15:16:37 -05:00
Brindusan Cristian b545ca7f57 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-02-26 11:51:27 +02:00
Cosmin Sabou 6e2787f9c5 Merge inbound to mozilla-central. a=merge 2018-02-26 11:47:29 +02:00
Sebastian Hengst fd38b477e1 Backed out changeset d8d5e1376664 (bug 1426797) because it doesn't fail anymore on Windows 2018-02-26 01:38:10 +02:00
Sebastian Hengst 1fb0bc492f Backed out changeset ba4ac537f9a4 (bug 1428087) because the assertion didn't reproduce anymore 2018-02-26 01:35:54 +02:00
Adrian Wielgosik de1e0827c0 Bug 1440441 - Remove nsIDOMFormData. r=kmag,qdot
MozReview-Commit-ID: 9Y8YQBqbSnM

--HG--
extra : rebase_source : 205a3341771d99cb252516f0ffffd107e1c82e5d
2018-02-22 20:42:12 +01:00
Ting-Yu Lin 4415223066 Bug 1432017 - Remove AccessibleCaretEventHub::PostScrollState. r=mats
In the era of B2G, we wanted to hide the carets during scrolling, and
PostScrollState was designed to avoid carets flicking during momentum
scrolling.

These days, we no longer hide carets during scrolling, so PostScrollState
can be removed to make the code simpler and easier to maintain.

MozReview-Commit-ID: Bf6ZgYVlt1q

--HG--
extra : rebase_source : 272bf91b8acaae6d81a3291b6ad85703ff2696dc
2018-02-23 22:05:49 +08:00
Andreea Pavel 1aac7df383 Backed out 3 changesets (bug 1434376)for failing browser chrome at browser/base/content/test/performance/browser_urlbar_search_reflows.js on a CLOSED TREE
Backed out changeset b636251b75ab (bug 1434376)
Backed out changeset fccbba9cb959 (bug 1434376)
Backed out changeset b5128504011c (bug 1434376)
2018-02-25 12:44:28 +02:00
Zhang Junzhi 3492fb331e Bug 1438794 - Makes single-line text controls in vertical-writing mode vertically scrollable if they overflow vertically; and makes them horizontally unscrollable no matter whether they overflow horizontally. r=kats
As for now, the scrollable direction with a mouse wheel for a single-line text
control is hard-coded; that is, only horizontal wheel scrolls are able to take
effect while vertical ones aren't. However, this isn't the desired case for
vertical writing mode, where the opposite case definitely suits better.

This commit refines the hard-coded scrollable direction for a single-line text
control to be writing-mode-adaptive.

MozReview-Commit-ID: 4Zkoe2ExPCZ

--HG--
extra : rebase_source : 113b2ea80b6bbbcd2d8379b438de97eedd616551
2018-02-23 02:40:44 +08:00
Xidorn Quan d6a3786a64 Bug 1440221 - Track stale computed values and style structs held by undisplayed maps in memory report. r=emilio,njn
MozReview-Commit-ID: 8eXowQvUjyi

--HG--
extra : rebase_source : cb5ba6598e90d9600983aad7f1fff4ff361e8af7
2018-02-22 23:19:50 +11:00
Mike Conley a7df06446a Bug 1434376 - Introduce ChromeOnly window.promiseDocumentFlushed to detect when refresh driver ticks have completed. r=bz
This is particularly useful for knowing when it's safe to query for style and
layout information for a window without causing a synchronous style or layout
flush.

Note that promiseDocumentFlushed was chosen over promiseDidRefresh or promiseRefreshed
to avoid potential confusion with the actual network-level refresh of browsers or
documents.

MozReview-Commit-ID: Am3G9yvSgdN

--HG--
extra : rebase_source : 20bdd2d6f624767d919d95a6601fc1c890aadf10
2018-02-11 20:14:49 -05:00
Emilio Cobos Álvarez 3eb90874c6 Bug 1432490: followup: Fix mac-only bustage on a CLOSED TREE. r=me
MozReview-Commit-ID: TNquyPQhkL
2018-02-25 02:44:18 +01:00
Emilio Cobos Álvarez 7dffe29d8f Bug 1432490: Make nsComputedDOMStyle::GetStyleContext / GetStyleContextNoFlush not take a presShell. r=bz
Everyone calls them with the shell of the current composed document, and this
allows the multi-presShell stuff to just be in UpdateCurrentStyleSources /
DoGetStyleContextNoFlush.

The only reason we need to use OwnerDoc()->GetShell() instead of the composed
doc in GetStyleContext / GetStyleContextNoFlush is Element::GetBindingURL, which
does expect to get the binding URL for stuff outside of the composed doc (and
changing that gave me a useless browser).

That's technically a behavior change on the cases that used to pass nullptr, but
I think all callers are fine with that. I could also just add a special function
for that particular case, it may be worth it.

MozReview-Commit-ID: 2XlnkgdgDCK
2018-02-25 02:23:59 +01:00
Mike Conley 24b3c1ade3 Bug 1434376 - Introduce ChromeOnly window.promiseDocumentFlushed to detect when refresh driver ticks have completed. r=bz
This is particularly useful for knowing when it's safe to query for style and
layout information for a window without causing a synchronous style or layout
flush.

Note that promiseDocumentFlushed was chosen over promiseDidRefresh or promiseRefreshed
to avoid potential confusion with the actual network-level refresh of browsers or
documents.

MozReview-Commit-ID: Am3G9yvSgdN

--HG--
extra : rebase_source : 20bdd2d6f624767d919d95a6601fc1c890aadf10
2018-02-11 20:14:49 -05:00
Emilio Cobos Álvarez 19c880a480 Bug 1438467: Don't reconstruct the parent when tearing down display: contents nodes with pseudo-elements. r=mats,bz
We just need to use the existing StyleChildrenIterator which iterates over them.

We need to be a bit careful though, since ::before and ::after are owned by
their own frame, and thus could be unbound from the tree or even dead after
removing the frame.

Hopefully the only access to the node being removed is unnecessary (anon roots
don't have siblings anyway).

There's also the weird thing of the thing we're iterating changing under the
hood. It works fine for this case, but maybe it would be better to handle them
explicitly like:

  if (Element* before = nsLayoutUtils::GetBeforePseudo(aChild)) {
    bool didReconstruct = ContentRemoved(aChild, ...);
    if (didReconstruct) {
      return true;
    }
    MOZ_ASSERT(!nsLayoutUtils::GetBeforePseudo(aChild));
  }

  // Same for ::after.

  StyleChildrenIterator iter(aChild);
  for (..) {
    // Do the rest of the kids, which can't get unbound.
  }

That'd repeat a bunch of code, so not a fan neither... I pointed this out more
explicitly in a comment instead.

MozReview-Commit-ID: HBsjLH01Db3
2018-02-25 02:06:05 +01:00
arthur.iakab fc6411f333 Merge mozilla-central to autoland 2018-02-24 23:56:46 +02:00
Botond Ballo 9bafb4c0f9 Bug 1440112 - Support CompositorHitTestInfo::eRequiresTargetConfirmation with EventRegions-based hit testing. r=kats
This is only hooked up for the codepath where the event regions are built
from nsDisplayCompositorHitTestInfo display items, not for when they're
build from nsDisplayLayerEventRegions display items.

--HG--
extra : rebase_source : 4f6fedcd9522362e2e62678428987180399bb796
2018-02-23 17:37:55 -05:00
Sebastian Hengst 7be9fed7d0 merge mozilla-inbound to mozilla-central. a=merge 2018-02-24 02:58:35 +02:00
Florian Quèze 682b1ec3b2 Bug 1440284 - change this.EXPORTED_SYMBOLS back to var EXPORTED_SYMBOLS in JS modules, r=mccr8. 2018-02-23 20:50:01 +01:00
Cosmin Sabou 43c66219ab Backed out 3 changesets (bug 1434376) for build bustages on SystemTimeConverter.h(177)
Backed out changeset 2ed5aefc5bc2 (bug 1434376)
Backed out changeset 1b474fb6d798 (bug 1434376)
Backed out changeset 4e6a21e50be0 (bug 1434376)
2018-02-23 23:17:42 +02:00
Emilio Cobos Álvarez 098eb77437 Bug 1439036: Stop passing bogus next sibling values into restyling / frame construction. r=bz
I think this is a regression from https://hg.mozilla.org/mozilla-central/rev/4a8294c6b8e33ba08ef767bede8deeb28234b5b8.

Before that, the only caller with NAC used to pass -1 as an index, which means
we didn't get a node back.

MozReview-Commit-ID: 7HYPaa2V3OB

--HG--
extra : rebase_source : 3f836c0de95159a4a5ece85dee1a8a26dfb2ba1f
2018-02-17 01:25:05 +01:00
Mike Conley 767455c35f Bug 1434376 - Introduce ChromeOnly window.promiseDocumentFlushed to detect when refresh driver ticks have completed. r=bz
This is particularly useful for knowing when it's safe to query for style and
layout information for a window without causing a synchronous style or layout
flush.

Note that promiseDocumentFlushed was chosen over promiseDidRefresh or promiseRefreshed
to avoid potential confusion with the actual network-level refresh of browsers or
documents.

MozReview-Commit-ID: Am3G9yvSgdN

--HG--
extra : rebase_source : 5e502d5d077dd764ca1a43e7c3f06855858fe735
2018-02-11 20:14:49 -05:00
Emilio Cobos Álvarez b26f7c3694 Bug 1440258: Flag doc level anonymous content instead of guessing. r=bholley
Poking at the frame tree has problems: If we poke in negative (using
eSkipNativeAnonymousContent), as we were doing, we mess up the case where we're
actually _not_ doc-level, and _not_ ::before or ::after. This can't happen for
content documents, but can happen for chrome (since nsDocElementBoxFrame
implements nsIAnonymousContentCreator).

If we poke in positive, as we used to, you get that right, but mess up the
root scrollbar case.

Instead, use a node property to mark doc level anon content. This is a case rare
enough that it seems worth to not steal a node bit.

To recap the failure:

 * The initial value of -moz-control-character-visiblity is different on beta
   and nightly.

 * XUL has a global rule setting -moz-control-character-visibility on the root,
   to a value so that it's the initial one on nightly, but the non-initial one
   on beta.

 * Changes to this property cause a reframe.

 * Reframes of a nsIAnonymousContentCreator anon content reframe the container.

 * We were failing to inherit correctly for the nsIAnonymousContentCreator
   content for the root XUL element on the initial styling, inheriting from the
   default computed values instead, since we failed to reach the root element's
   primary frame from GetFlattenedTreeParentForDocumentElementNAC ->
   AppendDocumentLevelNativeAnonymousContentTo, since the primary frame is set
   _after_ processing children.

   This seems somewhat risky to change, and inconsistent with any other stuff
   the frame constructor does, see bug 973390.

 * Given that, the next restyle of the root element, in this case caused due to
   the customizable UI, we _found_ the actual correct parent, recomputed the
   style, saw that -moz-control-character-visiblity had changed, and reframed.
   But we were reframing the whole window, not just the NAC, because of the
   fourth bullet point. Reframing the whole window caused us to lose the popup
   state (that's bug 1440506).

   Worse than that is the fact that given we reframe and reconstruct the
   anonymous countent again, we go back to the initial bogus state, just
   awaiting for the next restyle to reframe the whole window.

I wish there was a bullet-proof way to test it that isn't just counting reframes
and relying on which properties reframe or not, but due to the nature of
nsIAnonymousContentCreator's NAC, it's not possible in any easy way I can think
of.

MozReview-Commit-ID: IPYB5trsN8R
2018-02-23 20:31:52 +01:00
Coroiu Cristina 30b07a253a Merge mozilla-central to autoland a=merge on a CLOSED TREE 2018-02-23 20:05:10 +02:00
Coroiu Cristina 88e89261ea Merge inbound to mozilla-central a=merge 2018-02-23 19:44:19 +02:00
shindli b4de1c12ce Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-02-23 11:46:58 +02:00
Jonathan Kew 2c5f2dc22f Bug 1439937 - For font-matching reftests that test localized names, force the font-name loader to run eagerly so that we aren't dependent on how long the browser has been running. r=jrmuizel 2018-02-23 09:43:32 +00:00