Chromium Code Reviews| 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..41f07d25c25408a00af292d9cd2547c6ec83213a 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. |
| + bool m_frameScoping; |
|
dcheng
2016/05/18 21:29:21
I know you didn't introduce this, but it would be
paulmeyer
2016/05/19 20:08:36
I'm not sure if there is a better place for this,
|
| // 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. |