Commit 9bf4ba9b authored by Christian Dullweber's avatar Christian Dullweber Committed by Commit Bot

Show storage usage in PageInfo

Show amount of used storage in cookies page in PageInfo.
Fix cookie deletion by using a populated website object.

Screenshot: https://crbug.com/1077766#c46
Bug: 1077766
Change-Id: Ifce703ba4af9bdd14da8403516871b7c8001eb02
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2416371
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Reviewed-by: default avatarEhimare Okoyomon <eokoyomon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#809750}
parent 509fe7c0
...@@ -277,7 +277,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment ...@@ -277,7 +277,7 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment
* @param websites The websites to search in. * @param websites The websites to search in.
* @return The merged website. * @return The merged website.
*/ */
private static Website mergePermissionAndStorageInfoForTopLevelOrigin( public static Website mergePermissionAndStorageInfoForTopLevelOrigin(
WebsiteAddress address, Collection<Website> websites) { WebsiteAddress address, Collection<Website> websites) {
String origin = address.getOrigin(); String origin = address.getOrigin();
String host = Uri.parse(origin).getHost(); String host = Uri.parse(origin).getHost();
......
...@@ -9,15 +9,20 @@ import android.view.ViewGroup; ...@@ -9,15 +9,20 @@ import android.view.ViewGroup;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import org.chromium.components.browser_ui.site_settings.SingleWebsiteSettings;
import org.chromium.components.browser_ui.site_settings.SiteDataCleaner; import org.chromium.components.browser_ui.site_settings.SiteDataCleaner;
import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
import org.chromium.components.browser_ui.site_settings.Website; import org.chromium.components.browser_ui.site_settings.Website;
import org.chromium.components.browser_ui.site_settings.WebsiteAddress; import org.chromium.components.browser_ui.site_settings.WebsiteAddress;
import org.chromium.components.browser_ui.site_settings.WebsitePermissionsFetcher;
import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge;
import org.chromium.components.content_settings.CookieControlsBridge; import org.chromium.components.content_settings.CookieControlsBridge;
import org.chromium.components.content_settings.CookieControlsEnforcement; import org.chromium.components.content_settings.CookieControlsEnforcement;
import org.chromium.components.content_settings.CookieControlsObserver; import org.chromium.components.content_settings.CookieControlsObserver;
import org.chromium.components.embedder_support.util.Origin; import org.chromium.components.embedder_support.util.Origin;
import java.util.Collection;
/** /**
* Class for controlling the page info cookies section. * Class for controlling the page info cookies section.
*/ */
...@@ -35,6 +40,7 @@ public class PageInfoCookiesController ...@@ -35,6 +40,7 @@ public class PageInfoCookiesController
private int mBlockedCookies; private int mBlockedCookies;
private int mStatus; private int mStatus;
private boolean mIsEnforced; private boolean mIsEnforced;
private Website mWebsite;
public PageInfoCookiesController(PageInfoMainController mainController, PageInfoRowView rowView, public PageInfoCookiesController(PageInfoMainController mainController, PageInfoRowView rowView,
PageInfoControllerDelegate delegate, String fullUrl) { PageInfoControllerDelegate delegate, String fullUrl) {
...@@ -80,18 +86,31 @@ public class PageInfoCookiesController ...@@ -80,18 +86,31 @@ public class PageInfoCookiesController
mSubPage.setCookiesCount(mAllowedCookies, mBlockedCookies); mSubPage.setCookiesCount(mAllowedCookies, mBlockedCookies);
mSubPage.setCookieBlockingStatus(mStatus, mIsEnforced); mSubPage.setCookieBlockingStatus(mStatus, mIsEnforced);
SiteSettingsCategory storageCategory = SiteSettingsCategory.createFromType(
mMainController.getBrowserContext(), SiteSettingsCategory.Type.USE_STORAGE);
new WebsitePermissionsFetcher(mMainController.getBrowserContext())
.fetchPreferencesForCategory(storageCategory, this::onStorageFetched);
return mSubPage.requireView(); return mSubPage.requireView();
} }
private void onStorageFetched(Collection<Website> result) {
String origin = Origin.createOrThrow(mFullUrl).toString();
WebsiteAddress address = WebsiteAddress.create(origin);
mWebsite = SingleWebsiteSettings.mergePermissionAndStorageInfoForTopLevelOrigin(
address, result);
mSubPage.setStorageUsage(mWebsite.getTotalUsage());
}
private void onCheckedChangedCallback(boolean state) { private void onCheckedChangedCallback(boolean state) {
mBridge.setThirdPartyCookieBlockingEnabledForSite(state); mBridge.setThirdPartyCookieBlockingEnabledForSite(state);
} }
private void clearData() { private void clearData() {
String origin = Origin.createOrThrow(mFullUrl).toString(); if (mWebsite == null) return;
WebsiteAddress address = WebsiteAddress.create(origin); new SiteDataCleaner().clearData(
new SiteDataCleaner().clearData(mMainController.getBrowserContext(), mMainController.getBrowserContext(), mWebsite, mMainController::exitSubpage);
new Website(address, address), mMainController::exitSubpage);
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
package org.chromium.components.page_info; package org.chromium.components.page_info;
import android.os.Bundle; import android.os.Bundle;
import android.text.format.Formatter;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceFragmentCompat;
...@@ -94,4 +95,12 @@ public class PageInfoCookiesPreference extends PreferenceFragmentCompat { ...@@ -94,4 +95,12 @@ public class PageInfoCookiesPreference extends PreferenceFragmentCompat {
mCookieInUse.setTitle(getContext().getResources().getQuantityString( mCookieInUse.setTitle(getContext().getResources().getQuantityString(
R.plurals.page_info_cookies_in_use, allowedCookies, allowedCookies)); R.plurals.page_info_cookies_in_use, allowedCookies, allowedCookies));
} }
public void setStorageUsage(long storageUsage) {
mCookieInUse.setSummary(
storageUsage > 0 ? String.format(
getContext().getString(R.string.origin_settings_storage_usage_brief),
Formatter.formatShortFileSize(getContext(), storageUsage))
: null);
}
} }
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