diff --git a/android/brave_java_resources.gni b/android/brave_java_resources.gni
index 3910d9a2363..8ca3c8f0f83 100644
--- a/android/brave_java_resources.gni
+++ b/android/brave_java_resources.gni
@@ -547,6 +547,7 @@ brave_java_resources = [
"java/res/drawable/ic_logo_zebpay.xml",
"java/res/drawable/ic_logo_zebpay_white.xml",
"java/res/drawable/ic_mask.xml",
+ "java/res/drawable/ic_media.xml",
"java/res/drawable/ic_menu.xml",
"java/res/drawable/ic_menu_close.xml",
"java/res/drawable/ic_new_tab_page.xml",
diff --git a/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java b/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java
index 0a653913b8f..8586979175e 100644
--- a/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java
+++ b/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java
@@ -18,9 +18,7 @@ import androidx.preference.Preference;
import org.chromium.base.BraveFeatureList;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
-import org.chromium.chrome.browser.BraveFeatureUtil;
import org.chromium.chrome.browser.BraveLaunchIntentDispatcher;
-import org.chromium.chrome.browser.BraveRelaunchUtils;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.homepage.settings.BraveHomepageSettings;
import org.chromium.chrome.browser.notifications.BraveNotificationWarningDialog;
@@ -30,7 +28,6 @@ import org.chromium.chrome.browser.ntp_background_images.NTPBackgroundImagesBrid
import org.chromium.chrome.browser.ntp_background_images.util.NTPUtil;
import org.chromium.chrome.browser.onboarding.OnboardingPrefManager;
import org.chromium.chrome.browser.partnercustomizations.CloseBraveManager;
-import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
import org.chromium.chrome.browser.privacy.settings.BravePrivacySettings;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.rate.BraveRateDialogFragment;
diff --git a/android/java/org/chromium/chrome/browser/settings/MediaPreferences.java b/android/java/org/chromium/chrome/browser/settings/MediaPreferences.java
index b8e74c22e8e..8881637ef5e 100644
--- a/android/java/org/chromium/chrome/browser/settings/MediaPreferences.java
+++ b/android/java/org/chromium/chrome/browser/settings/MediaPreferences.java
@@ -5,14 +5,11 @@
package org.chromium.chrome.browser.settings;
-import android.content.SharedPreferences;
import android.os.Bundle;
import androidx.preference.Preference;
import org.chromium.base.BraveFeatureList;
-import org.chromium.base.BravePreferenceKeys;
-import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BraveFeatureUtil;
import org.chromium.chrome.browser.BraveLocalState;
@@ -20,16 +17,12 @@ import org.chromium.chrome.browser.BraveRelaunchUtils;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.BravePref;
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
-import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
-import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.tasks.tab_management.BraveTabUiFeatureUtilities;
-import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
import org.chromium.components.browser_ui.settings.SettingsUtils;
-import org.chromium.components.user_prefs.UserPrefs;
-public class MediaPreferences extends BravePreferenceFragment
- implements Preference.OnPreferenceChangeListener {
+/* Class for Media section of main preferences */
+public class MediaPreferences
+ extends BravePreferenceFragment implements Preference.OnPreferenceChangeListener {
public static final String PREF_ENABLE_WIDEVINE = "enable_widevine";
public static final String PREF_BACKGROUND_VIDEO_PLAYBACK = "background_video_playback";
@@ -59,14 +52,10 @@ public class MediaPreferences extends BravePreferenceFragment
(ChromeSwitchPreference) findPreference(PREF_BACKGROUND_VIDEO_PLAYBACK);
if (backgroundVideoPlaybackPref != null) {
backgroundVideoPlaybackPref.setOnPreferenceChangeListener(this);
- boolean enabled = ChromeFeatureList.isEnabled(
- BraveFeatureList.BRAVE_BACKGROUND_VIDEO_PLAYBACK)
- || BravePrefServiceBridge.getInstance()
- .getBackgroundVideoPlaybackEnabled();
+ boolean enabled =
+ ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_BACKGROUND_VIDEO_PLAYBACK)
+ || BravePrefServiceBridge.getInstance().getBackgroundVideoPlaybackEnabled();
backgroundVideoPlaybackPref.setChecked(enabled);
- if (enabled) {
- backgroundVideoPlaybackPref.setSummary( R.string.prefs_background_video_playback_on);
- }
}
}
@@ -76,21 +65,14 @@ public class MediaPreferences extends BravePreferenceFragment
boolean shouldRelaunch = false;
if (PREF_ENABLE_WIDEVINE.equals(key)) {
ChromeSwitchPreference enableWidevinePref =
- (ChromeSwitchPreference) findPreference(PREF_ENABLE_WIDEVINE);
- BraveLocalState.get().setBoolean(
- BravePref.WIDEVINE_OPTED_IN,
- !BraveLocalState.get().getBoolean(BravePref.WIDEVINE_OPTED_IN));
+ (ChromeSwitchPreference) findPreference(PREF_ENABLE_WIDEVINE);
+ BraveLocalState.get().setBoolean(BravePref.WIDEVINE_OPTED_IN,
+ !BraveLocalState.get().getBoolean(BravePref.WIDEVINE_OPTED_IN));
shouldRelaunch = true;
} else if (PREF_BACKGROUND_VIDEO_PLAYBACK.equals(key)) {
BraveFeatureUtil.enableFeature(
BraveFeatureList.BRAVE_BACKGROUND_VIDEO_PLAYBACK_INTERNAL, (boolean) newValue,
false);
- if ((boolean) newValue) {
- findPreference(PREF_BACKGROUND_VIDEO_PLAYBACK).setSummary(
- R.string.prefs_background_video_playback_on);
- } else {
- findPreference(PREF_BACKGROUND_VIDEO_PLAYBACK).setSummary("");
- }
shouldRelaunch = true;
}
@@ -100,5 +82,4 @@ public class MediaPreferences extends BravePreferenceFragment
return true;
}
-
}
diff --git a/android/java/res/drawable/ic_media.xml b/android/java/res/drawable/ic_media.xml
new file mode 100644
index 00000000000..feff2d79a4d
--- /dev/null
+++ b/android/java/res/drawable/ic_media.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/android/java/res/layout/widevine_permission_request_custom_view.xml b/android/java/res/layout/widevine_permission_request_custom_view.xml
index 13effa5ed37..1456e4e0a16 100644
--- a/android/java/res/layout/widevine_permission_request_custom_view.xml
+++ b/android/java/res/layout/widevine_permission_request_custom_view.xml
@@ -28,7 +28,7 @@ found in the LICENSE file.
android:id="@+id/checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="20dp"
+ android:layout_marginStart="12dp"
android:layout_gravity="center_horizontal"
android:buttonTint="@color/brave_action_color"
android:paddingVertical="8dp"
diff --git a/android/java/res/xml/brave_main_preferences.xml b/android/java/res/xml/brave_main_preferences.xml
index 1aa9504bfd1..2644c6ac98f 100644
--- a/android/java/res/xml/brave_main_preferences.xml
+++ b/android/java/res/xml/brave_main_preferences.xml
@@ -78,7 +78,7 @@
android:fragment="org.chromium.chrome.browser.settings.MediaPreferences"
android:key="media"
android:order="16"
- android:icon="@drawable/ic_appearance"
+ android:icon="@drawable/ic_media"
android:title="@string/prefs_media"/>
+ android:title="@string/prefs_background_video_playback"
+ android:summary="@string/prefs_background_video_playback_on" />
diff --git a/app/brave_generated_resources.grd b/app/brave_generated_resources.grd
index 0dc7ed6286d..24e1fdefe27 100644
--- a/app/brave_generated_resources.grd
+++ b/app/brave_generated_resources.grd
@@ -232,7 +232,7 @@
- $1https://www.youtube.com wants to play protected Google Widevine content, which requires you to allow Android system support for Widevine. By allowing, you'll agree to Google's terms of use. (Note that Brave will need to relaunch to allow Widevine support.)
+ $1https://www.youtube.com wants to play protected Google Widevine content, which requires you to allow Android system support for Widevine. By allowing, you'll agree to Google's terms of use.
diff --git a/browser/brave_drm_tab_helper.cc b/browser/brave_drm_tab_helper.cc
index 66ca9fbdaf1..2d9490214da 100644
--- a/browser/brave_drm_tab_helper.cc
+++ b/browser/brave_drm_tab_helper.cc
@@ -19,7 +19,7 @@
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_handle.h"
-#if !BUILDFLAG(IS_ANDROID)
+#if defined(TOOLKIT_VIEWS)
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -116,8 +116,7 @@ void BraveDrmTabHelper::OnEvent(Events event, const std::string& id) {
// this tab asks widevine explicitely.
if (is_widevine_requested_)
RequestWidevinePermission(web_contents(), true /* for_restart*/);
-#elif BUILDFLAG(IS_ANDROID)
-#else
+#elif !BUILDFLAG(IS_ANDROID)
// When widevine is ready to use, only active tab that requests widevine is
// reloaded automatically.
if (is_widevine_requested_)
diff --git a/browser/profiles/brave_renderer_updater.cc b/browser/profiles/brave_renderer_updater.cc
index 44dd69ea7e2..361c37e007c 100644
--- a/browser/profiles/brave_renderer_updater.cc
+++ b/browser/profiles/brave_renderer_updater.cc
@@ -35,8 +35,9 @@ BraveRendererUpdater::BraveRendererUpdater(
Profile* profile,
brave_wallet::KeyringService* keyring_service,
PrefService* local_state)
- : profile_(profile), keyring_service_(keyring_service),
- local_state_(local_state){
+ : profile_(profile),
+ keyring_service_(keyring_service),
+ local_state_(local_state) {
PrefService* pref_service = profile->GetPrefs();
brave_wallet_ethereum_provider_.Init(kDefaultEthereumWallet, pref_service);
brave_wallet_solana_provider_.Init(kDefaultSolanaWallet, pref_service);
diff --git a/browser/profiles/brave_renderer_updater_factory.cc b/browser/profiles/brave_renderer_updater_factory.cc
index 05225da3947..e839d441c57 100644
--- a/browser/profiles/brave_renderer_updater_factory.cc
+++ b/browser/profiles/brave_renderer_updater_factory.cc
@@ -40,7 +40,8 @@ KeyedService* BraveRendererUpdaterFactory::BuildServiceInstanceFor(
auto* keyring_service =
brave_wallet::KeyringServiceFactory::GetServiceForContext(context);
return new BraveRendererUpdater(static_cast(context),
- keyring_service, g_browser_process->local_state());
+ keyring_service,
+ g_browser_process->local_state());
}
bool BraveRendererUpdaterFactory::ServiceIsCreatedWithBrowserContext() const {
diff --git a/browser/ui/android/strings/android_brave_strings.grd b/browser/ui/android/strings/android_brave_strings.grd
index 990bc9f06da..cf1bd2caf02 100644
--- a/browser/ui/android/strings/android_brave_strings.grd
+++ b/browser/ui/android/strings/android_brave_strings.grd
@@ -820,7 +820,7 @@ This file contains all "about" strings. It is set to NOT be translated, in tran
<LINK>Learn more about Widevine</LINK>
- ALLOW (RELAUNCH NOW)
+ Allow (Relaunch Now)
Appearance
diff --git a/browser/widevine/BUILD.gn b/browser/widevine/BUILD.gn
index ca2c5e922cb..c8c1dc81c3c 100644
--- a/browser/widevine/BUILD.gn
+++ b/browser/widevine/BUILD.gn
@@ -46,21 +46,20 @@ source_set("widevine") {
source_set("unittest") {
testonly = true
- sources = [ "widevine_cdm_component_installer_unittest.cc" ]
- deps = [
- "//testing/gtest",
- "//third_party/widevine/cdm:buildflags",
- ]
+ if (enable_widevine_cdm_component) {
+ sources = [ "widevine_cdm_component_installer_unittest.cc" ]
+ deps = [
+ "//testing/gtest",
+ "//third_party/widevine/cdm:buildflags",
+ ]
+ }
}
source_set("browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
- sources = [
- "widevine_permission_request_browsertest.cc",
- "widevine_prefs_migration_browsertest.cc",
- ]
+ sources = [ "widevine_prefs_migration_browsertest.cc" ]
deps = [
":widevine",
@@ -72,21 +71,25 @@ source_set("browser_tests") {
"//chrome/browser",
"//chrome/browser:browser_process",
"//chrome/browser/profiles:profile",
- "//chrome/browser/ui",
"//chrome/common",
+ "//chrome/test:test_support",
"//components/prefs",
"//content/public/browser",
"//content/test:test_support",
"//testing/gtest",
"//third_party/widevine/cdm:buildflags",
- "//url",
]
if (toolkit_views) {
+ sources += [ "widevine_permission_request_browsertest.cc" ]
deps += [
+ "//chrome/browser/ui",
"//chrome/test:test_support_ui",
"//ui/views",
+ "//url",
]
+ } else {
+ deps += [ "//chrome/test:test_support_ui_android" ]
}
}
diff --git a/browser/widevine/widevine_permission_request.cc b/browser/widevine/widevine_permission_request.cc
index 119d875df35..066b91d9da9 100644
--- a/browser/widevine/widevine_permission_request.cc
+++ b/browser/widevine/widevine_permission_request.cc
@@ -40,8 +40,8 @@ std::u16string WidevinePermissionRequest::GetDialogMessageText() const {
return l10n_util::GetStringFUTF16(
GetWidevinePermissionRequestTextFrangmentResourceId(false),
url_formatter::FormatUrlForSecurityDisplay(
- requesting_origin(),
- url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC));
+ requesting_origin(),
+ url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC));
}
#else
std::u16string WidevinePermissionRequest::GetMessageTextFragment() const {
@@ -61,7 +61,6 @@ void WidevinePermissionRequest::PermissionDecided(ContentSetting result,
#if BUILDFLAG(IS_ANDROID)
EnableWidevineCdm();
#endif
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)
// Prevent relaunch during the browser test.
// This will cause abnormal termination during the test.
if (!is_test_) {
@@ -69,13 +68,9 @@ void WidevinePermissionRequest::PermissionDecided(ContentSetting result,
base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE, base::BindOnce(&chrome::AttemptRelaunch));
}
-#endif
}
// Permission denied
} else if (result == ContentSetting::CONTENT_SETTING_BLOCK) {
-#if BUILDFLAG(IS_ANDROID)
- DisableWidevineCdm();
-#endif
DontAskWidevineInstall(web_contents_, dont_ask_widevine_install_);
// Cancelled
} else {
diff --git a/browser/widevine/widevine_prefs_migration_browsertest.cc b/browser/widevine/widevine_prefs_migration_browsertest.cc
index 5533dae4e44..18f31fbeee3 100644
--- a/browser/widevine/widevine_prefs_migration_browsertest.cc
+++ b/browser/widevine/widevine_prefs_migration_browsertest.cc
@@ -7,16 +7,33 @@
#include "brave/components/constants/pref_names.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/test/base/in_process_browser_test.h"
#include "components/prefs/pref_service.h"
#include "content/public/test/browser_test.h"
+#if BUILDFLAG(IS_ANDROID)
+#include "chrome/test/base/android/android_browser_test.h"
+#include "chrome/test/base/chrome_test_utils.h"
+#else
+#include "chrome/browser/ui/browser.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#endif
+
namespace {
constexpr bool kWidevineOptedInTestValue = true;
} // namespace
-using WidevinePrefsMigrationTest = InProcessBrowserTest;
+class WidevinePrefsMigrationTest : public PlatformBrowserTest {
+ public:
+ WidevinePrefsMigrationTest() {}
+
+ Profile* GetProfile() {
+#if BUILDFLAG(IS_ANDROID)
+ return chrome_test_utils::GetProfile(this);
+#else
+ return browser()->profile();
+#endif
+ }
+};
IN_PROC_BROWSER_TEST_F(WidevinePrefsMigrationTest, PrefMigrationTest) {
g_browser_process->local_state()->ClearPref(kWidevineOptedIn);
@@ -24,11 +41,11 @@ IN_PROC_BROWSER_TEST_F(WidevinePrefsMigrationTest, PrefMigrationTest) {
FindPreference(kWidevineOptedIn)->IsDefaultValue());
// Set profile prefs explicitly for migration test.
- browser()->profile()->GetPrefs()->SetBoolean(kWidevineOptedIn,
- kWidevineOptedInTestValue);
+ GetProfile()->GetPrefs()->SetBoolean(kWidevineOptedIn,
+ kWidevineOptedInTestValue);
// Migrate and check it's done properly with previous profile prefs value.
- MigrateWidevinePrefs(browser()->profile());
+ MigrateWidevinePrefs(GetProfile());
EXPECT_FALSE(g_browser_process->local_state()->
FindPreference(kWidevineOptedIn)->IsDefaultValue());
EXPECT_EQ(kWidevineOptedInTestValue,
diff --git a/browser/widevine/widevine_utils.cc b/browser/widevine/widevine_utils.cc
index 7a5577f782f..3c7a540d076 100644
--- a/browser/widevine/widevine_utils.cc
+++ b/browser/widevine/widevine_utils.cc
@@ -5,6 +5,8 @@
#include "brave/browser/widevine/widevine_utils.h"
+#include
+
#include "base/files/file_util.h"
#include "base/path_service.h"
#include "base/task/task_traits.h"
@@ -14,6 +16,7 @@
#include "brave/components/widevine/constants.h"
#include "brave/components/widevine/static_buildflags.h"
#include "brave/grit/brave_generated_resources.h"
+#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/component_updater/component_updater_utils.h"
#include "chrome/browser/component_updater/widevine_cdm_component_installer.h"
@@ -85,7 +88,7 @@ void EnableWidevineCdm() {
return;
SetWidevineOptedIn(true);
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
RegisterWidevineCdmComponent(g_browser_process->component_updater(),
#if BUILDFLAG(WIDEVINE_ARM64_DLL_FIX)
g_browser_process->shared_url_loader_factory(),
@@ -99,7 +102,7 @@ void DisableWidevineCdm() {
return;
SetWidevineOptedIn(false);
-#if !BUILDFLAG(IS_ANDROID)
+#if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
g_browser_process->component_updater()->UnregisterComponent(
kWidevineComponentId);
#endif
diff --git a/browser/widevine/widevine_utils.h b/browser/widevine/widevine_utils.h
index 29a93fd991e..9d77270c629 100644
--- a/browser/widevine/widevine_utils.h
+++ b/browser/widevine/widevine_utils.h
@@ -6,10 +6,6 @@
#ifndef BRAVE_BROWSER_WIDEVINE_WIDEVINE_UTILS_H_
#define BRAVE_BROWSER_WIDEVINE_WIDEVINE_UTILS_H_
-#include
-
-#include "build/build_config.h"
-
namespace content {
class WebContents;
} // namespace content
@@ -22,8 +18,8 @@ class PrefRegistrySimple;
class PrefService;
class Profile;
-// On Android, kWidevineOptedIn is written through EnableWidevineCdm() for the permission prompt,
-// but r/w through BraveLocalState.java on preference screen
+// On Android, kWidevineOptedIn is written through EnableWidevineCdm() for the
+// permission prompt, but r/w through BraveLocalState.java on preference screen
void EnableWidevineCdm();
void DisableWidevineCdm();
void RegisterWidevineProfilePrefsForMigration(
diff --git a/chromium_src/components/permissions/android/DEPS b/chromium_src/components/permissions/android/DEPS
index 5981e0c054d..01a8838828b 100644
--- a/chromium_src/components/permissions/android/DEPS
+++ b/chromium_src/components/permissions/android/DEPS
@@ -1,4 +1,5 @@
include_rules = [
+ "+brave/browser/widevine",
"+brave/components/l10n/common",
"+brave/components/permissions/android/jni_headers",
"+components/grit",
diff --git a/chromium_src/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/chromium_src/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
index 6a5050e93ed..c322e8f1356 100644
--- a/chromium_src/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
+++ b/chromium_src/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
@@ -3,8 +3,9 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
-#define CreateJavaDelegate \
- Java_PermissionDialogController_createDialog_BraveImpl(JNIEnv* env, const base::android::JavaRef& obj); \
+#define CreateJavaDelegate \
+ Java_PermissionDialogController_createDialog_BraveImpl( \
+ JNIEnv* env, const base::android::JavaRef& obj); \
virtual void CreateJavaDelegate
#include "components/permissions/android/permission_prompt/permission_dialog_delegate.h"
#undef CreateJavaDelegate
@@ -73,20 +74,23 @@ void ApplyLifetimeToPermissionRequests(
#if BUILDFLAG(ENABLE_WIDEVINE)
bool IsWidevineRequest(PermissionPromptAndroid* permission_prompt) {
- const std::vector& requests = permission_prompt->delegate()->Requests();
- return requests.size() == 1 && requests[0]->request_type() == RequestType::kWidevine;
+ const std::vector& requests =
+ permission_prompt->delegate()->Requests();
+ return requests.size() == 1 &&
+ requests[0]->request_type() == RequestType::kWidevine;
}
#endif
-void ApplyWidevineDontAskOption(
- JNIEnv* env,
- const JavaParamRef& obj,
- PermissionPromptAndroid* permission_prompt) {
+void ApplyWidevineDontAskOption(JNIEnv* env,
+ const JavaParamRef& obj,
+ PermissionPromptAndroid* permission_prompt) {
#if BUILDFLAG(ENABLE_WIDEVINE)
if (IsWidevineRequest(permission_prompt)) {
- const bool dontAsk = Java_BravePermissionDialogDelegate_getWidevineDontAsk(env, obj);
- WidevinePermissionRequest* widevineRequest = static_cast(
- permission_prompt->delegate()->Requests()[0]);
+ const bool dontAsk =
+ Java_BravePermissionDialogDelegate_getWidevineDontAsk(env, obj);
+ WidevinePermissionRequest* widevineRequest =
+ static_cast(
+ permission_prompt->delegate()->Requests()[0]);
widevineRequest->set_dont_ask_widevine_install(dontAsk);
}
#endif
@@ -94,22 +98,29 @@ void ApplyWidevineDontAskOption(
} // namespace
-void PermissionDialogJavaDelegate::Java_PermissionDialogController_createDialog_BraveImpl(
- JNIEnv* env,
- const base::android::JavaRef& j_delegate) {
- if (IsWidevineRequest(permission_prompt_))
- Java_BravePermissionDialogDelegate_setIsWidevinePermissionRequest(env, j_delegate, true);
- if (ShouldShowLifetimeOptions(permission_prompt_->delegate())) SetLifetimeOptions(j_delegate);
+void PermissionDialogJavaDelegate::
+ Java_PermissionDialogController_createDialog_BraveImpl(
+ JNIEnv* env,
+ const base::android::JavaRef& j_delegate) {
+#if BUILDFLAG(ENABLE_WIDEVINE)
+ if (IsWidevineRequest(permission_prompt_)) {
+ Java_BravePermissionDialogDelegate_setIsWidevinePermissionRequest(
+ env, j_delegate, true);
+ }
+#endif
+ if (ShouldShowLifetimeOptions(permission_prompt_->delegate())) {
+ SetLifetimeOptions(j_delegate);
+ }
Java_PermissionDialogController_createDialog(env, j_delegate);
}
} // namespace permissions
-#define BRAVE_PERMISSION_DIALOG_DELEGATE_ACCEPT \
+#define BRAVE_PERMISSION_DIALOG_DELEGATE_ACCEPT \
ApplyLifetimeToPermissionRequests(env, obj, permission_prompt_); \
ApplyWidevineDontAskOption(env, obj, permission_prompt_);
-#define BRAVE_PERMISSION_DIALOG_DELEGATE_CANCEL \
+#define BRAVE_PERMISSION_DIALOG_DELEGATE_CANCEL \
ApplyLifetimeToPermissionRequests(env, obj, permission_prompt_); \
ApplyWidevineDontAskOption(env, obj, permission_prompt_);
#define Java_PermissionDialogController_createDialog \
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogDelegate.java
index a68833d0aa2..ab24dfc7990 100644
--- a/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogDelegate.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogDelegate.java
@@ -8,6 +8,7 @@ package org.chromium.components.permissions;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
+/* PermissionDialogDelegate override */
@JNINamespace("permissions")
public class BravePermissionDialogDelegate {
/** Text to show before lifetime options. */
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogModel.java b/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogModel.java
index 10c726b5d33..7838c14b167 100644
--- a/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogModel.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogModel.java
@@ -16,9 +16,7 @@ import android.provider.Browser;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
-import android.text.style.UnderlineSpan;
import android.view.View;
-import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.CheckBox;
import android.widget.LinearLayout;
@@ -27,10 +25,9 @@ import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.browser.customtabs.CustomTabsIntent;
-import androidx.core.widget.TextViewCompat;
-import org.chromium.base.IntentUtils;
import org.chromium.base.ApiCompatibilityUtils;
+import org.chromium.base.IntentUtils;
import org.chromium.ui.LayoutInflaterUtils;
import org.chromium.ui.UiUtils;
import org.chromium.ui.base.ViewUtils;
@@ -63,26 +60,27 @@ class BravePermissionDialogModel {
return model;
}
- private static PropertyModel createModelForWidevineRequest(ModalDialogProperties.Controller controller,
- PermissionDialogDelegate delegate, Runnable touchFilteredCallback) {
+ private static PropertyModel createModelForWidevineRequest(
+ ModalDialogProperties.Controller controller, PermissionDialogDelegate delegate,
+ Runnable touchFilteredCallback) {
BravePermissionDialogDelegate braveDelegate =
- (BravePermissionDialogDelegate) (Object) delegate;
+ (BravePermissionDialogDelegate) (Object) delegate;
Context context = delegate.getWindow().getContext().get();
assert context != null;
- View customView = LayoutInflaterUtils.inflate(context, R.layout.widevine_permission_request_custom_view, null);
+ View customView = LayoutInflaterUtils.inflate(
+ context, R.layout.widevine_permission_request_custom_view, null);
String messageText = delegate.getMessageText();
// Override Allow button text
String primaryButtonText = context.getResources().getString(
R.string.widevine_permission_request_primary_button_text);
assert !TextUtils.isEmpty(messageText) && !TextUtils.isEmpty(primaryButtonText);
- SpannableString learnMoreLink = SpanApplier.applySpans(context.getResources().getString(
- R.string.widevine_permission_request_link),
+ SpannableString learnMoreLink = SpanApplier.applySpans(
+ context.getResources().getString(R.string.widevine_permission_request_link),
new SpanApplier.SpanInfo("", "",
- new NoUnderlineClickableSpan(
- context, R.color.brave_link, result -> {
- openUrlInCustomTab(context, URL_WIDEVINE_LEARN_MORE);
- })));
+ new NoUnderlineClickableSpan(context, R.color.brave_link, result -> {
+ openUrlInCustomTab(context, URL_WIDEVINE_LEARN_MORE);
+ })));
TextView messageTextView = customView.findViewById(R.id.message);
messageTextView.setText(messageText);
@@ -93,23 +91,25 @@ class BravePermissionDialogModel {
linkTextView.setMovementMethod(LinkMovementMethod.getInstance());
CheckBox checkbox = customView.findViewById(R.id.checkbox);
- checkbox.setOnCheckedChangeListener((buttonView, isChecked) -> {
- braveDelegate.setWidevineDontAsk(isChecked);
- });
+ checkbox.setOnCheckedChangeListener(
+ (buttonView, isChecked) -> { braveDelegate.setWidevineDontAsk(isChecked); });
- PropertyModel model = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
- .with(ModalDialogProperties.CONTROLLER, controller)
- .with(ModalDialogProperties.TITLE,
- context.getResources().getString(R.string.widevine_permission_request_title))
- .with(ModalDialogProperties.CUSTOM_VIEW, customView)
- .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, primaryButtonText)
- .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, delegate.getSecondaryButtonText())
- .with(ModalDialogProperties.CONTENT_DESCRIPTION, messageText)
- .with(ModalDialogProperties.FILTER_TOUCH_FOR_SECURITY, true)
- .with(ModalDialogProperties.TOUCH_FILTERED_CALLBACK, touchFilteredCallback)
- .with(ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS,
- UiUtils.PROMPT_INPUT_PROTECTION_SHORT_DELAY_MS)
- .build();
+ PropertyModel model =
+ new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
+ .with(ModalDialogProperties.CONTROLLER, controller)
+ .with(ModalDialogProperties.TITLE,
+ context.getResources().getString(
+ R.string.widevine_permission_request_title))
+ .with(ModalDialogProperties.CUSTOM_VIEW, customView)
+ .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, primaryButtonText)
+ .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT,
+ delegate.getSecondaryButtonText())
+ .with(ModalDialogProperties.CONTENT_DESCRIPTION, messageText)
+ .with(ModalDialogProperties.FILTER_TOUCH_FOR_SECURITY, true)
+ .with(ModalDialogProperties.TOUCH_FILTERED_CALLBACK, touchFilteredCallback)
+ .with(ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS,
+ UiUtils.PROMPT_INPUT_PROTECTION_SHORT_DELAY_MS)
+ .build();
return model;
}
diff --git a/components/permissions/android/java_sources.gni b/components/permissions/android/java_sources.gni
index b54b8c94caa..cc234f4a202 100644
--- a/components/permissions/android/java_sources.gni
+++ b/components/permissions/android/java_sources.gni
@@ -1,3 +1,8 @@
+# Copyright (c) 2023 The Brave Authors. All rights reserved.
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this file,
+# You can obtain one at https://mozilla.org/MPL/2.0/.
+
brave_components_permissions_java_sources = [
"//brave/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogDelegate.java",
"//brave/components/permissions/android/java/src/org/chromium/components/permissions/BravePermissionDialogModel.java",
diff --git a/renderer/DEPS b/renderer/DEPS
index 968c4fe7b4c..0000df873e5 100644
--- a/renderer/DEPS
+++ b/renderer/DEPS
@@ -3,10 +3,12 @@ include_rules = [
"+chrome/common",
"+chrome/renderer",
"+content/public/renderer",
+ "+media/base",
"+mojo/public/cpp/bindings",
"+third_party/blink/public/common",
"+third_party/blink/public/platform",
"+third_party/blink/public/public_buildflags.h",
"+third_party/blink/public/web",
+ "+third_party/widevine/cdm",
"+v8/include",
]
diff --git a/renderer/brave_content_renderer_client.cc b/renderer/brave_content_renderer_client.cc
index 9fd71e61548..cb597f68a5e 100644
--- a/renderer/brave_content_renderer_client.cc
+++ b/renderer/brave_content_renderer_client.cc
@@ -5,6 +5,8 @@
#include "brave/renderer/brave_content_renderer_client.h"
+#include
+
#include "base/feature_list.h"
#include "base/ranges/algorithm.h"
#include "brave/components/brave_search/common/brave_search_utils.h"
@@ -24,7 +26,6 @@
#include "chrome/common/chrome_isolated_world_ids.h"
#include "chrome/renderer/chrome_render_thread_observer.h"
#include "content/public/renderer/render_thread.h"
-#include "media/base/key_system_info.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/platform/web_runtime_features.h"
#include "third_party/blink/public/web/modules/service_worker/web_service_worker_context_proxy.h"
@@ -50,22 +51,23 @@
#endif
#if BUILDFLAG(ENABLE_WIDEVINE)
+#include "media/base/key_system_info.h"
#include "third_party/widevine/cdm/widevine_cdm_common.h"
#endif
namespace {
-void MaybeRemoveWidevineSupport(
- media::GetSupportedKeySystemsCB cb, media::KeySystemInfos key_systems) {
+void MaybeRemoveWidevineSupport(media::GetSupportedKeySystemsCB cb,
+ media::KeySystemInfos key_systems) {
#if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(IS_ANDROID)
auto dynamic_params = BraveRenderThreadObserver::GetDynamicParams();
if (!dynamic_params.widevine_enabled) {
key_systems.erase(
- base::ranges::remove(
- key_systems, kWidevineKeySystem,
- [](const std::unique_ptr &key_system) {
- return key_system->GetBaseKeySystemName();
- }),
- key_systems.cend());
+ base::ranges::remove(
+ key_systems, kWidevineKeySystem,
+ [](const std::unique_ptr& key_system) {
+ return key_system->GetBaseKeySystemName();
+ }),
+ key_systems.cend());
}
#endif
cb.Run(std::move(key_systems));
@@ -172,7 +174,7 @@ void BraveContentRendererClient::RenderFrameCreated(
void BraveContentRendererClient::GetSupportedKeySystems(
media::GetSupportedKeySystemsCB cb) {
ChromeContentRendererClient::GetSupportedKeySystems(
- base::BindRepeating(&MaybeRemoveWidevineSupport, cb));
+ base::BindRepeating(&MaybeRemoveWidevineSupport, cb));
}
void BraveContentRendererClient::RunScriptsAtDocumentStart(
diff --git a/renderer/sources.gni b/renderer/sources.gni
index 6671b253130..bf28febfcae 100644
--- a/renderer/sources.gni
+++ b/renderer/sources.gni
@@ -8,6 +8,7 @@ import("//brave/components/brave_vpn/common/buildflags/buildflags.gni")
import("//brave/components/playlist/common/buildflags/buildflags.gni")
import("//brave/components/speedreader/common/buildflags/buildflags.gni")
import("//brave/components/tor/buildflags/buildflags.gni")
+import("//third_party/widevine/cdm/widevine.gni")
brave_chrome_renderer_sources = [
"//brave/renderer/brave_content_renderer_client.cc",
@@ -67,5 +68,9 @@ if (enable_brave_vpn) {
}
}
+if (enable_widevine) {
+ brave_chrome_renderer_deps += [ "//third_party/widevine/cdm:headers" ]
+}
+
# do not add anything else here
brave_chrome_renderer_public_deps = []