forked from mirrors/gecko-dev
--HG-- rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_breakpoints-01.js => devtools/client/webreplay/mochitest/browser_dbg_rr_breakpoints-01.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_breakpoints-02.js => devtools/client/webreplay/mochitest/browser_dbg_rr_breakpoints-02.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_breakpoints-03.js => devtools/client/webreplay/mochitest/browser_dbg_rr_breakpoints-03.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_breakpoints-04.js => devtools/client/webreplay/mochitest/browser_dbg_rr_breakpoints-04.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_breakpoints-05.js => devtools/client/webreplay/mochitest/browser_dbg_rr_breakpoints-05.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_console_warp-01.js => devtools/client/webreplay/mochitest/browser_dbg_rr_console_warp-01.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_console_warp-02.js => devtools/client/webreplay/mochitest/browser_dbg_rr_console_warp-02.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_record.js => devtools/client/webreplay/mochitest/browser_dbg_rr_record.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_recovery-01.js => devtools/client/webreplay/mochitest/browser_dbg_rr_recovery-01.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_replay-01.js => devtools/client/webreplay/mochitest/browser_dbg_rr_replay-01.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_replay-02.js => devtools/client/webreplay/mochitest/browser_dbg_rr_replay-02.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_replay-03.js => devtools/client/webreplay/mochitest/browser_dbg_rr_replay-03.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_stepping-01.js => devtools/client/webreplay/mochitest/browser_dbg_rr_stepping-01.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_stepping-02.js => devtools/client/webreplay/mochitest/browser_dbg_rr_stepping-02.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_stepping-03.js => devtools/client/webreplay/mochitest/browser_dbg_rr_stepping-03.js rename : devtools/client/debugger/new/test/mochitest/browser_dbg_rr_stepping-04.js => devtools/client/webreplay/mochitest/browser_dbg_rr_stepping-04.js rename : devtools/client/debugger/new/test/mochitest/examples/doc_rr_basic.html => devtools/client/webreplay/mochitest/examples/doc_rr_basic.html rename : devtools/client/debugger/new/test/mochitest/examples/doc_rr_continuous.html => devtools/client/webreplay/mochitest/examples/doc_rr_continuous.html rename : devtools/client/debugger/new/test/mochitest/examples/doc_rr_error.html => devtools/client/webreplay/mochitest/examples/doc_rr_error.html rename : devtools/client/debugger/new/test/mochitest/examples/doc_rr_logs.html => devtools/client/webreplay/mochitest/examples/doc_rr_logs.html rename : devtools/client/debugger/new/test/mochitest/examples/doc_rr_recovery.html => devtools/client/webreplay/mochitest/examples/doc_rr_recovery.html extra : rebase_source : 931ea1f66514c15f32e1e77d28afe48ef5cfde20
54 lines
2.1 KiB
JavaScript
54 lines
2.1 KiB
JavaScript
/* -*- 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/ */
|
|
/* eslint-disable no-undef */
|
|
|
|
"use strict";
|
|
|
|
// To disable all Web Replay tests, see browser.ini
|
|
|
|
// Test ending a recording at a breakpoint and then separately replaying to the end.
|
|
add_task(async function() {
|
|
waitForExplicitFinish();
|
|
|
|
const recordingFile = newRecordingFile();
|
|
const recordingTab = BrowserTestUtils.addTab(gBrowser, null, { recordExecution: "*" });
|
|
gBrowser.selectedTab = recordingTab;
|
|
openTrustedLinkIn(EXAMPLE_URL + "doc_rr_continuous.html", "current");
|
|
|
|
let toolbox = await attachDebugger(recordingTab), client = toolbox.threadClient;
|
|
await client.interrupt();
|
|
await setBreakpoint(client, "doc_rr_continuous.html", 14);
|
|
await resumeToLine(client, 14);
|
|
await resumeToLine(client, 14);
|
|
await reverseStepOverToLine(client, 13);
|
|
const lastNumberValue = await evaluateInTopFrame(client, "number");
|
|
|
|
const tabParent = recordingTab.linkedBrowser.frameLoader.tabParent;
|
|
ok(tabParent, "Found recording tab parent");
|
|
ok(tabParent.saveRecording(recordingFile), "Saved recording");
|
|
await once(Services.ppmm, "SaveRecordingFinished");
|
|
|
|
await toolbox.destroy();
|
|
await gBrowser.removeTab(recordingTab);
|
|
|
|
const replayingTab = BrowserTestUtils.addTab(gBrowser, null,
|
|
{ replayExecution: recordingFile });
|
|
gBrowser.selectedTab = replayingTab;
|
|
await once(Services.ppmm, "HitRecordingEndpoint");
|
|
|
|
toolbox = await attachDebugger(replayingTab);
|
|
client = toolbox.threadClient;
|
|
await client.interrupt();
|
|
await checkEvaluateInTopFrame(client, "number", lastNumberValue);
|
|
await reverseStepOverToLine(client, 13);
|
|
await setBreakpoint(client, "doc_rr_continuous.html", 14);
|
|
await rewindToLine(client, 14);
|
|
await checkEvaluateInTopFrame(client, "number", lastNumberValue - 1);
|
|
await resumeToLine(client, 14);
|
|
await checkEvaluateInTopFrame(client, "number", lastNumberValue);
|
|
|
|
await toolbox.destroy();
|
|
await gBrowser.removeTab(replayingTab);
|
|
});
|