| Index: third_party/WebKit/Source/web/TextFinder.h
|
| diff --git a/third_party/WebKit/Source/web/TextFinder.h b/third_party/WebKit/Source/web/TextFinder.h
|
| index 2ce33e59642ac69c46f16a4305452f469e018407..267f2335fc0f2d0cf9ba9f265b99de3f3e66ae44 100644
|
| --- a/third_party/WebKit/Source/web/TextFinder.h
|
| +++ b/third_party/WebKit/Source/web/TextFinder.h
|
| @@ -60,6 +60,7 @@ public:
|
| bool find(
|
| int identifier, const WebString& searchText, const WebFindOptions&,
|
| bool wrapWithinFrame, WebRect* selectionRect, bool* activeNow = nullptr);
|
| + void clearActiveFindMatch();
|
| void stopFindingAndClearSelection();
|
| void scopeStringMatches(
|
| int identifier, const WebString& searchText, const WebFindOptions&,
|
| @@ -72,10 +73,13 @@ public:
|
| void findMatchRects(WebVector<WebFloatRect>&);
|
| int selectNearestFindMatch(const WebFloatPoint&, WebRect* selectionRect);
|
|
|
| - // Returns which frame has an active match. This function should only be
|
| - // called on the main frame, as it is the only frame keeping track. Returned
|
| - // value can be 0 if no frame has an active match.
|
| - WebLocalFrameImpl* activeMatchFrame() const { return m_currentActiveMatchFrame; }
|
| + // Return the index in the find-in-page cache of the match closest to the
|
| + // provided point in find-in-page coordinates, or -1 in case of error.
|
| + // The squared distance to the closest match is returned in the |distanceSquared| parameter.
|
| + int nearestFindMatch(const FloatPoint&, float* distanceSquared);
|
| +
|
| + // Returns whether this frame has the active match.
|
| + bool activeMatchFrame() const { return m_currentActiveMatchFrame; }
|
|
|
| // Returns the active match in the current frame. Could be a null range if
|
| // the local frame has no active match.
|
| @@ -126,14 +130,6 @@ private:
|
| // calculated again next time updateFindMatchRects is called.
|
| void clearFindMatchesCache();
|
|
|
| - // Check if the activeMatchFrame still exists in the frame tree.
|
| - bool isActiveMatchFrameValid() const;
|
| -
|
| - // Return the index in the find-in-page cache of the match closest to the
|
| - // provided point in find-in-page coordinates, or -1 in case of error.
|
| - // The squared distance to the closest match is returned in the distanceSquared parameter.
|
| - int nearestFindMatch(const FloatPoint&, float& distanceSquared);
|
| -
|
| // Select a find-in-page match marker in the current frame using a cache
|
| // match index returned by nearestFindMatch. Returns the ordinal of the new
|
| // selected match or -1 in case of error. Also provides the bounding box of
|
| @@ -145,9 +141,6 @@ private:
|
| // propagating the invalidation to child frames.
|
| void updateFindMatchRects();
|
|
|
| - // Append the find-in-page match rects of the current frame to the provided vector.
|
| - void appendFindMatchRects(Vector<WebFloatRect>& frameRects);
|
| -
|
| // Add a WebKit TextMatch-highlight marker to nodes in a range.
|
| void addMarker(Range*, bool activeMatch);
|
|
|
| @@ -158,12 +151,6 @@ private:
|
| // Removes all markers.
|
| void unmarkAllTextMatches();
|
|
|
| - // Returns the ordinal of the first match in the frame specified. This
|
| - // function enumerates the frames, starting with the main frame and up to (but
|
| - // not including) the frame passed in as a parameter and counts how many
|
| - // matches have been found.
|
| - int ordinalOfFirstMatchForFrame(WebLocalFrameImpl*) const;
|
| -
|
| // Determines whether the scoping effort is required for a particular frame.
|
| // It is not necessary if the frame is invisible, for example, or if this
|
| // is a repeat search that already returned nothing last time the same prefix
|
| @@ -191,31 +178,22 @@ private:
|
| // Determines whether to invalidate the content area and scrollbar.
|
| void invalidateIfNecessary();
|
|
|
| - // Sets the markers within a current match range as active or inactive.
|
| - void setMatchMarkerActive(bool);
|
| -
|
| - void decrementFramesScopingCount(int identifier);
|
| -
|
| WebLocalFrameImpl& ownerFrame() const
|
| {
|
| DCHECK(m_ownerFrame);
|
| return *m_ownerFrame;
|
| }
|
|
|
| - // Returns the ordinal of the first match in the owner frame.
|
| - int ordinalOfFirstMatch() const;
|
| -
|
| Member<WebLocalFrameImpl> m_ownerFrame;
|
|
|
| - // A way for the main frame to keep track of which frame has an active
|
| - // match. Should be 0 for all other frames.
|
| - Member<WebLocalFrameImpl> m_currentActiveMatchFrame;
|
| + // Indicates whether this frame currently has the active match.
|
| + bool m_currentActiveMatchFrame;
|
|
|
| // The range of the active match for the current frame.
|
| Member<Range> m_activeMatch;
|
|
|
| // The index of the active match for the current frame.
|
| - int m_activeMatchIndexInCurrentFrame;
|
| + int m_activeMatchIndex;
|
|
|
| // The scoping effort can time out and we need to keep track of where we
|
| // ended our last search so we can continue from where we left of.
|
| @@ -235,15 +213,12 @@ private:
|
| // with m_lastSearchString) to figure out if we need to search the frame again.
|
| int m_lastMatchCount;
|
|
|
| - // 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
|
| - // (on the main frame only). It should be -1 for all other frames.
|
| + // This variable keeps a cumulative total of matches found so far in this
|
| + // frame, and is only incremented by calling IncreaseMatchCount.
|
| int m_totalMatchCount;
|
|
|
| - // This variable keeps a cumulative total of how many frames are currently
|
| - // scoping, and is incremented/decremented on the main frame only.
|
| - // It should be -1 for all other frames.
|
| - int m_framesScopingCount;
|
| + // Keeps track of whether the frame is currently scoping (being searched for matches).
|
| + bool m_frameScoping;
|
|
|
| // Identifier of the latest find-in-page request. Required to be stored in
|
| // the frame in order to reply if required in case the frame is detached.
|
| @@ -256,8 +231,8 @@ private:
|
| // A list of all of the pending calls to scopeStringMatches.
|
| HeapVector<Member<DeferredScopeStringMatches>> m_deferredScopingWork;
|
|
|
| - // Version number incremented on the main frame only whenever the document
|
| - // find-in-page match markers change. It should be 0 for all other frames.
|
| + // Version number incremented whenever this frame's find-in-page match
|
| + // markers change.
|
| int m_findMatchMarkersVersion;
|
|
|
| // Local cache of the find match markers currently displayed for this frame.
|
|
|