Commit Graph

882 Commits

Author SHA1 Message Date
Nazım Can Altınova
2ba6397666 Bug 1421645 - Hide accidentally exposed subgrid behind prefs r=emilio,xidorn
It was exposed during stylo implementation but it should be behind
`layout.css.grid-template-subgrid-value.enabled` pref.

MozReview-Commit-ID: DqrU6zYgdES
2017-12-05 22:11:10 +03:00
Boris Zbarsky
2911dfd061 Bug 1418558 part 4. Add MOZ_CAN_RUN_SCRIPT annotations to nsGenericHTMLElement methods that can call GetPrimaryFrame. r=mystor
MozReview-Commit-ID: HxFFC85qgOD
2017-12-05 11:18:16 -05:00
Gurzau Raul
b59edbfaf3 Merge mozilla-central to mozilla-autoland. r=merge a=merge CLOSED TREE 2017-11-24 00:36:16 +02:00
Kartikaya Gupta
df9ea113d6 Bug 1412112 - Cache the view id on the ASR to speed up the ViewIDForASR operation. r=mstange
This also moves the function from nsLayoutUtils to be a function on the
ASR itself, which seems more appropriate.

MozReview-Commit-ID: 88lUmYi80P0
2017-11-23 12:22:22 -05:00
Cameron McCormack
7a2fd5344d Bug 1418899 - Part 2: Move some font-related static methods out of nsRuleNode. r=TYLin
MozReview-Commit-ID: 3l9L6bHr0PJ
2017-11-20 12:43:21 +08:00
Ting-Yu Lin
5ef96b463f Bug 1418905 - Move nsRuleNode::ComputeCoordPercentCalc() into nsStyleCoord. r=heycam
MozReview-Commit-ID: GLLseBxhUiP
2017-11-20 14:05:19 +08:00
Cameron McCormack
deb7a50a89 Bug 1418872 - Move ControlCharVisibilityDefault() out of nsCSSParser. r=TYLin
MozReview-Commit-ID: EkNq7lREGgA
2017-11-20 10:46:45 +08:00
Ting-Yu Lin
25ad28cc7e Bug 1417376 Part 3 - Pass nsPoint parameters by const references instead of values. r=mats
It's good to save some copy constructor calls.

MozReview-Commit-ID: 6TveqwkOvc0
2017-11-15 17:55:36 +08:00
Kartikaya Gupta
460bf3e33e Bug 1416540 - Convert a bunch of scaling code to avoid unnecessary double conversion. r=mattwoodrow
The code in ComputeSuitableScaleForAnimation feeds its double-based
computation results into GetSuitableScale, which takes and returns
floats. Also the double-based computation that it's doing involves
calling UpdateMinMaxScale a bunch which explicitly uses the float
variant of std::min and std::max. And all of this is used from
ChooseScaleAndSetTransform which does other things like call a
"RoundToFloatPrecision" function, and casts the final values to
floats before setting the layer's prescale. So let's just use
floats all the way through.

MozReview-Commit-ID: BE3WC5hv89d
2017-11-12 18:37:33 -05:00
Matt Woodrow
ef713ab44c Bug 1413833 - Cap the number of modified frames that we track to avoid the overhead getting too large. r=miko 2017-11-08 15:23:34 +13:00
Emilio Cobos Álvarez
a289950f9f Bug 1413619: Fix insertion point computation when display: contents pseudos are involved. r=mats,bz
This is a significant rework of how do we compute the insertion point of a
node.

We handle pseudos in the same function instead of out of band, and also recurse
up when the parent has display: contents, which simplifies the code IMO.

MozReview-Commit-ID: 1rSfv1Tq5gO
2017-11-04 11:58:16 +01:00
Botond Ballo
d9199e96a5 Bug 1412272 - Have ComputePartialPrerenderArea() handle the cases where aDirtyRect is larger than aPrerenderSize. r=mstange
Rendering at least aDirtyRect is more important than staying under
aPrerenderSize, so that's what we do.

