Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Side by Side Diff: content/browser/find_request_manager.cc

Issue 2249133002: Changes to how FindRequestManager reports find results. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/browser/find_request_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "content/browser/find_request_manager.h" 5 #include "content/browser/find_request_manager.h"
6 6
7 #include "content/browser/frame_host/render_frame_host_impl.h" 7 #include "content/browser/frame_host/render_frame_host_impl.h"
8 #include "content/browser/web_contents/web_contents_impl.h" 8 #include "content/browser/web_contents/web_contents_impl.h"
9 #include "content/common/frame_messages.h" 9 #include "content/common/frame_messages.h"
10 #include "content/common/input_messages.h" 10 #include "content/common/input_messages.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 FindRequestManager::FindMatchRectsState::~FindMatchRectsState() {} 84 FindRequestManager::FindMatchRectsState::~FindMatchRectsState() {}
85 #endif 85 #endif
86 86
87 // static 87 // static
88 const int FindRequestManager::kInvalidId = -1; 88 const int FindRequestManager::kInvalidId = -1;
89 89
90 FindRequestManager::FindRequestManager(WebContentsImpl* web_contents) 90 FindRequestManager::FindRequestManager(WebContentsImpl* web_contents)
91 : WebContentsObserver(web_contents), 91 : WebContentsObserver(web_contents),
92 contents_(web_contents), 92 contents_(web_contents),
93 current_session_id_(kInvalidId), 93 current_session_id_(kInvalidId),
94 pending_find_next_reply_(nullptr),
94 pending_active_match_ordinal_(false), 95 pending_active_match_ordinal_(false),
95 number_of_matches_(0), 96 number_of_matches_(0),
96 active_frame_(nullptr), 97 active_frame_(nullptr),
97 relative_active_match_ordinal_(0), 98 relative_active_match_ordinal_(0),
98 active_match_ordinal_(0) {} 99 active_match_ordinal_(0) {}
99 100
100 FindRequestManager::~FindRequestManager() {} 101 FindRequestManager::~FindRequestManager() {}
101 102
102 void FindRequestManager::Find(int request_id, 103 void FindRequestManager::Find(int request_id,
103 const base::string16& search_text, 104 const base::string16& search_text,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 active_frame_ = rfh; 178 active_frame_ = rfh;
178 relative_active_match_ordinal_ = active_match_ordinal; 179 relative_active_match_ordinal_ = active_match_ordinal;
179 UpdateActiveMatchOrdinal(); 180 UpdateActiveMatchOrdinal();
180 } 181 }
181 if (pending_active_match_ordinal_ && request_id == current_request_.id) 182 if (pending_active_match_ordinal_ && request_id == current_request_.id)
182 pending_active_match_ordinal_ = false; 183 pending_active_match_ordinal_ = false;
183 AdvanceQueue(request_id); 184 AdvanceQueue(request_id);
184 } 185 }
185 186
186 if (!final_update) { 187 if (!final_update) {
187 NotifyFindReply(request_id, false /* final_update */); 188 NotifyFindReply(request_id, false /* final_update */);
lfg 2016/08/18 18:50:42 I noticed we can send NotifyFindReply with an requ
paulmeyer 2016/08/29 22:27:41 That sounds reasonable. I don't think there are an
188 return; 189 return;
189 } 190 }
190 191
191 // This is the final update for this frame for the current find operation. 192 // This is the final update for this frame for the current find operation.
192 193
193 pending_replies_.erase(rfh); 194 pending_initial_replies_.erase(rfh);
194 if (request_id == current_session_id_ && !pending_replies_.empty()) { 195 if (request_id == current_session_id_ && !pending_initial_replies_.empty())
lfg 2016/08/18 18:50:42 Why did you remove the NotifyFindReply() from this
paulmeyer 2016/08/29 22:27:41 I can't remember why I did that. It may have been
195 NotifyFindReply(request_id, false /* final_update */);
196 return; 196 return;
197 }
198 DCHECK(request_id == current_session_id_ ||
199 current_request_.options.findNext);
200 197
201 // This is the final update for the current find operation. 198 // This is the final update for the current find operation.
202 FinalUpdate(request_id, rfh); 199
200 if (request_id == current_request_.id && request_id != current_session_id_) {
201 DCHECK(current_request_.options.findNext);
202 DCHECK(pending_find_next_reply_ == rfh);
lfg 2016/08/18 18:50:42 nit: DCHECK_EQ.
paulmeyer 2016/08/29 22:27:41 Done.
203 pending_find_next_reply_ = nullptr;
204 }
205
206 // The find results are normally reported under the ID of the find reply they
207 // came from (|request_id|), but if this really is the last update, then they
208 // need to be reported with the latest find request ID
209 // (|current_request_.id|), so that the receiver can know for sure that all
210 // issued find requests have completed.
lfg 2016/08/18 18:50:42 See my comment above, I don't think we should ever
paulmeyer 2016/08/29 22:27:41 Done.
211 int report_id = request_id;
212 if (pending_initial_replies_.empty() && !pending_find_next_reply_)
213 report_id = current_request_.id;
214 FinalUpdate(report_id, rfh);
203 } 215 }
204 216
205 void FindRequestManager::RemoveFrame(RenderFrameHost* rfh) { 217 void FindRequestManager::RemoveFrame(RenderFrameHost* rfh) {
206 if (current_session_id_ == kInvalidId || !CheckFrame(rfh)) 218 if (current_session_id_ == kInvalidId || !CheckFrame(rfh))
207 return; 219 return;
208 220
209 // If matches are counted for the frame that is being removed, decrement the 221 // If matches are counted for the frame that is being removed, decrement the
210 // match total before erasing that entry. 222 // match total before erasing that entry.
211 auto it = matches_per_frame_.find(rfh); 223 auto it = matches_per_frame_.find(rfh);
212 if (it != matches_per_frame_.end()) { 224 if (it != matches_per_frame_.end()) {
213 number_of_matches_ -= it->second; 225 number_of_matches_ -= it->second;
214 matches_per_frame_.erase(it); 226 matches_per_frame_.erase(it);
215 } 227 }
216 228
217 // Update the active match ordinal, since it may have changed. 229 // Update the active match ordinal, since it may have changed.
218 if (active_frame_ == rfh) { 230 if (active_frame_ == rfh) {
219 active_frame_ = nullptr; 231 active_frame_ = nullptr;
220 relative_active_match_ordinal_ = 0; 232 relative_active_match_ordinal_ = 0;
233 selection_rect_ = gfx::Rect();
221 } 234 }
222 UpdateActiveMatchOrdinal(); 235 UpdateActiveMatchOrdinal();
223 236
224 #if defined(OS_ANDROID) 237 #if defined(OS_ANDROID)
225 // The removed frame may contain the nearest find result known so far. Note 238 // The removed frame may contain the nearest find result known so far. Note
226 // that once all queried frames have responded, if this result was the overall 239 // that once all queried frames have responded, if this result was the overall
227 // nearest, then no activation will occur. 240 // nearest, then no activation will occur.
228 if (rfh == activate_.nearest_frame) 241 if (rfh == activate_.nearest_frame)
229 activate_.nearest_frame = nullptr; 242 activate_.nearest_frame = nullptr;
230 243
231 // Match rects in the removed frame are no longer relevant. 244 // Match rects in the removed frame are no longer relevant.
232 if (match_rects_.frame_rects.count(rfh)) { 245 if (match_rects_.frame_rects.count(rfh)) {
233 match_rects_.frame_rects.erase(rfh); 246 match_rects_.frame_rects.erase(rfh);
234 ++match_rects_.known_version; 247 ++match_rects_.known_version;
235 } 248 }
236 249
237 // A reply should not be expected from the removed frame. 250 // A reply should not be expected from the removed frame.
238 RemoveNearestFindResultPendingReply(rfh); 251 RemoveNearestFindResultPendingReply(rfh);
239 RemoveFindMatchRectsPendingReply(rfh); 252 RemoveFindMatchRectsPendingReply(rfh);
240 #endif 253 #endif
241 254
242 if (pending_replies_.count(rfh)) { 255 // If no pending find replies are expected for the removed frame, then just
256 // report the updated results.
257 if (!pending_initial_replies_.count(rfh) && pending_find_next_reply_ != rfh) {
258 bool final_update =
259 pending_initial_replies_.empty() && !pending_find_next_reply_;
260 NotifyFindReply(current_session_id_, final_update);
lfg 2016/08/18 18:50:42 I don't understand why we avoid calling FinalUpdat
paulmeyer 2016/08/29 22:27:41 See comment on FinalUpdate(). In this case, a fram
lfg 2016/08/30 14:57:38 Is it possible that the final update will be sent
paulmeyer 2016/08/30 15:40:12 Yes, that is possible, and intended. Once all fram
261 return;
262 }
263
264 if (pending_initial_replies_.count(rfh)) {
243 // A reply should not be expected from the removed frame. 265 // A reply should not be expected from the removed frame.
244 pending_replies_.erase(rfh); 266 pending_initial_replies_.erase(rfh);
245 if (pending_replies_.empty()) { 267 if (pending_initial_replies_.empty()) {
246 FinalUpdate(current_request_.id, rfh); 268 FinalUpdate(current_session_id_, rfh);
lfg 2016/08/18 18:50:42 Do we want to send a FinalUpdate if pending_find_n
paulmeyer 2016/08/29 22:27:41 See comment on FinalUpdate().
247 return;
248 } 269 }
249 } 270 }
250 271
251 NotifyFindReply(current_session_id_, 272 if (pending_find_next_reply_ == rfh) {
252 pending_replies_.empty() /* final_update */); 273 // A reply should not be expected from the removed frame.
274 pending_find_next_reply_ = nullptr;
275 FinalUpdate(current_request_.id, rfh);
lfg 2016/08/18 18:50:42 Same as above, do we want to send a FinalUpdate if
paulmeyer 2016/08/29 22:27:41 See comment on FinalUpdate().
276 }
253 } 277 }
254 278
255 #if defined(OS_ANDROID) 279 #if defined(OS_ANDROID)
256 void FindRequestManager::ActivateNearestFindResult(float x, float y) { 280 void FindRequestManager::ActivateNearestFindResult(float x, float y) {
257 if (current_session_id_ == kInvalidId) 281 if (current_session_id_ == kInvalidId)
258 return; 282 return;
259 283
260 activate_ = ActivateNearestFindResultState(x, y); 284 activate_ = ActivateNearestFindResultState(x, y);
261 285
262 // Request from each frame the distance to the nearest find result (in that 286 // Request from each frame the distance to the nearest find result (in that
263 // frame) from the point (x, y), defined in find-in-page coordinates. 287 // frame) from the point (x, y), defined in find-in-page coordinates.
264 for (FrameTreeNode* node : contents_->GetFrameTree()->Nodes()) { 288 for (FrameTreeNode* node : contents_->GetFrameTree()->Nodes()) {
265 RenderFrameHost* rfh = node->current_frame_host(); 289 RenderFrameHost* rfh = node->current_frame_host();
266 290
267 if (!CheckFrame(rfh)) 291 if (!CheckFrame(rfh) || !rfh->IsRenderFrameLive())
268 continue; 292 continue;
269 293
270 activate_.pending_replies.insert(rfh); 294 activate_.pending_replies.insert(rfh);
271 rfh->Send(new FrameMsg_GetNearestFindResult( 295 rfh->Send(new FrameMsg_GetNearestFindResult(
272 rfh->GetRoutingID(), activate_.current_request_id, 296 rfh->GetRoutingID(), activate_.current_request_id,
273 activate_.x, activate_.y)); 297 activate_.x, activate_.y));
274 } 298 }
275 } 299 }
276 300
277 void FindRequestManager::OnGetNearestFindResultReply(RenderFrameHost* rfh, 301 void FindRequestManager::OnGetNearestFindResultReply(RenderFrameHost* rfh,
(...skipping 14 matching lines...) Expand all
292 } 316 }
293 317
294 void FindRequestManager::RequestFindMatchRects(int current_version) { 318 void FindRequestManager::RequestFindMatchRects(int current_version) {
295 match_rects_.pending_replies.clear(); 319 match_rects_.pending_replies.clear();
296 match_rects_.request_version = current_version; 320 match_rects_.request_version = current_version;
297 321
298 // Request the latest find match rects from each frame. 322 // Request the latest find match rects from each frame.
299 for (FrameTreeNode* node : contents_->GetFrameTree()->Nodes()) { 323 for (FrameTreeNode* node : contents_->GetFrameTree()->Nodes()) {
300 RenderFrameHost* rfh = node->current_frame_host(); 324 RenderFrameHost* rfh = node->current_frame_host();
301 325
302 if (!CheckFrame(rfh)) 326 if (!CheckFrame(rfh) || !rfh->IsRenderFrameLive())
303 continue; 327 continue;
304 328
305 match_rects_.pending_replies.insert(rfh); 329 match_rects_.pending_replies.insert(rfh);
306 auto it = match_rects_.frame_rects.find(rfh); 330 auto it = match_rects_.frame_rects.find(rfh);
307 int version = (it != match_rects_.frame_rects.end()) 331 int version = (it != match_rects_.frame_rects.end())
308 ? it->second.version : kInvalidId; 332 ? it->second.version : kInvalidId;
309 rfh->Send(new FrameMsg_FindMatchRects(rfh->GetRoutingID(), version)); 333 rfh->Send(new FrameMsg_FindMatchRects(rfh->GetRoutingID(), version));
310 } 334 }
311 } 335 }
312 336
(...skipping 23 matching lines...) Expand all
336 RemoveFrame(old_host); 360 RemoveFrame(old_host);
337 } 361 }
338 362
339 void FindRequestManager::FrameDeleted(RenderFrameHost* rfh) { 363 void FindRequestManager::FrameDeleted(RenderFrameHost* rfh) {
340 RemoveFrame(rfh); 364 RemoveFrame(rfh);
341 } 365 }
342 366
343 void FindRequestManager::Reset(const FindRequest& initial_request) { 367 void FindRequestManager::Reset(const FindRequest& initial_request) {
344 current_session_id_ = initial_request.id; 368 current_session_id_ = initial_request.id;
345 current_request_ = initial_request; 369 current_request_ = initial_request;
346 pending_replies_.clear(); 370 pending_initial_replies_.clear();
371 pending_find_next_reply_ = nullptr;
347 pending_active_match_ordinal_ = true; 372 pending_active_match_ordinal_ = true;
348 matches_per_frame_.clear(); 373 matches_per_frame_.clear();
349 number_of_matches_ = 0; 374 number_of_matches_ = 0;
350 active_frame_ = nullptr; 375 active_frame_ = nullptr;
351 relative_active_match_ordinal_ = 0; 376 relative_active_match_ordinal_ = 0;
352 active_match_ordinal_ = 0; 377 active_match_ordinal_ = 0;
353 selection_rect_ = gfx::Rect(); 378 selection_rect_ = gfx::Rect();
354 #if defined(OS_ANDROID) 379 #if defined(OS_ANDROID)
355 activate_ = ActivateNearestFindResultState(); 380 activate_ = ActivateNearestFindResultState();
356 match_rects_.pending_replies.clear(); 381 match_rects_.pending_replies.clear();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 return; 418 return;
394 } 419 }
395 420
396 find_request_queue_.pop(); 421 find_request_queue_.pop();
397 if (!find_request_queue_.empty()) 422 if (!find_request_queue_.empty())
398 FindInternal(find_request_queue_.front()); 423 FindInternal(find_request_queue_.front());
399 } 424 }
400 425
401 void FindRequestManager::SendFindIPC(const FindRequest& request, 426 void FindRequestManager::SendFindIPC(const FindRequest& request,
402 RenderFrameHost* rfh) { 427 RenderFrameHost* rfh) {
403 pending_replies_.insert(rfh); 428 DCHECK(CheckFrame(rfh));
429 DCHECK(rfh->IsRenderFrameLive());
430
431 if (request.options.findNext)
432 pending_find_next_reply_ = rfh;
433 else
434 pending_initial_replies_.insert(rfh);
435
404 rfh->Send(new FrameMsg_Find(rfh->GetRoutingID(), request.id, 436 rfh->Send(new FrameMsg_Find(rfh->GetRoutingID(), request.id,
405 request.search_text, request.options)); 437 request.search_text, request.options));
406 } 438 }
407 439
408 void FindRequestManager::NotifyFindReply(int request_id, 440 void FindRequestManager::NotifyFindReply(int request_id,
409 bool final_update) const { 441 bool final_update) const {
410 if (request_id == kInvalidId) { 442 if (request_id == kInvalidId) {
411 NOTREACHED(); 443 NOTREACHED();
412 return; 444 return;
413 } 445 }
(...skipping 16 matching lines...) Expand all
430 bool matches_only, 462 bool matches_only,
431 bool wrap) const { 463 bool wrap) const {
432 FrameTreeNode* node = 464 FrameTreeNode* node =
433 static_cast<RenderFrameHostImpl*>(from_rfh)->frame_tree_node(); 465 static_cast<RenderFrameHostImpl*>(from_rfh)->frame_tree_node();
434 466
435 while ((node = TraverseNode(node, forward, wrap)) != nullptr) { 467 while ((node = TraverseNode(node, forward, wrap)) != nullptr) {
436 if (!CheckFrame(node->current_frame_host())) 468 if (!CheckFrame(node->current_frame_host()))
437 continue; 469 continue;
438 RenderFrameHost* current_rfh = node->current_frame_host(); 470 RenderFrameHost* current_rfh = node->current_frame_host();
439 if (!matches_only || matches_per_frame_.find(current_rfh)->second || 471 if (!matches_only || matches_per_frame_.find(current_rfh)->second ||
440 pending_replies_.count(current_rfh)) { 472 pending_initial_replies_.count(current_rfh)) {
441 // Note that if there is still a pending reply expected for this frame, 473 // Note that if there is still a pending reply expected for this frame,
442 // then it may have unaccounted matches and will not be skipped via 474 // then it may have unaccounted matches and will not be skipped via
443 // |matches_only|. 475 // |matches_only|.
444 return node->current_frame_host(); 476 return node->current_frame_host();
445 } 477 }
446 if (wrap && node->current_frame_host() == from_rfh) 478 if (wrap && node->current_frame_host() == from_rfh)
447 return nullptr; 479 return nullptr;
448 } 480 }
449 481
450 return nullptr; 482 return nullptr;
451 } 483 }
452 484
453 void FindRequestManager::AddFrame(RenderFrameHost* rfh) { 485 void FindRequestManager::AddFrame(RenderFrameHost* rfh) {
454 if (!rfh || !rfh->IsRenderFrameLive()) 486 if (!rfh || !rfh->IsRenderFrameLive())
455 return; 487 return;
456 488
457 // A frame that is already being searched should not be added again. 489 // A frame that is already being searched should not be added again.
458 DCHECK(!CheckFrame(rfh)); 490 DCHECK(!CheckFrame(rfh));
459 491
460 matches_per_frame_[rfh] = 0; 492 matches_per_frame_[rfh] = 0;
461 493
462 FindRequest request = current_request_; 494 FindRequest request = current_request_;
463 request.id = current_session_id_; 495 request.id = current_session_id_;
464 request.options.findNext = false; 496 request.options.findNext = false;
465 SendFindIPC(request, rfh); 497 SendFindIPC(request, rfh);
466 } 498 }
467 499
468 bool FindRequestManager::CheckFrame(RenderFrameHost* rfh) const { 500 bool FindRequestManager::CheckFrame(RenderFrameHost* rfh) const {
469 return rfh && rfh->IsRenderFrameLive() && matches_per_frame_.count(rfh); 501 return rfh && matches_per_frame_.count(rfh);
lfg 2016/08/18 18:50:42 I don't understand the reason for this change.
paulmeyer 2016/08/29 22:27:41 I discovered that I don't actually want to check I
lfg 2016/08/30 14:57:38 Can you add add a comment in the places that this
paulmeyer 2016/08/30 15:40:12 I don't think that is necessary. If you look at th
lfg 2016/08/30 15:43:23 Acknowledged.
470 } 502 }
471 503
472 void FindRequestManager::UpdateActiveMatchOrdinal() { 504 void FindRequestManager::UpdateActiveMatchOrdinal() {
473 active_match_ordinal_ = 0; 505 active_match_ordinal_ = 0;
474 506
475 if (!active_frame_ || !relative_active_match_ordinal_) { 507 if (!active_frame_ || !relative_active_match_ordinal_) {
476 DCHECK(!active_frame_ && !relative_active_match_ordinal_); 508 DCHECK(!active_frame_ && !relative_active_match_ordinal_);
477 return; 509 return;
478 } 510 }
479 511
480 // Traverse the frame tree backwards (in search order) and count all of the 512 // Traverse the frame tree backwards (in search order) and count all of the
481 // matches in frames before the frame with the active match, in order to 513 // matches in frames before the frame with the active match, in order to
482 // determine the overall active match ordinal. 514 // determine the overall active match ordinal.
483 RenderFrameHost* frame = active_frame_; 515 RenderFrameHost* frame = active_frame_;
484 while ((frame = Traverse(frame, 516 while ((frame = Traverse(frame,
485 false /* forward */, 517 false /* forward */,
486 true /* matches_only */, 518 true /* matches_only */,
487 false /* wrap */)) != nullptr) { 519 false /* wrap */)) != nullptr) {
488 active_match_ordinal_ += matches_per_frame_[frame]; 520 active_match_ordinal_ += matches_per_frame_[frame];
489 } 521 }
490 active_match_ordinal_ += relative_active_match_ordinal_; 522 active_match_ordinal_ += relative_active_match_ordinal_;
491 } 523 }
492 524
493 void FindRequestManager::FinalUpdate(int request_id, RenderFrameHost* rfh) { 525 void FindRequestManager::FinalUpdate(int request_id, RenderFrameHost* rfh) {
494 if (!number_of_matches_ || 526 if (!number_of_matches_ ||
495 !pending_active_match_ordinal_ || 527 (active_match_ordinal_ && !pending_active_match_ordinal_) ||
496 request_id != current_request_.id) { 528 request_id != current_request_.id) {
497 NotifyFindReply(request_id, true /* final_update */); 529 // All the find results for |request_id| are in and ready to report. Note
530 // that |final_update| will be set to false if there are still pending
531 // replies expected from the initial find request.
532 NotifyFindReply(request_id,
533 pending_initial_replies_.empty() /* final_update */);
lfg 2016/08/18 18:50:42 The fact that FinalUpdate() doesn't always send a
paulmeyer 2016/08/29 22:27:41 FinalUpdate() is called once all the replies have
lfg 2016/08/30 14:57:38 Can you update the comment on the header to reflec
paulmeyer 2016/08/30 15:40:12 Done. I also renamed FinalUpdate() to FinalUpdateR
498 AdvanceQueue(request_id); 534 AdvanceQueue(request_id);
499 return; 535 return;
500 } 536 }
501 537
502 // There are matches, but no active match was returned, so another find next 538 // There are matches, but no active match was returned, so another find next
503 // request must be sent. 539 // request must be sent.
504 540
505 RenderFrameHost* target_rfh; 541 RenderFrameHost* target_rfh;
506 if (current_request_.options.findNext) { 542 if (current_request_.options.findNext) {
507 // If this was a find next operation, then the active match will be in the 543 // If this was a find next operation, then the active match will be in the
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 aggregate_rects.end(), frame_rects.begin(), frame_rects.end()); 616 aggregate_rects.end(), frame_rects.begin(), frame_rects.end());
581 } 617 }
582 } 618 }
583 contents_->NotifyFindMatchRectsReply( 619 contents_->NotifyFindMatchRectsReply(
584 match_rects_.known_version, aggregate_rects, match_rects_.active_rect); 620 match_rects_.known_version, aggregate_rects, match_rects_.active_rect);
585 } 621 }
586 } 622 }
587 #endif 623 #endif
588 624
589 } // namespace content 625 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/find_request_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698