mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-09 12:51:09 +02:00
Given that we are going to add ContentBlockingAllowList in CookieSettings, so CookieSettings will be responsible for more stuff than the cookie behavior and cookie permission. We should use a proper name to reflect the purpose of it. The name 'CookieSettings' is misleading that this is only for cookie related stuff. So, we decide to rename 'CookieSettins' to 'CookieJarSettings' which serves better meaning here. Differential Revision: https://phabricator.services.mozilla.com/D63935 --HG-- rename : netwerk/cookie/CookieSettings.cpp => netwerk/cookie/CookieJarSettings.cpp rename : netwerk/cookie/nsICookieSettings.idl => netwerk/cookie/nsICookieJarSettings.idl extra : moz-landing-system : lando
58 lines
2 KiB
C++
58 lines
2 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "txXMLParser.h"
|
|
#include "txURIUtils.h"
|
|
#include "txXPathTreeWalker.h"
|
|
|
|
#include "mozilla/dom/Document.h"
|
|
#include "nsSyncLoadService.h"
|
|
#include "nsNetUtil.h"
|
|
#include "nsIURI.h"
|
|
|
|
using namespace mozilla::dom;
|
|
|
|
nsresult txParseDocumentFromURI(const nsAString& aHref,
|
|
const txXPathNode& aLoader, nsAString& aErrMsg,
|
|
txXPathNode** aResult) {
|
|
NS_ENSURE_ARG_POINTER(aResult);
|
|
*aResult = nullptr;
|
|
nsCOMPtr<nsIURI> documentURI;
|
|
nsresult rv = NS_NewURI(getter_AddRefs(documentURI), aHref);
|
|
NS_ENSURE_SUCCESS(rv, rv);
|
|
|
|
Document* loaderDocument = txXPathNativeNode::getDocument(aLoader);
|
|
|
|
nsCOMPtr<nsILoadGroup> loadGroup = loaderDocument->GetDocumentLoadGroup();
|
|
|
|
// For the system principal loaderUri will be null here, which is good
|
|
// since that means that chrome documents can load any uri.
|
|
|
|
// Raw pointer, we want the resulting txXPathNode to hold a reference to
|
|
// the document.
|
|
Document* theDocument = nullptr;
|
|
nsAutoSyncOperation sync(loaderDocument);
|
|
rv = nsSyncLoadService::LoadDocument(
|
|
documentURI, nsIContentPolicy::TYPE_INTERNAL_XMLHTTPREQUEST,
|
|
loaderDocument->NodePrincipal(),
|
|
nsILoadInfo::SEC_REQUIRE_CORS_DATA_INHERITS, loadGroup,
|
|
loaderDocument->CookieJarSettings(), true,
|
|
loaderDocument->GetReferrerPolicy(), &theDocument);
|
|
|
|
if (NS_FAILED(rv)) {
|
|
aErrMsg.AppendLiteral("Document load of ");
|
|
aErrMsg.Append(aHref);
|
|
aErrMsg.AppendLiteral(" failed.");
|
|
return NS_FAILED(rv) ? rv : NS_ERROR_FAILURE;
|
|
}
|
|
|
|
*aResult = txXPathNativeNode::createXPathNode(theDocument);
|
|
if (!*aResult) {
|
|
NS_RELEASE(theDocument);
|
|
return NS_ERROR_FAILURE;
|
|
}
|
|
|
|
return NS_OK;
|
|
}
|