Skip to content

Commit

Permalink
Merge pull request #5048 from brave/android_video_background_migratio…
Browse files Browse the repository at this point in the history
…n_fix_1.7.x

Fix for video in background option migration (uplift to 1.7.x)
  • Loading branch information
kjozwiak authored Mar 24, 2020
2 parents ef2b0aa + 4573fd2 commit 618ff44
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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));
Expand All @@ -277,6 +283,7 @@ private void migrateTotalStatsAndPreferences() {

sharedPreferencesEditor.putBoolean(BraveHelper.PREF_TABS_SETTINGS_MIGRATED, true);
sharedPreferencesEditor.apply();
return needToRestart;
}

private void removeNTPFiles() {
Expand Down Expand Up @@ -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;
}

Expand All @@ -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
Expand All @@ -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();
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down

0 comments on commit 618ff44

Please sign in to comment.