Commit Graph

66 Commits

Author SHA1 Message Date
Kirk Steuber
e74f1cd513 Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr r=bz
In order to facilitate the movement of code with side-effects called by Element::SetAttr to Element::BeforeSetAttr and Element::AfterSetAttr, Element::AfterSetAttr should have access to the old value of the attribute. This includes information about whether there was previously a value set or not.

Accomplishing this involved passing an additional argument through functions that find and change the old attribute value in order to ensure that we can differentiate between an empty old value and an absent old value (attribute was not set).

Note that while I tried to ensure that accurate values (and their absence) are reported to Element::AfterSetAttr, I largely ignored SVG. While the old value reported for SVG values should be however accurate the value already being reported to SetAttrAndNotify was, SVG elements do not currently report unset values properly because they will never pass a null pointer to SetAttrAndNotify.

MozReview-Commit-ID: K1mha8CNFZP

--HG--
extra : rebase_source : 42776eb01451d371e4aebcc17fe3dd112c8d268b
2017-05-18 14:09:01 -07:00
Nazım Can Altınova
e7316ee8fe Bug 1364746 - stylo: Continue to propagate quirks mode information to Servo r=bholley
I've propagated quirks mode information on some places. But we needed to pass
quirks mode to some other FFI functions to be able to handle that information
properly.

MozReview-Commit-ID: JovQWjN3YJx

--HG--
extra : rebase_source : bd25ba4276ae21ff4feb80e56b311202019268a0
2017-05-14 18:11:18 +03:00
Hiroyuki Ikezoe
7cd8cdf2bb Bug 1357295 - Rename LengthParsingMode to ParsingMode and LengthParsingMode::SVG to PasingMode::AllowUnitlessLength. r=emilio
We need another flag that represents allow-negative-number for SMIL, so
this enum will also comprise the another parsing mode that allows negative number.

MozReview-Commit-ID: IDFNppjGeB

--HG--
extra : rebase_source : 456f661b33346ff4a756a66c6accf4ab1a5f2f80
2017-05-13 19:47:38 +09:00
Robert Longson
5bf763e903 Bug 1362400 part 1 - Make it possible for SMIL to change the link state of an SVG anchor element r=jwatt r=smaug (DOM) 2017-05-06 20:32:14 +01:00
J. Ryan Stinnett
dbbda3c4ba Bug 1329088 - Pass SVG length mode to Stylo. r=emilio
In the SVG element case, tell Stylo to use the SVG length mode.

MozReview-Commit-ID: 9UR1AYRh4RE
2017-04-14 18:27:49 +08:00
Xidorn Quan
2df49dbac2 Bug 1343964 part 1 - Move URLExtraData into its own header. r=heycam
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
2017-04-04 10:04:13 +10:00
Brian Birtles
8ff0648aee Bug 1353208 - Use UniquePtr for handling heap-allocated nsISMILAttr objects; r=dholbert
MozReview-Commit-ID: 10lA0ZaXChj

--HG--
extra : rebase_source : f5285b5363b2247ac73f63d9d13f8a109728a7c2
2017-03-30 13:10:07 +09:00
Xidorn Quan
2da48b454d Bug 1352025 part 2 - Stop passing in url as string for parsing. r=manishearth
MozReview-Commit-ID: CRgOO7NyYd9

--HG--
extra : rebase_source : 6b04d1c001082740abfc344fdb2a7f0351c3d7d9
2017-04-01 16:17:55 +11:00
Xidorn Quan
e3e4554871 Bug 1351957 - Create URLExtraData for holding base uri, referrer, and principal. r=heycam
MozReview-Commit-ID: 1wqTb3kvvWh

