| Index: content/browser/find_request_manager.h
|
| diff --git a/content/browser/find_request_manager.h b/content/browser/find_request_manager.h
|
| index 5a6b3988d1083017d35dc8b6bd59e33a4c7a315e..245ab6992d6d2b16324a7b7ef820510fa65e5e7f 100644
|
| --- a/content/browser/find_request_manager.h
|
| +++ b/content/browser/find_request_manager.h
|
| @@ -27,11 +27,12 @@ class WebContentsImpl;
|
| // initiated/received through a WebContents. It coordinates searching across
|
| // multiple (potentially out-of-process) frames, handles the aggregation of find
|
| // results from each frame, and facilitates active match traversal. It is
|
| -// instantiated once per WebContents, and is owned by that WebContents.
|
| -class CONTENT_EXPORT FindRequestManager : public WebContentsObserver {
|
| +// instantiated once per top-level WebContents, and is owned by that
|
| +// WebContents.
|
| +class CONTENT_EXPORT FindRequestManager {
|
| public:
|
| explicit FindRequestManager(WebContentsImpl* web_contents);
|
| - ~FindRequestManager() override;
|
| + ~FindRequestManager();
|
|
|
| // Initiates a find operation for |search_text| with the options specified in
|
| // |options|. |request_id| uniquely identifies the find request.
|
| @@ -84,6 +85,8 @@ class CONTENT_EXPORT FindRequestManager : public WebContentsObserver {
|
| // frame ID, find request ID, or find match rects version number.
|
| static const int kInvalidId;
|
|
|
| + class FrameObserver;
|
| +
|
| // The request data for a single find request.
|
| struct FindRequest {
|
| // The find request ID that uniquely identifies this find request.
|
| @@ -102,13 +105,6 @@ class CONTENT_EXPORT FindRequestManager : public WebContentsObserver {
|
| : id(id), search_text(search_text), options(options) {}
|
| };
|
|
|
| - // WebContentsObserver implementation.
|
| - void DidFinishLoad(RenderFrameHost* rfh, const GURL& validated_url) override;
|
| - void RenderFrameDeleted(RenderFrameHost* rfh) override;
|
| - void RenderFrameHostChanged(RenderFrameHost* old_host,
|
| - RenderFrameHost* new_host) override;
|
| - void FrameDeleted(RenderFrameHost* rfh) override;
|
| -
|
| // Resets all of the per-session state for a new find-in-page session.
|
| void Reset(const FindRequest& initial_request);
|
|
|
| @@ -248,7 +244,9 @@ class CONTENT_EXPORT FindRequestManager : public WebContentsObserver {
|
| } match_rects_;
|
| #endif
|
|
|
| - // The WebContents that owns this FindRequestManager.
|
| + // The WebContents that owns this FindRequestManager. This also defines the
|
| + // scope of all find sessions. Only frames in |contents_| and any inner
|
| + // WebContentses within it will be searched.
|
| WebContentsImpl* const contents_;
|
|
|
| // The request ID of the initial find request in the current find-in-page
|
| @@ -306,6 +304,12 @@ class CONTENT_EXPORT FindRequestManager : public WebContentsObserver {
|
| // Keeps track of the find request ID of the last find reply reported via
|
| // NotifyFindReply().
|
| int last_reported_id_;
|
| +
|
| + // WebContentsObservers to observe frame changes in |contents_| and its inner
|
| + // WebContentses.
|
| + std::vector<std::unique_ptr<FrameObserver>> frame_observers_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FindRequestManager);
|
| };
|
|
|
| } // namespace content
|
|
|