These can be run with:
./mach gtest Stylo.*
Note that running `./mach build` is required after modifying example.css
MozReview-Commit-ID: 8KvhYHgGLfD
--HG--
extra : rebase_source : 30adcc530e2e527b575868d5ff9fdf8cbbf59345
This patch:
- does s/var/let/ to upgrade to modern JS best-practices.
- Wraps some lines that are too long.
- Changes loops to "for (let foo of [...])" rather than foreach+function-pointer.
- Changes some copypasted cleanup code to use a loop instead (which will be especially useful in a forthcoming version of this test that'll add another thing to clean up).
MozReview-Commit-ID: DWK8jFbfqeB
This patch is just flipping some logic in a way that should produce the same
outcome, so it shouldn't affect behavior.
MozReview-Commit-ID: LM4HbJD3D9w
This patch shouldn't change our layout order or paint order for flex items
(though it will change our behavior for the better when an abspos child is
present, as discussed in bug 1345873).
This patch *will* change the tab-index behavior of flex items. Previously, the
default tab order would match the visual order (i.e. it would respect "order"),
because it depends on the frame tree, and we sorted the frame tree by
"order". Now, the tab-index will come from the DOM order (the unmodified frame
tree), as the spec requires.
MozReview-Commit-ID: 9OsqQX1sEn3
This patch just adds an optional codepath that isn't taken yet, so it shouldn't
affect our behavior. (The next patch in the series will make use of this new
codepath.)
Note: the large code-comment that this patch adds is taken mostly-verbatim from
some nsFlexContainerFrame.cpp code. (The original copy will be removed by the
next patch in this series, when we switch to take advantage of this new
mechanism.)
MozReview-Commit-ID: 9pkJ346rrXg
Connect the Servo types and functions for working with @page rules to Gecko.
This also adjusts the Stylo test expectations to match the current state with
@page support.
MozReview-Commit-ID: 513d05m51wK
--HG--
extra : rebase_source : aa92dc1ad4b3949418759b3893a918663ec6ee0c
Adds `ServoPageRule` for use as the CSSOM representation of @page rules parsed
by Servo.
MozReview-Commit-ID: 7AIErJmoZN
--HG--
extra : rebase_source : f47448b9053e6a49023799631ca1d36f058272f4
Extract a `CSSPageRule` base class from the existing Gecko `nsCSSPageRule`
class. This will be used in the next commit as the parent of a new
`ServoPageRule` for the Servo variant.
MozReview-Commit-ID: 1F3FWfVKH29
--HG--
extra : rebase_source : 5186cf2e233f3a757676a0127752faa8cc748cd4
test_page_parser.html tried to check parser behavior with a property that's not
allowed in an @page context, such as `position: absolute`. However, the test
forgot to apply the @page wrapper for this rule, so we weren't checking the
intended case after all.
MozReview-Commit-ID: LSd3aLwZAST
--HG--
extra : rebase_source : f841fcd1ae7e37eaa928e39e116cd9a6a5385f85
The debug code calls nsStyleContext::GetParent(), which is invalid in stylo.
Let's skip it.
MozReview-Commit-ID: 5opMaSuyoNr
--HG--
extra : rebase_source : e316b5d45ebe634a63ef0e44ed0b7183551551d4
They have generic names, and are potentially conflicting with
in-tree headers with the same name (which is true for at least port.h).
There aren't enough users of brotli to want to avoid LOCAL_INCLUDES
in the directories that use it.
--HG--
extra : rebase_source : 82531ac5961ad80e1b3d0c1484a2f146be194411
This patch does the following in addition to a simple move:
* change the type of the pointers from RefPtr to nsCOMPtr
* move it from mozilla::css namespace to mozilla
MozReview-Commit-ID: 72MYq6kWm4s
--HG--
extra : rebase_source : 400fe0d7cc422f22592c302cfd4e457830b77e3e
This only has overhead if the profiler is running, but it means that it has
the potential to skew restyle times in profiles.
We haven't measured the overhead of this, but it's probably non-zero, and at
the moment our profiling efforts are more focused on getting accurate times
than on getting useful information about restyling cost sources.
MozReview-Commit-ID: 3KmiiyGrxZH
--HG--
extra : rebase_source : df7047f1af5f36f7a1b3a18498d8eb5508ee0b93
This switches over from using nsStringBuffer to nsString for URLValueData's
|mString| member. This avoids various tedious conversions and can provide
potential performance improvements by avoiding length calculations.
MozReview-Commit-ID: 5eRifUZrAso
This eliminates a 2 minute timeout seen at the end of Android mochitests
and reftests. Attempts to shutdown the web server were failing because
they were directed at IP 10.0.2.2 -- the loopback address for the
Android emulator.
This piggybacks the sync message on the pre-existing
EnsureLayersConnected sync message pathway to the compositor.
MozReview-Commit-ID: DfYTlJrr3Gu
--HG--
extra : rebase_source : c2bd29e655db65e3016a79bf3f6068ffb1c8b7c7
This call should be a no-op in the real world, and should be safe to
remove. The patch also adds an assert to ensure that the call is
effectively a no-op.
MozReview-Commit-ID: BXdcnHULWW2
--HG--
extra : rebase_source : 03c57d2d6dbfb1d330ce7eab6d842d8375d33208
The goal of this patch is to remove the call to the sync IPC
GetCompositorOptions message from TabChild::InitRenderingState. In order
to this, we have InitRenderingState take the CompositorOptions as an
argument instead, and propagate that backwards through the call sites.
Eventually we can propagate it back to a set of already-sync IPC
messages in PCompositorBridge that are used during layers id
registration (NotifyChildCreated, NotifyChildRecreated, etc.). Therefore
this patch effectively piggybacks the CompositorOptions sync IPC onto
these pre-existing sync IPC messages.
The one exception is when we propagate it back to the AdoptChild call.
If this message were sync we could just use it like the others and have
it return a CompositorOptions. However, it is async, so instead we add
another call to GetCompositorOptions here temporarily. This will be
removed in the next patch.
MozReview-Commit-ID: AtdYOuXmHu4
--HG--
extra : rebase_source : 5b80831cf84d3a4b57b2214a12ccf8a896cfa3a7
CLOSED TREE
Backed out changeset 1cce9249b4a2 (bug 1351200)
Backed out changeset 792fb55377f5 (bug 1351200)
Backed out changeset 767bee78574c (bug 1351200)
Calling CreateReferenceRenderingContext currently returns a non-recording DrawTarget even
when the nsIDeviceContextSpec within the nsDeviceContext has a DrawEventRecorder, due to
bug 1354624. Since we've already called BeginPage we can call CreateRenderingContext instead
though and that will give us a recording DrawTarget as we require to record the canvas drawing.
RuleProcessorCache::mExpirationTracker.NotifyExpired() will be invoked by
nsExpirationTracker::TimerCallback() from an unlabeled runnable.
Since RuleProcessorCache is a browser-wide cache, we provide a SystemGroup
EventTarget for the invocation of this callback.
MozReview-Commit-ID: KQATsLu6bdc
--HG--
extra : rebase_source : b64c93d335b86fb518981134d25de27fc067c8cc
LayerActivityTracker::NotifyExpired() will be invoked by
nsExpirationTracker::TimerCallback() from an unlabeled runnable.
We provide a SystemGroup EventTarget for the invocation of this
callback since there's nothing within a page that would rely on
the timer firing at a particular time (i.e., it doesn't matter
when this timer's callback is scheduled, relative to other
runnables dispatched for the page).
MozReview-Commit-ID: FZHtqicwDG5
--HG--
extra : rebase_source : 741983a64e7b9835999bdb344bc5f163eebac246
ScrollFrameActivityTracker::NotifyExpired() will be invoked by
nsExpirationTracker::TimerCallback() from an unlabeled runnable.
We provide a SystemGroup EventTarget for the invocation of this
callback since there's nothing within a page that would rely on
the timer firing at a particular time (i.e., it doesn't matter
when this timer's callback is scheduled, relative to other
runnables dispatched for the page).
MozReview-Commit-ID: 9QEjxCtFhve
--HG--
extra : rebase_source : 06b979835363b9c4288dd218d2a4ca2dc111169b
This argument will be used to control whether we are restyling in preparation
for reframing a subtree, which can avoid generating any change hints, as we
aren't preserving the frames that they would otherwise apply to.
MozReview-Commit-ID: DkLVCUnNGt
--HG--
extra : rebase_source : 086a1d71a2e6c706cdd25193ec0592fad897f147
If we append children to an element inside a display:none tree and we
decide not to do lazy frame construction, StyleNewChildren will assert.
It's also unnecessary, anyway, since we want to keep the descendants
of the display:none element free of ElementData.
MozReview-Commit-ID: 19tuzAzAIDp
--HG--
extra : rebase_source : 457a2c037a02ff50647eed84f51cbee29f737ecd