summaryrefslogtreecommitdiffstats
path: root/embedding/browser/nsIWebBrowserChrome3.idl
diff options
context:
space:
mode:
Diffstat (limited to 'embedding/browser/nsIWebBrowserChrome3.idl')
-rw-r--r--embedding/browser/nsIWebBrowserChrome3.idl61
1 files changed, 61 insertions, 0 deletions
diff --git a/embedding/browser/nsIWebBrowserChrome3.idl b/embedding/browser/nsIWebBrowserChrome3.idl
new file mode 100644
index 000000000..a95cab911
--- /dev/null
+++ b/embedding/browser/nsIWebBrowserChrome3.idl
@@ -0,0 +1,61 @@
+/* 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 "nsIWebBrowserChrome2.idl"
+#include "nsIURI.idl"
+#include "nsIDOMNode.idl"
+
+interface nsIDocShell;
+interface nsIInputStream;
+
+/**
+ * nsIWebBrowserChrome3 is an extension to nsIWebBrowserChrome2.
+ */
+[scriptable, uuid(542b6625-35a9-426a-8257-c12a345383b0)]
+interface nsIWebBrowserChrome3 : nsIWebBrowserChrome2
+{
+ /**
+ * 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 nsIDOMNode linkNode,
+ in boolean isAppTab);
+
+ /**
+ * Determines whether a load should continue.
+ *
+ * @param aDocShell
+ * The docshell performing the load.
+ * @param aURI
+ * The URI being loaded.
+ * @param aReferrer
+ * The referrer of the load.
+ */
+ bool shouldLoadURI(in nsIDocShell aDocShell,
+ in nsIURI aURI,
+ in nsIURI aReferrer);
+
+ /**
+ * Attempts to load the currently loaded page into a fresh process to increase
+ * available memory.
+ *
+ * @param aDocShell
+ * The docshell performing the load.
+ */
+ bool reloadInFreshProcess(in nsIDocShell aDocShell,
+ in nsIURI aURI,
+ in nsIURI aReferrer);
+};