From a740ed290d440a05ebad191e647a8363a8577ae7 Mon Sep 17 00:00:00 2001 From: Dorel Luca Date: Sat, 21 Sep 2019 05:50:47 +0300 Subject: [PATCH] Backed out changeset 1416218ae397 (bug 1580334) for Devtools failure on Debugger. CLOSED TREE --HG-- extra : amend_source : 5480f365a0c5ea13f3be30ced032db85ade8418d --- devtools/client/debugger/panel.js | 8 --- .../debugger/src/actions/pause/index.js | 4 -- .../debugger/src/actions/pause/moz.build | 1 - .../actions/pause/previewPausedLocation.js | 39 -------------- .../debugger/src/actions/types/index.js | 15 +----- .../src/components/Editor/DebugLine.js | 53 +++++++++---------- .../components/Editor/tests/DebugLine.spec.js | 22 ++++---- .../client/debugger/src/reducers/pause.js | 18 +------ .../webreplay/components/WebReplayPlayer.js | 26 +++------ 9 files changed, 44 insertions(+), 142 deletions(-) delete mode 100644 devtools/client/debugger/src/actions/pause/previewPausedLocation.js diff --git a/devtools/client/debugger/panel.js b/devtools/client/debugger/panel.js index 67b8632dbab0..fd81a2f37617 100644 --- a/devtools/client/debugger/panel.js +++ b/devtools/client/debugger/panel.js @@ -168,14 +168,6 @@ DebuggerPanel.prototype = { return this._actions.selectSourceURL(cx, url, { line, column }); }, - previewPausedLocation(location) { - return this._actions.previewPausedLocation(location); - }, - - clearPreviewPausedLocation() { - return this._actions.clearPreviewPausedLocation(); - }, - async selectSource(sourceId, line, column) { const cx = this._selectors.getContext(this._getState()); const location = { sourceId, line, column }; diff --git a/devtools/client/debugger/src/actions/pause/index.js b/devtools/client/debugger/src/actions/pause/index.js index 3c226581c3b5..ad7bfffc7015 100644 --- a/devtools/client/debugger/src/actions/pause/index.js +++ b/devtools/client/debugger/src/actions/pause/index.js @@ -30,7 +30,3 @@ export { toggleSkipPausing, setSkipPausing } from "./skipPausing"; export { toggleMapScopes } from "./mapScopes"; export { setExpandedScope } from "./expandScopes"; export { generateInlinePreview } from "./inlinePreview"; -export { - previewPausedLocation, - clearPreviewPausedLocation, -} from "./previewPausedLocation"; diff --git a/devtools/client/debugger/src/actions/pause/moz.build b/devtools/client/debugger/src/actions/pause/moz.build index 155aa75ce372..af947f5cb186 100644 --- a/devtools/client/debugger/src/actions/pause/moz.build +++ b/devtools/client/debugger/src/actions/pause/moz.build @@ -19,7 +19,6 @@ CompiledModules( 'mapScopes.js', 'paused.js', 'pauseOnExceptions.js', - 'previewPausedLocation.js', 'resumed.js', 'selectFrame.js', 'skipPausing.js', diff --git a/devtools/client/debugger/src/actions/pause/previewPausedLocation.js b/devtools/client/debugger/src/actions/pause/previewPausedLocation.js deleted file mode 100644 index b08c44a3d152..000000000000 --- a/devtools/client/debugger/src/actions/pause/previewPausedLocation.js +++ /dev/null @@ -1,39 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at . */ - -// @flow - -import { selectLocation } from "../sources"; -import { getContext, getSourceByURL } from "../../selectors"; -import type { ThunkArgs } from "../types"; - -type Location = { - sourceUrl: string, - column: number, - line: number, -}; - -export function previewPausedLocation(location: Location) { - return ({ dispatch, getState }: ThunkArgs) => { - const cx = getContext(getState()); - const source = getSourceByURL(getState(), location.sourceUrl); - if (!source) { - return; - } - - const sourceLocation = { ...location, sourceId: source.id }; - dispatch(selectLocation(cx, sourceLocation)); - - dispatch({ - type: "PREVIEW_PAUSED_LOCATION", - location: sourceLocation, - }); - }; -} - -export function clearPreviewPausedLocation() { - return { - type: "CLEAR_PREVIEW_PAUSED_LOCATION", - }; -} diff --git a/devtools/client/debugger/src/actions/types/index.js b/devtools/client/debugger/src/actions/types/index.js index 2c3348058954..17d86b23a1ec 100644 --- a/devtools/client/debugger/src/actions/types/index.js +++ b/devtools/client/debugger/src/actions/types/index.js @@ -5,13 +5,7 @@ // @flow import typeof SourceMaps from "devtools-source-map"; -import type { - ThreadList, - Thread, - Context, - ThreadId, - SourceLocation, -} from "../../types"; +import type { ThreadList, Thread, Context, ThreadId } from "../../types"; import type { State } from "../../reducers/types"; import type { MatchedLocations } from "../../reducers/file-search"; import type { TreeNode } from "../../utils/sources-tree/types"; @@ -155,13 +149,6 @@ export type DebuggeeAction = +type: "SELECT_THREAD", +cx: Context, +thread: ThreadId, - |} - | {| - +type: "PREVIEW_PAUSED_LOCATION", - +location: SourceLocation, - |} - | {| - +type: "CLEAR_PREVIEW_PAUSED_LOCATION", |}; export type { diff --git a/devtools/client/debugger/src/components/Editor/DebugLine.js b/devtools/client/debugger/src/components/Editor/DebugLine.js index 97a1f3e14dec..6560c74c053b 100644 --- a/devtools/client/debugger/src/components/Editor/DebugLine.js +++ b/devtools/client/debugger/src/components/Editor/DebugLine.js @@ -20,13 +20,12 @@ import { getPauseReason, getSourceWithContent, getCurrentThread, - getPausePreviewLocation, } from "../../selectors"; -import type { SourceLocation, Why, SourceWithContent } from "../../types"; +import type { Frame, Why, SourceWithContent } from "../../types"; type Props = { - location: SourceLocation, + frame: Frame, why: Why, source: ?SourceWithContent, }; @@ -36,40 +35,42 @@ type TextClasses = { lineClass: string, }; -function isDocumentReady(source: ?SourceWithContent, location) { - return location && source && source.content && hasDocument(location.sourceId); +function isDocumentReady(source: ?SourceWithContent, frame) { + return ( + frame && source && source.content && hasDocument(frame.location.sourceId) + ); } export class DebugLine extends PureComponent { debugExpression: null; componentDidMount() { - const { why, location, source } = this.props; - this.setDebugLine(why, location, source); + const { why, frame, source } = this.props; + this.setDebugLine(why, frame, source); } componentWillUnmount() { - const { why, location, source } = this.props; - this.clearDebugLine(why, location, source); + const { why, frame, source } = this.props; + this.clearDebugLine(why, frame, source); } componentDidUpdate(prevProps: Props) { - const { why, location, source } = this.props; + const { why, frame, source } = this.props; startOperation(); - this.clearDebugLine(prevProps.why, prevProps.location, prevProps.source); - this.setDebugLine(why, location, source); + this.clearDebugLine(prevProps.why, prevProps.frame, prevProps.source); + this.setDebugLine(why, frame, source); endOperation(); } - setDebugLine(why: Why, location: SourceLocation, source: ?SourceWithContent) { - if (!isDocumentReady(source, location)) { + setDebugLine(why: Why, frame: Frame, source: ?SourceWithContent) { + if (!isDocumentReady(source, frame)) { return; } - const sourceId = location.sourceId; + const sourceId = frame.location.sourceId; const doc = getDocument(sourceId); - let { line, column } = toEditorPosition(location); + let { line, column } = toEditorPosition(frame.location); let { markTextClass, lineClass } = this.getTextClasses(why); doc.addLineClass(line, "line", lineClass); @@ -91,12 +92,8 @@ export class DebugLine extends PureComponent { ); } - clearDebugLine( - why: Why, - location: SourceLocation, - source: ?SourceWithContent - ) { - if (!isDocumentReady(source, location)) { + clearDebugLine(why: Why, frame: Frame, source: ?SourceWithContent) { + if (!isDocumentReady(source, frame)) { return; } @@ -104,15 +101,15 @@ export class DebugLine extends PureComponent { this.debugExpression.clear(); } - const sourceId = location.sourceId; - const { line } = toEditorPosition(location); + const sourceId = frame.location.sourceId; + const { line } = toEditorPosition(frame.location); const doc = getDocument(sourceId); const { lineClass } = this.getTextClasses(why); doc.removeLineClass(line, "line", lineClass); } getTextClasses(why: Why): TextClasses { - if (why && isException(why)) { + if (isException(why)) { return { markTextClass: "debug-expression-error", lineClass: "new-debug-line-error", @@ -129,11 +126,9 @@ export class DebugLine extends PureComponent { const mapStateToProps = state => { const frame = getVisibleSelectedFrame(state); - const previewLocation = getPausePreviewLocation(state); - const location = previewLocation || (frame && frame.location); return { - location, - source: location && getSourceWithContent(state, location.sourceId), + frame, + source: frame && getSourceWithContent(state, frame.location.sourceId), why: getPauseReason(state, getCurrentThread(state)), }; }; diff --git a/devtools/client/debugger/src/components/Editor/tests/DebugLine.spec.js b/devtools/client/debugger/src/components/Editor/tests/DebugLine.spec.js index a0e53c872c11..ad827962fdf0 100644 --- a/devtools/client/debugger/src/components/Editor/tests/DebugLine.spec.js +++ b/devtools/client/debugger/src/components/Editor/tests/DebugLine.spec.js @@ -41,11 +41,13 @@ function generateDefaults(editor, overrides) { }; } -function createLocation(line) { +function createFrame(line) { return { - sourceId: "foo", - line, - column: 2, + location: { + sourceId: "foo", + line, + column: 2, + }, }; } @@ -78,9 +80,9 @@ describe("DebugLine Component", () => { }, }); const line = 2; - const location = createLocation(line); + const frame = createFrame(line); - component.setProps({ ...props, location }); + component.setProps({ ...props, frame }); expect(doc.removeLineClass.mock.calls).toEqual([]); expect(doc.addLineClass.mock.calls).toEqual([ @@ -105,10 +107,10 @@ describe("DebugLine Component", () => { const firstLine = 2; const secondLine = 2; - component.setProps({ ...props, location: createLocation(firstLine) }); + component.setProps({ ...props, frame: createFrame(firstLine) }); component.setProps({ ...props, - frame: createLocation(secondLine), + frame: createFrame(secondLine), }); expect(doc.removeLineClass.mock.calls).toEqual([ @@ -141,9 +143,9 @@ describe("DebugLine Component", () => { it("should not set the debug line", () => { const { component, props, doc } = render({ frame: null }); const line = 2; - const location = createLocation(line); + const frame = createFrame(line); - component.setProps({ ...props, location }); + component.setProps({ ...props, frame }); expect(doc.removeLineClass).not.toHaveBeenCalled(); }); }); diff --git a/devtools/client/debugger/src/reducers/pause.js b/devtools/client/debugger/src/reducers/pause.js index 226e20ca2881..522613b4c85d 100644 --- a/devtools/client/debugger/src/reducers/pause.js +++ b/devtools/client/debugger/src/reducers/pause.js @@ -3,7 +3,7 @@ * file, You can obtain one at . */ // @flow -/* eslint complexity: ["error", 35]*/ +/* eslint complexity: ["error", 30]*/ /** * Pause reducer @@ -29,7 +29,6 @@ import type { Context, ThreadContext, Previews, - SourceLocation, } from "../types"; export type Command = @@ -97,7 +96,6 @@ export type PauseState = { mapScopes: boolean, shouldPauseOnExceptions: boolean, shouldPauseOnCaughtExceptions: boolean, - previewLocation: ?SourceLocation, }; function createPauseState(thread: ThreadId = "UnknownThread") { @@ -111,7 +109,6 @@ function createPauseState(thread: ThreadId = "UnknownThread") { isPaused: false, pauseCounter: 0, }, - previewLocation: null, threads: {}, canRewind: false, skipPausing: prefs.skipPausing, @@ -194,7 +191,6 @@ function update( state = { ...state, - previewLocation: null, threadcx: { ...state.threadcx, pauseCounter: state.threadcx.pauseCounter + 1, @@ -211,14 +207,6 @@ function update( }); } - case "PREVIEW_PAUSED_LOCATION": { - return { ...state, previewLocation: action.location }; - } - - case "CLEAR_PREVIEW_PAUSED_LOCATION": { - return { ...state, previewLocation: null }; - } - case "MAP_FRAMES": { const { selectedFrameId, frames } = action; return updateThreadState({ frames, selectedFrameId }); @@ -689,8 +677,4 @@ export function getLastExpandedScopes(state: State, thread: ThreadId) { return getThreadPauseState(state.pause, thread).lastExpandedScopes; } -export function getPausePreviewLocation(state: State) { - return state.pause.previewLocation; -} - export default update; diff --git a/devtools/client/webreplay/components/WebReplayPlayer.js b/devtools/client/webreplay/components/WebReplayPlayer.js index 4814deb09547..fb49479a0195 100644 --- a/devtools/client/webreplay/components/WebReplayPlayer.js +++ b/devtools/client/webreplay/components/WebReplayPlayer.js @@ -101,13 +101,6 @@ function sameLocation(m1, m2) { ); } -function getMessageLocation(message) { - const { - frame: { source, line, column }, - } = message; - return { sourceUrl: source, line, column }; -} - /* * * The player has 4 valid states @@ -348,6 +341,11 @@ class WebReplayPlayer extends Component { } } + async clearPreviewLocation() { + const dbg = await this.toolbox.loadTool("jsdebugger"); + dbg.clearPreviewPausedLocation(); + } + unhighlightConsoleMessage() { if (this.hoveredMessage) { this.hoveredMessage.classList.remove("highlight"); @@ -376,20 +374,9 @@ class WebReplayPlayer extends Component { } onMessageMouseEnter(message) { - this.previewLocation(message); this.showMessage(message); } - async previewLocation(closestMessage) { - const dbg = await this.toolbox.loadTool("jsdebugger"); - dbg.previewPausedLocation(getMessageLocation(closestMessage)); - } - - async clearPreviewLocation() { - const dbg = await this.toolbox.loadTool("jsdebugger"); - dbg.clearPreviewPausedLocation(); - } - onProgressBarClick(e) { if (!e.altKey) { return; @@ -416,7 +403,6 @@ class WebReplayPlayer extends Component { onPlayerMouseLeave() { this.unhighlightConsoleMessage(); - this.clearPreviewLocation(); return this.threadFront.paintCurrentPoint(); } @@ -628,7 +614,7 @@ class WebReplayPlayer extends Component { e.stopPropagation(); this.seek(message.executionPoint); }, - onMouseEnter: () => this.onMessageMouseEnter(message), + onMouseEnter: () => this.onMessageMouseEnter(message.executionPoint), }); }