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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
index 1ff6169b943034df460a8388ceac665aae26c8dc..f7f3ccedb74ef11394aca7df48d17a9b69874e5d 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
@@ -103,7 +103,8 @@ import java.util.Map;
*/
@JNINamespace("content")
public class ContentViewCore implements AccessibilityStateChangeListener, ScreenOrientationObserver,
- SystemCaptioningBridge.SystemCaptioningBridgeListener {
+ SystemCaptioningBridge.SystemCaptioningBridgeListener,
+ WindowAndroidProvider {
private static final String TAG = "cr_ContentViewCore";
// Used to avoid enabling zooming in / out if resulting zooming will
@@ -462,6 +463,9 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Screen
// ResultReceiver in the InputMethodService (IME app) gets gc'ed.
private ShowKeyboardResultReceiver mShowKeyboardResultReceiver;
+ // The list of observers that are notified when ContentViewCore changes its WindowAndroid.
+ private final ObserverList<WindowAndroidChangedObserver> mWindowAndroidChangedObservers;
+
/**
* @param webContents The {@link WebContents} to find a {@link ContentViewCore} of.
* @return A {@link ContentViewCore} that is connected to {@code webContents} or
@@ -495,6 +499,7 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Screen
mGestureStateListenersIterator = mGestureStateListeners.rewindableIterator();
mContainerViewObservers = new ObserverList<ContainerViewObserver>();
+ mWindowAndroidChangedObservers = new ObserverList<WindowAndroidChangedObserver>();
}
/**
@@ -522,11 +527,22 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Screen
/**
* @return The WindowAndroid associated with this ContentViewCore.
*/
+ @Override
public WindowAndroid getWindowAndroid() {
if (mNativeContentViewCore == 0) return null;
return nativeGetJavaWindowAndroid(mNativeContentViewCore);
}
+ @Override
+ public void addWindowAndroidChangedObserver(WindowAndroidChangedObserver observer) {
+ mWindowAndroidChangedObservers.addObserver(observer);
+ }
+
+ @Override
+ public void removeWindowAndroidChangedObserver(WindowAndroidChangedObserver observer) {
+ mWindowAndroidChangedObservers.removeObserver(observer);
+ }
+
/**
*
* @param topControlsHeightPix The height of the top controls in pixels.
@@ -665,6 +681,10 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Screen
// Clean up cached popups that may have been created with an old activity.
mSelectPopup = null;
mPastePopupMenu = null;
+
+ for (WindowAndroidChangedObserver observer : mWindowAndroidChangedObservers) {
+ observer.onWindowAndroidChanged(windowAndroid);
+ }
}
/**
« 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