This commit is contained in:
Cameron Kaiser 2017-12-03 20:08:43 -08:00
parent 71e9386e75
commit dfaeb3f24a
9 changed files with 36 additions and 22 deletions

View File

@ -56,6 +56,9 @@ public:
}
return nsXMLElement::PreHandleEvent(aVisitor);
}
protected:
nsIContent* AsContent() override { return this; }
private:
virtual ~nsGenConImageContent();

View File

@ -868,7 +868,7 @@ nsImageLoadingContent::LoadImage(nsIURI* aNewURI,
// We use the principal of aDocument to avoid having to QI |this| an extra
// time. It should always be the same as the principal of this node.
#ifdef DEBUG
nsCOMPtr<nsIContent> thisContent = do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
nsIContent* thisContent = AsContent();
MOZ_ASSERT(thisContent &&
thisContent->NodePrincipal() == aDocument->NodePrincipal(),
"Principal mismatch?");
@ -909,8 +909,7 @@ nsImageLoadingContent::LoadImage(nsIURI* aNewURI,
// Not blocked. Do the load.
RefPtr<imgRequestProxy>& req = PrepareNextRequest(aImageLoadType);
nsCOMPtr<nsIContent> content =
do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
nsIContent* content = AsContent();
nsresult rv = nsContentUtils::LoadImage(aNewURI, aDocument,
aDocument->NodePrincipal(),
aDocument->GetDocumentURI(),
@ -1048,10 +1047,7 @@ nsImageLoadingContent::UpdateImageState(bool aNotify)
return;
}
nsCOMPtr<nsIContent> thisContent = do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
if (!thisContent) {
return;
}
nsIContent* thisContent = AsContent();
mLoading = mBroken = mUserDisabled = mSuppressed = false;
@ -1115,29 +1111,19 @@ nsImageLoadingContent::UseAsPrimaryRequest(imgRequestProxy* aRequest,
nsIDocument*
nsImageLoadingContent::GetOurOwnerDoc()
{
nsCOMPtr<nsIContent> thisContent =
do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
NS_ENSURE_TRUE(thisContent, nullptr);
return thisContent->OwnerDoc();
return AsContent()->OwnerDoc();
}
nsIDocument*
nsImageLoadingContent::GetOurCurrentDoc()
{
nsCOMPtr<nsIContent> thisContent =
do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
NS_ENSURE_TRUE(thisContent, nullptr);
return thisContent->GetComposedDoc();
return AsContent()->GetComposedDoc();
}
nsIFrame*
nsImageLoadingContent::GetOurPrimaryFrame()
{
nsCOMPtr<nsIContent> thisContent =
do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
return thisContent->GetPrimaryFrame();
return AsContent()->GetPrimaryFrame();
}
nsPresContext* nsImageLoadingContent::GetFramePresContext()
@ -1159,8 +1145,7 @@ nsImageLoadingContent::StringToURI(const nsAString& aSpec,
NS_PRECONDITION(aURI, "Null out param");
// (1) Get the base URI
nsCOMPtr<nsIContent> thisContent = do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
NS_ASSERTION(thisContent, "An image loading content must be an nsIContent");
nsIContent* thisContent = AsContent();
nsCOMPtr<nsIURI> baseURL = thisContent->GetBaseURI();
// (2) Get the charset

View File

@ -214,6 +214,10 @@ protected:
// The nsContentPolicyType we would use for this ImageLoadType
static nsContentPolicyType PolicyTypeForLoad(ImageLoadType aImageLoadType);
// Get ourselves as an nsIContent*. Not const because some of the callers
// want a non-const nsIContent.
virtual nsIContent* AsContent() = 0;
private:
/**
* Struct used to manage the image observers.

View File

@ -350,6 +350,9 @@ protected:
virtual nsresult AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
const nsAttrValue* aValue, bool aNotify) override;
// Override for nsImageLoadingContent.
nsIContent* AsContent() override { return this; }
// This is a weak reference that this element and the HTMLFormElement
// cooperate in maintaining.
HTMLFormElement* mForm;

View File

@ -1254,6 +1254,11 @@ protected:
*/
bool IsPopupBlocked() const;
/**
* Override for nsImageLoadingContent.
*/
nsIContent* AsContent() override { return this; }
nsCOMPtr<nsIControllers> mControllers;
/*

View File

@ -235,6 +235,10 @@ public:
return GetContentDocument();
}
protected:
// Override for nsImageLoadingContent.
nsIContent* AsContent() override { return this; }
private:
/**
* Calls LoadObject with the correct arguments to start the plugin load.

View File

@ -192,6 +192,10 @@ public:
return GetContentDocument();
}
protected:
// Override for nsImageLoadingContent.
nsIContent* AsContent() override { return this; }
private:
virtual ~HTMLSharedObjectElement();

View File

@ -82,6 +82,9 @@ protected:
virtual SVGAnimatedPreserveAspectRatio *GetPreserveAspectRatio() override;
virtual StringAttributesInfo GetStringInfo() override;
// Override for nsImageLoadingContent.
nsIContent* AsContent() override { return this; }
enum { RESULT, HREF };
nsSVGString mStringAttributes[2];
static StringInfo sStringInfo[2];

View File

@ -83,6 +83,9 @@ protected:
virtual SVGAnimatedPreserveAspectRatio *GetPreserveAspectRatio() override;
virtual StringAttributesInfo GetStringInfo() override;
// Override for nsImageLoadingContent.
nsIContent* AsContent() override { return this; }
enum { ATTR_X, ATTR_Y, ATTR_WIDTH, ATTR_HEIGHT };
nsSVGLength2 mLengthAttributes[4];
static LengthInfo sLengthInfo[4];