Presubmit, gn and test fixes
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<vector android:autoMirrored="true" android:height="24dp"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@color/quick_action_search_and_bookmark_widget_tint" android:fillType="evenOdd" android:pathData="M21.841,22H1.986C0.891,22 0,21.103 0,20V4C0,2.897 0.891,2 1.986,2H21.841C22.935,2 24,2.897 24,4V20C24,21.103 22.935,22 21.841,22ZM21.996,4H1.986V12.825L7.296,8.241C7.689,7.901 8.277,7.923 8.644,8.293L13.992,13.68L17.274,11.2C17.697,10.881 18.294,10.951 18.632,11.36L21.996,15.426V4ZM21.996,18.55L17.71,13.37L14.494,15.8C14.099,16.099 13.546,16.059 13.196,15.707L7.89,10.362L1.986,15.46V20H21.996V18.55ZM15.884,8C15.884,6.897 16.775,6 17.871,6C18.965,6 19.855,6.897 19.855,8C19.855,9.103 18.965,10 17.871,10C16.775,10 15.884,9.103 15.884,8ZM17.868,8.001L17.871,9L17.872,8C17.871,8 17.869,8 17.868,8.001Z"/>
|
||||
</vector>
|
||||
@@ -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"
|
||||
|
||||
@@ -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"/>
|
||||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:fragment="org.chromium.chrome.browser.settings.AppearancePreferences"
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
android:key="background_video_playback"
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_bg_video_playback"
|
||||
android:title="@string/prefs_background_video_playback"/>
|
||||
android:title="@string/prefs_background_video_playback"
|
||||
android:summary="@string/prefs_background_video_playback_on" />
|
||||
|
||||
</PreferenceScreen>
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
</if>
|
||||
<if expr="is_android">
|
||||
<message name="IDS_WIDEVINE_PERMISSION_REQUEST_TEXT_FRAGMENT_ENABLE_SYSTEM" desc="Text fragment for Widevine permission request. 'Widevine' is the name of a plugin and should not be translated.">
|
||||
<ph name="URL">$1<ex>https://www.youtube.com</ex></ph> 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.)
|
||||
<ph name="URL">$1<ex>https://www.youtube.com</ex></ph> 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.
|
||||
</message>
|
||||
</if>
|
||||
<message name="IDS_WIDEVINE_INSTALL_MESSAGE" desc="Bubble info text when Widevine is not installed. 'Widevine' is the name of a plugin and should not be translated.">
|
||||
|
||||
@@ -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_)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -40,7 +40,8 @@ KeyedService* BraveRendererUpdaterFactory::BuildServiceInstanceFor(
|
||||
auto* keyring_service =
|
||||
brave_wallet::KeyringServiceFactory::GetServiceForContext(context);
|
||||
return new BraveRendererUpdater(static_cast<Profile*>(context),
|
||||
keyring_service, g_browser_process->local_state());
|
||||
keyring_service,
|
||||
g_browser_process->local_state());
|
||||
}
|
||||
|
||||
bool BraveRendererUpdaterFactory::ServiceIsCreatedWithBrowserContext() const {
|
||||
|
||||
@@ -820,7 +820,7 @@ This file contains all "about" strings. It is set to NOT be translated, in tran
|
||||
<ph name="BEGIN_LINK"><LINK></ph>Learn more about Widevine<ph name="END_LINK"></LINK></ph>
|
||||
</message>
|
||||
<message name="IDS_WIDEVINE_PERMISSION_REQUEST_PRIMARY_BUTTON_TEXT" desc="Primary button text for Widevine permission request.">
|
||||
ALLOW (RELAUNCH NOW)
|
||||
Allow (Relaunch Now)
|
||||
</message>
|
||||
<message name="IDS_PREFS_APPEARANCE" desc="Title of Appearance settings, which allows the user to change display settings. [CHAR-LIMIT=32]">
|
||||
Appearance
|
||||
|
||||
+14
-11
@@ -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" ]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "brave/browser/widevine/widevine_utils.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
#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
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
#ifndef BRAVE_BROWSER_WIDEVINE_WIDEVINE_UTILS_H_
|
||||
#define BRAVE_BROWSER_WIDEVINE_WIDEVINE_UTILS_H_
|
||||
|
||||
#include <string>
|
||||
|
||||
#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(
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
include_rules = [
|
||||
"+brave/browser/widevine",
|
||||
"+brave/components/l10n/common",
|
||||
"+brave/components/permissions/android/jni_headers",
|
||||
"+components/grit",
|
||||
|
||||
+30
-19
@@ -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<jobject>& obj); \
|
||||
#define CreateJavaDelegate \
|
||||
Java_PermissionDialogController_createDialog_BraveImpl( \
|
||||
JNIEnv* env, const base::android::JavaRef<jobject>& 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<PermissionRequest*>& requests = permission_prompt->delegate()->Requests();
|
||||
return requests.size() == 1 && requests[0]->request_type() == RequestType::kWidevine;
|
||||
const std::vector<PermissionRequest*>& requests =
|
||||
permission_prompt->delegate()->Requests();
|
||||
return requests.size() == 1 &&
|
||||
requests[0]->request_type() == RequestType::kWidevine;
|
||||
}
|
||||
#endif
|
||||
|
||||
void ApplyWidevineDontAskOption(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
PermissionPromptAndroid* permission_prompt) {
|
||||
void ApplyWidevineDontAskOption(JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
PermissionPromptAndroid* permission_prompt) {
|
||||
#if BUILDFLAG(ENABLE_WIDEVINE)
|
||||
if (IsWidevineRequest(permission_prompt)) {
|
||||
const bool dontAsk = Java_BravePermissionDialogDelegate_getWidevineDontAsk(env, obj);
|
||||
WidevinePermissionRequest* widevineRequest = static_cast<WidevinePermissionRequest*>(
|
||||
permission_prompt->delegate()->Requests()[0]);
|
||||
const bool dontAsk =
|
||||
Java_BravePermissionDialogDelegate_getWidevineDontAsk(env, obj);
|
||||
WidevinePermissionRequest* widevineRequest =
|
||||
static_cast<WidevinePermissionRequest*>(
|
||||
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<jobject>& 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<jobject>& 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 \
|
||||
|
||||
+1
@@ -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. */
|
||||
|
||||
+30
-30
@@ -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("<LINK>", "</LINK>",
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
]
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "brave/renderer/brave_content_renderer_client.h"
|
||||
|
||||
#include <utility>
|
||||
|
||||
#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<media::KeySystemInfo> &key_system) {
|
||||
return key_system->GetBaseKeySystemName();
|
||||
}),
|
||||
key_systems.cend());
|
||||
base::ranges::remove(
|
||||
key_systems, kWidevineKeySystem,
|
||||
[](const std::unique_ptr<media::KeySystemInfo>& 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(
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
Reference in New Issue
Block a user