Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: chrome/browser/extensions/api/management/management_api.cc

Issue 12089037: Add management.uninstallSelf to API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: modify api docs Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/management/management_api.h" 5 #include "chrome/browser/extensions/api/management/management_api.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 SendResponse(false); 506 SendResponse(false);
507 Release(); 507 Release();
508 } 508 }
509 509
510 ManagementUninstallFunction::ManagementUninstallFunction() { 510 ManagementUninstallFunction::ManagementUninstallFunction() {
511 } 511 }
512 512
513 ManagementUninstallFunction::~ManagementUninstallFunction() { 513 ManagementUninstallFunction::~ManagementUninstallFunction() {
514 } 514 }
515 515
516 bool ManagementUninstallFunction::RunImpl() { 516 bool ManagementUninstallFunction::DoUninstall(bool show_confirm_dialog) {
517 scoped_ptr<management::Uninstall::Params> params(
518 management::Uninstall::Params::Create(*args_));
519 EXTENSION_FUNCTION_VALIDATE(params.get());
520
521 extension_id_ = params->id;
522
523 bool show_confirm_dialog = false;
524 if (params->options.get() && params->options->show_confirm_dialog.get())
525 show_confirm_dialog = *params->options->show_confirm_dialog;
526
527 const Extension* extension = service()->GetExtensionById(extension_id_, true); 517 const Extension* extension = service()->GetExtensionById(extension_id_, true);
528 if (!extension) { 518 if (!extension) {
529 error_ = ErrorUtils::FormatErrorMessage( 519 error_ = ErrorUtils::FormatErrorMessage(
530 keys::kNoExtensionError, extension_id_); 520 keys::kNoExtensionError, extension_id_);
531 return false; 521 return false;
532 } 522 }
533 523
534 if (!ExtensionSystem::Get(profile())->management_policy()-> 524 if (!ExtensionSystem::Get(profile())->management_policy()->
535 UserMayModifySettings(extension, NULL)) { 525 UserMayModifySettings(extension, NULL)) {
536 error_ = ErrorUtils::FormatErrorMessage( 526 error_ = ErrorUtils::FormatErrorMessage(
(...skipping 10 matching lines...) Expand all
547 } else { 537 } else {
548 Finish(true); 538 Finish(true);
549 } 539 }
550 } else { 540 } else {
551 Finish(auto_confirm_for_test == PROCEED); 541 Finish(auto_confirm_for_test == PROCEED);
552 } 542 }
553 543
554 return true; 544 return true;
555 } 545 }
556 546
547 bool ManagementUninstallFunction::RunImpl() {
548 scoped_ptr<management::Uninstall::Params> params(
549 management::Uninstall::Params::Create(*args_));
550 EXTENSION_FUNCTION_VALIDATE(params.get());
551
552 extension_id_ = params->id;
553
554 bool show_confirm_dialog = false;
555 if (params->options.get() && params->options->show_confirm_dialog.get())
556 show_confirm_dialog = *params->options->show_confirm_dialog;
557
558 return DoUninstall(show_confirm_dialog);
559 }
560
557 // static 561 // static
558 void ManagementUninstallFunction::SetAutoConfirmForTest(bool should_proceed) { 562 void ManagementUninstallFunction::SetAutoConfirmForTest(bool should_proceed) {
559 auto_confirm_for_test = should_proceed ? PROCEED : ABORT; 563 auto_confirm_for_test = should_proceed ? PROCEED : ABORT;
560 } 564 }
561 565
566 void ManagementUninstallFunction::set_extension_id(
567 const std::string& extension_id) {
568 extension_id_ = extension_id;
569 }
570
562 void ManagementUninstallFunction::Finish(bool should_uninstall) { 571 void ManagementUninstallFunction::Finish(bool should_uninstall) {
563 if (should_uninstall) { 572 if (should_uninstall) {
564 bool success = service()->UninstallExtension( 573 bool success = service()->UninstallExtension(
565 extension_id_, 574 extension_id_,
566 false, /* external uninstall */ 575 false, /* external uninstall */
567 NULL); 576 NULL);
568 577
569 // TODO set error_ if !success 578 // TODO set error_ if !success
570 SendResponse(success); 579 SendResponse(success);
571 } else { 580 } else {
572 error_ = ErrorUtils::FormatErrorMessage( 581 error_ = ErrorUtils::FormatErrorMessage(
573 keys::kUninstallCanceledError, extension_id_); 582 keys::kUninstallCanceledError, extension_id_);
574 SendResponse(false); 583 SendResponse(false);
575 } 584 }
576 585
577 } 586 }
578 587
588 ManagementUninstallSelfFunction::ManagementUninstallSelfFunction() {
koz (OOO until 15th September) 2013/01/29 05:20:26 The definitions of functions for a class should al
calamity 2013/01/29 06:06:16 Done.
589 }
590
591 ManagementUninstallSelfFunction::~ManagementUninstallSelfFunction() {
592 }
593
594 bool ManagementUninstallSelfFunction::RunImpl() {
595 scoped_ptr<management::UninstallSelf::Params> params(
596 management::UninstallSelf::Params::Create(*args_));
597 EXTENSION_FUNCTION_VALIDATE(params.get());
598
599 set_extension_id(extension_->id());
600
601 bool show_confirm_dialog = false;
602 if (params->options.get() && params->options->show_confirm_dialog.get())
603 show_confirm_dialog = *params->options->show_confirm_dialog;
604 return DoUninstall(show_confirm_dialog);
605 }
606
579 void ManagementUninstallFunction::ExtensionUninstallAccepted() { 607 void ManagementUninstallFunction::ExtensionUninstallAccepted() {
580 Finish(true); 608 Finish(true);
581 Release(); 609 Release();
582 } 610 }
583 611
584 void ManagementUninstallFunction::ExtensionUninstallCanceled() { 612 void ManagementUninstallFunction::ExtensionUninstallCanceled() {
585 Finish(false); 613 Finish(false);
586 Release(); 614 Release();
587 } 615 }
588 616
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 ProfileKeyedAPIFactory<ManagementAPI>* ManagementAPI::GetFactoryInstance() { 707 ProfileKeyedAPIFactory<ManagementAPI>* ManagementAPI::GetFactoryInstance() {
680 return &g_factory.Get(); 708 return &g_factory.Get();
681 } 709 }
682 710
683 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { 711 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) {
684 management_event_router_.reset(new ManagementEventRouter(profile_)); 712 management_event_router_.reset(new ManagementEventRouter(profile_));
685 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); 713 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);
686 } 714 }
687 715
688 } // namespace extensions 716 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698