| 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.");
|
|
|