15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// found in the LICENSE file. 4a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)package org.chromium.content_public.browser; 6a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)/** 8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) * The WebContents Java wrapper to allow communicating with the native WebContents object. 9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) */ 10a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)public interface WebContents { 11a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) /** 12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) * @return The navigation controller associated with this WebContents. 13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) */ 14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NavigationController getNavigationController(); 150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch /** 170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch * @return The title for the current visible page. 180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch */ 190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch String getTitle(); 200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch /** 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * @return The URL for the current visible page. 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch */ 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch String getVisibleUrl(); 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch /** 270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch * Stop any pending navigation. 280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch */ 290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch void stop(); 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch /** 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * Inserts css into main frame's document. 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch */ 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void insertCSS(String css); 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * To be called when the ContentView is hidden. 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void onHide(); 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * To be called when the ContentView is shown. 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void onShow(); 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Stops all media players for this WebContents. 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public void releaseMediaPlayers(); 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Get the Background color from underlying RenderWidgetHost for this WebContent. 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public int getBackgroundColor(); 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Requests the renderer insert a link to the specified stylesheet in the 575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * main frame's document. 585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void addStyleSheetByURL(String url); 605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Shows an interstitial page driven by the passed in delegate. 635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * 645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * @param url The URL being blocked by the interstitial. 655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * @param delegate The delegate handling the interstitial. 665f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 675f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void showInterstitialPage( 685f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) String url, long interstitialPageDelegateAndroid); 695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 715f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * @return Whether the page is currently showing an interstitial, such as a bad HTTPS page. 725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 735f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public boolean isShowingInterstitialPage(); 745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * If the view is ready to draw contents to the screen. In hardware mode, 775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * the initialization of the surface texture may not occur until after the 785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * view has been added to the layout. This method will return {@code true} 795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * once the texture is actually ready. 805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public boolean isReady(); 825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Inform WebKit that Fullscreen mode has been exited by the user. 855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void exitFullscreen(); 875f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 885f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 895f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Changes whether hiding the top controls is enabled. 905f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * 915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * @param enableHiding Whether hiding the top controls should be enabled or not. 925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * @param enableShowing Whether showing the top controls should be enabled or not. 935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * @param animate Whether the transition should be animated or not. 945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void updateTopControlsState(boolean enableHiding, boolean enableShowing, 965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) boolean animate); 975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 985f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Shows the IME if the focused widget could accept text input. 1005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 1015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void showImeIfNeeded(); 1025f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 1045f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Brings the Editable to the visible area while IME is up to make easier for inputing text. 1055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 1065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void scrollFocusedEditableNodeIntoView(); 1075f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) /** 1095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Selects the word around the caret, if any. 1105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * The caller can check if selection actually occurred by listening to OnSelectionChanged. 1115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) */ 1125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public void selectWordAroundCaret(); 1135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Get the URL of the current page. 1166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * 1176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * @return The URL of the current page. 1186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public String getUrl(); 1206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Get the InCognito state of WebContents. 1236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * 1246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * @return whether this WebContents is in InCognito mode or not 1256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public boolean isIncognito(); 1276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Resumes the response which is deferred during start. 1306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public void resumeResponseDeferredAtStart(); 1326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Set pending Navigation for transition testing on this WebContents. 1356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public void setHasPendingNavigationTransitionForTesting(); 1376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Set delegate for notifying navigation transition. 1406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public void setNavigationTransitionDelegate(NavigationTransitionDelegate delegate); 1426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Inserts the provided markup sandboxed into the frame. 1456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public void setupTransitionView(String markup); 1476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1496e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Hides transition elements specified by the selector, and activates any 1506e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * exiting-transition stylesheets. 1516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1526e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public void beginExitTransition(String cssSelector); 1536e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1546e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 1556e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Injects the passed Javascript code in the current page and evaluates it. 1566e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * If a result is required, pass in a callback. 1576e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * 1586e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * @param script The Javascript to execute. 1596e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * @param callback The callback to be fired off when a result is ready. The script's 1606e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * result will be json encoded and passed as the parameter, and the call 1616e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * will be made on the main thread. 1626e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * If no result is required, pass null. 1636e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 1641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public void evaluateJavaScript(String script, JavaScriptCallback callback); 1656e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 166a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 167