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

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

Issue 1237913002: [Contextual Search] Adds basic support for narrow Search Panel. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 ef454af67f3c07c6ca6e4338cc7fda6e9600f334..be0c591ae48f78552666d1a34d009e9839254f49 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
@@ -48,6 +48,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.widget.ControlContainer;
import org.chromium.content.browser.ContentReadbackHandler;
+import org.chromium.content.browser.ContentViewClient;
import org.chromium.content.browser.ContentViewCore;
import org.chromium.content.browser.SPenSupport;
import org.chromium.ui.UiUtils;
@@ -432,7 +433,7 @@ public class CompositorViewHolder extends FrameLayout
mLayoutManager.getActiveLayout().getAllContentViewCores(sCachedCVCList);
for (int i = 0; i < sCachedCVCList.size(); i++) {
- sCachedCVCList.get(i).onPhysicalBackingSizeChanged(width, height);
+ adjustPhysicalBackingSize(sCachedCVCList.get(i), width, height);
}
sCachedCVCList.clear();
}
@@ -932,12 +933,42 @@ public class CompositorViewHolder extends FrameLayout
contentViewCore.setCurrentMotionEventOffsets(0.f, 0.f);
contentViewCore.setTopControlsHeight(
getTopControlsHeightPixels(), contentViewCore.doTopControlsShrinkBlinkSize());
- contentViewCore.onPhysicalBackingSizeChanged(
+
+ adjustPhysicalBackingSize(contentViewCore,
mCompositorView.getWidth(), mCompositorView.getHeight());
+
contentViewCore.onOverdrawBottomHeightChanged(mCompositorView.getOverdrawBottomHeight());
}
/**
+ * Adjusts the physical backing size of a given ContentViewCore. This method will first check
+ * if the ContentViewCore's client wants to override the size and, if so, it will use the
+ * values provided by the {@link ContentViewClient#getDesiredWidthMeasureSpec()} and
+ * {@link ContentViewClient#getDesiredHeightMeasureSpec()} methods. If no value is provided
+ * in one of these methods, the values from the |width| and |height| arguments will be
+ * used instead.
+ *
+ * @param contentViewCore The {@link ContentViewCore} to resize.
+ * @param width The default width.
+ * @param height The default height.
+ */
+ private void adjustPhysicalBackingSize(ContentViewCore contentViewCore, int width, int height) {
+ ContentViewClient client = contentViewCore.getContentViewClient();
+
+ int desiredWidthMeasureSpec = client.getDesiredWidthMeasureSpec();
+ if (MeasureSpec.getMode(desiredWidthMeasureSpec) != MeasureSpec.UNSPECIFIED) {
+ width = MeasureSpec.getSize(desiredWidthMeasureSpec);
+ }
+
+ int desiredHeightMeasureSpec = client.getDesiredHeightMeasureSpec();
+ if (MeasureSpec.getMode(desiredHeightMeasureSpec) != MeasureSpec.UNSPECIFIED) {
+ height = MeasureSpec.getSize(desiredHeightMeasureSpec);
+ }
+
+ contentViewCore.onPhysicalBackingSizeChanged(width, height);
donnd 2015/07/14 22:24:12 Should this be called even when the width and heig
David Trainor- moved to gerrit 2015/07/14 23:12:00 I think internally it checks the values and ignore
pedro (no code reviews) 2015/07/15 00:19:16 Acknowledged.
pedro (no code reviews) 2015/07/15 00:19:16 I tried to keep the previous behavior, so whenever
+ }
+
+ /**
* Resize {@code view} to match the size of this {@link FrameLayout}. This will only happen if
* {@code view} is not {@code null} and if {@link View#getWindowToken()} returns {@code null}
* (the {@link View} is not part of the view hierarchy).
@@ -954,7 +985,7 @@ public class CompositorViewHolder extends FrameLayout
int height = getHeight();
view.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
- view.layout(0, 0, width, height);
+ view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
return true;
}

Powered by Google App Engine
This is Rietveld 408576698