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 |