Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Side by Side Diff: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java

Issue 1486043002: [webnfc] Implement push method for Android nfc mojo service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@step_6_add_mojo_service_CL
Patch Set: Move WindowAndroidChangedObserver to other observers in content layer Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 import java.util.List; 96 import java.util.List;
97 import java.util.Map; 97 import java.util.Map;
98 98
99 /** 99 /**
100 * Provides a Java-side 'wrapper' around a WebContent (native) instance. 100 * Provides a Java-side 'wrapper' around a WebContent (native) instance.
101 * Contains all the major functionality necessary to manage the lifecycle of a C ontentView without 101 * Contains all the major functionality necessary to manage the lifecycle of a C ontentView without
102 * being tied to the view system. 102 * being tied to the view system.
103 */ 103 */
104 @JNINamespace("content") 104 @JNINamespace("content")
105 public class ContentViewCore implements AccessibilityStateChangeListener, Screen OrientationObserver, 105 public class ContentViewCore implements AccessibilityStateChangeListener, Screen OrientationObserver,
106 SystemCaptioningBridge.SystemCaptioningB ridgeListener { 106 SystemCaptioningBridge.SystemCaptioningB ridgeListener,
107 WindowAndroidProvider {
107 private static final String TAG = "cr_ContentViewCore"; 108 private static final String TAG = "cr_ContentViewCore";
108 109
109 // Used to avoid enabling zooming in / out if resulting zooming will 110 // Used to avoid enabling zooming in / out if resulting zooming will
110 // produce little visible difference. 111 // produce little visible difference.
111 private static final float ZOOM_CONTROLS_EPSILON = 0.007f; 112 private static final float ZOOM_CONTROLS_EPSILON = 0.007f;
112 113
113 private static final ZoomControlsDelegate NO_OP_ZOOM_CONTROLS_DELEGATE = 114 private static final ZoomControlsDelegate NO_OP_ZOOM_CONTROLS_DELEGATE =
114 new ZoomControlsDelegate() { 115 new ZoomControlsDelegate() {
115 @Override 116 @Override
116 public void invokeZoomPicker() {} 117 public void invokeZoomPicker() {}
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 // A flag to determine if we enable hover feature or not. 456 // A flag to determine if we enable hover feature or not.
456 private Boolean mEnableTouchHover; 457 private Boolean mEnableTouchHover;
457 458
458 // The client that implements Contextual Search functionality, or null if no ne exists. 459 // The client that implements Contextual Search functionality, or null if no ne exists.
459 private ContextualSearchClient mContextualSearchClient; 460 private ContextualSearchClient mContextualSearchClient;
460 461
461 // NOTE: This object will not be released by Android framework until the mat ching 462 // NOTE: This object will not be released by Android framework until the mat ching
462 // ResultReceiver in the InputMethodService (IME app) gets gc'ed. 463 // ResultReceiver in the InputMethodService (IME app) gets gc'ed.
463 private ShowKeyboardResultReceiver mShowKeyboardResultReceiver; 464 private ShowKeyboardResultReceiver mShowKeyboardResultReceiver;
464 465
466 // The list of observers that are notified when ContentViewCore changes its WindowAndroid.
467 private final ObserverList<WindowAndroidChangedObserver> mWindowAndroidChang edObservers;
468
465 /** 469 /**
466 * @param webContents The {@link WebContents} to find a {@link ContentViewCo re} of. 470 * @param webContents The {@link WebContents} to find a {@link ContentViewCo re} of.
467 * @return A {@link ContentViewCore} that is connected to {@code webContents} or 471 * @return A {@link ContentViewCore} that is connected to {@code webContents} or
468 * {@code null} if none exists. 472 * {@code null} if none exists.
469 */ 473 */
470 public static ContentViewCore fromWebContents(WebContents webContents) { 474 public static ContentViewCore fromWebContents(WebContents webContents) {
471 return nativeFromWebContentsAndroid(webContents); 475 return nativeFromWebContentsAndroid(webContents);
472 } 476 }
473 477
474 /** 478 /**
(...skipping 13 matching lines...) Expand all
488 deviceScaleFactor = Float.valueOf(forceScaleFactor); 492 deviceScaleFactor = Float.valueOf(forceScaleFactor);
489 } 493 }
490 mRenderCoordinates.setDeviceScaleFactor(deviceScaleFactor); 494 mRenderCoordinates.setDeviceScaleFactor(deviceScaleFactor);
491 mAccessibilityManager = (AccessibilityManager) 495 mAccessibilityManager = (AccessibilityManager)
492 getContext().getSystemService(Context.ACCESSIBILITY_SERVICE); 496 getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
493 mSystemCaptioningBridge = CaptioningBridgeFactory.getSystemCaptioningBri dge(mContext); 497 mSystemCaptioningBridge = CaptioningBridgeFactory.getSystemCaptioningBri dge(mContext);
494 mGestureStateListeners = new ObserverList<GestureStateListener>(); 498 mGestureStateListeners = new ObserverList<GestureStateListener>();
495 mGestureStateListenersIterator = mGestureStateListeners.rewindableIterat or(); 499 mGestureStateListenersIterator = mGestureStateListeners.rewindableIterat or();
496 500
497 mContainerViewObservers = new ObserverList<ContainerViewObserver>(); 501 mContainerViewObservers = new ObserverList<ContainerViewObserver>();
502 mWindowAndroidChangedObservers = new ObserverList<WindowAndroidChangedOb server>();
498 } 503 }
499 504
500 /** 505 /**
501 * @return The context used for creating this ContentViewCore. 506 * @return The context used for creating this ContentViewCore.
502 */ 507 */
503 @CalledByNative 508 @CalledByNative
504 public Context getContext() { 509 public Context getContext() {
505 return mContext; 510 return mContext;
506 } 511 }
507 512
508 /** 513 /**
509 * @return The ViewGroup that all view actions of this ContentViewCore shoul d interact with. 514 * @return The ViewGroup that all view actions of this ContentViewCore shoul d interact with.
510 */ 515 */
511 public ViewGroup getContainerView() { 516 public ViewGroup getContainerView() {
512 return mContainerView; 517 return mContainerView;
513 } 518 }
514 519
515 /** 520 /**
516 * @return The WebContents currently being rendered. 521 * @return The WebContents currently being rendered.
517 */ 522 */
518 public WebContents getWebContents() { 523 public WebContents getWebContents() {
519 return mWebContents; 524 return mWebContents;
520 } 525 }
521 526
522 /** 527 /**
523 * @return The WindowAndroid associated with this ContentViewCore. 528 * @return The WindowAndroid associated with this ContentViewCore.
524 */ 529 */
530 @Override
525 public WindowAndroid getWindowAndroid() { 531 public WindowAndroid getWindowAndroid() {
526 if (mNativeContentViewCore == 0) return null; 532 if (mNativeContentViewCore == 0) return null;
527 return nativeGetJavaWindowAndroid(mNativeContentViewCore); 533 return nativeGetJavaWindowAndroid(mNativeContentViewCore);
528 } 534 }
529 535
536 @Override
537 public void addWindowAndroidChangedObserver(WindowAndroidChangedObserver obs erver) {
538 mWindowAndroidChangedObservers.addObserver(observer);
539 }
540
541 @Override
542 public void removeWindowAndroidChangedObserver(WindowAndroidChangedObserver observer) {
543 mWindowAndroidChangedObservers.removeObserver(observer);
544 }
545
530 /** 546 /**
531 * 547 *
532 * @param topControlsHeightPix The height of the top controls in pixel s. 548 * @param topControlsHeightPix The height of the top controls in pixel s.
533 * @param topControlsShrinkBlinkSize The Y amount in pixels to shrink the vi ewport by. This 549 * @param topControlsShrinkBlinkSize The Y amount in pixels to shrink the vi ewport by. This
534 * specifies how much smaller the Blink la yout size should be 550 * specifies how much smaller the Blink la yout size should be
535 * relative to the size of this View. 551 * relative to the size of this View.
536 */ 552 */
537 public void setTopControlsHeight(int topControlsHeightPix, boolean topContro lsShrinkBlinkSize) { 553 public void setTopControlsHeight(int topControlsHeightPix, boolean topContro lsShrinkBlinkSize) {
538 if (topControlsHeightPix == mTopControlsHeightPix 554 if (topControlsHeightPix == mTopControlsHeightPix
539 && topControlsShrinkBlinkSize == mTopControlsShrinkBlinkSize) { 555 && topControlsShrinkBlinkSize == mTopControlsShrinkBlinkSize) {
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 * @param windowAndroid The new {@link WindowAndroid} for this {@link Conten tViewCore}. 674 * @param windowAndroid The new {@link WindowAndroid} for this {@link Conten tViewCore}.
659 */ 675 */
660 public void updateWindowAndroid(WindowAndroid windowAndroid) { 676 public void updateWindowAndroid(WindowAndroid windowAndroid) {
661 long windowNativePointer = windowAndroid == null ? 0 : windowAndroid.get NativePointer(); 677 long windowNativePointer = windowAndroid == null ? 0 : windowAndroid.get NativePointer();
662 nativeUpdateWindowAndroid(mNativeContentViewCore, windowNativePointer); 678 nativeUpdateWindowAndroid(mNativeContentViewCore, windowNativePointer);
663 679
664 // TODO(yusufo): Rename this call to be general for tab reparenting. 680 // TODO(yusufo): Rename this call to be general for tab reparenting.
665 // Clean up cached popups that may have been created with an old activit y. 681 // Clean up cached popups that may have been created with an old activit y.
666 mSelectPopup = null; 682 mSelectPopup = null;
667 mPastePopupMenu = null; 683 mPastePopupMenu = null;
684
685 for (WindowAndroidChangedObserver observer : mWindowAndroidChangedObserv ers) {
686 observer.onWindowAndroidChanged(windowAndroid);
687 }
668 } 688 }
669 689
670 /** 690 /**
671 * Sets a new container view for this {@link ContentViewCore}. 691 * Sets a new container view for this {@link ContentViewCore}.
672 * 692 *
673 * <p>WARNING: This method can also be used to replace the existing containe r view, 693 * <p>WARNING: This method can also be used to replace the existing containe r view,
674 * but you should only do it if you have a very good reason to. Replacing th e 694 * but you should only do it if you have a very good reason to. Replacing th e
675 * container view has been designed to support fullscreen in the Webview so it 695 * container view has been designed to support fullscreen in the Webview so it
676 * might not be appropriate for other use cases. 696 * might not be appropriate for other use cases.
677 * 697 *
(...skipping 2721 matching lines...) Expand 10 before | Expand all | Expand 10 after
3399 String textTrackTextShadow, String textTrackTextSize); 3419 String textTrackTextShadow, String textTrackTextSize);
3400 3420
3401 private native void nativeExtractSmartClipData(long nativeContentViewCoreImp l, 3421 private native void nativeExtractSmartClipData(long nativeContentViewCoreImp l,
3402 int x, int y, int w, int h); 3422 int x, int y, int w, int h);
3403 3423
3404 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl , boolean opaque); 3424 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl , boolean opaque);
3405 private native boolean nativeIsTouchDragDropEnabled(long nativeContentViewCo reImpl); 3425 private native boolean nativeIsTouchDragDropEnabled(long nativeContentViewCo reImpl);
3406 private native void nativeOnDragEvent(long nativeContentViewCoreImpl, int ac tion, int x, int y, 3426 private native void nativeOnDragEvent(long nativeContentViewCoreImpl, int ac tion, int x, int y,
3407 int screenX, int screenY, String[] mimeTypes, String content); 3427 int screenX, int screenY, String[] mimeTypes, String content);
3408 } 3428 }
OLDNEW
« no previous file with comments | « content/public/android/BUILD.gn ('k') | content/public/android/java/src/org/chromium/content/browser/InterfaceRegistrar.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698