Current state of the queue
authorDave Camp <dcamp@mozilla.com>
Fri, 28 Jun 2013 14:27:33 -0700
changeset 12 8c3895ba691621a5462cfbdbea09c516637d4a5f
parent 11 16a15e9f8241531c2a3f42f783e8d91632974359
child 13 d178fa3c570108d79814471bb17c5f5e2a3bed57
push id13
push userdcamp@campd.org
push dateFri, 28 Jun 2013 21:27:36 +0000
Current state of the queue
android-crap.diff
copy-html.diff
inspector-delete-node.diff
inspector-panel-default-node.diff
inspector-remote-delete-node.diff
inspector-remote-pseudoclass.diff
remote-edit-attributes.diff
remote-edit-value.diff
remote-markup.diff
search-box-remote.diff
series
style-actor.diff
warning-fixes.diff
window-targets.diff
--- a/android-crap.diff
+++ b/android-crap.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1372178155 25200
 #      Tue Jun 25 09:35:55 2013 -0700
-# Node ID be792f3ab2be24cca7db9c8dec298107fb8f711e
-# Parent  67f4ce0e2d94e7a04ee5a3a7f699830ea2cc3fe3
+# Node ID 42bd9e0aa209aa6a36fe343fe7e20efaf286c730
+# Parent  ca1a3b610988fcf9d867dcc0bc6a8f020a2be000
 imported patch android-crap.diff
 
 diff --git a/toolkit/devtools/server/actors/inspector.js b/toolkit/devtools/server/actors/inspector.js
 --- a/toolkit/devtools/server/actors/inspector.js
 +++ b/toolkit/devtools/server/actors/inspector.js
 @@ -2006,17 +2006,17 @@ var InspectorActor = protocol.ActorClass
    getWalker: method(function(options={}) {
      let deferred = promise.defer();
--- a/copy-html.diff
+++ b/copy-html.diff
@@ -1,20 +1,20 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371477175 25200
 #      Mon Jun 17 06:52:55 2013 -0700
-# Node ID b0b741354c9d516fc1e37a01fc0c1786ea2f5f42
-# Parent  e2259ec5476ac8a8c06feb748a6e25698b915115
+# Node ID 532e9ff4a7f442cda71c5ecca75a9868a245857e
+# Parent 4ffe34db39e7f507d4642b3136d1ce722b2f823d
 imported patch copy-html.diff
 
 diff --git a/browser/devtools/inspector/inspector-panel.js b/browser/devtools/inspector/inspector-panel.js
 --- a/browser/devtools/inspector/inspector-panel.js
 +++ b/browser/devtools/inspector/inspector-panel.js
-@@ -631,34 +631,42 @@ InspectorPanel.prototype = {
+@@ -630,34 +630,38 @@ InspectorPanel.prototype = {
    /**
     * Copy the innerHTML of the selected Node to the clipboard.
     */
    copyInnerHTML: function InspectorPanel_copyInnerHTML()
    {
      if (!this.selection.isNode()) {
        return;
      }
@@ -38,46 +38,21 @@ diff --git a/browser/devtools/inspector/
 -      clipboardHelper.copyString(toCopy);
 -    }
 +
 +    this._copyLongStr(this.walker.outerHTML(this.selection.nodeFront));
 +  },
 +
 +  _copyLongStr: function(promise) {
 +    return promise.then(longstr => {
-+      dump("GOT LONG STRING: " + longstr + "\n");
-+      longstr.string().then(toCopy => {
-+        dump("COPYING: " + toCopy + "\n");
++      return longstr.string().then(toCopy => {
 +        longstr.release().then(null, console.error);
-+        dump("done releasing...\n")
 +        clipboardHelper.copyString(toCopy);
-+        dump("DONE COPYING\n");
 +      });
 +    }).then(null, console.error);
    },
  
    /**
     * Copy a unique selector of the selected Node to the clipboard.
     */
    copyUniqueSelector: function InspectorPanel_copyUniqueSelector()
    {
      if (!this.selection.isNode()) {
-diff --git a/browser/devtools/inspector/test/browser_inspector_menu.js b/browser/devtools/inspector/test/browser_inspector_menu.js
---- a/browser/devtools/inspector/test/browser_inspector_menu.js
-+++ b/browser/devtools/inspector/test/browser_inspector_menu.js
-@@ -107,16 +107,17 @@ function test() {
- 
-     let commandEvent = document.createEvent("XULCommandEvent");
-     commandEvent.initCommandEvent("command", true, true, window, 0, false, false,
-                                   false, false, null);
-     deleteNode.dispatchEvent(commandEvent);
-   }
- 
-   function deleteTest() {
-+    dump("DELETE TEST\n");
-     let p = doc.querySelector("P");
-     is(p, null, "node deleted");
- 
-     deleteRootNode();
-   }
- 
-   function deleteRootNode() {
-     inspector.selection.setNode(doc.documentElement);
--- a/inspector-delete-node.diff
+++ b/inspector-delete-node.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371477173 25200
 #      Mon Jun 17 06:52:53 2013 -0700
-# Node ID 7efffcf3ab488632d21a98a48fbbecc34af6c375
-# Parent  516c8e87715e907d3e6f65b8e2750ddf27c3cc0c
+# Node ID 877aba69dfd4ad1f638be4691802b721d6ee54c0
+# Parent  2ccc31df1f64ef58ad9db4f76a2a5caa5507d141
 imported patch inspector-delete-node.diff
 
 diff --git a/toolkit/devtools/server/actors/inspector.js b/toolkit/devtools/server/actors/inspector.js
 --- a/toolkit/devtools/server/actors/inspector.js
 +++ b/toolkit/devtools/server/actors/inspector.js
 @@ -1376,16 +1376,48 @@ var WalkerActor = protocol.ActorClass({
      request: {
        node: Arg(0, "domnode")
--- a/inspector-panel-default-node.diff
+++ b/inspector-panel-default-node.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371477174 25200
 #      Mon Jun 17 06:52:54 2013 -0700
-# Node ID 59f0a0647fcfb819f7dc081fbb702eb23381e2fd
-# Parent  2fbc1a119eef4f3d9ecff51b1c0e626e954c1bba
+# Node ID 00aba1b028d43fb8dc1604f6fa3c1df3243feae0
+# Parent  8e69c05917c43407a091f2086aa429d9b054fef2
 imported patch inspector-panel-default-node.diff
 
 diff --git a/browser/devtools/inspector/inspector-panel.js b/browser/devtools/inspector/inspector-panel.js
 --- a/browser/devtools/inspector/inspector-panel.js
 +++ b/browser/devtools/inspector/inspector-panel.js
 @@ -152,24 +152,34 @@ InspectorPanel.prototype = {
  
      return deferred.promise;
--- a/inspector-remote-delete-node.diff
+++ b/inspector-remote-delete-node.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371477175 25200
 #      Mon Jun 17 06:52:55 2013 -0700
-# Node ID e2259ec5476ac8a8c06feb748a6e25698b915115
-# Parent  59f0a0647fcfb819f7dc081fbb702eb23381e2fd
+# Node ID d226c8a4645c57624d721ab57c3b8fb1c98d8822
+# Parent  00aba1b028d43fb8dc1604f6fa3c1df3243feae0
 imported patch inspector-remote-delete-node.diff
 
 diff --git a/browser/devtools/inspector/inspector-panel.js b/browser/devtools/inspector/inspector-panel.js
 --- a/browser/devtools/inspector/inspector-panel.js
 +++ b/browser/devtools/inspector/inspector-panel.js
 @@ -681,18 +681,17 @@ InspectorPanel.prototype = {
      }
  
deleted file mode 100644
--- a/inspector-remote-pseudoclass.diff
+++ /dev/null
@@ -1,344 +0,0 @@
-# HG changeset patch
-# User Dave Camp <dcamp@mozilla.com>
-# Date 1370924326 25200
-#      Mon Jun 10 21:18:46 2013 -0700
-# Node ID 80aa7645300bf2cdb101d5aef42bbed0fb08a6ee
-# Parent  be8f9e72820d510e6433d171ca7959d6222a2e7e
-imported patch inspector-remote-pseudoclass.diff
-* * *
-imported patch pcl-fix-2.diff
-
-diff --git a/browser/devtools/inspector/breadcrumbs.js b/browser/devtools/inspector/breadcrumbs.js
---- a/browser/devtools/inspector/breadcrumbs.js
-+++ b/browser/devtools/inspector/breadcrumbs.js
-@@ -146,23 +146,18 @@ HTMLBreadcrumbs.prototype = {
- 
-     if (aNode.className) {
-       let classList = aNode.className.split(/\s+/);
-       for (let i = 0; i < classList.length; i++) {
-         text += "." + classList[i];
-       }
-     }
- 
--    // XXX: needs updating when pseudoclass-lock is remotable
--    let rawNode = aNode.rawNode();
--    for (let i = 0; i < PSEUDO_CLASSES.length; i++) {
--      let pseudo = PSEUDO_CLASSES[i];
--      if (DOMUtils.hasPseudoClassLock(rawNode, pseudo)) {
--        text += pseudo;
--      }
-+    for (let pseudo of aNode.pseudoClassLocks) {
-+      text += pseudo;
-     }
- 
-     return text;
-   },
- 
- 
-   /**
-    * Build <label>s that represent the node:
-@@ -197,22 +192,21 @@ HTMLBreadcrumbs.prototype = {
-       let classList = aNode.className.split(/\s+/);
-       for (let i = 0; i < classList.length; i++) {
-         classesText += "." + classList[i];
-       }
-       classesLabel.textContent = classesText;
-     }
- 
-     // XXX: Until we have pseudoclass lock in the node.
--    let rawNode = aNode.rawNode();
-+    for (let pseudo of aNode.pseudoClassLocks) {
- 
--    let pseudos = PSEUDO_CLASSES.filter(function(pseudo) {
--      return DOMUtils.hasPseudoClassLock(rawNode, pseudo);
--    }, this);
--    pseudosLabel.textContent = pseudos.join("");
-+    }
-+
-+    pseudosLabel.textContent = aNode.pseudoClassLocks.join("");
- 
-     fragment.appendChild(tagLabel);
-     fragment.appendChild(idLabel);
-     fragment.appendChild(classesLabel);
-     fragment.appendChild(pseudosLabel);
- 
-     return fragment;
-   },
-@@ -348,28 +342,16 @@ HTMLBreadcrumbs.prototype = {
-     }
-   },
- 
-   /**
-    * Remove nodes and delete properties.
-    */
-   destroy: function BC_destroy()
-   {
--    this.nodeHierarchy.forEach(function(crumb) {
--      // This node might have already been destroyed during
--      // shutdown.  Will clean this up when pseudo-class lock
--      // is ported to the walker.
--      if (crumb.node.actorID) {
--        let rawNode = crumb.node.rawNode();
--        if (LayoutHelpers.isNodeConnected(rawNode)) {
--          DOMUtils.clearPseudoClassLocks(rawNode);
--        }
--      }
--    });
--
-     this.selection.off("new-node-front", this.update);
-     this.selection.off("pseudoclass", this.updateSelectors);
-     this.selection.off("attribute-changed", this.updateSelectors);
- 
-     this.container.removeEventListener("underflow", this.onscrollboxreflow, false);
-     this.container.removeEventListener("overflow", this.onscrollboxreflow, false);
-     this.onscrollboxreflow = null;
- 
-diff --git a/browser/devtools/inspector/inspector-panel.js b/browser/devtools/inspector/inspector-panel.js
---- a/browser/devtools/inspector/inspector-panel.js
-+++ b/browser/devtools/inspector/inspector-panel.js
-@@ -478,17 +478,17 @@ InspectorPanel.prototype = {
-    * Disable the delete item if needed. Update the pseudo classes.
-    */
-   _setupNodeMenu: function InspectorPanel_setupNodeMenu() {
-     // Set the pseudo classes
-     for (let name of ["hover", "active", "focus"]) {
-       let menu = this.panelDoc.getElementById("node-menu-pseudo-" + name);
- 
-       if (this.selection.isElementNode()) {
--        let checked = DOMUtils.hasPseudoClassLock(this.selection.node, ":" + name);
-+        let checked = this.selection.nodeFront.hasPseudoClassLock(":" + name);
-         menu.setAttribute("checked", checked);
-         menu.removeAttribute("disabled");
-       } else {
-         menu.setAttribute("disabled", "true");
-       }
-     }
- 
-     // Disable delete item if needed
-@@ -575,44 +575,34 @@ InspectorPanel.prototype = {
-     }
-   },
- 
-   /**
-    * Toggle a pseudo class.
-    */
-   togglePseudoClass: function InspectorPanel_togglePseudoClass(aPseudo) {
-     if (this.selection.isElementNode()) {
--      if (DOMUtils.hasPseudoClassLock(this.selection.node, aPseudo)) {
--        this.breadcrumbs.nodeHierarchy.forEach(function(crumb) {
--          DOMUtils.removePseudoClassLock(crumb.node.rawNode(), aPseudo);
--        });
--      } else {
--        let hierarchical = aPseudo == ":hover" || aPseudo == ":active";
--        let node = this.selection.node;
--        do {
--          DOMUtils.addPseudoClassLock(node, aPseudo);
--          node = node.parentNode;
--        } while (hierarchical && node.parentNode)
-+      let node = this.selection.nodeFront;
-+      if (node.hasPseudoClassLock(aPseudo)) {
-+        return this.walker.removePseudoClassLock(node, aPseudo, { parents: true });
-       }
-+
-+      let hierarchical = aPseudo == ":hover" || aPseudo == ":active";
-+      return this.walker.addPseudoClassLock(node, aPseudo, { parents: hierarchical });
-     }
--    this.selection.emit("pseudoclass");
--    this.breadcrumbs.scroll();
-   },
- 
-   /**
-    * Clear any pseudo-class locks applied to the current hierarchy.
-    */
-   clearPseudoClasses: function InspectorPanel_clearPseudoClasses() {
--    this.breadcrumbs.nodeHierarchy.forEach(function(crumb) {
--      try {
--        DOMUtils.clearPseudoClassLocks(crumb.node.rawNode());
--      } catch(e) {
--       // Ignore dead nodes after navigation.
--      }
--    });
-+    if (!this.walker) {
-+      return;
-+    }
-+    return this.walker.clearPseudoClassLocks().then(null, console.error);
-   },
- 
-   /**
-    * Toggle the highlighter when ruleview is hovered.
-    */
-   toggleHighlighter: function InspectorPanel_toggleHighlighter(event)
-   {
-     if (!this.highlighter) {
-diff --git a/browser/devtools/inspector/selection.js b/browser/devtools/inspector/selection.js
---- a/browser/devtools/inspector/selection.js
-+++ b/browser/devtools/inspector/selection.js
-@@ -68,32 +68,38 @@ function Selection(walker, node=null, tr
- exports.Selection = Selection;
- 
- Selection.prototype = {
-   _walker: null,
-   _node: null,
- 
-   _onMutations: function(mutations) {
-     let attributeChange = false;
-+    let pseudoChange = false;
-     let detached = false;
-     let parentNode = null;
-     for (let m of mutations) {
-       if (!attributeChange && m.type == "attributes") {
-         attributeChange = true;
-       }
-       if (m.type == "childList") {
-         if (!detached && !this.isConnected()) {
-           parentNode = m.target;
-           detached = true;
-         }
-       }
-+      if (m.type == "pseudoClassLock"){
-+        pseudoChange = true;
-+      }
-     }
- 
-     if (attributeChange)
-       this.emit("attribute-changed");
-+    if (pseudoChange)
-+      this.emit("pseudoclass");
-     if (detached) {
-       this.emit("detached", parentNode ? parentNode.rawNode() : null);
-       this.emit("detached-front", parentNode);
-     }
-   },
- 
-   destroy: function SN_destroy() {
-     this.setNode(null);
-diff --git a/browser/devtools/inspector/test/browser_inspector_pseudoClass_menu.js b/browser/devtools/inspector/test/browser_inspector_pseudoClass_menu.js
---- a/browser/devtools/inspector/test/browser_inspector_pseudoClass_menu.js
-+++ b/browser/devtools/inspector/test/browser_inspector_pseudoClass_menu.js
-@@ -46,26 +46,34 @@ function test() {
-     menu.addEventListener("popupshowing", testMenuItems, true);
-     menu.openPopup();
-   }
- 
-   function testMenuItems()
-   {
-     menu.removeEventListener("popupshowing", testMenuItems, true);
- 
--    for each (let pseudo in pseudos) {
-+    var tryNext = () => {
-+      if (pseudos.length === 0) {
-+        finishUp();
-+        return;
-+      }
-+      let pseudo = pseudos.shift();
-+
-       let menuitem = inspector.panelDoc.getElementById("node-menu-pseudo-" + pseudo);
-       ok(menuitem, ":" + pseudo + " menuitem exists");
- 
-       menuitem.doCommand();
--
--      is(DOMUtils.hasPseudoClassLock(div, ":" + pseudo), true,
--        "pseudo-class lock has been applied");
-+      inspector.selection.once("pseudoclass", () => {
-+        is(DOMUtils.hasPseudoClassLock(div, ":" + pseudo), true,
-+          "pseudo-class lock has been applied");
-+        tryNext();
-+      });
-     }
--    finishUp();
-+    tryNext();
-   }
- 
-   function finishUp()
-   {
-     gBrowser.removeCurrentTab();
-     finish();
-   }
- }
-diff --git a/browser/devtools/inspector/test/browser_inspector_pseudoclass_lock.js b/browser/devtools/inspector/test/browser_inspector_pseudoclass_lock.js
---- a/browser/devtools/inspector/test/browser_inspector_pseudoclass_lock.js
-+++ b/browser/devtools/inspector/test/browser_inspector_pseudoclass_lock.js
-@@ -59,55 +59,67 @@ function selectNode(aInspector)
-   });
- }
- 
- function performTests()
- {
-   // toggle the class
-   inspector.togglePseudoClass(pseudo);
- 
--  testAdded();
-+  // Wait for the "pseudoclass" event so we know the
-+  // inspector has been told of the pseudoclass lock change.
-+  inspector.selection.once("pseudoclass", () => {
-+    // Give the rule view time to update.
-+    executeSoon(() => {
-+      testAdded();
- 
--  // toggle the lock off
--  inspector.togglePseudoClass(pseudo);
-+      // toggle the lock off and wait for the pseudoclass event again.
-+      inspector.togglePseudoClass(pseudo);
-+      inspector.selection.once("pseudoclass", () => {
-+        // Give the rule view time to update.
-+        executeSoon(() => {
-+          testRemoved();
-+          testRemovedFromUI();
- 
--  testRemoved();
--  testRemovedFromUI();
--
--  // toggle it back on
--  inspector.togglePseudoClass(pseudo);
--
--  testNavigate(() => {
--   // close the inspector
--    finishUp();
-+          // toggle it back on
-+          inspector.togglePseudoClass(pseudo);
-+          inspector.selection.once("pseudoclass", () => {
-+            testNavigate(() => {
-+              // close the inspector
-+              finishUp();
-+            });
-+          });
-+        });
-+      });
-+    });
-   });
- }
- 
- function testNavigate(callback)
- {
-   inspector.selection.setNode(parentDiv);
-   inspector.once("inspector-updated", () => {
- 
-     // make sure it's still on after naving to parent
-     is(DOMUtils.hasPseudoClassLock(div, pseudo), true,
-          "pseudo-class lock is still applied after inspecting ancestor");
- 
-     inspector.selection.setNode(div2);
--
--    inspector.once("inspector-updated", () => {
--
-+    inspector.selection.once("pseudoclass", () => {
-       // make sure it's removed after naving to a non-hierarchy node
-       is(DOMUtils.hasPseudoClassLock(div, pseudo), false,
-            "pseudo-class lock is removed after inspecting sibling node");
- 
-       // toggle it back on
-       inspector.selection.setNode(div);
-       inspector.once("inspector-updated", () => {
-         inspector.togglePseudoClass(pseudo);
--        callback();
-+        inspector.selection.once("pseudoclass", () => {
-+          callback();
-+        });
-       });
-     });
-   });
- }
- 
- function testAdded()
- {
-   // lock is applied to it and ancestors
--- a/remote-edit-attributes.diff
+++ b/remote-edit-attributes.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371477175 25200
 #      Mon Jun 17 06:52:55 2013 -0700
-# Node ID 9e25724cb9b1db23a72fd943545413e8d63ec98d
-# Parent  b0b741354c9d516fc1e37a01fc0c1786ea2f5f42
+# Node ID 477d7b2c7c75daf444a25ae728c0057c2b93487d
+# Parent  532e9ff4a7f442cda71c5ecca75a9868a245857e
 imported patch remote-edit-attributes.diff
 
 diff --git a/browser/devtools/markupview/markup-view.js b/browser/devtools/markupview/markup-view.js
 --- a/browser/devtools/markupview/markup-view.js
 +++ b/browser/devtools/markupview/markup-view.js
 @@ -1104,47 +1104,53 @@ function ElementEditor(aContainer, aNode
      this.template("elementContentSummary", this);
    }
--- a/remote-edit-value.diff
+++ b/remote-edit-value.diff
@@ -1,20 +1,20 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371477175 25200
 #      Mon Jun 17 06:52:55 2013 -0700
-# Node ID 2f156721b7e72cbd90d5efe7ee4556dc6bb19e20
-# Parent  9e25724cb9b1db23a72fd943545413e8d63ec98d
+# Node ID 8a0888a06e3fa6534c0bf8ebe1aa600a1e7852b0
+# Parent 22cacc2cf7356dfafddb93b5a6265ef1c7dad2b0
 imported patch remote-edit-value.diff
 
 diff --git a/browser/devtools/markupview/markup-view.js b/browser/devtools/markupview/markup-view.js
 --- a/browser/devtools/markupview/markup-view.js
 +++ b/browser/devtools/markupview/markup-view.js
-@@ -1006,38 +1006,45 @@ function DoctypeEditor(aContainer, aNode
+@@ -1006,38 +1006,42 @@ function DoctypeEditor(aContainer, aNode
   */
  function TextEditor(aContainer, aNode, aTemplate)
  {
    this.node = aNode;
    this._selected = false;
  
    aContainer.markup.template(aTemplate, this);
  
@@ -41,26 +41,23 @@ diff --git a/browser/devtools/markupview
 -    });
 -  }
 +  editableField({
 +    element: this.value,
 +    stopOnReturn: true,
 +    trigger: "dblclick",
 +    multiline: true,
 +    done: (aVal, aCommit) => {
-+      dump("Committed:" + aCommit + "\n");
 +      if (!aCommit) {
 +        return;
 +      }
-+      dump("Getting node value...\n");
 +      this.node.getNodeValue().then(longstr => {
 +        longstr.string().then(oldValue => {
 +          longstr.release().then(null, console.error);
 +
-+          dump("About to do....")
 +          aContainer.undo.do(() => {
 +            this.node.setNodeValue(aVal).then(() => {
 +              aContainer.markup.nodeChanged(this.node);
 +            });
 +          }, () => {
 +            this.node.setNodeValue(oldValue).then(() => {
 +              aContainer.markup.nodeChanged(this.node);
 +            })
--- a/remote-markup.diff
+++ b/remote-markup.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1370924326 25200
 #      Mon Jun 10 21:18:46 2013 -0700
-# Node ID 99ece5f04971bedb4f1c6b807d8bda47d00d7d6b
-# Parent  7efffcf3ab488632d21a98a48fbbecc34af6c375
+# Node ID 0499ca738e7d86f14f81beb3978bddac8841329e
+# Parent  eb6cf1052d776cb61c5a6189a72e39613e29d8ec
 imported patch remote-markup.diff
 * * *
 imported patch markup-fixes.diff
 * * *
 [mq]: fucking-around.diff
 
 diff --git a/browser/devtools/inspector/inspector-panel.js b/browser/devtools/inspector/inspector-panel.js
 --- a/browser/devtools/inspector/inspector-panel.js
@@ -27,17 +27,17 @@ diff --git a/browser/devtools/inspector/
  
        this.emit("ready");
        deferred.resolve(this);
      }.bind(this));
  
      this.setupSearchBox();
      this.setupSidebar();
  
-@@ -293,17 +293,17 @@ InspectorPanel.prototype = {
+@@ -292,17 +292,17 @@ InspectorPanel.prototype = {
        this._getDefaultNodeForSelection().then(defaultNode => {
          if (this._destroyPromise) {
            return;
          }
          this.selection.setNodeFront(defaultNode, "navigateaway");
  
          this._initMarkup();
          this.once("markuploaded", () => {
@@ -46,17 +46,17 @@ diff --git a/browser/devtools/inspector/
            this.setupSearchBox();
          });
        });
      });
    },
  
    /**
     * When a new node is selected.
-@@ -664,27 +664,24 @@ InspectorPanel.prototype = {
+@@ -663,27 +663,24 @@ InspectorPanel.prototype = {
     * Delete the selected node.
     */
    deleteNode: function IUI_deleteNode() {
      if (!this.selection.isNode() ||
           this.selection.isRoot()) {
        return;
      }
  
--- a/search-box-remote.diff
+++ b/search-box-remote.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1370924326 25200
 #      Mon Jun 10 21:18:46 2013 -0700
-# Node ID 516c8e87715e907d3e6f65b8e2750ddf27c3cc0c
-# Parent  80aa7645300bf2cdb101d5aef42bbed0fb08a6ee
+# Node ID 2ccc31df1f64ef58ad9db4f76a2a5caa5507d141
+# Parent  0499ca738e7d86f14f81beb3978bddac8841329e
 imported patch search-box-remote.diff
 * * *
 imported patch search-fixes-2.diff
 * * *
 imported patch selector-search-fix.diff
 
 diff --git a/browser/devtools/inspector/inspector-panel.js b/browser/devtools/inspector/inspector-panel.js
 --- a/browser/devtools/inspector/inspector-panel.js
--- a/series
+++ b/series
@@ -1,15 +1,14 @@
-inspector-remote-pseudoclass.diff
+remote-markup.diff
+remote-edit-attributes.diff
+remote-edit-value.diff
+inspector-panel-default-node.diff
+copy-html.diff
 search-box-remote.diff
 inspector-delete-node.diff
-remote-markup.diff
 warning-fixes.diff
-inspector-panel-default-node.diff
 inspector-remote-delete-node.diff
-copy-html.diff
-remote-edit-attributes.diff
-remote-edit-value.diff
 style-actor.diff
 android-crap.diff
 window-targets.diff
 inspector-retain-root.diff #+obsolete
 protocol-clientserver-marshallers.diff #+experimental
--- a/style-actor.diff
+++ b/style-actor.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371506345 25200
 #      Mon Jun 17 14:59:05 2013 -0700
-# Node ID 67f4ce0e2d94e7a04ee5a3a7f699830ea2cc3fe3
-# Parent  2f156721b7e72cbd90d5efe7ee4556dc6bb19e20
+# Node ID ca1a3b610988fcf9d867dcc0bc6a8f020a2be000
+# Parent  8a0888a06e3fa6534c0bf8ebe1aa600a1e7852b0
 [mq]: style-actor.diff
 * * *
 [mq]: computed-view-remote.diff
 
 diff --git a/browser/devtools/inspector/inspector-panel.js b/browser/devtools/inspector/inspector-panel.js
 --- a/browser/devtools/inspector/inspector-panel.js
 +++ b/browser/devtools/inspector/inspector-panel.js
 @@ -40,22 +40,18 @@ function InspectorPanel(iframeWindow, to
--- a/warning-fixes.diff
+++ b/warning-fixes.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1371477174 25200
 #      Mon Jun 17 06:52:54 2013 -0700
-# Node ID 2fbc1a119eef4f3d9ecff51b1c0e626e954c1bba
-# Parent  99ece5f04971bedb4f1c6b807d8bda47d00d7d6b
+# Node ID 8e69c05917c43407a091f2086aa429d9b054fef2
+# Parent  877aba69dfd4ad1f638be4691802b721d6ee54c0
 imported patch warning-fixes.diff
 
 diff --git a/browser/devtools/shared/inplace-editor.js b/browser/devtools/shared/inplace-editor.js
 --- a/browser/devtools/shared/inplace-editor.js
 +++ b/browser/devtools/shared/inplace-editor.js
 @@ -398,17 +398,17 @@ InplaceEditor.prototype = {
              --selStart;
            }
--- a/window-targets.diff
+++ b/window-targets.diff
@@ -1,14 +1,14 @@
 # HG changeset patch
 # User Dave Camp <dcamp@mozilla.com>
 # Date 1372178155 25200
 #      Tue Jun 25 09:35:55 2013 -0700
-# Node ID 1a92486c8144f2baebcc8eeefb9e0d7d5f557d0e
-# Parent  be792f3ab2be24cca7db9c8dec298107fb8f711e
+# Node ID ac23bf71ac37438be024cf00cb3c6cef7524d6fa
+# Parent  42bd9e0aa209aa6a36fe343fe7e20efaf286c730
 imported patch window-targets.diff
 * * *
 imported patch custom-windows.diff
 
 diff --git a/browser/devtools/framework/target.js b/browser/devtools/framework/target.js
 --- a/browser/devtools/framework/target.js
 +++ b/browser/devtools/framework/target.js
 @@ -77,17 +77,19 @@ exports.TargetFactory = {