OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/webstore_private/webstore_private_api.h" | 5 #include "chrome/browser/extensions/api/webstore_private/webstore_private_api.h" |
6 | 6 |
7 #include "apps/app_launcher.h" | 7 #include "apps/app_launcher.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 | 409 |
410 std::string error; | 410 std::string error; |
411 dummy_extension_ = ExtensionInstallPrompt::GetLocalizedExtensionForDisplay( | 411 dummy_extension_ = ExtensionInstallPrompt::GetLocalizedExtensionForDisplay( |
412 parsed_manifest_.get(), | 412 parsed_manifest_.get(), |
413 Extension::FROM_WEBSTORE, | 413 Extension::FROM_WEBSTORE, |
414 id, | 414 id, |
415 localized_name_, | 415 localized_name_, |
416 std::string(), | 416 std::string(), |
417 &error); | 417 &error); |
418 | 418 |
419 if (!dummy_extension_) { | 419 if (!dummy_extension_.get()) { |
420 OnWebstoreParseFailure(id_, WebstoreInstallHelper::Delegate::MANIFEST_ERROR, | 420 OnWebstoreParseFailure(id_, |
| 421 WebstoreInstallHelper::Delegate::MANIFEST_ERROR, |
421 kInvalidManifestError); | 422 kInvalidManifestError); |
422 return; | 423 return; |
423 } | 424 } |
424 | 425 |
425 SigninManagerBase* signin_manager = | 426 SigninManagerBase* signin_manager = |
426 SigninManagerFactory::GetForProfile(profile()); | 427 SigninManagerFactory::GetForProfile(profile()); |
427 if (dummy_extension_->is_platform_app() && | 428 if (dummy_extension_->is_platform_app() && |
428 signin_manager->GetAuthenticatedUsername().empty() && | 429 signin_manager->GetAuthenticatedUsername().empty() && |
429 signin_manager->AuthInProgress()) { | 430 signin_manager->AuthInProgress()) { |
430 signin_tracker_.reset(new SigninTracker(profile(), this)); | 431 signin_tracker_.reset(new SigninTracker(profile(), this)); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 SigninCompletedOrNotNeeded(); | 484 SigninCompletedOrNotNeeded(); |
484 } | 485 } |
485 | 486 |
486 void BeginInstallWithManifestFunction::SigninCompletedOrNotNeeded() { | 487 void BeginInstallWithManifestFunction::SigninCompletedOrNotNeeded() { |
487 content::WebContents* web_contents = GetAssociatedWebContents(); | 488 content::WebContents* web_contents = GetAssociatedWebContents(); |
488 if (!web_contents) // The browser window has gone away. | 489 if (!web_contents) // The browser window has gone away. |
489 return; | 490 return; |
490 install_prompt_.reset(new ExtensionInstallPrompt(web_contents)); | 491 install_prompt_.reset(new ExtensionInstallPrompt(web_contents)); |
491 install_prompt_->ConfirmWebstoreInstall( | 492 install_prompt_->ConfirmWebstoreInstall( |
492 this, | 493 this, |
493 dummy_extension_, | 494 dummy_extension_.get(), |
494 &icon_, | 495 &icon_, |
495 ExtensionInstallPrompt::GetDefaultShowDialogCallback()); | 496 ExtensionInstallPrompt::GetDefaultShowDialogCallback()); |
496 // Control flow finishes up in InstallUIProceed or InstallUIAbort. | 497 // Control flow finishes up in InstallUIProceed or InstallUIAbort. |
497 } | 498 } |
498 | 499 |
499 void BeginInstallWithManifestFunction::InstallUIProceed() { | 500 void BeginInstallWithManifestFunction::InstallUIProceed() { |
500 // This gets cleared in CrxInstaller::ConfirmInstall(). TODO(asargent) - in | 501 // This gets cleared in CrxInstaller::ConfirmInstall(). TODO(asargent) - in |
501 // the future we may also want to add time-based expiration, where a whitelist | 502 // the future we may also want to add time-based expiration, where a whitelist |
502 // entry is only valid for some number of minutes. | 503 // entry is only valid for some number of minutes. |
503 scoped_ptr<WebstoreInstaller::Approval> approval( | 504 scoped_ptr<WebstoreInstaller::Approval> approval( |
504 WebstoreInstaller::Approval::CreateWithNoInstallPrompt( | 505 WebstoreInstaller::Approval::CreateWithNoInstallPrompt( |
505 profile(), id_, parsed_manifest_.Pass())); | 506 profile(), id_, parsed_manifest_.Pass())); |
506 approval->use_app_installed_bubble = use_app_installed_bubble_; | 507 approval->use_app_installed_bubble = use_app_installed_bubble_; |
507 approval->enable_launcher = enable_launcher_; | 508 approval->enable_launcher = enable_launcher_; |
508 approval->installing_icon = gfx::ImageSkia::CreateFrom1xBitmap(icon_); | 509 approval->installing_icon = gfx::ImageSkia::CreateFrom1xBitmap(icon_); |
509 g_pending_approvals.Get().PushApproval(approval.Pass()); | 510 g_pending_approvals.Get().PushApproval(approval.Pass()); |
510 | 511 |
511 SetResultCode(ERROR_NONE); | 512 SetResultCode(ERROR_NONE); |
512 SendResponse(true); | 513 SendResponse(true); |
513 | 514 |
514 // The Permissions_Install histogram is recorded from the ExtensionService | 515 // The Permissions_Install histogram is recorded from the ExtensionService |
515 // for all extension installs, so we only need to record the web store | 516 // for all extension installs, so we only need to record the web store |
516 // specific histogram here. | 517 // specific histogram here. |
517 ExtensionService::RecordPermissionMessagesHistogram( | 518 ExtensionService::RecordPermissionMessagesHistogram( |
518 dummy_extension_, "Extensions.Permissions_WebStoreInstall"); | 519 dummy_extension_.get(), "Extensions.Permissions_WebStoreInstall"); |
519 | 520 |
520 // Matches the AddRef in RunImpl(). | 521 // Matches the AddRef in RunImpl(). |
521 Release(); | 522 Release(); |
522 } | 523 } |
523 | 524 |
524 void BeginInstallWithManifestFunction::InstallUIAbort(bool user_initiated) { | 525 void BeginInstallWithManifestFunction::InstallUIAbort(bool user_initiated) { |
525 error_ = kUserCancelledError; | 526 error_ = kUserCancelledError; |
526 SetResultCode(USER_CANCELLED); | 527 SetResultCode(USER_CANCELLED); |
527 g_pending_installs.Get().EraseInstall(profile_, id_); | 528 g_pending_installs.Get().EraseInstall(profile_, id_); |
528 SendResponse(false); | 529 SendResponse(false); |
529 | 530 |
530 // The web store install histograms are a subset of the install histograms. | 531 // The web store install histograms are a subset of the install histograms. |
531 // We need to record both histograms here since CrxInstaller::InstallUIAbort | 532 // We need to record both histograms here since CrxInstaller::InstallUIAbort |
532 // is never called for web store install cancellations. | 533 // is never called for web store install cancellations. |
533 std::string histogram_name = user_initiated ? | 534 std::string histogram_name = user_initiated ? |
534 "Extensions.Permissions_WebStoreInstallCancel" : | 535 "Extensions.Permissions_WebStoreInstallCancel" : |
535 "Extensions.Permissions_WebStoreInstallAbort"; | 536 "Extensions.Permissions_WebStoreInstallAbort"; |
536 ExtensionService::RecordPermissionMessagesHistogram( | 537 ExtensionService::RecordPermissionMessagesHistogram(dummy_extension_.get(), |
537 dummy_extension_, histogram_name.c_str()); | 538 histogram_name.c_str()); |
538 | 539 |
539 histogram_name = user_initiated ? | 540 histogram_name = user_initiated ? |
540 "Extensions.Permissions_InstallCancel" : | 541 "Extensions.Permissions_InstallCancel" : |
541 "Extensions.Permissions_InstallAbort"; | 542 "Extensions.Permissions_InstallAbort"; |
542 ExtensionService::RecordPermissionMessagesHistogram( | 543 ExtensionService::RecordPermissionMessagesHistogram(dummy_extension_.get(), |
543 dummy_extension_, histogram_name.c_str()); | 544 histogram_name.c_str()); |
544 | 545 |
545 // Matches the AddRef in RunImpl(). | 546 // Matches the AddRef in RunImpl(). |
546 Release(); | 547 Release(); |
547 } | 548 } |
548 | 549 |
549 CompleteInstallFunction::CompleteInstallFunction() {} | 550 CompleteInstallFunction::CompleteInstallFunction() {} |
550 | 551 |
551 CompleteInstallFunction::~CompleteInstallFunction() {} | 552 CompleteInstallFunction::~CompleteInstallFunction() {} |
552 | 553 |
553 bool CompleteInstallFunction::RunImpl() { | 554 bool CompleteInstallFunction::RunImpl() { |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 &GetIsLauncherEnabledFunction::OnIsLauncherCheckCompleted, this)); | 721 &GetIsLauncherEnabledFunction::OnIsLauncherCheckCompleted, this)); |
721 return true; | 722 return true; |
722 } | 723 } |
723 | 724 |
724 void GetIsLauncherEnabledFunction::OnIsLauncherCheckCompleted(bool is_enabled) { | 725 void GetIsLauncherEnabledFunction::OnIsLauncherCheckCompleted(bool is_enabled) { |
725 SetResult(Value::CreateBooleanValue(is_enabled)); | 726 SetResult(Value::CreateBooleanValue(is_enabled)); |
726 SendResponse(true); | 727 SendResponse(true); |
727 } | 728 } |
728 | 729 |
729 } // namespace extensions | 730 } // namespace extensions |
OLD | NEW |