Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 // See crbug.com/46610. | 210 // See crbug.com/46610. |
| 211 DispatchSimpleBrowserEvent(browser ? browser->profile() : profile_, | 211 DispatchSimpleBrowserEvent(browser ? browser->profile() : profile_, |
| 212 focused_window_id_, | 212 focused_window_id_, |
| 213 events::kOnWindowFocusedChanged); | 213 events::kOnWindowFocusedChanged); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void ExtensionBrowserEventRouter::TabCreatedAt(TabContents* contents, | 216 void ExtensionBrowserEventRouter::TabCreatedAt(TabContents* contents, |
| 217 int index, | 217 int index, |
| 218 bool foreground) { | 218 bool foreground) { |
| 219 DispatchEventWithTab(contents->profile(), "", events::kOnTabCreated, | 219 DispatchEventWithTab(contents->profile(), "", events::kOnTabCreated, |
| 220 contents); | 220 contents, foreground); |
|
sky
2011/06/10 14:58:59
foreground->active
| |
| 221 | 221 |
| 222 RegisterForTabNotifications(contents); | 222 RegisterForTabNotifications(contents); |
| 223 } | 223 } |
| 224 | 224 |
| 225 void ExtensionBrowserEventRouter::TabInsertedAt(TabContentsWrapper* contents, | 225 void ExtensionBrowserEventRouter::TabInsertedAt(TabContentsWrapper* contents, |
| 226 int index, | 226 int index, |
| 227 bool foreground) { | 227 bool foreground) { |
| 228 // If tab is new, send created event. | 228 // If tab is new, send created event. |
| 229 int tab_id = ExtensionTabUtil::GetTabId(contents->tab_contents()); | 229 int tab_id = ExtensionTabUtil::GetTabId(contents->tab_contents()); |
| 230 if (!GetTabEntry(contents->tab_contents())) { | 230 if (!GetTabEntry(contents->tab_contents())) { |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 379 return; | 379 return; |
| 380 | 380 |
| 381 profile->GetExtensionEventRouter()->DispatchEventToExtension( | 381 profile->GetExtensionEventRouter()->DispatchEventToExtension( |
| 382 extension_id, event_name, json_args, profile, GURL()); | 382 extension_id, event_name, json_args, profile, GURL()); |
| 383 } | 383 } |
| 384 | 384 |
| 385 void ExtensionBrowserEventRouter::DispatchEventWithTab( | 385 void ExtensionBrowserEventRouter::DispatchEventWithTab( |
| 386 Profile* profile, | 386 Profile* profile, |
| 387 const std::string& extension_id, | 387 const std::string& extension_id, |
| 388 const char* event_name, | 388 const char* event_name, |
| 389 const TabContents* tab_contents) { | 389 const TabContents* tab_contents, |
| 390 bool foreground) { | |
|
sky
2011/06/10 14:58:59
foreground -> active
| |
| 390 if (!profile_->IsSameProfile(profile)) | 391 if (!profile_->IsSameProfile(profile)) |
| 391 return; | 392 return; |
| 392 | 393 |
| 393 ListValue args; | 394 ListValue args; |
| 394 args.Append(ExtensionTabUtil::CreateTabValue(tab_contents)); | 395 args.Append(ExtensionTabUtil::CreateTabValueActive( |
| 396 tab_contents, foreground)); | |
| 395 std::string json_args; | 397 std::string json_args; |
| 396 base::JSONWriter::Write(&args, false, &json_args); | 398 base::JSONWriter::Write(&args, false, &json_args); |
| 397 if (!extension_id.empty()) { | 399 if (!extension_id.empty()) { |
| 398 DispatchEventToExtension(profile, extension_id, event_name, json_args); | 400 DispatchEventToExtension(profile, extension_id, event_name, json_args); |
| 399 } else { | 401 } else { |
| 400 DispatchEvent(profile, event_name, json_args); | 402 DispatchEvent(profile, event_name, json_args); |
| 401 } | 403 } |
| 402 } | 404 } |
| 403 | 405 |
| 404 void ExtensionBrowserEventRouter::DispatchSimpleBrowserEvent( | 406 void ExtensionBrowserEventRouter::DispatchSimpleBrowserEvent( |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 536 const std::string& url, | 538 const std::string& url, |
| 537 int button) { | 539 int button) { |
| 538 DispatchOldPageActionEvent(profile, extension_id, page_action_id, tab_id, url, | 540 DispatchOldPageActionEvent(profile, extension_id, page_action_id, tab_id, url, |
| 539 button); | 541 button); |
| 540 TabContentsWrapper* tab_contents = NULL; | 542 TabContentsWrapper* tab_contents = NULL; |
| 541 if (!ExtensionTabUtil::GetTabById(tab_id, profile, profile->IsOffTheRecord(), | 543 if (!ExtensionTabUtil::GetTabById(tab_id, profile, profile->IsOffTheRecord(), |
| 542 NULL, NULL, &tab_contents, NULL)) { | 544 NULL, NULL, &tab_contents, NULL)) { |
| 543 return; | 545 return; |
| 544 } | 546 } |
| 545 DispatchEventWithTab(profile, extension_id, "pageAction.onClicked", | 547 DispatchEventWithTab(profile, extension_id, "pageAction.onClicked", |
| 546 tab_contents->tab_contents()); | 548 tab_contents->tab_contents(), true); |
| 547 } | 549 } |
| 548 | 550 |
| 549 void ExtensionBrowserEventRouter::BrowserActionExecuted( | 551 void ExtensionBrowserEventRouter::BrowserActionExecuted( |
| 550 Profile* profile, const std::string& extension_id, Browser* browser) { | 552 Profile* profile, const std::string& extension_id, Browser* browser) { |
| 551 TabContentsWrapper* tab_contents = NULL; | 553 TabContentsWrapper* tab_contents = NULL; |
| 552 int tab_id = 0; | 554 int tab_id = 0; |
| 553 if (!ExtensionTabUtil::GetDefaultTab(browser, &tab_contents, &tab_id)) | 555 if (!ExtensionTabUtil::GetDefaultTab(browser, &tab_contents, &tab_id)) |
| 554 return; | 556 return; |
| 555 DispatchEventWithTab(profile, extension_id, "browserAction.onClicked", | 557 DispatchEventWithTab(profile, extension_id, "browserAction.onClicked", |
| 556 tab_contents->tab_contents()); | 558 tab_contents->tab_contents(), true); |
| 557 } | 559 } |
| OLD | NEW |