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

Side by Side Diff: chrome/browser/extensions/updater/extension_updater.cc

Issue 434493002: OAuth2 support for Webstore downloads. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix ExternalCache on chromeos Created 6 years, 4 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/updater/extension_updater.h" 5 #include "chrome/browser/extensions/updater/extension_updater.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 ThrottleInfo() 122 ThrottleInfo()
123 : in_progress(true), 123 : in_progress(true),
124 throttle_delay(kMinUpdateThrottleTime), 124 throttle_delay(kMinUpdateThrottleTime),
125 check_start(Time::Now()) {} 125 check_start(Time::Now()) {}
126 126
127 bool in_progress; 127 bool in_progress;
128 int throttle_delay; 128 int throttle_delay;
129 Time check_start; 129 Time check_start;
130 }; 130 };
131 131
132 ExtensionUpdater::ExtensionUpdater(ExtensionServiceInterface* service, 132 ExtensionUpdater::ExtensionUpdater(
133 ExtensionPrefs* extension_prefs, 133 ExtensionServiceInterface* service,
134 PrefService* prefs, 134 ExtensionPrefs* extension_prefs,
135 Profile* profile, 135 PrefService* prefs,
136 int frequency_seconds, 136 Profile* profile,
137 ExtensionCache* cache) 137 int frequency_seconds,
138 ExtensionCache* cache,
139 scoped_ptr<IdentityProvider> webstore_identity_provider)
138 : alive_(false), 140 : alive_(false),
139 weak_ptr_factory_(this), 141 weak_ptr_factory_(this),
140 service_(service), frequency_seconds_(frequency_seconds), 142 service_(service),
141 will_check_soon_(false), extension_prefs_(extension_prefs), 143 frequency_seconds_(frequency_seconds),
142 prefs_(prefs), profile_(profile), 144 will_check_soon_(false),
145 extension_prefs_(extension_prefs),
146 prefs_(prefs),
147 profile_(profile),
143 next_request_id_(0), 148 next_request_id_(0),
144 extension_registry_observer_(this), 149 extension_registry_observer_(this),
145 crx_install_is_running_(false), 150 crx_install_is_running_(false),
146 extension_cache_(cache) { 151 extension_cache_(cache),
152 webstore_identity_provider_(webstore_identity_provider.release()) {
147 DCHECK_GE(frequency_seconds_, 5); 153 DCHECK_GE(frequency_seconds_, 5);
148 DCHECK_LE(frequency_seconds_, kMaxUpdateFrequencySeconds); 154 DCHECK_LE(frequency_seconds_, kMaxUpdateFrequencySeconds);
149 #if defined(NDEBUG) 155 #if defined(NDEBUG)
150 // In Release mode we enforce that update checks don't happen too often. 156 // In Release mode we enforce that update checks don't happen too often.
151 frequency_seconds_ = std::max(frequency_seconds_, kMinUpdateFrequencySeconds); 157 frequency_seconds_ = std::max(frequency_seconds_, kMinUpdateFrequencySeconds);
152 #endif 158 #endif
153 frequency_seconds_ = std::min(frequency_seconds_, kMaxUpdateFrequencySeconds); 159 frequency_seconds_ = std::min(frequency_seconds_, kMaxUpdateFrequencySeconds);
154 160
155 extension_registry_observer_.Add(ExtensionRegistry::Get(profile)); 161 extension_registry_observer_.Add(ExtensionRegistry::Get(profile));
156 } 162 }
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 NotifyStarted(); 337 NotifyStarted();
332 338
333 DCHECK(alive_); 339 DCHECK(alive_);
334 340
335 InProgressCheck& request = requests_in_progress_[request_id]; 341 InProgressCheck& request = requests_in_progress_[request_id];
336 request.callback = params.callback; 342 request.callback = params.callback;
337 request.install_immediately = params.install_immediately; 343 request.install_immediately = params.install_immediately;
338 344
339 if (!downloader_.get()) { 345 if (!downloader_.get()) {
340 downloader_.reset( 346 downloader_.reset(
341 new ExtensionDownloader(this, profile_->GetRequestContext())); 347 new ExtensionDownloader(this,
348 profile_->GetRequestContext(),
349 webstore_identity_provider_.get()));
342 } 350 }
343 351
344 // Add fetch records for extensions that should be fetched by an update URL. 352 // Add fetch records for extensions that should be fetched by an update URL.
345 // These extensions are not yet installed. They come from group policy 353 // These extensions are not yet installed. They come from group policy
346 // and external install sources. 354 // and external install sources.
347 const PendingExtensionManager* pending_extension_manager = 355 const PendingExtensionManager* pending_extension_manager =
348 service_->pending_extension_manager(); 356 service_->pending_extension_manager();
349 357
350 std::list<std::string> pending_ids; 358 std::list<std::string> pending_ids;
351 359
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 const InProgressCheck& request = requests_in_progress_[request_id]; 642 const InProgressCheck& request = requests_in_progress_[request_id];
635 if (request.in_progress_ids_.empty()) { 643 if (request.in_progress_ids_.empty()) {
636 VLOG(2) << "Finished update check " << request_id; 644 VLOG(2) << "Finished update check " << request_id;
637 if (!request.callback.is_null()) 645 if (!request.callback.is_null())
638 request.callback.Run(); 646 request.callback.Run();
639 requests_in_progress_.erase(request_id); 647 requests_in_progress_.erase(request_id);
640 } 648 }
641 } 649 }
642 650
643 } // namespace extensions 651 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/updater/extension_updater.h ('k') | chrome/browser/extensions/updater/extension_updater_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698