This histogram isn't needed anymore now that we have shipped
auto-expanding details and hidden=until-found. This effectively reverts
crrev.com/924007
Fixed: 333390100
Bug: 40197893
Change-Id: I9f5c2773d9440676ce13e085114b59d1522d854a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5519293
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1297260}
The canonical bug format is TODO(crbug.com/<id>). TODOs of the
following forms will all be migrated to the new format:
- TODO(crbug.com/<old id>)
- TODO(https://crbug.com/<old id>)
- TODO(crbug/<old id>)
- TODO(crbug/monorail/<old id>)
- TODO(<old id>)
- TODO(issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/u/1/issues/<old id>)
- TODO(bugs.chromium.org/<old id>)
Bug id mapping is sourced from go/chrome-on-buganizer-prod-issues.
See go/crbug-todo-migration for details.
#crbug-todo-migration
Bug: b/321899722
Change-Id: Ibc66b8c440e4bcdef414e77fef4d9874d2ea9951
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5493800
Auto-Submit: Alison Gale <agale@chromium.org>
Commit-Queue: Alison Gale <agale@chromium.org>
Reviewed-by: Peter Boström <pbos@chromium.org>
Owners-Override: Alison Gale <agale@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1293330}
This rewrites the following containers:
std::list, std::unordered_set, base::flat_set, std::stack, std::queue.
This patch was generated by running
./tools/clang/rewrite_templated_container_fields/rewrite-multiple-platforms.sh
Binary size increase:
The increase is only (~9.5kB) above the per-patch limit (+16kB). This
is not a lot given the size of the rewrite. Increase of around 500kb was
approved for MiraclePtr.
AX-Relnotes: n/a.
Binary-Size: See commit description.
Bug: 325302189
Change-Id: I969ae345ef6d6117d5c1773773be913197ca2e73
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5306923
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Ali Hijazi <ahijazi@chromium.org>
Owners-Override: Arthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1265100}
Using base::FunctionRef as the callable param for a visitor function
can significantly reduce the boilerplate required to use the visitor
function. It also avoids the heap allocation required to support
base::RepeatingCallback's strong ownership semantics.
The most common transformation in this CL is converting something
like:
rfh->ForEachRenderFrameHost(base::BindRepeating(
&MyClass::HandleRFH, base::Unretained(this)));
to simply using a lambda that captures `this`:
rfh->ForEachRenderFrameHost([this] (content::RenderFrameHost* rfh) {
HandleRFH(rfh);
});
An astute reader will note that the latter is one line longer; however,
many of these callbacks currently bind other arguments as additional
input parameters or as out parameters. Using lambda captures
significantly reduces the boilerplate, improving readability, and makes
it much easier to avoid unnecessary copies.
Bug: 1303103
Change-Id: I3aeb74a0988dbddb645faef2239e9541c9adac52
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3767487
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Owners-Override: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1039508}
This CL is a no-op.
Only fixing instances where base::Time (and Ticks/Delta) is used in
a statement (i.e. not as a parameter to avoid adding includes in mere
overrides). Skipping pointer and reference qualified instances.
i.e. matches this regex:
'(\n *[^/\n][^/\n][^/\n]*base::(Time|Thread)(Ticks|Delta)?\b[^*&][^)]*;)'
and skipping files that have any existing fwd-decl for any of the
variants.
This is a prereq to remove unused base/task/post_task.h includes in
https://chromium-review.googlesource.com/c/chromium/src/+/3555247
Bug: 1026641
Change-Id: I87b43a8dc92bdceb67f4bd59b327b54813aa72a6
AX-Relnotes: n/a.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3557354
Commit-Queue: Gabriel Charette <gab@chromium.org>
Auto-Submit: Gabriel Charette <gab@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#987283}
This fixes a regression caused by http://crrev.com/956680 where clearing
the find-in-page text box causes a find-in-page to occur with the last
text which was in the box. For example, typing "a" into the text field
and then pressing backspace quickly before the find-in-page request
occurs will make the page get searched for "a" and highlight results
after the find-in-page text field is empty.
This happens because FindRequestManager::Find is not called when the
search is cleared, but FindRequestManager::StopFinding is called
instead, and StopFinding wasn't accounting for the pre-existing delayed
find-in-page query.
This patch fixes it by clearing the delayed find-in-page query when
StopFinding is called.
Fixed: 1286068
Change-Id: I1b9b9e8f58d9a48b24f0ec49e42c1ce8f9b8938c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3544186
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: Vladimir Levin <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#986254}
This is a reland of 2b80df4d74
The original CL called a private method in the test via friend class.
But, it could cause undefined symbol build error due to the visibility.
To fix it, we need to use CONTENT_EXPORT keyword for the private method
in order to export the symbol of the method to the test class.
Original change's description:
> MPArch: Fenced frame does not clear the find request queue in FindRequestManager::RemoveFrame
>
> FindRequestManager::RemoveFrame method has cleared its own find request
> queue when a given render frame host is a mainframe. This CL makes
> the method only clear the queue on a pimary main frame. Besides
> this CL adds a test case to verify it.
>
> Bug: 1264776
> Change-Id: Iddaaa1eec0d0d332efc54b1a06c9b5e8d936fff2
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3255123
> Reviewed-by: Dominic Farolino <dom@chromium.org>
> Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
> Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
> Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
> Cr-Commit-Position: refs/heads/main@{#942951}
Bug: 1264776
Change-Id: I2725610adcd679b45de3a885680124cd214852c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3288660
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/main@{#943437}
FindRequestManager::RemoveFrame method has cleared its own find request
queue when a given render frame host is a mainframe. This CL makes
the method only clear the queue on a pimary main frame. Besides
this CL adds a test case to verify it.
Bug: 1264776
Change-Id: Iddaaa1eec0d0d332efc54b1a06c9b5e8d936fff2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3255123
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/main@{#942951}
This CL observes RenderFrameHostStateChanged instead of
RenderFrameHostChanged and adds the IsActive check so that
we would only run find-in-page on active pages, and also this
adds some checks and tests to ensure that this is true.
Bug: 1245613
Change-Id: I84b5d9dd057a343dea2e8377ac345533ce892e88
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3135523
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#933813}
This replaces DISALLOW_COPY_AND_ASSIGN with explicit constructor deletes
where a local script is able to detect its insertion place (~Foo() is
public => insert before this line).
This is incomplete as not all classes have a public ~Foo() declared, so
not all DISALLOW_COPY_AND_ASSIGN occurrences are replaced.
IWYU cleanup is left as a separate pass that is easier when these macros
go away.
Bug: 1010217
Change-Id: Iea478401b7580682c7b9f195f7af9cbbdb6ce315
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3167292
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923194}
This is a reland of 219c8e40b4
Original change's description:
> Remove superfluous includes from navigation_controller.h
>
> NavigationHandle and SharedUrlLoaderFactory add lots of unnecessary
> indirect includes to navigation_controller.h. Remove them and fix
> broken files that relied on these includes.
>
> Bug: 242216
> Change-Id: I4a9e95915187849eed45f55518cea539f186ee4c
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2999323
> Commit-Queue: Christian Dullweber <dullweber@chromium.org>
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Owners-Override: Jochen Eisinger <jochen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#897779}
Bug: 242216
Change-Id: I26c846f072962b7691fea7667a56a983e846ce5c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3002065
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Owners-Override: Bret Sepulveda <bsep@chromium.org>
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#898136}
NavigationHandle and SharedUrlLoaderFactory add lots of unnecessary
indirect includes to navigation_controller.h. Remove them and fix
broken files that relied on these includes.
Bug: 242216
Change-Id: I4a9e95915187849eed45f55518cea539f186ee4c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2999323
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Owners-Override: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#897779}
The API WebContentsImpl::GetInnerWebContents() returns two types of
WebContentses: the first type which are attached using
AttachToOuterContentsFrame, and legacy type which are based on
BrowserPlugin.
Similarly, WebContentsImpl::GetOuterWebContents() has a different
behavior depending on the type of the GuestView. Specifcally, if the
WebContents is for a BrowserPlugin-based GuestView, then
GetOuterWebContents() will return nullptr until BrowserPluginGuest is
attached. This means GetInnerWebContents() might return WebContentsImpls
whose BrowserPluginGuest is not still attached which is incorrect.
This issue seems to have caused a bug in find-in-page where there is a
MimeHandlerViewGuest in the page.
Bug: 897465
Change-Id: I1fc9b209cf5d1835e2aee311e36da15526c249c4
Reviewed-on: https://chromium-review.googlesource.com/c/1323904
Reviewed-by: Lucas Gadani <lfg@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Commit-Queue: Ehsan Karamad <ekaramad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610735}
This reverts commit fc0e1eac05 and
adds a new function FindRequestManager::ShouldIgnoreReply.
Previously the original CL wrongly removed a check to ignore stale
Find replies (first part of FindRequestManager::OnFindReply). This
makes some tests like FindInPageTest.CtrlEnter and
SavePageOriginalVsSavedComparisonTest to become flaky. They fail
when the stale replies arrives when the test hasn't ended yet.
I returned the check in the form of a new function,
FindRequestManager::ShouldIgnoreReply which is called by
FindInPageClient::SetNumberOfMatches and
FindInPageClient::SetActiveMatch. I've confirmed locally that
the tests aren't flaky anymore by running them 50+ times.
TBR=dcheng@chromium.org,yosin@chromium.org
Bug: 819919
Change-Id: I4482a5961854ce7b3477623f204fa93c0bd79a0c
Reviewed-on: https://chromium-review.googlesource.com/1174207
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583489}
This reverts commit fef811c512.
Reason for revert: SaveType/SavePageOriginalVsSavedComparisonTest.Style becomes flaky and findit suggested this is the culprit.
Let me revert this speculatively and see if it'll be fixed.
Original change's description:
> Mojoify FindInPage::Find
>
> We are mojoifying browser<->renderer communication of Find-in-page.
> In this CL, we are converting the Find function to mojo. Find replies
> are now separated into two functions, one to update the number of
> found matches (SetNumberOfMatches) and the other is to update which
> match is active right now (SetActiveMatch).
>
> This is the final function to be mojoified for FindInPage.
> Mojoifying doc: https://goo.gl/JenyGm
>
> Bug: 819919
> Change-Id: I990160f973b29d7620214d7d58a16ece033adf3f
> Reviewed-on: https://chromium-review.googlesource.com/1086950
> Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
> Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#582841}
TBR=dcheng@chromium.org,yosin@chromium.org,alexmos@chromium.org,rakina@chromium.org
Change-Id: I0c48b0aed588049147f8cc49addaf1686fa67621
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 819919, 873965
Reviewed-on: https://chromium-review.googlesource.com/1173892
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Commit-Queue: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582862}
We are mojoifying browser<->renderer communication of Find-in-page.
In this CL, we are converting the Find function to mojo. Find replies
are now separated into two functions, one to update the number of
found matches (SetNumberOfMatches) and the other is to update which
match is active right now (SetActiveMatch).
This is the final function to be mojoified for FindInPage.
Mojoifying doc: https://goo.gl/JenyGm
Bug: 819919
Change-Id: I990160f973b29d7620214d7d58a16ece033adf3f
Reviewed-on: https://chromium-review.googlesource.com/1086950
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582841}
FindInPageClient is a per-frame client for FindInPage.
FindRequestManager has a map of frame -> FindInPageClient.
FindInPageClient manages per-frame number of matches, and also
updates the global number of matches and the current active match
rect and ordinal.
In this CL, we are changing ActivateNearestFindResult to call methods
on FindInPageClient instead of calling a callback. SetNumberOfMatches
is called to update the corresponding frame's number of find-in-page
matches and also update the total number of matches in a tab.
SetActiveMatch updates the tab's active match rect and ordinal.
When we mojoify FindInPage::Find, we'll use FindInPageClient to
receive the find replies and remove FindRequestManager::OnFindReply.
Mojoifying doc: https://goo.gl/JenyGm
Previous CLs:
Mojoify FindInPage::StopFinding
crrev.com/c/1058731
(other CLs linked in the CL above)
Bug: 819919
Change-Id: I25a6d81037655801db1b1337f335073f11aa7862
Reviewed-on: https://chromium-review.googlesource.com/1080568
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577106}
We are mojoifying browser<->renderer communication of Find-in-page.
In this CL, we are converting the GetNearestFindResult function to mojo.
Mojoifying doc: https://goo.gl/JenyGm
Previous CLs:
Mojoify FindInPage::GetNearestFindResult (parent of this CL)
crrev.com/c/1051143
Mojoify FindInPage::FindMatchRects
crrev.com/c/1049770
Add FindInPage mojo interface with ClearActiveFindMatch
crrev.com/c/1027393
Future CLs:
Mojoify other find-in-page functions
Bug: 819919
Change-Id: I8f2d0bfcf6642dc43d7f5ab5e80ce6614e006647
Reviewed-on: https://chromium-review.googlesource.com/1051525
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560494}
We are mojoifying browser<->renderer communication of Find-in-page.
In this CL, we are converting the GetNearestFindResult function to mojo.
Mojoifying doc: https://goo.gl/JenyGm
Previous CLs:
Mojoify FindInPage::FindMatchRects (parent of this CL)
crrev.com/c/1049770
Add FindInPage mojo interface with ClearActiveFindMatch
crrev.com/c/1027393
Future CLs:
Mojoify other find-in-page functions
Bug: 819919
Change-Id: Id4852ed3902128594f3a29f7aa55d80d7f1f9a06
Reviewed-on: https://chromium-review.googlesource.com/1051143
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558329}
We are mojoifying browser<->renderer communication of Find-in-page.
In this CL, we are converting the FindMatchRects function to mojo.
Mojoifying doc: https://goo.gl/JenyGm
Previous CL:
Add FindInPage mojo interface with ClearActiveFindMatch
crrev.com/c/1027393
Future CLs:
Mojoify other find-in-page functions
Bug: 819919
Change-Id: I63dd966ac8008460dce796e2c2405df353416fd0
Reviewed-on: https://chromium-review.googlesource.com/1049770
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558272}
We are mojoifying browser<->renderer communication of Find-in-page.
In this CL, we are introducing the FindInPage mojo interface,
which currently only have the ClearActiveFindMatch function in it
and its implementation on the browser and renderer side. We are
also removing the old IPC messagefor ClearActiveFindMatch and
functions related to it.
ClearActiveFindMatch is called when the browser side wants to
remove the current active match highlighting in a frame.
Previous CLs (refactoring):
crrev.com/c/956648
crrev.com/c/1025242
crrev.com/c/1027013
Future CLs:
Mojoify other find-in-page functions
Mojoifying doc: https://goo.gl/JenyGm
Bug: 819919
Change-Id: I3ca9835819c6a46fbee0e2bf20a665c0bd0f5d22
Reviewed-on: https://chromium-review.googlesource.com/1027393
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Paul Meyer <paulmeyer@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Takayoshi Kochi <kochi@chromium.org>
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556996}
These are replaced with the base versions base::circular_deque and base::queue.
Typedefs were replaced with using statements in changed code, and adjacent
typedefs were also converted.
RTCTimestamps struct in rtc_video_encoder.cc was made copyable and moveable
(it's just an int64 and an int32) to support being put in a circular_deque.
BrowsingDataRemoverImpl::RemovalTask was made move-only (from previously
not movable or copyable).
BUG=757232
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: Ib83f929ae4c014ae0d3766a57e9cb56cba446e2b
Reviewed-on: https://chromium-review.googlesource.com/656066
Commit-Queue: Brett Wilson <brettw@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501169}
This patch enables find-in-page to work across GuestViews, including
WebViews and PDFs, as explained in this design doc:
https://drive.google.com/open?id=1tl1L99oTgqQxolV7jRvDLzFQ9K251rQ_E16mOwB-BuU.
Specifically, this will allow find-in-page to work with embedded PDFs,
which has been a (very) longstanding bug in Chrome.
This patch also cleans up code that was previously used to route find
requests to the guest WebContents in the case of full-page GuestViews.
This shortcut is no longer needed, as this patch implements a more general
solution to traversing frames across all WebContentses during a find
session.
Note that this is an attempt to reland a fixed version of the reverted
CL here: https://codereview.chromium.org/2700613003/
BUG=55421
Review-Url: https://codereview.chromium.org/2836973002
Cr-Commit-Position: refs/heads/master@{#467124}
Reason for revert:
Suspected cause of crashes: https://bugs.chromium.org/p/chromium/issues/detail?id=709478
Original issue's description:
> Enable find-in-page across GuestViews.
>
> This patch enables find-in-page to work across GuestViews, including
> WebViews and PDFs, as explained in this design doc:
> https://drive.google.com/open?id=1tl1L99oTgqQxolV7jRvDLzFQ9K251rQ_E16mOwB-BuU.
> Specifically, this will allow find-in-page to work with embedded PDFs,
> which has been a (very) longstanding bug in Chrome.
>
> This patch also cleans up code that was previously used to route find
> requests to the guest WebContents in the case of full-page GuestViews.
> This shortcut is no longer needed, as this patch implements a more general
> solution to traversing frames across all WebContentses during a find
> session.
>
> BUG=55421
>
> Review-Url: https://codereview.chromium.org/2700613003
> Cr-Commit-Position: refs/heads/master@{#462327}
> Committed: 9dedb9f32fTBR=nick@chromium.org,lfg@chromium.org,thestig@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=55421
Review-Url: https://codereview.chromium.org/2808923003
Cr-Commit-Position: refs/heads/master@{#463379}
This patch enables find-in-page to work across GuestViews, including
WebViews and PDFs, as explained in this design doc:
https://drive.google.com/open?id=1tl1L99oTgqQxolV7jRvDLzFQ9K251rQ_E16mOwB-BuU.
Specifically, this will allow find-in-page to work with embedded PDFs,
which has been a (very) longstanding bug in Chrome.
This patch also cleans up code that was previously used to route find
requests to the guest WebContents in the case of full-page GuestViews.
This shortcut is no longer needed, as this patch implements a more general
solution to traversing frames across all WebContentses during a find
session.
BUG=55421
Review-Url: https://codereview.chromium.org/2700613003
Cr-Commit-Position: refs/heads/master@{#462327}
This patch implements new find-in-page functionality that allows for frames that are either newly added or navigated during a find session to be automatically searched so that matches in their new content are automatically highlighted and included in the results shown in the find bar.
Also, there is a fix included in this patch to prevent the find-in-page bar from closing when a subframe navigates (the find session should only end if the main frame navigates).
Design doc: https://docs.google.com/document/d/1r4F19FIKg4zPJCaSyJ9-T0sgFbxlCGKL3FjqQEAKegg/view
BUG=2220,621660
Review-Url: https://codereview.chromium.org/2236403004
Cr-Commit-Position: refs/heads/master@{#420715}
I've noticed some problematic edge cases with the reporting of find-in-page results from FindRequestManager. While trying to write some new tests in find_request_manager_browsertest.cc, I noticed that the new tests sometimes fail because of these edge cases. The existing tests in there could definitely fail from this as well, though much less likely. I have seen them fail very rarely before though and this is probably why.
The details of the issue, edge cases, and my solution are explained in this design doc: https://docs.google.com/a/google.com/document/d/1BCvuSW9XSBH7GMx5VC0TgBh6XmJJDOzz_XZKItjF6oM/edit?usp=sharing
UPDATE: Anther find-in-page CL I landed recently (https://codereview.chromium.org/2186113002/) was reverted because of a test that began timing out. I believe that failure is caused by the problems fixed here, so that bugfix is now blocked on this CL.
Review-Url: https://codereview.chromium.org/2249133002
Cr-Commit-Position: refs/heads/master@{#415353}
This is an intermediate step towards the multi-process find-in-page implementation. At this stage, FindRequestManager does not add any extra functionality, but find requests are plumbed through it. Note that no additional testing is required at this stage.
Design doc for multi-process find-in-page: https://docs.google.com/a/google.com/document/d/12S_6X2MWWLoyJslajcajL2ELU7zhodPxMOxa8Bg4Wg0/edit?usp=sharing
Summary of specific changes introduced in this patch:
- Find request IDs are now always unique for every find request (previously unique per find session in most cases).
- Very basic shell of FindRequestManager added.
- Find, FindReply, StopFinding, FindMatchRects, FindMatchRectsReply, and ActivateNearestFindResult are now plumbed through FindRequestManager (though it does not yet process or alter these requests).
- FindMatchRects and ActivateNearestFindResult can no longer be called directly via RenderFrameHost. This ensures that all calls must go through FindRequestManager (via WebContents).
- Small find bug addressed in WebViewFindHelper.
BUG=457440
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation
Review URL: https://codereview.chromium.org/1851793002
Cr-Commit-Position: refs/heads/master@{#386966}