mirror of
https://github.com/servo/servo.git
synced 2025-09-29 16:19:14 +01:00
currently our devtools impl creates source actors in script, when executing scripts in HTMLScriptElement or DedicatedWorkerGlobalScope. this approach is cumbersome, and it means that many pathways to running scripts are missed, such as imported ES modules. with the [SpiderMonkey Debugger API](https://firefox-source-docs.mozilla.org/js/Debugger/), we can pick up all of the scripts and all of their sources without any extra code, as long as we tell it about every global we create (#38333, #38551). this patch adds a [Debugger#onNewScript() hook](https://firefox-source-docs.mozilla.org/js/Debugger/Debugger.html#onnewscript-script-global) to the debugger script, which calls DebuggerGlobalScope#notifyNewSource() to notify our script system when a new script runs. if the source is relevant to the file tree in the Sources tab, script tells devtools to create a source actor. Testing: adds several new automated devtools tests Fixes: part of #36027 Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: atbrakhi <atbrakhi@igalia.com>
25 lines
853 B
Text
25 lines
853 B
Text
/* 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 https://mozilla.org/MPL/2.0/. */
|
|
|
|
// This interface is entirely internal to Servo, and should not be accessible to
|
|
// web pages.
|
|
[Global=DebuggerGlobalScope, Exposed=DebuggerGlobalScope]
|
|
interface DebuggerGlobalScope: GlobalScope {
|
|
undefined notifyNewSource(NotifyNewSource args);
|
|
};
|
|
|
|
dictionary NotifyNewSource {
|
|
required PipelineIdInit pipelineId;
|
|
required DOMString? workerId;
|
|
required unsigned long spidermonkeyId;
|
|
required DOMString url;
|
|
required DOMString? urlOverride;
|
|
required DOMString text;
|
|
required DOMString? introductionType;
|
|
};
|
|
|
|
dictionary PipelineIdInit {
|
|
required unsigned long namespaceId;
|
|
required unsigned long index;
|
|
};
|