mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Devtools: Support worker scripts in Debugger > Source
panel (#36562)
This patch adds support for listing `worker scripts` in `debugger > source` panel For example: ``` <!-- test.html --> <!doctype html><meta charset=utf-8> <script> setTimeout(() => { console.log("inline classic"); new Worker("worker.js"); const blob = new Blob([`console.log("blob worker");`], { type: "text/javascript" }); const blobURL = URL.createObjectURL(blob); new Worker(blobURL); }, 2000); </script> ``` ``` // worker.js console.log("external classic worker"); ``` ``` ./mach run --devtools=6080 http://127.0.0.1:3000/test.html ```  Another example: ``` ./mach run --devtools=6080 https://charming.daz.cat/ ```  - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes partially implement #36027 - [x] These changes require tests, but they are blocked on https://github.com/servo/servo/issues/36325 --------- Signed-off-by: atbrakhi <atbrakhi@igalia.com>
This commit is contained in:
parent
107fd25465
commit
b92542b756
6 changed files with 142 additions and 38 deletions
|
@ -8,7 +8,7 @@ use std::sync::atomic::{AtomicBool, Ordering};
|
|||
|
||||
use constellation_traits::{StructuredSerializedData, WorkerScriptLoadOrigin};
|
||||
use crossbeam_channel::{Sender, unbounded};
|
||||
use devtools_traits::{DevtoolsPageInfo, ScriptToDevtoolsControlMsg, WorkerId};
|
||||
use devtools_traits::{DevtoolsPageInfo, ScriptToDevtoolsControlMsg, SourceInfo, WorkerId};
|
||||
use dom_struct::dom_struct;
|
||||
use ipc_channel::ipc;
|
||||
use js::jsapi::{Heap, JSObject};
|
||||
|
@ -213,6 +213,16 @@ impl WorkerMethods<crate::DomTypeHolder> for Worker {
|
|||
devtools_sender.clone(),
|
||||
page_info,
|
||||
));
|
||||
|
||||
let source_info = SourceInfo {
|
||||
url: worker_url.clone(),
|
||||
external: true, // Worker scripts are always external.
|
||||
worker_id: Some(worker_id),
|
||||
};
|
||||
let _ = chan.send(ScriptToDevtoolsControlMsg::ScriptSourceLoaded(
|
||||
pipeline_id,
|
||||
source_info,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue