| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.content.browser; | 5 package org.chromium.content.browser; |
| 6 | 6 |
| 7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
| 8 import android.app.Activity; | 8 import android.app.Activity; |
| 9 import android.app.SearchManager; | 9 import android.app.SearchManager; |
| 10 import android.content.ClipboardManager; | 10 import android.content.ClipboardManager; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 import org.chromium.content.browser.input.PastePopupMenu.PastePopupMenuDelegate; | 68 import org.chromium.content.browser.input.PastePopupMenu.PastePopupMenuDelegate; |
| 69 import org.chromium.content.browser.input.PopupTouchHandleDrawable; | 69 import org.chromium.content.browser.input.PopupTouchHandleDrawable; |
| 70 import org.chromium.content.browser.input.PopupTouchHandleDrawable.PopupTouchHan
dleDrawableDelegate; | 70 import org.chromium.content.browser.input.PopupTouchHandleDrawable.PopupTouchHan
dleDrawableDelegate; |
| 71 import org.chromium.content.browser.input.SelectPopup; | 71 import org.chromium.content.browser.input.SelectPopup; |
| 72 import org.chromium.content.browser.input.SelectPopupDialog; | 72 import org.chromium.content.browser.input.SelectPopupDialog; |
| 73 import org.chromium.content.browser.input.SelectPopupDropdown; | 73 import org.chromium.content.browser.input.SelectPopupDropdown; |
| 74 import org.chromium.content.browser.input.SelectPopupItem; | 74 import org.chromium.content.browser.input.SelectPopupItem; |
| 75 import org.chromium.content.browser.input.SelectionEventType; | 75 import org.chromium.content.browser.input.SelectionEventType; |
| 76 import org.chromium.content.common.ContentSwitches; | 76 import org.chromium.content.common.ContentSwitches; |
| 77 import org.chromium.content_public.browser.GestureStateListener; | 77 import org.chromium.content_public.browser.GestureStateListener; |
| 78 import org.chromium.content_public.browser.JavaScriptCallback; | |
| 79 import org.chromium.content_public.browser.WebContents; | 78 import org.chromium.content_public.browser.WebContents; |
| 80 import org.chromium.ui.base.DeviceFormFactor; | 79 import org.chromium.ui.base.DeviceFormFactor; |
| 81 import org.chromium.ui.base.ViewAndroid; | 80 import org.chromium.ui.base.ViewAndroid; |
| 82 import org.chromium.ui.base.ViewAndroidDelegate; | 81 import org.chromium.ui.base.ViewAndroidDelegate; |
| 83 import org.chromium.ui.base.WindowAndroid; | 82 import org.chromium.ui.base.WindowAndroid; |
| 84 import org.chromium.ui.gfx.DeviceDisplayInfo; | 83 import org.chromium.ui.gfx.DeviceDisplayInfo; |
| 85 | 84 |
| 86 import java.lang.annotation.Annotation; | 85 import java.lang.annotation.Annotation; |
| 87 import java.lang.reflect.Field; | 86 import java.lang.reflect.Field; |
| 88 import java.util.ArrayList; | 87 import java.util.ArrayList; |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 // If OSK is newly shown, delay the form foc
us until | 569 // If OSK is newly shown, delay the form foc
us until |
| 571 // the onSizeChanged (in order to adjust rel
ative to the | 570 // the onSizeChanged (in order to adjust rel
ative to the |
| 572 // new size). | 571 // new size). |
| 573 // TODO(jdduke): We should not assume that o
nSizeChanged will | 572 // TODO(jdduke): We should not assume that o
nSizeChanged will |
| 574 // always be called, crbug.com/294908. | 573 // always be called, crbug.com/294908. |
| 575 getContainerView().getWindowVisibleDisplayFr
ame( | 574 getContainerView().getWindowVisibleDisplayFr
ame( |
| 576 mFocusPreOSKViewportRect); | 575 mFocusPreOSKViewportRect); |
| 577 } else if (hasFocus() && resultCode == | 576 } else if (hasFocus() && resultCode == |
| 578 InputMethodManager.RESULT_UNCHANGED_SHOW
N) { | 577 InputMethodManager.RESULT_UNCHANGED_SHOW
N) { |
| 579 // If the OSK was already there, focus the f
orm immediately. | 578 // If the OSK was already there, focus the f
orm immediately. |
| 580 scrollFocusedEditableNodeIntoView(); | 579 assert mWebContents != null; |
| 580 mWebContents.scrollFocusedEditableNodeIntoVi
ew(); |
| 581 } | 581 } |
| 582 } | 582 } |
| 583 }; | 583 }; |
| 584 } | 584 } |
| 585 } | 585 } |
| 586 ); | 586 ); |
| 587 } | 587 } |
| 588 | 588 |
| 589 /** | 589 /** |
| 590 * | 590 * |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 } | 846 } |
| 847 return mContentViewClient; | 847 return mContentViewClient; |
| 848 } | 848 } |
| 849 | 849 |
| 850 @CalledByNative | 850 @CalledByNative |
| 851 private void onBackgroundColorChanged(int color) { | 851 private void onBackgroundColorChanged(int color) { |
| 852 getContentViewClient().onBackgroundColorChanged(color); | 852 getContentViewClient().onBackgroundColorChanged(color); |
| 853 } | 853 } |
| 854 | 854 |
| 855 /** | 855 /** |
| 856 * Shows an interstitial page driven by the passed in delegate. | |
| 857 * | |
| 858 * @param url The URL being blocked by the interstitial. | |
| 859 * @param delegate The delegate handling the interstitial. | |
| 860 */ | |
| 861 @VisibleForTesting | |
| 862 public void showInterstitialPage( | |
| 863 String url, InterstitialPageDelegateAndroid delegate) { | |
| 864 assert mWebContents != null; | |
| 865 mWebContents.showInterstitialPage(url, delegate.getNative()); | |
| 866 } | |
| 867 | |
| 868 /** | |
| 869 * @return Whether the page is currently showing an interstitial, such as a
bad HTTPS page. | |
| 870 */ | |
| 871 public boolean isShowingInterstitialPage() { | |
| 872 assert mWebContents != null; | |
| 873 return mWebContents.isShowingInterstitialPage(); | |
| 874 } | |
| 875 | |
| 876 /** | |
| 877 * @return Viewport width in physical pixels as set from onSizeChanged. | 856 * @return Viewport width in physical pixels as set from onSizeChanged. |
| 878 */ | 857 */ |
| 879 @CalledByNative | 858 @CalledByNative |
| 880 public int getViewportWidthPix() { return mViewportWidthPix; } | 859 public int getViewportWidthPix() { |
| 860 return mViewportWidthPix; |
| 861 } |
| 881 | 862 |
| 882 /** | 863 /** |
| 883 * @return Viewport height in physical pixels as set from onSizeChanged. | 864 * @return Viewport height in physical pixels as set from onSizeChanged. |
| 884 */ | 865 */ |
| 885 @CalledByNative | 866 @CalledByNative |
| 886 public int getViewportHeightPix() { return mViewportHeightPix; } | 867 public int getViewportHeightPix() { |
| 868 return mViewportHeightPix; |
| 869 } |
| 887 | 870 |
| 888 /** | 871 /** |
| 889 * @return Width of underlying physical surface. | 872 * @return Width of underlying physical surface. |
| 890 */ | 873 */ |
| 891 @CalledByNative | 874 @CalledByNative |
| 892 public int getPhysicalBackingWidthPix() { return mPhysicalBackingWidthPix; } | 875 public int getPhysicalBackingWidthPix() { |
| 876 return mPhysicalBackingWidthPix; |
| 877 } |
| 893 | 878 |
| 894 /** | 879 /** |
| 895 * @return Height of underlying physical surface. | 880 * @return Height of underlying physical surface. |
| 896 */ | 881 */ |
| 897 @CalledByNative | 882 @CalledByNative |
| 898 public int getPhysicalBackingHeightPix() { return mPhysicalBackingHeightPix;
} | 883 public int getPhysicalBackingHeightPix() { |
| 884 return mPhysicalBackingHeightPix; |
| 885 } |
| 899 | 886 |
| 900 /* TODO(aelias): Remove these when downstream callers disappear. */ | 887 /* TODO(aelias): Remove these when downstream callers disappear. */ |
| 901 @VisibleForTesting | 888 @VisibleForTesting |
| 902 public int getViewportSizeOffsetWidthPix() { return 0; } | 889 public int getViewportSizeOffsetWidthPix() { |
| 890 return 0; |
| 891 } |
| 892 |
| 903 @VisibleForTesting | 893 @VisibleForTesting |
| 904 public int getViewportSizeOffsetHeightPix() { return getTopControlsLayoutHei
ghtPix(); } | 894 public int getViewportSizeOffsetHeightPix() { |
| 895 return getTopControlsLayoutHeightPix(); |
| 896 } |
| 905 | 897 |
| 906 /** | 898 /** |
| 907 * @return The amount that the viewport size given to Blink is shrunk by the
URL-bar.. | 899 * @return The amount that the viewport size given to Blink is shrunk by the
URL-bar.. |
| 908 */ | 900 */ |
| 909 @CalledByNative | 901 @CalledByNative |
| 910 public int getTopControlsLayoutHeightPix() { return mTopControlsLayoutHeight
Pix; } | 902 public int getTopControlsLayoutHeightPix() { |
| 903 return mTopControlsLayoutHeightPix; |
| 904 } |
| 911 | 905 |
| 912 /** | 906 /** |
| 913 * @see android.webkit.WebView#getContentHeight() | 907 * @see android.webkit.WebView#getContentHeight() |
| 914 */ | 908 */ |
| 915 public float getContentHeightCss() { | 909 public float getContentHeightCss() { |
| 916 return mRenderCoordinates.getContentHeightCss(); | 910 return mRenderCoordinates.getContentHeightCss(); |
| 917 } | 911 } |
| 918 | 912 |
| 919 /** | 913 /** |
| 920 * @see android.webkit.WebView#getContentWidth() | 914 * @see android.webkit.WebView#getContentWidth() |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1178 computeVerticalScrollOffset(), | 1172 computeVerticalScrollOffset(), |
| 1179 computeVerticalScrollExtent()); | 1173 computeVerticalScrollExtent()); |
| 1180 break; | 1174 break; |
| 1181 default: | 1175 default: |
| 1182 break; | 1176 break; |
| 1183 } | 1177 } |
| 1184 } | 1178 } |
| 1185 } | 1179 } |
| 1186 | 1180 |
| 1187 /** | 1181 /** |
| 1188 * Inserts the provided markup sandboxed into the frame. | |
| 1189 */ | |
| 1190 public void setupTransitionView(String markup) { | |
| 1191 assert mWebContents != null; | |
| 1192 mWebContents.setupTransitionView(markup); | |
| 1193 } | |
| 1194 | |
| 1195 /** | |
| 1196 * Hides transition elements specified by the selector, and activates any | |
| 1197 * exiting-transition stylesheets. | |
| 1198 */ | |
| 1199 public void beginExitTransition(String cssSelector) { | |
| 1200 assert mWebContents != null; | |
| 1201 mWebContents.beginExitTransition(cssSelector); | |
| 1202 } | |
| 1203 | |
| 1204 /** | |
| 1205 * Requests the renderer insert a link to the specified stylesheet in the | |
| 1206 * main frame's document. | |
| 1207 */ | |
| 1208 public void addStyleSheetByURL(String url) { | |
| 1209 assert mWebContents != null; | |
| 1210 mWebContents.addStyleSheetByURL(url); | |
| 1211 } | |
| 1212 | |
| 1213 /** | |
| 1214 * Injects the passed Javascript code in the current page and evaluates it. | |
| 1215 * If a result is required, pass in a callback. | |
| 1216 * Used in automation tests. | |
| 1217 * | |
| 1218 * @param script The Javascript to execute. | |
| 1219 * @param callback The callback to be fired off when a result is ready. The
script's | |
| 1220 * result will be json encoded and passed as the parameter,
and the call | |
| 1221 * will be made on the main thread. | |
| 1222 * If no result is required, pass null. | |
| 1223 */ | |
| 1224 public void evaluateJavaScript(String script, JavaScriptCallback callback) { | |
| 1225 assert mWebContents != null; | |
| 1226 mWebContents.evaluateJavaScript(script, callback); | |
| 1227 } | |
| 1228 | |
| 1229 /** | |
| 1230 * Post a message to a frame. | 1182 * Post a message to a frame. |
| 1231 * TODO(sgurun) also add support for transferring a message channel port. | 1183 * TODO(sgurun) also add support for transferring a message channel port. |
| 1232 * | 1184 * |
| 1233 * @param frameName The name of the frame. If the name is null the message i
s posted | 1185 * @param frameName The name of the frame. If the name is null the message i
s posted |
| 1234 * to the main frame. | 1186 * to the main frame. |
| 1235 * @param message The message | 1187 * @param message The message |
| 1236 * @param sourceOrigin The source origin | 1188 * @param sourceOrigin The source origin |
| 1237 * @param targetOrigin The target origin | 1189 * @param targetOrigin The target origin |
| 1238 */ | 1190 */ |
| 1239 public void postMessageToFrame(String frameName, String message, | 1191 public void postMessageToFrame(String frameName, String message, |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1448 mPopupZoomer.hide(false); | 1400 mPopupZoomer.hide(false); |
| 1449 | 1401 |
| 1450 // Execute a delayed form focus operation because the OSK was brought | 1402 // Execute a delayed form focus operation because the OSK was brought |
| 1451 // up earlier. | 1403 // up earlier. |
| 1452 if (!mFocusPreOSKViewportRect.isEmpty()) { | 1404 if (!mFocusPreOSKViewportRect.isEmpty()) { |
| 1453 Rect rect = new Rect(); | 1405 Rect rect = new Rect(); |
| 1454 getContainerView().getWindowVisibleDisplayFrame(rect); | 1406 getContainerView().getWindowVisibleDisplayFrame(rect); |
| 1455 if (!rect.equals(mFocusPreOSKViewportRect)) { | 1407 if (!rect.equals(mFocusPreOSKViewportRect)) { |
| 1456 // Only assume the OSK triggered the onSizeChanged if width was
preserved. | 1408 // Only assume the OSK triggered the onSizeChanged if width was
preserved. |
| 1457 if (rect.width() == mFocusPreOSKViewportRect.width()) { | 1409 if (rect.width() == mFocusPreOSKViewportRect.width()) { |
| 1458 scrollFocusedEditableNodeIntoView(); | 1410 assert mWebContents != null; |
| 1411 mWebContents.scrollFocusedEditableNodeIntoView(); |
| 1459 } | 1412 } |
| 1460 cancelRequestToScrollFocusedEditableNodeIntoView(); | 1413 cancelRequestToScrollFocusedEditableNodeIntoView(); |
| 1461 } | 1414 } |
| 1462 } | 1415 } |
| 1463 } | 1416 } |
| 1464 | 1417 |
| 1465 private void cancelRequestToScrollFocusedEditableNodeIntoView() { | 1418 private void cancelRequestToScrollFocusedEditableNodeIntoView() { |
| 1466 // Zero-ing the rect will prevent |updateAfterSizeChanged()| from | 1419 // Zero-ing the rect will prevent |updateAfterSizeChanged()| from |
| 1467 // issuing the delayed form focus event. | 1420 // issuing the delayed form focus event. |
| 1468 mFocusPreOSKViewportRect.setEmpty(); | 1421 mFocusPreOSKViewportRect.setEmpty(); |
| 1469 } | 1422 } |
| 1470 | 1423 |
| 1471 private void scrollFocusedEditableNodeIntoView() { | |
| 1472 assert mWebContents != null; | |
| 1473 mWebContents.scrollFocusedEditableNodeIntoView(); | |
| 1474 } | |
| 1475 | |
| 1476 /** | |
| 1477 * Selects the word around the caret, if any. | |
| 1478 * The caller can check if selection actually occurred by listening to OnSel
ectionChanged. | |
| 1479 */ | |
| 1480 public void selectWordAroundCaret() { | |
| 1481 assert mWebContents != null; | |
| 1482 mWebContents.selectWordAroundCaret(); | |
| 1483 } | |
| 1484 | |
| 1485 /** | 1424 /** |
| 1486 * @see View#onWindowFocusChanged(boolean) | 1425 * @see View#onWindowFocusChanged(boolean) |
| 1487 */ | 1426 */ |
| 1488 public void onWindowFocusChanged(boolean hasWindowFocus) { | 1427 public void onWindowFocusChanged(boolean hasWindowFocus) { |
| 1489 if (!hasWindowFocus) resetGestureDetection(); | 1428 if (!hasWindowFocus) resetGestureDetection(); |
| 1490 } | 1429 } |
| 1491 | 1430 |
| 1492 public void onFocusChanged(boolean gainFocus) { | 1431 public void onFocusChanged(boolean gainFocus) { |
| 1493 if (gainFocus) { | 1432 if (gainFocus) { |
| 1494 restoreSelectionPopupsIfNecessary(); | 1433 restoreSelectionPopupsIfNecessary(); |
| (...skipping 1031 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2526 | 2465 |
| 2527 /** | 2466 /** |
| 2528 * Return the current scale of the ContentView. | 2467 * Return the current scale of the ContentView. |
| 2529 * @return The current page scale factor. | 2468 * @return The current page scale factor. |
| 2530 */ | 2469 */ |
| 2531 @VisibleForTesting | 2470 @VisibleForTesting |
| 2532 public float getScale() { | 2471 public float getScale() { |
| 2533 return mRenderCoordinates.getPageScaleFactor(); | 2472 return mRenderCoordinates.getPageScaleFactor(); |
| 2534 } | 2473 } |
| 2535 | 2474 |
| 2536 /** | |
| 2537 * If the view is ready to draw contents to the screen. In hardware mode, | |
| 2538 * the initialization of the surface texture may not occur until after the | |
| 2539 * view has been added to the layout. This method will return {@code true} | |
| 2540 * once the texture is actually ready. | |
| 2541 */ | |
| 2542 public boolean isReady() { | |
| 2543 assert mWebContents != null; | |
| 2544 return mWebContents.isReady(); | |
| 2545 } | |
| 2546 | |
| 2547 @CalledByNative | 2475 @CalledByNative |
| 2548 private void startContentIntent(String contentUrl) { | 2476 private void startContentIntent(String contentUrl) { |
| 2549 getContentViewClient().onStartContentIntent(getContext(), contentUrl); | 2477 getContentViewClient().onStartContentIntent(getContext(), contentUrl); |
| 2550 } | 2478 } |
| 2551 | 2479 |
| 2552 @Override | 2480 @Override |
| 2553 public void onAccessibilityStateChanged(boolean enabled) { | 2481 public void onAccessibilityStateChanged(boolean enabled) { |
| 2554 setAccessibilityState(enabled); | 2482 setAccessibilityState(enabled); |
| 2555 } | 2483 } |
| 2556 | 2484 |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2767 * Sets whether or not we should set accessibility focus on page load. | 2695 * Sets whether or not we should set accessibility focus on page load. |
| 2768 * This only applies if an accessibility service like TalkBack is running. | 2696 * This only applies if an accessibility service like TalkBack is running. |
| 2769 * This is desirable behavior for a browser window, but not for an embedded | 2697 * This is desirable behavior for a browser window, but not for an embedded |
| 2770 * WebView. | 2698 * WebView. |
| 2771 */ | 2699 */ |
| 2772 public void setShouldSetAccessibilityFocusOnPageLoad(boolean on) { | 2700 public void setShouldSetAccessibilityFocusOnPageLoad(boolean on) { |
| 2773 mShouldSetAccessibilityFocusOnPageLoad = on; | 2701 mShouldSetAccessibilityFocusOnPageLoad = on; |
| 2774 } | 2702 } |
| 2775 | 2703 |
| 2776 /** | 2704 /** |
| 2777 * Inform WebKit that Fullscreen mode has been exited by the user. | |
| 2778 */ | |
| 2779 public void exitFullscreen() { | |
| 2780 assert mWebContents != null; | |
| 2781 mWebContents.exitFullscreen(); | |
| 2782 } | |
| 2783 | |
| 2784 /** | |
| 2785 * Changes whether hiding the top controls is enabled. | |
| 2786 * | |
| 2787 * @param enableHiding Whether hiding the top controls should be enabled or
not. | |
| 2788 * @param enableShowing Whether showing the top controls should be enabled o
r not. | |
| 2789 * @param animate Whether the transition should be animated or not. | |
| 2790 */ | |
| 2791 public void updateTopControlsState(boolean enableHiding, boolean enableShowi
ng, | |
| 2792 boolean animate) { | |
| 2793 assert mWebContents != null; | |
| 2794 mWebContents.updateTopControlsState( | |
| 2795 enableHiding, enableShowing, animate); | |
| 2796 } | |
| 2797 | |
| 2798 /** | |
| 2799 * @return The cached copy of render positions and scales. | 2705 * @return The cached copy of render positions and scales. |
| 2800 */ | 2706 */ |
| 2801 public RenderCoordinates getRenderCoordinates() { | 2707 public RenderCoordinates getRenderCoordinates() { |
| 2802 return mRenderCoordinates; | 2708 return mRenderCoordinates; |
| 2803 } | 2709 } |
| 2804 | 2710 |
| 2805 @CalledByNative | 2711 @CalledByNative |
| 2806 private static Rect createRect(int x, int y, int right, int bottom) { | 2712 private static Rect createRect(int x, int y, int right, int bottom) { |
| 2807 return new Rect(x, y, right, bottom); | 2713 return new Rect(x, y, right, bottom); |
| 2808 } | 2714 } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2906 if (mPotentiallyActiveFlingCount <= 0) return; | 2812 if (mPotentiallyActiveFlingCount <= 0) return; |
| 2907 mPotentiallyActiveFlingCount--; | 2813 mPotentiallyActiveFlingCount--; |
| 2908 updateGestureStateListener(GestureEventType.FLING_END); | 2814 updateGestureStateListener(GestureEventType.FLING_END); |
| 2909 } | 2815 } |
| 2910 | 2816 |
| 2911 @Override | 2817 @Override |
| 2912 public void onScreenOrientationChanged(int orientation) { | 2818 public void onScreenOrientationChanged(int orientation) { |
| 2913 sendOrientationChangeEvent(orientation); | 2819 sendOrientationChangeEvent(orientation); |
| 2914 } | 2820 } |
| 2915 | 2821 |
| 2916 public void resumeResponseDeferredAtStart() { | |
| 2917 assert mWebContents != null; | |
| 2918 mWebContents.resumeResponseDeferredAtStart(); | |
| 2919 } | |
| 2920 | |
| 2921 /** | 2822 /** |
| 2922 * Set whether the ContentViewCore requires the WebContents to be fullscreen
in order to lock | 2823 * Set whether the ContentViewCore requires the WebContents to be fullscreen
in order to lock |
| 2923 * the screen orientation. | 2824 * the screen orientation. |
| 2924 */ | 2825 */ |
| 2925 public void setFullscreenRequiredForOrientationLock(boolean value) { | 2826 public void setFullscreenRequiredForOrientationLock(boolean value) { |
| 2926 mFullscreenRequiredForOrientationLock = value; | 2827 mFullscreenRequiredForOrientationLock = value; |
| 2927 } | 2828 } |
| 2928 | 2829 |
| 2929 @CalledByNative | 2830 @CalledByNative |
| 2930 private boolean isFullscreenRequiredForOrientationLock() { | 2831 private boolean isFullscreenRequiredForOrientationLock() { |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3030 private native void nativeWasResized(long nativeContentViewCoreImpl); | 2931 private native void nativeWasResized(long nativeContentViewCoreImpl); |
| 3031 | 2932 |
| 3032 private native void nativeSetAccessibilityEnabled( | 2933 private native void nativeSetAccessibilityEnabled( |
| 3033 long nativeContentViewCoreImpl, boolean enabled); | 2934 long nativeContentViewCoreImpl, boolean enabled); |
| 3034 | 2935 |
| 3035 private native void nativeExtractSmartClipData(long nativeContentViewCoreImp
l, | 2936 private native void nativeExtractSmartClipData(long nativeContentViewCoreImp
l, |
| 3036 int x, int y, int w, int h); | 2937 int x, int y, int w, int h); |
| 3037 | 2938 |
| 3038 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl
, boolean opaque); | 2939 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl
, boolean opaque); |
| 3039 } | 2940 } |
| OLD | NEW |