summaryrefslogtreecommitdiffstats
path: root/docshell/base
diff options
context:
space:
mode:
Diffstat (limited to 'docshell/base')
-rw-r--r--docshell/base/CanonicalBrowsingContext.cpp150
-rw-r--r--docshell/base/CanonicalBrowsingContext.h9
-rw-r--r--docshell/base/nsAboutRedirector.cpp6
-rw-r--r--docshell/base/nsDocShell.cpp67
-rw-r--r--docshell/base/nsDocShell.h4
-rw-r--r--docshell/base/nsDocShellLoadState.cpp8
-rw-r--r--docshell/base/nsDocShellLoadState.h4
-rw-r--r--docshell/base/nsIDocShell.idl37
-rw-r--r--docshell/base/nsIDocShellTreeOwner.idl2
-rw-r--r--docshell/base/nsIPrivacyTransitionObserver.idl2
-rw-r--r--docshell/base/nsIURIFixup.idl2
11 files changed, 182 insertions, 109 deletions
diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp
index 84f2d2960a..4c92988c9b 100644
--- a/docshell/base/CanonicalBrowsingContext.cpp
+++ b/docshell/base/CanonicalBrowsingContext.cpp
@@ -6,8 +6,10 @@
#include "mozilla/dom/CanonicalBrowsingContext.h"
+#include "ContentAnalysis.h"
#include "ErrorList.h"
#include "mozilla/CheckedInt.h"
+#include "mozilla/Components.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/EventForwards.h"
#include "mozilla/AsyncEventDispatcher.h"
@@ -47,6 +49,7 @@
#include "nsFrameLoader.h"
#include "nsFrameLoaderOwner.h"
#include "nsGlobalWindowOuter.h"
+#include "nsIContentAnalysis.h"
#include "nsIWebBrowserChrome.h"
#include "nsIXULRuntime.h"
#include "nsNetUtil.h"
@@ -668,6 +671,9 @@ CanonicalBrowsingContext::ReplaceLoadingSessionHistoryEntryForLoad(
using PrintPromise = CanonicalBrowsingContext::PrintPromise;
#ifdef NS_PRINTING
+// Clients must call StaticCloneForPrintingCreated or
+// NoStaticCloneForPrintingWillBeCreated before the underlying promise can
+// resolve.
class PrintListenerAdapter final : public nsIWebProgressListener {
public:
explicit PrintListenerAdapter(PrintPromise::Private* aPromise)
@@ -678,10 +684,14 @@ class PrintListenerAdapter final : public nsIWebProgressListener {
// NS_DECL_NSIWEBPROGRESSLISTENER
NS_IMETHOD OnStateChange(nsIWebProgress* aWebProgress, nsIRequest* aRequest,
uint32_t aStateFlags, nsresult aStatus) override {
+ MOZ_ASSERT(NS_IsMainThread());
if (aStateFlags & nsIWebProgressListener::STATE_STOP &&
aStateFlags & nsIWebProgressListener::STATE_IS_DOCUMENT && mPromise) {
- mPromise->Resolve(true, __func__);
- mPromise = nullptr;
+ mPrintJobFinished = true;
+ if (mHaveSetBrowsingContext) {
+ mPromise->Resolve(mClonedStaticBrowsingContext, __func__);
+ mPromise = nullptr;
+ }
}
return NS_OK;
}
@@ -716,10 +726,28 @@ class PrintListenerAdapter final : public nsIWebProgressListener {
return NS_OK;
}
+ void StaticCloneForPrintingCreated(
+ MaybeDiscardedBrowsingContext&& aClonedStaticBrowsingContext) {
+ MOZ_ASSERT(NS_IsMainThread());
+ mClonedStaticBrowsingContext = std::move(aClonedStaticBrowsingContext);
+ mHaveSetBrowsingContext = true;
+ if (mPrintJobFinished && mPromise) {
+ mPromise->Resolve(mClonedStaticBrowsingContext, __func__);
+ mPromise = nullptr;
+ }
+ }
+
+ void NoStaticCloneForPrintingWillBeCreated() {
+ StaticCloneForPrintingCreated(nullptr);
+ }
+
private:
~PrintListenerAdapter() = default;
RefPtr<PrintPromise::Private> mPromise;
+ MaybeDiscardedBrowsingContext mClonedStaticBrowsingContext = nullptr;
+ bool mHaveSetBrowsingContext = false;
+ bool mPrintJobFinished = false;
};
NS_IMPL_ISUPPORTS(PrintListenerAdapter, nsIWebProgressListener)
@@ -735,7 +763,9 @@ already_AddRefed<Promise> CanonicalBrowsingContext::PrintJS(
Print(aPrintSettings)
->Then(
GetCurrentSerialEventTarget(), __func__,
- [promise](bool) { promise->MaybeResolveWithUndefined(); },
+ [promise](MaybeDiscardedBrowsingContext) {
+ promise->MaybeResolveWithUndefined();
+ },
[promise](nsresult aResult) { promise->MaybeReject(aResult); });
return promise.forget();
}
@@ -745,7 +775,72 @@ RefPtr<PrintPromise> CanonicalBrowsingContext::Print(
#ifndef NS_PRINTING
return PrintPromise::CreateAndReject(NS_ERROR_NOT_AVAILABLE, __func__);
#else
+// Content analysis is not supported on non-Windows platforms.
+# if defined(XP_WIN)
+ bool needContentAnalysis = false;
+ nsCOMPtr<nsIContentAnalysis> contentAnalysis =
+ mozilla::components::nsIContentAnalysis::Service();
+ Unused << NS_WARN_IF(!contentAnalysis);
+ if (contentAnalysis) {
+ nsresult rv = contentAnalysis->GetIsActive(&needContentAnalysis);
+ Unused << NS_WARN_IF(NS_FAILED(rv));
+ }
+ if (needContentAnalysis) {
+ auto done = MakeRefPtr<PrintPromise::Private>(__func__);
+ contentanalysis::ContentAnalysis::PrintToPDFToDetermineIfPrintAllowed(
+ this, aPrintSettings)
+ ->Then(
+ GetCurrentSerialEventTarget(), __func__,
+ [done, aPrintSettings = RefPtr{aPrintSettings},
+ self = RefPtr{this}](
+ contentanalysis::ContentAnalysis::PrintAllowedResult aResponse)
+ MOZ_CAN_RUN_SCRIPT_BOUNDARY_LAMBDA mutable {
+ if (aResponse.mAllowed) {
+ self->PrintWithNoContentAnalysis(
+ aPrintSettings, false,
+ aResponse.mCachedStaticDocumentBrowsingContext)
+ ->ChainTo(done.forget(), __func__);
+ } else {
+ // Since we are not doing the second print in this case,
+ // release the clone that is no longer needed.
+ self->ReleaseClonedPrint(
+ aResponse.mCachedStaticDocumentBrowsingContext);
+ done->Reject(NS_ERROR_CONTENT_BLOCKED, __func__);
+ }
+ },
+ [done, self = RefPtr{this}](
+ contentanalysis::ContentAnalysis::PrintAllowedError
+ aErrorResponse) MOZ_CAN_RUN_SCRIPT_BOUNDARY_LAMBDA {
+ // Since we are not doing the second print in this case, release
+ // the clone that is no longer needed.
+ self->ReleaseClonedPrint(
+ aErrorResponse.mCachedStaticDocumentBrowsingContext);
+ done->Reject(aErrorResponse.mError, __func__);
+ });
+ return done;
+ }
+# endif
+ return PrintWithNoContentAnalysis(aPrintSettings, false, nullptr);
+#endif
+}
+void CanonicalBrowsingContext::ReleaseClonedPrint(
+ const MaybeDiscardedBrowsingContext& aClonedStaticBrowsingContext) {
+#ifdef NS_PRINTING
+ auto* browserParent = GetBrowserParent();
+ if (NS_WARN_IF(!browserParent)) {
+ return;
+ }
+ Unused << browserParent->SendDestroyPrintClone(aClonedStaticBrowsingContext);
+#endif
+}
+
+RefPtr<PrintPromise> CanonicalBrowsingContext::PrintWithNoContentAnalysis(
+ nsIPrintSettings* aPrintSettings, bool aForceStaticDocument,
+ const MaybeDiscardedBrowsingContext& aCachedStaticDocument) {
+#ifndef NS_PRINTING
+ return PrintPromise::CreateAndReject(NS_ERROR_NOT_AVAILABLE, __func__);
+#else
auto promise = MakeRefPtr<PrintPromise::Private>(__func__);
auto listener = MakeRefPtr<PrintListenerAdapter>(promise);
if (IsInProcess()) {
@@ -757,12 +852,14 @@ RefPtr<PrintPromise> CanonicalBrowsingContext::Print(
}
ErrorResult rv;
+ listener->NoStaticCloneForPrintingWillBeCreated();
outerWindow->Print(aPrintSettings,
/* aRemotePrintJob = */ nullptr, listener,
/* aDocShellToCloneInto = */ nullptr,
nsGlobalWindowOuter::IsPreview::No,
nsGlobalWindowOuter::IsForWindowDotPrint::No,
- /* aPrintPreviewCallback = */ nullptr, rv);
+ /* aPrintPreviewCallback = */ nullptr,
+ /* aCachedBrowsingContext = */ nullptr, rv);
if (rv.Failed()) {
promise->Reject(rv.StealNSResult(), __func__);
}
@@ -805,12 +902,31 @@ RefPtr<PrintPromise> CanonicalBrowsingContext::Print(
printData.remotePrintJob() =
browserParent->Manager()->SendPRemotePrintJobConstructor(remotePrintJob);
- if (listener) {
- remotePrintJob->RegisterListener(listener);
- }
+ remotePrintJob->RegisterListener(listener);
- if (NS_WARN_IF(!browserParent->SendPrint(this, printData))) {
- promise->Reject(NS_ERROR_FAILURE, __func__);
+ if (!aCachedStaticDocument.IsNullOrDiscarded()) {
+ // There is no cloned static browsing context that
+ // SendPrintClonedPage() will return, so indicate this
+ // so listener can resolve its promise.
+ listener->NoStaticCloneForPrintingWillBeCreated();
+ if (NS_WARN_IF(!browserParent->SendPrintClonedPage(
+ this, printData, aCachedStaticDocument))) {
+ promise->Reject(NS_ERROR_FAILURE, __func__);
+ }
+ } else {
+ RefPtr<PBrowserParent::PrintPromise> printPromise =
+ browserParent->SendPrint(this, printData, aForceStaticDocument);
+ printPromise->Then(
+ GetMainThreadSerialEventTarget(), __func__,
+ [listener](MaybeDiscardedBrowsingContext cachedStaticDocument) {
+ // promise will get resolved by the listener
+ listener->StaticCloneForPrintingCreated(
+ std::move(cachedStaticDocument));
+ },
+ [promise](ResponseRejectReason reason) {
+ NS_WARNING("SendPrint() failed");
+ promise->Reject(NS_ERROR_FAILURE, __func__);
+ });
}
return promise.forget();
#endif
@@ -2245,9 +2361,19 @@ bool CanonicalBrowsingContext::SupportsLoadingInParent(
return false;
}
}
- // If the current document has a beforeunload listener, then we need to
- // start the load in that process after we fire the event.
- if (global->HasBeforeUnload()) {
+
+ // If unloading the current document will cause a beforeunload listener to
+ // run, then we need to start the load in that process after we fire the
+ // event.
+ if (PreOrderWalkFlag([&](BrowsingContext* aBC) {
+ WindowContext* wc = aBC->GetCurrentWindowContext();
+ if (wc && wc->HasBeforeUnload()) {
+ // We can stop as soon as we know at least one beforeunload listener
+ // exists.
+ return WalkFlag::Stop;
+ }
+ return WalkFlag::Next;
+ }) == WalkFlag::Stop) {
return false;
}
diff --git a/docshell/base/CanonicalBrowsingContext.h b/docshell/base/CanonicalBrowsingContext.h
index 132c9f2157..ccbdf9ed96 100644
--- a/docshell/base/CanonicalBrowsingContext.h
+++ b/docshell/base/CanonicalBrowsingContext.h
@@ -136,11 +136,16 @@ class CanonicalBrowsingContext final : public BrowsingContext {
UniquePtr<LoadingSessionHistoryInfo> ReplaceLoadingSessionHistoryEntryForLoad(
LoadingSessionHistoryInfo* aInfo, nsIChannel* aNewChannel);
- using PrintPromise = MozPromise</* unused */ bool, nsresult, false>;
+ using PrintPromise =
+ MozPromise<MaybeDiscardedBrowsingContext, nsresult, false>;
MOZ_CAN_RUN_SCRIPT RefPtr<PrintPromise> Print(nsIPrintSettings*);
MOZ_CAN_RUN_SCRIPT already_AddRefed<Promise> PrintJS(nsIPrintSettings*,
ErrorResult&);
-
+ MOZ_CAN_RUN_SCRIPT RefPtr<PrintPromise> PrintWithNoContentAnalysis(
+ nsIPrintSettings* aPrintSettings, bool aForceStaticDocument,
+ const MaybeDiscardedBrowsingContext& aClonedStaticBrowsingContext);
+ MOZ_CAN_RUN_SCRIPT void ReleaseClonedPrint(
+ const MaybeDiscardedBrowsingContext& aClonedStaticBrowsingContext);
// Call the given callback on all top-level descendant BrowsingContexts.
// Return Callstate::Stop from the callback to stop calling further children.
//
diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
index fdae228b90..56efb7aed7 100644
--- a/docshell/base/nsAboutRedirector.cpp
+++ b/docshell/base/nsAboutRedirector.cpp
@@ -108,6 +108,12 @@ static const RedirEntry kRedirMap[] = {
{"credits", "https://www.mozilla.org/credits/",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::URI_MUST_LOAD_IN_CHILD},
+ {"fingerprinting",
+ "chrome://global/content/usercharacteristics/usercharacteristics.html",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::HIDE_FROM_ABOUTABOUT | nsIAboutModule::ALLOW_SCRIPT |
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
+ nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS},
{"httpsonlyerror", "chrome://global/content/httpsonlyerror/errorpage.html",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::URI_CAN_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index 3404597343..87a34cf5b2 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -144,6 +144,7 @@
#include "nsIScriptChannel.h"
#include "nsIScriptObjectPrincipal.h"
#include "nsIScriptSecurityManager.h"
+#include "nsScriptSecurityManager.h"
#include "nsIScrollableFrame.h"
#include "nsIScrollObserver.h"
#include "nsISupportsPrimitives.h"
@@ -332,7 +333,6 @@ nsDocShell::nsDocShell(BrowsingContext* aBrowsingContext,
mAppType(nsIDocShell::APP_TYPE_UNKNOWN),
mLoadType(0),
mFailedLoadType(0),
- mMetaViewportOverride(nsIDocShell::META_VIEWPORT_OVERRIDE_NONE),
mChannelToDisconnectOnPageHide(0),
mCreatingDocument(false),
#ifdef DEBUG
@@ -2376,37 +2376,6 @@ nsDocShell::ClearCachedUserAgent() {
return NS_OK;
}
-NS_IMETHODIMP
-nsDocShell::GetMetaViewportOverride(
- MetaViewportOverride* aMetaViewportOverride) {
- NS_ENSURE_ARG_POINTER(aMetaViewportOverride);
-
- *aMetaViewportOverride = mMetaViewportOverride;
- return NS_OK;
-}
-
-NS_IMETHODIMP
-nsDocShell::SetMetaViewportOverride(
- MetaViewportOverride aMetaViewportOverride) {
- // We don't have a way to verify this coming from Javascript, so this check is
- // still needed.
- if (!(aMetaViewportOverride == META_VIEWPORT_OVERRIDE_NONE ||
- aMetaViewportOverride == META_VIEWPORT_OVERRIDE_ENABLED ||
- aMetaViewportOverride == META_VIEWPORT_OVERRIDE_DISABLED)) {
- return NS_ERROR_INVALID_ARG;
- }
-
- mMetaViewportOverride = aMetaViewportOverride;
-
- // Inform our presShell that it needs to re-check its need for a viewport
- // override.
- if (RefPtr<PresShell> presShell = GetPresShell()) {
- presShell->MaybeRecreateMobileViewportManager(true);
- }
-
- return NS_OK;
-}
-
/* virtual */
int32_t nsDocShell::ItemType() { return mItemType; }
@@ -2586,10 +2555,6 @@ nsresult nsDocShell::SetDocLoaderParent(nsDocLoader* aParent) {
value = false;
}
SetAllowDNSPrefetch(mAllowDNSPrefetch && value);
-
- // We don't need to inherit metaViewportOverride, because the viewport
- // is only relevant for the outermost nsDocShell, not for any iframes
- // like this that might be embedded within it.
}
nsCOMPtr<nsIURIContentListener> parentURIListener(do_GetInterface(parent));
@@ -8689,24 +8654,18 @@ nsresult nsDocShell::HandleSameDocumentNavigation(
}
}
- auto isLoadableViaInternet = [](nsIURI* uri) {
- return (uri && (net::SchemeIsHTTP(uri) || net::SchemeIsHTTPS(uri)));
- };
-
- if (isLoadableViaInternet(principalURI) &&
- isLoadableViaInternet(mCurrentURI) && isLoadableViaInternet(newURI)) {
- nsIScriptSecurityManager* ssm = nsContentUtils::GetSecurityManager();
- if (!NS_SUCCEEDED(
- ssm->CheckSameOriginURI(newURI, principalURI, false, false)) ||
- !NS_SUCCEEDED(ssm->CheckSameOriginURI(mCurrentURI, principalURI,
- false, false))) {
- MOZ_LOG(gSHLog, LogLevel::Debug,
- ("nsDocShell[%p]: possible violation of the same origin policy "
- "during same document navigation",
- this));
- aSameDocument = false;
- return NS_OK;
- }
+ if (nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(principalURI,
+ newURI) ||
+ nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(principalURI,
+ mCurrentURI) ||
+ nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(mCurrentURI,
+ newURI)) {
+ aSameDocument = false;
+ MOZ_LOG(gSHLog, LogLevel::Debug,
+ ("nsDocShell[%p]: possible violation of the same origin policy "
+ "during same document navigation",
+ this));
+ return NS_OK;
}
}
diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h
index 82ac6c9ab9..f01e3426c4 100644
--- a/docshell/base/nsDocShell.h
+++ b/docshell/base/nsDocShell.h
@@ -1267,10 +1267,6 @@ class nsDocShell final : public nsDocLoader,
uint32_t mLoadType;
uint32_t mFailedLoadType;
- // Whether or not handling of the <meta name="viewport"> tag is overridden.
- // Possible values are defined as constants in nsIDocShell.idl.
- MetaViewportOverride mMetaViewportOverride;
-
// See WindowGlobalParent::mSingleChannelId.
mozilla::Maybe<uint64_t> mSingleChannelId;
uint32_t mRequestForBlockingFromBFCacheCount = 0;
diff --git a/docshell/base/nsDocShellLoadState.cpp b/docshell/base/nsDocShellLoadState.cpp
index 587617e73d..b3812eedd3 100644
--- a/docshell/base/nsDocShellLoadState.cpp
+++ b/docshell/base/nsDocShellLoadState.cpp
@@ -901,6 +901,14 @@ void nsDocShellLoadState::SetFileName(const nsAString& aFileName) {
mFileName = aFileName;
}
+void nsDocShellLoadState::SetRemoteTypeOverride(
+ const nsCString& aRemoteTypeOverride) {
+ MOZ_DIAGNOSTIC_ASSERT(
+ NS_IsAboutBlank(mURI),
+ "Should only have aRemoteTypeOverride for about:blank URIs");
+ mRemoteTypeOverride = mozilla::Some(aRemoteTypeOverride);
+}
+
const nsCString& nsDocShellLoadState::GetEffectiveTriggeringRemoteType() const {
// Consider non-errorpage loads from session history as being triggred by the
// parent process, as we'll validate them against the history entry.
diff --git a/docshell/base/nsDocShellLoadState.h b/docshell/base/nsDocShellLoadState.h
index a34ca1b54b..8a8aad5a2c 100644
--- a/docshell/base/nsDocShellLoadState.h
+++ b/docshell/base/nsDocShellLoadState.h
@@ -323,9 +323,7 @@ class nsDocShellLoadState final {
return mRemoteTypeOverride;
}
- void SetRemoteTypeOverride(const nsCString& aRemoteTypeOverride) {
- mRemoteTypeOverride = mozilla::Some(aRemoteTypeOverride);
- }
+ void SetRemoteTypeOverride(const nsCString& aRemoteTypeOverride);
void SetWasSchemelessInput(bool aWasSchemelessInput) {
mWasSchemelessInput = aWasSchemelessInput;
diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl
index 21f09a517e..024c0f544c 100644
--- a/docshell/base/nsIDocShell.idl
+++ b/docshell/base/nsIDocShell.idl
@@ -279,7 +279,7 @@ interface nsIDocShell : nsIDocShellTreeItem
* next element in the parent should be returned. Returns true if focus was
* successfully taken by the tree owner.
*/
- bool tabToTreeOwner(in boolean forward, in boolean forDocumentNavigation);
+ boolean tabToTreeOwner(in boolean forward, in boolean forDocumentNavigation);
/**
* Current busy state for DocShell
@@ -522,7 +522,7 @@ interface nsIDocShell : nsIDocShellTreeItem
* @param end timestamp when reflow ended, in milliseconds since
* navigationStart (accurate to 1/1000 of a ms)
*/
- [noscript] void notifyReflowObservers(in bool interruptible,
+ [noscript] void notifyReflowObservers(in boolean interruptible,
in DOMHighResTimeStamp start,
in DOMHighResTimeStamp end);
@@ -553,7 +553,7 @@ interface nsIDocShell : nsIDocShellTreeItem
* True iff asynchronous panning and zooming is enabled for this
* docshell.
*/
- readonly attribute bool asyncPanZoomEnabled;
+ readonly attribute boolean asyncPanZoomEnabled;
/**
* Indicates whether the UI may enable the character encoding menu. The UI
@@ -595,8 +595,8 @@ interface nsIDocShell : nsIDocShellTreeItem
* without any actual visual representation. They have to be marked
* at construction time, to avoid any painting activity.
*/
- [noscript, notxpcom] bool IsInvisible();
- [noscript, notxpcom] void SetInvisible(in bool aIsInvisibleDocshell);
+ [noscript, notxpcom] boolean IsInvisible();
+ [noscript, notxpcom] void SetInvisible(in boolean aIsInvisibleDocshell);
/**
* Get the script global for the document in this docshell.
@@ -646,31 +646,6 @@ interface nsIDocShell : nsIDocShellTreeItem
[noscript,nostdcall,notxpcom] nsCommandManager GetCommandManager();
- cenum MetaViewportOverride: 8 {
- /**
- * Override platform/pref default behaviour and force-disable support for
- * <meta name="viewport">.
- */
- META_VIEWPORT_OVERRIDE_DISABLED = 0,
- /**
- * Override platform/pref default behaviour and force-enable support for
- * <meta name="viewport">.
- */
- META_VIEWPORT_OVERRIDE_ENABLED = 1,
- /**
- * Don't override the platform/pref default behaviour for support for
- * <meta name="viewport">.
- */
- META_VIEWPORT_OVERRIDE_NONE = 2,
- };
-
- /**
- * This allows chrome to override the default choice of whether the
- * <meta name="viewport"> tag is respected in a specific docshell.
- * Possible values are listed above.
- */
- [infallible, setter_can_run_script] attribute nsIDocShell_MetaViewportOverride metaViewportOverride;
-
/**
* Attribute that determines whether tracking protection is enabled.
*/
@@ -704,7 +679,7 @@ interface nsIDocShell : nsIDocShellTreeItem
* Returns true if the current load is a forced reload,
* e.g. started by holding shift whilst triggering reload.
*/
- readonly attribute bool isForceReloading;
+ readonly attribute boolean isForceReloading;
Array<float> getColorMatrix();
diff --git a/docshell/base/nsIDocShellTreeOwner.idl b/docshell/base/nsIDocShellTreeOwner.idl
index db6faa59c9..d16257f8a1 100644
--- a/docshell/base/nsIDocShellTreeOwner.idl
+++ b/docshell/base/nsIDocShellTreeOwner.idl
@@ -109,5 +109,5 @@ interface nsIDocShellTreeOwner : nsISupports
Returns true if there is a primary content shell or a primary
remote tab.
*/
- readonly attribute bool hasPrimaryContent;
+ readonly attribute boolean hasPrimaryContent;
};
diff --git a/docshell/base/nsIPrivacyTransitionObserver.idl b/docshell/base/nsIPrivacyTransitionObserver.idl
index c85d468d33..b0dbc74c77 100644
--- a/docshell/base/nsIPrivacyTransitionObserver.idl
+++ b/docshell/base/nsIPrivacyTransitionObserver.idl
@@ -7,5 +7,5 @@
[scriptable, function, uuid(b4b1449d-0ef0-47f5-b62e-adc57fd49702)]
interface nsIPrivacyTransitionObserver : nsISupports
{
- void privateModeChanged(in bool enabled);
+ void privateModeChanged(in boolean enabled);
};
diff --git a/docshell/base/nsIURIFixup.idl b/docshell/base/nsIURIFixup.idl
index 2261c0cb40..23fa4ee296 100644
--- a/docshell/base/nsIURIFixup.idl
+++ b/docshell/base/nsIURIFixup.idl
@@ -200,5 +200,5 @@ interface nsIURIFixup : nsISupports
*
* @param aDomain A domain name to query.
*/
- bool isDomainKnown(in AUTF8String aDomain);
+ boolean isDomainKnown(in AUTF8String aDomain);
};