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

Side by Side Diff: chrome/browser/extensions/extension_service.cc

Issue 2004043002: Supervised Users Initiated Installs v2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@kid_initiated_install
Patch Set: Fixing updates of SU initiated installs Created 4 years, 6 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/extension_service.h" 5 #include "chrome/browser/extensions/extension_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <iterator> 10 #include <iterator>
(...skipping 1627 matching lines...) Expand 10 before | Expand all | Expand 10 after
1638 1638
1639 // Extension has changed permissions significantly. Disable it. A 1639 // Extension has changed permissions significantly. Disable it. A
1640 // notification should be sent by the caller. If the extension is already 1640 // notification should be sent by the caller. If the extension is already
1641 // disabled because it was installed remotely, don't add another disable 1641 // disabled because it was installed remotely, don't add another disable
1642 // reason. 1642 // reason.
1643 if (is_privilege_increase && 1643 if (is_privilege_increase &&
1644 !(disable_reasons & Extension::DISABLE_REMOTE_INSTALL)) { 1644 !(disable_reasons & Extension::DISABLE_REMOTE_INSTALL)) {
1645 disable_reasons |= Extension::DISABLE_PERMISSIONS_INCREASE; 1645 disable_reasons |= Extension::DISABLE_PERMISSIONS_INCREASE;
1646 if (!extension_prefs_->DidExtensionEscalatePermissions(extension->id())) 1646 if (!extension_prefs_->DidExtensionEscalatePermissions(extension->id()))
1647 RecordPermissionMessagesHistogram(extension, "AutoDisable"); 1647 RecordPermissionMessagesHistogram(extension, "AutoDisable");
1648
1649 #if defined(ENABLE_SUPERVISED_USERS)
1650 // If a custodian-installed extension is disabled for a supervised user due
1651 // to a permissions increase, send a request to the custodian if the
1652 // supervised user themselves can't re-enable the extension.
1653 if (extensions::util::IsExtensionSupervised(extension, profile_) &&
1654 extensions::util::NeedCustodianApprovalForPermissionIncrease(
1655 profile_) &&
1656 !ExtensionSyncService::Get(profile_)->HasPendingReenable(
1657 extension->id(), *extension->version())) {
1658 SupervisedUserService* supervised_user_service =
1659 SupervisedUserServiceFactory::GetForProfile(profile_);
1660 supervised_user_service->AddExtensionUpdateRequest(extension->id(),
1661 *extension->version());
1662 }
1663 #endif
1664 } 1648 }
1665 if (disable_reasons != Extension::DISABLE_NONE) 1649 if (disable_reasons != Extension::DISABLE_NONE)
1666 extension_prefs_->SetExtensionDisabled(extension->id(), disable_reasons); 1650 extension_prefs_->SetExtensionDisabled(extension->id(), disable_reasons);
1667 } 1651 }
1668 1652
1669 void ExtensionService::UpdateActiveExtensionsInCrashReporter() { 1653 void ExtensionService::UpdateActiveExtensionsInCrashReporter() {
1670 std::set<std::string> extension_ids; 1654 std::set<std::string> extension_ids;
1671 for (const auto& extension : registry_->enabled_extensions()) { 1655 for (const auto& extension : registry_->enabled_extensions()) {
1672 if (!extension->is_theme() && extension->location() != Manifest::COMPONENT) 1656 if (!extension->is_theme() && extension->location() != Manifest::COMPONENT)
1673 extension_ids.insert(extension->id()); 1657 extension_ids.insert(extension->id());
(...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after
2433 } 2417 }
2434 2418
2435 void ExtensionService::OnProfileDestructionStarted() { 2419 void ExtensionService::OnProfileDestructionStarted() {
2436 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs(); 2420 ExtensionIdSet ids_to_unload = registry_->enabled_extensions().GetIDs();
2437 for (ExtensionIdSet::iterator it = ids_to_unload.begin(); 2421 for (ExtensionIdSet::iterator it = ids_to_unload.begin();
2438 it != ids_to_unload.end(); 2422 it != ids_to_unload.end();
2439 ++it) { 2423 ++it) {
2440 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN); 2424 UnloadExtension(*it, UnloadedExtensionInfo::REASON_PROFILE_SHUTDOWN);
2441 } 2425 }
2442 } 2426 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698