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

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: Latest master for CQ 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 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 393
393 void ExtensionActionAPI::NotifyChange(ExtensionAction* extension_action, 394 void ExtensionActionAPI::NotifyChange(ExtensionAction* extension_action,
394 content::WebContents* web_contents, 395 content::WebContents* web_contents,
395 content::BrowserContext* context) { 396 content::BrowserContext* context) {
396 FOR_EACH_OBSERVER( 397 FOR_EACH_OBSERVER(
397 Observer, 398 Observer,
398 observers_, 399 observers_,
399 OnExtensionActionUpdated(extension_action, web_contents, context)); 400 OnExtensionActionUpdated(extension_action, web_contents, context));
400 } 401 }
401 402
403 void ExtensionActionAPI::ClearAllValuesForTab(
404 content::WebContents* web_contents) {
405 DCHECK(web_contents);
406 int tab_id = SessionTabHelper::IdForTab(web_contents);
407 content::BrowserContext* browser_context = web_contents->GetBrowserContext();
408 const ExtensionSet& enabled_extensions =
409 ExtensionRegistry::Get(browser_context_)->enabled_extensions();
410 ExtensionActionManager* action_manager =
411 ExtensionActionManager::Get(browser_context_);
412
413 for (ExtensionSet::const_iterator iter = enabled_extensions.begin();
414 iter != enabled_extensions.end(); ++iter) {
415 ExtensionAction* extension_action =
416 action_manager->GetBrowserAction(*iter->get());
417 if (!extension_action)
418 extension_action = action_manager->GetPageAction(*iter->get());
419 if (extension_action) {
420 extension_action->ClearAllValuesForTab(tab_id);
421 NotifyChange(extension_action, web_contents, browser_context);
422 }
423 }
424 }
425
402 void ExtensionActionAPI::Shutdown() { 426 void ExtensionActionAPI::Shutdown() {
403 FOR_EACH_OBSERVER(Observer, observers_, OnExtensionActionAPIShuttingDown()); 427 FOR_EACH_OBSERVER(Observer, observers_, OnExtensionActionAPIShuttingDown());
404 } 428 }
405 429
406 // 430 //
407 // ExtensionActionStorageManager 431 // ExtensionActionStorageManager
408 // 432 //
409 433
410 ExtensionActionStorageManager::ExtensionActionStorageManager(Profile* profile) 434 ExtensionActionStorageManager::ExtensionActionStorageManager(Profile* profile)
411 : profile_(profile), 435 : profile_(profile),
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
800 if (host->extension_host_type() != VIEW_TYPE_EXTENSION_POPUP || 824 if (host->extension_host_type() != VIEW_TYPE_EXTENSION_POPUP ||
801 host->extension()->id() != extension_->id()) 825 host->extension()->id() != extension_->id())
802 return; 826 return;
803 827
804 SendResponse(true); 828 SendResponse(true);
805 response_sent_ = true; 829 response_sent_ = true;
806 registrar_.RemoveAll(); 830 registrar_.RemoveAll();
807 } 831 }
808 832
809 } // namespace extensions 833 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698