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

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

Issue 482993003: Move logic to clear ExtensionAction values to ExtensionActionAPI (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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/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"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/extensions/api/extension_action/extension_page_actions_ api_constants.h" 12 #include "chrome/browser/extensions/api/extension_action/extension_page_actions_ api_constants.h"
13 #include "chrome/browser/extensions/extension_action.h" 13 #include "chrome/browser/extensions/extension_action.h"
14 #include "chrome/browser/extensions/extension_action_manager.h" 14 #include "chrome/browser/extensions/extension_action_manager.h"
15 #include "chrome/browser/extensions/extension_service.h" 15 #include "chrome/browser/extensions/extension_service.h"
16 #include "chrome/browser/extensions/extension_tab_util.h" 16 #include "chrome/browser/extensions/extension_tab_util.h"
17 #include "chrome/browser/extensions/extension_toolbar_model.h" 17 #include "chrome/browser/extensions/extension_toolbar_model.h"
18 #include "chrome/browser/extensions/location_bar_controller.h" 18 #include "chrome/browser/extensions/location_bar_controller.h"
19 #include "chrome/browser/extensions/tab_helper.h" 19 #include "chrome/browser/extensions/tab_helper.h"
20 #include "chrome/browser/profiles/profile.h" 20 #include "chrome/browser/profiles/profile.h"
21 #include "chrome/browser/sessions/session_tab_helper.h"
21 #include "chrome/common/extensions/api/extension_action/action_info.h" 22 #include "chrome/common/extensions/api/extension_action/action_info.h"
22 #include "chrome/common/render_messages.h" 23 #include "chrome/common/render_messages.h"
23 #include "content/public/browser/navigation_entry.h" 24 #include "content/public/browser/navigation_entry.h"
24 #include "content/public/browser/notification_service.h" 25 #include "content/public/browser/notification_service.h"
25 #include "extensions/browser/event_router.h" 26 #include "extensions/browser/event_router.h"
26 #include "extensions/browser/extension_function_registry.h" 27 #include "extensions/browser/extension_function_registry.h"
27 #include "extensions/browser/extension_host.h" 28 #include "extensions/browser/extension_host.h"
28 #include "extensions/browser/extension_registry.h" 29 #include "extensions/browser/extension_registry.h"
29 #include "extensions/browser/extension_system.h" 30 #include "extensions/browser/extension_system.h"
30 #include "extensions/browser/image_util.h" 31 #include "extensions/browser/image_util.h"
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 420
420 void ExtensionActionAPI::NotifyChange(ExtensionAction* extension_action, 421 void ExtensionActionAPI::NotifyChange(ExtensionAction* extension_action,
421 content::WebContents* web_contents, 422 content::WebContents* web_contents,
422 content::BrowserContext* context) { 423 content::BrowserContext* context) {
423 FOR_EACH_OBSERVER( 424 FOR_EACH_OBSERVER(
424 Observer, 425 Observer,
425 observers_, 426 observers_,
426 OnExtensionActionUpdated(extension_action, web_contents, context)); 427 OnExtensionActionUpdated(extension_action, web_contents, context));
427 } 428 }
428 429
430 void ExtensionActionAPI::ClearAllValuesForTab(
431 content::WebContents* web_contents) {
432 DCHECK(web_contents);
433 int tab_id = SessionTabHelper::IdForTab(web_contents);
434 content::BrowserContext* browser_context = web_contents->GetBrowserContext();
435 const ExtensionSet& enabled_extensions =
436 ExtensionRegistry::Get(browser_context_)->enabled_extensions();
437 ExtensionActionManager* action_manager =
438 ExtensionActionManager::Get(browser_context_);
439
440 for (ExtensionSet::const_iterator iter = enabled_extensions.begin();
441 iter != enabled_extensions.end(); ++iter) {
442 ExtensionAction* extension_action =
443 action_manager->GetBrowserAction(*iter->get());
444 if (!extension_action)
445 extension_action = action_manager->GetPageAction(*iter->get());
446 if (extension_action) {
447 extension_action->ClearAllValuesForTab(tab_id);
448 NotifyChange(extension_action, web_contents, browser_context);
449 }
450 }
451 }
452
429 void ExtensionActionAPI::Shutdown() { 453 void ExtensionActionAPI::Shutdown() {
430 FOR_EACH_OBSERVER(Observer, observers_, OnExtensionActionAPIShuttingDown()); 454 FOR_EACH_OBSERVER(Observer, observers_, OnExtensionActionAPIShuttingDown());
431 } 455 }
432 456
433 // 457 //
434 // ExtensionActionStorageManager 458 // ExtensionActionStorageManager
435 // 459 //
436 460
437 ExtensionActionStorageManager::ExtensionActionStorageManager(Profile* profile) 461 ExtensionActionStorageManager::ExtensionActionStorageManager(Profile* profile)
438 : profile_(profile), 462 : profile_(profile),
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 if (host->extension_host_type() != VIEW_TYPE_EXTENSION_POPUP || 851 if (host->extension_host_type() != VIEW_TYPE_EXTENSION_POPUP ||
828 host->extension()->id() != extension_->id()) 852 host->extension()->id() != extension_->id())
829 return; 853 return;
830 854
831 SendResponse(true); 855 SendResponse(true);
832 response_sent_ = true; 856 response_sent_ = true;
833 registrar_.RemoveAll(); 857 registrar_.RemoveAll();
834 } 858 }
835 859
836 } // namespace extensions 860 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698