Chromium Code Reviews| 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.annotation.TargetApi; | 8 import android.annotation.TargetApi; |
| 9 import android.app.Activity; | 9 import android.app.Activity; |
| 10 import android.app.SearchManager; | 10 import android.app.SearchManager; |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 327 public void navigationEntryCommitted() { | 327 public void navigationEntryCommitted() { |
| 328 determinedProcessVisibility(); | 328 determinedProcessVisibility(); |
| 329 } | 329 } |
| 330 | 330 |
| 331 private void resetPopupsAndInput() { | 331 private void resetPopupsAndInput() { |
| 332 ContentViewCore contentViewCore = mWeakContentViewCore.get(); | 332 ContentViewCore contentViewCore = mWeakContentViewCore.get(); |
| 333 if (contentViewCore == null) return; | 333 if (contentViewCore == null) return; |
| 334 contentViewCore.mIsMobileOptimizedHint = false; | 334 contentViewCore.mIsMobileOptimizedHint = false; |
| 335 contentViewCore.hidePopupsAndClearSelection(); | 335 contentViewCore.hidePopupsAndClearSelection(); |
| 336 contentViewCore.resetScrollInProgress(); | 336 contentViewCore.resetScrollInProgress(); |
| 337 contentViewCore.resetImeAdapter(); | |
| 337 } | 338 } |
| 338 | 339 |
| 339 private void determinedProcessVisibility() { | 340 private void determinedProcessVisibility() { |
| 340 ContentViewCore contentViewCore = mWeakContentViewCore.get(); | 341 ContentViewCore contentViewCore = mWeakContentViewCore.get(); |
| 341 if (contentViewCore == null) return; | 342 if (contentViewCore == null) return; |
| 342 // Signal to the process management logic that we can now rely on th e process | 343 // Signal to the process management logic that we can now rely on th e process |
| 343 // visibility signal for binding management. Before the navigation c ommits, its | 344 // visibility signal for binding management. Before the navigation c ommits, its |
| 344 // renderer is considered background even if the pending navigation happens in the | 345 // renderer is considered background even if the pending navigation happens in the |
| 345 // foreground renderer. | 346 // foreground renderer. |
| 346 ChildProcessLauncher.determinedVisibility(contentViewCore.getCurrent RenderProcessId()); | 347 ChildProcessLauncher.determinedVisibility(contentViewCore.getCurrent RenderProcessId()); |
| (...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 927 * onDetachedFromWindow() which is guaranteed to be called in Android WebVie w. | 928 * onDetachedFromWindow() which is guaranteed to be called in Android WebVie w. |
| 928 */ | 929 */ |
| 929 public void destroy() { | 930 public void destroy() { |
| 930 if (mNativeContentViewCore != 0) { | 931 if (mNativeContentViewCore != 0) { |
| 931 nativeOnJavaContentViewCoreDestroyed(mNativeContentViewCore); | 932 nativeOnJavaContentViewCoreDestroyed(mNativeContentViewCore); |
| 932 } | 933 } |
| 933 mWebContentsObserver.destroy(); | 934 mWebContentsObserver.destroy(); |
| 934 mWebContentsObserver = null; | 935 mWebContentsObserver = null; |
| 935 setSmartClipDataListener(null); | 936 setSmartClipDataListener(null); |
| 936 setZoomControlsDelegate(null); | 937 setZoomControlsDelegate(null); |
| 938 mImeAdapter.reset(); | |
| 937 // TODO(igsolla): address TODO in ContentViewClient because ContentViewC lient is not | 939 // TODO(igsolla): address TODO in ContentViewClient because ContentViewC lient is not |
| 938 // currently a real Null Object. | 940 // currently a real Null Object. |
| 939 // | 941 // |
| 940 // Instead of deleting the client we use the Null Object pattern to avoi d null checks | 942 // Instead of deleting the client we use the Null Object pattern to avoi d null checks |
| 941 // in this class. | 943 // in this class. |
| 942 mContentViewClient = new ContentViewClient(); | 944 mContentViewClient = new ContentViewClient(); |
| 943 mWebContents = null; | 945 mWebContents = null; |
| 944 mOverscrollRefreshHandler = null; | 946 mOverscrollRefreshHandler = null; |
| 945 mNativeContentViewCore = 0; | 947 mNativeContentViewCore = 0; |
| 946 mJavaScriptInterfaces.clear(); | 948 mJavaScriptInterfaces.clear(); |
| (...skipping 2155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3102 public void setSmartClipDataListener(SmartClipDataListener listener) { | 3104 public void setSmartClipDataListener(SmartClipDataListener listener) { |
| 3103 mSmartClipDataListener = listener; | 3105 mSmartClipDataListener = listener; |
| 3104 } | 3106 } |
| 3105 | 3107 |
| 3106 public void setBackgroundOpaque(boolean opaque) { | 3108 public void setBackgroundOpaque(boolean opaque) { |
| 3107 if (mNativeContentViewCore != 0) { | 3109 if (mNativeContentViewCore != 0) { |
| 3108 nativeSetBackgroundOpaque(mNativeContentViewCore, opaque); | 3110 nativeSetBackgroundOpaque(mNativeContentViewCore, opaque); |
| 3109 } | 3111 } |
| 3110 } | 3112 } |
| 3111 | 3113 |
| 3114 @VisibleForTesting | |
| 3115 public WebContentsObserver getWebContentsObserverForTest() { | |
| 3116 return mWebContentsObserver; | |
|
Ted C
2016/02/17 19:09:33
Instead of exposing this, can you use the list fro
Changwan Ryu
2016/02/18 06:03:26
Done.
| |
| 3117 } | |
| 3118 | |
| 3112 /** | 3119 /** |
| 3113 * Offer a long press gesture to the embedding View, primarily for WebView c ompatibility. | 3120 * Offer a long press gesture to the embedding View, primarily for WebView c ompatibility. |
| 3114 * | 3121 * |
| 3115 * @return true if the embedder handled the event. | 3122 * @return true if the embedder handled the event. |
| 3116 */ | 3123 */ |
| 3117 private boolean offerLongPressToEmbedder() { | 3124 private boolean offerLongPressToEmbedder() { |
| 3118 return mContainerView.performLongClick(); | 3125 return mContainerView.performLongClick(); |
| 3119 } | 3126 } |
| 3120 | 3127 |
| 3121 /** | 3128 /** |
| 3122 * Reset scroll and fling accounting, notifying listeners as appropriate. | 3129 * Reset scroll and fling accounting, notifying listeners as appropriate. |
| 3123 * This is useful as a failsafe when the input stream may have been interrup ed. | 3130 * This is useful as a failsafe when the input stream may have been interrup ed. |
| 3124 */ | 3131 */ |
| 3125 private void resetScrollInProgress() { | 3132 private void resetScrollInProgress() { |
| 3126 if (!isScrollInProgress()) return; | 3133 if (!isScrollInProgress()) return; |
| 3127 | 3134 |
| 3128 final boolean touchScrollInProgress = mTouchScrollInProgress; | 3135 final boolean touchScrollInProgress = mTouchScrollInProgress; |
| 3129 final int potentiallyActiveFlingCount = mPotentiallyActiveFlingCount; | 3136 final int potentiallyActiveFlingCount = mPotentiallyActiveFlingCount; |
| 3130 | 3137 |
| 3131 setTouchScrollInProgress(false); | 3138 setTouchScrollInProgress(false); |
| 3132 mPotentiallyActiveFlingCount = 0; | 3139 mPotentiallyActiveFlingCount = 0; |
| 3133 if (touchScrollInProgress) updateGestureStateListener(GestureEventType.S CROLL_END); | 3140 if (touchScrollInProgress) updateGestureStateListener(GestureEventType.S CROLL_END); |
| 3134 if (potentiallyActiveFlingCount > 0) updateGestureStateListener(GestureE ventType.FLING_END); | 3141 if (potentiallyActiveFlingCount > 0) updateGestureStateListener(GestureE ventType.FLING_END); |
| 3135 } | 3142 } |
| 3136 | 3143 |
| 3144 private void resetImeAdapter() { | |
| 3145 mImeAdapter.reset(); | |
| 3146 } | |
| 3147 | |
| 3137 private float getWheelScrollFactorInPixels() { | 3148 private float getWheelScrollFactorInPixels() { |
| 3138 if (mWheelScrollFactorInPixels == 0) { | 3149 if (mWheelScrollFactorInPixels == 0) { |
| 3139 TypedValue outValue = new TypedValue(); | 3150 TypedValue outValue = new TypedValue(); |
| 3140 // This is the same attribute used by Android Views to scale wheel | 3151 // This is the same attribute used by Android Views to scale wheel |
| 3141 // event motion into scroll deltas. | 3152 // event motion into scroll deltas. |
| 3142 if (mContext.getTheme().resolveAttribute( | 3153 if (mContext.getTheme().resolveAttribute( |
| 3143 android.R.attr.listPreferredItemHeight, outValue, true)) { | 3154 android.R.attr.listPreferredItemHeight, outValue, true)) { |
| 3144 mWheelScrollFactorInPixels = | 3155 mWheelScrollFactorInPixels = |
| 3145 outValue.getDimension(mContext.getResources().getDisplay Metrics()); | 3156 outValue.getDimension(mContext.getResources().getDisplay Metrics()); |
| 3146 } else { | 3157 } else { |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3310 private native void nativeSetTextTrackSettings(long nativeContentViewCoreImp l, | 3321 private native void nativeSetTextTrackSettings(long nativeContentViewCoreImp l, |
| 3311 boolean textTracksEnabled, String textTrackBackgroundColor, String t extTrackFontFamily, | 3322 boolean textTracksEnabled, String textTrackBackgroundColor, String t extTrackFontFamily, |
| 3312 String textTrackFontStyle, String textTrackFontVariant, String textT rackTextColor, | 3323 String textTrackFontStyle, String textTrackFontVariant, String textT rackTextColor, |
| 3313 String textTrackTextShadow, String textTrackTextSize); | 3324 String textTrackTextShadow, String textTrackTextSize); |
| 3314 | 3325 |
| 3315 private native void nativeExtractSmartClipData(long nativeContentViewCoreImp l, | 3326 private native void nativeExtractSmartClipData(long nativeContentViewCoreImp l, |
| 3316 int x, int y, int w, int h); | 3327 int x, int y, int w, int h); |
| 3317 | 3328 |
| 3318 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl , boolean opaque); | 3329 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl , boolean opaque); |
| 3319 } | 3330 } |
| OLD | NEW |