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

Unified Diff: chrome/browser/extensions/external_provider_impl.cc

Issue 1128753003: Add minimal profile creation version for default apps install on Chrome OS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove extension from set of provided extensions Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/external_provider_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/external_provider_impl.cc
diff --git a/chrome/browser/extensions/external_provider_impl.cc b/chrome/browser/extensions/external_provider_impl.cc
index f3122881c0af2f3125e81b935d67ddd48c7b4fc1..7502de34f78a7c974e5008b0fab7acb784dc1b58 100644
--- a/chrome/browser/extensions/external_provider_impl.cc
+++ b/chrome/browser/extensions/external_provider_impl.cc
@@ -35,6 +35,7 @@
#include "ui/base/l10n/l10n_util.h"
#if defined(OS_CHROMEOS)
+#include "base/prefs/pref_service.h"
#include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
#include "chrome/browser/chromeos/customization/customization_document.h"
#include "chrome/browser/chromeos/extensions/device_local_account_external_policy_loader.h"
@@ -42,6 +43,7 @@
#include "chrome/browser/chromeos/policy/device_local_account.h"
#include "chrome/browser/chromeos/policy/device_local_account_policy_service.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
+#include "chrome/common/pref_names.h"
#include "components/user_manager/user.h"
#else
#include "chrome/browser/extensions/default_apps.h"
@@ -66,6 +68,8 @@ const char ExternalProviderImpl::kKeepIfPresent[] = "keep_if_present";
const char ExternalProviderImpl::kWasInstalledByOem[] = "was_installed_by_oem";
const char ExternalProviderImpl::kSupportedLocales[] = "supported_locales";
const char ExternalProviderImpl::kMayBeUntrusted[] = "may_be_untrusted";
+const char ExternalProviderImpl::kMinProfileCreatedByVersion[] =
+ "min_profile_created_by_version";
ExternalProviderImpl::ExternalProviderImpl(
VisitorInterface* service,
@@ -218,6 +222,7 @@ void ExternalProviderImpl::SetPrefs(base::DictionaryValue* prefs) {
const Extension* extension = extension_service ?
extension_service->GetExtensionById(extension_id, true) : NULL;
if (!extension) {
+ unsupported_extensions.insert(extension_id);
VLOG(1) << "Skip installing (or uninstall) external extension: "
<< extension_id << " because the extension should be kept "
<< "only if it is already installed.";
@@ -235,6 +240,26 @@ void ExternalProviderImpl::SetPrefs(base::DictionaryValue* prefs) {
creation_flags |= Extension::MAY_BE_UNTRUSTED;
}
+#if defined(OS_CHROMEOS)
+ std::string min_profile_created_by_version;
+ if (profile_ &&
+ extension->GetString(kMinProfileCreatedByVersion,
+ &min_profile_created_by_version)) {
+ Version profile_version(
+ profile_->GetPrefs()->GetString(prefs::kProfileCreatedByVersion));
+ Version min_version(min_profile_created_by_version);
+ if (min_version.IsValid() && profile_version.CompareTo(min_version) < 0) {
+ unsupported_extensions.insert(extension_id);
+ VLOG(1) << "Skip installing (or uninstall) external extension: "
+ << extension_id << " profile.created_by_version: "
+ << profile_version.GetString()
+ << " min_profile_created_by_version:"
+ << min_profile_created_by_version;
+ continue;
+ }
+ }
+#endif // OS_CHROMEOS
+
asargent_no_longer_on_chrome 2015/05/08 20:53:25 This method is getting really long, so it would be
Dmitry Polukhin 2015/05/09 07:36:50 Done. I just removed #ifdef there is nothing reall
std::string install_parameter;
extension->GetString(kInstallParam, &install_parameter);
« no previous file with comments | « chrome/browser/extensions/external_provider_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698