| Index: chrome/browser/extensions/extension_browser_event_router.cc
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_browser_event_router.cc (revision 66453)
|
| +++ chrome/browser/extensions/extension_browser_event_router.cc (working copy)
|
| @@ -13,6 +13,8 @@
|
| #include "chrome/browser/profile.h"
|
| #include "chrome/browser/tab_contents/navigation_entry.h"
|
| #include "chrome/browser/tab_contents/tab_contents.h"
|
| +#include "chrome/browser/tab_contents_wrapper.h"
|
| +#include "chrome/browser/tab_contents_wrapper.h"
|
| #include "chrome/browser/tabs/tab_strip_model.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| @@ -137,7 +139,7 @@
|
| Browser* browser = *iter;
|
| if (browser->tabstrip_model()) {
|
| for (int i = 0; i < browser->tabstrip_model()->count(); ++i) {
|
| - TabContents* contents = browser->tabstrip_model()->GetTabContentsAt(i);
|
| + TabContents* contents = browser->GetTabContentsAt(i);
|
| int tab_id = ExtensionTabUtil::GetTabId(contents);
|
| tab_entries_[tab_id] = TabEntry();
|
| }
|
| @@ -171,8 +173,7 @@
|
|
|
| if (browser->tabstrip_model()) {
|
| for (int i = 0; i < browser->tabstrip_model()->count(); ++i)
|
| - RegisterForTabNotifications(
|
| - browser->tabstrip_model()->GetTabContentsAt(i));
|
| + RegisterForTabNotifications(browser->GetTabContentsAt(i));
|
| }
|
| }
|
|
|
| @@ -265,15 +266,15 @@
|
| RegisterForTabNotifications(contents);
|
| }
|
|
|
| -void ExtensionBrowserEventRouter::TabInsertedAt(TabContents* contents,
|
| +void ExtensionBrowserEventRouter::TabInsertedAt(TabContentsWrapper* contents,
|
| int index,
|
| bool foreground) {
|
| // If tab is new, send created event.
|
| - int tab_id = ExtensionTabUtil::GetTabId(contents);
|
| - if (!GetTabEntry(contents)) {
|
| + int tab_id = ExtensionTabUtil::GetTabId(contents->tab_contents());
|
| + if (!GetTabEntry(contents->tab_contents())) {
|
| tab_entries_[tab_id] = TabEntry();
|
|
|
| - TabCreatedAt(contents, index, foreground);
|
| + TabCreatedAt(contents->tab_contents(), index, foreground);
|
| return;
|
| }
|
|
|
| @@ -282,7 +283,7 @@
|
|
|
| DictionaryValue* object_args = new DictionaryValue();
|
| object_args->Set(tab_keys::kNewWindowIdKey, Value::CreateIntegerValue(
|
| - ExtensionTabUtil::GetWindowIdOfTab(contents)));
|
| + ExtensionTabUtil::GetWindowIdOfTab(contents->tab_contents())));
|
| object_args->Set(tab_keys::kNewPositionKey, Value::CreateIntegerValue(
|
| index));
|
| args.Append(object_args);
|
| @@ -293,19 +294,20 @@
|
| DispatchEvent(contents->profile(), events::kOnTabAttached, json_args);
|
| }
|
|
|
| -void ExtensionBrowserEventRouter::TabDetachedAt(TabContents* contents,
|
| +void ExtensionBrowserEventRouter::TabDetachedAt(TabContentsWrapper* contents,
|
| int index) {
|
| - if (!GetTabEntry(contents)) {
|
| + if (!GetTabEntry(contents->tab_contents())) {
|
| // The tab was removed. Don't send detach event.
|
| return;
|
| }
|
|
|
| ListValue args;
|
| - args.Append(Value::CreateIntegerValue(ExtensionTabUtil::GetTabId(contents)));
|
| + args.Append(Value::CreateIntegerValue(
|
| + ExtensionTabUtil::GetTabId(contents->tab_contents())));
|
|
|
| DictionaryValue* object_args = new DictionaryValue();
|
| object_args->Set(tab_keys::kOldWindowIdKey, Value::CreateIntegerValue(
|
| - ExtensionTabUtil::GetWindowIdOfTab(contents)));
|
| + ExtensionTabUtil::GetWindowIdOfTab(contents->tab_contents())));
|
| object_args->Set(tab_keys::kOldPositionKey, Value::CreateIntegerValue(
|
| index));
|
| args.Append(object_args);
|
| @@ -317,9 +319,9 @@
|
| }
|
|
|
| void ExtensionBrowserEventRouter::TabClosingAt(TabStripModel* tab_strip_model,
|
| - TabContents* contents,
|
| + TabContentsWrapper* contents,
|
| int index) {
|
| - int tab_id = ExtensionTabUtil::GetTabId(contents);
|
| + int tab_id = ExtensionTabUtil::GetTabId(contents->tab_contents());
|
|
|
| ListValue args;
|
| args.Append(Value::CreateIntegerValue(tab_id));
|
| @@ -337,20 +339,21 @@
|
| int removed_count = tab_entries_.erase(tab_id);
|
| DCHECK_GT(removed_count, 0);
|
|
|
| - UnregisterForTabNotifications(contents);
|
| + UnregisterForTabNotifications(contents->tab_contents());
|
| }
|
|
|
| -void ExtensionBrowserEventRouter::TabSelectedAt(TabContents* old_contents,
|
| - TabContents* new_contents,
|
| - int index,
|
| - bool user_gesture) {
|
| +void ExtensionBrowserEventRouter::TabSelectedAt(
|
| + TabContentsWrapper* old_contents,
|
| + TabContentsWrapper* new_contents,
|
| + int index,
|
| + bool user_gesture) {
|
| ListValue args;
|
| args.Append(Value::CreateIntegerValue(
|
| - ExtensionTabUtil::GetTabId(new_contents)));
|
| + ExtensionTabUtil::GetTabId(new_contents->tab_contents())));
|
|
|
| DictionaryValue* object_args = new DictionaryValue();
|
| object_args->Set(tab_keys::kWindowIdKey, Value::CreateIntegerValue(
|
| - ExtensionTabUtil::GetWindowIdOfTab(new_contents)));
|
| + ExtensionTabUtil::GetWindowIdOfTab(new_contents->tab_contents())));
|
| args.Append(object_args);
|
|
|
| std::string json_args;
|
| @@ -360,15 +363,16 @@
|
| json_args);
|
| }
|
|
|
| -void ExtensionBrowserEventRouter::TabMoved(TabContents* contents,
|
| +void ExtensionBrowserEventRouter::TabMoved(TabContentsWrapper* contents,
|
| int from_index,
|
| int to_index) {
|
| ListValue args;
|
| - args.Append(Value::CreateIntegerValue(ExtensionTabUtil::GetTabId(contents)));
|
| + args.Append(Value::CreateIntegerValue(
|
| + ExtensionTabUtil::GetTabId(contents->tab_contents())));
|
|
|
| DictionaryValue* object_args = new DictionaryValue();
|
| object_args->Set(tab_keys::kWindowIdKey, Value::CreateIntegerValue(
|
| - ExtensionTabUtil::GetWindowIdOfTab(contents)));
|
| + ExtensionTabUtil::GetWindowIdOfTab(contents->tab_contents())));
|
| object_args->Set(tab_keys::kFromIndexKey, Value::CreateIntegerValue(
|
| from_index));
|
| object_args->Set(tab_keys::kToIndexKey, Value::CreateIntegerValue(
|
| @@ -456,29 +460,32 @@
|
| }
|
| }
|
|
|
| -void ExtensionBrowserEventRouter::TabChangedAt(TabContents* contents,
|
| +void ExtensionBrowserEventRouter::TabChangedAt(TabContentsWrapper* contents,
|
| int index,
|
| TabChangeType change_type) {
|
| - TabUpdated(contents, false);
|
| + TabUpdated(contents->tab_contents(), false);
|
| }
|
|
|
| -void ExtensionBrowserEventRouter::TabReplacedAt(TabContents* old_contents,
|
| - TabContents* new_contents,
|
| - int index) {
|
| - UnregisterForTabNotifications(old_contents);
|
| - RegisterForTabNotifications(new_contents);
|
| +void ExtensionBrowserEventRouter::TabReplacedAt(
|
| + TabContentsWrapper* old_contents,
|
| + TabContentsWrapper* new_contents,
|
| + int index) {
|
| + UnregisterForTabNotifications(old_contents->tab_contents());
|
| + RegisterForTabNotifications(new_contents->tab_contents());
|
| }
|
|
|
| -void ExtensionBrowserEventRouter::TabPinnedStateChanged(TabContents* contents,
|
| - int index) {
|
| +void ExtensionBrowserEventRouter::TabPinnedStateChanged(
|
| + TabContentsWrapper* contents,
|
| + int index) {
|
| TabStripModel* tab_strip = NULL;
|
| int tab_index;
|
|
|
| - if (ExtensionTabUtil::GetTabStripModel(contents, &tab_strip, &tab_index)) {
|
| + if (ExtensionTabUtil::GetTabStripModel(
|
| + contents->tab_contents(), &tab_strip, &tab_index)) {
|
| DictionaryValue* changed_properties = new DictionaryValue();
|
| changed_properties->SetBoolean(tab_keys::kPinnedKey,
|
| tab_strip->IsTabPinned(tab_index));
|
| - DispatchTabUpdatedEvent(contents, changed_properties);
|
| + DispatchTabUpdatedEvent(contents->tab_contents(), changed_properties);
|
| }
|
| }
|
|
|
| @@ -515,21 +522,21 @@
|
| int button) {
|
| DispatchOldPageActionEvent(profile, extension_id, page_action_id, tab_id, url,
|
| button);
|
| - TabContents* tab_contents = NULL;
|
| + TabContentsWrapper* tab_contents = NULL;
|
| if (!ExtensionTabUtil::GetTabById(tab_id, profile, profile->IsOffTheRecord(),
|
| NULL, NULL, &tab_contents, NULL)) {
|
| return;
|
| }
|
| DispatchEventWithTab(profile, extension_id, "pageAction.onClicked",
|
| - tab_contents);
|
| + tab_contents->tab_contents());
|
| }
|
|
|
| void ExtensionBrowserEventRouter::BrowserActionExecuted(
|
| Profile* profile, const std::string& extension_id, Browser* browser) {
|
| - TabContents* tab_contents = NULL;
|
| + TabContentsWrapper* tab_contents = NULL;
|
| int tab_id = 0;
|
| if (!ExtensionTabUtil::GetDefaultTab(browser, &tab_contents, &tab_id))
|
| return;
|
| DispatchEventWithTab(profile, extension_id, "browserAction.onClicked",
|
| - tab_contents);
|
| + tab_contents->tab_contents());
|
| }
|
|
|