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

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

Issue 9340007: Make the Chrome Web Store Icon Syncable (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Responding to Comments Created 8 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 | Annotate | Revision Log
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/extension_service.h" 5 #include "chrome/browser/extensions/extension_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after
1566 return true; 1566 return true;
1567 1567
1568 // Check the prefs. 1568 // Check the prefs.
1569 return extension_prefs_->IsIncognitoEnabled(extension_id); 1569 return extension_prefs_->IsIncognitoEnabled(extension_id);
1570 } 1570 }
1571 1571
1572 void ExtensionService::SetIsIncognitoEnabled( 1572 void ExtensionService::SetIsIncognitoEnabled(
1573 const std::string& extension_id, bool enabled) { 1573 const std::string& extension_id, bool enabled) {
1574 const Extension* extension = GetInstalledExtension(extension_id); 1574 const Extension* extension = GetInstalledExtension(extension_id);
1575 if (extension && extension->location() == Extension::COMPONENT) { 1575 if (extension && extension->location() == Extension::COMPONENT) {
1576 // This shouldn't be called for component extensions. 1576 // This shouldn't be called for component extensions other than the
Aaron Boodman 2012/02/08 00:37:53 Sorry, why does this happen - sync?
csharp 2012/02/08 15:46:16 Yup.
1577 NOTREACHED(); 1577 // web store (which is considered an app, and may try to set this value).
1578 DCHECK_EQ(extension_id, std::string(extension_misc::kWebStoreAppId));
1579
1580 // If we are here with the CWS, make sure the we aren't trying to
1581 // change it.
1582 DCHECK_EQ(enabled, IsIncognitoEnabled(extension_id));
1583
1578 return; 1584 return;
1579 } 1585 }
1580 1586
1581 // Broadcast unloaded and loaded events to update browser state. Only bother 1587 // Broadcast unloaded and loaded events to update browser state. Only bother
1582 // if the value changed and the extension is actually enabled, since there is 1588 // if the value changed and the extension is actually enabled, since there is
1583 // no UI otherwise. 1589 // no UI otherwise.
1584 bool old_enabled = extension_prefs_->IsIncognitoEnabled(extension_id); 1590 bool old_enabled = extension_prefs_->IsIncognitoEnabled(extension_id);
1585 if (enabled == old_enabled) 1591 if (enabled == old_enabled)
1586 return; 1592 return;
1587 1593
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
2043 // disabled extension for other reasons other than that an update was 2049 // disabled extension for other reasons other than that an update was
2044 // disabled, e.g. as in ExtensionManagementTest.InstallRequiresConfirm. 2050 // disabled, e.g. as in ExtensionManagementTest.InstallRequiresConfirm.
2045 content::NotificationService::current()->Notify( 2051 content::NotificationService::current()->Notify(
2046 chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED, 2052 chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED,
2047 content::Source<Profile>(profile_), 2053 content::Source<Profile>(profile_),
2048 content::Details<const Extension>(extension)); 2054 content::Details<const Extension>(extension));
2049 SyncExtensionChangeIfNeeded(*extension); 2055 SyncExtensionChangeIfNeeded(*extension);
2050 return; 2056 return;
2051 } 2057 }
2052 2058
2059 // Make sure that CWS has valid ordinals on initialization.
2060 if (extension->id() == extension_misc::kWebStoreAppId) {
akalin 2012/02/07 22:54:13 Why does this only apply to this particular app?
Aaron Boodman 2012/02/08 00:37:53 Can we just initialize all ordinals if they haven'
csharp 2012/02/08 15:46:16 Good points. I'll initialize all uninitialized ord
2061 ExtensionSorting* extension_sorting = extension_prefs_->extension_sorting();
2062
2063 StringOrdinal page_ordinal =
2064 extension_sorting->GetPageOrdinal(extension->id());
2065 if (!page_ordinal.IsValid()) {
2066 page_ordinal = extension_sorting->CreateFirstAppPageOrdinal();
2067 extension_sorting->SetPageOrdinal(extension->id(), page_ordinal);
2068 }
2069
2070 StringOrdinal app_launch_ordinal =
2071 extension_sorting->GetAppLaunchOrdinal(extension->id());
2072 if (!app_launch_ordinal.IsValid()) {
2073 app_launch_ordinal =
2074 extension_sorting->CreateFirstAppLaunchOrdinal(page_ordinal);
2075 extension_sorting->SetAppLaunchOrdinal(extension->id(),
2076 app_launch_ordinal);
2077 }
2078 }
2079
2053 extensions_.Insert(scoped_extension); 2080 extensions_.Insert(scoped_extension);
2054 SyncExtensionChangeIfNeeded(*extension); 2081 SyncExtensionChangeIfNeeded(*extension);
2055 NotifyExtensionLoaded(extension); 2082 NotifyExtensionLoaded(extension);
2056 } 2083 }
2057 2084
2058 void ExtensionService::InitializePermissions(const Extension* extension) { 2085 void ExtensionService::InitializePermissions(const Extension* extension) {
2059 // If the extension has used the optional permissions API, it will have a 2086 // If the extension has used the optional permissions API, it will have a
2060 // custom set of active permissions defined in the extension prefs. Here, 2087 // custom set of active permissions defined in the extension prefs. Here,
2061 // we update the extension's active permissions based on the prefs. 2088 // we update the extension's active permissions based on the prefs.
2062 scoped_refptr<ExtensionPermissionSet> active_permissions = 2089 scoped_refptr<ExtensionPermissionSet> active_permissions =
(...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after
2692 // 2719 //
2693 // To coexist with certain unit tests that don't have an IO thread message 2720 // To coexist with certain unit tests that don't have an IO thread message
2694 // loop available at ExtensionService shutdown, we lazy-initialize this 2721 // loop available at ExtensionService shutdown, we lazy-initialize this
2695 // object so that those cases neither create nor destroy a SocketController. 2722 // object so that those cases neither create nor destroy a SocketController.
2696 CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 2723 CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
2697 if (!socket_controller_) { 2724 if (!socket_controller_) {
2698 socket_controller_ = new extensions::SocketController(); 2725 socket_controller_ = new extensions::SocketController();
2699 } 2726 }
2700 return socket_controller_; 2727 return socket_controller_;
2701 } 2728 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_service_unittest.cc » ('j') | chrome/common/extensions/extension.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698