1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 package org.chromium.chrome.browser.findinpage;
7 import org.chromium.content_public.browser.WebContents;
10 * Allows issuing find in page related requests for a given WebContents.
12 public class FindInPageBridge {
13 private final WebContents mWebContents;
14 private long mNativeFindInPageBridge;
16 public FindInPageBridge(WebContents webContents) {
17 assert webContents != null;
18 mWebContents = webContents;
19 mNativeFindInPageBridge = nativeInit(webContents);
23 * Destroys this instance so no further calls can be executed.
25 public void destroy() {
26 nativeDestroy(mNativeFindInPageBridge);
27 mNativeFindInPageBridge = 0;
31 * Starts the find operation by calling StartFinding on the ChromeTab.
32 * This function does not block while a search is in progress.
33 * Set a listener using setFindResultListener to receive the results.
35 public void startFinding(String searchString, boolean forwardDirection, boolean caseSensitive) {
36 assert mNativeFindInPageBridge != 0;
37 nativeStartFinding(mNativeFindInPageBridge, searchString, forwardDirection, caseSensitive);
41 * When the user commits to a search query or jumps from one result
42 * to the next, move accessibility focus to the next find result.
44 public void activateFindInPageResultForAccessibility() {
45 assert mNativeFindInPageBridge != 0;
46 nativeActivateFindInPageResultForAccessibility(mNativeFindInPageBridge);
49 /** Stops the current find operation. */
50 public void stopFinding() {
51 assert mNativeFindInPageBridge != 0;
52 nativeStopFinding(mNativeFindInPageBridge);
55 /** Returns the most recent find text before the current one. */
56 public String getPreviousFindText() {
57 assert mNativeFindInPageBridge != 0;
58 return nativeGetPreviousFindText(mNativeFindInPageBridge);
61 /** Asks the renderer to send the bounding boxes of current find matches. */
62 public void requestFindMatchRects(int currentVersion) {
63 assert mNativeFindInPageBridge != 0;
64 nativeRequestFindMatchRects(mNativeFindInPageBridge, currentVersion);
68 * Selects and zooms to the nearest find result to the point (x,y),
69 * where x and y are fractions of the content document's width and height.
71 public void activateNearestFindResult(float x, float y) {
72 assert mNativeFindInPageBridge != 0;
73 nativeActivateNearestFindResult(mNativeFindInPageBridge, x, y);
76 private native long nativeInit(WebContents webContents);
78 private native void nativeDestroy(long nativeFindInPageBridge);
80 private native void nativeStartFinding(long nativeFindInPageBridge, String searchString,
81 boolean forwardDirection, boolean caseSensitive);
83 private native void nativeStopFinding(long nativeFindInPageBridge);
85 private native String nativeGetPreviousFindText(long nativeFindInPageBridge);
87 private native void nativeRequestFindMatchRects(
88 long nativeFindInPageBridge, int currentVersion);
90 private native void nativeActivateNearestFindResult(
91 long nativeFindInPageBridge, float x, float y);
93 private native void nativeActivateFindInPageResultForAccessibility(
94 long nativeFindInPageBridge);