--HG--
extra : rebase_source : cae3dba21c916ab0f52056bd9db215249b650cd3
2017-03-30 18:54:48 +11:00
Olli Pettay
12316106ee Bug 1352389, don't push extra script blocker on stack when setting attributes, r=bz
--HG--
extra : rebase_source : 2571f3d502114b84f8b95bbb50c5a0707eb14298
2017-03-31 22:54:41 -04:00
Olli Pettay
5706cc683b backout Bug 1352389, r=backout 2017-03-31 16:59:06 -04:00
Olli Pettay
b86d26e216 Bug 1352389, don't push extra script blocker on stack when setting attributes, r=bz
--HG--
extra : rebase_source : 55820b78425fe7a64e77eaeb31f5093309f2d06c
2017-03-31 13:13:52 -04:00
Manish Goregaokar
b8c378e1a5 Bug 1330051; Reparse style attribute when adopting across style backends; r=bz
MozReview-Commit-ID: LWN57KApiMu

--HG--
extra : rebase_source : 20cfb66a8d6d5f88aa3db9cc6876f986d71290b4
2017-03-24 15:28:19 -07:00
Mantaroh Yoshinaga
2558f6837e Bug 1062106 part 3 - Remove SMIL MappedAttribute mechanism. r=birtles
We can remove unnecesasary SMILMappedAttribute and SMILAttrAnimationRuleProcessor since earlier patches in this serieas mean this code is no longer used.

MozReview-Commit-ID: 5Rl5WFW5zZ1

--HG--
extra : rebase_source : cf2efca8d01c7e6cd5bd3b3b44d994c6cbb760e9
2017-03-21 15:45:58 +09:00
Mantaroh Yoshinaga
df05b9f9a2 Bug 1062106 part 1 - Remove special handling of attributeType='XML'. r=birtles,longsonr+218550
This patch removes handling of the 'attributeType' attribute so that we behave
as if attributeType is always 'auto'. This means that for CSS properties we
always animate them as CSS properties (i.e. we animate them as part of the
SMIL override stylesheet) rather than mapped attributes.

The one special case is width/height on an outer SVG. Previously we animated
this as a mapped attribute since Web compatibility requires that the
width/height on an outer SVG, when set explicitly, are mapped to style.
However, we can produce the same behavior by animating these as CSS properties
(as opposed to mapped attributes). There is no observable difference in results
returned by the SVG DOM APIs, only the level at which the result is added to
the cascade: the SMIL override stylesheet instead of the attribute animation
presentation hint level.

As part of this patch, we animate width/height on outer SVG elements as CSS
properties as opposed to mapped attributes both for consistency and also so
we can remove the animated mapped attribute code altogether.

MozReview-Commit-ID: Ll1LWWRQ66R

--HG--
extra : rebase_source : bd513e191e3d0ba2a1e982eea4c548392bf5817d
2017-03-21 15:42:17 +09:00
Iris Hsiao
96c6ba3303 Backed out 4 changesets (bug 1062106) for build bustage
Backed out changeset 7ac1fffb6a87 (bug 1062106)
Backed out changeset 7682b2da0437 (bug 1062106)
Backed out changeset e77bfa57be61 (bug 1062106)
Backed out changeset a565aca3013c (bug 1062106)
2017-03-21 16:41:18 +08:00
Mantaroh Yoshinaga
3b7e3f9116 Bug 1062106 part 3 - Remove SMIL MappedAttribute mechanism. r=birtles
We can remove unnecesasary SMILMappedAttribute and SMILAttrAnimationRuleProcessor since earlier patches in this serieas mean this code is no longer used.

MozReview-Commit-ID: 5Rl5WFW5zZ1

--HG--
extra : rebase_source : b051dce1d0f511e2e41be0b183a6f84654000309
2017-03-21 15:45:58 +09:00
Mantaroh Yoshinaga
2cfca16ec3 Bug 1062106 part 1 - Remove special handling of attributeType='XML'. r=birtles,longsonr+218550
This patch removes handling of the 'attributeType' attribute so that we behave
as if attributeType is always 'auto'. This means that for CSS properties we
always animate them as CSS properties (i.e. we animate them as part of the
SMIL override stylesheet) rather than mapped attributes.

The one special case is width/height on an outer SVG. Previously we animated
this as a mapped attribute since Web compatibility requires that the
width/height on an outer SVG, when set explicitly, are mapped to style.
However, we can produce the same behavior by animating these as CSS properties
(as opposed to mapped attributes). There is no observable difference in results
returned by the SVG DOM APIs, only the level at which the result is added to
the cascade: the SMIL override stylesheet instead of the attribute animation
presentation hint level.

