Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Unified Diff: third_party/WebKit/LayoutTests/inspector/console/console-context-selector.html

Issue 2849583006: [DevTools] Disable contexts in console selector on pause (Closed)
Patch Set: tests Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/inspector/console/console-context-selector.html
diff --git a/third_party/WebKit/LayoutTests/inspector/console/console-context-selector.html b/third_party/WebKit/LayoutTests/inspector/console/console-context-selector.html
new file mode 100644
index 0000000000000000000000000000000000000000..21c236a32131a9815aff47bfccca3c9f0b33dcec
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector/console/console-context-selector.html
@@ -0,0 +1,115 @@
+<html>
+<head>
+<script src="../../http/tests/inspector/inspector-test.js"></script>
+<script src="../../http/tests/inspector/console-test.js"></script>
+<script src="../../http/tests/inspector/debugger-test.js"></script>
+<script>
+function setup() {
+ window.worker = new Worker('resources/worker-pause.js');
+ window.iframe = document.createElement('iframe');
+ window.iframe.src = 'data:text/html;<script>window.foo=1;<' + '/script>';
+ window.iframe.name = 'myframe';
+ document.body.appendChild(window.iframe);
+ return new Promise(f => window.iframe.onload = f);
+}
+
+function pauseInWorker() {
+ window.worker.postMessage('pause');
+}
+
+function pauseInIframe() {
+ window.iframe.contentWindow.eval('debugger;');
+}
+
+function pauseInMain() {
+ debugger;
+}
+
+function destroyIframe() {
+ window.iframe.parentElement.removeChild(window.iframe);
+ window.iframe = null;
+}
+
+async function test()
+{
+ await new Promise(f => InspectorTest.startDebuggerTest(f, true));
+
+ await InspectorTest.evaluateInPageAsync('setup()');
+ var workerTarget = await InspectorTest.waitForTarget(target => target.parentTarget() === InspectorTest.mainTarget);
+ var workerExecutionContext = await InspectorTest.waitForExecutionContext(workerTarget.model(SDK.RuntimeModel));
+ dump();
+
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Selected worker');
+ UI.context.setFlavor(SDK.Target, workerTarget);
+ dump();
+
+ var mainFrame = InspectorTest.resourceTreeModel.mainFrame;
+ var mainExecutionContext = InspectorTest.runtimeModel.executionContexts().find(context => context.frameId === mainFrame.id);
+ var childFrame = InspectorTest.resourceTreeModel.frames().find(frame => frame !== InspectorTest.resourceTreeModel.mainFrame);
+ var childExecutionContext = InspectorTest.runtimeModel.executionContexts().find(context => context.frameId === childFrame.id);
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Selected iframe');
+ UI.context.setFlavor(SDK.ExecutionContext, childExecutionContext);
+ dump();
+
+ InspectorTest.evaluateInPage('pauseInMain()');
+ await InspectorTest.waitUntilPausedPromise();
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Paused in main');
+ dump();
+
+ await new Promise(f => InspectorTest.resumeExecution(f));
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Resumed');
+ dump();
+
+ InspectorTest.evaluateInPage('pauseInWorker()');
+ await InspectorTest.waitUntilPausedPromise();
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Paused in worker');
+ dump();
+
+ await new Promise(f => InspectorTest.resumeExecution(f));
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Resumed');
+ dump();
+
+ InspectorTest.evaluateInPage('pauseInIframe()');
+ await InspectorTest.waitUntilPausedPromise();
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Paused in iframe');
+ dump();
+
+ await new Promise(f => InspectorTest.resumeExecution(f));
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Resumed');
+ dump();
+
+ InspectorTest.evaluateInPage('destroyIframe()');
+ await InspectorTest.waitForExecutionContextDestroyed(childExecutionContext);
+ InspectorTest.addResult('');
+ InspectorTest.addResult('Destroyed iframe');
+ dump();
+
+ InspectorTest.completeDebuggerTest();
+
+ function dump() {
+ var consoleView = Console.ConsoleView.instance();
+ var select = consoleView._executionContextComboBox.selectElement();
+ InspectorTest.addResult('Console context selector:');
+ for (var i = 0; i < select.options.length; i++) {
+ var option = select.options[i];
+ var selected = select.selectedIndex === i;
+ var text = option.text.replace(new RegExp('\u00a0', 'g'), '_');
+ InspectorTest.addResult(`${selected ? '*' : ' '} ${text} ${option.disabled ? '[disabled]' : ''}`);
+ }
+ }
+}
+</script>
+</head>
+<body onload="runTest()">
+<p> Tests console execution context selector.
+</p>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698