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

Side by Side Diff: chrome/browser/extensions/api/idle/idle_manager.cc

Issue 826933003: Update idle extension API to use BrowserContext. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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) 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/api/idle/idle_manager.h" 5 #include "chrome/browser/extensions/api/idle/idle_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "chrome/browser/extensions/api/idle/idle_api_constants.h" 10 #include "chrome/browser/extensions/api/idle/idle_api_constants.h"
11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/common/extensions/api/idle.h" 11 #include "chrome/common/extensions/api/idle.h"
13 #include "chrome/common/extensions/extension_constants.h" 12 #include "chrome/common/extensions/extension_constants.h"
13 #include "content/public/browser/browser_context.h"
14 #include "extensions/browser/event_router.h" 14 #include "extensions/browser/event_router.h"
15 #include "extensions/browser/extension_registry.h" 15 #include "extensions/browser/extension_registry.h"
16 #include "extensions/common/extension.h" 16 #include "extensions/common/extension.h"
17 17
18 namespace keys = extensions::idle_api_constants; 18 namespace keys = extensions::idle_api_constants;
19 namespace idle = extensions::api::idle; 19 namespace idle = extensions::api::idle;
20 20
21 namespace extensions { 21 namespace extensions {
22 22
23 namespace { 23 namespace {
24 24
25 const int kDefaultIdleThreshold = 60; 25 const int kDefaultIdleThreshold = 60;
26 const int kPollInterval = 1; 26 const int kPollInterval = 1;
27 27
28 class DefaultEventDelegate : public IdleManager::EventDelegate { 28 class DefaultEventDelegate : public IdleManager::EventDelegate {
29 public: 29 public:
30 explicit DefaultEventDelegate(Profile* profile); 30 explicit DefaultEventDelegate(content::BrowserContext* context);
31 ~DefaultEventDelegate() override; 31 ~DefaultEventDelegate() override;
32 32
33 void OnStateChanged(const std::string& extension_id, 33 void OnStateChanged(const std::string& extension_id,
34 IdleState new_state) override; 34 IdleState new_state) override;
35 void RegisterObserver(EventRouter::Observer* observer) override; 35 void RegisterObserver(EventRouter::Observer* observer) override;
36 void UnregisterObserver(EventRouter::Observer* observer) override; 36 void UnregisterObserver(EventRouter::Observer* observer) override;
37 37
38 private: 38 private:
39 Profile* profile_; 39 content::BrowserContext* context_;
dcheng 2015/01/06 18:49:05 Ditto
Daniel Erat 2015/01/06 18:52:09 Done.
40 }; 40 };
41 41
42 DefaultEventDelegate::DefaultEventDelegate(Profile* profile) 42 DefaultEventDelegate::DefaultEventDelegate(content::BrowserContext* context)
43 : profile_(profile) { 43 : context_(context) {
44 } 44 }
45 45
46 DefaultEventDelegate::~DefaultEventDelegate() { 46 DefaultEventDelegate::~DefaultEventDelegate() {
47 } 47 }
48 48
49 void DefaultEventDelegate::OnStateChanged(const std::string& extension_id, 49 void DefaultEventDelegate::OnStateChanged(const std::string& extension_id,
50 IdleState new_state) { 50 IdleState new_state) {
51 scoped_ptr<base::ListValue> args(new base::ListValue()); 51 scoped_ptr<base::ListValue> args(new base::ListValue());
52 args->Append(IdleManager::CreateIdleValue(new_state)); 52 args->Append(IdleManager::CreateIdleValue(new_state));
53 scoped_ptr<Event> event(new Event(idle::OnStateChanged::kEventName, 53 scoped_ptr<Event> event(new Event(idle::OnStateChanged::kEventName,
54 args.Pass())); 54 args.Pass()));
55 event->restrict_to_browser_context = profile_; 55 event->restrict_to_browser_context = context_;
56 EventRouter::Get(profile_) 56 EventRouter::Get(context_)
57 ->DispatchEventToExtension(extension_id, event.Pass()); 57 ->DispatchEventToExtension(extension_id, event.Pass());
58 } 58 }
59 59
60 void DefaultEventDelegate::RegisterObserver( 60 void DefaultEventDelegate::RegisterObserver(
61 EventRouter::Observer* observer) { 61 EventRouter::Observer* observer) {
62 EventRouter::Get(profile_) 62 EventRouter::Get(context_)
63 ->RegisterObserver(observer, idle::OnStateChanged::kEventName); 63 ->RegisterObserver(observer, idle::OnStateChanged::kEventName);
64 } 64 }
65 65
66 void DefaultEventDelegate::UnregisterObserver(EventRouter::Observer* observer) { 66 void DefaultEventDelegate::UnregisterObserver(EventRouter::Observer* observer) {
67 EventRouter::Get(profile_)->UnregisterObserver(observer); 67 EventRouter::Get(context_)->UnregisterObserver(observer);
68 } 68 }
69 69
70 class DefaultIdleProvider : public IdleManager::IdleTimeProvider { 70 class DefaultIdleProvider : public IdleManager::IdleTimeProvider {
71 public: 71 public:
72 DefaultIdleProvider(); 72 DefaultIdleProvider();
73 ~DefaultIdleProvider() override; 73 ~DefaultIdleProvider() override;
74 74
75 void CalculateIdleState(int idle_threshold, IdleCallback notify) override; 75 void CalculateIdleState(int idle_threshold, IdleCallback notify) override;
76 void CalculateIdleTime(IdleTimeCallback notify) override; 76 void CalculateIdleTime(IdleTimeCallback notify) override;
77 bool CheckIdleStateIsLocked() override; 77 bool CheckIdleStateIsLocked() override;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 } 110 }
111 111
112 } // namespace 112 } // namespace
113 113
114 IdleMonitor::IdleMonitor(IdleState initial_state) 114 IdleMonitor::IdleMonitor(IdleState initial_state)
115 : last_state(initial_state), 115 : last_state(initial_state),
116 listeners(0), 116 listeners(0),
117 threshold(kDefaultIdleThreshold) { 117 threshold(kDefaultIdleThreshold) {
118 } 118 }
119 119
120 IdleManager::IdleManager(Profile* profile) 120 IdleManager::IdleManager(content::BrowserContext* context)
121 : profile_(profile), 121 : context_(context),
122 last_state_(IDLE_STATE_ACTIVE), 122 last_state_(IDLE_STATE_ACTIVE),
123 idle_time_provider_(new DefaultIdleProvider()), 123 idle_time_provider_(new DefaultIdleProvider()),
124 event_delegate_(new DefaultEventDelegate(profile)), 124 event_delegate_(new DefaultEventDelegate(context)),
125 extension_registry_observer_(this), 125 extension_registry_observer_(this),
126 weak_factory_(this) { 126 weak_factory_(this) {
127 } 127 }
128 128
129 IdleManager::~IdleManager() { 129 IdleManager::~IdleManager() {
130 } 130 }
131 131
132 void IdleManager::Init() { 132 void IdleManager::Init() {
133 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_)); 133 extension_registry_observer_.Add(ExtensionRegistry::Get(context_));
134 event_delegate_->RegisterObserver(this); 134 event_delegate_->RegisterObserver(this);
135 } 135 }
136 136
137 void IdleManager::Shutdown() { 137 void IdleManager::Shutdown() {
138 DCHECK(thread_checker_.CalledOnValidThread()); 138 DCHECK(thread_checker_.CalledOnValidThread());
139 event_delegate_->UnregisterObserver(this); 139 event_delegate_->UnregisterObserver(this);
140 } 140 }
141 141
142 void IdleManager::OnExtensionUnloaded(content::BrowserContext* browser_context, 142 void IdleManager::OnExtensionUnloaded(content::BrowserContext* browser_context,
143 const Extension* extension, 143 const Extension* extension,
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 event_delegate_->OnStateChanged(it->first, new_state); 260 event_delegate_->OnStateChanged(it->first, new_state);
261 monitor.last_state = new_state; 261 monitor.last_state = new_state;
262 listener_count += monitor.listeners; 262 listener_count += monitor.listeners;
263 } 263 }
264 264
265 if (listener_count == 0) 265 if (listener_count == 0)
266 StopPolling(); 266 StopPolling();
267 } 267 }
268 268
269 } // namespace extensions 269 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698