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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 return; | 88 return; |
89 | 89 |
90 // If this is a persistent background page, we want to wait for it to load | 90 // If this is a persistent background page, we want to wait for it to load |
91 // (it might not be ready, since this is startup). But only enqueue once. | 91 // (it might not be ready, since this is startup). But only enqueue once. |
92 // If it fails to load the first time, don't bother trying again. | 92 // If it fails to load the first time, don't bother trying again. |
93 const Extension* extension = | 93 const Extension* extension = |
94 ExtensionRegistry::Get(browser_context)->enabled_extensions().GetByID( | 94 ExtensionRegistry::Get(browser_context)->enabled_extensions().GetByID( |
95 extension_id); | 95 extension_id); |
96 if (extension && BackgroundInfo::HasPersistentBackgroundPage(extension) && | 96 if (extension && BackgroundInfo::HasPersistentBackgroundPage(extension) && |
97 first_call && | 97 first_call && |
98 system->lazy_background_task_queue()->ShouldEnqueueTask(browser_context, | 98 LazyBackgroundTaskQueue::Get(browser_context)->ShouldEnqueueTask( |
99 extension)) { | 99 browser_context, extension)) { |
100 system->lazy_background_task_queue()->AddPendingTask( | 100 LazyBackgroundTaskQueue::Get(browser_context)->AddPendingTask( |
101 browser_context, | 101 browser_context, |
102 extension_id, | 102 extension_id, |
103 base::Bind( | 103 base::Bind( |
104 &DispatchOnStartupEventImpl, browser_context, extension_id, false)); | 104 &DispatchOnStartupEventImpl, browser_context, extension_id, false)); |
105 return; | 105 return; |
106 } | 106 } |
107 | 107 |
108 scoped_ptr<base::ListValue> event_args(new base::ListValue()); | 108 scoped_ptr<base::ListValue> event_args(new base::ListValue()); |
109 scoped_ptr<Event> event( | 109 scoped_ptr<Event> event( |
110 new Event(runtime::OnStartup::kEventName, event_args.Pass())); | 110 new Event(runtime::OnStartup::kEventName, event_args.Pass())); |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 GURL uninstall_url( | 397 GURL uninstall_url( |
398 GetUninstallURL(ExtensionPrefs::Get(context), extension_id)); | 398 GetUninstallURL(ExtensionPrefs::Get(context), extension_id)); |
399 | 399 |
400 if (uninstall_url.is_empty()) | 400 if (uninstall_url.is_empty()) |
401 return; | 401 return; |
402 | 402 |
403 RuntimeAPI::GetFactoryInstance()->Get(context)->OpenURL(uninstall_url); | 403 RuntimeAPI::GetFactoryInstance()->Get(context)->OpenURL(uninstall_url); |
404 } | 404 } |
405 | 405 |
406 ExtensionFunction::ResponseAction RuntimeGetBackgroundPageFunction::Run() { | 406 ExtensionFunction::ResponseAction RuntimeGetBackgroundPageFunction::Run() { |
407 ExtensionSystem* system = ExtensionSystem::Get(browser_context()); | |
408 ExtensionHost* host = ProcessManager::Get(browser_context()) | 407 ExtensionHost* host = ProcessManager::Get(browser_context()) |
409 ->GetBackgroundHostForExtension(extension_id()); | 408 ->GetBackgroundHostForExtension(extension_id()); |
410 if (system->lazy_background_task_queue()->ShouldEnqueueTask(browser_context(), | 409 if (LazyBackgroundTaskQueue::Get(browser_context())->ShouldEnqueueTask( |
411 extension())) { | 410 browser_context(), extension())) { |
412 system->lazy_background_task_queue()->AddPendingTask( | 411 LazyBackgroundTaskQueue::Get(browser_context())->AddPendingTask( |
413 browser_context(), | 412 browser_context(), |
414 extension_id(), | 413 extension_id(), |
415 base::Bind(&RuntimeGetBackgroundPageFunction::OnPageLoaded, this)); | 414 base::Bind(&RuntimeGetBackgroundPageFunction::OnPageLoaded, this)); |
416 } else if (host) { | 415 } else if (host) { |
417 OnPageLoaded(host); | 416 OnPageLoaded(host); |
418 } else { | 417 } else { |
419 return RespondNow(Error(kNoBackgroundPageError)); | 418 return RespondNow(Error(kNoBackgroundPageError)); |
420 } | 419 } |
421 | 420 |
422 return RespondLater(); | 421 return RespondLater(); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
518 content::ChildProcessSecurityPolicy* policy = | 517 content::ChildProcessSecurityPolicy* policy = |
519 content::ChildProcessSecurityPolicy::GetInstance(); | 518 content::ChildProcessSecurityPolicy::GetInstance(); |
520 policy->GrantReadFileSystem(renderer_id, filesystem_id); | 519 policy->GrantReadFileSystem(renderer_id, filesystem_id); |
521 base::DictionaryValue* dict = new base::DictionaryValue(); | 520 base::DictionaryValue* dict = new base::DictionaryValue(); |
522 dict->SetString("fileSystemId", filesystem_id); | 521 dict->SetString("fileSystemId", filesystem_id); |
523 dict->SetString("baseName", relative_path); | 522 dict->SetString("baseName", relative_path); |
524 return RespondNow(OneArgument(dict)); | 523 return RespondNow(OneArgument(dict)); |
525 } | 524 } |
526 | 525 |
527 } // namespace extensions | 526 } // namespace extensions |
OLD | NEW |