| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "extensions/browser/api/runtime/runtime_api.h" | 5 #include "extensions/browser/api/runtime/runtime_api.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 LazyBackgroundTaskQueue::Get(browser_context) | 98 LazyBackgroundTaskQueue::Get(browser_context) |
| 99 ->ShouldEnqueueTask(browser_context, extension)) { | 99 ->ShouldEnqueueTask(browser_context, extension)) { |
| 100 LazyBackgroundTaskQueue::Get(browser_context) | 100 LazyBackgroundTaskQueue::Get(browser_context) |
| 101 ->AddPendingTask(browser_context, extension_id, | 101 ->AddPendingTask(browser_context, extension_id, |
| 102 base::Bind(&DispatchOnStartupEventImpl, | 102 base::Bind(&DispatchOnStartupEventImpl, |
| 103 browser_context, extension_id, false)); | 103 browser_context, extension_id, false)); |
| 104 return; | 104 return; |
| 105 } | 105 } |
| 106 | 106 |
| 107 scoped_ptr<base::ListValue> event_args(new base::ListValue()); | 107 scoped_ptr<base::ListValue> event_args(new base::ListValue()); |
| 108 scoped_ptr<Event> event( | 108 scoped_ptr<Event> event(new Event( |
| 109 new Event(runtime::OnStartup::kEventName, event_args.Pass())); | 109 events::UNKNOWN, runtime::OnStartup::kEventName, event_args.Pass())); |
| 110 EventRouter::Get(browser_context) | 110 EventRouter::Get(browser_context) |
| 111 ->DispatchEventToExtension(extension_id, event.Pass()); | 111 ->DispatchEventToExtension(extension_id, event.Pass()); |
| 112 } | 112 } |
| 113 | 113 |
| 114 void SetUninstallURL(ExtensionPrefs* prefs, | 114 void SetUninstallURL(ExtensionPrefs* prefs, |
| 115 const std::string& extension_id, | 115 const std::string& extension_id, |
| 116 const std::string& url_string) { | 116 const std::string& url_string) { |
| 117 prefs->UpdateExtensionPref( | 117 prefs->UpdateExtensionPref( |
| 118 extension_id, kUninstallUrl, new base::StringValue(url_string)); | 118 extension_id, kUninstallUrl, new base::StringValue(url_string)); |
| 119 } | 119 } |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 if (old_version.IsValid()) { | 300 if (old_version.IsValid()) { |
| 301 info->SetString(kInstallReason, kInstallReasonUpdate); | 301 info->SetString(kInstallReason, kInstallReasonUpdate); |
| 302 info->SetString(kInstallPreviousVersion, old_version.GetString()); | 302 info->SetString(kInstallPreviousVersion, old_version.GetString()); |
| 303 } else if (chrome_updated) { | 303 } else if (chrome_updated) { |
| 304 info->SetString(kInstallReason, kInstallReasonChromeUpdate); | 304 info->SetString(kInstallReason, kInstallReasonChromeUpdate); |
| 305 } else { | 305 } else { |
| 306 info->SetString(kInstallReason, kInstallReasonInstall); | 306 info->SetString(kInstallReason, kInstallReasonInstall); |
| 307 } | 307 } |
| 308 EventRouter* event_router = EventRouter::Get(context); | 308 EventRouter* event_router = EventRouter::Get(context); |
| 309 DCHECK(event_router); | 309 DCHECK(event_router); |
| 310 scoped_ptr<Event> event( | 310 scoped_ptr<Event> event(new Event( |
| 311 new Event(runtime::OnInstalled::kEventName, event_args.Pass())); | 311 events::UNKNOWN, runtime::OnInstalled::kEventName, event_args.Pass())); |
| 312 event_router->DispatchEventWithLazyListener(extension_id, event.Pass()); | 312 event_router->DispatchEventWithLazyListener(extension_id, event.Pass()); |
| 313 | 313 |
| 314 if (old_version.IsValid()) { | 314 if (old_version.IsValid()) { |
| 315 const Extension* extension = | 315 const Extension* extension = |
| 316 ExtensionRegistry::Get(context)->enabled_extensions().GetByID( | 316 ExtensionRegistry::Get(context)->enabled_extensions().GetByID( |
| 317 extension_id); | 317 extension_id); |
| 318 if (extension && SharedModuleInfo::IsSharedModule(extension)) { | 318 if (extension && SharedModuleInfo::IsSharedModule(extension)) { |
| 319 scoped_ptr<ExtensionSet> dependents = | 319 scoped_ptr<ExtensionSet> dependents = |
| 320 system->GetDependentExtensions(extension); | 320 system->GetDependentExtensions(extension); |
| 321 for (ExtensionSet::const_iterator i = dependents->begin(); | 321 for (ExtensionSet::const_iterator i = dependents->begin(); |
| 322 i != dependents->end(); | 322 i != dependents->end(); |
| 323 i++) { | 323 i++) { |
| 324 scoped_ptr<base::ListValue> sm_event_args(new base::ListValue()); | 324 scoped_ptr<base::ListValue> sm_event_args(new base::ListValue()); |
| 325 base::DictionaryValue* sm_info = new base::DictionaryValue(); | 325 base::DictionaryValue* sm_info = new base::DictionaryValue(); |
| 326 sm_event_args->Append(sm_info); | 326 sm_event_args->Append(sm_info); |
| 327 sm_info->SetString(kInstallReason, kInstallReasonSharedModuleUpdate); | 327 sm_info->SetString(kInstallReason, kInstallReasonSharedModuleUpdate); |
| 328 sm_info->SetString(kInstallPreviousVersion, old_version.GetString()); | 328 sm_info->SetString(kInstallPreviousVersion, old_version.GetString()); |
| 329 sm_info->SetString(kInstallId, extension_id); | 329 sm_info->SetString(kInstallId, extension_id); |
| 330 scoped_ptr<Event> sm_event( | 330 scoped_ptr<Event> sm_event(new Event(events::UNKNOWN, |
| 331 new Event(runtime::OnInstalled::kEventName, sm_event_args.Pass())); | 331 runtime::OnInstalled::kEventName, |
| 332 sm_event_args.Pass())); |
| 332 event_router->DispatchEventWithLazyListener((*i)->id(), | 333 event_router->DispatchEventWithLazyListener((*i)->id(), |
| 333 sm_event.Pass()); | 334 sm_event.Pass()); |
| 334 } | 335 } |
| 335 } | 336 } |
| 336 } | 337 } |
| 337 } | 338 } |
| 338 | 339 |
| 339 // static | 340 // static |
| 340 void RuntimeEventRouter::DispatchOnUpdateAvailableEvent( | 341 void RuntimeEventRouter::DispatchOnUpdateAvailableEvent( |
| 341 content::BrowserContext* context, | 342 content::BrowserContext* context, |
| 342 const std::string& extension_id, | 343 const std::string& extension_id, |
| 343 const base::DictionaryValue* manifest) { | 344 const base::DictionaryValue* manifest) { |
| 344 ExtensionSystem* system = ExtensionSystem::Get(context); | 345 ExtensionSystem* system = ExtensionSystem::Get(context); |
| 345 if (!system) | 346 if (!system) |
| 346 return; | 347 return; |
| 347 | 348 |
| 348 scoped_ptr<base::ListValue> args(new base::ListValue); | 349 scoped_ptr<base::ListValue> args(new base::ListValue); |
| 349 args->Append(manifest->DeepCopy()); | 350 args->Append(manifest->DeepCopy()); |
| 350 EventRouter* event_router = EventRouter::Get(context); | 351 EventRouter* event_router = EventRouter::Get(context); |
| 351 DCHECK(event_router); | 352 DCHECK(event_router); |
| 352 scoped_ptr<Event> event( | 353 scoped_ptr<Event> event(new Event( |
| 353 new Event(runtime::OnUpdateAvailable::kEventName, args.Pass())); | 354 events::UNKNOWN, runtime::OnUpdateAvailable::kEventName, args.Pass())); |
| 354 event_router->DispatchEventToExtension(extension_id, event.Pass()); | 355 event_router->DispatchEventToExtension(extension_id, event.Pass()); |
| 355 } | 356 } |
| 356 | 357 |
| 357 // static | 358 // static |
| 358 void RuntimeEventRouter::DispatchOnBrowserUpdateAvailableEvent( | 359 void RuntimeEventRouter::DispatchOnBrowserUpdateAvailableEvent( |
| 359 content::BrowserContext* context) { | 360 content::BrowserContext* context) { |
| 360 ExtensionSystem* system = ExtensionSystem::Get(context); | 361 ExtensionSystem* system = ExtensionSystem::Get(context); |
| 361 if (!system) | 362 if (!system) |
| 362 return; | 363 return; |
| 363 | 364 |
| 364 scoped_ptr<base::ListValue> args(new base::ListValue); | 365 scoped_ptr<base::ListValue> args(new base::ListValue); |
| 365 EventRouter* event_router = EventRouter::Get(context); | 366 EventRouter* event_router = EventRouter::Get(context); |
| 366 DCHECK(event_router); | 367 DCHECK(event_router); |
| 367 scoped_ptr<Event> event( | 368 scoped_ptr<Event> event( |
| 368 new Event(runtime::OnBrowserUpdateAvailable::kEventName, args.Pass())); | 369 new Event(events::UNKNOWN, runtime::OnBrowserUpdateAvailable::kEventName, |
| 370 args.Pass())); |
| 369 event_router->BroadcastEvent(event.Pass()); | 371 event_router->BroadcastEvent(event.Pass()); |
| 370 } | 372 } |
| 371 | 373 |
| 372 // static | 374 // static |
| 373 void RuntimeEventRouter::DispatchOnRestartRequiredEvent( | 375 void RuntimeEventRouter::DispatchOnRestartRequiredEvent( |
| 374 content::BrowserContext* context, | 376 content::BrowserContext* context, |
| 375 const std::string& app_id, | 377 const std::string& app_id, |
| 376 core_api::runtime::OnRestartRequiredReason reason) { | 378 core_api::runtime::OnRestartRequiredReason reason) { |
| 377 ExtensionSystem* system = ExtensionSystem::Get(context); | 379 ExtensionSystem* system = ExtensionSystem::Get(context); |
| 378 if (!system) | 380 if (!system) |
| 379 return; | 381 return; |
| 380 | 382 |
| 381 scoped_ptr<Event> event( | 383 scoped_ptr<Event> event( |
| 382 new Event(runtime::OnRestartRequired::kEventName, | 384 new Event(events::UNKNOWN, runtime::OnRestartRequired::kEventName, |
| 383 core_api::runtime::OnRestartRequired::Create(reason))); | 385 core_api::runtime::OnRestartRequired::Create(reason))); |
| 384 EventRouter* event_router = EventRouter::Get(context); | 386 EventRouter* event_router = EventRouter::Get(context); |
| 385 DCHECK(event_router); | 387 DCHECK(event_router); |
| 386 event_router->DispatchEventToExtension(app_id, event.Pass()); | 388 event_router->DispatchEventToExtension(app_id, event.Pass()); |
| 387 } | 389 } |
| 388 | 390 |
| 389 // static | 391 // static |
| 390 void RuntimeEventRouter::OnExtensionUninstalled( | 392 void RuntimeEventRouter::OnExtensionUninstalled( |
| 391 content::BrowserContext* context, | 393 content::BrowserContext* context, |
| 392 const std::string& extension_id, | 394 const std::string& extension_id, |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 content::ChildProcessSecurityPolicy* policy = | 521 content::ChildProcessSecurityPolicy* policy = |
| 520 content::ChildProcessSecurityPolicy::GetInstance(); | 522 content::ChildProcessSecurityPolicy::GetInstance(); |
| 521 policy->GrantReadFileSystem(renderer_id, filesystem_id); | 523 policy->GrantReadFileSystem(renderer_id, filesystem_id); |
| 522 base::DictionaryValue* dict = new base::DictionaryValue(); | 524 base::DictionaryValue* dict = new base::DictionaryValue(); |
| 523 dict->SetString("fileSystemId", filesystem_id); | 525 dict->SetString("fileSystemId", filesystem_id); |
| 524 dict->SetString("baseName", relative_path); | 526 dict->SetString("baseName", relative_path); |
| 525 return RespondNow(OneArgument(dict)); | 527 return RespondNow(OneArgument(dict)); |
| 526 } | 528 } |
| 527 | 529 |
| 528 } // namespace extensions | 530 } // namespace extensions |
| OLD | NEW |