mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
script: Create a debugger script for the SpiderMonkey Debugger API (#38331)
to use the [SpiderMonkey Debugger API](https://firefox-source-docs.mozilla.org/js/Debugger/), we need to call it from an internal debugger script that we will supply. this script must run in the same runtime as the debuggee(s), but in a separate [compartment](https://udn.realityripple.com/docs/Mozilla/Projects/SpiderMonkey/Compartments) ([more details](https://hacks.mozilla.org/2020/03/future-proofing-firefoxs-javascript-debugger-implementation/)). this patch defines a new DebuggerGlobalScope type and a new debugger script resource. when creating each script thread, we create a debugger global, load the debugger script from resources/debugger.js, and run that script in the global to initialise the Debugger API. subsequent patches will use the debugger script as an RPC mechanism for the Debugger API. Testing: no testable effects yet, but will be used in #37667 Fixes: part of #36027 --------- Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: atbrakhi <atbrakhi@igalia.com>
This commit is contained in:
parent
8e27fd48cc
commit
c09e117bfe
11 changed files with 184 additions and 6 deletions
|
@ -114,7 +114,7 @@ use crate::dom::reportingobserver::ReportingObserver;
|
|||
use crate::dom::serviceworker::ServiceWorker;
|
||||
use crate::dom::serviceworkerregistration::ServiceWorkerRegistration;
|
||||
use crate::dom::trustedtypepolicyfactory::TrustedTypePolicyFactory;
|
||||
use crate::dom::types::MessageEvent;
|
||||
use crate::dom::types::{DebuggerGlobalScope, MessageEvent};
|
||||
use crate::dom::underlyingsourcecontainer::UnderlyingSourceType;
|
||||
#[cfg(feature = "webgpu")]
|
||||
use crate::dom::webgpu::gpudevice::GPUDevice;
|
||||
|
@ -2530,6 +2530,9 @@ impl GlobalScope {
|
|||
// https://drafts.css-houdini.org/worklets/#script-settings-for-worklets
|
||||
return worklet.base_url();
|
||||
}
|
||||
if let Some(_debugger_global) = self.downcast::<DebuggerGlobalScope>() {
|
||||
return self.creation_url.clone();
|
||||
}
|
||||
unreachable!();
|
||||
}
|
||||
|
||||
|
@ -2545,6 +2548,9 @@ impl GlobalScope {
|
|||
// TODO: is this the right URL to return?
|
||||
return worklet.base_url();
|
||||
}
|
||||
if let Some(_debugger_global) = self.downcast::<DebuggerGlobalScope>() {
|
||||
return self.creation_url.clone();
|
||||
}
|
||||
unreachable!();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue