Index: apps/shell/shell_extension_system.cc |
diff --git a/apps/shell/shell_extension_system.cc b/apps/shell/shell_extension_system.cc |
index f3ba941db297cf04688e3fd80e99a7db7539bdf1..dfb9feca1c7c2a22fa12a03b1a403bebcb83597a 100644 |
--- a/apps/shell/shell_extension_system.cc |
+++ b/apps/shell/shell_extension_system.cc |
@@ -12,15 +12,18 @@ |
#include "chrome/browser/extensions/extension_prefs.h" |
#include "chrome/common/extensions/extension_file_util.h" |
#include "content/public/browser/browser_context.h" |
+#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_details.h" |
#include "content/public/browser/notification_service.h" |
#include "content/public/browser/notification_source.h" |
#include "extensions/browser/event_router.h" |
#include "extensions/browser/extension_registry.h" |
+#include "extensions/browser/info_map.h" |
#include "extensions/browser/lazy_background_task_queue.h" |
#include "extensions/browser/process_manager.h" |
using content::BrowserContext; |
+using content::BrowserThread; |
namespace extensions { |
@@ -44,10 +47,16 @@ bool ShellExtensionSystem::LoadAndLaunchApp(const base::FilePath& app_dir) { |
return false; |
} |
+ // TODO(jamescook): We may want to do some of these things here: |
+ // * Create a PermissionsUpdater. |
+ // * Call PermissionsUpdater::GrantActivePermissions(). |
+ // * Call ExtensionService::SatisfyImports(). |
+ // * Call ExtensionPrefs::OnExtensionInstalled(). |
+ // * Send NOTIFICATION_EXTENSION_INSTALLED. |
+ |
ExtensionRegistry::Get(browser_context_)->AddEnabled(extension); |
- // TODO(jamescook): If RegisterExtensionWithRequestContexts() did something, |
- // this would be the place to call it. |
+ RegisterExtensionWithRequestContexts(extension); |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_EXTENSION_LOADED, |
@@ -56,9 +65,6 @@ bool ShellExtensionSystem::LoadAndLaunchApp(const base::FilePath& app_dir) { |
// Inform the rest of the extensions system to start. |
ready_.Signal(); |
- LOG(WARNING) << "-----------------------------------"; |
- LOG(WARNING) << "app_shell is expected to crash now."; |
- LOG(WARNING) << "-----------------------------------"; |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_EXTENSIONS_READY, |
content::Source<BrowserContext>(browser_context_), |
@@ -79,7 +85,6 @@ void ShellExtensionSystem::InitForRegularProfile(bool extensions_enabled) { |
} |
ExtensionService* ShellExtensionSystem::extension_service() { |
- NOTREACHED(); |
return NULL; |
} |
@@ -104,7 +109,9 @@ StateStore* ShellExtensionSystem::rules_store() { |
} |
InfoMap* ShellExtensionSystem::info_map() { |
- return NULL; |
+ if (!info_map_.get()) |
+ info_map_ = new InfoMap; |
+ return info_map_; |
} |
LazyBackgroundTaskQueue* ShellExtensionSystem::lazy_background_task_queue() { |
@@ -133,6 +140,11 @@ InstallVerifier* ShellExtensionSystem::install_verifier() { |
void ShellExtensionSystem::RegisterExtensionWithRequestContexts( |
const Extension* extension) { |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&InfoMap::AddExtension, info_map(), |
+ make_scoped_refptr(extension), base::Time::Now(), |
+ false, false)); |
} |
void ShellExtensionSystem::UnregisterExtensionWithRequestContexts( |