diff --git a/browser/metro/base/content/Util.js b/browser/metro/base/content/Util.js index 4711242af8a8..50cba6d707a4 100644 --- a/browser/metro/base/content/Util.js +++ b/browser/metro/base/content/Util.js @@ -152,6 +152,29 @@ let Util = { return null; }, + isTextInput: function isTextInput(aElement) { + return ((aElement instanceof Ci.nsIDOMHTMLInputElement && + aElement.mozIsTextField(false)) || + aElement instanceof Ci.nsIDOMHTMLTextAreaElement); + }, + + isLink: function isLink(aElement) { + return ((aElement instanceof Ci.nsIDOMHTMLAnchorElement && aElement.href) || + (aElement instanceof Ci.nsIDOMHTMLAreaElement && aElement.href) || + aElement instanceof Ci.nsIDOMHTMLLinkElement || + aElement.getAttributeNS(kXLinkNamespace, "type") == "simple"); + }, + + isText: function isText(aElement) { + return (aElement instanceof Ci.nsIDOMHTMLParagraphElement || + aElement instanceof Ci.nsIDOMHTMLDivElement || + aElement instanceof Ci.nsIDOMHTMLLIElement || + aElement instanceof Ci.nsIDOMHTMLPreElement || + aElement instanceof Ci.nsIDOMHTMLHeadingElement || + aElement instanceof Ci.nsIDOMHTMLTableCellElement || + aElement instanceof Ci.nsIDOMHTMLBodyElement); + }, + /* * Rect and nsIDOMRect utilities */ diff --git a/browser/metro/base/content/contenthandlers/ContextMenuHandler.js b/browser/metro/base/content/contenthandlers/ContextMenuHandler.js index acd4c736d9ed..fa7031de93b9 100644 --- a/browser/metro/base/content/contenthandlers/ContextMenuHandler.js +++ b/browser/metro/base/content/contenthandlers/ContextMenuHandler.js @@ -133,7 +133,7 @@ var ContextMenuHandler = { */ _onSelectAll: function _onSelectAll() { - if (this._isTextInput(this._target)) { + if (Util.isTextInput(this._target)) { // select all text in the input control this._target.select(); } else { @@ -145,7 +145,7 @@ var ContextMenuHandler = { _onPaste: function _onPaste() { // paste text if this is an input control - if (this._isTextInput(this._target)) { + if (Util.isTextInput(this._target)) { let edit = this._target.QueryInterface(Ci.nsIDOMNSEditableElement); if (edit) { edit.editor.paste(Ci.nsIClipboard.kGlobalClipboard); @@ -161,7 +161,7 @@ var ContextMenuHandler = { }, _onCut: function _onCut() { - if (this._isTextInput(this._target)) { + if (Util.isTextInput(this._target)) { let edit = this._target.QueryInterface(Ci.nsIDOMNSEditableElement); if (edit) { edit.editor.cut(); @@ -173,7 +173,7 @@ var ContextMenuHandler = { }, _onCopy: function _onCopy() { - if (this._isTextInput(this._target)) { + if (Util.isTextInput(this._target)) { let edit = this._target.QueryInterface(Ci.nsIDOMNSEditableElement); if (edit) { edit.editor.copy(); @@ -281,7 +281,7 @@ var ContextMenuHandler = { while (elem) { if (elem.nodeType == Ci.nsIDOMNode.ELEMENT_NODE) { // is the target a link or a descendant of a link? - if (this._isLink(elem)) { + if (Util.isLink(elem)) { // If this is an image that links to itself, don't include both link and // image otpions. if (imageUrl == this._getLinkURL(elem)) { @@ -297,7 +297,7 @@ var ContextMenuHandler = { // mark as text so we can pickup on selection below isText = true; break; - } else if (this._isTextInput(elem)) { + } else if (Util.isTextInput(elem)) { let selectionStart = elem.selectionStart; let selectionEnd = elem.selectionEnd; @@ -330,7 +330,7 @@ var ContextMenuHandler = { state.types.push("paste"); } break; - } else if (this._isText(elem)) { + } else if (Util.isText(elem)) { isText = true; } else if (elem instanceof Ci.nsIDOMHTMLMediaElement || elem instanceof Ci.nsIDOMHTMLVideoElement) { @@ -381,29 +381,6 @@ var ContextMenuHandler = { sendAsyncMessage("Content:ContextMenu", state); }, - _isTextInput: function _isTextInput(element) { - return ((element instanceof Ci.nsIDOMHTMLInputElement && - element.mozIsTextField(false)) || - element instanceof Ci.nsIDOMHTMLTextAreaElement); - }, - - _isLink: function _isLink(element) { - return ((element instanceof Ci.nsIDOMHTMLAnchorElement && element.href) || - (element instanceof Ci.nsIDOMHTMLAreaElement && element.href) || - element instanceof Ci.nsIDOMHTMLLinkElement || - element.getAttributeNS(kXLinkNamespace, "type") == "simple"); - }, - - _isText: function _isText(element) { - return (element instanceof Ci.nsIDOMHTMLParagraphElement || - element instanceof Ci.nsIDOMHTMLDivElement || - element instanceof Ci.nsIDOMHTMLLIElement || - element instanceof Ci.nsIDOMHTMLPreElement || - element instanceof Ci.nsIDOMHTMLHeadingElement || - element instanceof Ci.nsIDOMHTMLTableCellElement || - element instanceof Ci.nsIDOMHTMLBodyElement); - }, - _getLinkURL: function ch_getLinkURL(aLink) { let href = aLink.href; if (href)