| 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
|
|
|