Index: chrome/browser/automation/testing_automation_provider.cc |
diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc |
index a103455c0b85e37298a87a1f17ddfd005c5318c3..eaaf5b320c9754541a8c63f7af0c292e8895cd76 100644 |
--- a/chrome/browser/automation/testing_automation_provider.cc |
+++ b/chrome/browser/automation/testing_automation_provider.cc |
@@ -53,6 +53,7 @@ |
#include "chrome/browser/history/top_sites.h" |
#include "chrome/browser/importer/importer_host.h" |
#include "chrome/browser/importer/importer_list.h" |
+#include "chrome/browser/infobars/infobar_tab_helper.h" |
#include "chrome/browser/instant/instant_controller.h" |
#include "chrome/browser/notifications/balloon.h" |
#include "chrome/browser/notifications/balloon_collection.h" |
@@ -1885,7 +1886,7 @@ void TestingAutomationProvider::GetInfoBarCount(int handle, size_t* count) { |
TabContentsWrapper* wrapper = |
TabContentsWrapper::GetCurrentWrapperForContents( |
nav_controller->tab_contents()); |
- *count = wrapper->infobar_count(); |
+ *count = wrapper->infobar_tab_helper()->infobar_count(); |
} |
} |
} |
@@ -1899,18 +1900,16 @@ void TestingAutomationProvider::ClickInfoBarAccept( |
if (tab_tracker_->ContainsHandle(handle)) { |
NavigationController* nav_controller = tab_tracker_->GetResource(handle); |
if (nav_controller) { |
- TabContentsWrapper* wrapper = |
+ InfoBarTabHelper* infobar_helper = |
TabContentsWrapper::GetCurrentWrapperForContents( |
- nav_controller->tab_contents()); |
- if (info_bar_index < wrapper->infobar_count()) { |
+ nav_controller->tab_contents())->infobar_tab_helper(); |
+ if (info_bar_index < infobar_helper->infobar_count()) { |
if (wait_for_navigation) { |
new NavigationNotificationObserver(nav_controller, this, |
reply_message, 1, false, false); |
} |
InfoBarDelegate* delegate = |
- TabContentsWrapper::GetCurrentWrapperForContents( |
- nav_controller->tab_contents())->GetInfoBarDelegateAt( |
- info_bar_index); |
+ infobar_helper->GetInfoBarDelegateAt(info_bar_index); |
if (delegate->AsConfirmInfoBarDelegate()) |
delegate->AsConfirmInfoBarDelegate()->Accept(); |
success = true; |
@@ -2528,11 +2527,12 @@ void TestingAutomationProvider::SetWindowDimensions( |
ListValue* TestingAutomationProvider::GetInfobarsInfo(TabContents* tc) { |
// Each infobar may have different properties depending on the type. |
ListValue* infobars = new ListValue; |
- TabContentsWrapper* wrapper = |
- TabContentsWrapper::GetCurrentWrapperForContents(tc); |
- for (size_t i = 0; i < wrapper->infobar_count(); ++i) { |
+ InfoBarTabHelper* infobar_helper = |
+ TabContentsWrapper::GetCurrentWrapperForContents(tc)-> |
+ infobar_tab_helper(); |
+ for (size_t i = 0; i < infobar_helper->infobar_count(); ++i) { |
DictionaryValue* infobar_item = new DictionaryValue; |
- InfoBarDelegate* infobar = wrapper->GetInfoBarDelegateAt(i); |
+ InfoBarDelegate* infobar = infobar_helper->GetInfoBarDelegateAt(i); |
if (infobar->AsConfirmInfoBarDelegate()) { |
// Also covers ThemeInstalledInfoBarDelegate. |
infobar_item->SetString("type", "confirm_infobar"); |
@@ -2596,23 +2596,27 @@ void TestingAutomationProvider::PerformActionOnInfobar( |
reply.SendError("Invalid or missing args"); |
return; |
} |
+ |
TabContentsWrapper* tab_contents = |
browser->GetTabContentsWrapperAt(tab_index); |
if (!tab_contents) { |
reply.SendError(StringPrintf("No such tab at index %d", tab_index)); |
return; |
} |
+ InfoBarTabHelper* infobar_helper = tab_contents->infobar_tab_helper(); |
+ |
InfoBarDelegate* infobar = NULL; |
size_t infobar_index = static_cast<size_t>(infobar_index_int); |
- if (infobar_index >= tab_contents->infobar_count() || |
- !(infobar = tab_contents->GetInfoBarDelegateAt(infobar_index))) { |
+ if (infobar_index >= infobar_helper->infobar_count()) { |
reply.SendError(StringPrintf("No such infobar at index %" PRIuS, |
infobar_index)); |
return; |
} |
+ infobar = infobar_helper->GetInfoBarDelegateAt(infobar_index); |
+ |
if ("dismiss" == action) { |
infobar->InfoBarDismissed(); |
- tab_contents->RemoveInfoBar(infobar); |
+ infobar_helper->RemoveInfoBar(infobar); |
reply.SendSuccess(NULL); |
return; |
} |
@@ -2624,10 +2628,10 @@ void TestingAutomationProvider::PerformActionOnInfobar( |
} |
if ("accept" == action) { |
if (confirm_infobar->Accept()) |
- tab_contents->RemoveInfoBar(infobar); |
+ infobar_helper->RemoveInfoBar(infobar); |
} else if ("cancel" == action) { |
if (confirm_infobar->Cancel()) |
- tab_contents->RemoveInfoBar(infobar); |
+ infobar_helper->RemoveInfoBar(infobar); |
} |
reply.SendSuccess(NULL); |
return; |
@@ -3896,10 +3900,11 @@ TabContentsWrapper* GetTabContentsWrapperFromDict(const Browser* browser, |
// Get the TranslateInfoBarDelegate from TabContents. |
TranslateInfoBarDelegate* GetTranslateInfoBarDelegate( |
TabContents* tab_contents) { |
- TabContentsWrapper* wrapper = |
- TabContentsWrapper::GetCurrentWrapperForContents(tab_contents); |
- for (size_t i = 0; i < wrapper->infobar_count(); i++) { |
- InfoBarDelegate* infobar = wrapper->GetInfoBarDelegateAt(i); |
+ InfoBarTabHelper* infobar_helper = |
+ TabContentsWrapper::GetCurrentWrapperForContents(tab_contents)-> |
+ infobar_tab_helper(); |
+ for (size_t i = 0; i < infobar_helper->infobar_count(); i++) { |
+ InfoBarDelegate* infobar = infobar_helper->GetInfoBarDelegateAt(i); |
if (infobar->AsTranslateInfoBarDelegate()) |
return infobar->AsTranslateInfoBarDelegate(); |
} |
@@ -4101,7 +4106,7 @@ void TestingAutomationProvider::SelectTranslateOption( |
// This is the function called when an infobar is dismissed or when the |
// user clicks the 'Nope' translate button. |
translate_bar->TranslationDeclined(); |
- tab_contents_wrapper->RemoveInfoBar(translate_bar); |
+ tab_contents_wrapper->infobar_tab_helper()->RemoveInfoBar(translate_bar); |
reply.SendSuccess(NULL); |
} else { |
reply.SendError("Invalid string found for option."); |