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

Side by Side Diff: chrome/browser/extensions/extension_browser_event_router.cc

Issue 8983012: Get rid of content::NavigationController in cc file and use "using" instead. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/extension_browser_event_router.h" 5 #include "chrome/browser/extensions/extension_browser_event_router.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/extensions/extension_event_names.h" 9 #include "chrome/browser/extensions/extension_event_names.h"
10 #include "chrome/browser/extensions/extension_event_router.h" 10 #include "chrome/browser/extensions/extension_event_router.h"
(...skipping 12 matching lines...) Expand all
23 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
24 24
25 #if defined(TOOLKIT_GTK) 25 #if defined(TOOLKIT_GTK)
26 #include "ui/base/x/active_window_watcher_x.h" 26 #include "ui/base/x/active_window_watcher_x.h"
27 #endif 27 #endif
28 28
29 namespace events = extension_event_names; 29 namespace events = extension_event_names;
30 namespace tab_keys = extension_tabs_module_constants; 30 namespace tab_keys = extension_tabs_module_constants;
31 namespace page_action_keys = extension_page_actions_module_constants; 31 namespace page_action_keys = extension_page_actions_module_constants;
32 32
33 using content::NavigationController;
33 using content::WebContents; 34 using content::WebContents;
34 35
35 ExtensionBrowserEventRouter::TabEntry::TabEntry() 36 ExtensionBrowserEventRouter::TabEntry::TabEntry()
36 : complete_waiting_on_load_(false), 37 : complete_waiting_on_load_(false),
37 url_() { 38 url_() {
38 } 39 }
39 40
40 DictionaryValue* ExtensionBrowserEventRouter::TabEntry::UpdateLoadState( 41 DictionaryValue* ExtensionBrowserEventRouter::TabEntry::UpdateLoadState(
41 const WebContents* contents) { 42 const WebContents* contents) {
42 // The tab may go in & out of loading (for instance if iframes navigate). 43 // The tab may go in & out of loading (for instance if iframes navigate).
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 for (int i = 0; i < browser->tabstrip_model()->count(); ++i) { 143 for (int i = 0; i < browser->tabstrip_model()->count(); ++i) {
143 RegisterForTabNotifications( 144 RegisterForTabNotifications(
144 browser->GetTabContentsWrapperAt(i)->web_contents()); 145 browser->GetTabContentsWrapperAt(i)->web_contents());
145 } 146 }
146 } 147 }
147 148
148 void ExtensionBrowserEventRouter::RegisterForTabNotifications( 149 void ExtensionBrowserEventRouter::RegisterForTabNotifications(
149 WebContents* contents) { 150 WebContents* contents) {
150 registrar_.Add( 151 registrar_.Add(
151 this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, 152 this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
152 content::Source<content::NavigationController>( 153 content::Source<NavigationController>(&contents->GetController()));
153 &contents->GetController()));
154 154
155 // Observing TAB_CONTENTS_DESTROYED is necessary because it's 155 // Observing TAB_CONTENTS_DESTROYED is necessary because it's
156 // possible for tabs to be created, detached and then destroyed without 156 // possible for tabs to be created, detached and then destroyed without
157 // ever having been re-attached and closed. This happens in the case of 157 // ever having been re-attached and closed. This happens in the case of
158 // a devtools TabContents that is opened in window, docked, then closed. 158 // a devtools TabContents that is opened in window, docked, then closed.
159 registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 159 registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
160 content::Source<WebContents>(contents)); 160 content::Source<WebContents>(contents));
161 } 161 }
162 162
163 void ExtensionBrowserEventRouter::UnregisterForTabNotifications( 163 void ExtensionBrowserEventRouter::UnregisterForTabNotifications(
164 WebContents* contents) { 164 WebContents* contents) {
165 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, 165 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
166 content::Source<content::NavigationController>( 166 content::Source<NavigationController>(&contents->GetController()));
167 &contents->GetController()));
168 registrar_.Remove(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 167 registrar_.Remove(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
169 content::Source<WebContents>(contents)); 168 content::Source<WebContents>(contents));
170 } 169 }
171 170
172 void ExtensionBrowserEventRouter::OnBrowserWindowReady(const Browser* browser) { 171 void ExtensionBrowserEventRouter::OnBrowserWindowReady(const Browser* browser) {
173 ListValue args; 172 ListValue args;
174 173
175 DictionaryValue* window_dictionary = ExtensionTabUtil::CreateWindowValue( 174 DictionaryValue* window_dictionary = ExtensionTabUtil::CreateWindowValue(
176 browser, false); 175 browser, false);
177 args.Append(window_dictionary); 176 args.Append(window_dictionary);
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 if (tab_entries_.end() == i) 534 if (tab_entries_.end() == i)
536 return NULL; 535 return NULL;
537 return &i->second; 536 return &i->second;
538 } 537 }
539 538
540 void ExtensionBrowserEventRouter::Observe( 539 void ExtensionBrowserEventRouter::Observe(
541 int type, 540 int type,
542 const content::NotificationSource& source, 541 const content::NotificationSource& source,
543 const content::NotificationDetails& details) { 542 const content::NotificationDetails& details) {
544 if (type == content::NOTIFICATION_NAV_ENTRY_COMMITTED) { 543 if (type == content::NOTIFICATION_NAV_ENTRY_COMMITTED) {
545 content::NavigationController* source_controller = 544 NavigationController* source_controller =
546 content::Source<content::NavigationController>(source).ptr(); 545 content::Source<NavigationController>(source).ptr();
547 TabUpdated(source_controller->GetWebContents(), true); 546 TabUpdated(source_controller->GetWebContents(), true);
548 } else if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { 547 } else if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) {
549 // Tab was destroyed after being detached (without being re-attached). 548 // Tab was destroyed after being detached (without being re-attached).
550 WebContents* contents = content::Source<WebContents>(source).ptr(); 549 WebContents* contents = content::Source<WebContents>(source).ptr();
551 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, 550 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
552 content::Source<content::NavigationController>( 551 content::Source<NavigationController>(&contents->GetController()));
553 &contents->GetController()));
554 registrar_.Remove(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 552 registrar_.Remove(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
555 content::Source<WebContents>(contents)); 553 content::Source<WebContents>(contents));
556 } else if (type == chrome::NOTIFICATION_BROWSER_WINDOW_READY) { 554 } else if (type == chrome::NOTIFICATION_BROWSER_WINDOW_READY) {
557 const Browser* browser = content::Source<const Browser>(source).ptr(); 555 const Browser* browser = content::Source<const Browser>(source).ptr();
558 OnBrowserWindowReady(browser); 556 OnBrowserWindowReady(browser);
559 #if defined(OS_MACOSX) 557 #if defined(OS_MACOSX)
560 } else if (type == content::NOTIFICATION_NO_KEY_WINDOW) { 558 } else if (type == content::NOTIFICATION_NO_KEY_WINDOW) {
561 OnBrowserSetLastActive(NULL); 559 OnBrowserSetLastActive(NULL);
562 #endif 560 #endif
563 } else { 561 } else {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 637
640 void ExtensionBrowserEventRouter::BrowserActionExecuted( 638 void ExtensionBrowserEventRouter::BrowserActionExecuted(
641 Profile* profile, const std::string& extension_id, Browser* browser) { 639 Profile* profile, const std::string& extension_id, Browser* browser) {
642 TabContentsWrapper* tab_contents = NULL; 640 TabContentsWrapper* tab_contents = NULL;
643 int tab_id = 0; 641 int tab_id = 0;
644 if (!ExtensionTabUtil::GetDefaultTab(browser, &tab_contents, &tab_id)) 642 if (!ExtensionTabUtil::GetDefaultTab(browser, &tab_contents, &tab_id))
645 return; 643 return;
646 DispatchEventWithTab(profile, extension_id, "browserAction.onClicked", 644 DispatchEventWithTab(profile, extension_id, "browserAction.onClicked",
647 tab_contents->web_contents(), true); 645 tab_contents->web_contents(), true);
648 } 646 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/app_process_apitest.cc ('k') | chrome/browser/extensions/extension_browsertests_misc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698