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

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

Issue 2201483002: Improve transition between opaque and translucent compositor views. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: now without VR-breaking badness Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.compositor; 5 package org.chromium.chrome.browser.compositor;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.graphics.Canvas; 8 import android.graphics.Canvas;
9 import android.graphics.Color; 9 import android.graphics.Color;
10 import android.graphics.Paint; 10 import android.graphics.Paint;
11 import android.graphics.Rect; 11 import android.graphics.Rect;
12 import android.graphics.RectF; 12 import android.graphics.RectF;
13 import android.os.Bundle; 13 import android.os.Bundle;
14 import android.os.Handler; 14 import android.os.Handler;
15 import android.support.v4.view.ViewCompat; 15 import android.support.v4.view.ViewCompat;
16 import android.support.v4.view.accessibility.AccessibilityEventCompat; 16 import android.support.v4.view.accessibility.AccessibilityEventCompat;
17 import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; 17 import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
18 import android.support.v4.widget.ExploreByTouchHelper; 18 import android.support.v4.widget.ExploreByTouchHelper;
19 import android.util.AttributeSet; 19 import android.util.AttributeSet;
20 import android.util.Pair; 20 import android.util.Pair;
21 import android.view.DragEvent; 21 import android.view.DragEvent;
22 import android.view.MotionEvent; 22 import android.view.MotionEvent;
23 import android.view.SurfaceView;
24 import android.view.View; 23 import android.view.View;
25 import android.view.ViewGroup; 24 import android.view.ViewGroup;
26 import android.view.accessibility.AccessibilityEvent; 25 import android.view.accessibility.AccessibilityEvent;
27 import android.widget.FrameLayout; 26 import android.widget.FrameLayout;
28 27
29 import org.chromium.base.SysUtils; 28 import org.chromium.base.SysUtils;
30 import org.chromium.base.TraceEvent; 29 import org.chromium.base.TraceEvent;
31 import org.chromium.base.annotations.SuppressFBWarnings; 30 import org.chromium.base.annotations.SuppressFBWarnings;
32 import org.chromium.chrome.R; 31 import org.chromium.chrome.R;
33 import org.chromium.chrome.browser.compositor.Invalidator.Client; 32 import org.chromium.chrome.browser.compositor.Invalidator.Client;
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 } 410 }
412 411
413 /** 412 /**
414 * @return The {@link LayoutManager} associated with this view. 413 * @return The {@link LayoutManager} associated with this view.
415 */ 414 */
416 public LayoutManager getLayoutManager() { 415 public LayoutManager getLayoutManager() {
417 return mLayoutManager; 416 return mLayoutManager;
418 } 417 }
419 418
420 /** 419 /**
421 * @return The SurfaceView used by the Compositor. 420 * @return The SurfaceView proxy used by the Compositor.
422 */ 421 */
423 public SurfaceView getSurfaceView() { 422 public View getCompositorView() {
424 return mCompositorView; 423 return mCompositorView;
425 } 424 }
426 425
427 private View getActiveView() { 426 private View getActiveView() {
428 if (mLayoutManager == null || mTabModelSelector == null) return null; 427 if (mLayoutManager == null || mTabModelSelector == null) return null;
429 Tab tab = mTabModelSelector.getCurrentTab(); 428 Tab tab = mTabModelSelector.getCurrentTab();
430 return tab != null ? tab.getContentView() : null; 429 return tab != null ? tab.getContentView() : null;
431 } 430 }
432 431
433 private ContentViewCore getActiveContent() { 432 private ContentViewCore getActiveContent() {
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 * Detach and return the {@link TabModelSelector} in order to disconnect thi s 968 * Detach and return the {@link TabModelSelector} in order to disconnect thi s
970 * {@link CompositorViewHolder} so that VR can take ownership of Chrome's re ndering. 969 * {@link CompositorViewHolder} so that VR can take ownership of Chrome's re ndering.
971 * @return The detached {@link TabModelSelector}. 970 * @return The detached {@link TabModelSelector}.
972 */ 971 */
973 public TabModelSelector detachForVR() { 972 public TabModelSelector detachForVR() {
974 if (mTabModelSelector != null) mTabModelSelector.removeObserver(mTabMode lSelectorObserver); 973 if (mTabModelSelector != null) mTabModelSelector.removeObserver(mTabMode lSelectorObserver);
975 TabModelSelector selector = mTabModelSelector; 974 TabModelSelector selector = mTabModelSelector;
976 mTabModelSelector = null; 975 mTabModelSelector = null;
977 mLayerTitleCache.setTabModelSelector(null); 976 mLayerTitleCache.setTabModelSelector(null);
978 setTab(null); 977 setTab(null);
979 getSurfaceView().setVisibility(View.INVISIBLE); 978 getCompositorView().setVisibility(View.INVISIBLE);
980 return selector; 979 return selector;
981 } 980 }
982 981
983 /** 982 /**
984 * Restores the {@link TabModelSelector} to this {@link CompositorViewHolder } after exiting VR 983 * Restores the {@link TabModelSelector} to this {@link CompositorViewHolder } after exiting VR
985 * so that it can take back ownership of Chrome's rendering. 984 * so that it can take back ownership of Chrome's rendering.
986 * @param tabModelSelector 985 * @param tabModelSelector
987 */ 986 */
988 public void onExitVR(TabModelSelector tabModelSelector) { 987 public void onExitVR(TabModelSelector tabModelSelector) {
989 getSurfaceView().setVisibility(View.VISIBLE); 988 getCompositorView().setVisibility(View.VISIBLE);
990 attachToTabModelSelector(tabModelSelector); 989 attachToTabModelSelector(tabModelSelector);
991 } 990 }
992 991
993 private void attachToTabModelSelector(TabModelSelector tabModelSelector) { 992 private void attachToTabModelSelector(TabModelSelector tabModelSelector) {
994 assert mTabModelSelector == null; 993 assert mTabModelSelector == null;
995 mTabModelSelector = tabModelSelector; 994 mTabModelSelector = tabModelSelector;
996 mTabModelSelector.addObserver(mTabModelSelectorObserver); 995 mTabModelSelector.addObserver(mTabModelSelectorObserver);
997 996
998 mLayerTitleCache.setTabModelSelector(mTabModelSelector); 997 mLayerTitleCache.setTabModelSelector(mTabModelSelector);
999 onContentChanged(); 998 onContentChanged();
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1125 if (mPixelRect.width() == 0) { 1124 if (mPixelRect.width() == 0) {
1126 mPixelRect.right = mPixelRect.left + 1; 1125 mPixelRect.right = mPixelRect.left + 1;
1127 } 1126 }
1128 if (mPixelRect.height() == 0) { 1127 if (mPixelRect.height() == 0) {
1129 mPixelRect.bottom = mPixelRect.top + 1; 1128 mPixelRect.bottom = mPixelRect.top + 1;
1130 } 1129 }
1131 return mPixelRect; 1130 return mPixelRect;
1132 } 1131 }
1133 } 1132 }
1134 } 1133 }
OLDNEW
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java ('k') | chrome/android/java_sources.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698