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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java

Issue 2595263002: Introduce ViewRoot forwarding input/view events to native (Closed)
Patch Set: updateViewRoot, ... Created 3 years, 11 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: chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
index ff5a20582c9ff3163ef352d2dc295c98d30df9f5..a6a86080c13965624cc6d34473f9fafe8441d4a3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
@@ -124,13 +124,12 @@ public class CompositorViewHolder extends CoordinatorLayout
// If we've drawn at least one frame.
private boolean mHasDrawnOnce;
- private ViewRoot mViewRoot;
-
/**
* The information about {@link ContentView} for overlay panel. Used to adjust the backing
* size of the content accordingly.
*/
private ContentView mOverlayContentView;
+ private ViewRoot mOverlayViewRoot;
private int mOverlayContentWidthMeasureSpec = ContentView.DEFAULT_MEASURE_SPEC;
private int mOverlayContentHeightMeasureSpec = ContentView.DEFAULT_MEASURE_SPEC;
@@ -252,12 +251,14 @@ public class CompositorViewHolder extends CoordinatorLayout
/**
* Set the desired size of the overlay content view.
- * @param overlayContentView {@link ContentView} used for overlay panel.
+ * @param view {@link ContentView} used for overlay panel.
+ * @param root {@link ViewRoot} used for overlay panel.
* @param width The width of the content view in {@link MeasureSpec}.
* @param height The height of the content view in {@link MeasureSpec}.
*/
- public void setOverlayContentInfo(ContentView overlayContentView, int width, int height) {
- mOverlayContentView = overlayContentView;
+ public void setOverlayContentInfo(ContentView view, ViewRoot root, int width, int height) {
+ mOverlayContentView = view;
+ mOverlayViewRoot = root;
mOverlayContentWidthMeasureSpec = width;
mOverlayContentHeightMeasureSpec = height;
}
@@ -318,8 +319,6 @@ public class CompositorViewHolder extends CoordinatorLayout
mCompositorView.getResourceManager().getDynamicResourceLoader().registerResource(
R.id.control_container, mControlContainer.getToolbarResourceAdapter());
}
-
- mViewRoot = windowAndroid.getViewRoot();
}
/**
@@ -430,18 +429,26 @@ public class CompositorViewHolder extends CoordinatorLayout
return mCompositorView;
}
- private View getActiveView() {
+ private Tab getActiveTab() {
if (mLayoutManager == null || mTabModelSelector == null) return null;
- Tab tab = mTabModelSelector.getCurrentTab();
+ return mTabModelSelector.getCurrentTab();
+ }
+
+ private View getActiveView() {
+ Tab tab = getActiveTab();
return tab != null ? tab.getContentView() : null;
}
private ContentViewCore getActiveContent() {
- if (mLayoutManager == null || mTabModelSelector == null) return null;
- Tab tab = mTabModelSelector.getCurrentTab();
+ Tab tab = getActiveTab();
return tab != null ? tab.getActiveContentViewCore() : null;
}
+ private ViewRoot getActiveViewRoot() {
+ Tab tab = getActiveTab();
+ return tab != null ? tab.getViewRoot() : null;
+ }
+
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
@@ -952,12 +959,15 @@ public class CompositorViewHolder extends CoordinatorLayout
*/
private void adjustPhysicalBackingSize(ContentViewCore contentViewCore, int width, int height) {
ContentView contentView = (ContentView) contentViewCore.getContainerView();
- if (contentView == mOverlayContentView) {
+ ViewRoot viewRoot;
+ if (contentView != mOverlayContentView) {
+ viewRoot = getActiveViewRoot();
+ } else {
width = MeasureSpec.getSize(mOverlayContentWidthMeasureSpec);
height = MeasureSpec.getSize(mOverlayContentHeightMeasureSpec);
+ viewRoot = mOverlayViewRoot;
}
-
- mViewRoot.onPhysicalBackingSizeChanged(width, height);
+ if (viewRoot != null) viewRoot.onPhysicalBackingSizeChanged(width, height);
}
/**

Powered by Google App Engine
This is Rietveld 408576698