From 4d8db2163b1a65d71993e8bdc3341e17daedd5ab Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Fri, 21 Oct 2011 13:59:09 +0200 Subject: [PATCH] Bug 679753 - Remove Scratchpad's status bar, the Environment menu and the Tools menu; r=ehsan,rcampbell,dao --- browser/base/content/browser.xul | 5 +- browser/base/content/highlighter.css | 4 + browser/devtools/highlighter/inspector.jsm | 467 +++++++++++++++++- browser/devtools/highlighter/test/Makefile.in | 2 + .../test/browser_inspector_breadcrumbs.html | 40 ++ .../test/browser_inspector_breadcrumbs.js | 105 ++++ .../en-US/chrome/browser/inspector.properties | 1 + .../themes/gnomestripe/browser/browser.css | 158 ++++++ .../devtools/breadcrumbs/ltr-end-pressed.png | Bin 0 -> 869 bytes .../breadcrumbs/ltr-end-selected-pressed.png | Bin 0 -> 879 bytes .../devtools/breadcrumbs/ltr-end-selected.png | Bin 0 -> 879 bytes .../browser/devtools/breadcrumbs/ltr-end.png | Bin 0 -> 610 bytes .../breadcrumbs/ltr-middle-pressed.png | Bin 0 -> 1012 bytes .../ltr-middle-selected-pressed.png | Bin 0 -> 1025 bytes .../breadcrumbs/ltr-middle-selected.png | Bin 0 -> 982 bytes .../devtools/breadcrumbs/ltr-middle.png | Bin 0 -> 640 bytes .../breadcrumbs/ltr-start-pressed.png | Bin 0 -> 855 bytes .../ltr-start-selected-pressed.png | Bin 0 -> 838 bytes .../breadcrumbs/ltr-start-selected.png | Bin 0 -> 858 bytes .../devtools/breadcrumbs/ltr-start.png | Bin 0 -> 646 bytes .../devtools/breadcrumbs/rtl-end-pressed.png | Bin 0 -> 872 bytes .../breadcrumbs/rtl-end-selected-pressed.png | Bin 0 -> 871 bytes .../devtools/breadcrumbs/rtl-end-selected.png | Bin 0 -> 871 bytes .../browser/devtools/breadcrumbs/rtl-end.png | Bin 0 -> 600 bytes .../breadcrumbs/rtl-middle-pressed.png | Bin 0 -> 1004 bytes .../rtl-middle-selected-pressed.png | Bin 0 -> 1007 bytes .../breadcrumbs/rtl-middle-selected.png | Bin 0 -> 957 bytes .../devtools/breadcrumbs/rtl-middle.png | Bin 0 -> 624 bytes .../breadcrumbs/rtl-start-pressed.png | Bin 0 -> 846 bytes .../rtl-start-selected-pressed.png | Bin 0 -> 840 bytes .../breadcrumbs/rtl-start-selected.png | Bin 0 -> 854 bytes .../devtools/breadcrumbs/rtl-start.png | Bin 0 -> 637 bytes browser/themes/gnomestripe/browser/jar.mn | 2 + browser/themes/pinstripe/browser/browser.css | 157 ++++++ .../devtools/breadcrumbs/ltr-end-pressed.png | Bin 0 -> 869 bytes .../breadcrumbs/ltr-end-selected-pressed.png | Bin 0 -> 879 bytes .../devtools/breadcrumbs/ltr-end-selected.png | Bin 0 -> 879 bytes .../browser/devtools/breadcrumbs/ltr-end.png | Bin 0 -> 610 bytes .../breadcrumbs/ltr-middle-pressed.png | Bin 0 -> 1012 bytes .../ltr-middle-selected-pressed.png | Bin 0 -> 1025 bytes .../breadcrumbs/ltr-middle-selected.png | Bin 0 -> 982 bytes .../devtools/breadcrumbs/ltr-middle.png | Bin 0 -> 640 bytes .../breadcrumbs/ltr-start-pressed.png | Bin 0 -> 855 bytes .../ltr-start-selected-pressed.png | Bin 0 -> 838 bytes .../breadcrumbs/ltr-start-selected.png | Bin 0 -> 858 bytes .../devtools/breadcrumbs/ltr-start.png | Bin 0 -> 646 bytes .../devtools/breadcrumbs/rtl-end-pressed.png | Bin 0 -> 872 bytes .../breadcrumbs/rtl-end-selected-pressed.png | Bin 0 -> 871 bytes .../devtools/breadcrumbs/rtl-end-selected.png | Bin 0 -> 871 bytes .../browser/devtools/breadcrumbs/rtl-end.png | Bin 0 -> 600 bytes .../breadcrumbs/rtl-middle-pressed.png | Bin 0 -> 1004 bytes .../rtl-middle-selected-pressed.png | Bin 0 -> 1007 bytes .../breadcrumbs/rtl-middle-selected.png | Bin 0 -> 957 bytes .../devtools/breadcrumbs/rtl-middle.png | Bin 0 -> 624 bytes .../breadcrumbs/rtl-start-pressed.png | Bin 0 -> 846 bytes .../rtl-start-selected-pressed.png | Bin 0 -> 840 bytes .../breadcrumbs/rtl-start-selected.png | Bin 0 -> 854 bytes .../devtools/breadcrumbs/rtl-start.png | Bin 0 -> 637 bytes browser/themes/pinstripe/browser/jar.mn | 25 + browser/themes/winstripe/browser/browser.css | 159 ++++++ .../devtools/breadcrumbs/ltr-end-pressed.png | Bin 0 -> 889 bytes .../breadcrumbs/ltr-end-selected-pressed.png | Bin 0 -> 450 bytes .../devtools/breadcrumbs/ltr-end-selected.png | Bin 0 -> 461 bytes .../browser/devtools/breadcrumbs/ltr-end.png | Bin 0 -> 749 bytes .../breadcrumbs/ltr-middle-pressed.png | Bin 0 -> 964 bytes .../ltr-middle-selected-pressed.png | Bin 0 -> 469 bytes .../breadcrumbs/ltr-middle-selected.png | Bin 0 -> 472 bytes .../devtools/breadcrumbs/ltr-middle.png | Bin 0 -> 694 bytes .../breadcrumbs/ltr-start-pressed.png | Bin 0 -> 877 bytes .../ltr-start-selected-pressed.png | Bin 0 -> 452 bytes .../breadcrumbs/ltr-start-selected.png | Bin 0 -> 445 bytes .../devtools/breadcrumbs/ltr-start.png | Bin 0 -> 802 bytes .../devtools/breadcrumbs/rtl-end-pressed.png | Bin 0 -> 923 bytes .../breadcrumbs/rtl-end-selected-pressed.png | Bin 0 -> 529 bytes .../devtools/breadcrumbs/rtl-end-selected.png | Bin 0 -> 570 bytes .../browser/devtools/breadcrumbs/rtl-end.png | Bin 0 -> 679 bytes .../breadcrumbs/rtl-middle-pressed.png | Bin 0 -> 923 bytes .../rtl-middle-selected-pressed.png | Bin 0 -> 537 bytes .../breadcrumbs/rtl-middle-selected.png | Bin 0 -> 566 bytes .../devtools/breadcrumbs/rtl-middle.png | Bin 0 -> 656 bytes .../breadcrumbs/rtl-start-pressed.png | Bin 0 -> 874 bytes .../rtl-start-selected-pressed.png | Bin 0 -> 532 bytes .../breadcrumbs/rtl-start-selected.png | Bin 0 -> 561 bytes .../devtools/breadcrumbs/rtl-start.png | Bin 0 -> 815 bytes browser/themes/winstripe/browser/jar.mn | 50 ++ 85 files changed, 1169 insertions(+), 6 deletions(-) create mode 100644 browser/devtools/highlighter/test/browser_inspector_breadcrumbs.html create mode 100644 browser/devtools/highlighter/test/browser_inspector_breadcrumbs.js create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-end-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-end-selected-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-end-selected.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-end.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-middle-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-middle-selected-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-middle-selected.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-middle.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-start-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-start-selected-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-start-selected.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/ltr-start.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-end-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-end-selected-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-end-selected.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-end.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-middle-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-middle-selected-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-middle-selected.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-middle.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-start-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-start-selected-pressed.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-start-selected.png create mode 100644 browser/themes/gnomestripe/browser/devtools/breadcrumbs/rtl-start.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-end-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-end-selected-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-end-selected.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-end.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-middle-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-middle-selected-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-middle-selected.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-middle.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-start-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-start-selected-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-start-selected.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/ltr-start.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-end-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-end-selected-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-end-selected.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-end.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-middle-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-middle-selected-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-middle-selected.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-middle.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-start-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-start-selected-pressed.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-start-selected.png create mode 100644 browser/themes/pinstripe/browser/devtools/breadcrumbs/rtl-start.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-end-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-end-selected-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-end-selected.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-end.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-middle-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-middle-selected-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-middle-selected.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-middle.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-start-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-start-selected-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-start-selected.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/ltr-start.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-end-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-end-selected-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-end-selected.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-end.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-middle-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-middle-selected-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-middle-selected.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-middle.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-start-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-start-selected-pressed.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-start-selected.png create mode 100644 browser/themes/winstripe/browser/devtools/breadcrumbs/rtl-start.png diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul index 20e9fd2681eb..05fca194e490 100644 --- a/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul @@ -983,11 +983,12 @@ label="&inspectButton.label;" accesskey="&inspectButton.accesskey;" command="Inspector:Inspect"/> - + - s that represent the node: + * + * + * + * + * @param aNode The node to pretty-print + * @returns a document fragment. + */ + prettyPrintNodeAsXUL: function BC_prettyPrintNodeXUL(aNode) + { + let fragment = this.IUI.chromeDoc.createDocumentFragment(); + + let tagLabel = this.IUI.chromeDoc.createElement("label"); + tagLabel.className = "inspector-breadcrumbs-tag plain"; + + let idLabel = this.IUI.chromeDoc.createElement("label"); + idLabel.className = "inspector-breadcrumbs-id plain"; + + let classesLabel = this.IUI.chromeDoc.createElement("label"); + classesLabel.className = "inspector-breadcrumbs-classes plain"; + + tagLabel.textContent = aNode.tagName.toLowerCase(); + idLabel.textContent = aNode.id ? ("#" + aNode.id) : ""; + + let classesText = ""; + for (let i = 0; i < aNode.classList.length; i++) { + classesText += "." + aNode.classList[i]; + } + classesLabel.textContent = classesText; + + fragment.appendChild(tagLabel); + fragment.appendChild(idLabel); + fragment.appendChild(classesLabel); + + return fragment; + }, + + /** + * Open the sibling menu. + * + * @param aButton the button representing the node. + * @param aNode the node we want the siblings from. + */ + openSiblingMenu: function BC_openSiblingMenu(aButton, aNode) + { + let title = this.IUI.chromeDoc.createElement("menuitem"); + title.setAttribute("label", + this.IUI.strings.GetStringFromName("breadcrumbs.siblings")); + title.setAttribute("disabled", "true"); + + let separator = this.IUI.chromeDoc.createElement("menuseparator"); + + this.menu.appendChild(title); + this.menu.appendChild(separator); + + let fragment = this.IUI.chromeDoc.createDocumentFragment(); + + let nodes = aNode.parentNode.childNodes; + for (let i = 0; i < nodes.length; i++) { + if (nodes[i].nodeType == aNode.ELEMENT_NODE) { + let item = this.IUI.chromeDoc.createElement("menuitem"); + let inspector = this.IUI; + if (nodes[i] === aNode) { + item.setAttribute("disabled", "true"); + item.setAttribute("checked", "true"); + } + + item.setAttribute("type", "radio"); + item.setAttribute("label", this.prettyPrintNodeAsText(nodes[i])); + + item.onmouseup = (function(aNode) { + return function() { + inspector.select(aNode, true, true); + } + })(nodes[i]); + + fragment.appendChild(item); + } + } + this.menu.appendChild(fragment); + this.menu.openPopup(aButton, "before_start", 0, 0, true, false); + }, + + /** + * Generic event handler. + * + * @param nsIDOMEvent aEvent + * The DOM event object. + */ + handleEvent: function BC_handleEvent(aEvent) + { + if (aEvent.type == "mousedown") { + // on Click and Hold, open the Siblings menu + + let timer; + let container = this.container; + let window = this.IUI.win; + + function openMenu(aEvent) { + cancelHold(); + let target = aEvent.originalTarget; + if (target.tagName == "button") { + target.onBreadcrumbsHold(); + target.setAttribute("siblings-menu-open", "true"); + } + } + + function handleClick(aEvent) { + cancelHold(); + let target = aEvent.originalTarget; + if (target.tagName == "button") { + target.onBreadcrumbsClick(); + } + } + + function cancelHold(aEvent) { + window.clearTimeout(timer); + container.removeEventListener("mouseout", cancelHold, false); + container.removeEventListener("mouseup", handleClick, false); + } + + container.addEventListener("mouseout", cancelHold, false); + container.addEventListener("mouseup", handleClick, false); + timer = window.setTimeout(openMenu, 500, aEvent); + } + }, + + /** + * Remove nodes and delete properties. + */ + destroy: function BC_destroy() + { + this.empty(); + this.container.removeEventListener("mousedown", this, true); + this.menu.parentNode.removeChild(this.menu); + this.container = null; + this.nodeHierarchy = null; + }, + + /** + * Empty the breadcrumbs container. + */ + empty: function BC_empty() + { + while (this.container.hasChildNodes()) { + this.container.removeChild(this.container.firstChild); + } + }, + + /** + * Re-init the cache and remove all the buttons. + */ + invalidateHierarchy: function BC_invalidateHierarchy() + { + this.menu.hidePopup(); + this.nodeHierarchy = []; + this.empty(); + }, + + /** + * Set which button represent the selected node. + * + * @param aIdx Index of the displayed-button to select + */ + setCursor: function BC_setCursor(aIdx) + { + // Unselect the previously selected button + if (this.currentIndex > -1 && this.currentIndex < this.nodeHierarchy.length) { + this.nodeHierarchy[this.currentIndex].button.removeAttribute("checked"); + } + if (aIdx > -1) { + this.nodeHierarchy[aIdx].button.setAttribute("checked", "true"); + } + this.currentIndex = aIdx; + }, + + /** + * Get the index of the node in the cache. + * + * @param aNode + * @returns integer the index, -1 if not found + */ + indexOf: function BC_indexOf(aNode) + { + let i = this.nodeHierarchy.length - 1; + for (let i = this.nodeHierarchy.length - 1; i >= 0; i--) { + if (this.nodeHierarchy[i].node === aNode) { + return i; + } + } + return -1; + }, + + /** + * Remove all the buttons and their references in the cache + * after a given index. + * + * @param aIdx + */ + cutAfter: function BC_cutAfter(aIdx) + { + while (this.nodeHierarchy.length > (aIdx + 1)) { + let toRemove = this.nodeHierarchy.pop(); + this.container.removeChild(toRemove.button); + } + }, + + /** + * Build a button representing the node. + * + * @param aNode The node from the page. + * @returns aNode The