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 28 matching lines...) Expand all Loading... |
39 using content::BrowserContext; | 39 using content::BrowserContext; |
40 | 40 |
41 namespace extensions { | 41 namespace extensions { |
42 | 42 |
43 namespace runtime = core_api::runtime; | 43 namespace runtime = core_api::runtime; |
44 | 44 |
45 namespace { | 45 namespace { |
46 | 46 |
47 const char kNoBackgroundPageError[] = "You do not have a background page."; | 47 const char kNoBackgroundPageError[] = "You do not have a background page."; |
48 const char kPageLoadError[] = "Background page failed to load."; | 48 const char kPageLoadError[] = "Background page failed to load."; |
| 49 const char kFailedToCreateOptionsPage[] = "Could not create an options page."; |
49 const char kInstallId[] = "id"; | 50 const char kInstallId[] = "id"; |
50 const char kInstallReason[] = "reason"; | 51 const char kInstallReason[] = "reason"; |
51 const char kInstallReasonChromeUpdate[] = "chrome_update"; | 52 const char kInstallReasonChromeUpdate[] = "chrome_update"; |
52 const char kInstallReasonUpdate[] = "update"; | 53 const char kInstallReasonUpdate[] = "update"; |
53 const char kInstallReasonInstall[] = "install"; | 54 const char kInstallReasonInstall[] = "install"; |
54 const char kInstallReasonSharedModuleUpdate[] = "shared_module_update"; | 55 const char kInstallReasonSharedModuleUpdate[] = "shared_module_update"; |
55 const char kInstallPreviousVersion[] = "previousVersion"; | 56 const char kInstallPreviousVersion[] = "previousVersion"; |
56 const char kInvalidUrlError[] = "Invalid URL."; | 57 const char kInvalidUrlError[] = "Invalid URL."; |
57 const char kPlatformInfoUnavailable[] = "Platform information unavailable."; | 58 const char kPlatformInfoUnavailable[] = "Platform information unavailable."; |
58 | 59 |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 } | 262 } |
262 | 263 |
263 bool RuntimeAPI::GetPlatformInfo(runtime::PlatformInfo* info) { | 264 bool RuntimeAPI::GetPlatformInfo(runtime::PlatformInfo* info) { |
264 return delegate_->GetPlatformInfo(info); | 265 return delegate_->GetPlatformInfo(info); |
265 } | 266 } |
266 | 267 |
267 bool RuntimeAPI::RestartDevice(std::string* error_message) { | 268 bool RuntimeAPI::RestartDevice(std::string* error_message) { |
268 return delegate_->RestartDevice(error_message); | 269 return delegate_->RestartDevice(error_message); |
269 } | 270 } |
270 | 271 |
| 272 bool RuntimeAPI::OpenOptionsPage(const Extension* extension) { |
| 273 return delegate_->OpenOptionsPage(extension); |
| 274 } |
| 275 |
271 /////////////////////////////////////////////////////////////////////////////// | 276 /////////////////////////////////////////////////////////////////////////////// |
272 | 277 |
273 // static | 278 // static |
274 void RuntimeEventRouter::DispatchOnStartupEvent( | 279 void RuntimeEventRouter::DispatchOnStartupEvent( |
275 content::BrowserContext* context, | 280 content::BrowserContext* context, |
276 const std::string& extension_id) { | 281 const std::string& extension_id) { |
277 DispatchOnStartupEventImpl(context, extension_id, true, NULL); | 282 DispatchOnStartupEventImpl(context, extension_id, true, NULL); |
278 } | 283 } |
279 | 284 |
280 // static | 285 // static |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 } | 423 } |
419 | 424 |
420 void RuntimeGetBackgroundPageFunction::OnPageLoaded(ExtensionHost* host) { | 425 void RuntimeGetBackgroundPageFunction::OnPageLoaded(ExtensionHost* host) { |
421 if (host) { | 426 if (host) { |
422 Respond(NoArguments()); | 427 Respond(NoArguments()); |
423 } else { | 428 } else { |
424 Respond(Error(kPageLoadError)); | 429 Respond(Error(kPageLoadError)); |
425 } | 430 } |
426 } | 431 } |
427 | 432 |
| 433 ExtensionFunction::ResponseAction RuntimeOpenOptionsPageFunction::Run() { |
| 434 RuntimeAPI* api = RuntimeAPI::GetFactoryInstance()->Get(browser_context()); |
| 435 return RespondNow(api->OpenOptionsPage(extension()) |
| 436 ? NoArguments() |
| 437 : Error(kFailedToCreateOptionsPage)); |
| 438 } |
| 439 |
428 ExtensionFunction::ResponseAction RuntimeSetUninstallURLFunction::Run() { | 440 ExtensionFunction::ResponseAction RuntimeSetUninstallURLFunction::Run() { |
429 std::string url_string; | 441 std::string url_string; |
430 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url_string)); | 442 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &url_string)); |
431 | 443 |
432 GURL url(url_string); | 444 GURL url(url_string); |
433 if (!url.is_valid()) { | 445 if (!url.is_valid()) { |
434 return RespondNow( | 446 return RespondNow( |
435 Error(ErrorUtils::FormatErrorMessage(kInvalidUrlError, url_string))); | 447 Error(ErrorUtils::FormatErrorMessage(kInvalidUrlError, url_string))); |
436 } | 448 } |
437 SetUninstallURL( | 449 SetUninstallURL( |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 content::ChildProcessSecurityPolicy* policy = | 518 content::ChildProcessSecurityPolicy* policy = |
507 content::ChildProcessSecurityPolicy::GetInstance(); | 519 content::ChildProcessSecurityPolicy::GetInstance(); |
508 policy->GrantReadFileSystem(renderer_id, filesystem_id); | 520 policy->GrantReadFileSystem(renderer_id, filesystem_id); |
509 base::DictionaryValue* dict = new base::DictionaryValue(); | 521 base::DictionaryValue* dict = new base::DictionaryValue(); |
510 dict->SetString("fileSystemId", filesystem_id); | 522 dict->SetString("fileSystemId", filesystem_id); |
511 dict->SetString("baseName", relative_path); | 523 dict->SetString("baseName", relative_path); |
512 return RespondNow(OneArgument(dict)); | 524 return RespondNow(OneArgument(dict)); |
513 } | 525 } |
514 | 526 |
515 } // namespace extensions | 527 } // namespace extensions |
OLD | NEW |