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

Side by Side Diff: chrome/browser/extensions/api/extension_action/extension_action_api.cc

Issue 171813010: Move ProfileKeyedAPI implementations to take BrowserContext in the constructor (part 1). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: browser_context_ Created 6 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/api/extension_action/extension_action_api.h" 5 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 212
213 } // namespace 213 } // namespace
214 214
215 // 215 //
216 // ExtensionActionAPI 216 // ExtensionActionAPI
217 // 217 //
218 218
219 static base::LazyInstance<ProfileKeyedAPIFactory<ExtensionActionAPI> > 219 static base::LazyInstance<ProfileKeyedAPIFactory<ExtensionActionAPI> >
220 g_factory = LAZY_INSTANCE_INITIALIZER; 220 g_factory = LAZY_INSTANCE_INITIALIZER;
221 221
222 ExtensionActionAPI::ExtensionActionAPI(Profile* profile) { 222 ExtensionActionAPI::ExtensionActionAPI(content::BrowserContext* context) {
223 ExtensionFunctionRegistry* registry = 223 ExtensionFunctionRegistry* registry =
224 ExtensionFunctionRegistry::GetInstance(); 224 ExtensionFunctionRegistry::GetInstance();
225 225
226 // Browser Actions 226 // Browser Actions
227 registry->RegisterFunction<BrowserActionSetIconFunction>(); 227 registry->RegisterFunction<BrowserActionSetIconFunction>();
228 registry->RegisterFunction<BrowserActionSetTitleFunction>(); 228 registry->RegisterFunction<BrowserActionSetTitleFunction>();
229 registry->RegisterFunction<BrowserActionSetBadgeTextFunction>(); 229 registry->RegisterFunction<BrowserActionSetBadgeTextFunction>();
230 registry->RegisterFunction<BrowserActionSetBadgeBackgroundColorFunction>(); 230 registry->RegisterFunction<BrowserActionSetBadgeBackgroundColorFunction>();
231 registry->RegisterFunction<BrowserActionSetPopupFunction>(); 231 registry->RegisterFunction<BrowserActionSetPopupFunction>();
232 registry->RegisterFunction<BrowserActionGetTitleFunction>(); 232 registry->RegisterFunction<BrowserActionGetTitleFunction>();
(...skipping 19 matching lines...) Expand all
252 ExtensionActionAPI::~ExtensionActionAPI() { 252 ExtensionActionAPI::~ExtensionActionAPI() {
253 } 253 }
254 254
255 // static 255 // static
256 ProfileKeyedAPIFactory<ExtensionActionAPI>* 256 ProfileKeyedAPIFactory<ExtensionActionAPI>*
257 ExtensionActionAPI::GetFactoryInstance() { 257 ExtensionActionAPI::GetFactoryInstance() {
258 return g_factory.Pointer(); 258 return g_factory.Pointer();
259 } 259 }
260 260
261 // static 261 // static
262 ExtensionActionAPI* ExtensionActionAPI::Get(Profile* profile) { 262 ExtensionActionAPI* ExtensionActionAPI::Get(content::BrowserContext* context) {
263 return ProfileKeyedAPIFactory<ExtensionActionAPI>::GetForProfile(profile); 263 return ProfileKeyedAPIFactory<ExtensionActionAPI>::GetForProfile(context);
264 } 264 }
265 265
266 // static 266 // static
267 bool ExtensionActionAPI::GetBrowserActionVisibility( 267 bool ExtensionActionAPI::GetBrowserActionVisibility(
268 const ExtensionPrefs* prefs, 268 const ExtensionPrefs* prefs,
269 const std::string& extension_id) { 269 const std::string& extension_id) {
270 bool visible = false; 270 bool visible = false;
271 if (!prefs || !prefs->ReadPrefAsBoolean(extension_id, 271 if (!prefs || !prefs->ReadPrefAsBoolean(extension_id,
272 kBrowserActionVisible, 272 kBrowserActionVisible,
273 &visible)) { 273 &visible)) {
(...skipping 14 matching lines...) Expand all
288 kBrowserActionVisible, 288 kBrowserActionVisible,
289 new base::FundamentalValue(visible)); 289 new base::FundamentalValue(visible));
290 content::NotificationService::current()->Notify( 290 content::NotificationService::current()->Notify(
291 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED, 291 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED,
292 content::Source<ExtensionPrefs>(prefs), 292 content::Source<ExtensionPrefs>(prefs),
293 content::Details<const std::string>(&extension_id)); 293 content::Details<const std::string>(&extension_id));
294 } 294 }
295 295
296 // static 296 // static
297 void ExtensionActionAPI::BrowserActionExecuted( 297 void ExtensionActionAPI::BrowserActionExecuted(
298 Profile* profile, 298 content::BrowserContext* context,
299 const ExtensionAction& browser_action, 299 const ExtensionAction& browser_action,
300 WebContents* web_contents) { 300 WebContents* web_contents) {
301 ExtensionActionExecuted(profile, browser_action, web_contents); 301 ExtensionActionExecuted(context, browser_action, web_contents);
302 } 302 }
303 303
304 // static 304 // static
305 void ExtensionActionAPI::PageActionExecuted(Profile* profile, 305 void ExtensionActionAPI::PageActionExecuted(content::BrowserContext* context,
306 const ExtensionAction& page_action, 306 const ExtensionAction& page_action,
307 int tab_id, 307 int tab_id,
308 const std::string& url, 308 const std::string& url,
309 int button) { 309 int button) {
310 DispatchOldPageActionEvent(profile, page_action.extension_id(), 310 DispatchOldPageActionEvent(context,
311 page_action.id(), tab_id, url, button); 311 page_action.extension_id(),
312 page_action.id(),
313 tab_id,
314 url,
315 button);
312 WebContents* web_contents = NULL; 316 WebContents* web_contents = NULL;
313 if (!extensions::ExtensionTabUtil::GetTabById( 317 if (!extensions::ExtensionTabUtil::GetTabById(
314 tab_id, profile, profile->IsOffTheRecord(), 318 tab_id,
315 NULL, NULL, &web_contents, NULL)) { 319 Profile::FromBrowserContext(context),
320 context->IsOffTheRecord(),
321 NULL,
322 NULL,
323 &web_contents,
324 NULL)) {
316 return; 325 return;
317 } 326 }
318 ExtensionActionExecuted(profile, page_action, web_contents); 327 ExtensionActionExecuted(context, page_action, web_contents);
319 } 328 }
320 329
321 // static 330 // static
322 void ExtensionActionAPI::DispatchEventToExtension( 331 void ExtensionActionAPI::DispatchEventToExtension(
323 Profile* profile, 332 content::BrowserContext* context,
324 const std::string& extension_id, 333 const std::string& extension_id,
325 const std::string& event_name, 334 const std::string& event_name,
326 scoped_ptr<base::ListValue> event_args) { 335 scoped_ptr<base::ListValue> event_args) {
327 if (!extensions::ExtensionSystem::Get(profile)->event_router()) 336 if (!extensions::ExtensionSystem::Get(context)->event_router())
328 return; 337 return;
329 338
330 scoped_ptr<Event> event(new Event(event_name, event_args.Pass())); 339 scoped_ptr<Event> event(new Event(event_name, event_args.Pass()));
331 event->restrict_to_browser_context = profile; 340 event->restrict_to_browser_context = context;
332 event->user_gesture = EventRouter::USER_GESTURE_ENABLED; 341 event->user_gesture = EventRouter::USER_GESTURE_ENABLED;
333 ExtensionSystem::Get(profile)->event_router()-> 342 ExtensionSystem::Get(context)->event_router()->DispatchEventToExtension(
334 DispatchEventToExtension(extension_id, event.Pass()); 343 extension_id, event.Pass());
335 } 344 }
336 345
337 // static 346 // static
338 void ExtensionActionAPI::DispatchOldPageActionEvent( 347 void ExtensionActionAPI::DispatchOldPageActionEvent(
339 Profile* profile, 348 content::BrowserContext* context,
340 const std::string& extension_id, 349 const std::string& extension_id,
341 const std::string& page_action_id, 350 const std::string& page_action_id,
342 int tab_id, 351 int tab_id,
343 const std::string& url, 352 const std::string& url,
344 int button) { 353 int button) {
345 scoped_ptr<base::ListValue> args(new base::ListValue()); 354 scoped_ptr<base::ListValue> args(new base::ListValue());
346 args->Append(new base::StringValue(page_action_id)); 355 args->Append(new base::StringValue(page_action_id));
347 356
348 base::DictionaryValue* data = new base::DictionaryValue(); 357 base::DictionaryValue* data = new base::DictionaryValue();
349 data->Set(page_actions_keys::kTabIdKey, new base::FundamentalValue(tab_id)); 358 data->Set(page_actions_keys::kTabIdKey, new base::FundamentalValue(tab_id));
350 data->Set(page_actions_keys::kTabUrlKey, new base::StringValue(url)); 359 data->Set(page_actions_keys::kTabUrlKey, new base::StringValue(url));
351 data->Set(page_actions_keys::kButtonKey, 360 data->Set(page_actions_keys::kButtonKey,
352 new base::FundamentalValue(button)); 361 new base::FundamentalValue(button));
353 args->Append(data); 362 args->Append(data);
354 363
355 DispatchEventToExtension(profile, extension_id, "pageActions", args.Pass()); 364 DispatchEventToExtension(context, extension_id, "pageActions", args.Pass());
356 } 365 }
357 366
358 // static 367 // static
359 void ExtensionActionAPI::ExtensionActionExecuted( 368 void ExtensionActionAPI::ExtensionActionExecuted(
360 Profile* profile, 369 content::BrowserContext* context,
361 const ExtensionAction& extension_action, 370 const ExtensionAction& extension_action,
362 WebContents* web_contents) { 371 WebContents* web_contents) {
363 const char* event_name = NULL; 372 const char* event_name = NULL;
364 switch (extension_action.action_type()) { 373 switch (extension_action.action_type()) {
365 case ActionInfo::TYPE_BROWSER: 374 case ActionInfo::TYPE_BROWSER:
366 event_name = "browserAction.onClicked"; 375 event_name = "browserAction.onClicked";
367 break; 376 break;
368 case ActionInfo::TYPE_PAGE: 377 case ActionInfo::TYPE_PAGE:
369 event_name = "pageAction.onClicked"; 378 event_name = "pageAction.onClicked";
370 break; 379 break;
371 case ActionInfo::TYPE_SYSTEM_INDICATOR: 380 case ActionInfo::TYPE_SYSTEM_INDICATOR:
372 // The System Indicator handles its own clicks. 381 // The System Indicator handles its own clicks.
373 break; 382 break;
374 } 383 }
375 384
376 if (event_name) { 385 if (event_name) {
377 scoped_ptr<base::ListValue> args(new base::ListValue()); 386 scoped_ptr<base::ListValue> args(new base::ListValue());
378 base::DictionaryValue* tab_value = 387 base::DictionaryValue* tab_value =
379 extensions::ExtensionTabUtil::CreateTabValue(web_contents); 388 extensions::ExtensionTabUtil::CreateTabValue(web_contents);
380 args->Append(tab_value); 389 args->Append(tab_value);
381 390
382 DispatchEventToExtension(profile, 391 DispatchEventToExtension(
383 extension_action.extension_id(), 392 context, extension_action.extension_id(), event_name, args.Pass());
384 event_name,
385 args.Pass());
386 } 393 }
387 } 394 }
388 395
389 // 396 //
390 // ExtensionActionStorageManager 397 // ExtensionActionStorageManager
391 // 398 //
392 399
393 ExtensionActionStorageManager::ExtensionActionStorageManager(Profile* profile) 400 ExtensionActionStorageManager::ExtensionActionStorageManager(Profile* profile)
394 : profile_(profile) { 401 : profile_(profile) {
395 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, 402 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 return true; 943 return true;
937 } 944 }
938 945
939 bool EnablePageActionsFunction::RunImpl() { 946 bool EnablePageActionsFunction::RunImpl() {
940 return SetPageActionEnabled(true); 947 return SetPageActionEnabled(true);
941 } 948 }
942 949
943 bool DisablePageActionsFunction::RunImpl() { 950 bool DisablePageActionsFunction::RunImpl() {
944 return SetPageActionEnabled(false); 951 return SetPageActionEnabled(false);
945 } 952 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698