diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java
index 6182f0c0102eec..9b41535a36977c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/ChromePageInfoControllerDelegate.java
@@ -31,10 +31,9 @@
import org.chromium.chrome.browser.vr.VrModuleProvider;
import org.chromium.components.content_settings.CookieControlsBridge;
import org.chromium.components.content_settings.CookieControlsObserver;
+import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
import org.chromium.components.feature_engagement.EventConstants;
import org.chromium.components.page_info.PageInfoControllerDelegate;
-import org.chromium.components.page_info.PageInfoControllerDelegate.OfflinePageState;
-import org.chromium.components.page_info.PageInfoControllerDelegate.PreviewPageState;
import org.chromium.components.page_info.PageInfoView.PageInfoViewParams;
import org.chromium.components.security_state.ConnectionSecurityLevel;
import org.chromium.components.security_state.SecurityStateModel;
@@ -54,6 +53,7 @@
public class ChromePageInfoControllerDelegate extends PageInfoControllerDelegate {
private final WebContents mWebContents;
private final Context mContext;
+ private final Profile mProfile;
private String mOfflinePageCreationDate;
private OfflinePageLoadUrlDelegate mOfflinePageLoadUrlDelegate;
@@ -69,16 +69,14 @@ public ChromePageInfoControllerDelegate(Context context, WebContents webContents
CookieControlsBridge.isCookieControlsEnabled(Profile.fromWebContents(webContents)));
mContext = context;
mWebContents = webContents;
+ mProfile = Profile.fromWebContents(mWebContents);
+
mPreviewPageState = getPreviewPageStateAndRecordUma();
initOfflinePageParams();
mOfflinePageLoadUrlDelegate = offlinePageLoadUrlDelegate;
initHttpsImageCompressionStateAndRecordUMA();
}
- private Profile profile() {
- return Profile.fromWebContents(mWebContents);
- }
-
/**
* Return the state of the webcontents showing the preview.
*/
@@ -93,7 +91,7 @@ private Profile profile() {
: PreviewPageState.INSECURE_PAGE_PREVIEW;
PreviewsUma.recordPageInfoOpened(bridge.getPreviewsType(mWebContents));
- TrackerFactory.getTrackerForProfile(profile()).notifyEvent(
+ TrackerFactory.getTrackerForProfile(mProfile).notifyEvent(
EventConstants.PREVIEWS_VERBOSE_STATUS_OPENED);
}
return previewPageState;
@@ -254,9 +252,17 @@ public void showSiteSettings(String url) {
@Override
@NonNull
public CookieControlsBridge createCookieControlsBridge(CookieControlsObserver observer) {
- Profile profile = Profile.fromWebContents(mWebContents);
return new CookieControlsBridge(observer, mWebContents,
- profile.isOffTheRecord() ? profile.getOriginalProfile() : null);
+ mProfile.isOffTheRecord() ? mProfile.getOriginalProfile() : null);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @NonNull
+ public BrowserContextHandle getBrowserContext() {
+ return mProfile;
}
@VisibleForTesting
diff --git a/components/page_info/android/BUILD.gn b/components/page_info/android/BUILD.gn
index e5095d6182c77f..437090a5af48f6 100644
--- a/components/page_info/android/BUILD.gn
+++ b/components/page_info/android/BUILD.gn
@@ -82,6 +82,7 @@ android_library("java") {
"java/src/org/chromium/components/page_info/PageInfoCookiesController.java",
"java/src/org/chromium/components/page_info/PageInfoDialog.java",
"java/src/org/chromium/components/page_info/PageInfoFeatureList.java",
+ "java/src/org/chromium/components/page_info/PageInfoMainPageController.java",
"java/src/org/chromium/components/page_info/PageInfoPermissionsController.java",
"java/src/org/chromium/components/page_info/PageInfoRowView.java",
"java/src/org/chromium/components/page_info/PageInfoSubpage.java",
diff --git a/components/page_info/android/java/res/layout/page_info_subpage.xml b/components/page_info/android/java/res/layout/page_info_subpage.xml
index 66fdbf0a9cbb55..fffcc401ee3d2c 100644
--- a/components/page_info/android/java/res/layout/page_info_subpage.xml
+++ b/components/page_info/android/java/res/layout/page_info_subpage.xml
@@ -11,37 +11,35 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingBottom="8dp"
- android:orientation="vertical"
- android:background="@color/sheet_bg_color">
+ android:background="@color/sheet_bg_color"
+ android:orientation="vertical">
-
+ android:ellipsize="end"
+ android:lineSpacingExtra="6dp"
+ android:paddingVertical="16dp"
+ android:textAlignment="center"
+ android:textAppearance="@style/TextAppearance.TextLarge.Primary" />
-
+
-
@@ -49,19 +47,14 @@
android:id="@+id/subpage_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_below="@id/subpage_url"
- android:layout_toEndOf="@id/subpage_back_button"
- android:gravity="center_vertical"
- android:paddingBottom="12dp"
- app:chromeDrawableTint="@color/default_icon_color"
- android:textAppearance="@style/TextAppearance.TextLarge.Primary"/>
-
-
+ android:layout_marginVertical="12dp"
+ android:textAppearance="@style/TextAppearance.TextLarge.Primary" />
+
+ android:layout_height="match_parent" />
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoConnectionController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoConnectionController.java
index 63c9428e1fcc23..f70d59dd848919 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoConnectionController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoConnectionController.java
@@ -11,13 +11,14 @@
* Class for controlling the page info connection section.
*/
public class PageInfoConnectionController implements PageInfoSubpageController {
- private PageInfoController mMainController;
- private PageInfoViewV2 mView;
+ private PageInfoMainPageController mMainController;
+ private PageInfoRowView mRowView;
private String mTitle;
- public PageInfoConnectionController(PageInfoController mainController, PageInfoViewV2 view) {
+ public PageInfoConnectionController(
+ PageInfoMainPageController mainController, PageInfoRowView view) {
mMainController = mainController;
- mView = view;
+ mRowView = view;
}
private void launchSubpage() {
@@ -36,7 +37,10 @@ public View createViewForSubpage(ViewGroup parent) {
}
@Override
- public void willRemoveSubpage() {}
+ public void onSubPageAttached() {}
+
+ @Override
+ public void onSubpageRemoved() {}
public void setConnectionInfo(PageInfoView.ConnectionInfoParams params) {
mTitle = params.summary != null ? params.summary.toString() : null;
@@ -45,6 +49,6 @@ public void setConnectionInfo(PageInfoView.ConnectionInfoParams params) {
rowParams.subtitle = params.message != null ? params.message.toString() : null;
rowParams.visible = rowParams.title != null || rowParams.subtitle != null;
rowParams.clickCallback = this::launchSubpage;
- mView.getConnectionRowView().setParams(rowParams);
+ mRowView.setParams(rowParams);
}
}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
index f89b8b3abea08b..07c2686b948924 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
@@ -27,7 +27,6 @@
import androidx.core.view.ViewCompat;
import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.base.Consumer;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.metrics.RecordUserAction;
@@ -37,6 +36,7 @@
import org.chromium.components.content_settings.CookieControlsObserver;
import org.chromium.components.content_settings.CookieControlsStatus;
import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
+import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.components.omnibox.AutocompleteSchemeClassifier;
import org.chromium.components.omnibox.OmniboxUrlEmphasizer;
@@ -65,9 +65,9 @@
/**
* Java side of Android implementation of the page info UI.
*/
-public class PageInfoController implements ModalDialogProperties.Controller,
- SystemSettingsActivityRequiredListener,
- CookieControlsObserver {
+public class PageInfoController
+ implements PageInfoMainPageController, ModalDialogProperties.Controller,
+ SystemSettingsActivityRequiredListener, CookieControlsObserver {
@IntDef({OpenedFromSource.MENU, OpenedFromSource.TOOLBAR, OpenedFromSource.VR})
@Retention(RetentionPolicy.SOURCE)
public @interface OpenedFromSource {
@@ -117,8 +117,6 @@ public class PageInfoController implements ModalDialogProperties.Controller,
// task is pending.
private Runnable mPendingRunAfterDismissTask;
- private Consumer mRunAfterDismissConsumer;
-
// Reference to last created PageInfoController for testing.
private static WeakReference sLastPageInfoControllerForTesting;
@@ -166,12 +164,6 @@ public PageInfoController(WebContents webContents, int securityLevel, String pub
mDelegate = delegate;
mIsV2Enabled = PageInfoFeatureList.isEnabled(PageInfoFeatureList.PAGE_INFO_V2);
mPermissionParamsListBuilderDelegate = permissionParamsListBuilderDelegate;
- mRunAfterDismissConsumer = new Consumer() {
- @Override
- public void accept(Runnable r) {
- runAfterDismiss(r);
- }
- };
PageInfoViewParams viewParams = new PageInfoViewParams();
mWindowAndroid = webContents.getTopLevelNativeWindow();
@@ -249,8 +241,8 @@ public void accept(Runnable r) {
if (mCookieBridge != null) mCookieBridge.onUiClosing();
};
- mDelegate.initPreviewUiParams(viewParams, mRunAfterDismissConsumer);
- mDelegate.initOfflinePageUiParams(viewParams, mRunAfterDismissConsumer);
+ mDelegate.initPreviewUiParams(viewParams, this::runAfterDismiss);
+ mDelegate.initOfflinePageUiParams(viewParams, this::runAfterDismiss);
if (!mIsInternalPage && !mDelegate.isShowingOfflinePage() && !mDelegate.isShowingPreview()
&& mDelegate.isInstantAppAvailable(mFullUrl)) {
@@ -273,10 +265,12 @@ public void accept(Runnable r) {
if (isSheet(mContext)) mView.setBackgroundColor(Color.WHITE);
if (mIsV2Enabled) {
PageInfoViewV2 view2 = (PageInfoViewV2) mView;
- mConnectionController = new PageInfoConnectionController(this, view2);
- mPermissionsController = new PageInfoPermissionsController(this, view2);
- mCookiesController =
- new PageInfoCookiesController(this, view2, viewParams.cookieControlsShown);
+ mConnectionController =
+ new PageInfoConnectionController(this, view2.getConnectionRowView());
+ mPermissionsController =
+ new PageInfoPermissionsController(this, view2.getPermissionsRowView());
+ mCookiesController = new PageInfoCookiesController(
+ this, view2.getCookiesRowView(), viewParams.cookieControlsShown, mFullUrl);
} else {
mView.showPerformanceInfo(mDelegate.shouldShowPerformanceBadge(mFullUrl));
mView.showHttpsImageCompressionInfo(mDelegate.isHttpsImageCompressionApplied());
@@ -571,10 +565,16 @@ PageInfoControllerDelegate getDelegate() {
return mDelegate;
}
+ @Override
+ public BrowserContextHandle getBrowserContext() {
+ return mDelegate.getBrowserContext();
+ }
+
/**
* Launches a subpage with the specified params.
*/
- void launchSubpage(PageInfoSubpageController controller) {
+ @Override
+ public void launchSubpage(PageInfoSubpageController controller) {
mSubpageController = controller;
PageInfoSubpage.Params subpageParams = new PageInfoSubpage.Params();
subpageParams.url = mDisplayUrlBuilder;
@@ -583,10 +583,12 @@ void launchSubpage(PageInfoSubpageController controller) {
mSubpage = new PageInfoSubpage(mContext, subpageParams);
mSubpage.setBackButtonOnClickListener(view -> exitSubpage());
View subview = mSubpageController.createViewForSubpage(mSubpage);
+
if (subview != null) {
((FrameLayout) mSubpage.findViewById(R.id.placeholder)).addView(subview);
}
replaceView(mView, mSubpage);
+ controller.onSubPageAttached();
}
private ViewGroup getParent(View view) {
@@ -615,8 +617,8 @@ private void replaceView(View currentView, View newView) {
* Switches back to the main page info view.
*/
private void exitSubpage() {
- mSubpageController.willRemoveSubpage();
replaceView(mSubpage, mView);
+ mSubpageController.onSubpageRemoved();
mSubpage = null;
mSubpageController = null;
}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoControllerDelegate.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoControllerDelegate.java
index a7ce7132acf7f8..aedffd5441584e 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoControllerDelegate.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoControllerDelegate.java
@@ -14,6 +14,7 @@
import org.chromium.base.supplier.Supplier;
import org.chromium.components.content_settings.CookieControlsBridge;
import org.chromium.components.content_settings.CookieControlsObserver;
+import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
import org.chromium.components.omnibox.AutocompleteSchemeClassifier;
import org.chromium.components.page_info.PageInfoView.PageInfoViewParams;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -161,7 +162,7 @@ public boolean isShowingOfflinePage() {
/**
* Initialize viewParams with Offline Page UI info, if any.
* @param viewParams The PageInfoViewParams to set state on.
- * @param consumer Used to set "open Online" button callback for offline page.
+ * @param runAfterDismiss Used to set "open Online" button callback for offline page.
*/
public void initOfflinePageUiParams(
PageInfoViewParams viewParams, Consumer runAfterDismiss) {
@@ -205,4 +206,10 @@ public boolean isSiteSettingsAvailable() {
@NonNull
public abstract CookieControlsBridge createCookieControlsBridge(
CookieControlsObserver observer);
+
+ /**
+ * @return Returns the browser context associated with this dialog.
+ */
+ @NonNull
+ public abstract BrowserContextHandle getBrowserContext();
}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
index 9fa99d0790a900..cea21ae91072dc 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoCookiesController.java
@@ -11,20 +11,23 @@
* Class for controlling the page info cookies section.
*/
public class PageInfoCookiesController implements PageInfoSubpageController {
- private PageInfoController mMainController;
- private PageInfoViewV2 mView;
+ private PageInfoMainPageController mMainController;
+ private PageInfoRowView mRowView;
+ private String mFullUrl;
private String mTitle;
- public PageInfoCookiesController(
- PageInfoController mainController, PageInfoViewV2 view, boolean isVisible) {
+ public PageInfoCookiesController(PageInfoMainPageController mainController,
+ PageInfoRowView rowView, boolean isVisible, String fullUrl) {
mMainController = mainController;
- mView = view;
- mTitle = mView.getContext().getResources().getString(R.string.cookies_title);
+ mRowView = rowView;
+ mFullUrl = fullUrl;
+ mTitle = mRowView.getContext().getResources().getString(R.string.cookies_title);
+
PageInfoRowView.ViewParams rowParams = new PageInfoRowView.ViewParams();
rowParams.visible = isVisible;
rowParams.title = mTitle;
rowParams.clickCallback = this::launchSubpage;
- mView.getCookiesRowView().setParams(rowParams);
+ mRowView.setParams(rowParams);
}
private void launchSubpage() {
@@ -43,11 +46,14 @@ public View createViewForSubpage(ViewGroup parent) {
}
@Override
- public void willRemoveSubpage() {}
+ public void onSubPageAttached() {}
+
+ @Override
+ public void onSubpageRemoved() {}
public void onBlockedCookiesCountChanged(int blockedCookies) {
- String subtitle = mView.getContext().getResources().getQuantityString(
+ String subtitle = mRowView.getContext().getResources().getQuantityString(
R.plurals.cookie_controls_blocked_cookies, blockedCookies, blockedCookies);
- mView.getCookiesRowView().updateSubtitle(subtitle);
+ mRowView.updateSubtitle(subtitle);
}
}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoMainPageController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoMainPageController.java
new file mode 100644
index 00000000000000..e1541d581fe889
--- /dev/null
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoMainPageController.java
@@ -0,0 +1,23 @@
+// Copyright 2020 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.components.page_info;
+
+import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
+
+/**
+ * Interface for a page info main page controller.
+ */
+public interface PageInfoMainPageController {
+ /**
+ * Launches the PageInfoSubpage provided by |pageInfoCookiesController|.
+ * @param controller The controller providing a PageInfoSubpage.
+ */
+ void launchSubpage(PageInfoSubpageController controller);
+
+ /**
+ * @return A BrowserContext for this dialog.
+ */
+ BrowserContextHandle getBrowserContext();
+}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
index e791c7da1f241a..74b332e09f4b84 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoPermissionsController.java
@@ -11,13 +11,14 @@
* Class for controlling the page info permissions section.
*/
public class PageInfoPermissionsController implements PageInfoSubpageController {
- private PageInfoController mMainController;
- private PageInfoViewV2 mView;
+ private PageInfoMainPageController mMainController;
+ private PageInfoRowView mRowView;
private String mTitle;
- public PageInfoPermissionsController(PageInfoController mainController, PageInfoViewV2 view) {
+ public PageInfoPermissionsController(
+ PageInfoMainPageController mainController, PageInfoRowView view) {
mMainController = mainController;
- mView = view;
+ mRowView = view;
}
private void launchSubpage() {
@@ -36,16 +37,20 @@ public View createViewForSubpage(ViewGroup parent) {
}
@Override
- public void willRemoveSubpage() {}
+ public void onSubPageAttached() {}
+
+ @Override
+ public void onSubpageRemoved() {}
public void setPermissions(PageInfoView.PermissionParams params) {
- mTitle = mView.getContext().getResources().getString(R.string.page_info_permissions_title);
+ mTitle = mRowView.getContext().getResources().getString(
+ R.string.page_info_permissions_title);
PageInfoRowView.ViewParams rowParams = new PageInfoRowView.ViewParams();
rowParams.visible = true;
rowParams.title = mTitle;
// TODO(crbug.com/1077766): Create a permissions subtitle string that represents
// the state, using the PageInfoView.PermissionParams and potentially R.plurals.
rowParams.clickCallback = this::launchSubpage;
- mView.getPermissionsRowView().setParams(rowParams);
+ mRowView.setParams(rowParams);
}
}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpage.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpage.java
index 5341738665b014..0dfe41f944483d 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpage.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpage.java
@@ -8,9 +8,10 @@
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
-import android.widget.ImageView;
import android.widget.TextView;
+import org.chromium.ui.widget.ChromeImageButton;
+
/**
* Represents a particular page info subpage.
*/
@@ -25,24 +26,20 @@ public static class Params {
public String subpageTitle;
}
- private PageInfoView.ElidedUrlTextView mUrlTitle;
- private ImageView mBackButton;
- private TextView mSubpageTitle;
-
public PageInfoSubpage(Context context, Params params) {
super(context);
LayoutInflater.from(context).inflate(R.layout.page_info_subpage, this, true);
// Set the url title.
- mUrlTitle = findViewById(R.id.subpage_url);
- mUrlTitle.setUrl(params.url, params.urlOriginLength);
+ PageInfoView.ElidedUrlTextView urlTitle = findViewById(R.id.subpage_url);
+ urlTitle.setUrl(params.url, params.urlOriginLength);
// Set the back button.
- mBackButton = findViewById(R.id.subpage_back_button);
// Set the page title.
- mSubpageTitle = findViewById(R.id.subpage_title);
- mSubpageTitle.setText(params.subpageTitle);
+ TextView subpageTitle = findViewById(R.id.subpage_title);
+ subpageTitle.setText(params.subpageTitle);
}
public void setBackButtonOnClickListener(View.OnClickListener listener) {
- mBackButton.setOnClickListener(listener);
+ ChromeImageButton backButton = findViewById(R.id.subpage_back_button);
+ backButton.setOnClickListener(listener);
}
}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpageController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpageController.java
index de1620f8064bb1..d26d9ca88fc32d 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpageController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoSubpageController.java
@@ -22,7 +22,12 @@ public interface PageInfoSubpageController {
View createViewForSubpage(ViewGroup parent);
/**
- * Called before the subpage closes in order to perform any necessary cleanup.
+ * Called when the subpage was added to the view hierarchy.
*/
- void willRemoveSubpage();
+ void onSubPageAttached();
+
+ /**
+ * Called after the subpage closes in order to perform any necessary cleanup.
+ */
+ void onSubpageRemoved();
}
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoViewV2.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoViewV2.java
index 3da71ab8d0a278..f9b7a08ddf2543 100644
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoViewV2.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoViewV2.java
@@ -19,7 +19,6 @@ public class PageInfoViewV2 extends PageInfoView {
// Components specific to this PageInfoView
private LinearLayout mRowWrapper;
private PageInfoRowView mConnectionRow;
- private PageInfoRowView mPerformanceRow;
private PageInfoRowView mPermissionsRow;
private PageInfoRowView mCookiesRow;
@@ -49,9 +48,7 @@ protected void initConnection(PageInfoView.PageInfoViewParams params) {
}
@Override
- protected void initPerformance(PageInfoView.PageInfoViewParams params) {
- mPerformanceRow = findViewById(R.id.page_info_performance_row);
- }
+ protected void initPerformance(PageInfoView.PageInfoViewParams params) {}
@Override
protected void initPermissions(PageInfoView.PageInfoViewParams params) {
@@ -73,10 +70,6 @@ public PageInfoRowView getConnectionRowView() {
return mConnectionRow;
}
- public PageInfoRowView getPerformanceRowView() {
- return mPerformanceRow;
- }
-
public PageInfoRowView getPermissionsRowView() {
return mPermissionsRow;
}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/PageInfoControllerDelegateImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/PageInfoControllerDelegateImpl.java
index 314b6b7ff29399..23d61becf80771 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/PageInfoControllerDelegateImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/PageInfoControllerDelegateImpl.java
@@ -13,6 +13,7 @@
import org.chromium.base.supplier.Supplier;
import org.chromium.components.content_settings.CookieControlsBridge;
import org.chromium.components.content_settings.CookieControlsObserver;
+import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.page_info.PageInfoControllerDelegate;
import org.chromium.content_public.browser.WebContents;
@@ -26,7 +27,7 @@
public class PageInfoControllerDelegateImpl extends PageInfoControllerDelegate {
private final Context mContext;
private final WebContents mWebContents;
- private final String mProfileName;
+ private final ProfileImpl mProfile;
static PageInfoControllerDelegateImpl create(WebContents webContents) {
TabImpl tab = TabImpl.fromWebContents(webContents);
@@ -45,7 +46,7 @@ private PageInfoControllerDelegateImpl(Context context, WebContents webContents,
CookieControlsBridge.isCookieControlsEnabled(profile));
mContext = context;
mWebContents = webContents;
- mProfileName = profile.getName();
+ mProfile = profile;
}
/**
@@ -53,8 +54,8 @@ private PageInfoControllerDelegateImpl(Context context, WebContents webContents,
*/
@Override
public void showSiteSettings(String url) {
- Intent intent =
- SiteSettingsIntentHelper.createIntentForSingleWebsite(mContext, mProfileName, url);
+ Intent intent = SiteSettingsIntentHelper.createIntentForSingleWebsite(
+ mContext, mProfile.getName(), url);
// Disabling StrictMode to avoid violations (https://crbug.com/819410).
try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
@@ -71,6 +72,15 @@ public CookieControlsBridge createCookieControlsBridge(CookieControlsObserver ob
return new CookieControlsBridge(observer, mWebContents, null);
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @NonNull
+ public BrowserContextHandle getBrowserContext() {
+ return mProfile;
+ }
+
private static boolean isHttpOrHttps(GURL url) {
String scheme = url.getScheme();
return UrlConstants.HTTP_SCHEME.equals(scheme) || UrlConstants.HTTPS_SCHEME.equals(scheme);