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

Unified Diff: chrome/browser/extensions/signin/gaia_auth_extension_loader.cc

Issue 961443003: Unload the ScopedGaiaAuthExtension asynchronously. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix whitespace Created 5 years, 9 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
Index: chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
diff --git a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
index 7ae76c0384b00b2cc742a7f27a5e86cfbd7087ba..69508b5c9159382e9d883c5b1925fc2ab0e99595 100644
--- a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
+++ b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
@@ -8,6 +8,8 @@
#include "base/files/file_path.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
+#include "base/single_thread_task_runner.h"
+#include "base/thread_task_runner_handle.h"
#include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/signin/signin_promo.h"
@@ -86,7 +88,11 @@ void UnloadGaiaAuthExtension(BrowserContext* context) {
namespace extensions {
GaiaAuthExtensionLoader::GaiaAuthExtensionLoader(BrowserContext* context)
- : browser_context_(context), load_count_(0), last_data_id_(0) {}
+ : browser_context_(context),
+ load_count_(0),
+ last_data_id_(0),
+ weak_ptr_factory_(this) {
+}
GaiaAuthExtensionLoader::~GaiaAuthExtensionLoader() {
DCHECK_EQ(0, load_count_);
@@ -98,6 +104,13 @@ void GaiaAuthExtensionLoader::LoadIfNeeded() {
++load_count_;
}
+void GaiaAuthExtensionLoader::UnloadIfNeededAsync() {
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE,
+ base::Bind(&GaiaAuthExtensionLoader::UnloadIfNeeded,
+ weak_ptr_factory_.GetWeakPtr()));
+}
+
void GaiaAuthExtensionLoader::UnloadIfNeeded() {
--load_count_;
if (load_count_ == 0) {

Powered by Google App Engine
This is Rietveld 408576698