Index: chrome/browser/extensions/bundle_installer.cc |
diff --git a/chrome/browser/extensions/bundle_installer.cc b/chrome/browser/extensions/bundle_installer.cc |
index 5254c80135098c3db33b4ab309f9f5e64644eca7..1347462a6b3c88d9610e8299b887b8cb04514fb0 100644 |
--- a/chrome/browser/extensions/bundle_installer.cc |
+++ b/chrome/browser/extensions/bundle_installer.cc |
@@ -9,6 +9,8 @@ |
#include <vector> |
#include "base/command_line.h" |
+#include "base/i18n/rtl.h" |
+#include "base/utf_string_conversions.h" |
#include "base/values.h" |
#include "chrome/browser/extensions/crx_installer.h" |
#include "chrome/browser/extensions/extension_install_dialog.h" |
@@ -80,8 +82,7 @@ const int kHeadingIds[3][4] = { |
IDS_EXTENSION_BUNDLE_INSTALLED_HEADING_EXTENSIONS, |
IDS_EXTENSION_BUNDLE_INSTALLED_HEADING_APPS, |
IDS_EXTENSION_BUNDLE_INSTALLED_HEADING_EXTENSION_APPS |
- }, |
- { IDS_EXTENSION_BUNDLE_ERROR_HEADING, 0, 0, 0 } |
+ } |
}; |
} // namespace |
@@ -94,6 +95,12 @@ void BundleInstaller::SetAutoApproveForTesting(bool auto_approve) { |
BundleInstaller::Item::Item() : state(STATE_PENDING) {} |
+string16 BundleInstaller::Item::GetNameForDisplay() { |
+ string16 name = UTF8ToUTF16(localized_name); |
+ base::i18n::AdjustStringForLocaleDirection(&name); |
+ return l10n_util::GetStringFUTF16(IDS_EXTENSION_PERMISSION_LINE, name); |
+} |
+ |
BundleInstaller::BundleInstaller(Profile* profile, |
const BundleInstaller::ItemList& items) |
: approved_(false), |
@@ -162,17 +169,18 @@ void BundleInstaller::CompleteInstall(NavigationController* controller, |
} |
string16 BundleInstaller::GetHeadingTextFor(Item::State state) const { |
- size_t total = 0; |
- size_t apps = 0; |
- |
// For STATE_FAILED, we can't tell if the items were apps or extensions |
// so we always show the same message. |
- if (state == Item::STATE_INSTALLED || state == Item::STATE_PENDING) { |
- total = GetItemsWithState(state).size(); |
- apps = std::count_if( |
- dummy_extensions_.begin(), dummy_extensions_.end(), &IsAppPredicate); |
+ if (state == Item::STATE_FAILED) { |
+ if (GetItemsWithState(state).size()) |
+ return l10n_util::GetStringUTF16(IDS_EXTENSION_BUNDLE_ERROR_HEADING); |
+ return string16(); |
} |
+ size_t total = GetItemsWithState(state).size(); |
+ size_t apps = std::count_if( |
+ dummy_extensions_.begin(), dummy_extensions_.end(), &IsAppPredicate); |
+ |
bool has_apps = apps > 0; |
bool has_extensions = apps < total; |
size_t index = (has_extensions << 0) + (has_apps << 1); |
@@ -187,14 +195,6 @@ string16 BundleInstaller::GetHeadingTextFor(Item::State state) const { |
return l10n_util::GetStringUTF16(msg_id); |
} |
-#if defined(OS_MACOSX) |
-// static |
-void BundleInstaller::ShowInstalledBubble( |
- const BundleInstaller* bundle, Browser* browser) { |
- // TODO(jstritar): provide platform specific implementations. |
-} |
-#endif |
- |
void BundleInstaller::ParseManifests() { |
if (items_.empty()) { |
ReportCanceled(false); |
@@ -329,8 +329,10 @@ void BundleInstaller::OnExtensionInstallFailure(const std::string& id, |
const std::string& error) { |
items_[id].state = Item::STATE_FAILED; |
- std::remove_if(dummy_extensions_.begin(), dummy_extensions_.end(), |
- MatchIdFunctor(id)); |
+ ExtensionList::iterator i = std::find_if( |
+ dummy_extensions_.begin(), dummy_extensions_.end(), MatchIdFunctor(id)); |
+ CHECK(dummy_extensions_.end() != i); |
+ dummy_extensions_.erase(i); |
ShowInstalledBubbleIfDone(); |
} |