diff --git a/android/java/org/chromium/chrome/browser/BraveRelaunchUtils.java b/android/java/org/chromium/chrome/browser/BraveRelaunchUtils.java index c9a1f551a1ba0..5ba0d9ac36b8c 100644 --- a/android/java/org/chromium/chrome/browser/BraveRelaunchUtils.java +++ b/android/java/org/chromium/chrome/browser/BraveRelaunchUtils.java @@ -61,6 +61,10 @@ public void onClick(DialogInterface dialog, int id) { alertDialog.show(); } + public static void restart() { + BraveRelaunchUtilsJni.get().restart(); + } + @NativeMethods interface Natives { void restart(); diff --git a/android/java/org/chromium/chrome/browser/upgrade/BraveUpgradeJobIntentService.java b/android/java/org/chromium/chrome/browser/upgrade/BraveUpgradeJobIntentService.java index 83d535860e16c..82347b919b80a 100644 --- a/android/java/org/chromium/chrome/browser/upgrade/BraveUpgradeJobIntentService.java +++ b/android/java/org/chromium/chrome/browser/upgrade/BraveUpgradeJobIntentService.java @@ -17,6 +17,7 @@ import org.chromium.base.library_loader.LibraryProcessType; import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.BraveHelper; +import org.chromium.chrome.browser.BraveRelaunchUtils; import org.chromium.chrome.browser.preferences.BravePreferenceKeys; import org.chromium.chrome.browser.preferences.BravePref; import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; @@ -227,9 +228,10 @@ private boolean migrateShieldsSettingsForHost(String host, String settings) { return true; } - private void migrateTotalStatsAndPreferences() { + private boolean migrateTotalStatsAndPreferences() { + boolean needToRestart = false; if (!BraveUpgradeJobIntentService.needToMigratePreferences()) { - return; + return needToRestart; } SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); // Total stats migration @@ -252,8 +254,12 @@ private void migrateTotalStatsAndPreferences() { sharedPreferencesEditor.putLong(PREF_HTTPS_UPGRADES_COUNT, 0); // Background video playback migration - BravePrefServiceBridge.getInstance().setBackgroundVideoPlaybackEnabled( - BravePrefServiceBridge.getInstance().GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_PLAY_VIDEO_IN_BACKGROUND)); + if (BravePrefServiceBridge.getInstance().getBackgroundVideoPlaybackEnabled() != BravePrefServiceBridge.getInstance() + .GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_PLAY_VIDEO_IN_BACKGROUND)) { + needToRestart = true; + BravePrefServiceBridge.getInstance().setBackgroundVideoPlaybackEnabled(BravePrefServiceBridge.getInstance() + .GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_PLAY_VIDEO_IN_BACKGROUND)); + } // Play YT links in Brave option BravePrefServiceBridge.getInstance().setPlayYTVideoInBrowserEnabled( BravePrefServiceBridge.getInstance().GetBooleanForContentSetting(CONTENT_SETTINGS_TYPE_PLAY_YT_VIDEO_IN_BROWSER)); @@ -277,6 +283,7 @@ private void migrateTotalStatsAndPreferences() { sharedPreferencesEditor.putBoolean(BraveHelper.PREF_TABS_SETTINGS_MIGRATED, true); sharedPreferencesEditor.apply(); + return needToRestart; } private void removeNTPFiles() { @@ -311,9 +318,10 @@ public void onSuccess() { } catch(Exception exc) { Log.e("NTP", "On app upgrade : " + exc.getMessage()); } - migrateTotalStatsAndPreferences(); + boolean needToRestart = migrateTotalStatsAndPreferences(); if (!migrateShieldsConfig()) { Log.e(TAG, "Failed to migrate Brave shields config settings"); + finalizeMigration(needToRestart); return; } @@ -328,8 +336,10 @@ public void onSuccess() { File migratedName = new File(dataDir, SHIELDS_CONFIG_MIGRATED_FILENAME); if (!oldName.renameTo(migratedName)) { Log.e(TAG, "Failed to rename migrated Brave shields config file"); + finalizeMigration(needToRestart); return; } + finalizeMigration(needToRestart); } @Override @@ -341,4 +351,12 @@ public void onFailure() { }); }); } + + private void finalizeMigration(boolean needToRestart) { + if (!needToRestart) return; + // Restart the app to apply migrated options + PostTask.postTask(UiThreadTaskTraits.DEFAULT, () -> { + BraveRelaunchUtils.restart(); + }); + } } diff --git a/browser/android/preferences/background_video_playback_tab_helper.cc b/browser/android/preferences/background_video_playback_tab_helper.cc index 44be2bb63b575..9c94514dfc0b7 100644 --- a/browser/android/preferences/background_video_playback_tab_helper.cc +++ b/browser/android/preferences/background_video_playback_tab_helper.cc @@ -44,6 +44,7 @@ bool IsBackgroundVideoPlaybackEnabled(content::WebContents* contents) { if (host.find("www.youtube.com") != std::string::npos || host.find("youtube.com") != std::string::npos || host.find("m.youtube.com") != std::string::npos) { + content::RenderFrameHost::AllowInjectingJavaScript(); return true; } }