Commit 374346ef authored by Christian Dullweber's avatar Christian Dullweber Committed by Commit Bot

Add media license deletion to 'Reset site'

MediaLicense deletion was added in crrev.com/c/1213242 but due to a
confusion about the purpose of SiteDataDeleteHelper, it didn't work
correctly. This CL correctly implements MediaLicense deletion when
a site is reset from Settings > SiteSettings > AllSites > [Site].

Tested manually by adding a LOG statement to OriginMatcher in
website_preference_bridge.cc and testing that offline content stored
from https://shaka-player-demo.appspot.com/demo/ triggers the LOG
statement when resetting a site.

Bug: 883701
Change-Id: I28b93c44daea757084dc5b6e667a2d36bc00b70f
Reviewed-on: https://chromium-review.googlesource.com/c/1337623Reviewed-by: default avatarTheresa <twellington@chromium.org>
Reviewed-by: default avatarJohn Rummell <jrummell@chromium.org>
Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarFinnur Thorarinsson <finnur@chromium.org>
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609985}
parent 1e6a6033
......@@ -17,6 +17,7 @@ public class SiteDataCleaner {
String origin = site.getAddress().getOrigin();
WebsitePreferenceBridge.nativeClearCookieData(origin);
WebsitePreferenceBridge.nativeClearBannerData(origin);
WebsitePreferenceBridge.nativeClearMediaLicenses(origin);
// Clear the permissions.
for (@ContentSettingException.Type int type = 0;
......
......@@ -257,6 +257,7 @@ public abstract class WebsitePreferenceBridge {
String origin, String embedder, int value, boolean isIncognito);
static native void nativeClearBannerData(String origin);
static native void nativeClearMediaLicenses(String origin);
static native void nativeClearCookieData(String path);
static native void nativeClearLocalStorageData(String path, Object callback);
static native void nativeClearStorageData(String origin, int type, Object callback);
......
......@@ -24,6 +24,7 @@
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/content_settings/web_site_settings_uma_util.h"
#include "chrome/browser/engagement/important_sites_util.h"
#include "chrome/browser/media/android/cdm/media_drm_license_manager.h"
#include "chrome/browser/notifications/notification_permission_context.h"
#include "chrome/browser/permissions/permission_decision_auto_blocker.h"
#include "chrome/browser/permissions/permission_manager.h"
......@@ -268,6 +269,10 @@ ChooserContextBase* GetChooserContext(ContentSettingsType type) {
}
}
bool OriginMatcher(const url::Origin& origin, const GURL& other) {
return origin == url::Origin::Create(other);
}
} // anonymous namespace
static void JNI_WebsitePreferenceBridge_GetClipboardOrigins(
......@@ -810,6 +815,18 @@ static void JNI_WebsitePreferenceBridge_ClearBannerData(
CONTENT_SETTINGS_TYPE_APP_BANNER, std::string(), nullptr);
}
static void JNI_WebsitePreferenceBridge_ClearMediaLicenses(
JNIEnv* env,
const JavaParamRef<jclass>& clazz,
const JavaParamRef<jstring>& jorigin) {
Profile* profile = ProfileManager::GetActiveUserProfile();
url::Origin origin =
url::Origin::Create(GURL(ConvertJavaStringToUTF8(env, jorigin)));
ClearMediaDrmLicenses(profile->GetPrefs(), base::Time(), base::Time::Max(),
base::BindRepeating(&OriginMatcher, origin),
base::DoNothing());
}
static jboolean JNI_WebsitePreferenceBridge_IsPermissionControlledByDSE(
JNIEnv* env,
const JavaParamRef<jclass>& clazz,
......
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