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

Side by Side Diff: chrome/renderer/render_view.cc

Issue 335012: Update the find result index "(m of n)" whenever there is an active selection... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: simplify test Created 11 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #if defined(ENABLE_PEPPER) 5 #if defined(ENABLE_PEPPER)
6 #define PEPPER_APIS_ENABLED 6 #define PEPPER_APIS_ENABLED
7 #endif 7 #endif
8 8
9 #include "chrome/renderer/render_view.h" 9 #include "chrome/renderer/render_view.h"
10 10
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 #include "webkit/api/public/WebAccessibilityCache.h" 67 #include "webkit/api/public/WebAccessibilityCache.h"
68 #include "webkit/api/public/WebAccessibilityObject.h" 68 #include "webkit/api/public/WebAccessibilityObject.h"
69 #include "webkit/api/public/WebDataSource.h" 69 #include "webkit/api/public/WebDataSource.h"
70 #include "webkit/api/public/WebDevToolsAgent.h" 70 #include "webkit/api/public/WebDevToolsAgent.h"
71 #include "webkit/api/public/WebDragData.h" 71 #include "webkit/api/public/WebDragData.h"
72 #include "webkit/api/public/WebForm.h" 72 #include "webkit/api/public/WebForm.h"
73 #include "webkit/api/public/WebFrame.h" 73 #include "webkit/api/public/WebFrame.h"
74 #include "webkit/api/public/WebHistoryItem.h" 74 #include "webkit/api/public/WebHistoryItem.h"
75 #include "webkit/api/public/WebNode.h" 75 #include "webkit/api/public/WebNode.h"
76 #include "webkit/api/public/WebPoint.h" 76 #include "webkit/api/public/WebPoint.h"
77 #include "webkit/api/public/WebRange.h"
77 #include "webkit/api/public/WebRect.h" 78 #include "webkit/api/public/WebRect.h"
78 #include "webkit/api/public/WebScriptSource.h" 79 #include "webkit/api/public/WebScriptSource.h"
79 #include "webkit/api/public/WebSearchableFormData.h" 80 #include "webkit/api/public/WebSearchableFormData.h"
80 #include "webkit/api/public/WebSecurityOrigin.h" 81 #include "webkit/api/public/WebSecurityOrigin.h"
81 #include "webkit/api/public/WebSize.h" 82 #include "webkit/api/public/WebSize.h"
82 #include "webkit/api/public/WebString.h" 83 #include "webkit/api/public/WebString.h"
83 #include "webkit/api/public/WebURL.h" 84 #include "webkit/api/public/WebURL.h"
84 #include "webkit/api/public/WebURLError.h" 85 #include "webkit/api/public/WebURLError.h"
85 #include "webkit/api/public/WebURLRequest.h" 86 #include "webkit/api/public/WebURLRequest.h"
86 #include "webkit/api/public/WebURLResponse.h" 87 #include "webkit/api/public/WebURLResponse.h"
(...skipping 2686 matching lines...) Expand 10 before | Expand all | Expand 10 after
2773 2774
2774 bool multi_frame = (frame_after_main != main_frame); 2775 bool multi_frame = (frame_after_main != main_frame);
2775 2776
2776 // If we have multiple frames, we don't want to wrap the search within the 2777 // If we have multiple frames, we don't want to wrap the search within the
2777 // frame, so we check here if we only have main_frame in the chain. 2778 // frame, so we check here if we only have main_frame in the chain.
2778 bool wrap_within_frame = !multi_frame; 2779 bool wrap_within_frame = !multi_frame;
2779 2780
2780 WebRect selection_rect; 2781 WebRect selection_rect;
2781 bool result = false; 2782 bool result = false;
2782 2783
2784 // If something is selected when we start searching it means we cannot just
2785 // increment the current match ordinal; we need to re-generate it.
2786 WebRange current_selection = focused_frame->selectionRange();
2787
2783 do { 2788 do {
2784 result = search_frame->find( 2789 result = search_frame->find(
2785 request_id, search_text, options, wrap_within_frame, &selection_rect); 2790 request_id, search_text, options, wrap_within_frame, &selection_rect);
2786 2791
2787 if (!result) { 2792 if (!result) {
2788 // don't leave text selected as you move to the next frame. 2793 // don't leave text selected as you move to the next frame.
2789 search_frame->executeCommand(WebString::fromUTF8("Unselect")); 2794 search_frame->executeCommand(WebString::fromUTF8("Unselect"));
2790 2795
2791 // Find the next frame, but skip the invisible ones. 2796 // Find the next frame, but skip the invisible ones.
2792 do { 2797 do {
(...skipping 16 matching lines...) Expand all
2809 if (multi_frame && search_frame == focused_frame) { 2814 if (multi_frame && search_frame == focused_frame) {
2810 result = search_frame->find( 2815 result = search_frame->find(
2811 request_id, search_text, options, true, // Force wrapping. 2816 request_id, search_text, options, true, // Force wrapping.
2812 &selection_rect); 2817 &selection_rect);
2813 } 2818 }
2814 } 2819 }
2815 2820
2816 webview()->setFocusedFrame(search_frame); 2821 webview()->setFocusedFrame(search_frame);
2817 } while (!result && search_frame != focused_frame); 2822 } while (!result && search_frame != focused_frame);
2818 2823
2819 if (options.findNext) { 2824 if (options.findNext && current_selection.isNull()) {
2820 // Force the main_frame to report the actual count. 2825 // Force the main_frame to report the actual count.
2821 main_frame->increaseMatchCount(0, request_id); 2826 main_frame->increaseMatchCount(0, request_id);
2822 } else { 2827 } else {
2823 // If nothing is found, set result to "0 of 0", otherwise, set it to 2828 // If nothing is found, set result to "0 of 0", otherwise, set it to
2824 // "-1 of 1" to indicate that we found at least one item, but we don't know 2829 // "-1 of 1" to indicate that we found at least one item, but we don't know
2825 // yet what is active. 2830 // yet what is active.
2826 int ordinal = result ? -1 : 0; // -1 here means, we might know more later. 2831 int ordinal = result ? -1 : 0; // -1 here means, we might know more later.
2827 int match_count = result ? 1 : 0; // 1 here means possibly more coming. 2832 int match_count = result ? 1 : 0; // 1 here means possibly more coming.
2828 2833
2829 // If we find no matches then this will be our last status update. 2834 // If we find no matches then this will be our last status update.
(...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after
3763 new PluginMsg_SignalModalDialogEvent(host_window_)); 3768 new PluginMsg_SignalModalDialogEvent(host_window_));
3764 3769
3765 message->EnableMessagePumping(); // Runs a nested message loop. 3770 message->EnableMessagePumping(); // Runs a nested message loop.
3766 bool rv = Send(message); 3771 bool rv = Send(message);
3767 3772
3768 PluginChannelHost::Broadcast( 3773 PluginChannelHost::Broadcast(
3769 new PluginMsg_ResetModalDialogEvent(host_window_)); 3774 new PluginMsg_ResetModalDialogEvent(host_window_));
3770 3775
3771 return rv; 3776 return rv;
3772 } 3777 }
OLDNEW
« no previous file with comments | « chrome/browser/views/find_bar_host_browsertest.cc ('k') | chrome/test/data/find_in_page/select_changes_ordinal.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698