Bug 1352025 part 2 - Stop passing in url as string for parsing. r?Manishearth
MozReview-Commit-ID: CRgOO7NyYd9
--- a/dom/animation/KeyframeUtils.cpp
+++ b/dom/animation/KeyframeUtils.cpp
@@ -1015,26 +1015,24 @@ MakePropertyValuePair(nsCSSPropertyID aP
result.mProperty = aProperty;
if (aDocument->GetStyleBackendType() == StyleBackendType::Servo) {
nsCString name = nsCSSProps::GetStringValue(aProperty);
NS_ConvertUTF16toUTF8 value(aStringValue);
- nsCString baseString;
// FIXME this is using the wrong base uri (bug 1343919)
RefPtr<css::URLExtraData> data =
new css::URLExtraData(aDocument->GetDocumentURI(),
aDocument->GetDocumentURI(),
aDocument->NodePrincipal());
- aDocument->GetDocumentURI()->GetSpec(baseString);
RefPtr<RawServoDeclarationBlock> servoDeclarationBlock =
- Servo_ParseProperty(&name, &value, &baseString, data).Consume();
+ Servo_ParseProperty(&name, &value, data).Consume();
if (servoDeclarationBlock) {
result.mServoDeclarationBlock = servoDeclarationBlock.forget();
}
return result;
}
nsCSSValue value;
--- a/dom/animation/TimingParams.cpp
+++ b/dom/animation/TimingParams.cpp
@@ -111,24 +111,22 @@ TimingParams::FromOptionsUnion(
TimingParams::ParseEasing(const nsAString& aEasing,
nsIDocument* aDocument,
ErrorResult& aRv)
{
MOZ_ASSERT(aDocument);
if (aDocument->IsStyledByServo()) {
nsTimingFunction timingFunction;
- nsCString baseString;
// FIXME this is using the wrong base uri (bug 1343919)
RefPtr<css::URLExtraData> data =
new css::URLExtraData(aDocument->GetDocumentURI(),
aDocument->GetDocumentURI(),
aDocument->NodePrincipal());
- aDocument->GetDocumentURI()->GetSpec(baseString);
- if (!Servo_ParseEasing(&aEasing, &baseString, data, &timingFunction)) {
+ if (!Servo_ParseEasing(&aEasing, data, &timingFunction)) {
aRv.ThrowTypeError<dom::MSG_INVALID_EASING_ERROR>(aEasing);
return Nothing();
}
if (timingFunction.mType == nsTimingFunction::Type::Linear) {
return Nothing();
}
--- a/dom/svg/nsSVGElement.cpp
+++ b/dom/svg/nsSVGElement.cpp
@@ -1229,23 +1229,21 @@ MappedAttrParser::ParseMappedAttrValue(n
if (propertyID != eCSSProperty_UNKNOWN) {
bool changed = false; // outparam for ParseProperty.
if (mBackend == StyleBackendType::Gecko) {
mParser.ParseProperty(propertyID, aMappedAttrValue, mDocURI, mBaseURI,
mElement->NodePrincipal(), mDecl->AsGecko(), &changed, false, true);
} else {
NS_ConvertUTF16toUTF8 value(aMappedAttrValue);
// FIXME (bug 1343964): Figure out a better solution for sending the base uri to servo
- nsCString baseString;
RefPtr<css::URLExtraData> data =
new css::URLExtraData(mBaseURI, mDocURI, mElement->NodePrincipal());
- mBaseURI->GetSpec(baseString);
// FIXME (bug 1342559): Set SVG parsing mode for lengths
changed = Servo_DeclarationBlock_SetPropertyById(mDecl->AsServo()->Raw(), propertyID,
- &value, false, &baseString, data);
+ &value, false, data);
}
if (changed) {
// The normal reporting of use counters by the nsCSSParser won't happen
// since it doesn't have a sheet.
if (nsCSSProps::IsShorthand(propertyID)) {
CSSPROPS_FOR_SHORTHAND_SUBPROPERTIES(subprop, propertyID,
CSSEnabledState::eForAllContent) {
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -24,17 +24,16 @@ SERVO_BINDING_FUNC(Servo_Element_ClearDa
// Styleset and Stylesheet management
SERVO_BINDING_FUNC(Servo_StyleSheet_Empty, RawServoStyleSheetStrong,
mozilla::css::SheetParsingMode parsing_mode)
SERVO_BINDING_FUNC(Servo_StyleSheet_FromUTF8Bytes, RawServoStyleSheetStrong,
mozilla::css::Loader* loader,
mozilla::ServoStyleSheet* gecko_stylesheet,
const nsACString* data,
mozilla::css::SheetParsingMode parsing_mode,
- const nsACString* base_url,
RawGeckoURLExtraData* extra_data)
SERVO_BINDING_FUNC(Servo_ImportRule_GetSheet,
RawServoStyleSheetStrong,
const RawServoImportRuleBorrowed import_rule)
SERVO_BINDING_FUNC(Servo_StyleSheet_ClearAndUpdate,
void,
RawServoStyleSheetBorrowed stylesheet,
mozilla::css::Loader* loader,
@@ -114,21 +113,19 @@ SERVO_BINDING_FUNC(Servo_NamespaceRule_G
RawServoNamespaceRuleBorrowed rule)
SERVO_BINDING_FUNC(Servo_NamespaceRule_GetURI, nsIAtom*,
RawServoNamespaceRuleBorrowed rule)
// Animations API
SERVO_BINDING_FUNC(Servo_ParseProperty,
RawServoDeclarationBlockStrong,
const nsACString* property, const nsACString* value,
- const nsACString* base,
RawGeckoURLExtraData* data)
SERVO_BINDING_FUNC(Servo_ParseEasing, bool,
const nsAString* easing,
- const nsACString* base,
RawGeckoURLExtraData* data,
nsTimingFunctionBorrowedMut output)
SERVO_BINDING_FUNC(Servo_GetComputedKeyframeValues, void,
RawGeckoKeyframeListBorrowed keyframes,
ServoComputedValuesBorrowed style,
ServoComputedValuesBorrowedOrNull parent_style,
RawServoStyleSetBorrowed set,
RawGeckoComputedKeyframeValuesListBorrowedMut result)
@@ -154,17 +151,16 @@ SERVO_BINDING_FUNC(Servo_AnimationValue_
RefPtr<nsCSSValueSharedList>* list)
SERVO_BINDING_FUNC(Servo_AnimationValue_DeepEqual, bool,
RawServoAnimationValueBorrowed,
RawServoAnimationValueBorrowed)
// Style attribute
SERVO_BINDING_FUNC(Servo_ParseStyleAttribute, RawServoDeclarationBlockStrong,
const nsACString* data,
- const nsACString* base,
RawGeckoURLExtraData* extra_data)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_CreateEmpty,
RawServoDeclarationBlockStrong)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_Clone, RawServoDeclarationBlockStrong,
RawServoDeclarationBlockBorrowed declarations)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_Equals, bool,
RawServoDeclarationBlockBorrowed a,
RawServoDeclarationBlockBorrowed b)
@@ -187,23 +183,21 @@ SERVO_BINDING_FUNC(Servo_DeclarationBloc
nsCSSPropertyID property, nsAString* value)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_GetPropertyIsImportant, bool,
RawServoDeclarationBlockBorrowed declarations,
const nsACString* property)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetProperty, bool,
RawServoDeclarationBlockBorrowed declarations,
const nsACString* property,
const nsACString* value, bool is_important,
- const nsACString* base,
RawGeckoURLExtraData* data)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetPropertyById, bool,
RawServoDeclarationBlockBorrowed declarations,
nsCSSPropertyID property,
const nsACString* value, bool is_important,
- const nsACString* base,
RawGeckoURLExtraData* data)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemoveProperty, void,
RawServoDeclarationBlockBorrowed declarations,
const nsACString* property)
SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemovePropertyById, void,
RawServoDeclarationBlockBorrowed declarations,
nsCSSPropertyID property)
--- a/layout/style/ServoDeclarationBlock.cpp
+++ b/layout/style/ServoDeclarationBlock.cpp
@@ -11,21 +11,19 @@
namespace mozilla {
/* static */ already_AddRefed<ServoDeclarationBlock>
ServoDeclarationBlock::FromCssText(const nsAString& aCssText,
css::URLExtraData* aExtraData)
{
NS_ConvertUTF16toUTF8 value(aCssText);
- nsCString baseString;
// FIXME (bug 1343964): Figure out a better solution for sending the base uri to servo
- aExtraData->BaseURI()->GetSpec(baseString);
RefPtr<RawServoDeclarationBlock>
- raw = Servo_ParseStyleAttribute(&value, &baseString, aExtraData).Consume();
+ raw = Servo_ParseStyleAttribute(&value, aExtraData).Consume();
RefPtr<ServoDeclarationBlock> decl = new ServoDeclarationBlock(raw.forget());
return decl.forget();
}
void
ServoDeclarationBlock::GetPropertyValue(const nsAString& aProperty,
nsAString& aValue) const
{
--- a/layout/style/ServoStyleSheet.cpp
+++ b/layout/style/ServoStyleSheet.cpp
@@ -85,25 +85,21 @@ ServoStyleSheet::ParseSheet(css::Loader*
nsIURI* aSheetURI,
nsIURI* aBaseURI,
nsIPrincipal* aSheetPrincipal,
uint32_t aLineNumber)
{
RefPtr<css::URLExtraData> extraData =
new css::URLExtraData(aBaseURI, aSheetURI, aSheetPrincipal);
- nsCString baseString;
- nsresult rv = aBaseURI->GetSpec(baseString);
- NS_ENSURE_SUCCESS(rv, rv);
-
NS_ConvertUTF16toUTF8 input(aInput);
if (!Inner()->mSheet) {
Inner()->mSheet =
- Servo_StyleSheet_FromUTF8Bytes(aLoader, this, &input, mParsingMode,
- &baseString, extraData).Consume();
+ Servo_StyleSheet_FromUTF8Bytes(aLoader, this, &input,
+ mParsingMode, extraData).Consume();
} else {
Servo_StyleSheet_ClearAndUpdate(Inner()->mSheet, aLoader,
this, &input, extraData);
}
return NS_OK;
}
--- a/layout/style/nsDOMCSSDeclaration.cpp
+++ b/layout/style/nsDOMCSSDeclaration.cpp
@@ -303,23 +303,21 @@ nsDOMCSSDeclaration::ParsePropertyValue(
bool changed;
if (decl->IsGecko()) {
nsCSSParser cssParser(env.mCSSLoader);
cssParser.ParseProperty(aPropID, aPropValue,
env.mSheetURI, env.mBaseURI, env.mPrincipal,
decl->AsGecko(), &changed, aIsImportant);
} else {
NS_ConvertUTF16toUTF8 value(aPropValue);
+ // FIXME (bug 1343964): Figure out a better solution for sending the base uri to servo
RefPtr<css::URLExtraData> data =
new css::URLExtraData(env.mBaseURI, env.mSheetURI, env.mPrincipal);
- nsCString baseString;
- // FIXME (bug 1343964): Figure out a better solution for sending the base uri to servo
- env.mBaseURI->GetSpec(baseString);
changed = Servo_DeclarationBlock_SetPropertyById(
- decl->AsServo()->Raw(), aPropID, &value, aIsImportant, &baseString, data);
+ decl->AsServo()->Raw(), aPropID, &value, aIsImportant, data);
}
if (!changed) {
// Parsing failed -- but we don't throw an exception for that.
return NS_OK;
}
return SetCSSDeclaration(decl);
}
@@ -357,20 +355,18 @@ nsDOMCSSDeclaration::ParseCustomProperty
cssParser.ParseVariable(propName, aPropValue, env.mSheetURI,
env.mBaseURI, env.mPrincipal, decl->AsGecko(),
&changed, aIsImportant);
} else {
NS_ConvertUTF16toUTF8 property(aPropertyName);
NS_ConvertUTF16toUTF8 value(aPropValue);
RefPtr<css::URLExtraData> data =
new css::URLExtraData(env.mBaseURI, env.mSheetURI, env.mPrincipal);
- nsCString baseString;
- env.mBaseURI->GetSpec(baseString);
changed = Servo_DeclarationBlock_SetProperty(
- decl->AsServo()->Raw(), &property, &value, aIsImportant, &baseString, data);
+ decl->AsServo()->Raw(), &property, &value, aIsImportant, data);
}
if (!changed) {
// Parsing failed -- but we don't throw an exception for that.
return NS_OK;
}
return SetCSSDeclaration(decl);
}