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 d0ac836bf30b8771f9f217e6664c4d219ed7e02d..1aba5bba6b1015a8737ac533d0a4db7fc94b94d2 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 |
@@ -485,6 +485,7 @@ public class ContentViewCore |
private ViewAndroid mViewAndroid; |
private SmartClipDataListener mSmartClipDataListener = null; |
+ private ObserverList<ContainerViewObserver> mContainerViewObservers; |
// This holds the state of editable text (e.g. contents of <input>, contenteditable) of |
// a focused element. |
@@ -544,6 +545,7 @@ public class ContentViewCore |
mEditable = Editable.Factory.getInstance().newEditable(""); |
Selection.setSelection(mEditable, 0); |
+ mContainerViewObservers = new ObserverList<ContainerViewObserver>(); |
} |
/** |
@@ -815,11 +817,22 @@ public class ContentViewCore |
mContainerView.setWillNotDraw(false); // TODO(epenner): Remove (http://crbug.com/436689) |
mContainerView.setClickable(true); |
mViewAndroidDelegate.updateCurrentContainerView(); |
+ for (ContainerViewObserver observer : mContainerViewObservers) { |
+ observer.onContainerViewChanged(mContainerView); |
+ } |
} finally { |
TraceEvent.end("ContentViewCore.setContainerView"); |
} |
} |
+ public void addContainerViewObserver(ContainerViewObserver observer) { |
+ mContainerViewObservers.addObserver(observer); |
+ } |
+ |
+ public void removeContainerViewObserver(ContainerViewObserver observer) { |
+ mContainerViewObservers.removeObserver(observer); |
+ } |
+ |
@CalledByNative |
void onNativeContentViewCoreDestroyed(long nativeContentViewCore) { |
assert nativeContentViewCore == mNativeContentViewCore; |
@@ -930,6 +943,7 @@ public class ContentViewCore |
mGestureStateListeners.clear(); |
ScreenOrientationListener.getInstance().removeObserver(this); |
mPositionObserver.clearListener(); |
+ mContainerViewObservers.clear(); |
} |
private void unregisterAccessibilityContentObserver() { |