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

Side by Side Diff: chrome/browser/component_updater/supervised_user_whitelist_installer.cc

Issue 879993005: Add support for uninstalling components and use it in SupervisedUserWhitelistInstaller. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: rebase Created 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/component_updater/supervised_user_whitelist_installer.h " 5 #include "chrome/browser/component_updater/supervised_user_whitelist_installer.h "
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 public: 114 public:
115 explicit SupervisedUserWhitelistInstallerImpl(ComponentUpdateService* cus); 115 explicit SupervisedUserWhitelistInstallerImpl(ComponentUpdateService* cus);
116 ~SupervisedUserWhitelistInstallerImpl() override {} 116 ~SupervisedUserWhitelistInstallerImpl() override {}
117 117
118 private: 118 private:
119 // SupervisedUserWhitelistInstaller overrides: 119 // SupervisedUserWhitelistInstaller overrides:
120 void RegisterWhitelist(const std::string& crx_id, 120 void RegisterWhitelist(const std::string& crx_id,
121 const std::string& name, 121 const std::string& name,
122 bool newly_added, 122 bool newly_added,
123 const WhitelistReadyCallback& callback) override; 123 const WhitelistReadyCallback& callback) override;
124 void UnregisterWhitelist(const std::string& crx_id) override; 124 void UninstallWhitelist(const std::string& crx_id) override;
125 125
126 ComponentUpdateService* cus_; 126 ComponentUpdateService* cus_;
127 std::map<std::string, scoped_refptr<DefaultComponentInstaller>> installers_;
127 }; 128 };
128 129
129 SupervisedUserWhitelistInstallerImpl::SupervisedUserWhitelistInstallerImpl( 130 SupervisedUserWhitelistInstallerImpl::SupervisedUserWhitelistInstallerImpl(
130 ComponentUpdateService* cus) 131 ComponentUpdateService* cus)
131 : cus_(cus) { 132 : cus_(cus) {
132 } 133 }
133 134
134 void SupervisedUserWhitelistInstallerImpl::RegisterWhitelist( 135 void SupervisedUserWhitelistInstallerImpl::RegisterWhitelist(
135 const std::string& crx_id, 136 const std::string& crx_id,
136 const std::string& name, 137 const std::string& name,
137 bool newly_added, 138 bool newly_added,
138 const WhitelistReadyCallback& callback) { 139 const WhitelistReadyCallback& callback) {
139 scoped_ptr<ComponentInstallerTraits> traits( 140 scoped_ptr<ComponentInstallerTraits> traits(
140 new SupervisedUserWhitelistComponentInstallerTraits(crx_id, name, 141 new SupervisedUserWhitelistComponentInstallerTraits(crx_id, name,
141 callback)); 142 callback));
142 scoped_refptr<DefaultComponentInstaller> installer( 143 scoped_refptr<DefaultComponentInstaller> installer(
143 new DefaultComponentInstaller(traits.Pass())); 144 new DefaultComponentInstaller(traits.Pass()));
144 145
145 installer->Register(cus_); 146 installer->Register(cus_);
146 147
148 installers_[crx_id] = installer;
Sorin Jianu 2015/02/05 22:55:35 Do we have many crx ids associated with this produ
Bernhard Bauer 2015/02/05 23:57:34 Yeah, there can be multiple whitelists, each with
Sorin Jianu 2015/02/06 00:22:04 Do we have an idea about how many whitelists are w
Bernhard Bauer 2015/02/06 16:05:05 The design doc is at go/unichrome-whitelists-clank
149
147 if (newly_added) 150 if (newly_added)
148 TriggerComponentUpdate(&cus_->GetOnDemandUpdater(), crx_id); 151 TriggerComponentUpdate(&cus_->GetOnDemandUpdater(), crx_id);
149 } 152 }
150 153
151 void SupervisedUserWhitelistInstallerImpl::UnregisterWhitelist( 154 void SupervisedUserWhitelistInstallerImpl::UninstallWhitelist(
152 const std::string& id) { 155 const std::string& crx_id) {
153 // TODO(bauerb): Implement! 156 auto it = installers_.find(crx_id);
154 NOTIMPLEMENTED(); 157 DCHECK(it != installers_.end());
158 it->second->Unregister(cus_);
159 installers_.erase(it);
155 } 160 }
156 161
157 } // namespace 162 } // namespace
158 163
159 // static 164 // static
160 scoped_ptr<SupervisedUserWhitelistInstaller> 165 scoped_ptr<SupervisedUserWhitelistInstaller>
161 SupervisedUserWhitelistInstaller::Create(ComponentUpdateService* cus) { 166 SupervisedUserWhitelistInstaller::Create(ComponentUpdateService* cus) {
162 return make_scoped_ptr(new SupervisedUserWhitelistInstallerImpl(cus)); 167 return make_scoped_ptr(new SupervisedUserWhitelistInstallerImpl(cus));
163 } 168 }
164 169
(...skipping 20 matching lines...) Expand all
185 } 190 }
186 191
187 // static 192 // static
188 void SupervisedUserWhitelistInstaller::TriggerComponentUpdate( 193 void SupervisedUserWhitelistInstaller::TriggerComponentUpdate(
189 OnDemandUpdater* updater, 194 OnDemandUpdater* updater,
190 const std::string& crx_id) { 195 const std::string& crx_id) {
191 updater->OnDemandUpdate(crx_id); 196 updater->OnDemandUpdate(crx_id);
192 } 197 }
193 198
194 } // namespace component_updater 199 } // namespace component_updater
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698