Skip to content

Commit a2696c3

Browse files
committed
Bug 1424474 part 2. Make sure that we only pass non-system subject principals to setters/methods that later use that principal for loading security checks. r=kmag
1 parent e2f384f commit a2696c3

31 files changed

+48
-51
lines changed

dom/base/Element.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3955,7 +3955,7 @@ Element::GetInnerHTML(nsAString& aInnerHTML)
39553955
}
39563956

39573957
void
3958-
Element::SetInnerHTML(const nsAString& aInnerHTML, nsIPrincipal& aSubjectPrincipal, ErrorResult& aError)
3958+
Element::SetInnerHTML(const nsAString& aInnerHTML, nsIPrincipal* aSubjectPrincipal, ErrorResult& aError)
39593959
{
39603960
SetInnerHTMLInternal(aInnerHTML, aError);
39613961
}

dom/base/Element.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,7 +1341,7 @@ class Element : public FragmentOrElement
13411341
nsTArray<RefPtr<Animation>>& aAnimations);
13421342

13431343
NS_IMETHOD GetInnerHTML(nsAString& aInnerHTML);
1344-
virtual void SetInnerHTML(const nsAString& aInnerHTML, nsIPrincipal& aSubjectPrincipal, ErrorResult& aError);
1344+
virtual void SetInnerHTML(const nsAString& aInnerHTML, nsIPrincipal* aSubjectPrincipal, ErrorResult& aError);
13451345
void GetOuterHTML(nsAString& aOuterHTML);
13461346
void SetOuterHTML(const nsAString& aOuterHTML, ErrorResult& aError);
13471347
void InsertAdjacentHTML(const nsAString& aPosition, const nsAString& aText,
@@ -1568,9 +1568,9 @@ class Element : public FragmentOrElement
15681568
aError = SetAttr(kNameSpaceID_None, aAttr, aValue, true);
15691569
}
15701570

1571-
void SetAttr(nsAtom* aAttr, const nsAString& aValue, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aError)
1571+
void SetAttr(nsAtom* aAttr, const nsAString& aValue, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aError)
15721572
{
1573-
aError = SetAttr(kNameSpaceID_None, aAttr, aValue, &aTriggeringPrincipal, true);
1573+
aError = SetAttr(kNameSpaceID_None, aAttr, aValue, aTriggeringPrincipal, true);
15741574
}
15751575

15761576
/**

dom/base/nsINode.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1353,10 +1353,10 @@ class nsINode : public mozilla::dom::EventTarget
13531353
GetTextContentInternal(aTextContent, aError);
13541354
}
13551355
void SetTextContent(const nsAString& aTextContent,
1356-
nsIPrincipal& aSubjectPrincipal,
1356+
nsIPrincipal* aSubjectPrincipal,
13571357
mozilla::ErrorResult& aError)
13581358
{
1359-
SetTextContentInternal(aTextContent, &aSubjectPrincipal, aError);
1359+
SetTextContentInternal(aTextContent, aSubjectPrincipal, aError);
13601360
}
13611361
void SetTextContent(const nsAString& aTextContent,
13621362
mozilla::ErrorResult& aError)

dom/bindings/GenerateCSS2PropertiesWebIDL.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def generate(output, idlFilename, preprocessorHeader):
2929
# Unfortunately, even some of the getters here are fallible
3030
# (e.g. on nsComputedDOMStyle).
3131
extendedAttrs = ["Throws", "TreatNullAs=EmptyString",
32-
"SetterNeedsSubjectPrincipal"]
32+
"SetterNeedsSubjectPrincipal=NonSystem"]
3333
if pref is not "":
3434
extendedAttrs.append('Pref="%s"' % pref)
3535

dom/html/HTMLFrameElement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class HTMLFrameElement final : public nsGenericHTMLFrameElement
104104
{
105105
GetURIAttr(nsGkAtoms::src, nullptr, aSrc);
106106
}
107-
void SetSrc(const nsAString& aSrc, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aError)
107+
void SetSrc(const nsAString& aSrc, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aError)
108108
{
109109
SetHTMLAttr(nsGkAtoms::src, aSrc, aTriggeringPrincipal, aError);
110110
}

dom/html/HTMLIFrameElement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class HTMLIFrameElement final : public nsGenericHTMLFrameElement
5050
{
5151
GetURIAttr(nsGkAtoms::src, nullptr, aSrc);
5252
}
53-
void SetSrc(const nsAString& aSrc, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aError)
53+
void SetSrc(const nsAString& aSrc, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aError)
5454
{
5555
SetHTMLAttr(nsGkAtoms::src, aSrc, aTriggeringPrincipal, aError);
5656
}

dom/html/HTMLImageElement.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,15 @@ class HTMLImageElement final : public nsGenericHTMLElement,
150150
{
151151
SetHTMLAttr(nsGkAtoms::src, aSrc, aError);
152152
}
153-
void SetSrc(const nsAString& aSrc, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aError)
153+
void SetSrc(const nsAString& aSrc, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aError)
154154
{
155155
SetHTMLAttr(nsGkAtoms::src, aSrc, aTriggeringPrincipal, aError);
156156
}
157157
void GetSrcset(nsAString& aSrcset)
158158
{
159159
GetHTMLAttr(nsGkAtoms::srcset, aSrcset);
160160
}
161-
void SetSrcset(const nsAString& aSrcset, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aError)
161+
void SetSrcset(const nsAString& aSrcset, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aError)
162162
{
163163
SetHTMLAttr(nsGkAtoms::srcset, aSrcset, aTriggeringPrincipal, aError);
164164
}

dom/html/HTMLInputElement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ class HTMLInputElement final : public nsGenericHTMLFormElementWithState,
718718
{
719719
GetURIAttr(nsGkAtoms::src, nullptr, aValue);
720720
}
721-
void SetSrc(const nsAString& aValue, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aRv)
721+
void SetSrc(const nsAString& aValue, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aRv)
722722
{
723723
SetHTMLAttr(nsGkAtoms::src, aValue, aTriggeringPrincipal, aRv);
724724
}

dom/html/HTMLLinkElement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class HTMLLinkElement final : public nsGenericHTMLElement,
8888
{
8989
GetURIAttr(nsGkAtoms::href, nullptr, aValue);
9090
}
91-
void SetHref(const nsAString& aHref, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aRv)
91+
void SetHref(const nsAString& aHref, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aRv)
9292
{
9393
SetHTMLAttr(nsGkAtoms::href, aHref, aTriggeringPrincipal, aRv);
9494
}

dom/html/HTMLMediaElement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ class HTMLMediaElement : public nsGenericHTMLElement,
442442

443443
MediaError* GetError() const;
444444

445-
void SetSrc(const nsAString& aSrc, nsIPrincipal& aTriggeringPrincipal, ErrorResult& aRv)
445+
void SetSrc(const nsAString& aSrc, nsIPrincipal* aTriggeringPrincipal, ErrorResult& aRv)
446446
{
447447
SetHTMLAttr(nsGkAtoms::src, aSrc, aTriggeringPrincipal, aRv);
448448
}

0 commit comments

Comments
 (0)