MozReview-Commit-ID: 8Ze1biaNzqX
2017-11-01 15:27:16 -04:00
Botond Ballo
c2c7f5309f Bug 1382534 - Move ComputeOffsetToUserSpace() from nsDisplayList.cpp to nsLayoutUtils. r=mstange
MozReview-Commit-ID: 8w9lDViJuAj
2017-08-23 17:26:25 -04:00
Ryan VanderMeulen
6735413a2e Backed out changeset ee243422ed36 (bug 1413619) for test failures. 2017-11-01 17:29:10 -04:00
Emilio Cobos Álvarez
04fb712a4c Bug 1413619: Fix insertion point computation when display: contents pseudos are involved. r=mats
This actually fixes bug 1251799, and bug 1359656. Turns out the bug it was
hiding was this one! :)

MozReview-Commit-ID: KCSsu4T0PER
2017-11-01 18:56:13 +01:00
Xidorn Quan
12c05d02d9 Bug 1411532 part 1 - Add a pref for enabling stylo on chrome documents. r=bz
MozReview-Commit-ID: 7Zbh4Mf43xC
2017-10-27 15:07:51 +11:00
Daniel Holbert
8fea3c215f Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK
2017-10-27 10:33:53 -07:00
Kartikaya Gupta
3233ea98b3 Bug 1411238 - Make APZ test logging work in layers-free WR mode. r=botond
Most of this change is just fiddling with function signatures so that they take
a LayerManager* instead of a Layer* (or in some cases, both). This allows
the WebRender codepaths to pass a WebRenderLayerManager* instead of having to
produce a Layer* which it doesn't have.

MozReview-Commit-ID: Fb0C8OUVDin
2017-10-25 13:22:04 -04:00
Matt Woodrow
71282ed1ae Bug 1404181 - Part 23: Only rebuild items within a displayport when the displayport changes, rather than rebuilding the whole document. r=mstange
MozReview-Commit-ID: IYEPCKSvtBY
2017-09-29 10:54:15 +13:00
Matt Woodrow
68631294b4 Bug 1404181 - Part 14: Add a bunch of new helpers to display list builder and display item for retaining and reusing items. r=mstange
MozReview-Commit-ID: AyiVFa6kofu
2017-09-28 14:07:39 +13:00
Xidorn Quan
af32e35d5a Bug 1408235 part 1 - Move stylo checking logic into a separate function. r=heycam
MozReview-Commit-ID: 9fOyC4QUSDA
2017-10-21 11:02:34 +11:00
Timothy Nikkel
be26d3bac9 Bug 1409215. Don't change scroll thumbs into AGRs during display list building. r=mstange
Find the scrollframe for a scrollbar thumb and use it to determine if the scrollthumb is an AGR, instead of recording if the associated scrollframe is active on a frame property during display list building.
2017-05-19 17:04:19 -05:00
Jeremy Chen
5225114a2c Bug 1403077 - add two test-only helper functions to access the stylo blocklist. r=heycam
In the current blocklist implementation, we read the stylo blocklist from the user
preferences very early and only once, even earlier than the test preferences
updating happens.

So, to be able to test the functionality of the stylo blocklist, we add these two
nsIDOMWindowUtils APIs to be able to add/remove a mock domain to the existing
blocklist.

MozReview-Commit-ID: K48ejLBcNbn
2017-10-09 12:07:04 +08:00
Jeremy Chen
c81f7959ff Bug 1403077 - implement the stylo blocklist mechanism. r=heycam
In this patch, we read the stylo blocklist into nsLayoutUtils's global static
variable during nsLayoutUtils::Initialize(). So, we can decide if we should
fallback to use Gecko backend while updating style backend for a document.

We add "layout.css.stylo-blocklist.blocked_domains" and
"layout.css.stylo-blocklist.enabled" to ContentPrefs.cpp because they are read
very early (during nsLayoutUtils::Initialize).

MozReview-Commit-ID: 8c4n6m9dYD8
2017-09-27 20:35:21 +08:00
Nicholas Nethercote
7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11:00
Xidorn Quan
701ff1defa Bug 1406277 - Completely remove xml:base for style attribute. r=bz
This commit removes:
* layout.css.style-attr-with-xml-base.disabled pref
* deprecation XMLBaseAttributeForStyleAttr
* code path for getting base URI of style attr considering xml:base

MozReview-Commit-ID: 1w96eqhHPab
2017-10-06 15:45:33 +11:00
Emilio Cobos Álvarez
0891287c56 Bug 1405605: Bypass the IsReallyFixedPos assertion when the style may have changed due to first-line reparenting. r=bz
MozReview-Commit-ID: HS0670UMqKK
2017-10-04 17:53:13 +02:00
Timothy Nikkel
adcc3e778d Bug 1364295. Walk the frame tree looking for a scrollframe to add a displayport to, or one that already has a displayport before displaylist building. r=mstange
And stop creating displayports during display list building.

One thing we can investigate in the future is whether we should use the value of mHaveScrollableDisplayPort stored on the display list builder retained between paints. If it's true then we could potentially skip this pass. It would mean that if there are large changes to the page we wouldn't set a displayport. And we'd need to make sure the value is cleared when we load a new page.
2017-05-19 17:04:19 -05:00
Nicholas Nethercote
9fda5528d2 Bug 1400459 (part 2) - Devirtualize nsIAtom. r=heycam.
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.

These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.

- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>

- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
  - Count() --> Length()
  - ObjectAt() --> ElementAt()
  - AppendObject() --> AppendElement()
  - RemoveObjectAt() --> RemoveElementAt()

- ns*Hashtable<nsISupportsHashKey, ...> -->
  ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>

- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
  - This requires adding a Get() method to nsRefPtrHashtable that it lacks but
    nsInterfaceHashtable has.

- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
  - nsArrayBase::Create() --> nsTArray()
  - GetLength() --> Length()
  - do_QueryElementAt() --> operator[]

The patch also has some changes to Rust code that manipulates nsIAtom.

MozReview-Commit-ID: DykOl8aEnUJ
2017-09-26 08:33:21 +10:00
Matt Woodrow
0f1d10a5a9 Bug 1402199 - Move code for adding extra background items into a helper. r=mstange 2017-09-26 15:57:56 +13:00
Matt Woodrow
b14fd4ecb2 Bug 1402197 - Add an option for GetTransformToAncestor to stop at stacking contexts and displayport. r=mstange 2017-09-26 15:57:55 +13:00
Kevin Hsieh
78fb59fc56 Bug 1395777 (part 2) - Make orthogonal ruby annotations inter-character. r=xidorn
MozReview-Commit-ID: JjpEnQI9Dmv
2017-08-31 17:41:13 -07:00
Ting-Yu Lin
5262adc990 Bug 1399767 - Remove preference "layout.css.clip-path-shapes.enabled". r=heycam
The variables (basicShapeSVGBoxValues, etc.) in property_database.js are
moved to the beginning of the file so that they're defined before usage.

MozReview-Commit-ID: 7L3obIY1alP
2017-09-15 15:00:30 +08:00
Cameron McCormack
a07febe647 Bug 1398993 - Disable stylo in e10s parent process. r=xidorn
nsLayoutStatics::Initialize is sometimes too early to know whether a process
is an e10s parent process, or a non-e10s main process, because some prefs
get loaded later on.  So we unconditionally initialize some Servo data in
nsLayoutStatics::Initialize, but we still check later on whether we are
really a non-e10s main process or e10s content process when deciding whether
to preload Servo style sheets, choose our document backend type, etc.

