| Index: chrome/browser/android/preferences/website_preference_bridge.cc
|
| diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc
|
| index f044ab925c481192e41614036a5959918c5a7a7a..b4c829189f5766440901bd70c54f85b1a9ee7e7a 100644
|
| --- a/chrome/browser/android/preferences/website_preference_bridge.cc
|
| +++ b/chrome/browser/android/preferences/website_preference_bridge.cc
|
| @@ -131,14 +131,15 @@ ContentSetting GetSettingForOrigin(JNIEnv* env,
|
| void SetSettingForOrigin(JNIEnv* env,
|
| ContentSettingsType content_type,
|
| jstring origin,
|
| - ContentSettingsPattern secondary_pattern,
|
| + jstring embedder,
|
| ContentSetting setting,
|
| jboolean is_incognito) {
|
| - GURL url(ConvertJavaStringToUTF8(env, origin));
|
| + GURL origin_url(ConvertJavaStringToUTF8(env, origin));
|
| + GURL embedder_url =
|
| + embedder ? GURL(ConvertJavaStringToUTF8(env, embedder)) : GURL();
|
| GetHostContentSettingsMap(is_incognito)
|
| - ->SetContentSetting(ContentSettingsPattern::FromURLNoWildcard(url),
|
| - secondary_pattern, content_type, std::string(),
|
| - setting);
|
| + ->SetContentSettingDefaultScope(origin_url, embedder_url, content_type,
|
| + std::string(), setting);
|
| WebSiteSettingsUmaUtil::LogPermissionChange(content_type, setting);
|
| }
|
|
|
| @@ -168,10 +169,8 @@ static void SetFullscreenSettingForOrigin(JNIEnv* env,
|
| const JavaParamRef<jstring>& embedder,
|
| jint value,
|
| jboolean is_incognito) {
|
| - GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
|
| - SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_FULLSCREEN, origin,
|
| - ContentSettingsPattern::FromURLNoWildcard(embedder_url),
|
| - (ContentSetting) value, is_incognito);
|
| + SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_FULLSCREEN, origin, embedder,
|
| + static_cast<ContentSetting>(value), is_incognito);
|
| }
|
|
|
| static void GetGeolocationOrigins(JNIEnv* env,
|
| @@ -200,10 +199,8 @@ static void SetGeolocationSettingForOrigin(
|
| const JavaParamRef<jstring>& embedder,
|
| jint value,
|
| jboolean is_incognito) {
|
| - GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
|
| - SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_GEOLOCATION, origin,
|
| - ContentSettingsPattern::FromURLNoWildcard(embedder_url),
|
| - (ContentSetting) value, is_incognito);
|
| + SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_GEOLOCATION, origin, embedder,
|
| + static_cast<ContentSetting>(value), is_incognito);
|
| }
|
|
|
| static void GetKeygenOrigins(JNIEnv* env,
|
| @@ -226,13 +223,11 @@ static jint GetKeygenSettingForOrigin(JNIEnv* env,
|
| static void SetKeygenSettingForOrigin(JNIEnv* env,
|
| const JavaParamRef<jclass>& clazz,
|
| const JavaParamRef<jstring>& origin,
|
| - const JavaParamRef<jstring>& embedder,
|
| jint value,
|
| jboolean is_incognito) {
|
| - GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
|
| - SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_KEYGEN, origin,
|
| - ContentSettingsPattern::FromURLNoWildcard(embedder_url),
|
| - (ContentSetting) value, is_incognito);
|
| + // Here 'nullptr' indicates that keygen uses wildcard for embedder.
|
| + SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_KEYGEN, origin, nullptr,
|
| + static_cast<ContentSetting>(value), is_incognito);
|
| }
|
|
|
| static jboolean GetKeygenBlocked(JNIEnv* env,
|
| @@ -266,10 +261,8 @@ static void SetMidiSettingForOrigin(JNIEnv* env,
|
| const JavaParamRef<jstring>& embedder,
|
| jint value,
|
| jboolean is_incognito) {
|
| - GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
|
| - SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, origin,
|
| - ContentSettingsPattern::FromURLNoWildcard(embedder_url),
|
| - (ContentSetting) value, is_incognito);
|
| + SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, origin, embedder,
|
| + static_cast<ContentSetting>(value), is_incognito);
|
| }
|
|
|
| static void GetProtectedMediaIdentifierOrigins(
|
| @@ -300,11 +293,9 @@ static void SetProtectedMediaIdentifierSettingForOrigin(
|
| const JavaParamRef<jstring>& embedder,
|
| jint value,
|
| jboolean is_incognito) {
|
| - GURL embedder_url(ConvertJavaStringToUTF8(env, embedder));
|
| SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
|
| - origin,
|
| - ContentSettingsPattern::FromURLNoWildcard(embedder_url),
|
| - (ContentSetting) value, is_incognito);
|
| + origin, embedder, static_cast<ContentSetting>(value),
|
| + is_incognito);
|
| }
|
|
|
| static void GetNotificationOrigins(JNIEnv* env,
|
| @@ -394,23 +385,23 @@ static jint GetCameraSettingForOrigin(JNIEnv* env,
|
| static void SetMicrophoneSettingForOrigin(JNIEnv* env,
|
| const JavaParamRef<jclass>& clazz,
|
| const JavaParamRef<jstring>& origin,
|
| - const JavaParamRef<jstring>& embedder,
|
| jint value,
|
| jboolean is_incognito) {
|
| + // Here 'nullptr' indicates that microphone uses wildcard for embedder.
|
| SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, origin,
|
| - ContentSettingsPattern::Wildcard(),
|
| - (ContentSetting) value, is_incognito);
|
| + nullptr, static_cast<ContentSetting>(value),
|
| + is_incognito);
|
| }
|
|
|
| static void SetCameraSettingForOrigin(JNIEnv* env,
|
| const JavaParamRef<jclass>& clazz,
|
| const JavaParamRef<jstring>& origin,
|
| - const JavaParamRef<jstring>& embedder,
|
| jint value,
|
| jboolean is_incognito) {
|
| + // Here 'nullptr' indicates that camera uses wildcard for embedder.
|
| SetSettingForOrigin(env, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, origin,
|
| - ContentSettingsPattern::Wildcard(),
|
| - (ContentSetting) value, is_incognito);
|
| + nullptr, static_cast<ContentSetting>(value),
|
| + is_incognito);
|
| }
|
|
|
| static scoped_refptr<content_settings::CookieSettings> GetCookieSettings() {
|
|
|