diff -r 000000000000 -r 6474c204b198 embedding/browser/webBrowser/nsIContextMenuListener2.idl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/embedding/browser/webBrowser/nsIContextMenuListener2.idl Wed Dec 31 06:09:35 2014 +0100
@@ -0,0 +1,121 @@
+/* -*- Mode: IDL; tab-width: 2; 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 "nsISupports.idl"
+
+interface nsIDOMEvent;
+interface nsIDOMNode;
+interface imgIContainer;
+interface nsIURI;
+interface nsIContextMenuInfo;
+
+/* THIS IS A PUBLIC EMBEDDING API */
+
+/**
+ * nsIContextMenuListener2
+ *
+ * This is an extended version of nsIContextMenuListener
+ * It provides a helper class, nsIContextMenuInfo, to allow access to
+ * background images as well as various utilities.
+ *
+ * @see nsIContextMenuListener
+ * @see nsIContextMenuInfo
+ */
+
+[scriptable, uuid(7fb719b3-d804-4964-9596-77cf924ee314)]
+interface nsIContextMenuListener2 : nsISupports
+{
+ /** Flag. No context. */
+ const unsigned long CONTEXT_NONE = 0;
+ /** Flag. Context is a link element. */
+ const unsigned long CONTEXT_LINK = 1;
+ /** Flag. Context is an image element. */
+ const unsigned long CONTEXT_IMAGE = 2;
+ /** Flag. Context is the whole document. */
+ const unsigned long CONTEXT_DOCUMENT = 4;
+ /** Flag. Context is a text area element. */
+ const unsigned long CONTEXT_TEXT = 8;
+ /** Flag. Context is an input element. */
+ const unsigned long CONTEXT_INPUT = 16;
+ /** Flag. Context is a background image. */
+ const unsigned long CONTEXT_BACKGROUND_IMAGE = 32;
+
+ /**
+ * Called when the browser receives a context menu event (e.g. user is right-mouse
+ * clicking somewhere on the document). The combination of flags, along with the
+ * attributes of aUtils, indicate where and what was clicked on.
+ *
+ * The following table describes what context flags and node combinations are
+ * possible.
+ *
+ * aContextFlags aUtils.targetNode
+ *
+ * CONTEXT_LINK
+ * CONTEXT_IMAGE
+ * CONTEXT_IMAGE | CONTEXT_LINK with as an ancestor
+ * CONTEXT_INPUT
+ * CONTEXT_INPUT | CONTEXT_IMAGE with type=image
+ * CONTEXT_TEXT