As part of this patch, we animate width/height on outer SVG elements as CSS
properties as opposed to mapped attributes both for consistency and also so
we can remove the animated mapped attribute code altogether.

MozReview-Commit-ID: Ll1LWWRQ66R

--HG--
extra : rebase_source : 8bd5e5b17c897b56ba1abf0ddf0c0ea12d052b79
2017-03-21 15:42:17 +09:00
Boris Zbarsky
33a3057732 Bug 656197 part 2. Move calls to BeforeSetAttr to after AttributeWillChange. r=smaug
This means that implementations of BeforeSetAttr no longer need to UpdateState.
Those UpdateState calls will be removed in a bit.

MozReview-Commit-ID: 1yEg5D4garD
2017-03-16 14:50:41 -04:00
Manish Goregaokar
7a6a00898d Bug 1329093 - Part 4: stylo: Delay SVG mapped attr resolution till later; r=bz
MozReview-Commit-ID: 2GvHPg1egjS
2017-03-09 17:46:26 -08:00
Manish Goregaokar
07fc7c5b25 Bug 1329093 - Part 1: stylo: Handle SVG presentation attributes; r=bz
MozReview-Commit-ID: 9cymo3c9HIn
2017-03-09 17:46:21 -08:00
Cameron McCormack
f63cdecde2 Bug 1297899 - Part 6: Move RestyleManagerHandle functionality into RestyleManager. r=bholley
MozReview-Commit-ID: 7lsti0bGzNr

--HG--
extra : rebase_source : 13c64026190afe5de25f540adb6deea9f518149f
2017-02-13 11:21:33 +08:00
dmu@mozilla.com
114603b64b Bug 1302340 - Allow SVGElement to be focusable when tabindex is -1; r=heycam
MozReview-Commit-ID: JMTVxYxQF80

--HG--
extra : rebase_source : c42ec2b70b42a1ddd7ec84deca3ce2f8b0479ba3
2016-09-28 12:05:28 +00:00
Boris Zbarsky
66519f68ee Bug 1326388 part 2. Switch nsSVGElement from storing an nsStyleRule to storing a DeclarationBlock to represent its SMIL mapped attributes. r=dbaron 2016-12-31 01:11:05 -08:00
Boris Zbarsky
ebb78498d2 Bug 1326388 part 1. Switch nsSVGElement from storing a StyleRule to storing a DeclarationBlock to represent its mapped attributes. r=dbaron
The current setup complicates things by causing the existence of StyleRule
instances that have a null GetDOMRule(), which
inDOMUtils::GetCSSStyleRulesrelies on to not return the relevant rules.  Since
we want to get rid of GetDOMRule(), better to not have a StyleRule there in the
first place.
2016-12-31 01:10:45 -08:00
Robert Longson
1bae76206e Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv
--HG--
rename : dom/svg/nsSVGPathGeometryElement.cpp => dom/svg/SVGGeometryElement.cpp
rename : dom/svg/nsSVGPathGeometryElement.h => dom/svg/SVGGeometryElement.h
rename : dom/svg/nsSVGPolyElement.cpp => dom/svg/SVGPolyElement.cpp
rename : dom/svg/nsSVGPolyElement.h => dom/svg/SVGPolyElement.h
rename : layout/svg/nsSVGPathGeometryFrame.cpp => layout/svg/SVGGeometryFrame.cpp
rename : layout/svg/nsSVGPathGeometryFrame.h => layout/svg/SVGGeometryFrame.h
2016-12-18 11:11:47 +00:00
Sebastian Hengst
cdeb642a1b Backed out changeset 0b44e8715bf5 (bug 1239100) for build bustage (SVGGeometryElement.webidl missing). r=backout
--HG--
rename : dom/svg/SVGGeometryElement.cpp => dom/svg/nsSVGPathGeometryElement.cpp
rename : dom/svg/SVGGeometryElement.h => dom/svg/nsSVGPathGeometryElement.h
rename : dom/svg/SVGPolyElement.cpp => dom/svg/nsSVGPolyElement.cpp
rename : dom/svg/SVGPolyElement.h => dom/svg/nsSVGPolyElement.h
rename : layout/svg/SVGGeometryFrame.cpp => layout/svg/nsSVGPathGeometryFrame.cpp
rename : layout/svg/SVGGeometryFrame.h => layout/svg/nsSVGPathGeometryFrame.h
2016-12-18 11:42:51 +01:00
Robert Longson
783bfbb1e4 Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv
--HG--
rename : dom/svg/nsSVGPathGeometryElement.cpp => dom/svg/SVGGeometryElement.cpp
rename : dom/svg/nsSVGPathGeometryElement.h => dom/svg/SVGGeometryElement.h
rename : dom/svg/nsSVGPolyElement.cpp => dom/svg/SVGPolyElement.cpp
rename : dom/svg/nsSVGPolyElement.h => dom/svg/SVGPolyElement.h
rename : layout/svg/nsSVGPathGeometryFrame.cpp => layout/svg/SVGGeometryFrame.cpp
rename : layout/svg/nsSVGPathGeometryFrame.h => layout/svg/SVGGeometryFrame.h
2016-12-18 09:54:02 +00:00
Xidorn Quan
05ef8466c6 Bug 1309109 part 5 - Store ServoDeclarationBlock rather than RawServoDeclarationBlock in nsAttrValue. r=heycam
MozReview-Commit-ID: HWqgjwif1qF

