Commit 97a0fbce authored by Clark DuVall's avatar Clark DuVall Committed by Commit Bot

Convert ChromeBackupAgent to split compat

Review from Patchset 1 to get the right diffs on the changes in
ChromeBackupAgentImpl.

Bug: 1126301
Change-Id: I441e3dc4cf098212d6170db7f3913ef2edbc2066
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2461221Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Commit-Queue: Clark DuVall <cduvall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#815445}
parent 0fb73c35
...@@ -2069,8 +2069,10 @@ android_library("base_module_java") { ...@@ -2069,8 +2069,10 @@ android_library("base_module_java") {
sources = [ sources = [
"java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java", "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
"java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
"java/src/org/chromium/chrome/browser/base/SplitChromeApplication.java", "java/src/org/chromium/chrome/browser/base/SplitChromeApplication.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatApplication.java", "java/src/org/chromium/chrome/browser/base/SplitCompatApplication.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatGcmListenerService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatGcmListenerService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java",
...@@ -3066,7 +3068,7 @@ generate_jni("chrome_jni_headers") { ...@@ -3066,7 +3068,7 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java", "java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java",
"java/src/org/chromium/chrome/browser/AppHooks.java", "java/src/org/chromium/chrome/browser/AppHooks.java",
"java/src/org/chromium/chrome/browser/ApplicationLifetime.java", "java/src/org/chromium/chrome/browser/ApplicationLifetime.java",
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java",
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
"java/src/org/chromium/chrome/browser/DevToolsServer.java", "java/src/org/chromium/chrome/browser/DevToolsServer.java",
"java/src/org/chromium/chrome/browser/IntentHandler.java", "java/src/org/chromium/chrome/browser/IntentHandler.java",
......
...@@ -16,7 +16,7 @@ chrome_java_sources = [ ...@@ -16,7 +16,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java", "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
"java/src/org/chromium/chrome/browser/ChromeApplication.java", "java/src/org/chromium/chrome/browser/ChromeApplication.java",
"java/src/org/chromium/chrome/browser/ChromeBackgroundServiceImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundServiceImpl.java",
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java",
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
"java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
"java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java", "java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java",
......
...@@ -50,7 +50,7 @@ public class ChromeBackupWatcher { ...@@ -50,7 +50,7 @@ public class ChromeBackupWatcher {
} }
sharedPrefs.addObserver((key) -> { sharedPrefs.addObserver((key) -> {
// Update the backup if any of the backed up Android preferences change. // Update the backup if any of the backed up Android preferences change.
for (String pref : ChromeBackupAgent.BACKUP_ANDROID_BOOL_PREFS) { for (String pref : ChromeBackupAgentImpl.BACKUP_ANDROID_BOOL_PREFS) {
if (key.equals(pref)) { if (key.equals(pref)) {
onBackupPrefsChanged(); onBackupPrefsChanged();
return; return;
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.base;
import android.app.backup.BackupAgent;
import android.app.backup.BackupDataInput;
import android.app.backup.BackupDataOutput;
import android.content.Context;
import android.os.ParcelFileDescriptor;
import java.io.IOException;
/**
* BackupAgent base class which will call through to the given {@link Impl}. This class must be
* present in the base module, while the Impl can be in the chrome module.
*/
public class SplitCompatBackupAgent extends BackupAgent {
private String mBackupAgentClassName;
private Impl mImpl;
public SplitCompatBackupAgent(String backupAgentClassName) {
mBackupAgentClassName = backupAgentClassName;
}
@Override
protected void attachBaseContext(Context context) {
context = SplitCompatUtils.createChromeContext(context);
mImpl = (Impl) SplitCompatUtils.newInstance(context, mBackupAgentClassName);
mImpl.setBackupAgent(this);
super.attachBaseContext(context);
}
@Override
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
ParcelFileDescriptor newState) throws IOException {
mImpl.onBackup(oldState, data, newState);
}
@Override
public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
throws IOException {
mImpl.onRestore(data, appVersionCode, newState);
}
/**
* Holds the implementation of backup agent logic. Will be called by {@link
* SplitCompatBackupAgent}.
*/
public abstract static class Impl {
private SplitCompatBackupAgent mBackupAgent;
protected final void setBackupAgent(SplitCompatBackupAgent backupAgent) {
mBackupAgent = backupAgent;
}
protected final BackupAgent getBackupAgent() {
return mBackupAgent;
}
public abstract void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
ParcelFileDescriptor newState) throws IOException;
public abstract void onRestore(BackupDataInput data, int appVersionCode,
ParcelFileDescriptor newState) throws IOException;
}
}
...@@ -32,7 +32,7 @@ import org.chromium.chrome.browser.AfterStartupTaskUtils; ...@@ -32,7 +32,7 @@ import org.chromium.chrome.browser.AfterStartupTaskUtils;
import org.chromium.chrome.browser.AppHooks; import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplication; import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.ChromeBackupAgent; import org.chromium.chrome.browser.ChromeBackupAgentImpl;
import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.DeferredStartupHandler; import org.chromium.chrome.browser.DeferredStartupHandler;
import org.chromium.chrome.browser.DevToolsServer; import org.chromium.chrome.browser.DevToolsServer;
...@@ -360,7 +360,7 @@ public class ProcessInitializationHandler { ...@@ -360,7 +360,7 @@ public class ProcessInitializationHandler {
@Override @Override
public void run() { public void run() {
// Record the saved restore state in a histogram // Record the saved restore state in a histogram
ChromeBackupAgent.recordRestoreHistogram(); ChromeBackupAgentImpl.recordRestoreHistogram();
} }
}); });
......
...@@ -41,34 +41,35 @@ public class RestoreHistogramTest { ...@@ -41,34 +41,35 @@ public class RestoreHistogramTest {
@SmallTest @SmallTest
public void testHistogramWriter() { public void testHistogramWriter() {
LibraryLoader.getInstance().ensureInitialized(); LibraryLoader.getInstance().ensureInitialized();
MetricsUtils.HistogramDelta noRestoreDelta = MetricsUtils.HistogramDelta noRestoreDelta = new MetricsUtils.HistogramDelta(
new MetricsUtils.HistogramDelta(ChromeBackupAgent.HISTOGRAM_ANDROID_RESTORE_RESULT, ChromeBackupAgentImpl.HISTOGRAM_ANDROID_RESTORE_RESULT,
ChromeBackupAgent.RestoreStatus.NO_RESTORE); ChromeBackupAgentImpl.RestoreStatus.NO_RESTORE);
MetricsUtils.HistogramDelta restoreCompletedDelta = MetricsUtils.HistogramDelta restoreCompletedDelta = new MetricsUtils.HistogramDelta(
new MetricsUtils.HistogramDelta(ChromeBackupAgent.HISTOGRAM_ANDROID_RESTORE_RESULT, ChromeBackupAgentImpl.HISTOGRAM_ANDROID_RESTORE_RESULT,
ChromeBackupAgent.RestoreStatus.RESTORE_COMPLETED); ChromeBackupAgentImpl.RestoreStatus.RESTORE_COMPLETED);
MetricsUtils.HistogramDelta restoreStatusRecorded = MetricsUtils.HistogramDelta restoreStatusRecorded = new MetricsUtils.HistogramDelta(
new MetricsUtils.HistogramDelta(ChromeBackupAgent.HISTOGRAM_ANDROID_RESTORE_RESULT, ChromeBackupAgentImpl.HISTOGRAM_ANDROID_RESTORE_RESULT,
ChromeBackupAgent.RestoreStatus.RESTORE_STATUS_RECORDED); ChromeBackupAgentImpl.RestoreStatus.RESTORE_STATUS_RECORDED);
// Check behavior with no preference set // Check behavior with no preference set
ChromeBackupAgent.recordRestoreHistogram(); ChromeBackupAgentImpl.recordRestoreHistogram();
Assert.assertEquals(1, noRestoreDelta.getDelta()); Assert.assertEquals(1, noRestoreDelta.getDelta());
Assert.assertEquals(0, restoreCompletedDelta.getDelta()); Assert.assertEquals(0, restoreCompletedDelta.getDelta());
Assert.assertEquals(ChromeBackupAgent.RestoreStatus.RESTORE_STATUS_RECORDED, Assert.assertEquals(ChromeBackupAgentImpl.RestoreStatus.RESTORE_STATUS_RECORDED,
ChromeBackupAgent.getRestoreStatus()); ChromeBackupAgentImpl.getRestoreStatus());
// Check behavior with a restore status // Check behavior with a restore status
ChromeBackupAgent.setRestoreStatus(ChromeBackupAgent.RestoreStatus.RESTORE_COMPLETED); ChromeBackupAgentImpl.setRestoreStatus(
ChromeBackupAgent.recordRestoreHistogram(); ChromeBackupAgentImpl.RestoreStatus.RESTORE_COMPLETED);
ChromeBackupAgentImpl.recordRestoreHistogram();
Assert.assertEquals(1, noRestoreDelta.getDelta()); Assert.assertEquals(1, noRestoreDelta.getDelta());
Assert.assertEquals(1, restoreCompletedDelta.getDelta()); Assert.assertEquals(1, restoreCompletedDelta.getDelta());
Assert.assertEquals(ChromeBackupAgent.RestoreStatus.RESTORE_STATUS_RECORDED, Assert.assertEquals(ChromeBackupAgentImpl.RestoreStatus.RESTORE_STATUS_RECORDED,
ChromeBackupAgent.getRestoreStatus()); ChromeBackupAgentImpl.getRestoreStatus());
// Second call should record nothing (note this assumes it doesn't record something totally // Second call should record nothing (note this assumes it doesn't record something totally
// random) // random)
ChromeBackupAgent.recordRestoreHistogram(); ChromeBackupAgentImpl.recordRestoreHistogram();
Assert.assertEquals(0, restoreStatusRecorded.getDelta()); Assert.assertEquals(0, restoreStatusRecorded.getDelta());
} }
...@@ -82,9 +83,9 @@ public class RestoreHistogramTest { ...@@ -82,9 +83,9 @@ public class RestoreHistogramTest {
@SmallTest @SmallTest
public void testWritingHistogramAtStartup() throws InterruptedException { public void testWritingHistogramAtStartup() throws InterruptedException {
LibraryLoader.getInstance().ensureInitialized(); LibraryLoader.getInstance().ensureInitialized();
MetricsUtils.HistogramDelta noRestoreDelta = MetricsUtils.HistogramDelta noRestoreDelta = new MetricsUtils.HistogramDelta(
new MetricsUtils.HistogramDelta(ChromeBackupAgent.HISTOGRAM_ANDROID_RESTORE_RESULT, ChromeBackupAgentImpl.HISTOGRAM_ANDROID_RESTORE_RESULT,
ChromeBackupAgent.RestoreStatus.NO_RESTORE); ChromeBackupAgentImpl.RestoreStatus.NO_RESTORE);
// Histogram should be written the first time the activity is started. // Histogram should be written the first time the activity is started.
mActivityTestRule.startMainActivityOnBlankPage(); mActivityTestRule.startMainActivityOnBlankPage();
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include "base/android/jni_array.h" #include "base/android/jni_array.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "chrome/android/chrome_jni_headers/ChromeBackupAgent_jni.h" #include "chrome/android/chrome_jni_headers/ChromeBackupAgentImpl_jni.h"
#include "chrome/browser/android/chrome_backup_agent.h" #include "chrome/browser/android/chrome_backup_agent.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h" #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
...@@ -33,7 +33,7 @@ const char* backed_up_preferences_[] = { ...@@ -33,7 +33,7 @@ const char* backed_up_preferences_[] = {
} // namespace } // namespace
static base::android::ScopedJavaLocalRef<jobjectArray> static base::android::ScopedJavaLocalRef<jobjectArray>
JNI_ChromeBackupAgent_GetBoolBackupNames( JNI_ChromeBackupAgentImpl_GetBoolBackupNames(
JNIEnv* env, JNIEnv* env,
const base::android::JavaParamRef<jobject>& jcaller) { const base::android::JavaParamRef<jobject>& jcaller) {
return base::android::ToJavaArrayOfStrings(env, return base::android::ToJavaArrayOfStrings(env,
...@@ -41,7 +41,7 @@ JNI_ChromeBackupAgent_GetBoolBackupNames( ...@@ -41,7 +41,7 @@ JNI_ChromeBackupAgent_GetBoolBackupNames(
} }
static base::android::ScopedJavaLocalRef<jbooleanArray> static base::android::ScopedJavaLocalRef<jbooleanArray>
JNI_ChromeBackupAgent_GetBoolBackupValues( JNI_ChromeBackupAgentImpl_GetBoolBackupValues(
JNIEnv* env, JNIEnv* env,
const base::android::JavaParamRef<jobject>& jcaller) { const base::android::JavaParamRef<jobject>& jcaller) {
PrefService* prefs = ProfileManager::GetLastUsedProfile()->GetPrefs(); PrefService* prefs = ProfileManager::GetLastUsedProfile()->GetPrefs();
...@@ -56,7 +56,7 @@ JNI_ChromeBackupAgent_GetBoolBackupValues( ...@@ -56,7 +56,7 @@ JNI_ChromeBackupAgent_GetBoolBackupValues(
return base::android::ScopedJavaLocalRef<jbooleanArray>(env, array); return base::android::ScopedJavaLocalRef<jbooleanArray>(env, array);
} }
static void JNI_ChromeBackupAgent_SetBoolBackupPrefs( static void JNI_ChromeBackupAgentImpl_SetBoolBackupPrefs(
JNIEnv* env, JNIEnv* env,
const base::android::JavaParamRef<jobject>& jcaller, const base::android::JavaParamRef<jobject>& jcaller,
const base::android::JavaParamRef<jobjectArray>& names, const base::android::JavaParamRef<jobjectArray>& names,
...@@ -87,13 +87,13 @@ std::vector<std::string> GetBackupPrefNames() { ...@@ -87,13 +87,13 @@ std::vector<std::string> GetBackupPrefNames() {
base::android::ScopedJavaLocalRef<jobjectArray> GetBoolBackupNamesForTesting( base::android::ScopedJavaLocalRef<jobjectArray> GetBoolBackupNamesForTesting(
JNIEnv* env, JNIEnv* env,
const base::android::JavaParamRef<jobject>& jcaller) { const base::android::JavaParamRef<jobject>& jcaller) {
return JNI_ChromeBackupAgent_GetBoolBackupNames(env, jcaller); return JNI_ChromeBackupAgentImpl_GetBoolBackupNames(env, jcaller);
} }
base::android::ScopedJavaLocalRef<jbooleanArray> GetBoolBackupValuesForTesting( base::android::ScopedJavaLocalRef<jbooleanArray> GetBoolBackupValuesForTesting(
JNIEnv* env, JNIEnv* env,
const base::android::JavaParamRef<jobject>& jcaller) { const base::android::JavaParamRef<jobject>& jcaller) {
return JNI_ChromeBackupAgent_GetBoolBackupValues(env, jcaller); return JNI_ChromeBackupAgentImpl_GetBoolBackupValues(env, jcaller);
} }
void SetBoolBackupPrefsForTesting( void SetBoolBackupPrefsForTesting(
...@@ -101,7 +101,7 @@ void SetBoolBackupPrefsForTesting( ...@@ -101,7 +101,7 @@ void SetBoolBackupPrefsForTesting(
const base::android::JavaParamRef<jobject>& jcaller, const base::android::JavaParamRef<jobject>& jcaller,
const base::android::JavaParamRef<jobjectArray>& names, const base::android::JavaParamRef<jobjectArray>& names,
const base::android::JavaParamRef<jbooleanArray>& values) { const base::android::JavaParamRef<jbooleanArray>& values) {
JNI_ChromeBackupAgent_SetBoolBackupPrefs(env, jcaller, names, values); JNI_ChromeBackupAgentImpl_SetBoolBackupPrefs(env, jcaller, names, values);
} }
} // namespace android } // namespace android
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment