Backed out changeset 8aabc712969f (bug 1513244) as requested by Aryx on irc

This commit is contained in:
shindli 2018-12-13 19:32:02 +02:00
Родитель f0a3cadf4b
Коммит 7278e97898
6 изменённых файлов: 22 добавлений и 85 удалений

Просмотреть файл

@ -43,7 +43,6 @@ const actionTypes = {
REVERSE_SEARCH_NEXT: "REVERSE_SEARCH_NEXT", REVERSE_SEARCH_NEXT: "REVERSE_SEARCH_NEXT",
REVERSE_SEARCH_BACK: "REVERSE_SEARCH_BACK", REVERSE_SEARCH_BACK: "REVERSE_SEARCH_BACK",
PAUSED_EXCECUTION_POINT: "PAUSED_EXCECUTION_POINT", PAUSED_EXCECUTION_POINT: "PAUSED_EXCECUTION_POINT",
WILL_NAVIGATE: "WILL_NAVIGATE",
}; };
const prefs = { const prefs = {

Просмотреть файл

@ -8,7 +8,6 @@ const {
AUTOCOMPLETE_DATA_RECEIVE, AUTOCOMPLETE_DATA_RECEIVE,
AUTOCOMPLETE_PENDING_REQUEST, AUTOCOMPLETE_PENDING_REQUEST,
AUTOCOMPLETE_RETRIEVE_FROM_CACHE, AUTOCOMPLETE_RETRIEVE_FROM_CACHE,
WILL_NAVIGATE,
} = require("devtools/client/webconsole/constants"); } = require("devtools/client/webconsole/constants");
function getDefaultState() { function getDefaultState() {
@ -24,7 +23,6 @@ function getDefaultState() {
function autocomplete(state = getDefaultState(), action) { function autocomplete(state = getDefaultState(), action) {
switch (action.type) { switch (action.type) {
case AUTOCOMPLETE_CLEAR: case AUTOCOMPLETE_CLEAR:
case WILL_NAVIGATE:
return getDefaultState(); return getDefaultState();
case AUTOCOMPLETE_RETRIEVE_FROM_CACHE: case AUTOCOMPLETE_RETRIEVE_FROM_CACHE:
return autoCompleteRetrieveFromCache(state, action); return autoCompleteRetrieveFromCache(state, action);

Просмотреть файл

@ -205,7 +205,6 @@ skip-if = verify
[browser_jsterm_autocomplete_return_key_no_selection.js] [browser_jsterm_autocomplete_return_key_no_selection.js]
[browser_jsterm_autocomplete_return_key.js] [browser_jsterm_autocomplete_return_key.js]
[browser_jsterm_autocomplete_width.js] [browser_jsterm_autocomplete_width.js]
[browser_jsterm_autocomplete_will_navigate.js]
[browser_jsterm_autocomplete-properties-with-non-alphanumeric-names.js] [browser_jsterm_autocomplete-properties-with-non-alphanumeric-names.js]
[browser_jsterm_await_concurrent.js] [browser_jsterm_await_concurrent.js]
[browser_jsterm_await_error.js] [browser_jsterm_await_error.js]

Просмотреть файл

@ -1,58 +0,0 @@
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test that navigating the page closes the autocomplete popup.
const TEST_URI = `data:text/html;charset=utf-8,
<head>
<script>
/* Create a prototype-less object so popup does not contain native
* Object prototype properties.
*/
window.foo = Object.create(null, Object.getOwnPropertyDescriptors({
item0: "value0",
item1: "value1",
}));
</script>
</head>
<body>Test autocomplete close on content navigation</body>`;
add_task(async function() {
// Run test with legacy JsTerm
await pushPref("devtools.webconsole.jsterm.codeMirror", false);
await performTests();
// And then run it with the CodeMirror-powered one.
await pushPref("devtools.webconsole.jsterm.codeMirror", true);
await performTests();
});
async function performTests() {
const { jsterm } = await openNewTabAndConsole(TEST_URI);
info("web console opened");
const { autocompletePopup: popup } = jsterm;
const onPopUpOpen = popup.once("popup-opened");
info("wait for completion: window.foo.");
jsterm.setInputValue("window.foo");
EventUtils.sendString(".");
await onPopUpOpen;
ok(popup.isOpen, "popup is open");
ok(popup.itemCount, "popup has items");
info("reload the page to close the popup");
const onPopupClose = popup.once("popup-closed");
await refreshTab();
await onPopupClose;
ok(!popup.isOpen, "popup is not open after reloading the page");
is(jsterm.getInputValue(), "window.foo.", "completion was cancelled");
ok(!getJsTermCompletionValue(jsterm), "completeNode is empty");
}

Просмотреть файл

@ -21,6 +21,7 @@ loader.lazyRequireGetter(this, "AppConstants", "resource://gre/modules/AppConsta
const ZoomKeys = require("devtools/client/shared/zoom-keys"); const ZoomKeys = require("devtools/client/shared/zoom-keys");
const PREF_MESSAGE_TIMESTAMP = "devtools.webconsole.timestampMessages"; const PREF_MESSAGE_TIMESTAMP = "devtools.webconsole.timestampMessages";
const PREF_PERSISTLOG = "devtools.webconsole.persistlog";
const PREF_SIDEBAR_ENABLED = "devtools.webconsole.sidebarToggle"; const PREF_SIDEBAR_ENABLED = "devtools.webconsole.sidebarToggle";
/** /**
@ -56,6 +57,19 @@ WebConsoleFrame.prototype = {
return this.proxy ? this.proxy.webConsoleClient : null; return this.proxy ? this.proxy.webConsoleClient : null;
}, },
/**
* Getter for the persistent logging preference.
* @type boolean
*/
get persistLog() {
// For the browser console, we receive tab navigation
// when the original top level window we attached to is closed,
// but we don't want to reset console history and just switch to
// the next available window.
return this.isBrowserConsole ||
Services.prefs.getBoolPref(PREF_PERSISTLOG);
},
/** /**
* Initialize the WebConsoleFrame instance. * Initialize the WebConsoleFrame instance.
* @return object * @return object
@ -381,7 +395,14 @@ WebConsoleFrame.prototype = {
}, },
handleTabWillNavigate: function(packet) { handleTabWillNavigate: function(packet) {
this.consoleOutput.dispatchTabWillNavigate(packet); if (this.persistLog) {
// Add a _type to hit convertCachedPacket.
packet._type = true;
this.consoleOutput.dispatchMessageAdd(packet);
} else {
this.clearOutput(false);
}
if (packet.url) { if (packet.url) {
this.onLocationChange(packet.url, packet.title); this.onLocationChange(packet.url, packet.title);
} }

Просмотреть файл

@ -22,7 +22,6 @@ const EventEmitter = require("devtools/shared/event-emitter");
const App = createFactory(require("devtools/client/webconsole/components/App")); const App = createFactory(require("devtools/client/webconsole/components/App"));
const ObjectClient = require("devtools/shared/client/object-client"); const ObjectClient = require("devtools/shared/client/object-client");
const LongStringClient = require("devtools/shared/client/long-string-client"); const LongStringClient = require("devtools/shared/client/long-string-client");
loader.lazyRequireGetter(this, "Constants", "devtools/client/webconsole/constants");
let store = null; let store = null;
@ -320,7 +319,6 @@ WebConsoleOutputWrapper.prototype = {
this.queuedMessageUpdates = []; this.queuedMessageUpdates = [];
this.queuedRequestUpdates = []; this.queuedRequestUpdates = [];
store.dispatch(actions.messagesClear()); store.dispatch(actions.messagesClear());
this.hud.emit("messages-cleared");
}, },
dispatchPrivateMessagesClear: function() { dispatchPrivateMessagesClear: function() {
@ -419,26 +417,6 @@ WebConsoleOutputWrapper.prototype = {
this.toolbox && this.toolbox.currentToolId !== "webconsole")); this.toolbox && this.toolbox.currentToolId !== "webconsole"));
}, },
dispatchTabWillNavigate: function(packet) {
const { ui } = store.getState();
// For the browser console, we receive tab navigation
// when the original top level window we attached to is closed,
// but we don't want to reset console history and just switch to
// the next available window.
if (ui.persistLogs || this.hud.isBrowserConsole) {
// Add a _type to hit convertCachedPacket.
packet._type = true;
this.dispatchMessageAdd(packet);
} else {
this.hud.webConsoleClient.clearNetworkRequests();
this.dispatchMessagesClear();
store.dispatch({
type: Constants.WILL_NAVIGATE,
});
}
},
batchedMessageUpdates: function(info) { batchedMessageUpdates: function(info) {
this.queuedMessageUpdates.push(info); this.queuedMessageUpdates.push(info);
this.setTimeoutIfNeeded(); this.setTimeoutIfNeeded();