--HG--
extra : source : cf3b1baff3d1d6233c72e32cf01cd28a2b344ebf
2016-10-18 15:29:03 +11:00
Kan-Ru Chen
b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Jonathan Chan
9c62a2c11c Bug 1293739 - Part 1: Rename nsCSSProperty to nsCSSPropertyID. r=dholbert
This patch is generated by the following commands (note: if you're running
using OS X's sed, which accepts slightly different flags, you'll have to
specify an actual backup suffix in -i, or use gsed from Homebrew):

  hg stat -c \
  | cut -c 3-  \
  | tr '\n' '\0' \
  | xargs -0 -P 8 gsed --follow-symlinks 's/\bnsCSSProperty\b/nsCSSPropertyID/g' -i''

Then:

  hg mv layout/style/nsCSSProperty.h layout/style/nsCSSPropertyID.h

... and finally, manually renaming nsCSSProperty in the include guard in
nsCSSProperty.h.

MozReview-Commit-ID: ZV6jyvmLfA

--HG--
rename : layout/style/nsCSSProperty.h => layout/style/nsCSSPropertyID.h
2016-08-09 16:28:19 -07:00
Daosheng Mu
8083dbd7bd Bug 778654 - Implement and move tabIndex functions to Element class to avoid duplicate work.r=peterv,heycam
MozReview-Commit-ID: uetkJztNcn

--HG--
extra : transplant_source : U%E7va%AE%E6%FE%BDN.%28%AA%8F%19%1D%FF%26%E6%B7t
2016-05-24 12:22:17 +08:00
Cameron McCormack
7e0f01ceba Bug 1280772 - Part 2: Rename eCSSDeclaration to eGeckoCSSDeclaration. r=bholley 2016-06-24 13:35:12 +10:00
Jeremy Chen
685cf4c3d8 Bug 1273766 - part3: purge NS_UpdateHint inline. r=heycam
MozReview-Commit-ID: IIOT9jq8hOl

--HG--
extra : rebase_source : dfb3d874ce4419f32f13e662bd495e97ac9cac10
2016-05-23 11:26:03 +08:00
Xidorn Quan
fa7ba2cb82 Bug 1269975 part 1 - Move nsCSSProps::EnabledState to a top level enum class mozilla::CSSEnabledState. r=heycam
MozReview-Commit-ID: 3KH5cqDFzUI

