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

Unified Diff: gin/modules/module_runner_delegate.cc

Issue 401723002: Mojo: Log an error when we fail to find a JS module. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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: gin/modules/module_runner_delegate.cc
diff --git a/gin/modules/module_runner_delegate.cc b/gin/modules/module_runner_delegate.cc
index 16b5afd0303ba8a8819cbe54aef25ec8c4c24a84..d00c2774ffddcc18922d203682f5b52bbd09c0f0 100644
--- a/gin/modules/module_runner_delegate.cc
+++ b/gin/modules/module_runner_delegate.cc
@@ -11,11 +11,15 @@
namespace gin {
ModuleRunnerDelegate::ModuleRunnerDelegate(
- const std::vector<base::FilePath>& search_paths)
+ const std::vector<base::FilePath>& search_paths)
: module_provider_(search_paths) {
+ module_provider_.set_completion_callback(
+ base::Bind(&ModuleRunnerDelegate::DidLoadFileModules,
+ base::Unretained(this)));
}
ModuleRunnerDelegate::~ModuleRunnerDelegate() {
+ module_provider_.reset_completion_callback();
}
void ModuleRunnerDelegate::AddBuiltinModule(const std::string& id,
@@ -27,8 +31,8 @@ void ModuleRunnerDelegate::AttemptToLoadMoreModules(Runner* runner) {
ModuleRegistry* registry = ModuleRegistry::From(
runner->GetContextHolder()->context());
registry->AttemptToLoadMoreModules(runner->GetContextHolder()->isolate());
- module_provider_.AttempToLoadModules(
- runner, registry->unsatisfied_dependencies());
+ unsatisfied_dependencies_ = registry->unsatisfied_dependencies();
+ module_provider_.AttemptToLoadModules(runner, unsatisfied_dependencies_);
}
v8::Handle<v8::ObjectTemplate> ModuleRunnerDelegate::GetGlobalTemplate(
@@ -56,4 +60,17 @@ void ModuleRunnerDelegate::DidRunScript(ShellRunner* runner) {
AttemptToLoadMoreModules(runner);
}
+void ModuleRunnerDelegate::DidLoadFileModules(
+ const std::set<std::string>& loaded_modules) {
+ std::set<std::string> failed_modules;
+ std::set_difference(
+ unsatisfied_dependencies_.begin(), unsatisfied_dependencies_.end(),
+ loaded_modules.begin(), loaded_modules.end(),
+ std::inserter(failed_modules, failed_modules.end()));
+ for (std::set<std::string>::const_iterator it = failed_modules.begin();
+ it != failed_modules.end(); ++it) {
+ LOG(ERROR) << "Failed to load module: " << *it;
+ }
+}
+
} // namespace gin
« gin/modules/file_module_provider.cc ('K') | « gin/modules/module_runner_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698