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

Unified Diff: src/debug/debug.cc

Issue 2668613002: [inspector] added Debugger.moduleRequested notification
Patch Set: report existing resolved module on Debugger.enable Created 3 years, 11 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
« no previous file with comments | « src/debug/debug.h ('k') | src/debug/debug-interface.h » ('j') | src/objects.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/debug/debug.cc
diff --git a/src/debug/debug.cc b/src/debug/debug.cc
index adf3659c68fdf560f267037772bf9baa38efd747..c617c19e54b874ba66c7b4dc422ce0f87a4bb9b1 100644
--- a/src/debug/debug.cc
+++ b/src/debug/debug.cc
@@ -1894,6 +1894,39 @@ void Debug::OnAfterCompile(Handle<Script> script) {
ProcessCompileEvent(v8::AfterCompile, script);
}
+void Debug::OnModuleResolved(Handle<Module> referer, Handle<Module> requested,
+ Handle<String> specifier) {
+ if (!debug_delegate_) return;
+ if (!referer->script()->IsScript() || !requested->script()->IsScript())
+ return;
+ debug_delegate_->ModuleResolved(
+ ToApiHandle<debug::Script>(handle(Script::cast(referer->script()))),
+ ToApiHandle<debug::Script>(handle(Script::cast(requested->script()))),
+ Utils::ToLocal(specifier));
+}
+
+void Debug::ReportExistingModules() {
+ if (!debug_delegate_) return;
+ HandleScope handle_scope(isolate_);
+ Handle<FixedArray> scripts = GetLoadedScripts();
+ for (int i = 0; i < scripts->length(); ++i) {
+ Handle<Script> script(Script::cast(scripts->get(i)), isolate_);
+ if (!script->module()->IsModule()) continue;
+ Handle<Module> module(i::Module::cast(script->module()));
+ if (!module->evaluated()) continue;
+ Handle<FixedArray> requested_modules(module->requested_modules(), isolate_);
+ Handle<FixedArray> module_requests(module->info()->module_requests(),
+ isolate_);
+ for (int j = 0, length = requested_modules->length(); j < length; ++j) {
+ Handle<Module> import(i::Module::cast(requested_modules->get(j)),
+ isolate_);
+ Handle<String> request(i::String::cast(module_requests->get(j)),
+ isolate_);
+ OnModuleResolved(module, import, request);
+ }
+ }
+}
+
namespace {
struct CollectedCallbackData {
Object** location;
« no previous file with comments | « src/debug/debug.h ('k') | src/debug/debug-interface.h » ('j') | src/objects.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698