--HG--
extra : rebase_source : 3c8355f7807982152a16a913b31cbcdd6ef78030
extra : source : 73e89d25a34ca5587f306b848b0b801342f9432f
2016-05-10 18:44:05 +10:00
Ryan VanderMeulen
f514ed495c Backed out 4 changesets (bug 1269975) for bustage.
Backed out changeset a55ecedea260 (bug 1269975)
Backed out changeset 5321545b938c (bug 1269975)
Backed out changeset 7e4a2ee61ef3 (bug 1269975)
Backed out changeset d181f8e7e4c3 (bug 1269975)
2016-05-10 00:08:54 -04:00
Xidorn Quan
30a6d76b26 Bug 1269975 part 1 - Move nsCSSProps::EnabledState to a top level enum class mozilla::CSSEnabledState. r=heycam
MozReview-Commit-ID: 3KH5cqDFzUI

--HG--
extra : source : 73e89d25a34ca5587f306b848b0b801342f9432f
2016-05-10 13:36:25 +10:00
Robert Longson
481a70b111 Bug 1158500 - make writing-mode a mapped CSS property. r=cam 2016-04-01 22:08:04 +01:00
Nicholas Nethercote
d376f9f82e Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm.
do_GetAtom() is currently just a synonym for NS_NewAtom().

--HG--
extra : rebase_source : f4409784f931616cbc300591e6b843d30805c273
2016-03-29 10:09:43 +11:00
Cameron McCormack
89cac5abd1 Bug 1248864 - Part 3: Use RestyleManagerHandle instead of concrete restyle manager class. r=dholbert 2016-02-24 18:01:12 +11:00
Cameron McCormack
736a5f47e7 Bug 1248864 - Part 1: Move RestyleManager.h to EXPORTS.mozilla. r=dholbert 2016-02-24 18:01:12 +11:00
Robert Longson
e5adaf828f Bug 1145195 part 1 - Create a helper function for PrependLocalTransformsTo in SVGContentUtils r=dholbert 2015-12-02 22:36:23 +00:00
L. David Baron
a3eadb1b86 Bug 1221436 patch 2 - For style attributes, only store a css::Declaration instead of a css::StyleRule. r=heycam
Now that Declaration implements nsIStyleRule, we don't need the memory
overhead of storing a StyleRule object for style attributes.

We also need to change this prior to patch 5, because the changes in
patch 5 that will allow rules to change (but declarations not) would
otherwise break due to style attribute object merging done by
nsAttrValue::ParseStyleAttribute.

--HG--
extra : commitid : Ij4yRdba7wa
2015-11-09 15:57:16 +08:00
L. David Baron
a511f77fef Bug 978833 patch 18 - Eliminate StyleRule::RuleMatched and call Declaration::SetImmutable directly for style rules (like for @page and keyframe rules). r=heycam
This is just simplification (plus the addition of an assertion).

--HG--
extra : commitid : 8jnKsQbG74s
2015-11-05 16:44:10 +08:00
L. David Baron
bd9bbaa522 Bug 978833 patch 12 - Use the css::Declaration instead of the css::StyleRule as the matching rule. r=heycam
This is the key change in this patch series; it changes the object we
use for style data (currently nsIStyleRule) identity.  It allows
removing some hacks we have to deal with that for StyleRule, and avoids
having to write similar hacks for nsCSSKeyframeRule and nsCSSPageRule
(which are broken without this).

I confirmed locally that it is this patch that fixes both of the todo_is
mochitests, by building and testing with the patch queue through patch
11, and again through patch 12.

--HG--
extra : commitid : AzgBp6KfPhJ
2015-11-05 16:44:10 +08:00
Birunthan Mohanathas
9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd
a405065792 Bug 968923 - fix bogus assert in nsSVGElement.cpp; r=heycam
Landing this on a CLOSED TREE
2015-08-11 00:24:27 -04:00
Cameron McCormack
81c7895606 Bug 968923 - part 3d - record use counter information from the CSS parser; r=dbaron 2015-06-03 15:21:24 -04:00
Birunthan Mohanathas
7315345693 Bug 1191100 - Remove XPIDL signature comments in .cpp files. r=ehsan
Comment-only so DONTBUILD.
2015-08-04 16:17:36 -07:00