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

56 Коммитов

Автор SHA1 Сообщение Дата
Boris Chiou 95f284eff5 Bug 1715387 - Flush style properly for DOM APIs which use d property. r=jwatt,hiro,emilio
In order to make sure these APIs work properly, we have to flush style before
building the path to make sure the d property is up-to-date.
1. isPointInFill()
2. isPointInStroke()
3. getTotalLength()
4. getPointAtLength()
5. getPathSegAtLength() (note: Legacy API, only Gecko and WebKit support.)

Differential Revision: https://phabricator.services.mozilla.com/D133434
2021-12-13 01:03:39 +00:00
Andrew Osmond ac49f09199 Bug 1728113 - Remove DrawTargetCapture and related code. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123953
2021-08-30 16:35:50 +00:00
Boris Chiou 3159e083e9 Bug 1340422 - Part 3: Resolve SVG path from CSS. r=emilio
Use the style value when building the SVG path and its display items.
Besides, we should also invalid the cache when there are any CSS updates.

Differential Revision: https://phabricator.services.mozilla.com/D115566
2021-06-09 21:17:21 +00:00
Emilio Cobos Álvarez d9e2be55c5 Bug 1706939 - Make the SVG attribute code a bit more generic. r=longsonr
This could still be massively improved... Why the heck are we doing so
many virtual calls to parse an attribute? :(

Differential Revision: https://phabricator.services.mozilla.com/D113205
2021-04-23 19:39:37 +00:00
Emilio Cobos Álvarez 6f72a71fea Bug 1683690 - Cleanup SVGGeometryElement::IsGeometryChangedViaCSS and related functions. r=longsonr
At the very least per our coding style star should be near the pointer
type, not the variable name, but while we're at it let's also make
IsGeometryChangedViaCSS a bit more efficient, and use references.

Differential Revision: https://phabricator.services.mozilla.com/D100244
2020-12-21 17:00:36 +00:00
longsonr 4f8808ae6f Bug 1459905 - Merge DOMSVGTranslatePoint and DOMSVGPoint and fix updates r=emilio
SVGSVGElement::SetCurrentScaleTranslate checks that things have changed but if we
manage to update both translate values before we get here then we'll skip the screen update
that we need.

Also
- introduces a tear off for SVGSVGElement.currentTranslate so we hand out the same object as required by the SVG idl
- removes SVGSVGElement::SetCurrentTranslate as dead code
- removes mPreviousScale and mPreviousTranslate from SVGSVGElement as they are no longer necessary

Differential Revision: https://phabricator.services.mozilla.com/D84796
2020-08-25 14:38:32 +00:00
longsonr b0908ad8d6 Bug 1654331 - throw InvalidStateError when getPointAtLength can't get the path for measuring r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D86461
2020-08-10 03:49:56 +00:00
Cosmin Sabou cf533b3575 Backed out changeset 5a3189a82913 (bug 1654331) for wpt failures on SVGGeometryElement.getPointAtLength-03.svg. 2020-08-10 02:40:26 +03:00
longsonr e2d27d8052 Bug 1654331 - throw InvalidStateError when getPointAtLength can't get the path for measuring r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D86461
2020-08-09 20:34:04 +00:00
longsonr 914ea37ede Bug 1653858 - Introduce concept of valid target for use elements and use it rather than listing out all elements r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D84104
2020-08-08 15:47:04 +00:00
longsonr 875f5e88ac Bug 1259861 - Move everything else into the mozilla namespace in layout/svg r=dholbert
Also: adjust include paths to be consistent for usages of various SVG headers,
and remove unused SVG includes (mostly for "utils" classes),
and drop stray "ns" from already-renamed SVG classes in various code comments.

Differential Revision: https://phabricator.services.mozilla.com/D83140
2020-07-11 02:20:20 +00:00
longsonr 33432612ba Bug 1560275 - Flush layout in SVGGeometryElement::IsPointInStroke r=dholbert
SVGGeometryElement::IsPointInStroke calls SVGContentUtils::GetCTM and that can call
 nsSVGUtils::GetTransformMatrixInUserSpace which needs layout to be up to date

Differential Revision: https://phabricator.services.mozilla.com/D79752
2020-06-15 23:49:09 +00:00
longsonr abfdb3c37c Bug 1560275 - Flush before trying to read style in SVGGeometryElement::IsPointInStroke r=dholbert,emilio
Differential Revision: https://phabricator.services.mozilla.com/D78721
2020-06-08 21:58:40 +00:00
Kartikaya Gupta e0866e73e4 Bug 1622445 - Don't cache the SVGGeometryElement's Path with OMTP rendering. r=longsonr
Differential Revision: https://phabricator.services.mozilla.com/D66955

--HG--
extra : moz-landing-system : lando
2020-03-16 15:15:40 +00:00
longsonr ff387da653 Bug 1578098 - move DOM classes to DOM namespace and eliminate using namespace mozilla r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D44318

--HG--
extra : moz-landing-system : lando
2019-09-21 14:38:56 +00:00
violet 00989decc6 Bug 1325319 - Implement isPointInFill() and isPointInStroke() for SVGGeometryElement r=longsonr,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D33592

--HG--
extra : moz-landing-system : lando
2019-06-19 21:14:55 +00:00
violet a524e7ef15 Bug 1555758 - Fallback to GetComputedStyleNoFlush for BuildPath r=longsonr,emilio
It turns out the `BuildPath()` method will still be exposed by DOM
API via `getTotalLength()`. So we need to fallback to `GetComputedStyleNoFlush()`
to handle display:none problem, and if the element doesn't even belong
to a document, we further fallback to 0.

`BuildPath()` being affected also means `GetStrokeWidth()`, etc. will also
be indirectly exposed to DOM API in some obscure cases. Let's add a utility
to handle the fallback.

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

--HG--
extra : moz-landing-system : lando
2019-05-31 13:17:46 +00:00
violet 5519af913c Bug 1554457 - Obtain style from frame rather than GetComputedStyleNoFlush r=emilio,longsonr,birtles
These usecases are almost the same as the geometry property stuff. It'd
be better to use `GetPrimaryFrame()->Style()` consistently rather than
using `GetComputedStyleNoFlush()` here.

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

--HG--
extra : moz-landing-system : lando
2019-05-27 05:06:47 +00:00
violet cadaa5cf8e Bug 1383650 - Invalidate path cache when geometry changed via CSS r=longsonr
We cached the path of an element. Previously we only need to invalidate
the cached path if an geometry attribute is changed. Now we also need
to invalidate if the corresponding CSS is changed.

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

--HG--
extra : moz-landing-system : lando
2019-05-16 13:21:20 +00:00
Coroiu Cristina b4731ed54d Backed out 12 changesets (bug 1383650) for landing in the soft-freeze period
Backed out changeset 4316d55f87be (bug 1383650)
Backed out changeset 0118148f1534 (bug 1383650)
Backed out changeset 447c9248342b (bug 1383650)
Backed out changeset 6730776560c0 (bug 1383650)
Backed out changeset a7b8e6460fb8 (bug 1383650)
Backed out changeset e864696f6cf8 (bug 1383650)
Backed out changeset 2b003d678c58 (bug 1383650)
Backed out changeset 7bc3bff991c4 (bug 1383650)
Backed out changeset f1f7b4ad9547 (bug 1383650)
Backed out changeset 18b030b31660 (bug 1383650)
Backed out changeset 70e74dd6b45d (bug 1383650)
Backed out changeset 55a283e793df (bug 1383650)
2019-05-16 04:47:58 +03:00
violet 4e7e1be890 Bug 1383650 - Invalidate path cache when geometry changed via CSS r=longsonr
We cached the path of an element. Previously we only need to invalidate
the cached path if an geometry attribute is changed. Now we also need
to invalidate if the corresponding CSS is changed.

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

--HG--
extra : moz-landing-system : lando
2019-05-16 00:50:15 +00:00
longsonr 4c4cabe851 Bug 1540408 Part 2 - Move nsSVGLength2 and nsSVGNumber2 to the mozilla namespace renaming them to be SVGAnimatedLength and SVGAnimatedNumber. r=dholbert
--HG--
rename : dom/svg/nsSVGLength2.cpp => dom/svg/SVGAnimatedLength.cpp
rename : dom/svg/nsSVGLength2.h => dom/svg/SVGAnimatedLength.h
rename : dom/svg/nsSVGNumber2.cpp => dom/svg/SVGAnimatedNumber.cpp
rename : dom/svg/nsSVGNumber2.h => dom/svg/SVGAnimatedNumber.h
2019-04-09 21:04:33 +01:00
Noemi Erli 4033c58c26 Backed out changeset 481a37f3892a (bug 1540408) for build bustages in SVGViewportElement.h
--HG--
rename : dom/svg/SVGAnimatedLength.cpp => dom/svg/nsSVGLength2.cpp
rename : dom/svg/SVGAnimateLength.h => dom/svg/nsSVGLength2.h
rename : dom/svg/SVGAnimatedNumber.cpp => dom/svg/nsSVGNumber2.cpp
rename : dom/svg/SVGAnimatedNumber.h => dom/svg/nsSVGNumber2.h
2019-04-09 09:53:57 +03:00
longsonr ef9cb13839 Bug 1540408 Part 2 - Move nsSVGLength2 and nsSVGNumber2 to the mozilla namespace renaming them to be SVGAnimatedLength and SVGAnimatedNumber. r=dholbert
--HG--
rename : dom/svg/nsSVGLength2.h => dom/svg/SVGAnimateLength.h
rename : dom/svg/nsSVGLength2.cpp => dom/svg/SVGAnimatedLength.cpp
rename : dom/svg/nsSVGNumber2.cpp => dom/svg/SVGAnimatedNumber.cpp
rename : dom/svg/nsSVGNumber2.h => dom/svg/SVGAnimatedNumber.h
2019-04-09 07:33:14 +01:00
longsonr 21dcb548e6 Bug 1518666 part 2 - Move existing SVGAnimated classes to DOMSVGAnimated so that we can rename various existing classes to SVGAnimated later r=dholbert
--HG--
rename : dom/svg/SVGAnimatedAngle.cpp => dom/svg/DOMSVGAnimatedAngle.cpp
rename : dom/svg/SVGAnimatedAngle.h => dom/svg/DOMSVGAnimatedAngle.h
rename : dom/svg/SVGAnimatedBoolean.cpp => dom/svg/DOMSVGAnimatedBoolean.cpp
rename : dom/svg/SVGAnimatedBoolean.h => dom/svg/DOMSVGAnimatedBoolean.h
rename : dom/svg/SVGAnimatedEnumeration.cpp => dom/svg/DOMSVGAnimatedEnumeration.cpp
rename : dom/svg/SVGAnimatedEnumeration.h => dom/svg/DOMSVGAnimatedEnumeration.h
rename : dom/svg/SVGAnimatedInteger.cpp => dom/svg/DOMSVGAnimatedInteger.cpp
rename : dom/svg/SVGAnimatedInteger.h => dom/svg/DOMSVGAnimatedInteger.h
rename : dom/svg/SVGAnimatedLength.cpp => dom/svg/DOMSVGAnimatedLength.cpp
rename : dom/svg/SVGAnimatedLength.h => dom/svg/DOMSVGAnimatedLength.h
rename : dom/svg/SVGAnimatedNumber.cpp => dom/svg/DOMSVGAnimatedNumber.cpp
rename : dom/svg/SVGAnimatedNumber.h => dom/svg/DOMSVGAnimatedNumber.h
rename : dom/svg/SVGAnimatedString.cpp => dom/svg/DOMSVGAnimatedString.cpp
rename : dom/svg/SVGAnimatedString.h => dom/svg/DOMSVGAnimatedString.h
2019-03-19 00:01:03 +00:00
longsonr e1582e28d1 Bug 1523069 - Move nsSVGMark to the mozilla namespace. r=jwatt
--HG--
rename : dom/svg/SVGAngle.cpp => dom/svg/SVGOrient.cpp
rename : dom/svg/SVGAngle.h => dom/svg/SVGOrient.h
2019-01-26 13:01:31 +00:00
Daniel Holbert ac72740770 Bug 1522711: Improve sorting for some #include lists in dom/svg. r=longsonr
Differential Revision: https://phabricator.services.mozilla.com/D17570

--HG--
extra : moz-landing-system : lando
2019-01-25 02:00:52 +00:00
Daniel Holbert 808dca3627 Bug 1522208: Clean up nsCOMPtr.h includes in dom/svg. r=longsonr
A lot of files include nsCOMPtr without really needing it in dom/svg. (And a
few files use the nsCOMPtr type without including its header.)

For this patch, I found candidate files by just searching for files that only
had a single line that contained "nsCOMPtr", and I took the following actions:
 - If the match is an #include, then remove it (replacing it with the include
   for RefPtr or AlreadyAddrefed if the file uses those types instead).
 - If the match is a usage of the type, then add an #include for nsCOMPtr (as
   well as one for RefPtr, if the file uses that type).

