UNPKG

chrome-devtools-frontend

Version:
75 lines (59 loc) 2.63 kB
// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import {Overlay} from './common.js'; export type PausedToolMessage = 'resume'|'stepOver'; export class PausedOverlay extends Overlay { private container!: HTMLElement; constructor(window: Window, style: CSSStyleSheet[] = []) { super(window, style); this.onKeyDown = this.onKeyDown.bind(this); } onKeyDown(event: KeyboardEvent) { if (event.key === 'F8' || this.eventHasCtrlOrMeta(event) && event.key === '\\') { this.window.InspectorOverlayHost.send('resume'); } else if (event.key === 'F10' || this.eventHasCtrlOrMeta(event) && event.key === '\'') { this.window.InspectorOverlayHost.send('stepOver'); } } override install() { const controlsLine = this.document.createElement('div'); controlsLine.classList.add('controls-line'); const messageBox = this.document.createElement('div'); messageBox.classList.add('message-box'); const pausedInDebugger = this.document.createElement('div'); pausedInDebugger.id = 'paused-in-debugger'; this.container = pausedInDebugger; messageBox.append(pausedInDebugger); controlsLine.append(messageBox); const resumeButton = this.document.createElement('div'); resumeButton.id = 'resume-button'; resumeButton.title = 'Resume script execution (F8).'; resumeButton.classList.add('button'); const glyph = this.document.createElement('div'); glyph.classList.add('glyph'); resumeButton.append(glyph); controlsLine.append(resumeButton); const stepOverButton = this.document.createElement('div'); stepOverButton.id = 'step-over-button'; stepOverButton.title = 'Step over next function call (F10).'; stepOverButton.classList.add('button'); const glyph2 = this.document.createElement('div'); glyph2.classList.add('glyph'); stepOverButton.append(glyph2); controlsLine.append(stepOverButton); this.document.body.append(controlsLine); this.document.addEventListener('keydown', this.onKeyDown); resumeButton.addEventListener('click', () => this.window.InspectorOverlayHost.send('resume')); stepOverButton.addEventListener('click', () => this.window.InspectorOverlayHost.send('stepOver')); super.install(); } override uninstall() { this.document.body.innerHTML = ''; this.document.removeEventListener('keydown', this.onKeyDown); super.uninstall(); } drawPausedInDebuggerMessage(message: string) { this.container.textContent = message; } }