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

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

Issue 2299613003: New Compositor and tab content
Patch Set: more clean up Created 4 years, 4 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/ChromeTabbedActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index e4516704b844dbf988ed4a45b330130a1d1772ca..838cf37744ec75ec35877bcf6dbf2b6a76bb1e3d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -9,6 +9,7 @@ import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
@@ -111,6 +112,19 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
import java.util.List;
+import android.graphics.PixelFormat;
+import android.graphics.SurfaceTexture;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import org.chromium.chrome.browser.vr_shell.VrShell;
+
+import org.chromium.ui.base.WindowAndroid;
+
+import org.chromium.base.Log;
+import org.chromium.chrome.browser.tab.Tab;
+
/**
* This is the main activity for ChromeMobile when not running in document mode. All the tabs
* are accessible via a chrome specific tab switching UI.
@@ -215,6 +229,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
// Time at which an intent was received and handled.
private long mIntentHandlingTimeMs = 0;
+ private VrShell mVrShellView;
+
private class TabbedAssistStatusHandler extends AssistStatusHandler {
public TabbedAssistStatusHandler(Activity activity) {
super(activity);
@@ -291,6 +307,13 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
if (state != null && state.containsKey(FRE_RUNNING)) {
mIsOnFirstRun = state.getBoolean(FRE_RUNNING);
}
+ if (getTabModelSelector().getCurrentTab() != null) {
+ Log.e("bshe", "current tab exist!!!!!!!");
+ }
+ Log.e("bshe", "compositor=====");
+ if (mVrShellView != null) {
+ mVrShellView.onNativeLibraryReady(getWindowAndroid());
+ }
} finally {
TraceEvent.end("ChromeTabbedActivity.initializeCompositor");
}
@@ -333,7 +356,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
refreshSignIn();
- initializeUI();
+ if (!mVrMode) {
+ initializeUI();
+ }
// The dataset has already been created, we need to initialize our state.
mTabModelSelectorImpl.notifyChanged();
@@ -353,6 +378,18 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
}
@Override
+ public void onResume() {
+ super.onResume();
+ if (mVrShellView != null) mVrShellView.onResume();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ if (mVrShellView != null) mVrShellView.onPause();
+ }
+
+ @Override
public void onResumeWithNative() {
super.onResumeWithNative();
CookiesFetcher.restoreCookies(this);
@@ -391,6 +428,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
public void onStart() {
super.onStart();
StartupMetrics.getInstance().updateIntent(getIntent());
+ if (getIntent().getBooleanExtra("android.intent.extra.VR_LAUNCH", false /* default */)) {
+ Log.e("bshe", "from vr launder");
+ }
}
@Override
@@ -474,15 +514,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
mLayoutManager.addOverviewModeObserver(this);
// TODO(yusufo): get rid of findViewById(R.id.url_bar).
- initializeCompositorContent(mLayoutManager, findViewById(R.id.url_bar),
- mContentContainer, mControlContainer);
+ if (!mVrMode) {
+ initializeCompositorContent(mLayoutManager, findViewById(R.id.url_bar),
+ mContentContainer, mControlContainer);
+ }
mTabModelSelectorImpl.setOverviewModeBehavior(mLayoutManager);
mUndoBarPopupController.initialize();
// Adjust the content container if we're not entering fullscreen mode.
- if (getFullscreenManager() == null) {
+ if (getFullscreenManager() == null && !mVrMode) {
float controlHeight = getResources().getDimension(R.dimen.control_container_height);
((FrameLayout.LayoutParams) mContentContainer.getLayoutParams()).topMargin =
(int) controlHeight;
@@ -822,7 +864,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
assert false : "Unknown TabOpenType: " + tabOpenType;
break;
}
- getToolbarManager().setUrlBarFocus(false);
+ if (!mVrMode) {
+ getToolbarManager().setUrlBarFocus(false);
+ }
}
@Override
@@ -921,6 +965,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
@Override
public void postInflationStartup() {
+ if (mVrMode) {
+ addVrViews();
+ setupVrModeWindowFlags();
+ }
+
super.postInflationStartup();
// Critical path for startup. Create the minimum objects needed
@@ -935,8 +984,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
- mContentContainer = (ViewGroup) findViewById(android.R.id.content);
- mControlContainer = (ToolbarControlContainer) findViewById(R.id.control_container);
+ if (!mVrMode) {
+ mContentContainer = (ViewGroup) findViewById(android.R.id.content);
+ mControlContainer = (ToolbarControlContainer) findViewById(R.id.control_container);
+ }
mUndoBarPopupController = new UndoBarController(this, mTabModelSelectorImpl,
getSnackbarManager());
@@ -1004,11 +1055,34 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
});
}
+ protected void onTabReady(Tab tab) {
+ if (mVrShellView != null) mVrShellView.onWebContentsReady(tab.getWebContents());
+ }
+
+ private void addVrViews() {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ mVrShellView = new VrShell(this);
+ WindowManager.LayoutParams params = new WindowManager.LayoutParams(
+ WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT,
+ WindowManager.LayoutParams.TYPE_APPLICATION, 0, PixelFormat.OPAQUE);
+ this.addContentView(mVrShellView, params);
+ }
+
+ private void setupVrModeWindowFlags() {
+ Window window = getWindow();
+ window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
+ }
+
private void createTabModelSelectorImpl(Bundle savedInstanceState) {
// We determine the model as soon as possible so every systems get initialized coherently.
boolean startIncognito = savedInstanceState != null
&& savedInstanceState.getBoolean("is_incognito_selected", false);
int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0;
+ Log.e("bshe", "call request selector");
mTabModelSelectorImpl = (TabModelSelectorImpl)
TabWindowManager.getInstance().requestSelector(this, getWindowAndroid(), index);
if (mTabModelSelectorImpl == null) {
@@ -1039,6 +1113,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
DataReductionPromoInfoBar.maybeLaunchPromoInfoBar(ChromeTabbedActivity.this,
tab.getWebContents(), url, tab.isShowingErrorPage(), isFragmentNavigation,
statusCode);
+ if (ChromeTabbedActivity.this.mVrMode) {
+ (ContentViewCore.fromWebContents(tab.getWebContents()))
+ .onSizeChanged(684, 332, 0, 0);
+ ChromeTabbedActivity.this.onTabReady(tab);
+ }
}
};
@@ -1370,6 +1449,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
mUndoBarPopupController = null;
}
+ if (mVrShellView != null) {
+ mVrShellView.shutdown();
+ mVrShellView = null;
+ }
+
super.onDestroyInternal();
}

Powered by Google App Engine
This is Rietveld 408576698