Bug 1572349 - Add Document::ResolveWithBaseURI r=bzbarsky

This adds a helper method that enables simpler code in D41047 and D36714.

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Kagami Sascha Rosylight 2019-08-15 14:49:19 +00:00
parent a71872d1de
commit 65bd8bce7d
2 changed files with 14 additions and 0 deletions

View File

@ -331,6 +331,7 @@
#include "mozilla/PendingFullscreenEvent.h"
#include "mozilla/RestyleManager.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/ResultExtensions.h"
#include "nsHTMLTags.h"
#include "MobileViewportManager.h"
#include "NodeUbiReporting.h"
@ -5750,6 +5751,14 @@ void Document::SetBaseURI(nsIURI* aURI) {
RefreshLinkHrefs();
}
Result<nsCOMPtr<nsIURI>, nsresult> Document::ResolveWithBaseURI(
const nsAString& aURI) {
nsCOMPtr<nsIURI> resolvedUri;
MOZ_TRY(
NS_NewURI(getter_AddRefs(resolvedUri), aURI, nullptr, GetDocBaseURI()));
return std::move(resolvedURI);
}
URLExtraData* Document::DefaultStyleAttrURLData() {
MOZ_ASSERT(NS_IsMainThread());
nsIURI* baseURI = GetDocBaseURI();

View File

@ -910,6 +910,11 @@ class Document : public nsINode,
void SetBaseURI(nsIURI* aURI);
/**
* Resolves a URI based on the document's base URI.
*/
Result<nsCOMPtr<nsIURI>, nsresult> ResolveWithBaseURI(const nsAString& aURI);
/**
* Return the URL data which style system needs for resolving url value.
* This method attempts to use the cached object in mCachedURLData, but