Commit 26c43cf1 authored by Victor Porof's avatar Victor Porof
Browse files

Bug 991376 - The variables inspection popup shouldn't opening when hovering js literals. r=past

parent 594efd07
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -931,7 +931,7 @@ SourcesView.prototype = Heritage.extend(WidgetMethods, {
  /**
   * Called when the add breakpoint key sequence was pressed.
   */
  _onCmdAddBreakpoint: function() {
  _onCmdAddBreakpoint: function(e) {
    let url = DebuggerView.Sources.selectedValue;
    let line = DebuggerView.editor.getCursor().line + 1;
    let location = { url: url, line: line };
@@ -1807,6 +1807,12 @@ VariableBubbleView.prototype = {
    this._editorContainer.removeEventListener("mouseleave", this._onMouseLeave, false);
  },

  /**
   * Specifies whether literals can be (redundantly) inspected in a popup.
   * This behavior is deprecated, but still tested in a few places.
   */
  _ignoreLiterals: true,

  /**
   * Searches for an identifier underneath the specified position in the
   * source editor, and if found, opens a VariablesView inspection popup.
@@ -1846,7 +1852,8 @@ VariableBubbleView.prototype = {
    let identifierInfo = parsedSource.getIdentifierAt({
      line: scriptLine + 1,
      column: scriptColumn,
      scriptIndex: scriptInfo.index
      scriptIndex: scriptInfo.index,
      ignoreLiterals: this._ignoreLiterals
    });

    // If the info is null, we're not hovering any identifier.
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@
    <command id="globalSearchCommand"
             oncommand="DebuggerView.Filtering._doGlobalSearch()"/>
    <command id="functionSearchCommand"
             oncommand="DebuggerView.Filtering._doFunctionSearch()"/>
             oncommand="DepbuggerView.Filtering._doFunctionSearch()"/>
    <command id="tokenSearchCommand"
             oncommand="DebuggerView.Filtering._doTokenSearch()"/>
    <command id="lineSearchCommand"
+1 −0
Original line number Diff line number Diff line
@@ -278,6 +278,7 @@ support-files =
[browser_dbg_variables-view-popup-12.js]
[browser_dbg_variables-view-popup-13.js]
[browser_dbg_variables-view-popup-14.js]
[browser_dbg_variables-view-popup-15.js]
[browser_dbg_variables-view-reexpand-01.js]
[browser_dbg_variables-view-reexpand-02.js]
[browser_dbg_variables-view-webidl.js]
+2 −0
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@ function test() {
    let bubble = win.DebuggerView.VariableBubble;
    let tooltip = bubble._tooltip.panel;

    bubble._ignoreLiterals = false;

    function verifyContents(textContent, className) {
      is(tooltip.querySelectorAll(".variables-view-container").length, 0,
        "There should be no variables view containers added to the tooltip.");
+33 −0
Original line number Diff line number Diff line
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

/**
 * Tests opening the variable inspection popup directly on literals.
 */

const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";

function test() {
  Task.spawn(function() {
    let [tab, debuggee, panel] = yield initDebugger(TAB_URL);
    let win = panel.panelWin;
    let bubble = win.DebuggerView.VariableBubble;
    let tooltip = bubble._tooltip.panel;

    // Allow this generator function to yield first.
    executeSoon(() => debuggee.start());
    yield waitForSourceAndCaretAndScopes(panel, ".html", 24);

    yield openVarPopup(panel, { line: 15, ch: 12 });
    ok(true, "The variable inspection popup was shown for the real variable.");

    once(tooltip, "popupshown").then(() => {
      ok(false, "The variable inspection popup shouldn't have been opened.");
    });

    reopenVarPopup(panel, { line: 17, ch: 27 });
    yield waitForTime(1000);

    yield resumeDebuggerThenCloseAndFinish(panel);
  });
}
Loading