diff options
author | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-04 19:32:49 +0000 |
---|---|---|
committer | finnur@google.com <finnur@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-04 19:32:49 +0000 |
commit | aedd85af7d7d0c90ed343ece4c66660db00841ec (patch) | |
tree | 8ba798b3932fbf2c1b5db69f39175326fd8745ab /webkit/glue/webframe_impl.h | |
parent | d5a94281a8df5b47a341e2dd71b4d5f8dafd5878 (diff) | |
download | chromium_src-aedd85af7d7d0c90ed343ece4c66660db00841ec.zip chromium_src-aedd85af7d7d0c90ed343ece4c66660db00841ec.tar.gz chromium_src-aedd85af7d7d0c90ed343ece4c66660db00841ec.tar.bz2 |
Fix issue 5079: Incorrect "Active match ordinal" count during Find-in-page
I introduced a regression in my reimplemenation of Find-in-page. The active match ordinal in Find-in-page (also known as "the 7" in "7 of 9") would be just a little off on pages with frames.
Problem A: When you search for something in gmail, for example, the ordinal could start off slightly negative or be 0. I wasn't checking the last_match_count_ of a frame for negative numbers before adding it to the total (it starts off as -1 and remains that way if the frame is not deemed to be worthy of being scoped, i.e. if it is hidden).
Problem B: On pages with multiple matches spread across multiple frames the ordinal would not be subtracted correctly after pressing F3 and Shift-F3 to go back to the frame you were on. We shouldn't be increasing/decreasing the active_match_index for a given frame when FindNext/FindPrevious causes us to jump between frames. We should instead reset it.
I added two tests to catch this in the future. They test ordinal values as you use Find in page (including combinations of frames/no-frames & FindNext/FindPrevious).
Oh, and I also removed some traces that were supposed to expose why a test was flaky, but it turns out to have been something unrelated to the test.
Review URL: http://codereview.chromium.org/13130
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6369 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webframe_impl.h')
-rw-r--r-- | webkit/glue/webframe_impl.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/webkit/glue/webframe_impl.h b/webkit/glue/webframe_impl.h index 635b396..44c3ed8 100644 --- a/webkit/glue/webframe_impl.h +++ b/webkit/glue/webframe_impl.h @@ -336,7 +336,7 @@ class WebFrameImpl : public WebFrame { RefPtr<WebCore::Range> active_match_; // The index of the active match. - size_t active_match_index_; + int active_match_index_; // This flag is used by the scoping effort to determine if we need to figure // out which rectangle is the active match. Once we find the active @@ -357,7 +357,7 @@ class WebFrameImpl : public WebFrame { // don't loose count between scoping efforts, and is also used (in conjunction // with last_search_string_ and scoping_complete_) to figure out if we need to // search the frame again. - size_t last_match_count_; + int last_match_count_; // This variable keeps a cumulative total of matches found so far for ALL the // frames on the page, and is only incremented by calling IncreaseMatchCount @@ -375,7 +375,7 @@ class WebFrameImpl : public WebFrame { // Keeps track of when the scoping effort should next invalidate the scrollbar // and the frame area. - size_t next_invalidate_after_; + int next_invalidate_after_; private: // A bit mask specifying area of the frame to invalidate. |