WebContents.java revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)package org.chromium.content_public.browser; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The WebContents Java wrapper to allow communicating with the native WebContents object. 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public interface WebContents { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return The navigation controller associated with this WebContents. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 14ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch NavigationController getNavigationController(); 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @return The title for the current visible page. 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 19424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) String getTitle(); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) /** 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return The URL for the current visible page. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String getVisibleUrl(); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Stop any pending navigation. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void stop(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Inserts css into main frame's document. 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void insertCSS(String css); 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch /** 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * To be called when the ContentView is hidden. 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void onHide(); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * To be called when the ContentView is shown. 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) */ 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public void onShow(); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Stops all media players for this WebContents. 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void releaseMediaPlayers(); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Get the Background color from underlying RenderWidgetHost for this WebContent. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public int getBackgroundColor(); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Requests the renderer insert a link to the specified stylesheet in the 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * main frame's document. 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void addStyleSheetByURL(String url); 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Shows an interstitial page driven by the passed in delegate. 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param url The URL being blocked by the interstitial. 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param delegate The delegate handling the interstitial. 66424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) */ 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void showInterstitialPage( 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String url, long interstitialPageDelegateAndroid); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return Whether the page is currently showing an interstitial, such as a bad HTTPS page. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public boolean isShowingInterstitialPage(); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If the view is ready to draw contents to the screen. In hardware mode, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the initialization of the surface texture may not occur until after the 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * view has been added to the layout. This method will return {@code true} 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * once the texture is actually ready. 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public boolean isReady(); 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Inform WebKit that Fullscreen mode has been exited by the user. 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void exitFullscreen(); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Changes whether hiding the top controls is enabled. 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param enableHiding Whether hiding the top controls should be enabled or not. 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param enableShowing Whether showing the top controls should be enabled or not. 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param animate Whether the transition should be animated or not. 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void updateTopControlsState(boolean enableHiding, boolean enableShowing, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) boolean animate); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Shows the IME if the focused widget could accept text input. 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void showImeIfNeeded(); 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Brings the Editable to the visible area while IME is up to make easier for inputing text. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void scrollFocusedEditableNodeIntoView(); 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Selects the word around the caret, if any. 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The caller can check if selection actually occurred by listening to OnSelectionChanged. 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void selectWordAroundCaret(); 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Get the URL of the current page. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return The URL of the current page. 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public String getUrl(); 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Get the InCognito state of WebContents. 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return whether this WebContents is in InCognito mode or not 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public boolean isIncognito(); 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Resumes the response which is deferred during start. 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void resumeResponseDeferredAtStart(); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set pending Navigation for transition testing on this WebContents. 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setHasPendingNavigationTransitionForTesting(); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set delegate for notifying navigation transition. 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setNavigationTransitionDelegate(NavigationTransitionDelegate delegate); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Inserts the provided markup sandboxed into the frame. 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setupTransitionView(String markup); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Hides transition elements specified by the selector, and activates any 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * exiting-transition stylesheets. 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void beginExitTransition(String cssSelector); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Injects the passed Javascript code in the current page and evaluates it. 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If a result is required, pass in a callback. 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param script The Javascript to execute. 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param callback The callback to be fired off when a result is ready. The script's 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * result will be json encoded and passed as the parameter, and the call 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * will be made on the main thread. 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If no result is required, pass null. 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void evaluateJavaScript(String script, JavaScriptCallback callback); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)