(And in a few cases, I moved an adjacent #include, to get the #include list
closer to sortedness.)

I verified that the dom/svg directory continues to build successfully in
non-unified mode (i.e. if I remove UNIFIED_ from its moz.build file).  So, I'm
not removing any includes that files are now inadvertantly leaning on other
compilation units to provide.

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

--HG--
extra : moz-landing-system : lando
2019-01-24 23:40:25 +00:00
longsonr 3d04ba9c9e Bug 1515187 - Part 4 Rename nsSVGElement to SVGElement and put it in the mozilla:dom namespace r=dholbert
--HG--
rename : dom/svg/nsSVGElement.cpp => dom/svg/SVGElement.cpp
rename : dom/svg/nsSVGElement.h => dom/svg/SVGElement.h
2018-12-21 08:58:14 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Nicholas Nethercote 28cd0d7a4a Bug 1449883 - Use `nsStaticAtom* const` instead of `nsStaticAtom**` in nsSVGElement.h. r=jwatt
The patch also const-ifies a bunch of nearby fields.

MozReview-Commit-ID: IId52fm3Y7j

--HG--
extra : rebase_source : 8b84842dbb105672cce3cd90eef20290f28feb0e
2018-03-29 20:45:24 +11:00
Nathan Froyd 846d8789ee Bug 1492894 - part 1 - make the node hierarchy consistently constructed with NodeInfo&&; r=mccr8
Various places in dom/ use the pattern:

  already_AddRefed<NodeInfo> ni = ...;

