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

Issue 2186113002: Fix find-in-page re-scope across frame boundaries. (Closed)

Created:
4 years, 4 months ago by paulmeyer
Modified:
4 years, 3 months ago
Reviewers:
esprehn
CC:
blink-reviews, blink-reviews-api_chromium.org, chromium-reviews, creis+watch_chromium.org, darin-cc_chromium.org, dglazkov+blink, jam, kinuko+watch, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, site-isolation-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix find-in-page re-scope across frame boundaries. There is a bug that can cause a frame to be re-scoped (all matches searched again) when issuing a find next request across a frame boundary, such as from the last match in a frame, which might need to wrap back around to the first match in the same frame. If there are not many matches in that frame, this is not really noticeable except for the ticks in the tickbar sometimes disappearing for a single frame. However, on a page with a huge number of results, this can dramatically slow down the find request and you can clearly see all of the ticks in the tickbar regenerate. This patch adjusts the conditions under which a frame is determined to need scoping in WebLocalFrameImpl::requestFind(), in order to not re-scope across frame boundaries but continue to scope in all the cases where it IS needed. BUG=618937, 627799 Committed: https://crrev.com/b6f12c557fb9b1468ba6f6da5f55cc7cefc045b0 Cr-Commit-Position: refs/heads/master@{#412025}

Patch Set 1 #

Total comments: 1

Patch Set 2 : Rebase after refactor. #

Total comments: 1

Patch Set 3 : Added test. Using |activeNow| a bit differently now. #

Patch Set 4 : Rebased #

Patch Set 5 : Fix in test. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+2091 lines, -10 lines) Patch
M content/browser/find_request_manager_browsertest.cc View 1 2 3 4 7 chunks +69 lines, -4 lines 0 comments Download
A content/test/data/find_in_long_page.html View 1 2 1 chunk +2011 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/web/WebLocalFrameImpl.cpp View 1 2 3 4 2 chunks +11 lines, -6 lines 0 comments Download

Messages

Total messages: 49 (34 generated)
paulmeyer
4 years, 4 months ago (2016-07-27 18:49:22 UTC) #3
dcheng
https://codereview.chromium.org/2186113002/diff/1/content/renderer/render_frame_impl.cc File content/renderer/render_frame_impl.cc (right): https://codereview.chromium.org/2186113002/diff/1/content/renderer/render_frame_impl.cc#newcode5245 content/renderer/render_frame_impl.cc:5245: !frame_->scopingInProgress()) { Is this an urgent fix? I think ...
4 years, 4 months ago (2016-07-28 02:11:45 UTC) #4
paulmeyer
On 2016/07/28 02:11:45, dcheng (OOO Aug 1 - Aug 11) wrote: > https://codereview.chromium.org/2186113002/diff/1/content/renderer/render_frame_impl.cc > File ...
4 years, 4 months ago (2016-08-03 14:27:45 UTC) #5
paulmeyer
-dcheng@ (vacation) +esprehn@
4 years, 4 months ago (2016-08-08 13:52:38 UTC) #11
esprehn
What is "scoping" ? I worry a lot we're doubling down on a lot of ...
4 years, 4 months ago (2016-08-10 04:16:45 UTC) #15
paulmeyer
On 2016/08/10 04:16:45, esprehn wrote: > What is "scoping" ? I worry a lot we're ...
4 years, 4 months ago (2016-08-10 14:22:19 UTC) #16
esprehn
What about tests? I guess lgtm, but without some tests we're just going to keep ...
4 years, 4 months ago (2016-08-11 09:38:29 UTC) #17
esprehn
https://codereview.chromium.org/2186113002/diff/20001/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp File third_party/WebKit/Source/web/WebLocalFrameImpl.cpp (right): https://codereview.chromium.org/2186113002/diff/20001/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp#newcode1996 third_party/WebKit/Source/web/WebLocalFrameImpl.cpp:1996: if (options.findNext && currentSelection.isNull() && !textFinder()->scopingInProgress()) { Actually this ...
4 years, 4 months ago (2016-08-11 09:40:01 UTC) #18
paulmeyer
On 2016/08/11 09:40:01, esprehn wrote: > https://codereview.chromium.org/2186113002/diff/20001/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp > File third_party/WebKit/Source/web/WebLocalFrameImpl.cpp (right): > > https://codereview.chromium.org/2186113002/diff/20001/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp#newcode1996 > ...
4 years, 4 months ago (2016-08-12 18:30:30 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2186113002/120001
4 years, 4 months ago (2016-08-15 19:57:00 UTC) #41
commit-bot: I haz the power
Committed patchset #4 (id:120001)
4 years, 4 months ago (2016-08-15 20:01:08 UTC) #43
commit-bot: I haz the power
Patchset 4 (id:??) landed as https://crrev.com/b6f12c557fb9b1468ba6f6da5f55cc7cefc045b0 Cr-Commit-Position: refs/heads/master@{#412025}
4 years, 4 months ago (2016-08-15 20:04:47 UTC) #45
paulmeyer
On 2016/08/12 18:30:30, paulmeyer wrote: > On 2016/08/11 09:40:01, esprehn wrote: > > > https://codereview.chromium.org/2186113002/diff/20001/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp ...
4 years, 4 months ago (2016-08-15 20:39:16 UTC) #46
Bret
A revert of this CL (patchset #4 id:120001) has been created in https://codereview.chromium.org/2241183003/ by bsep@chromium.org. ...
4 years, 4 months ago (2016-08-15 22:13:45 UTC) #47
Bret
4 years, 4 months ago (2016-08-15 22:16:30 UTC) #48
Message was sent while issue was closed.
On 2016/08/15 22:13:45, Bret Sepulveda wrote:
> A revert of this CL (patchset #4 id:120001) has been created in
> https://codereview.chromium.org/2241183003/ by mailto:bsep@chromium.org.
> 
> The reason for reverting is: Multiple bots are timing out on
> FindRequestManagerTest.RemoveFrame/1 since this patch landed. No one else has
> touched FindRequestManagerTests recently..

Example failure:
https://build.chromium.org/p/chromium.linux/builders/Linux%20Tests%20%28dbg%2...

content_browsertests is failing, reporting
FindRequestManagerTests/FindRequestManagerTest.RemoveFrame/1 as timed out

Powered by Google App Engine
This is Rietveld 408576698