OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/find_bar/find_tab_helper.h" | 5 #include "chrome/browser/ui/find_bar/find_tab_helper.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 70 |
71 // This is a FindNext operation if we are searching for the same text again, | 71 // This is a FindNext operation if we are searching for the same text again, |
72 // or if the passed in search text is empty (FindNext keyboard shortcut). The | 72 // or if the passed in search text is empty (FindNext keyboard shortcut). The |
73 // exception to this is if the Find was aborted (then we don't want FindNext | 73 // exception to this is if the Find was aborted (then we don't want FindNext |
74 // because the highlighting has been cleared and we need it to reappear). We | 74 // because the highlighting has been cleared and we need it to reappear). We |
75 // therefore treat FindNext after an aborted Find operation as a full fledged | 75 // therefore treat FindNext after an aborted Find operation as a full fledged |
76 // Find. | 76 // Find. |
77 bool find_next = (find_text_ == search_string || search_string.empty()) && | 77 bool find_next = (find_text_ == search_string || search_string.empty()) && |
78 (last_search_case_sensitive_ == case_sensitive) && | 78 (last_search_case_sensitive_ == case_sensitive) && |
79 !find_op_aborted_; | 79 !find_op_aborted_; |
80 if (!find_next) | 80 |
81 current_find_request_id_ = find_request_id_counter_++; | 81 current_find_request_id_ = find_request_id_counter_++; |
82 | 82 |
83 if (!search_string.empty()) | 83 if (!search_string.empty()) |
84 find_text_ = search_string; | 84 find_text_ = search_string; |
85 last_search_case_sensitive_ = case_sensitive; | 85 last_search_case_sensitive_ = case_sensitive; |
86 | 86 |
87 find_op_aborted_ = false; | 87 find_op_aborted_ = false; |
88 | 88 |
89 // Keep track of what the last search was across the tabs. | 89 // Keep track of what the last search was across the tabs. |
90 Profile* profile = | 90 Profile* profile = |
91 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 91 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 } | 134 } |
135 | 135 |
136 void FindTabHelper::ActivateFindInPageResultForAccessibility() { | 136 void FindTabHelper::ActivateFindInPageResultForAccessibility() { |
137 web_contents()->GetMainFrame()->ActivateFindInPageResultForAccessibility( | 137 web_contents()->GetMainFrame()->ActivateFindInPageResultForAccessibility( |
138 current_find_request_id_); | 138 current_find_request_id_); |
139 } | 139 } |
140 | 140 |
141 #if defined(OS_ANDROID) | 141 #if defined(OS_ANDROID) |
142 void FindTabHelper::ActivateNearestFindResult(float x, float y) { | 142 void FindTabHelper::ActivateNearestFindResult(float x, float y) { |
143 if (!find_op_aborted_ && !find_text_.empty()) { | 143 if (!find_op_aborted_ && !find_text_.empty()) { |
144 web_contents()->GetMainFrame()->ActivateNearestFindResult( | 144 web_contents()->ActivateNearestFindResult(x, y); |
145 current_find_request_id_, x, y); | |
146 } | 145 } |
147 } | 146 } |
148 | 147 |
149 void FindTabHelper::RequestFindMatchRects(int current_version) { | 148 void FindTabHelper::RequestFindMatchRects(int current_version) { |
150 if (!find_op_aborted_ && !find_text_.empty()) | 149 if (!find_op_aborted_ && !find_text_.empty()) |
151 web_contents()->GetMainFrame()->RequestFindMatchRects(current_version); | 150 web_contents()->RequestFindMatchRects(current_version); |
152 } | 151 } |
153 #endif | 152 #endif |
154 | 153 |
155 void FindTabHelper::HandleFindReply(int request_id, | 154 void FindTabHelper::HandleFindReply(int request_id, |
156 int number_of_matches, | 155 int number_of_matches, |
157 const gfx::Rect& selection_rect, | 156 const gfx::Rect& selection_rect, |
158 int active_match_ordinal, | 157 int active_match_ordinal, |
159 bool final_update) { | 158 bool final_update) { |
160 // Ignore responses for requests that have been aborted. | 159 // Ignore responses for requests that have been aborted. |
161 // Ignore responses for requests other than the one we have most recently | 160 // Ignore responses for requests other than the one we have most recently |
(...skipping 15 matching lines...) Expand all Loading... |
177 // found. | 176 // found. |
178 last_search_result_ = FindNotificationDetails( | 177 last_search_result_ = FindNotificationDetails( |
179 request_id, number_of_matches, selection, active_match_ordinal, | 178 request_id, number_of_matches, selection, active_match_ordinal, |
180 final_update); | 179 final_update); |
181 content::NotificationService::current()->Notify( | 180 content::NotificationService::current()->Notify( |
182 chrome::NOTIFICATION_FIND_RESULT_AVAILABLE, | 181 chrome::NOTIFICATION_FIND_RESULT_AVAILABLE, |
183 content::Source<WebContents>(web_contents()), | 182 content::Source<WebContents>(web_contents()), |
184 content::Details<FindNotificationDetails>(&last_search_result_)); | 183 content::Details<FindNotificationDetails>(&last_search_result_)); |
185 } | 184 } |
186 } | 185 } |
OLD | NEW |