summaryrefslogtreecommitdiffstats
path: root/toolkit/components/browser/nsIWebBrowserChrome3.idl
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/browser/nsIWebBrowserChrome3.idl')
-rw-r--r--toolkit/components/browser/nsIWebBrowserChrome3.idl69
1 files changed, 69 insertions, 0 deletions
diff --git a/toolkit/components/browser/nsIWebBrowserChrome3.idl b/toolkit/components/browser/nsIWebBrowserChrome3.idl
new file mode 100644
index 0000000000..ad727f8b07
--- /dev/null
+++ b/toolkit/components/browser/nsIWebBrowserChrome3.idl
@@ -0,0 +1,69 @@
+/* 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 "nsIWebBrowserChrome.idl"
+#include "nsIURI.idl"
+
+interface nsIDocShell;
+interface nsIInputStream;
+interface nsIRunnable;
+interface nsIPrincipal;
+interface nsIContentSecurityPolicy;
+interface nsIReferrerInfo;
+
+webidl Node;
+
+/**
+ * nsIWebBrowserChrome3 is an extension to nsIWebBrowserChrome.
+ */
+[scriptable, uuid(542b6625-35a9-426a-8257-c12a345383b0)]
+interface nsIWebBrowserChrome3 : nsIWebBrowserChrome
+{
+ /**
+ * Determines the appropriate target for a link.
+ *
+ * @param originalTarget
+ * The original link target.
+ * @param linkURI
+ * Link destination URI.
+ * @param aDOMNode
+ * Link DOM node.
+ * @param isAppTab
+ * Whether or not the link is in an app tab.
+ * @returns A new link target, if appropriate.
+ * Otherwise returns originalTarget.
+ */
+ AString onBeforeLinkTraversal(in AString originalTarget,
+ in nsIURI linkURI,
+ in Node linkNode,
+ in boolean isAppTab);
+
+ /**
+ * Determines whether a load should continue.
+ *
+ * @param aDocShell
+ * The docshell performing the load.
+ * @param aURI
+ * The URI being loaded.
+ * @param aReferrerInfo
+ * The referrerInfo of the load.
+ * @param aHasPostData
+ * True if the load which is being asked about has associated post data
+ * which would be discarded if the load was redirected across process
+ * boundaries.
+ * @param aTriggeringPrincipal
+ * The principal that initiated the load of aURI.
+ * @param aCsp
+ * The CSP to be used for that load. That is the CSP that e.g. upgrades
+ * the load to HTTPS in case upgrade-insecure-requests is set.
+ */
+ bool shouldLoadURI(in nsIDocShell aDocShell,
+ in nsIURI aURI,
+ in nsIReferrerInfo aReferrerInfo,
+ in boolean aHasPostData,
+ in nsIPrincipal aTriggeringPrincipal,
+ in nsIContentSecurityPolicy aCsp);
+
+ bool shouldLoadURIInThisProcess(in nsIURI aURI);
+};