which is supposed to be disallowed by our static analysis code, but
isn't, for whatever reason.  To fix our static analysis code, we need to
eliminate instances of the above pattern.

Unfortunately, eliminating this pattern requires restructuring how Nodes
are created.  Most Node subclasses take `already_AddRefed<NodeInfo>&` in
their constructors, and a few accept `already_AddRefed<NodeInfo>&&`.  We
need to enforce the latter pattern consistently, which requires changing
dozens of source files.
2018-09-21 16:45:49 -04:00
Jeff Gilbert 5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Jonathan Watt 82ebebe276 Bug 1448714 - Fix up comments referring to 'style context' after the rename of nsStyleContext. r=emilio 2018-03-23 13:49:21 +00:00
Jonathan Watt 384c345f21 Bug 1448294 - Clean up naming of 'styleContext' variables after the big nsStyleContext rename. r=emilio
Reviewers: emilio

Bug #: 1448294

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

MozReview-Commit-ID: KJq2i9nrg7y
2018-03-25 20:49:58 +02:00
Narcis Beleuzu 47581f78e2 Backed out 2 changesets (bug 1448294, bug 1448337) for wpt and reftest failures on /mathml
Backed out changeset 180051cfe357 (bug 1448294)
Backed out changeset c188176f3289 (bug 1448337)
2018-03-25 21:31:08 +03:00
Jonathan Watt 21bff4e120 Summary: Bug 1448294 - Clean up naming of 'styleContext' variables after the big nsStyleContext rename. r=emilio
Reviewers: emilio

