| 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.app.Activity; | 7 import android.app.Activity; |
| 8 import android.app.SearchManager; | 8 import android.app.SearchManager; |
| 9 import android.content.ContentResolver; | 9 import android.content.ContentResolver; |
| 10 import android.content.Context; | 10 import android.content.Context; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 import android.view.inputmethod.EditorInfo; | 48 import android.view.inputmethod.EditorInfo; |
| 49 import android.view.inputmethod.InputConnection; | 49 import android.view.inputmethod.InputConnection; |
| 50 import android.view.inputmethod.InputMethodManager; | 50 import android.view.inputmethod.InputMethodManager; |
| 51 import android.widget.AbsoluteLayout; | 51 import android.widget.AbsoluteLayout; |
| 52 import android.widget.FrameLayout; | 52 import android.widget.FrameLayout; |
| 53 | 53 |
| 54 import com.google.common.annotations.VisibleForTesting; | 54 import com.google.common.annotations.VisibleForTesting; |
| 55 | 55 |
| 56 import org.chromium.base.CalledByNative; | 56 import org.chromium.base.CalledByNative; |
| 57 import org.chromium.base.JNINamespace; | 57 import org.chromium.base.JNINamespace; |
| 58 import org.chromium.base.PositionObserver; |
| 58 import org.chromium.base.WeakContext; | 59 import org.chromium.base.WeakContext; |
| 59 import org.chromium.content.R; | 60 import org.chromium.content.R; |
| 60 import org.chromium.content.browser.ContentViewGestureHandler.MotionEventDelegat
e; | 61 import org.chromium.content.browser.ContentViewGestureHandler.MotionEventDelegat
e; |
| 61 import org.chromium.content.browser.accessibility.AccessibilityInjector; | 62 import org.chromium.content.browser.accessibility.AccessibilityInjector; |
| 62 import org.chromium.content.browser.accessibility.BrowserAccessibilityManager; | 63 import org.chromium.content.browser.accessibility.BrowserAccessibilityManager; |
| 63 import org.chromium.content.browser.input.AdapterInputConnection; | 64 import org.chromium.content.browser.input.AdapterInputConnection; |
| 64 import org.chromium.content.browser.input.HandleView; | 65 import org.chromium.content.browser.input.HandleView; |
| 65 import org.chromium.content.browser.input.ImeAdapter; | 66 import org.chromium.content.browser.input.ImeAdapter; |
| 66 import org.chromium.content.browser.input.ImeAdapter.AdapterInputConnectionFacto
ry; | 67 import org.chromium.content.browser.input.ImeAdapter.AdapterInputConnectionFacto
ry; |
| 67 import org.chromium.content.browser.input.InputMethodManagerWrapper; | 68 import org.chromium.content.browser.input.InputMethodManagerWrapper; |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 // Only valid when focused on a text / password field. | 371 // Only valid when focused on a text / password field. |
| 371 private ImeAdapter mImeAdapter; | 372 private ImeAdapter mImeAdapter; |
| 372 private ImeAdapter.AdapterInputConnectionFactory mAdapterInputConnectionFact
ory; | 373 private ImeAdapter.AdapterInputConnectionFactory mAdapterInputConnectionFact
ory; |
| 373 private AdapterInputConnection mInputConnection; | 374 private AdapterInputConnection mInputConnection; |
| 374 | 375 |
| 375 private SelectionHandleController mSelectionHandleController; | 376 private SelectionHandleController mSelectionHandleController; |
| 376 private InsertionHandleController mInsertionHandleController; | 377 private InsertionHandleController mInsertionHandleController; |
| 377 | 378 |
| 378 private Runnable mDeferredHandleFadeInRunnable; | 379 private Runnable mDeferredHandleFadeInRunnable; |
| 379 | 380 |
| 381 private PositionObserver mPositionObserver; |
| 382 |
| 380 // Size of the viewport in physical pixels as set from onSizeChanged. | 383 // Size of the viewport in physical pixels as set from onSizeChanged. |
| 381 private int mViewportWidthPix; | 384 private int mViewportWidthPix; |
| 382 private int mViewportHeightPix; | 385 private int mViewportHeightPix; |
| 383 private int mPhysicalBackingWidthPix; | 386 private int mPhysicalBackingWidthPix; |
| 384 private int mPhysicalBackingHeightPix; | 387 private int mPhysicalBackingHeightPix; |
| 385 private int mOverdrawBottomHeightPix; | 388 private int mOverdrawBottomHeightPix; |
| 386 private int mViewportSizeOffsetWidthPix; | 389 private int mViewportSizeOffsetWidthPix; |
| 387 private int mViewportSizeOffsetHeightPix; | 390 private int mViewportSizeOffsetHeightPix; |
| 388 | 391 |
| 389 // Cached copy of all positions and scales as reported by the renderer. | 392 // Cached copy of all positions and scales as reported by the renderer. |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 710 // necessarily mean we're going to *get* hardware acceleration -- that's | 713 // necessarily mean we're going to *get* hardware acceleration -- that's |
| 711 // up to the Android framework. | 714 // up to the Android framework. |
| 712 // | 715 // |
| 713 // TODO(husky): Once the native code has been updated so that the | 716 // TODO(husky): Once the native code has been updated so that the |
| 714 // HW acceleration flag can be set dynamically (Grace is doing this), | 717 // HW acceleration flag can be set dynamically (Grace is doing this), |
| 715 // move this check into onAttachedToWindow(), where we can test for | 718 // move this check into onAttachedToWindow(), where we can test for |
| 716 // HW support directly. | 719 // HW support directly. |
| 717 mHardwareAccelerated = hasHardwareAcceleration(mContext); | 720 mHardwareAccelerated = hasHardwareAcceleration(mContext); |
| 718 | 721 |
| 719 mContainerView = containerView; | 722 mContainerView = containerView; |
| 723 mPositionObserver = new PositionObserver(mContainerView); |
| 720 | 724 |
| 721 int windowNativePointer = windowAndroid != null ? windowAndroid.getNativ
ePointer() : 0; | 725 int windowNativePointer = windowAndroid != null ? windowAndroid.getNativ
ePointer() : 0; |
| 722 | 726 |
| 723 int viewAndroidNativePointer = 0; | 727 int viewAndroidNativePointer = 0; |
| 724 if (windowNativePointer != 0) { | 728 if (windowNativePointer != 0) { |
| 725 mViewAndroid = new ViewAndroid(windowAndroid, getViewAndroidDelegate
()); | 729 mViewAndroid = new ViewAndroid(windowAndroid, getViewAndroidDelegate
()); |
| 726 viewAndroidNativePointer = mViewAndroid.getNativePointer(); | 730 viewAndroidNativePointer = mViewAndroid.getNativePointer(); |
| 727 } | 731 } |
| 728 | 732 |
| 729 mNativeContentViewCore = nativeInit(mHardwareAccelerated, | 733 mNativeContentViewCore = nativeInit(mHardwareAccelerated, |
| (...skipping 1280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2010 mDownloadDelegate = delegate; | 2014 mDownloadDelegate = delegate; |
| 2011 } | 2015 } |
| 2012 | 2016 |
| 2013 // Called by DownloadController. | 2017 // Called by DownloadController. |
| 2014 ContentViewDownloadDelegate getDownloadDelegate() { | 2018 ContentViewDownloadDelegate getDownloadDelegate() { |
| 2015 return mDownloadDelegate; | 2019 return mDownloadDelegate; |
| 2016 } | 2020 } |
| 2017 | 2021 |
| 2018 private SelectionHandleController getSelectionHandleController() { | 2022 private SelectionHandleController getSelectionHandleController() { |
| 2019 if (mSelectionHandleController == null) { | 2023 if (mSelectionHandleController == null) { |
| 2020 mSelectionHandleController = new SelectionHandleController(getContai
nerView()) { | 2024 mSelectionHandleController = new SelectionHandleController( |
| 2025 getContainerView(), mPositionObserver) { |
| 2021 @Override | 2026 @Override |
| 2022 public void selectBetweenCoordinates(int x1, int y1, int x2, int
y2) { | 2027 public void selectBetweenCoordinates(int x1, int y1, int x2, int
y2) { |
| 2023 if (mNativeContentViewCore != 0 && !(x1 == x2 && y1 == y2))
{ | 2028 if (mNativeContentViewCore != 0 && !(x1 == x2 && y1 == y2))
{ |
| 2024 nativeSelectBetweenCoordinates(mNativeContentViewCore, | 2029 nativeSelectBetweenCoordinates(mNativeContentViewCore, |
| 2025 x1, y1 - mRenderCoordinates.getContentOffsetYPix
(), | 2030 x1, y1 - mRenderCoordinates.getContentOffsetYPix
(), |
| 2026 x2, y2 - mRenderCoordinates.getContentOffsetYPix
()); | 2031 x2, y2 - mRenderCoordinates.getContentOffsetYPix
()); |
| 2027 } | 2032 } |
| 2028 } | 2033 } |
| 2029 | 2034 |
| 2030 @Override | 2035 @Override |
| 2031 public void showHandles(int startDir, int endDir) { | 2036 public void showHandles(int startDir, int endDir) { |
| 2032 super.showHandles(startDir, endDir); | 2037 super.showHandles(startDir, endDir); |
| 2033 showSelectActionBar(); | 2038 showSelectActionBar(); |
| 2034 } | 2039 } |
| 2035 | 2040 |
| 2036 }; | 2041 }; |
| 2037 | 2042 |
| 2038 mSelectionHandleController.hideAndDisallowAutomaticShowing(); | 2043 mSelectionHandleController.hideAndDisallowAutomaticShowing(); |
| 2039 } | 2044 } |
| 2040 | 2045 |
| 2041 return mSelectionHandleController; | 2046 return mSelectionHandleController; |
| 2042 } | 2047 } |
| 2043 | 2048 |
| 2044 private InsertionHandleController getInsertionHandleController() { | 2049 private InsertionHandleController getInsertionHandleController() { |
| 2045 if (mInsertionHandleController == null) { | 2050 if (mInsertionHandleController == null) { |
| 2046 mInsertionHandleController = new InsertionHandleController(getContai
nerView()) { | 2051 mInsertionHandleController = new InsertionHandleController( |
| 2052 getContainerView(), mPositionObserver) { |
| 2047 private static final int AVERAGE_LINE_HEIGHT = 14; | 2053 private static final int AVERAGE_LINE_HEIGHT = 14; |
| 2048 | 2054 |
| 2049 @Override | 2055 @Override |
| 2050 public void setCursorPosition(int x, int y) { | 2056 public void setCursorPosition(int x, int y) { |
| 2051 if (mNativeContentViewCore != 0) { | 2057 if (mNativeContentViewCore != 0) { |
| 2052 nativeMoveCaret(mNativeContentViewCore, | 2058 nativeMoveCaret(mNativeContentViewCore, |
| 2053 x, y - mRenderCoordinates.getContentOffsetYPix()
); | 2059 x, y - mRenderCoordinates.getContentOffsetYPix()
); |
| 2054 } | 2060 } |
| 2055 } | 2061 } |
| 2056 | 2062 |
| (...skipping 1238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3295 | 3301 |
| 3296 private native void nativeAttachExternalVideoSurface( | 3302 private native void nativeAttachExternalVideoSurface( |
| 3297 int nativeContentViewCoreImpl, int playerId, Surface surface); | 3303 int nativeContentViewCoreImpl, int playerId, Surface surface); |
| 3298 | 3304 |
| 3299 private native void nativeDetachExternalVideoSurface( | 3305 private native void nativeDetachExternalVideoSurface( |
| 3300 int nativeContentViewCoreImpl, int playerId); | 3306 int nativeContentViewCoreImpl, int playerId); |
| 3301 | 3307 |
| 3302 private native void nativeSetAccessibilityEnabled( | 3308 private native void nativeSetAccessibilityEnabled( |
| 3303 int nativeContentViewCoreImpl, boolean enabled); | 3309 int nativeContentViewCoreImpl, boolean enabled); |
| 3304 } | 3310 } |
| OLD | NEW |