summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_mac.mm1
-rw-r--r--chrome/browser/automation/automation_provider.cc7
-rw-r--r--chrome/browser/automation/automation_provider_observers.cc1
-rw-r--r--chrome/browser/browser_focus_uitest.cc2
-rw-r--r--chrome/browser/renderer_host/render_view_host.h1
-rw-r--r--chrome/browser/tab_contents/tab_contents.cc119
-rw-r--r--chrome/browser/tab_contents/tab_contents.h90
-rw-r--r--chrome/browser/ui/browser.cc12
-rw-r--r--chrome/browser/ui/cocoa/find_bar/find_bar_cocoa_controller.mm37
-rw-r--r--chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm3
-rw-r--r--chrome/browser/ui/find_bar/find_backend_unittest.cc43
-rw-r--r--chrome/browser/ui/find_bar/find_bar_controller.cc46
-rw-r--r--chrome/browser/ui/find_bar/find_bar_controller.h12
-rw-r--r--chrome/browser/ui/find_bar/find_bar_host_browsertest.cc88
-rw-r--r--chrome/browser/ui/find_bar/find_manager.cc147
-rw-r--r--chrome/browser/ui/find_bar/find_manager.h113
-rw-r--r--chrome/browser/ui/gtk/browser_window_gtk.cc3
-rw-r--r--chrome/browser/ui/gtk/find_bar_gtk.cc17
-rw-r--r--chrome/browser/ui/tab_contents/tab_contents_wrapper.cc10
-rw-r--r--chrome/browser/ui/tab_contents/tab_contents_wrapper.h7
-rw-r--r--chrome/browser/ui/tab_contents/test_tab_contents_wrapper.cc40
-rw-r--r--chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h32
-rw-r--r--chrome/browser/ui/views/find_bar_host.cc12
-rw-r--r--chrome/browser/ui/views/find_bar_host_gtk.cc1
-rw-r--r--chrome/browser/ui/views/find_bar_host_interactive_uitest.cc6
-rw-r--r--chrome/browser/ui/views/find_bar_host_win.cc4
-rw-r--r--chrome/browser/ui/views/find_bar_view.cc24
-rw-r--r--chrome/chrome_browser.gypi2
-rw-r--r--chrome/chrome_tests.gypi2
-rw-r--r--chrome/test/ui_test_utils.cc17
-rw-r--r--chrome/test/ui_test_utils.h3
31 files changed, 349 insertions, 553 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
index 236a21e..c2841f4 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
@@ -18,7 +18,6 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/ui/cocoa/event_utils.h"
#include "chrome/browser/ui/toolbar/toolbar_model.h"
-#include "gfx/rect.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "net/base/escape.h"
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index 2a8f6b1..294ba39 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -78,11 +78,9 @@
#include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h"
#include "chrome/browser/ui/find_bar/find_bar.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
#include "chrome/browser/ui/find_bar/find_notification_details.h"
#include "chrome/browser/ui/login/login_prompt.h"
#include "chrome/browser/ui/omnibox/location_bar.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/automation_constants.h"
#include "chrome/common/automation_messages.h"
#include "chrome/common/chrome_constants.h"
@@ -531,10 +529,7 @@ void AutomationProvider::SendFindRequest(
if (!with_json) {
find_in_page_observer_.reset(observer);
}
- TabContentsWrapper** wrapper =
- TabContentsWrapper::property_accessor()->GetProperty(
- tab_contents->property_bag());
- (*wrapper)->GetFindManager()->set_current_find_request_id(request_id);
+ tab_contents->set_current_find_request_id(request_id);
tab_contents->render_view_host()->StartFinding(
FindInPageNotificationObserver::kFindInPageRequestId,
search_string,
diff --git a/chrome/browser/automation/automation_provider_observers.cc b/chrome/browser/automation/automation_provider_observers.cc
index 1560946..f496a7a 100644
--- a/chrome/browser/automation/automation_provider_observers.cc
+++ b/chrome/browser/automation/automation_provider_observers.cc
@@ -50,7 +50,6 @@
#include "chrome/browser/translate/page_translated_details.h"
#include "chrome/browser/translate/translate_infobar_delegate.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/find_bar/find_notification_details.h"
#include "chrome/browser/ui/login/login_prompt.h"
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/automation_constants.h"
diff --git a/chrome/browser/browser_focus_uitest.cc b/chrome/browser/browser_focus_uitest.cc
index f46b176..75a6304 100644
--- a/chrome/browser/browser_focus_uitest.cc
+++ b/chrome/browser/browser_focus_uitest.cc
@@ -343,7 +343,7 @@ IN_PROC_BROWSER_TEST_F(BrowserFocusTest, MAYBE_TabsRememberFocusFindInPage) {
ui_test_utils::NavigateToURL(browser(), url);
browser()->Find();
- ui_test_utils::FindInPage(browser()->GetSelectedTabContentsWrapper(),
+ ui_test_utils::FindInPage(browser()->GetSelectedTabContents(),
ASCIIToUTF16("a"), true, false, NULL);
ASSERT_TRUE(IsViewFocused(VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
diff --git a/chrome/browser/renderer_host/render_view_host.h b/chrome/browser/renderer_host/render_view_host.h
index 3e0e8d6..9c1b81d 100644
--- a/chrome/browser/renderer_host/render_view_host.h
+++ b/chrome/browser/renderer_host/render_view_host.h
@@ -34,7 +34,6 @@ class RenderViewHostDelegate;
class SessionStorageNamespace;
class SiteInstance;
class SkBitmap;
-class TabContents;
class ViewMsg_Navigate;
struct ContentSettings;
struct ContextMenuParams;
diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc
index 0c8e6de..8a941cd 100644
--- a/chrome/browser/tab_contents/tab_contents.cc
+++ b/chrome/browser/tab_contents/tab_contents.cc
@@ -80,6 +80,7 @@
#include "chrome/browser/tab_contents/thumbnail_generator.h"
#include "chrome/browser/translate/page_translated_details.h"
#include "chrome/browser/ui/app_modal_dialogs/message_box_handler.h"
+#include "chrome/browser/ui/find_bar/find_bar_state.h"
#include "chrome/common/bindings_policy.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/content_restriction.h"
@@ -253,6 +254,10 @@ void MakeNavigateParams(const NavigationEntry& entry,
// TabContents ----------------------------------------------------------------
+// static
+int TabContents::find_request_id_counter_ = -1;
+
+
TabContents::TabContents(Profile* profile,
SiteInstance* site_instance,
int routing_id,
@@ -293,6 +298,11 @@ TabContents::TabContents(Profile* profile,
dont_notify_render_view_(false),
displayed_insecure_content_(false),
infobar_delegates_(),
+ find_ui_active_(false),
+ find_op_aborted_(false),
+ current_find_request_id_(find_request_id_counter_++),
+ last_search_case_sensitive_(false),
+ last_search_result_(),
extension_app_(NULL),
capturing_contents_(false),
is_being_destroyed_(false),
@@ -528,6 +538,7 @@ bool TabContents::OnMessageReceived(const IPC::Message& message) {
OnUpdateContentRestrictions)
IPC_MESSAGE_HANDLER(ViewHostMsg_PDFHasUnsupportedFeature,
OnPDFHasUnsupportedFeature)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnFindReply)
IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset, OnGoToEntryAtOffset)
IPC_MESSAGE_HANDLER(ViewHostMsg_DidGetApplicationInfo,
OnDidGetApplicationInfo)
@@ -1270,6 +1281,74 @@ void TabContents::DidMoveOrResize(ConstrainedWindow* window) {
#endif
}
+void TabContents::StartFinding(string16 search_string,
+ bool forward_direction,
+ bool case_sensitive) {
+ // If search_string is empty, it means FindNext was pressed with a keyboard
+ // shortcut so unless we have something to search for we return early.
+ if (search_string.empty() && find_text_.empty()) {
+ string16 last_search_prepopulate_text =
+ FindBarState::GetLastPrepopulateText(profile());
+
+ // Try the last thing we searched for on this tab, then the last thing
+ // searched for on any tab.
+ if (!previous_find_text_.empty())
+ search_string = previous_find_text_;
+ else if (!last_search_prepopulate_text.empty())
+ search_string = last_search_prepopulate_text;
+ else
+ return;
+ }
+
+ // Keep track of the previous search.
+ previous_find_text_ = find_text_;
+
+ // This is a FindNext operation if we are searching for the same text again,
+ // or if the passed in search text is empty (FindNext keyboard shortcut). The
+ // exception to this is if the Find was aborted (then we don't want FindNext
+ // because the highlighting has been cleared and we need it to reappear). We
+ // therefore treat FindNext after an aborted Find operation as a full fledged
+ // Find.
+ bool find_next = (find_text_ == search_string || search_string.empty()) &&
+ (last_search_case_sensitive_ == case_sensitive) &&
+ !find_op_aborted_;
+ if (!find_next)
+ current_find_request_id_ = find_request_id_counter_++;
+
+ if (!search_string.empty())
+ find_text_ = search_string;
+ last_search_case_sensitive_ = case_sensitive;
+
+ find_op_aborted_ = false;
+
+ // Keep track of what the last search was across the tabs.
+ FindBarState* find_bar_state = profile()->GetFindBarState();
+ find_bar_state->set_last_prepopulate_text(find_text_);
+ render_view_host()->StartFinding(current_find_request_id_,
+ find_text_,
+ forward_direction,
+ case_sensitive,
+ find_next);
+}
+
+void TabContents::StopFinding(
+ FindBarController::SelectionAction selection_action) {
+ if (selection_action == FindBarController::kClearSelection) {
+ // kClearSelection means the find string has been cleared by the user, but
+ // the UI has not been dismissed. In that case we want to clear the
+ // previously remembered search (http://crbug.com/42639).
+ previous_find_text_ = string16();
+ } else {
+ find_ui_active_ = false;
+ if (!find_text_.empty())
+ previous_find_text_ = find_text_;
+ }
+ find_text_.clear();
+ find_op_aborted_ = true;
+ last_search_result_ = FindNotificationDetails();
+ render_view_host()->StopFinding(selection_action);
+}
+
void TabContents::OnSavePage() {
// If we can not save the page, try to download it.
if (!SavePackage::IsSavableContents(contents_mime_type())) {
@@ -2092,6 +2171,46 @@ void TabContents::GenerateKeywordIfNecessary(
url_model->Add(new_url);
}
+void TabContents::OnFindReply(int request_id,
+ int number_of_matches,
+ const gfx::Rect& selection_rect,
+ int active_match_ordinal,
+ bool final_update) {
+ // Ignore responses for requests that have been aborted.
+ // Ignore responses for requests other than the one we have most recently
+ // issued. That way we won't act on stale results when the user has
+ // already typed in another query.
+ if (!find_op_aborted_ && request_id == current_find_request_id_) {
+ if (number_of_matches == -1)
+ number_of_matches = last_search_result_.number_of_matches();
+ if (active_match_ordinal == -1)
+ active_match_ordinal = last_search_result_.active_match_ordinal();
+
+ gfx::Rect selection = selection_rect;
+ if (selection.IsEmpty())
+ selection = last_search_result_.selection_rect();
+
+ // Notify the UI, automation and any other observers that a find result was
+ // found.
+ last_search_result_ = FindNotificationDetails(
+ request_id, number_of_matches, selection, active_match_ordinal,
+ final_update);
+ NotificationService::current()->Notify(
+ NotificationType::FIND_RESULT_AVAILABLE,
+ Source<TabContents>(this),
+ Details<FindNotificationDetails>(&last_search_result_));
+ }
+
+ // Send a notification to the renderer that we are ready to receive more
+ // results from the scoping effort of the Find operation. The FindInPage
+ // scoping is asynchronous and periodically sends results back up to the
+ // browser using IPC. In an effort to not spam the browser we have the
+ // browser send an ACK for each FindReply message and have the renderer
+ // queue up the latest status message while waiting for this ACK.
+ render_view_host()->Send(new ViewMsg_FindReplyACK(
+ render_view_host()->routing_id()));
+}
+
void TabContents::OnGoToEntryAtOffset(int offset) {
if (!delegate_ || delegate_->OnGoToEntryOffset(offset)) {
NavigationEntry* entry = controller_.GetEntryAtOffset(offset);
diff --git a/chrome/browser/tab_contents/tab_contents.h b/chrome/browser/tab_contents/tab_contents.h
index e24e030..fa7a6a5 100644
--- a/chrome/browser/tab_contents/tab_contents.h
+++ b/chrome/browser/tab_contents/tab_contents.h
@@ -29,6 +29,8 @@
#include "chrome/browser/tab_contents/render_view_host_manager.h"
#include "chrome/browser/tab_contents/tab_specific_content_settings.h"
#include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h"
+#include "chrome/browser/ui/find_bar/find_bar_controller.h"
+#include "chrome/browser/ui/find_bar/find_notification_details.h"
#include "chrome/common/notification_registrar.h"
#include "chrome/common/property_bag.h"
#include "chrome/common/renderer_preferences.h"
@@ -536,6 +538,50 @@ class TabContents : public PageNavigator,
return render_manager_.interstitial_page();
}
+ // Find in Page --------------------------------------------------------------
+
+ // Starts the Find operation by calling StartFinding on the Tab. This function
+ // can be called from the outside as a result of hot-keys, so it uses the
+ // last remembered search string as specified with set_find_string(). This
+ // function does not block while a search is in progress. The controller will
+ // receive the results through the notification mechanism. See Observe(...)
+ // for details.
+ void StartFinding(string16 search_string,
+ bool forward_direction,
+ bool case_sensitive);
+
+ // Stops the current Find operation.
+ void StopFinding(FindBarController::SelectionAction selection_action);
+
+ // Accessors/Setters for find_ui_active_.
+ bool find_ui_active() const { return find_ui_active_; }
+ void set_find_ui_active(bool find_ui_active) {
+ find_ui_active_ = find_ui_active;
+ }
+
+ // Setter for find_op_aborted_.
+ void set_find_op_aborted(bool find_op_aborted) {
+ find_op_aborted_ = find_op_aborted;
+ }
+
+ // Used _only_ by testing to get or set the current request ID.
+ int current_find_request_id() { return current_find_request_id_; }
+ void set_current_find_request_id(int current_find_request_id) {
+ current_find_request_id_ = current_find_request_id;
+ }
+
+ // Accessor for find_text_. Used to determine if this TabContents has any
+ // active searches.
+ string16 find_text() const { return find_text_; }
+
+ // Accessor for the previous search we issued.
+ string16 previous_find_text() const { return previous_find_text_; }
+
+ // Accessor for find_result_.
+ const FindNotificationDetails& find_result() const {
+ return last_search_result_;
+ }
+
// Misc state & callbacks ----------------------------------------------------
// Set whether the contents should block javascript message boxes or not.
@@ -768,6 +814,11 @@ class TabContents : public PageNavigator,
void OnUpdateContentRestrictions(int restrictions);
void OnPDFHasUnsupportedFeature();
+ void OnFindReply(int request_id,
+ int number_of_matches,
+ const gfx::Rect& selection_rect,
+ int active_match_ordinal,
+ bool final_update);
void OnGoToEntryAtOffset(int offset);
void OnDidGetApplicationInfo(int32 page_id, const WebApplicationInfo& info);
void OnInstallApplication(const WebApplicationInfo& info);
@@ -1161,6 +1212,45 @@ class TabContents : public PageNavigator,
// Delegates for InfoBars associated with this TabContents.
std::vector<InfoBarDelegate*> infobar_delegates_;
+ // Data for find in page -----------------------------------------------------
+
+ // TODO(brettw) this should be separated into a helper class.
+
+ // Each time a search request comes in we assign it an id before passing it
+ // over the IPC so that when the results come in we can evaluate whether we
+ // still care about the results of the search (in some cases we don't because
+ // the user has issued a new search).
+ static int find_request_id_counter_;
+
+ // True if the Find UI is active for this Tab.
+ bool find_ui_active_;
+
+ // True if a Find operation was aborted. This can happen if the Find box is
+ // closed or if the search term inside the Find box is erased while a search
+ // is in progress. This can also be set if a page has been reloaded, and will
+ // on FindNext result in a full Find operation so that the highlighting for
+ // inactive matches can be repainted.
+ bool find_op_aborted_;
+
+ // This variable keeps track of what the most recent request id is.
+ int current_find_request_id_;
+
+ // The current string we are/just finished searching for. This is used to
+ // figure out if this is a Find or a FindNext operation (FindNext should not
+ // increase the request id).
+ string16 find_text_;
+
+ // The string we searched for before |find_text_|.
+ string16 previous_find_text_;
+
+ // Whether the last search was case sensitive or not.
+ bool last_search_case_sensitive_;
+
+ // The last find result. This object contains details about the number of
+ // matches, the find selection rectangle, etc. The UI can access this
+ // information to build its presentation.
+ FindNotificationDetails last_search_result_;
+
// Data for app extensions ---------------------------------------------------
// If non-null this tab is an app tab and this is the extension the tab was
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 05fd143..d395497 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -81,7 +81,6 @@
#include "chrome/browser/ui/browser_navigator.h"
#include "chrome/browser/ui/find_bar/find_bar.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
#include "chrome/browser/ui/omnibox/location_bar.h"
#include "chrome/browser/ui/options/options_window.h"
#include "chrome/browser/ui/status_bubble.h"
@@ -450,7 +449,7 @@ FindBarController* Browser::GetFindBarController() {
FindBar* find_bar = BrowserWindow::CreateFindBar(this);
find_bar_controller_.reset(new FindBarController(find_bar));
find_bar->SetFindBarController(find_bar_controller_.get());
- find_bar_controller_->ChangeTabContents(GetSelectedTabContentsWrapper());
+ find_bar_controller_->ChangeTabContents(GetSelectedTabContents());
find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true);
}
return find_bar_controller_.get();
@@ -2699,7 +2698,7 @@ void Browser::TabSelectedAt(TabContentsWrapper* old_contents,
}
if (HasFindBarController()) {
- find_bar_controller_->ChangeTabContents(new_contents);
+ find_bar_controller_->ChangeTabContents(new_contents->tab_contents());
find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true);
}
@@ -4115,10 +4114,9 @@ void Browser::FindInPage(bool find_next, bool forward_direction) {
// We always want to search for the contents of the find pasteboard on OS X.
find_text = GetFindPboardText();
#endif
- GetSelectedTabContentsWrapper()->
- GetFindManager()->StartFinding(find_text,
- forward_direction,
- false); // Not case sensitive.
+ GetSelectedTabContents()->StartFinding(find_text,
+ forward_direction,
+ false); // Not case sensitive.
}
}
diff --git a/chrome/browser/ui/cocoa/find_bar/find_bar_cocoa_controller.mm b/chrome/browser/ui/cocoa/find_bar/find_bar_cocoa_controller.mm
index b6bb951..b51607d 100644
--- a/chrome/browser/ui/cocoa/find_bar/find_bar_cocoa_controller.mm
+++ b/chrome/browser/ui/cocoa/find_bar/find_bar_cocoa_controller.mm
@@ -17,8 +17,6 @@
#import "chrome/browser/ui/cocoa/focus_tracker.h"
#import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h"
namespace {
@@ -83,23 +81,17 @@ const float kFindBarCloseDuration = 0.15;
}
- (IBAction)previousResult:(id)sender {
- if (findBarBridge_) {
- FindManager* find_manager = findBarBridge_->
- GetFindBarController()->tab_contents()->GetFindManager();
- find_manager->StartFinding(
+ if (findBarBridge_)
+ findBarBridge_->GetFindBarController()->tab_contents()->StartFinding(
base::SysNSStringToUTF16([findText_ stringValue]),
false, false);
- }
}
- (IBAction)nextResult:(id)sender {
- if (findBarBridge_) {
- FindManager* find_manager = findBarBridge_->
- GetFindBarController()->tab_contents()->GetFindManager();
- find_manager->StartFinding(
+ if (findBarBridge_)
+ findBarBridge_->GetFindBarController()->tab_contents()->StartFinding(
base::SysNSStringToUTF16([findText_ stringValue]),
true, false);
- }
}
- (void)findPboardUpdated:(NSNotification*)notification {
@@ -130,11 +122,10 @@ const float kFindBarCloseDuration = 0.15;
if (!findBarBridge_)
return;
- TabContentsWrapper* tab_contents =
+ TabContents* tab_contents =
findBarBridge_->GetFindBarController()->tab_contents();
if (!tab_contents)
return;
- FindManager* find_manager = tab_contents->GetFindManager();
NSString* findText = [findText_ stringValue];
suppressPboardUpdateActions_ = YES;
@@ -142,11 +133,11 @@ const float kFindBarCloseDuration = 0.15;
suppressPboardUpdateActions_ = NO;
if ([findText length] > 0) {
- find_manager->StartFinding(base::SysNSStringToUTF16(findText), true, false);
+ tab_contents->StartFinding(base::SysNSStringToUTF16(findText), true, false);
} else {
// The textbox is empty so we reset.
- find_manager->StopFinding(FindBarController::kClearSelection);
- [self updateUIForFindResult:find_manager->find_result()
+ tab_contents->StopFinding(FindBarController::kClearSelection);
+ [self updateUIForFindResult:tab_contents->find_result()
withText:string16()];
}
}
@@ -182,7 +173,7 @@ const float kFindBarCloseDuration = 0.15;
command == @selector(scrollToEndOfDocument:) ||
command == @selector(moveUp:) ||
command == @selector(moveDown:)) {
- TabContentsWrapper* contents =
+ TabContents* contents =
findBarBridge_->GetFindBarController()->tab_contents();
if (!contents)
return NO;
@@ -247,8 +238,7 @@ const float kFindBarCloseDuration = 0.15;
if (!(focusTracker_.get() &&
[focusTracker_ restoreFocusInWindow:[findBarView_ window]])) {
// Fall back to giving focus to the tab contents.
- findBarBridge_->
- GetFindBarController()->tab_contents()->tab_contents()->Focus();
+ findBarBridge_->GetFindBarController()->tab_contents()->Focus();
}
focusTracker_.reset(nil);
}
@@ -377,12 +367,11 @@ const float kFindBarCloseDuration = 0.15;
// End the find session, hide the "x of y" text and disable the
// buttons, but do not close the find bar or raise the window here.
if (stopSearch && findBarBridge_) {
- TabContentsWrapper* contents =
+ TabContents* contents =
findBarBridge_->GetFindBarController()->tab_contents();
if (contents) {
- FindManager* find_manager = contents->GetFindManager();
- find_manager->StopFinding(FindBarController::kClearSelection);
- findBarBridge_->ClearResults(find_manager->find_result());
+ contents->StopFinding(FindBarController::kClearSelection);
+ findBarBridge_->ClearResults(contents->find_result());
}
}
diff --git a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
index 3c8a5c3..1b40a00 100644
--- a/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
+++ b/chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm
@@ -29,7 +29,6 @@
#include "chrome/browser/tabs/tab_strip_model.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_navigator.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
#import "chrome/browser/ui/cocoa/browser_window_controller.h"
#import "chrome/browser/ui/cocoa/constrained_window_mac.h"
#import "chrome/browser/ui/cocoa/new_tab_button.h"
@@ -1070,7 +1069,7 @@ private:
newContents->tab_contents()->DidBecomeSelected();
newContents->view()->RestoreFocus();
- if (newContents->GetFindManager()->find_ui_active())
+ if (newContents->tab_contents()->find_ui_active())
browser_->GetFindBarController()->find_bar()->SetFocusAndSelection();
}
}
diff --git a/chrome/browser/ui/find_bar/find_backend_unittest.cc b/chrome/browser/ui/find_bar/find_backend_unittest.cc
index d40a968..c4ec58b 100644
--- a/chrome/browser/ui/find_bar/find_backend_unittest.cc
+++ b/chrome/browser/ui/find_bar/find_backend_unittest.cc
@@ -5,15 +5,13 @@
#include "base/string16.h"
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
+#include "chrome/browser/renderer_host/test/test_render_view_host.h"
#include "chrome/browser/tab_contents/test_tab_contents.h"
#include "chrome/browser/ui/find_bar/find_bar_state.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
-#include "chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/testing_profile.h"
-typedef TabContentsWrapperTestHarness FindBackendTest;
+typedef RenderViewHostTestHarness FindBackendTest;
namespace {
@@ -26,21 +24,18 @@ string16 FindPrepopulateText(TabContents* contents) {
// This test takes two TabContents objects, searches in both of them and
// tests the internal state for find_text and find_prepopulate_text.
TEST_F(FindBackendTest, InternalState) {
- FindManager* find_manager = contents_wrapper()->GetFindManager();
// Initial state for the TabContents is blank strings.
EXPECT_EQ(string16(), FindPrepopulateText(contents()));
- EXPECT_EQ(string16(), find_manager->find_text());
+ EXPECT_EQ(string16(), contents()->find_text());
// Get another TabContents object ready.
- TestTabContents* contents2 = new TestTabContents(profile_.get(), NULL);
- TabContentsWrapper wrapper2(contents2);
- FindManager* find_manager2 = wrapper2.GetFindManager();
+ TestTabContents contents2(profile_.get(), NULL);
// No search has still been issued, strings should be blank.
EXPECT_EQ(string16(), FindPrepopulateText(contents()));
- EXPECT_EQ(string16(), find_manager->find_text());
- EXPECT_EQ(string16(), FindPrepopulateText(contents2));
- EXPECT_EQ(string16(), find_manager2->find_text());
+ EXPECT_EQ(string16(), contents()->find_text());
+ EXPECT_EQ(string16(), FindPrepopulateText(&contents2));
+ EXPECT_EQ(string16(), contents2.find_text());
string16 search_term1 = ASCIIToUTF16(" I had a 401K ");
string16 search_term2 = ASCIIToUTF16(" but the economy ");
@@ -48,34 +43,34 @@ TEST_F(FindBackendTest, InternalState) {
// Start searching in the first TabContents, searching forwards but not case
// sensitive (as indicated by the last two params).
- find_manager->StartFinding(search_term1, true, false);
+ contents()->StartFinding(search_term1, true, false);
// Pre-populate string should always match between the two, but find_text
// should not.
EXPECT_EQ(search_term1, FindPrepopulateText(contents()));
- EXPECT_EQ(search_term1, find_manager->find_text());
- EXPECT_EQ(search_term1, FindPrepopulateText(contents2));
- EXPECT_EQ(string16(), find_manager2->find_text());
+ EXPECT_EQ(search_term1, contents()->find_text());
+ EXPECT_EQ(search_term1, FindPrepopulateText(&contents2));
+ EXPECT_EQ(string16(), contents2.find_text());
// Now search in the other TabContents, searching forwards but not case
// sensitive (as indicated by the last two params).
- find_manager2->StartFinding(search_term2, true, false);
+ contents2.StartFinding(search_term2, true, false);
// Again, pre-populate string should always match between the two, but
// find_text should not.
EXPECT_EQ(search_term2, FindPrepopulateText(contents()));
- EXPECT_EQ(search_term1, find_manager->find_text());
- EXPECT_EQ(search_term2, FindPrepopulateText(contents2));
- EXPECT_EQ(search_term2, find_manager2->find_text());
+ EXPECT_EQ(search_term1, contents()->find_text());
+ EXPECT_EQ(search_term2, FindPrepopulateText(&contents2));
+ EXPECT_EQ(search_term2, contents2.find_text());
// Search again in the first TabContents, searching forwards but not case
// sensitive (as indicated by the last two params).
- find_manager->StartFinding(search_term3, true, false);
+ contents()->StartFinding(search_term3, true, false);
// Once more, pre-populate string should always match between the two, but
// find_text should not.
EXPECT_EQ(search_term3, FindPrepopulateText(contents()));
- EXPECT_EQ(search_term3, find_manager->find_text());
- EXPECT_EQ(search_term3, FindPrepopulateText(contents2));
- EXPECT_EQ(search_term2, find_manager2->find_text());
+ EXPECT_EQ(search_term3, contents()->find_text());
+ EXPECT_EQ(search_term3, FindPrepopulateText(&contents2));
+ EXPECT_EQ(search_term2, contents2.find_text());
}
diff --git a/chrome/browser/ui/find_bar/find_bar_controller.cc b/chrome/browser/ui/find_bar/find_bar_controller.cc
index 53dfe00..4f637e8 100644
--- a/chrome/browser/ui/find_bar/find_bar_controller.cc
+++ b/chrome/browser/ui/find_bar/find_bar_controller.cc
@@ -11,8 +11,7 @@
#include "chrome/browser/tab_contents/navigation_entry.h"
#include "chrome/browser/ui/find_bar/find_bar.h"
#include "chrome/browser/ui/find_bar/find_bar_state.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
+#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/notification_details.h"
#include "chrome/common/notification_source.h"
#include "gfx/rect.h"
@@ -31,14 +30,12 @@ FindBarController::~FindBarController() {
}
void FindBarController::Show() {
- FindManager* find_manager = tab_contents_->GetFindManager();
-
// Only show the animation if we're not already showing a find bar for the
// selected TabContents.
- if (!find_manager->find_ui_active()) {
+ if (!tab_contents_->find_ui_active()) {
MaybeSetPrepopulateText();
- find_manager->set_find_ui_active(true);
+ tab_contents_->set_find_ui_active(true);
find_bar_->Show(true);
}
find_bar_->SetFocusAndSelection();
@@ -50,22 +47,20 @@ void FindBarController::EndFindSession(SelectionAction action) {
// |tab_contents_| can be NULL for a number of reasons, for example when the
// tab is closing. We must guard against that case. See issue 8030.
if (tab_contents_) {
- FindManager* find_manager = tab_contents_->GetFindManager();
-
// When we hide the window, we need to notify the renderer that we are done
// for now, so that we can abort the scoping effort and clear all the
// tickmarks and highlighting.
- find_manager->StopFinding(action);
+ tab_contents_->StopFinding(action);
if (action != kKeepSelection)
- find_bar_->ClearResults(find_manager->find_result());
+ find_bar_->ClearResults(tab_contents_->find_result());
// When we get dismissed we restore the focus to where it belongs.
find_bar_->RestoreSavedFocus();
}
}
-void FindBarController::ChangeTabContents(TabContentsWrapper* contents) {
+void FindBarController::ChangeTabContents(TabContents* contents) {
if (tab_contents_) {
registrar_.RemoveAll();
find_bar_->StopAnimation();
@@ -76,7 +71,7 @@ void FindBarController::ChangeTabContents(TabContentsWrapper* contents) {
// Hide any visible find window from the previous tab if NULL |tab_contents|
// is passed in or if the find UI is not active in the new tab.
if (find_bar_->IsFindBarVisible() &&
- (!tab_contents_ || !tab_contents_->GetFindManager()->find_ui_active())) {
+ (!tab_contents_ || !tab_contents_->find_ui_active())) {
find_bar_->Hide(false);
}
@@ -84,13 +79,13 @@ void FindBarController::ChangeTabContents(TabContentsWrapper* contents) {
return;
registrar_.Add(this, NotificationType::FIND_RESULT_AVAILABLE,
- Source<TabContents>(tab_contents_->tab_contents()));
+ Source<TabContents>(tab_contents_));
registrar_.Add(this, NotificationType::NAV_ENTRY_COMMITTED,
Source<NavigationController>(&tab_contents_->controller()));
MaybeSetPrepopulateText();
- if (tab_contents_->GetFindManager()->find_ui_active()) {
+ if (tab_contents_->find_ui_active()) {
// A tab with a visible find bar just got selected and we need to show the
// find bar but without animation since it was already animated into its
// visible state. We also want to reset the window location so that
@@ -108,16 +103,15 @@ void FindBarController::ChangeTabContents(TabContentsWrapper* contents) {
void FindBarController::Observe(NotificationType type,
const NotificationSource& source,
const NotificationDetails& details) {
- FindManager* find_manager = tab_contents_->GetFindManager();
if (type == NotificationType::FIND_RESULT_AVAILABLE) {
// Don't update for notifications from TabContentses other than the one we
// are actively tracking.
- if (Source<TabContents>(source).ptr() == tab_contents_->tab_contents()) {
+ if (Source<TabContents>(source).ptr() == tab_contents_) {
UpdateFindBarForCurrentResult();
- if (find_manager->find_result().final_update() &&
- find_manager->find_result().number_of_matches() == 0) {
- const string16& last_search = find_manager->previous_find_text();
- const string16& current_search = find_manager->find_text();
+ if (tab_contents_->find_result().final_update() &&
+ tab_contents_->find_result().number_of_matches() == 0) {
+ const string16& last_search = tab_contents_->previous_find_text();
+ const string16& current_search = tab_contents_->find_text();
if (last_search.find(current_search) != 0)
find_bar_->AudibleAlert();
}
@@ -139,7 +133,7 @@ void FindBarController::Observe(NotificationType type,
} else {
// On Reload we want to make sure FindNext is converted to a full Find
// to make sure highlights for inactive matches are repainted.
- find_manager->set_find_op_aborted(true);
+ tab_contents_->set_find_op_aborted(true);
}
}
}
@@ -187,8 +181,7 @@ gfx::Rect FindBarController::GetLocationForFindbarView(
}
void FindBarController::UpdateFindBarForCurrentResult() {
- FindManager* find_manager = tab_contents_->GetFindManager();
- const FindNotificationDetails& find_result = find_manager->find_result();
+ const FindNotificationDetails& find_result = tab_contents_->find_result();
// Avoid bug 894389: When a new search starts (and finds something) it reports
// an interim match count result of 1 before the scoping effort starts. This
@@ -205,7 +198,7 @@ void FindBarController::UpdateFindBarForCurrentResult() {
last_reported_matchcount_ = find_result.number_of_matches();
}
- find_bar_->UpdateUIForFindResult(find_result, find_manager->find_text());
+ find_bar_->UpdateUIForFindResult(find_result, tab_contents_->find_text());
}
void FindBarController::MaybeSetPrepopulateText() {
@@ -213,10 +206,9 @@ void FindBarController::MaybeSetPrepopulateText() {
// Find out what we should show in the find text box. Usually, this will be
// the last search in this tab, but if no search has been issued in this tab
// we use the last search string (from any tab).
- FindManager* find_manager = tab_contents_->GetFindManager();
- string16 find_string = find_manager->find_text();
+ string16 find_string = tab_contents_->find_text();
if (find_string.empty())
- find_string = find_manager->previous_find_text();
+ find_string = tab_contents_->previous_find_text();
if (find_string.empty()) {
find_string =
FindBarState::GetLastPrepopulateText(tab_contents_->profile());
diff --git a/chrome/browser/ui/find_bar/find_bar_controller.h b/chrome/browser/ui/find_bar/find_bar_controller.h
index 75dce1f..1c3a1d6 100644
--- a/chrome/browser/ui/find_bar/find_bar_controller.h
+++ b/chrome/browser/ui/find_bar/find_bar_controller.h
@@ -16,7 +16,7 @@ class Rect;
}
class FindBar;
-class TabContentsWrapper;
+class TabContents;
class FindBarController : public NotificationObserver {
public:
@@ -38,12 +38,12 @@ class FindBarController : public NotificationObserver {
// Ends the current session.
void EndFindSession(SelectionAction action);
- // Accessor for the attached TabContentsWrapper.
- TabContentsWrapper* tab_contents() const { return tab_contents_; }
+ // Accessor for the attached TabContents.
+ TabContents* tab_contents() const { return tab_contents_; }
// Changes the TabContents that this FindBar is attached to. This occurs when
// the user switches tabs in the Browser window. |contents| can be NULL.
- void ChangeTabContents(TabContentsWrapper* contents);
+ void ChangeTabContents(TabContents* contents);
// Overridden from NotificationObserver:
virtual void Observe(NotificationType type,
@@ -76,8 +76,8 @@ class FindBarController : public NotificationObserver {
scoped_ptr<FindBar> find_bar_;
- // The TabContentsWrapper we are currently associated with. Can be NULL.
- TabContentsWrapper* tab_contents_;
+ // The TabContents we are currently associated with. Can be NULL.
+ TabContents* tab_contents_;
// The last match count we reported to the user. This is used by
// UpdateFindBarForCurrentResult to avoid flickering.
diff --git a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc
index a96b9c4..5b2f1c9 100644
--- a/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc
+++ b/chrome/browser/ui/find_bar/find_bar_host_browsertest.cc
@@ -15,9 +15,7 @@
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/find_bar/find_bar.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
#include "chrome/browser/ui/find_bar/find_notification_details.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/test/in_process_browser_test.h"
#include "chrome/test/ui_test_utils.h"
#include "net/test/test_server.h"
@@ -117,7 +115,7 @@ class FindInPageControllerTest : public InProcessBrowserTest {
// Platform independent FindInPage that takes |const wchar_t*|
// as an input.
-int FindInPageWchar(TabContentsWrapper* tab,
+int FindInPageWchar(TabContents* tab,
const wchar_t* search_str,
bool forward,
bool case_sensitive,
@@ -137,7 +135,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageFrames) {
// Try incremental search (mimicking user typing in).
int ordinal = 0;
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
EXPECT_EQ(18, FindInPageWchar(tab, L"g",
kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(1, ordinal);
@@ -229,12 +227,12 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageEndState) {
GURL url = test_server()->GetURL(kEndState);
ui_test_utils::NavigateToURL(browser(), url);
- TabContentsWrapper* tab_contents = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab_contents = browser()->GetSelectedTabContents();
ASSERT_TRUE(NULL != tab_contents);
// Verify that nothing has focus.
std::string result;
- ASSERT_TRUE(FocusedOnPage(tab_contents->tab_contents(), &result));
+ ASSERT_TRUE(FocusedOnPage(tab_contents, &result));
ASSERT_STREQ("{nothing focused}", result.c_str());
// Search for a text that exists within a link on the page.
@@ -244,11 +242,10 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageEndState) {
EXPECT_EQ(1, ordinal);
// End the find session, which should set focus to the link.
- tab_contents->
- GetFindManager()->StopFinding(FindBarController::kKeepSelection);
+ tab_contents->StopFinding(FindBarController::kKeepSelection);
// Verify that the link is focused.
- ASSERT_TRUE(FocusedOnPage(tab_contents->tab_contents(), &result));
+ ASSERT_TRUE(FocusedOnPage(tab_contents, &result));
EXPECT_STREQ("link1", result.c_str());
// Search for a text that exists within a link on the page.
@@ -264,11 +261,10 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageEndState) {
&result));
// End the find session.
- tab_contents->
- GetFindManager()->StopFinding(FindBarController::kKeepSelection);
+ tab_contents->StopFinding(FindBarController::kKeepSelection);
// Verify that link2 is not focused.
- ASSERT_TRUE(FocusedOnPage(tab_contents->tab_contents(), &result));
+ ASSERT_TRUE(FocusedOnPage(tab_contents, &result));
EXPECT_STREQ("", result.c_str());
}
@@ -283,7 +279,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageOrdinal) {
// Search for 'o', which should make the first item active and return
// '1 in 3' (1st ordinal of a total of 3 matches).
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
int ordinal = 0;
EXPECT_EQ(3, FindInPageWchar(tab, L"o",
kFwd, kIgnoreCase, &ordinal));
@@ -320,11 +316,13 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest,
GURL url = test_server()->GetURL(kSelectChangesOrdinal);
ui_test_utils::NavigateToURL(browser(), url);
+ TabContents* tab_contents = browser()->GetSelectedTabContents();
+ ASSERT_TRUE(NULL != tab_contents);
+
// Search for a text that exists within a link on the page.
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
- ASSERT_TRUE(NULL != tab);
+ TabContents* tab = browser()->GetSelectedTabContents();
int ordinal = 0;
- EXPECT_EQ(4, FindInPageWchar(tab,
+ EXPECT_EQ(4, FindInPageWchar(tab_contents,
L"google",
kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(1, ordinal);
@@ -332,7 +330,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest,
// Move the selection to link 1, after searching.
std::string result;
ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
- tab->render_view_host(),
+ tab_contents->render_view_host(),
L"",
L"window.domAutomationController.send(selectLink1());",
&result));
@@ -345,7 +343,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest,
EXPECT_EQ(3, ordinal);
// End the find session.
- tab->GetFindManager()->StopFinding(FindBarController::kKeepSelection);
+ tab_contents->StopFinding(FindBarController::kKeepSelection);
}
// This test loads a page with frames and makes sure the ordinal returned makes
@@ -359,7 +357,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageMultiFramesOrdinal) {
// Search for 'a', which should make the first item active and return
// '1 in 7' (1st ordinal of a total of 7 matches).
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
int ordinal = 0;
EXPECT_EQ(7,
FindInPageWchar(tab, L"a", kFwd, kIgnoreCase, &ordinal));
@@ -410,7 +408,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPage_Issue5132) {
// Search for 'goa' three times (6 matches on page).
int ordinal = 0;
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
EXPECT_EQ(6, FindInPageWchar(tab, L"goa",
kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(1, ordinal);
@@ -439,7 +437,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindUnselectableText) {
ui_test_utils::NavigateToURL(browser(), url);
int ordinal = 0;
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(tab, L"text", kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(1, ordinal);
}
@@ -462,7 +460,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindCrash_Issue1341577) {
// TODO(jungshik): According to a native Malayalam speaker, it's ok not
// to find U+0D4C. Still need to investigate further this issue.
int ordinal = 0;
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
FindInPageWchar(tab, L"\u0D4C", kFwd, kIgnoreCase, &ordinal);
FindInPageWchar(tab, L"\u0D4C", kFwd, kIgnoreCase, &ordinal);
@@ -486,7 +484,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindCrash_Issue14491) {
// This used to crash the tab.
int ordinal = 0;
- EXPECT_EQ(0, FindInPageWchar(browser()->GetSelectedTabContentsWrapper(),
+ EXPECT_EQ(0, FindInPageWchar(browser()->GetSelectedTabContents(),
L"s", kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(0, ordinal);
}
@@ -509,7 +507,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindRestarts_Issue1155639) {
// This string appears 5 times at the bottom of a long page. If Find restarts
// properly after a timeout, it will find 5 matches, not just 1.
int ordinal = 0;
- EXPECT_EQ(5, FindInPageWchar(browser()->GetSelectedTabContentsWrapper(),
+ EXPECT_EQ(5, FindInPageWchar(browser()->GetSelectedTabContents(),
L"008.xml",
kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(1, ordinal);
@@ -525,7 +523,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest,
GURL url = test_server()->GetURL(kPrematureEnd);
ui_test_utils::NavigateToURL(browser(), url);
- TabContentsWrapper* tab_contents = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab_contents = browser()->GetSelectedTabContents();
ASSERT_TRUE(NULL != tab_contents);
// Search for a text that exists within a link on the page.
@@ -643,7 +641,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, MAYBE_FindMovesWhenObscuring) {
// Search for 'Chromium' which the Find box is obscuring.
int ordinal = 0;
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
int index = 0;
for (; index < kMoveIterations; ++index) {
EXPECT_EQ(kMoveIterations, FindInPageWchar(tab, L"Chromium",
@@ -689,7 +687,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest,
// Search for 'no_match'. No matches should be found.
int ordinal = 0;
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
EXPECT_EQ(0, FindInPageWchar(tab, L"no_match",
kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(0, ordinal);
@@ -777,14 +775,13 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, StayActive) {
// simulating keypresses here for searching for something and pressing
// backspace, but that's been proven flaky in the past, so we go straight to
// tab_contents.
- FindManager* find_manager =
- browser()->GetSelectedTabContentsWrapper()->GetFindManager();
+ TabContents* tab_contents = browser()->GetSelectedTabContents();
// Stop the (non-existing) find operation, and clear the selection (which
// signals the UI is still active).
- find_manager->StopFinding(FindBarController::kClearSelection);
+ tab_contents->StopFinding(FindBarController::kClearSelection);
// Make sure the Find UI flag hasn't been cleared, it must be so that the UI
// still responds to browser window resizing.
- ASSERT_TRUE(find_manager->find_ui_active());
+ ASSERT_TRUE(tab_contents->find_ui_active());
}
// Make sure F3 works after you FindNext a couple of times and end the Find
@@ -798,7 +795,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, RestartSearchFromF3) {
// Search for 'page'. Should have 1 match.
int ordinal = 0;
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(tab, L"page", kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(1, ordinal);
@@ -829,7 +826,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PreferPreviousSearch) {
// Find "Default".
int ordinal = 0;
- TabContentsWrapper* tab1 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab1 = browser()->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(tab1, L"Default", kFwd, kIgnoreCase, &ordinal));
// Create a second tab.
@@ -841,7 +838,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PreferPreviousSearch) {
params.tabstrip_add_types = TabStripModel::ADD_NONE;
browser::Navigate(&params);
browser()->SelectTabContentsAt(1, false);
- TabContentsWrapper* tab2 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab2 = browser()->GetSelectedTabContents();
EXPECT_NE(tab1, tab2);
// Find "given".
@@ -853,7 +850,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PreferPreviousSearch) {
FindBarController::kKeepSelection);
// Simulate F3.
ui_test_utils::FindInPage(tab1, string16(), kFwd, kIgnoreCase, &ordinal);
- EXPECT_EQ(tab1->GetFindManager()->find_text(), WideToUTF16(L"Default"));
+ EXPECT_EQ(tab1->find_text(), WideToUTF16(L"Default"));
}
// This tests that whenever you close and reopen the Find bar, it should show
@@ -872,7 +869,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PrepopulateSameTab) {
// Search for the word "page".
int ordinal = 0;
- TabContentsWrapper* tab1 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab1 = browser()->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(tab1, L"page", kFwd, kIgnoreCase, &ordinal));
// Open the Find box.
@@ -911,13 +908,13 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PrepopulateInNewTab) {
// Search for the word "page".
int ordinal = 0;
- TabContentsWrapper* tab1 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab1 = browser()->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(tab1, L"page", kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(ASCIIToUTF16("1 of 1"), GetMatchCountText());
// Now create a second tab and load the same page.
browser()->AddSelectedTabWithURL(url, PageTransition::TYPED);
- TabContentsWrapper* tab2 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab2 = browser()->GetSelectedTabContents();
EXPECT_NE(tab1, tab2);
// Open the Find box.
@@ -947,7 +944,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PrepopulatePreserveLast) {
// Search for the word "page".
int ordinal = 0;
- TabContentsWrapper* tab1 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab1 = browser()->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(tab1, L"page", kFwd, kIgnoreCase, &ordinal));
// Open the Find box.
@@ -965,7 +962,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, PrepopulatePreserveLast) {
params.tabstrip_add_types = TabStripModel::ADD_NONE;
browser::Navigate(&params);
browser()->SelectTabContentsAt(1, false);
- TabContentsWrapper* tab2 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab2 = browser()->GetSelectedTabContents();
EXPECT_NE(tab1, tab2);
// Search for the word "text".
@@ -1021,7 +1018,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, MAYBE_NoIncognitoPrepopulate) {
// Search for the word "page" in the normal browser tab.
int ordinal = 0;
- TabContentsWrapper* tab1 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab1 = browser()->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(tab1, L"page", kFwd, kIgnoreCase, &ordinal));
// Open the Find box.
@@ -1045,8 +1042,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, MAYBE_NoIncognitoPrepopulate) {
EXPECT_EQ(ASCIIToUTF16("page"), GetFindBarTextForBrowser(incognito_browser));
// Search for the word "text" in the incognito tab.
- TabContentsWrapper* incognito_tab =
- incognito_browser->GetSelectedTabContentsWrapper();
+ TabContents* incognito_tab = incognito_browser->GetSelectedTabContents();
EXPECT_EQ(1, FindInPageWchar(incognito_tab, L"text",
kFwd, kIgnoreCase, &ordinal));
EXPECT_EQ(ASCIIToUTF16("text"), GetFindBarTextForBrowser(incognito_browser));
@@ -1057,7 +1053,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, MAYBE_NoIncognitoPrepopulate) {
// Now open a new tab in the original (non-incognito) browser.
browser()->AddSelectedTabWithURL(url, PageTransition::TYPED);
- TabContentsWrapper* tab2 = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab2 = browser()->GetSelectedTabContents();
EXPECT_NE(tab1, tab2);
// Open the Find box and make sure it is prepopulated with the search term
@@ -1074,12 +1070,12 @@ IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, ActivateLinkNavigatesPage) {
GURL url = test_server()->GetURL(kLinkPage);
ui_test_utils::NavigateToURL(browser(), url);
- TabContentsWrapper* tab = browser()->GetSelectedTabContentsWrapper();
+ TabContents* tab = browser()->GetSelectedTabContents();
int ordinal = 0;
FindInPageWchar(tab, L"link", kFwd, kIgnoreCase, &ordinal);
EXPECT_EQ(ordinal, 1);
// End the find session, click on the link.
- tab->GetFindManager()->StopFinding(FindBarController::kActivateSelection);
+ tab->StopFinding(FindBarController::kActivateSelection);
EXPECT_TRUE(ui_test_utils::WaitForNavigationInCurrentTab(browser()));
}
diff --git a/chrome/browser/ui/find_bar/find_manager.cc b/chrome/browser/ui/find_bar/find_manager.cc
deleted file mode 100644
index b02bad6..0000000
--- a/chrome/browser/ui/find_bar/find_manager.cc
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/find_bar/find_manager.h"
-
-#include <vector>
-
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/renderer_host/render_view_host.h"
-#include "chrome/browser/ui/find_bar/find_bar_state.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
-#include "chrome/common/notification_service.h"
-#include "chrome/common/render_messages.h"
-
-// static
-int FindManager::find_request_id_counter_ = -1;
-
-FindManager::FindManager(TabContentsWrapper* tab_contents)
- : tab_contents_(tab_contents),
- find_ui_active_(false),
- find_op_aborted_(false),
- current_find_request_id_(find_request_id_counter_++),
- last_search_case_sensitive_(false),
- last_search_result_() {
- DCHECK(tab_contents_);
-}
-
-FindManager::~FindManager() {
-}
-
-void FindManager::StartFinding(string16 search_string,
- bool forward_direction,
- bool case_sensitive) {
- // If search_string is empty, it means FindNext was pressed with a keyboard
- // shortcut so unless we have something to search for we return early.
- if (search_string.empty() && find_text_.empty()) {
- string16 last_search_prepopulate_text =
- FindBarState::GetLastPrepopulateText(tab_contents_->profile());
-
- // Try the last thing we searched for on this tab, then the last thing
- // searched for on any tab.
- if (!previous_find_text_.empty())
- search_string = previous_find_text_;
- else if (!last_search_prepopulate_text.empty())
- search_string = last_search_prepopulate_text;
- else
- return;
- }
-
- // Keep track of the previous search.
- previous_find_text_ = find_text_;
-
- // This is a FindNext operation if we are searching for the same text again,
- // or if the passed in search text is empty (FindNext keyboard shortcut). The
- // exception to this is if the Find was aborted (then we don't want FindNext
- // because the highlighting has been cleared and we need it to reappear). We
- // therefore treat FindNext after an aborted Find operation as a full fledged
- // Find.
- bool find_next = (find_text_ == search_string || search_string.empty()) &&
- (last_search_case_sensitive_ == case_sensitive) &&
- !find_op_aborted_;
- if (!find_next)
- current_find_request_id_ = find_request_id_counter_++;
-
- if (!search_string.empty())
- find_text_ = search_string;
- last_search_case_sensitive_ = case_sensitive;
-
- find_op_aborted_ = false;
-
- // Keep track of what the last search was across the tabs.
- FindBarState* find_bar_state = tab_contents_->profile()->GetFindBarState();
- find_bar_state->set_last_prepopulate_text(find_text_);
- tab_contents_->render_view_host()->StartFinding(current_find_request_id_,
- find_text_,
- forward_direction,
- case_sensitive,
- find_next);
-}
-
-void FindManager::StopFinding(
- FindBarController::SelectionAction selection_action) {
- if (selection_action == FindBarController::kClearSelection) {
- // kClearSelection means the find string has been cleared by the user, but
- // the UI has not been dismissed. In that case we want to clear the
- // previously remembered search (http://crbug.com/42639).
- previous_find_text_ = string16();
- } else {
- find_ui_active_ = false;
- if (!find_text_.empty())
- previous_find_text_ = find_text_;
- }
- find_text_.clear();
- find_op_aborted_ = true;
- last_search_result_ = FindNotificationDetails();
- tab_contents_->render_view_host()->StopFinding(selection_action);
-}
-
-bool FindManager::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(FindManager, message)
- IPC_MESSAGE_HANDLER(ViewHostMsg_Find_Reply, OnFindReply)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void FindManager::OnFindReply(int request_id,
- int number_of_matches,
- const gfx::Rect& selection_rect,
- int active_match_ordinal,
- bool final_update) {
- // Ignore responses for requests that have been aborted.
- // Ignore responses for requests other than the one we have most recently
- // issued. That way we won't act on stale results when the user has
- // already typed in another query.
- if (!find_op_aborted_ && request_id == current_find_request_id_) {
- if (number_of_matches == -1)
- number_of_matches = last_search_result_.number_of_matches();
- if (active_match_ordinal == -1)
- active_match_ordinal = last_search_result_.active_match_ordinal();
-
- gfx::Rect selection = selection_rect;
- if (selection.IsEmpty())
- selection = last_search_result_.selection_rect();
-
- // Notify the UI, automation and any other observers that a find result was
- // found.
- last_search_result_ = FindNotificationDetails(
- request_id, number_of_matches, selection, active_match_ordinal,
- final_update);
- NotificationService::current()->Notify(
- NotificationType::FIND_RESULT_AVAILABLE,
- Source<TabContents>(tab_contents_->tab_contents()),
- Details<FindNotificationDetails>(&last_search_result_));
- }
-
- // Send a notification to the renderer that we are ready to receive more
- // results from the scoping effort of the Find operation. The FindInPage
- // scoping is asynchronous and periodically sends results back up to the
- // browser using IPC. In an effort to not spam the browser we have the
- // browser send an ACK for each FindReply message and have the renderer
- // queue up the latest status message while waiting for this ACK.
- tab_contents_->render_view_host()->Send(new ViewMsg_FindReplyACK(
- tab_contents_->render_view_host()->routing_id()));
-}
diff --git a/chrome/browser/ui/find_bar/find_manager.h b/chrome/browser/ui/find_bar/find_manager.h
deleted file mode 100644
index 2a210f3..0000000
--- a/chrome/browser/ui/find_bar/find_manager.h
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_FIND_BAR_FIND_MANAGER_H_
-#define CHROME_BROWSER_UI_FIND_BAR_FIND_MANAGER_H_
-#pragma once
-
-#include "chrome/browser/tab_contents/tab_contents_observer.h"
-#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/find_bar/find_notification_details.h"
-
-class TabContentsWrapper;
-
-// Per-tab find manager. Handles dealing with the life cycle of find sessions.
-class FindManager : public TabContentsObserver {
- public:
- explicit FindManager(TabContentsWrapper* tab_contents);
- virtual ~FindManager();
-
- // Starts the Find operation by calling StartFinding on the Tab. This function
- // can be called from the outside as a result of hot-keys, so it uses the
- // last remembered search string as specified with set_find_string(). This
- // function does not block while a search is in progress. The controller will
- // receive the results through the notification mechanism. See Observe(...)
- // for details.
- void StartFinding(string16 search_string,
- bool forward_direction,
- bool case_sensitive);
-
- // Stops the current Find operation.
- void StopFinding(FindBarController::SelectionAction selection_action);
-
- // Accessors/Setters for find_ui_active_.
- bool find_ui_active() const { return find_ui_active_; }
- void set_find_ui_active(bool find_ui_active) {
- find_ui_active_ = find_ui_active;
- }
-
- // Setter for find_op_aborted_.
- void set_find_op_aborted(bool find_op_aborted) {
- find_op_aborted_ = find_op_aborted;
- }
-
- // Used _only_ by testing to get or set the current request ID.
- int current_find_request_id() { return current_find_request_id_; }
- void set_current_find_request_id(int current_find_request_id) {
- current_find_request_id_ = current_find_request_id;
- }
-
- // Accessor for find_text_. Used to determine if this TabContents has any
- // active searches.
- string16 find_text() const { return find_text_; }
-
- // Accessor for the previous search we issued.
- string16 previous_find_text() const { return previous_find_text_; }
-
- // Accessor for find_result_.
- const FindNotificationDetails& find_result() const {
- return last_search_result_;
- }
-
- // TabContentsObserver overrides.
- virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
-
- void OnFindReply(int request_id,
- int number_of_matches,
- const gfx::Rect& selection_rect,
- int active_match_ordinal,
- bool final_update);
-
- private:
- TabContentsWrapper* tab_contents_;
-
- // Each time a search request comes in we assign it an id before passing it
- // over the IPC so that when the results come in we can evaluate whether we
- // still care about the results of the search (in some cases we don't because
- // the user has issued a new search).
- static int find_request_id_counter_;
-
- // True if the Find UI is active for this Tab.
- bool find_ui_active_;
-
- // True if a Find operation was aborted. This can happen if the Find box is
- // closed or if the search term inside the Find box is erased while a search
- // is in progress. This can also be set if a page has been reloaded, and will
- // on FindNext result in a full Find operation so that the highlighting for
- // inactive matches can be repainted.
- bool find_op_aborted_;
-
- // This variable keeps track of what the most recent request id is.
- int current_find_request_id_;
-
- // The current string we are/just finished searching for. This is used to
- // figure out if this is a Find or a FindNext operation (FindNext should not
- // increase the request id).
- string16 find_text_;
-
- // The string we searched for before |find_text_|.
- string16 previous_find_text_;
-
- // Whether the last search was case sensitive or not.
- bool last_search_case_sensitive_;
-
- // The last find result. This object contains details about the number of
- // matches, the find selection rectangle, etc. The UI can access this
- // information to build its presentation.
- FindNotificationDetails last_search_result_;
-
- DISALLOW_COPY_AND_ASSIGN(FindManager);
-};
-
-#endif // CHROME_BROWSER_UI_FIND_BAR_FIND_MANAGER_H_
diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc
index d0c21c6..79781b9 100644
--- a/chrome/browser/ui/gtk/browser_window_gtk.cc
+++ b/chrome/browser/ui/gtk/browser_window_gtk.cc
@@ -37,7 +37,6 @@
#include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
#include "chrome/browser/ui/gtk/about_chrome_dialog.h"
#include "chrome/browser/ui/gtk/accelerators_gtk.h"
#include "chrome/browser/ui/gtk/bookmark_bar_gtk.h"
@@ -1183,7 +1182,7 @@ void BrowserWindowGtk::TabSelectedAt(TabContentsWrapper* old_contents,
// we are the active browser before calling RestoreFocus().
if (!browser_->tabstrip_model()->closing_all()) {
new_contents->view()->RestoreFocus();
- if (new_contents->GetFindManager()->find_ui_active())
+ if (new_contents->tab_contents()->find_ui_active())
browser_->GetFindBarController()->find_bar()->SetFocusAndSelection();
}
diff --git a/chrome/browser/ui/gtk/find_bar_gtk.cc b/chrome/browser/ui/gtk/find_bar_gtk.cc
index f8136e8..55b30b0 100644
--- a/chrome/browser/ui/gtk/find_bar_gtk.cc
+++ b/chrome/browser/ui/gtk/find_bar_gtk.cc
@@ -20,8 +20,6 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
#include "chrome/browser/ui/find_bar/find_bar_state.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
-#include "chrome/browser/ui/find_bar/find_notification_details.h"
#include "chrome/browser/ui/gtk/browser_window_gtk.h"
#include "chrome/browser/ui/gtk/cairo_cached_surface.h"
#include "chrome/browser/ui/gtk/custom_button.h"
@@ -33,7 +31,6 @@
#include "chrome/browser/ui/gtk/tab_contents_container_gtk.h"
#include "chrome/browser/ui/gtk/tabs/tab_strip_gtk.h"
#include "chrome/browser/ui/gtk/view_id_util.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/native_web_keyboard_event.h"
#include "chrome/common/notification_service.h"
#include "grit/generated_resources.h"
@@ -452,7 +449,7 @@ void FindBarGtk::RestoreSavedFocus() {
if (focus_store_.widget())
gtk_widget_grab_focus(focus_store_.widget());
else
- find_bar_controller_->tab_contents()->tab_contents()->Focus();
+ find_bar_controller_->tab_contents()->Focus();
}
FindBarTesting* FindBarGtk::GetFindBarTesting() {
@@ -577,20 +574,20 @@ string16 FindBarGtk::GetMatchCountText() {
}
void FindBarGtk::FindEntryTextInContents(bool forward_search) {
- TabContentsWrapper* tab_contents = find_bar_controller_->tab_contents();
+ TabContents* tab_contents = find_bar_controller_->tab_contents();
if (!tab_contents)
return;
- FindManager* find_manager = tab_contents->GetFindManager();
std::string new_contents(gtk_entry_get_text(GTK_ENTRY(text_entry_)));
if (new_contents.length() > 0) {
- find_manager->StartFinding(UTF8ToUTF16(new_contents), forward_search,
+ tab_contents->StartFinding(UTF8ToUTF16(new_contents), forward_search,
false); // Not case sensitive.
} else {
// The textbox is empty so we reset.
- find_manager->StopFinding(FindBarController::kClearSelection);
- UpdateUIForFindResult(find_manager->find_result(), string16());
+ tab_contents->StopFinding(FindBarController::kClearSelection);
+ UpdateUIForFindResult(find_bar_controller_->tab_contents()->find_result(),
+ string16());
// Clearing the text box should also clear the prepopulate state so that
// when we close and reopen the Find box it doesn't show the search we
@@ -660,7 +657,7 @@ bool FindBarGtk::MaybeForwardKeyEventToRenderer(GdkEventKey* event) {
return false;
}
- TabContentsWrapper* contents = find_bar_controller_->tab_contents();
+ TabContents* contents = find_bar_controller_->tab_contents();
if (!contents)
return false;
diff --git a/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc b/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
index cb44d61..43f4c49 100644
--- a/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
+++ b/chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
@@ -8,7 +8,6 @@
#include "chrome/browser/password_manager/password_manager.h"
#include "chrome/browser/password_manager_delegate_impl.h"
#include "chrome/browser/tab_contents/tab_contents.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
static base::LazyInstance<PropertyAccessor<TabContentsWrapper*> >
g_tab_contents_wrapper_property_accessor(base::LINKER_INITIALIZED);
@@ -58,15 +57,6 @@ PasswordManager* TabContentsWrapper::GetPasswordManager() {
return password_manager_.get();
}
-FindManager* TabContentsWrapper::GetFindManager() {
- if (!find_manager_.get()) {
- find_manager_.reset(new FindManager(this));
- // Register the manager to receive navigation notifications.
- tab_contents()->AddObserver(find_manager_.get());
- }
- return find_manager_.get();
-}
-
////////////////////////////////////////////////////////////////////////////////
// TabContentsWrapper, TabContentsObserver implementation:
diff --git a/chrome/browser/ui/tab_contents/tab_contents_wrapper.h b/chrome/browser/ui/tab_contents/tab_contents_wrapper.h
index 8172b9a..430008f 100644
--- a/chrome/browser/ui/tab_contents/tab_contents_wrapper.h
+++ b/chrome/browser/ui/tab_contents/tab_contents_wrapper.h
@@ -12,7 +12,6 @@
#include "chrome/browser/tab_contents/tab_contents_observer.h"
class Extension;
-class FindManager;
class NavigationController;
class PasswordManager;
class PasswordManagerDelegate;
@@ -63,9 +62,6 @@ class TabContentsWrapper : public TabContentsObserver {
// Returns the PasswordManager, creating it if necessary.
PasswordManager* GetPasswordManager();
- // Returns the FindManager, creating it if necessary.
- FindManager* GetFindManager();
-
// TabContentsObserver overrides:
virtual void NavigateToPendingEntry() OVERRIDE;
@@ -75,9 +71,6 @@ class TabContentsWrapper : public TabContentsObserver {
scoped_ptr<PasswordManagerDelegate> password_manager_delegate_;
scoped_ptr<PasswordManager> password_manager_;
- // FindManager, lazily created.
- scoped_ptr<FindManager> find_manager_;
-
// The supporting objects need to outlive the TabContents dtor (as they may
// be called upon during its execution). As a result, this must come last
// in the list.
diff --git a/chrome/browser/ui/tab_contents/test_tab_contents_wrapper.cc b/chrome/browser/ui/tab_contents/test_tab_contents_wrapper.cc
deleted file mode 100644
index 10b8a6b..0000000
--- a/chrome/browser/ui/tab_contents/test_tab_contents_wrapper.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h"
-
-#include "chrome/browser/tab_contents/test_tab_contents.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
-#include "chrome/test/testing_profile.h"
-
-TabContentsWrapperTestHarness::TabContentsWrapperTestHarness()
- : RenderViewHostTestHarness() {
-}
-
-TabContentsWrapperTestHarness::~TabContentsWrapperTestHarness() {
-}
-
-TestTabContents* TabContentsWrapperTestHarness::contents() {
- return static_cast<TestTabContents*>(contents_wrapper_.get()->tab_contents());
-}
-
-TabContentsWrapper* TabContentsWrapperTestHarness::contents_wrapper() {
- return contents_wrapper_.get();
-}
-
-void TabContentsWrapperTestHarness::SetUp() {
- contents_wrapper_.reset(new TabContentsWrapper(CreateTestTabContents()));
-}
-
-void TabContentsWrapperTestHarness::TearDown() {
- contents_wrapper_.reset();
-
- // Make sure that we flush any messages related to TabContents destruction
- // before we destroy the profile.
- MessageLoop::current()->RunAllPending();
-
- // Release the profile on the UI thread.
- message_loop_.DeleteSoon(FROM_HERE, profile_.release());
- message_loop_.RunAllPending();
-}
diff --git a/chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h b/chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h
deleted file mode 100644
index 9c60c12..0000000
--- a/chrome/browser/ui/tab_contents/test_tab_contents_wrapper.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_TAB_CONTENTS_TEST_TAB_CONTENTS_WRAPPER_H_
-#define CHROME_BROWSER_UI_TAB_CONTENTS_TEST_TAB_CONTENTS_WRAPPER_H_
-#pragma once
-
-#include "base/compiler_specific.h"
-#include "chrome/browser/renderer_host/test/test_render_view_host.h"
-
-class TabContentsWrapper;
-
-class TabContentsWrapperTestHarness : public RenderViewHostTestHarness {
- public:
- TabContentsWrapperTestHarness();
- virtual ~TabContentsWrapperTestHarness();
-
- TestTabContents* contents();
- TabContentsWrapper* contents_wrapper();
-
- protected:
- // testing::Test
- virtual void SetUp() OVERRIDE;
- virtual void TearDown() OVERRIDE;
-
- scoped_ptr<TabContentsWrapper> contents_wrapper_;
-
- DISALLOW_COPY_AND_ASSIGN(TabContentsWrapperTestHarness);
-};
-
-#endif // CHROME_BROWSER_UI_TAB_CONTENTS_TEST_TAB_CONTENTS_WRAPPER_H_
diff --git a/chrome/browser/ui/views/find_bar_host.cc b/chrome/browser/ui/views/find_bar_host.cc
index a253f8f..4adb96f 100644
--- a/chrome/browser/ui/views/find_bar_host.cc
+++ b/chrome/browser/ui/views/find_bar_host.cc
@@ -10,8 +10,6 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_contents_view.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/find_bar_view.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
@@ -64,7 +62,7 @@ bool FindBarHost::MaybeForwardKeyEventToWebpage(
return false;
}
- TabContentsWrapper* contents = find_bar_controller_->tab_contents();
+ TabContents* contents = find_bar_controller_->tab_contents();
if (!contents)
return false;
@@ -73,8 +71,7 @@ bool FindBarHost::MaybeForwardKeyEventToWebpage(
// Make sure we don't have a text field element interfering with keyboard
// input. Otherwise Up and Down arrow key strokes get eaten. "Nom Nom Nom".
render_view_host->ClearFocusedNode();
- NativeWebKeyboardEvent event = GetKeyboardEvent(contents->tab_contents(),
- key_event);
+ NativeWebKeyboardEvent event = GetKeyboardEvent(contents, key_event);
render_view_host->ForwardKeyboardEvent(event);
return true;
}
@@ -113,8 +110,7 @@ void FindBarHost::MoveWindowIfNecessary(const gfx::Rect& selection_rect,
// don't check this, then SetWidgetPosition below will end up making the Find
// Bar visible.
if (!find_bar_controller_->tab_contents() ||
- !find_bar_controller_->
- tab_contents()->GetFindManager()->find_ui_active()) {
+ !find_bar_controller_->tab_contents()->find_ui_active()) {
return;
}
@@ -155,7 +151,7 @@ bool FindBarHost::IsFindBarVisible() {
void FindBarHost::RestoreSavedFocus() {
if (focus_tracker() == NULL) {
// TODO(brettw) Focus() should be on TabContentsView.
- find_bar_controller_->tab_contents()->tab_contents()->Focus();
+ find_bar_controller_->tab_contents()->Focus();
} else {
focus_tracker()->FocusLastFocusedExternalView();
}
diff --git a/chrome/browser/ui/views/find_bar_host_gtk.cc b/chrome/browser/ui/views/find_bar_host_gtk.cc
index bacb9d8..4240579 100644
--- a/chrome/browser/ui/views/find_bar_host_gtk.cc
+++ b/chrome/browser/ui/views/find_bar_host_gtk.cc
@@ -7,7 +7,6 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_contents_view.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "views/widget/widget_gtk.h"
diff --git a/chrome/browser/ui/views/find_bar_host_interactive_uitest.cc b/chrome/browser/ui/views/find_bar_host_interactive_uitest.cc
index 816ead2..8103085 100644
--- a/chrome/browser/ui/views/find_bar_host_interactive_uitest.cc
+++ b/chrome/browser/ui/views/find_bar_host_interactive_uitest.cc
@@ -100,7 +100,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageTest, FocusRestore) {
browser()->Find();
EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(),
VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
- ui_test_utils::FindInPage(browser()->GetSelectedTabContentsWrapper(),
+ ui_test_utils::FindInPage(browser()->GetSelectedTabContents(),
ASCIIToUTF16("a"), true, false, NULL);
browser()->GetFindBarController()->EndFindSession(
FindBarController::kKeepSelection);
@@ -135,7 +135,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageTest, FocusRestoreOnTabSwitch) {
browser()->GetFindBarController()->find_bar()->GetFindBarTesting();
// Search for 'a'.
- ui_test_utils::FindInPage(browser()->GetSelectedTabContentsWrapper(),
+ ui_test_utils::FindInPage(browser()->GetSelectedTabContents(),
ASCIIToUTF16("a"), true, false, NULL);
EXPECT_TRUE(ASCIIToUTF16("a") == find_bar->GetFindSelectedText());
@@ -149,7 +149,7 @@ IN_PROC_BROWSER_TEST_F(FindInPageTest, FocusRestoreOnTabSwitch) {
VIEW_ID_FIND_IN_PAGE_TEXT_FIELD));
// Search for 'b'.
- ui_test_utils::FindInPage(browser()->GetSelectedTabContentsWrapper(),
+ ui_test_utils::FindInPage(browser()->GetSelectedTabContents(),
ASCIIToUTF16("b"), true, false, NULL);
EXPECT_TRUE(ASCIIToUTF16("b") == find_bar->GetFindSelectedText());
diff --git a/chrome/browser/ui/views/find_bar_host_win.cc b/chrome/browser/ui/views/find_bar_host_win.cc
index 051f54c..fb341c0 100644
--- a/chrome/browser/ui/views/find_bar_host_win.cc
+++ b/chrome/browser/ui/views/find_bar_host_win.cc
@@ -8,7 +8,6 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/tab_contents_view.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "views/controls/scrollbar/native_scroll_bar.h"
#include "views/widget/widget_win.h"
@@ -22,8 +21,7 @@ void FindBarHost::GetWidgetPositionNative(gfx::Rect* avoid_overlapping_rect) {
::GetWindowRect(
static_cast<views::WidgetWin*>(host())->GetParent(), &frame_rect);
::GetWindowRect(
- find_bar_controller_->
- tab_contents()->tab_contents()->view()->GetNativeView(),
+ find_bar_controller_->tab_contents()->view()->GetNativeView(),
&webcontents_rect);
avoid_overlapping_rect->Offset(0, webcontents_rect.top - frame_rect.top);
}
diff --git a/chrome/browser/ui/views/find_bar_view.cc b/chrome/browser/ui/views/find_bar_view.cc
index 818efda..d28481e 100644
--- a/chrome/browser/ui/views/find_bar_view.cc
+++ b/chrome/browser/ui/views/find_bar_view.cc
@@ -14,8 +14,6 @@
#include "chrome/browser/themes/browser_theme_provider.h"
#include "chrome/browser/ui/find_bar/find_bar_controller.h"
#include "chrome/browser/ui/find_bar/find_bar_state.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/find_bar_host.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
@@ -441,9 +439,9 @@ void FindBarView::ButtonPressed(
case FIND_NEXT_TAG:
if (!find_text_->text().empty()) {
find_bar_host()->GetFindBarController()->tab_contents()->
- GetFindManager()->StartFinding(find_text_->text(),
- sender->tag() == FIND_NEXT_TAG,
- false); // Not case sensitive.
+ StartFinding(find_text_->text(),
+ sender->tag() == FIND_NEXT_TAG,
+ false); // Not case sensitive.
}
if (event.IsMouseEvent()) {
// If mouse event, we move the focus back to the text-field, so that the
@@ -482,17 +480,16 @@ void FindBarView::ContentsChanged(views::Textfield* sender,
// can lead to crashes, as exposed by automation testing in issue 8048.
if (!controller->tab_contents())
return;
- FindManager* find_manager = controller->tab_contents()->GetFindManager();
// When the user changes something in the text box we check the contents and
// if the textbox contains something we set it as the new search string and
// initiate search (even though old searches might be in progress).
if (!new_contents.empty()) {
// The last two params here are forward (true) and case sensitive (false).
- find_manager->StartFinding(new_contents, true, false);
+ controller->tab_contents()->StartFinding(new_contents, true, false);
} else {
- find_manager->StopFinding(FindBarController::kClearSelection);
- UpdateForResult(find_manager->find_result(), string16());
+ controller->tab_contents()->StopFinding(FindBarController::kClearSelection);
+ UpdateForResult(controller->tab_contents()->find_result(), string16());
// Clearing the text box should clear the prepopulate state so that when
// we close and reopen the Find box it doesn't show the search we just
@@ -518,12 +515,11 @@ bool FindBarView::HandleKeyEvent(views::Textfield* sender,
// Pressing Return/Enter starts the search (unless text box is empty).
string16 find_string = find_text_->text();
if (!find_string.empty()) {
- FindBarController* controller = find_bar_host()->GetFindBarController();
- FindManager* find_manager = controller->tab_contents()->GetFindManager();
// Search forwards for enter, backwards for shift-enter.
- find_manager->StartFinding(find_string,
- !key_event.IsShiftDown(),
- false); // Not case sensitive.
+ find_bar_host()->GetFindBarController()->tab_contents()->StartFinding(
+ find_string,
+ !key_event.IsShiftDown(),
+ false); // Not case sensitive.
}
}
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index d7f0979..7c33c93 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -2861,8 +2861,6 @@
'browser/ui/find_bar/find_bar_controller.h',
'browser/ui/find_bar/find_bar_state.cc',
'browser/ui/find_bar/find_bar_state.h',
- 'browser/ui/find_bar/find_manager.h',
- 'browser/ui/find_bar/find_manager.cc',
'browser/ui/find_bar/find_notification_details.h',
'browser/ui/gtk/about_chrome_dialog.cc',
'browser/ui/gtk/about_chrome_dialog.h',
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 48924f0..cdd303c 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -86,8 +86,6 @@
'browser/sync/profile_sync_service_mock.h',
'browser/ui/browser.h',
'browser/ui/cocoa/browser_test_helper.h',
- 'browser/ui/tab_contents/test_tab_contents_wrapper.cc',
- 'browser/ui/tab_contents/test_tab_contents_wrapper.h',
'common/net/test_url_fetcher_factory.cc',
'common/net/test_url_fetcher_factory.h',
'common/notification_observer_mock.cc',
diff --git a/chrome/test/ui_test_utils.cc b/chrome/test/ui_test_utils.cc
index 407458d..0dd2504 100644
--- a/chrome/test/ui_test_utils.cc
+++ b/chrome/test/ui_test_utils.cc
@@ -31,9 +31,6 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/tab_contents/thumbnail_generator.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/find_bar/find_manager.h"
-#include "chrome/browser/ui/find_bar/find_notification_details.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/extension_action.h"
#include "chrome/common/notification_type.h"
@@ -226,14 +223,13 @@ class DownloadsCompleteObserver : public DownloadManager::Observer,
class FindInPageNotificationObserver : public NotificationObserver {
public:
- explicit FindInPageNotificationObserver(TabContentsWrapper* parent_tab)
+ explicit FindInPageNotificationObserver(TabContents* parent_tab)
: parent_tab_(parent_tab),
active_match_ordinal_(-1),
number_of_matches_(0) {
- current_find_request_id_ =
- parent_tab->GetFindManager()->current_find_request_id();
+ current_find_request_id_ = parent_tab->current_find_request_id();
registrar_.Add(this, NotificationType::FIND_RESULT_AVAILABLE,
- Source<TabContents>(parent_tab_->tab_contents()));
+ Source<TabContents>(parent_tab_));
ui_test_utils::RunMessageLoop();
}
@@ -264,7 +260,7 @@ class FindInPageNotificationObserver : public NotificationObserver {
private:
NotificationRegistrar registrar_;
- TabContentsWrapper* parent_tab_;
+ TabContents* parent_tab_;
// We will at some point (before final update) be notified of the ordinal and
// we need to preserve it so we can send it later.
int active_match_ordinal_;
@@ -628,10 +624,9 @@ void WaitForFocusInBrowser(Browser* browser) {
Source<Browser>(browser));
}
-int FindInPage(TabContentsWrapper* tab_contents, const string16& search_string,
+int FindInPage(TabContents* tab_contents, const string16& search_string,
bool forward, bool match_case, int* ordinal) {
- tab_contents->
- GetFindManager()->StartFinding(search_string, forward, match_case);
+ tab_contents->StartFinding(search_string, forward, match_case);
FindInPageNotificationObserver observer(tab_contents);
if (ordinal)
*ordinal = observer.active_match_ordinal();
diff --git a/chrome/test/ui_test_utils.h b/chrome/test/ui_test_utils.h
index 89dd676..d6a7cd6 100644
--- a/chrome/test/ui_test_utils.h
+++ b/chrome/test/ui_test_utils.h
@@ -44,7 +44,6 @@ class RenderWidgetHost;
class ScopedTempDir;
class SkBitmap;
class TabContents;
-class TabContentsWrapper;
class Value;
namespace gfx {
@@ -210,7 +209,7 @@ void WaitForFocusInBrowser(Browser* browser);
// Performs a find in the page of the specified tab. Returns the number of
// matches found. |ordinal| is an optional parameter which is set to the index
// of the current match.
-int FindInPage(TabContentsWrapper* tab,
+int FindInPage(TabContents* tab,
const string16& search_string,
bool forward,
bool case_sensitive,