Commit d2101929 authored by Peter Kotwicz's avatar Peter Kotwicz Committed by Commit Bot

Daggerize WebappActivity

This CL daggerizes WebappActivity.

BUG=1016650

Change-Id: I06f75fdce90985bfb6a59efca0ce268032821375
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1873276
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Reviewed-by: default avatarPeter Conn <peconn@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#708801}
parent 25ac5638
...@@ -1797,6 +1797,7 @@ chrome_java_sources = [ ...@@ -1797,6 +1797,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenDialogView.java", "java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenDialogView.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewBinder.java", "java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewBinder.java",
"java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewDelegate.java", "java/src/org/chromium/chrome/browser/webapps/addtohomescreen/AddToHomescreenViewDelegate.java",
"java/src/org/chromium/chrome/browser/webapps/dependency_injection/WebappActivityComponent.java",
"java/src/org/chromium/chrome/browser/webauth/AuthenticatorFactory.java", "java/src/org/chromium/chrome/browser/webauth/AuthenticatorFactory.java",
"java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java", "java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java",
"java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java", "java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java",
......
...@@ -14,6 +14,7 @@ import org.chromium.base.ActivityState; ...@@ -14,6 +14,7 @@ import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus;
import org.chromium.base.CommandLine; import org.chromium.base.CommandLine;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabBuilder; import org.chromium.chrome.browser.tab.TabBuilder;
import org.chromium.chrome.browser.tab.TabDelegateFactory; import org.chromium.chrome.browser.tab.TabDelegateFactory;
...@@ -27,11 +28,13 @@ import org.chromium.content_public.browser.UiThreadTaskTraits; ...@@ -27,11 +28,13 @@ import org.chromium.content_public.browser.UiThreadTaskTraits;
/** /**
* Base class for task-focused activities that need to display a single tab. * Base class for task-focused activities that need to display a single tab.
* @param <C> - type of associated Dagger component.
* *
* Example applications that might use this Activity would be webapps and streaming media * Example applications that might use this Activity would be webapps and streaming media
* activities - anything where maintaining multiple tabs is unnecessary. * activities - anything where maintaining multiple tabs is unnecessary.
*/ */
public abstract class SingleTabActivity extends ChromeActivity { public abstract class SingleTabActivity<C extends ChromeActivityComponent>
extends ChromeActivity<C> {
private static final int PREWARM_RENDERER_DELAY_MS = 500; private static final int PREWARM_RENDERER_DELAY_MS = 500;
protected static final String BUNDLE_TAB_ID = "tabId"; protected static final String BUNDLE_TAB_ID = "tabId";
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
package org.chromium.chrome.browser.dependency_injection; package org.chromium.chrome.browser.dependency_injection;
import org.chromium.chrome.browser.AppHooksModule; import org.chromium.chrome.browser.AppHooksModule;
import org.chromium.chrome.browser.browserservices.SessionDataHolder;
import org.chromium.chrome.browser.browserservices.ClearDataDialogResultRecorder; import org.chromium.chrome.browser.browserservices.ClearDataDialogResultRecorder;
import org.chromium.chrome.browser.browserservices.SessionDataHolder;
import org.chromium.chrome.browser.browserservices.TrustedWebActivityClient; import org.chromium.chrome.browser.browserservices.TrustedWebActivityClient;
import org.chromium.chrome.browser.browserservices.permissiondelegation.NotificationPermissionUpdater; import org.chromium.chrome.browser.browserservices.permissiondelegation.NotificationPermissionUpdater;
import org.chromium.chrome.browser.browserservices.permissiondelegation.TrustedWebActivityPermissionManager; import org.chromium.chrome.browser.browserservices.permissiondelegation.TrustedWebActivityPermissionManager;
...@@ -16,6 +16,7 @@ import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActi ...@@ -16,6 +16,7 @@ import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActi
import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityModule; import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityModule;
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
import org.chromium.chrome.browser.preferences.ChromePreferenceManager; import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
import org.chromium.chrome.browser.webapps.dependency_injection.WebappActivityComponent;
import javax.inject.Singleton; import javax.inject.Singleton;
...@@ -31,6 +32,7 @@ public interface ChromeAppComponent { ...@@ -31,6 +32,7 @@ public interface ChromeAppComponent {
CustomTabActivityComponent createCustomTabActivityComponent(ChromeActivityCommonsModule module, CustomTabActivityComponent createCustomTabActivityComponent(ChromeActivityCommonsModule module,
CustomTabActivityModule customTabActivityModule); CustomTabActivityModule customTabActivityModule);
WebappActivityComponent createWebappActivityComponent(ChromeActivityCommonsModule module);
CustomTabsConnection resolveCustomTabsConnection(); CustomTabsConnection resolveCustomTabsConnection();
ChromePreferenceManager resolvePreferenceManager(); ChromePreferenceManager resolvePreferenceManager();
......
...@@ -31,6 +31,7 @@ import org.chromium.base.metrics.RecordUserAction; ...@@ -31,6 +31,7 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.task.PostTask; import org.chromium.base.task.PostTask;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.SingleTabActivity; import org.chromium.chrome.browser.SingleTabActivity;
import org.chromium.chrome.browser.WarmupManager; import org.chromium.chrome.browser.WarmupManager;
...@@ -39,6 +40,7 @@ import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProv ...@@ -39,6 +40,7 @@ import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProv
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.customtabs.CustomTabAppMenuPropertiesDelegate; import org.chromium.chrome.browser.customtabs.CustomTabAppMenuPropertiesDelegate;
import org.chromium.chrome.browser.customtabs.features.ImmersiveModeController; import org.chromium.chrome.browser.customtabs.features.ImmersiveModeController;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.metrics.WebApkUma; import org.chromium.chrome.browser.metrics.WebApkUma;
import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.EmptyTabObserver;
...@@ -53,6 +55,7 @@ import org.chromium.chrome.browser.ui.widget.TintedDrawable; ...@@ -53,6 +55,7 @@ import org.chromium.chrome.browser.ui.widget.TintedDrawable;
import org.chromium.chrome.browser.usage_stats.UsageStatsService; import org.chromium.chrome.browser.usage_stats.UsageStatsService;
import org.chromium.chrome.browser.util.AndroidTaskUtils; import org.chromium.chrome.browser.util.AndroidTaskUtils;
import org.chromium.chrome.browser.util.ColorUtils; import org.chromium.chrome.browser.util.ColorUtils;
import org.chromium.chrome.browser.webapps.dependency_injection.WebappActivityComponent;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.NavigationController; import org.chromium.content_public.browser.NavigationController;
import org.chromium.content_public.browser.NavigationHandle; import org.chromium.content_public.browser.NavigationHandle;
...@@ -68,7 +71,7 @@ import java.util.HashMap; ...@@ -68,7 +71,7 @@ import java.util.HashMap;
/** /**
* Displays a webapp in a nearly UI-less Chrome (InfoBars still appear). * Displays a webapp in a nearly UI-less Chrome (InfoBars still appear).
*/ */
public class WebappActivity extends SingleTabActivity { public class WebappActivity extends SingleTabActivity<WebappActivityComponent> {
public static final String WEBAPP_SCHEME = "webapp"; public static final String WEBAPP_SCHEME = "webapp";
private static final String TAG = "WebappActivity"; private static final String TAG = "WebappActivity";
...@@ -136,9 +139,6 @@ public class WebappActivity extends SingleTabActivity { ...@@ -136,9 +139,6 @@ public class WebappActivity extends SingleTabActivity {
*/ */
public WebappActivity() { public WebappActivity() {
mWebappInfo = createWebappInfo(null); mWebappInfo = createWebappInfo(null);
mTabObserverRegistrar = new TabObserverRegistrar(getLifecycleDispatcher());
mSplashController =
new SplashController(this, getLifecycleDispatcher(), mTabObserverRegistrar);
mDisclosureSnackbarController = new WebappDisclosureSnackbarController(); mDisclosureSnackbarController = new WebappDisclosureSnackbarController();
} }
...@@ -327,6 +327,16 @@ public class WebappActivity extends SingleTabActivity { ...@@ -327,6 +327,16 @@ public class WebappActivity extends SingleTabActivity {
initSplash(); initSplash();
} }
@Override
protected WebappActivityComponent createComponent(ChromeActivityCommonsModule commonsModule) {
WebappActivityComponent component =
ChromeApplication.getComponent().createWebappActivityComponent(commonsModule);
mTabObserverRegistrar = component.resolveTabObserverRegistrar();
mSplashController = component.resolveSplashController();
return component;
}
@Override @Override
public void finishNativeInitialization() { public void finishNativeInitialization() {
LayoutManager layoutDriver = new LayoutManager(getCompositorViewHolder()); LayoutManager layoutDriver = new LayoutManager(getCompositorViewHolder());
......
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.webapps.dependency_injection;
import org.chromium.chrome.browser.dependency_injection.ActivityScope;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.tab.TabObserverRegistrar;
import org.chromium.chrome.browser.webapps.SplashController;
import dagger.Subcomponent;
/**
* Activity-scoped component associated with
* {@link org.chromium.chrome.browser.webapps.WebappActivity}.
*/
@Subcomponent(modules = {ChromeActivityCommonsModule.class})
@ActivityScope
public interface WebappActivityComponent extends ChromeActivityComponent {
SplashController resolveSplashController();
TabObserverRegistrar resolveTabObserverRegistrar();
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment