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/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 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
573 } | 573 } |
574 | 574 |
575 // static | 575 // static |
576 void ManagementUninstallFunctionBase::SetAutoConfirmForTest( | 576 void ManagementUninstallFunctionBase::SetAutoConfirmForTest( |
577 bool should_proceed) { | 577 bool should_proceed) { |
578 auto_confirm_for_test = should_proceed ? PROCEED : ABORT; | 578 auto_confirm_for_test = should_proceed ? PROCEED : ABORT; |
579 } | 579 } |
580 | 580 |
581 void ManagementUninstallFunctionBase::Finish(bool should_uninstall) { | 581 void ManagementUninstallFunctionBase::Finish(bool should_uninstall) { |
582 if (should_uninstall) { | 582 if (should_uninstall) { |
583 bool success = service()->UninstallExtension( | 583 // The extension can be uninstalled in another window while the UI was |
584 extension_id_, | 584 // showing. Do nothing in that case. |
not at google - send to devlin
2014/05/16 22:11:00
Do we have any tests which actually exercise the U
Marijn Kruisselbrink
2014/05/16 22:19:12
I think in tests we bypass the dialog, and behave
| |
585 false, /* external uninstall */ | 585 ExtensionRegistry* registry = ExtensionRegistry::Get(GetProfile()); |
586 NULL); | 586 const Extension* extension = registry->GetExtensionById( |
587 extension_id_, ExtensionRegistry::EVERYTHING); | |
588 if (!extension) { | |
not at google - send to devlin
2014/05/16 22:11:00
emulate the extension not being there by using kNo
Marijn Kruisselbrink
2014/05/16 22:19:12
Done.
| |
589 SendResponse(false); | |
590 } else { | |
591 bool success = | |
592 service()->UninstallExtension(extension_id_, | |
not at google - send to devlin
2014/05/16 22:11:00
what kind of behaviour do we have in ExtensionServ
Marijn Kruisselbrink
2014/05/16 22:19:12
It is a CHECK failure already.
| |
593 false, /* external uninstall */ | |
594 NULL); | |
587 | 595 |
588 // TODO set error_ if !success | 596 // TODO set error_ if !success |
589 SendResponse(success); | 597 SendResponse(success); |
598 } | |
590 } else { | 599 } else { |
591 error_ = ErrorUtils::FormatErrorMessage( | 600 error_ = ErrorUtils::FormatErrorMessage( |
592 keys::kUninstallCanceledError, extension_id_); | 601 keys::kUninstallCanceledError, extension_id_); |
593 SendResponse(false); | 602 SendResponse(false); |
594 } | 603 } |
595 | 604 |
596 } | 605 } |
597 | 606 |
598 void ManagementUninstallFunctionBase::ExtensionUninstallAccepted() { | 607 void ManagementUninstallFunctionBase::ExtensionUninstallAccepted() { |
599 Finish(true); | 608 Finish(true); |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
814 return g_factory.Pointer(); | 823 return g_factory.Pointer(); |
815 } | 824 } |
816 | 825 |
817 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { | 826 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { |
818 management_event_router_.reset( | 827 management_event_router_.reset( |
819 new ManagementEventRouter(Profile::FromBrowserContext(browser_context_))); | 828 new ManagementEventRouter(Profile::FromBrowserContext(browser_context_))); |
820 EventRouter::Get(browser_context_)->UnregisterObserver(this); | 829 EventRouter::Get(browser_context_)->UnregisterObserver(this); |
821 } | 830 } |
822 | 831 |
823 } // namespace extensions | 832 } // namespace extensions |
OLD | NEW |