Bug #: 1448294

Differential Revision: https://phabricator.services.mozilla.com/D796
2018-03-22 13:49:21 +00:00
Emilio Cobos Álvarez e341b20ec4 Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez 5dd797f154 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez ca5ac79cca Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Robert Longson 32c95b809e Bug 1443314 - remove the svg.path-caching.enabled pref r=jwatt 2018-03-18 14:05:28 +00:00
Robert Longson 797f6cb1a6 Bug 1325320 part 3 - move GetPathLengthScale to SVGGeometryElement and convert callers of SVGPathElement methods to work on the base SVGGeometryElement class and work for all shapes, not just paths r=dholbert 2018-03-13 19:52:03 +00:00
Robert Longson bda3ae0619 Bug 1325320 part 2 - change shapes so they implement SVGGeometryElement and implement SVGGeometryElement::GetOrBuildPath r=dholbert r=mystor (DOM Peer) 2018-03-13 19:20:43 +00:00
Robert Longson 81b5779eda Bug 1325320 - change SVGGeometryElement::GetOrBuildPath to take DrawTarget as a pointer since all its callers have drawTarget as a pointer themselves.
This is consistent with most other methods that take a drawTarget parameter r=dholbert

--HG--
extra : amend_source : 77aa7f7d9cb19f9aa08014fff3b209dc151b75f3
2018-03-09 07:36:13 +00:00
Robert Longson 46c74e15ed Bug 1443685 - GetPointAtLength should not take into account the pathLength attribute r=dholbert 2018-03-09 04:35:37 +00: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
Boris Zbarsky 3afbe4d699 Bug 1435138 part 3. Remove nsIDOMSVGLength's SVG_LENGTHTYPE_* constants. r=qdot
MozReview-Commit-ID: GvzWbe6cr5r
2018-02-02 08:21:33 -05:00
Botond Ballo 9b9daf3f62 Bug 1382534 - Only reuse the cached path in SVGGeometryElement::GetOrBuildPath() if it has the fill rule we want. r=longsonr
MozReview-Commit-ID: 7G99pnifbTv

--HG--
extra : rebase_source : 7a585b57308eeefe00c2cb5c334bcfa39f11ab93
2017-09-25 16:58:19 -04:00
Kris Maglione 4275cd1039 Bug 1406278: Part 1 - Pass subject principal to SetAttribute and friends. r=bz
In order to tailor certain security checks to the caller that is attempting to
load a particular piece of content, we need to be able to attach an
appropriate triggering principal to the corresponding requests. Since most
HTML content is loaded based on attribute values, that means capturing the
subject principal of the caller who sets those attributes, which means making
it available to AfterSetAttr hooks.

MozReview-Commit-ID: BMDL2Uepg0X

--HG--
extra : rebase_source : 25e438c243700a9368c393e40e3a6002d968d6c8
2017-10-09 14:33:38 -07:00
Nicholas Nethercote d225f7151b 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

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00