MozReview-Commit-ID: 93tPCvuTdzl
2017-09-13 17:13:11 +08:00
Kartikaya Gupta
6acddc7f74 Bug 1395670 - In webrender layers-free mode, don't add a root scroll metadata if we already have it elsewhere in the tree. r=mstange
MozReview-Commit-ID: B9LY4v9t11Y
2017-08-31 17:07:41 -04:00
Kartikaya Gupta
cd9f1d9d79 Bug 1394011 - Extract helper function to compute the root ScrollMetadata. r=mstange
MozReview-Commit-ID: G8G7hI0aBWY
2017-08-28 17:17:34 -04:00
Bas Schouten
e8a3f7a60a Bug 1363922 - Part 1: Remember about the reference frame during BuildDisplayList for ScrollFrameHelper so GetScrolledRect can use it. r=mstange
MozReview-Commit-ID: 8GO6xuSH5xY
2017-08-17 15:45:30 +02:00
Kartikaya Gupta
8aa79d54f2 Bug 1384616 - Save APZ-relevant data from fixed-pos items in the WR scroll data for layers-free transactions. r=jrmuizel
MozReview-Commit-ID: HAFnrCVM9pZ
2017-07-31 15:27:29 -04:00
Louis Chang
3e447440a4 Bug 1319407 - Apply clip-path to each frame when box-decoration-break is clone. r=cjku,heycam
MozReview-Commit-ID: E7IR49MzkWm
2017-07-24 11:14:47 +08:00
Kartikaya Gupta
4ff424cc8f Bug 1382682 - Move ViewIDForASR into nsLayoutUtils for reuse. r=mstange
MozReview-Commit-ID: IcYqDO1D2SB
2017-07-20 12:33:09 -04:00
Kris Maglione
81578b8f6b Bug 1379508: Part 1 - Apply the correct client offsets to remote frameloaders in popup widgets. r=kats
On-screen coordinates for points in remote frameloads are calculated relative
to the screen origin of the top-level window, while event coordinates are
calculated relative to the nearest widget. Since popups have their own widgets
separate from the top-level window, their native client offsets have no
particular relation to the origin of the top-level window, and we need to
manually calculate them relative to the origin of the top-level widget
instead.

MozReview-Commit-ID: EDyEyu37XuY
2017-07-13 15:31:55 -07:00
Andrew Osmond
dcd98428a8 Bug 1183378 - Part 1. Add nsLayoutUtils::ComputeImageContainerDrawingParameters which generates the parameters needed for GetImageContainerAtSize. r=tnikkel 2017-11-23 06:55:06 -05:00
Mats Palmgren
2d39a227cf Bug 1377707 - Ensure that LogTestDataForPaint is not called at all when APZTestLoggingEnabled() is false. r=tn
MozReview-Commit-ID: 8z7eqBBsn0R
2017-07-05 02:04:15 +02:00
Kartikaya Gupta
2df4b399f1 Bug 1376782 - Replace gfxPoint with a typedef to PointDouble. r=jrmuizel
This also moves the WithinEpsilonOf function from gfxPoint into
PointTyped, and changes call sites that are using
gfxPoint::Transform(Matrix4x4) to use Matrix4x4::TransformPoint(Point)
instead, which should be equivalent.

MozReview-Commit-ID: 3Z0bsU41rQt
2017-06-28 11:42:23 -04:00
Carsten "Tomcat" Book
2d174eeab7 merge mozilla-inbound to mozilla-central a=merge 2017-06-28 13:23:29 +02:00
Emilio Cobos Álvarez
112c8be41c Bug 1375674: Constify and simplify nsLayoutUtils::{First,Last}ContinuationOrIBSplitSibling. r=heycam
MozReview-Commit-ID: phsCyamDum
2017-06-25 01:48:27 +02:00
Jonathan Watt
130a6eeb64 Bug 1374614 - Support SVG image context paint in XUL tree views (treecol etc.). r=dholbert
MozReview-Commit-ID: LltEP7gTCgq
2017-05-26 14:24:57 +01:00
Ryan Hunt
b5ae153509 Bug 1351783 part 7 - Create FocusState and FocusTarget types. r=kats,botond
This commit begins the work needed for tracking focus by creating two new classes,
FocusTarget and FocusState. FocusState is created and used by APZCTreeManager to
track the global focus information, while FocusTarget is created per layer tree and
sent to APZ with local focus information. Between the two we are able to figure out
what the correct scrollable layer is to use in response to a keyboard scroll.

See the comment in `FocusState.h` for more details on the architecture and things
needed in future patches to complete this.

MozReview-Commit-ID: F75VZv3i9U2
2017-06-05 19:12:22 -05:00
Andi-Bogdan Postelnicu
1661b99af2 Bug 1374236 - Refactor MaybeSetupTransactionIdAllocator to avoid passing nsView*. r=mats
MozReview-Commit-ID: L3jedbOFdCP
2017-06-19 18:58:42 +03:00
Alexis Beingessner
3117218f13 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00