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

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: Sync & rebase 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 7372446724b7a36b2384de50e0f53e1316eba694..c76dfd3af63c06bfc478b312a3880616807db039 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);
+ }
+
+ /**
* 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;
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698