Commit 4b559ce9 authored by Natalie Chouinard's avatar Natalie Chouinard Committed by Commit Bot

Move methods to SafeBrowsingBridge

Move Safe Browsing feature-specific methods from PrefServiceBridge to
the dedicated (and renamed) SafeBrowsingBridge.

Bug: 1016957
Change-Id: Ia3acb1f505e152369268b20c5fbf24f6449da55c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1896041
Commit-Queue: Natalie Chouinard <chouinard@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarDaniel Rubery <drubery@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713188}
parent b229096e
......@@ -2787,7 +2787,7 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/rappor/RapporServiceBridge.java",
"java/src/org/chromium/chrome/browser/rlz/RevenueStats.java",
"java/src/org/chromium/chrome/browser/rlz/RlzPingHandler.java",
"java/src/org/chromium/chrome/browser/safe_browsing/FileTypePolicies.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java",
"java/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory.java",
"java/src/org/chromium/chrome/browser/send_tab_to_self/NotificationManager.java",
"java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfAndroidBridge.java",
......
......@@ -1425,7 +1425,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/rappor/RapporServiceBridge.java",
"java/src/org/chromium/chrome/browser/rlz/RevenueStats.java",
"java/src/org/chromium/chrome/browser/rlz/RlzPingHandler.java",
"java/src/org/chromium/chrome/browser/safe_browsing/FileTypePolicies.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java",
"java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java",
"java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java",
"java/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory.java",
......
......@@ -291,48 +291,6 @@ public class PrefServiceBridge {
return PrefServiceBridgeJni.get().getSyncLastAccountName();
}
/**
* @return Whether Safe Browsing Extended Reporting is currently enabled.
*/
public boolean isSafeBrowsingExtendedReportingEnabled() {
return PrefServiceBridgeJni.get().getSafeBrowsingExtendedReportingEnabled();
}
/**
* @param enabled Whether Safe Browsing Extended Reporting should be enabled.
*/
public void setSafeBrowsingExtendedReportingEnabled(boolean enabled) {
PrefServiceBridgeJni.get().setSafeBrowsingExtendedReportingEnabled(enabled);
}
/**
* @return Whether Safe Browsing Extended Reporting is managed
*/
public boolean isSafeBrowsingExtendedReportingManaged() {
return PrefServiceBridgeJni.get().getSafeBrowsingExtendedReportingManaged();
}
/**
* @return Whether Safe Browsing is currently enabled.
*/
public boolean isSafeBrowsingEnabled() {
return PrefServiceBridgeJni.get().getSafeBrowsingEnabled();
}
/**
* @param enabled Whether Safe Browsing should be enabled.
*/
public void setSafeBrowsingEnabled(boolean enabled) {
PrefServiceBridgeJni.get().setSafeBrowsingEnabled(enabled);
}
/**
* @return Whether Safe Browsing is managed
*/
public boolean isSafeBrowsingManaged() {
return PrefServiceBridgeJni.get().getSafeBrowsingManaged();
}
/**
* @return Whether there is a user set value for kNetworkPredictionOptions. This should only be
* used for preference migration. See http://crbug.com/334602
......@@ -685,12 +643,6 @@ public class PrefServiceBridge {
void setSensorsEnabled(boolean enabled);
void setSoundEnabled(boolean enabled);
boolean canPrefetchAndPrerender();
boolean getSafeBrowsingExtendedReportingEnabled();
void setSafeBrowsingExtendedReportingEnabled(boolean enabled);
boolean getSafeBrowsingExtendedReportingManaged();
boolean getSafeBrowsingEnabled();
void setSafeBrowsingEnabled(boolean enabled);
boolean getSafeBrowsingManaged();
boolean getNetworkPredictionManaged();
boolean obsoleteNetworkPredictionOptionsHasUserSetting();
boolean getNetworkPredictionEnabled();
......
......@@ -52,6 +52,7 @@ import org.chromium.chrome.browser.preferences.PreferenceUtils;
import org.chromium.chrome.browser.preferences.Preferences;
import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge;
import org.chromium.chrome.browser.signin.IdentityServicesProvider;
import org.chromium.chrome.browser.signin.UnifiedConsentServiceBridge;
import org.chromium.chrome.browser.sync.GoogleServiceAuthError;
......@@ -350,9 +351,9 @@ public class SyncAndServicesPreferences extends PreferenceFragmentCompat
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
mPrefServiceBridge.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
} else if (PREF_SAFE_BROWSING.equals(key)) {
mPrefServiceBridge.setSafeBrowsingEnabled((boolean) newValue);
mPrefServiceBridge.setBoolean(Pref.SAFE_BROWSING_ENABLED, (boolean) newValue);
} else if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
mPrefServiceBridge.setSafeBrowsingExtendedReportingEnabled((boolean) newValue);
SafeBrowsingBridge.setSafeBrowsingExtendedReportingEnabled((boolean) newValue);
} else if (PREF_NAVIGATION_ERROR.equals(key)) {
mPrefServiceBridge.setResolveNavigationErrorEnabled((boolean) newValue);
} else if (PREF_USAGE_AND_CRASH_REPORTING.equals(key)) {
......@@ -554,9 +555,9 @@ public class SyncAndServicesPreferences extends PreferenceFragmentCompat
mSearchSuggestions.setChecked(mPrefServiceBridge.getBoolean(Pref.SEARCH_SUGGEST_ENABLED));
mNavigationError.setChecked(mPrefServiceBridge.isResolveNavigationErrorEnabled());
mSafeBrowsing.setChecked(mPrefServiceBridge.isSafeBrowsingEnabled());
mSafeBrowsing.setChecked(mPrefServiceBridge.getBoolean(Pref.SAFE_BROWSING_ENABLED));
mSafeBrowsingReporting.setChecked(
mPrefServiceBridge.isSafeBrowsingExtendedReportingEnabled());
SafeBrowsingBridge.isSafeBrowsingExtendedReportingEnabled());
mUsageAndCrashReporting.setChecked(
mPrivacyPrefManager.isUsageAndCrashReportingPermittedByUser());
mUrlKeyedAnonymizedData.setChecked(
......@@ -624,10 +625,10 @@ public class SyncAndServicesPreferences extends PreferenceFragmentCompat
return mPrefServiceBridge.isManagedPreference(Pref.SEARCH_SUGGEST_ENABLED);
}
if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
return mPrefServiceBridge.isSafeBrowsingExtendedReportingManaged();
return SafeBrowsingBridge.isSafeBrowsingExtendedReportingManaged();
}
if (PREF_SAFE_BROWSING.equals(key)) {
return mPrefServiceBridge.isSafeBrowsingManaged();
return mPrefServiceBridge.isManagedPreference(Pref.SAFE_BROWSING_ENABLED);
}
if (PREF_USAGE_AND_CRASH_REPORTING.equals(key)) {
return mPrefServiceBridge.isMetricsReportingManaged();
......
......@@ -8,20 +8,46 @@ import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods;
/**
* This class reports UMA values based on files' extensions.
* Bridge providing access to native-side Safe Browsing data.
*/
@JNINamespace("safe_browsing")
public final class FileTypePolicies {
public final class SafeBrowsingBridge {
/**
* Reports UMA values based on files' extensions.
*
* @param path The file path.
* @return The UMA value for the file.
*/
public static int umaValueForFile(String path) {
return FileTypePoliciesJni.get().umaValueForFile(path);
return SafeBrowsingBridgeJni.get().umaValueForFile(path);
}
/**
* @return Whether Safe Browsing Extended Reporting is currently enabled.
*/
public static boolean isSafeBrowsingExtendedReportingEnabled() {
return SafeBrowsingBridgeJni.get().getSafeBrowsingExtendedReportingEnabled();
}
/**
* @param enabled Whether Safe Browsing Extended Reporting should be enabled.
*/
public static void setSafeBrowsingExtendedReportingEnabled(boolean enabled) {
SafeBrowsingBridgeJni.get().setSafeBrowsingExtendedReportingEnabled(enabled);
}
/**
* @return Whether Safe Browsing Extended Reporting is managed
*/
public static boolean isSafeBrowsingExtendedReportingManaged() {
return SafeBrowsingBridgeJni.get().getSafeBrowsingExtendedReportingManaged();
}
@NativeMethods
interface Natives {
int umaValueForFile(String path);
boolean getSafeBrowsingExtendedReportingEnabled();
void setSafeBrowsingExtendedReportingEnabled(boolean enabled);
boolean getSafeBrowsingExtendedReportingManaged();
}
}
......@@ -19,7 +19,7 @@ import org.chromium.base.task.AsyncTask;
import org.chromium.base.task.PostTask;
import org.chromium.base.task.TaskRunner;
import org.chromium.base.task.TaskTraits;
import org.chromium.chrome.browser.safe_browsing.FileTypePolicies;
import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge;
import org.chromium.chrome.browser.share.ShareHelper;
import org.chromium.chrome.browser.share.ShareParams;
import org.chromium.chrome.browser.share.ShareSheetCoordinator;
......@@ -197,7 +197,7 @@ public class ShareServiceImpl implements ShareService {
for (SharedFile file : files) {
RecordHistogram.recordSparseHistogram(
"WebShare.Unverified", FileTypePolicies.umaValueForFile(file.name));
"WebShare.Unverified", SafeBrowsingBridge.umaValueForFile(file.name));
}
for (SharedFile file : files) {
......
......@@ -39,7 +39,6 @@
#include "components/metrics/metrics_pref_names.h"
#include "components/password_manager/core/common/password_manager_pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/safe_browsing/common/safe_browsing_prefs.h"
#include "components/signin/public/base/signin_pref_names.h"
#include "components/web_resource/web_resource_pref_names.h"
#include "content/public/browser/browser_thread.h"
......@@ -316,40 +315,6 @@ static jboolean JNI_PrefServiceBridge_GetPasswordEchoEnabled(JNIEnv* env) {
return GetPrefService()->GetBoolean(prefs::kWebKitPasswordEchoEnabled);
}
static jboolean JNI_PrefServiceBridge_GetSafeBrowsingExtendedReportingEnabled(
JNIEnv* env) {
return safe_browsing::IsExtendedReportingEnabled(*GetPrefService());
}
static void JNI_PrefServiceBridge_SetSafeBrowsingExtendedReportingEnabled(
JNIEnv* env,
jboolean enabled) {
safe_browsing::SetExtendedReportingPrefAndMetric(
GetPrefService(), enabled,
safe_browsing::SBER_OPTIN_SITE_ANDROID_SETTINGS);
}
static jboolean JNI_PrefServiceBridge_GetSafeBrowsingExtendedReportingManaged(
JNIEnv* env) {
PrefService* pref_service = GetPrefService();
return pref_service->IsManagedPreference(
prefs::kSafeBrowsingScoutReportingEnabled);
}
static jboolean JNI_PrefServiceBridge_GetSafeBrowsingEnabled(JNIEnv* env) {
return GetPrefService()->GetBoolean(prefs::kSafeBrowsingEnabled);
}
static void JNI_PrefServiceBridge_SetSafeBrowsingEnabled(
JNIEnv* env,
jboolean enabled) {
GetPrefService()->SetBoolean(prefs::kSafeBrowsingEnabled, enabled);
}
static jboolean JNI_PrefServiceBridge_GetSafeBrowsingManaged(JNIEnv* env) {
return GetPrefService()->IsManagedPreference(prefs::kSafeBrowsingEnabled);
}
static jboolean JNI_PrefServiceBridge_GetNotificationsEnabled(JNIEnv* env) {
return GetBooleanForContentSetting(ContentSettingsType::NOTIFICATIONS);
}
......
......@@ -41,6 +41,7 @@ enum Pref {
USAGE_STATS_ENABLED,
OFFLINE_PREFETCH_USER_SETTING_ENABLED,
SAFE_BROWSING_EXTENDED_REPORTING_OPT_IN_ALLOWED,
SAFE_BROWSING_ENABLED,
PASSWORD_MANAGER_ONBOARDING_STATE,
SEARCH_SUGGEST_ENABLED,
REMEMBER_PASSWORDS_ENABLED,
......@@ -86,6 +87,7 @@ const char* const kPrefsExposedToJava[] = {
prefs::kUsageStatsEnabled,
offline_pages::prefetch_prefs::kUserSettingEnabled,
prefs::kSafeBrowsingExtendedReportingOptInAllowed,
prefs::kSafeBrowsingEnabled,
password_manager::prefs::kPasswordManagerOnboardingState,
prefs::kSearchSuggestEnabled,
password_manager::prefs::kCredentialsEnableService,
......
......@@ -64,6 +64,7 @@ TEST_F(PrefsTest, TestIndex) {
GetPrefName(OFFLINE_PREFETCH_USER_SETTING_ENABLED));
EXPECT_EQ(prefs::kSafeBrowsingExtendedReportingOptInAllowed,
GetPrefName(SAFE_BROWSING_EXTENDED_REPORTING_OPT_IN_ALLOWED));
EXPECT_EQ(prefs::kSafeBrowsingEnabled, GetPrefName(SAFE_BROWSING_ENABLED));
EXPECT_EQ(password_manager::prefs::kPasswordManagerOnboardingState,
GetPrefName(PASSWORD_MANAGER_ONBOARDING_STATE));
EXPECT_EQ(prefs::kSearchSuggestEnabled, GetPrefName(SEARCH_SUGGEST_ENABLED));
......
......@@ -245,7 +245,7 @@ jumbo_static_library("safe_browsing") {
}
} else if (safe_browsing_mode == 2) {
sources += [
"android/file_type_policies.cc",
"android/safe_browsing_bridge.cc",
"android/services_delegate_android.cc",
"android/services_delegate_android.h",
"telemetry/android/android_telemetry_service.cc",
......
......@@ -2,15 +2,29 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/common/safe_browsing/file_type_policies.h"
#include "base/android/jni_string.h"
#include "base/files/file_path.h"
#include "chrome/android/chrome_jni_headers/FileTypePolicies_jni.h"
#include "chrome/android/chrome_jni_headers/SafeBrowsingBridge_jni.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/safe_browsing/file_type_policies.h"
#include "components/prefs/pref_service.h"
#include "components/safe_browsing/common/safe_browsing_prefs.h"
using base::android::JavaParamRef;
namespace {
PrefService* GetPrefService() {
return ProfileManager::GetActiveUserProfile()
->GetOriginalProfile()
->GetPrefs();
}
} // namespace
namespace safe_browsing {
static jint JNI_FileTypePolicies_UmaValueForFile(
static jint JNI_SafeBrowsingBridge_UmaValueForFile(
JNIEnv* env,
const base::android::JavaParamRef<jstring>& path) {
base::FilePath file_path(ConvertJavaStringToUTF8(env, path));
......@@ -18,4 +32,24 @@ static jint JNI_FileTypePolicies_UmaValueForFile(
file_path);
}
static jboolean JNI_SafeBrowsingBridge_GetSafeBrowsingExtendedReportingEnabled(
JNIEnv* env) {
return safe_browsing::IsExtendedReportingEnabled(*GetPrefService());
}
static void JNI_SafeBrowsingBridge_SetSafeBrowsingExtendedReportingEnabled(
JNIEnv* env,
jboolean enabled) {
safe_browsing::SetExtendedReportingPrefAndMetric(
GetPrefService(), enabled,
safe_browsing::SBER_OPTIN_SITE_ANDROID_SETTINGS);
}
static jboolean JNI_SafeBrowsingBridge_GetSafeBrowsingExtendedReportingManaged(
JNIEnv* env) {
PrefService* pref_service = GetPrefService();
return pref_service->IsManagedPreference(
prefs::kSafeBrowsingScoutReportingEnabled);
}
} // namespace safe_browsing
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