Backed out changeset c00da8e9e19a (bug 1628994) for causing perma dt failures in devtools/client/webconsole/test/browser/browser_console_eager_eval.js CLOSED TREE

This commit is contained in:
Stefan Hindli 2020-04-15 10:55:49 +03:00
Родитель 7620407286
Коммит e642118b88
4 изменённых файлов: 26 добавлений и 90 удалений

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

@ -110,7 +110,6 @@ class App extends Component {
editorWidth: PropTypes.number,
hidePersistLogsCheckbox: PropTypes.bool,
hideShowContentMessagesCheckbox: PropTypes.bool,
inputEnabled: PropTypes.bool,
sidebarVisible: PropTypes.bool.isRequired,
eagerEvaluationEnabled: PropTypes.bool.isRequired,
filterBarDisplayMode: PropTypes.oneOf([
@ -298,13 +297,8 @@ class App extends Component {
serviceContainer,
webConsoleUI,
showEvaluationContextSelector,
inputEnabled,
} = this.props;
if (!inputEnabled) {
return null;
}
return editorMode
? EditorToolbar({
key: "editor-toolbar",
@ -335,7 +329,6 @@ class App extends Component {
autocomplete,
editorMode,
editorWidth,
inputEnabled,
} = this.props;
return JSTerm({
@ -346,18 +339,12 @@ class App extends Component {
autocomplete,
editorMode,
editorWidth,
inputEnabled,
});
}
renderEagerEvaluation() {
const {
eagerEvaluationEnabled,
serviceContainer,
inputEnabled,
} = this.props;
if (!eagerEvaluationEnabled || !inputEnabled) {
const { eagerEvaluationEnabled, serviceContainer } = this.props;
if (!eagerEvaluationEnabled) {
return null;
}
@ -412,22 +399,17 @@ class App extends Component {
}
renderRootElement(children) {
const {
editorMode,
sidebarVisible,
inputEnabled,
eagerEvaluationEnabled,
} = this.props;
const { editorMode, sidebarVisible } = this.props;
const classNames = ["webconsole-app"];
if (sidebarVisible) {
classNames.push("sidebar-visible");
}
if (editorMode && inputEnabled) {
if (editorMode) {
classNames.push("jsterm-editor");
}
if (eagerEvaluationEnabled && inputEnabled) {
if (this.props.eagerEvaluationEnabled) {
classNames.push("eager-evaluation");
}
@ -445,7 +427,7 @@ class App extends Component {
}
render() {
const { webConsoleUI, editorMode, dispatch, inputEnabled } = this.props;
const { webConsoleUI, editorMode, dispatch } = this.props;
const filterBar = this.renderFilterBar();
const editorToolbar = this.renderEditorToolbar();
@ -467,7 +449,7 @@ class App extends Component {
jsterm,
eager
),
editorMode && inputEnabled
editorMode
? GridElementWidthResizer({
key: "editor-resizer",
enabled: editorMode,

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

@ -117,7 +117,6 @@ class JSTerm extends Component {
autocomplete: PropTypes.bool,
showEvaluationContextSelector: PropTypes.bool,
autocompletePopupPosition: PropTypes.string,
inputEnabled: PropTypes.bool,
};
}
@ -1381,7 +1380,10 @@ class JSTerm extends Component {
}
render() {
if (!this.props.inputEnabled) {
if (
this.props.webConsoleUI.isBrowserConsole &&
!Services.prefs.getBoolPref("devtools.chrome.enabled")
) {
return null;
}

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

@ -26,11 +26,6 @@ requestLongerTimeout(2);
add_task(async function() {
let browserConsole, webConsole, objInspector;
// Setting editor mode for both webconsole and browser console as there are more
// elements to check.
await pushPref("devtools.webconsole.input.editor", true);
await pushPref("devtools.browserconsole.input.editor", true);
// Needed for the execute() function below
await pushPref("security.allow_parent_unrestricted_js_loads", true);
@ -40,13 +35,13 @@ add_task(async function() {
browserConsole = await BrowserConsoleManager.toggleBrowserConsole();
objInspector = await logObject(browserConsole);
testInputRelatedElementsAreVisibile(browserConsole);
testJSTermIsVisible(browserConsole);
await testObjectInspectorPropertiesAreSet(objInspector);
const browserTab = await addTab("data:text/html;charset=utf8,hello world");
webConsole = await openConsole(browserTab);
objInspector = await logObject(webConsole);
testInputRelatedElementsAreVisibile(webConsole);
testJSTermIsVisible(webConsole);
await testObjectInspectorPropertiesAreSet(objInspector);
await closeConsole(browserTab);
@ -55,11 +50,11 @@ add_task(async function() {
browserConsole = await BrowserConsoleManager.toggleBrowserConsole();
objInspector = await logObject(browserConsole);
testInputRelatedElementsAreNotVisibile(browserConsole);
testJSTermIsNotVisible(browserConsole);
webConsole = await openConsole(browserTab);
objInspector = await logObject(webConsole);
testInputRelatedElementsAreVisibile(webConsole);
testJSTermIsVisible(webConsole);
await testObjectInspectorPropertiesAreSet(objInspector);
info("Close webconsole and browser console");
@ -78,57 +73,11 @@ async function logObject(hud) {
return node.querySelector(".tree");
}
function getInputRelatedElements(hud) {
const { document } = hud.ui.window;
return {
inputEl: document.querySelector(".jsterm-input-container"),
eagerEvaluationEl: document.querySelector(".eager-evaluation-result"),
editorResizerEl: document.querySelector(".editor-resizer"),
editorToolbarEl: document.querySelector(".webconsole-editor-toolbar"),
webConsoleAppEl: document.querySelector(".webconsole-app"),
};
}
function testInputRelatedElementsAreVisibile(hud) {
const {
inputEl,
eagerEvaluationEl,
editorResizerEl,
editorToolbarEl,
webConsoleAppEl,
} = getInputRelatedElements(hud);
isnot(inputEl.style.display, "none", "input is visible");
ok(eagerEvaluationEl, "eager evaluation result is in dom");
ok(editorResizerEl, "editor resizer is in dom");
ok(editorToolbarEl, "editor toolbar is in dom");
ok(
webConsoleAppEl.classList.contains("jsterm-editor") &&
webConsoleAppEl.classList.contains("eager-evaluation"),
"webconsole element has expected classes"
);
}
function testInputRelatedElementsAreNotVisibile(hud) {
const {
inputEl,
eagerEvaluationEl,
editorResizerEl,
editorToolbarEl,
webConsoleAppEl,
} = getInputRelatedElements(hud);
is(inputEl, null, "input is not in dom");
is(eagerEvaluationEl, null, "eager evaluation result is not in dom");
is(editorResizerEl, null, "editor resizer is not in dom");
is(editorToolbarEl, null, "editor toolbar is not in dom");
is(
webConsoleAppEl.classList.contains("jsterm-editor") &&
webConsoleAppEl.classList.contains("eager-evaluation"),
false,
"webconsole element does not have eager evaluation nor editor classes"
function testJSTermIsVisible(hud) {
const inputContainer = hud.ui.window.document.querySelector(
".jsterm-input-container"
);
isnot(inputContainer.style.display, "none", "input is visible");
}
async function testObjectInspectorPropertiesAreSet(objInspector) {
@ -155,3 +104,10 @@ async function testObjectInspectorPropertiesAreSet(objInspector) {
is(name, "browser_console_hide_jsterm_test", "name is set correctly");
is(value, "true", "value is set correctly");
}
function testJSTermIsNotVisible(hud) {
const inputContainer = hud.ui.window.document.querySelector(
".jsterm-input-container"
);
is(inputContainer, null, "input is not in dom");
}

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

@ -10,7 +10,6 @@ const {
const ReactDOM = require("devtools/client/shared/vendor/react-dom");
const { Provider } = require("devtools/client/shared/vendor/react-redux");
const ToolboxProvider = require("devtools/client/framework/store-provider");
const Services = require("Services");
const actions = require("devtools/client/webconsole/actions/index");
const { configureStore } = require("devtools/client/webconsole/store");
@ -120,9 +119,6 @@ class WebConsoleWrapper {
hideShowContentMessagesCheckbox:
!webConsoleUI.isBrowserConsole &&
!webConsoleUI.isBrowserToolboxConsole,
inputEnabled:
!webConsoleUI.isBrowserConsole ||
Services.prefs.getBoolPref("devtools.chrome.enabled"),
});
// Render the root Application component.