Add diagnostics privacy controls
This commit is contained in:
@@ -343,10 +343,12 @@ const SETTINGS_ROUTE_MATCHES: &[SettingsRouteMatch] = &[
|
||||
"privacy & security",
|
||||
"history",
|
||||
"history recording",
|
||||
"diagnostics",
|
||||
"diagnostic reporting",
|
||||
],
|
||||
search_terms: &[
|
||||
"Privacy & Security",
|
||||
"History recording and profile-scoped privacy controls.",
|
||||
"History recording, diagnostics, and profile-scoped privacy controls.",
|
||||
"profile privacy",
|
||||
"recording policy",
|
||||
],
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use std::{collections::BTreeMap, time::SystemTime};
|
||||
|
||||
use ely_domain::{
|
||||
ArchivePolicy, ArchivedTab, BookmarkEntry, BrowserTab, DEFAULT_SIDEBAR_WIDTH_PX, DomainError,
|
||||
DownloadEntry, DownloadPolicy, FavoriteLimit, HistoryEntry, HistoryRecordingPolicy,
|
||||
NewTabDestination, NoteEntry, Profile, ProfileId, ProfileKind, ReadingListEntry, SearchEngine,
|
||||
SitePermissionAuditEvent, SitePermissionEntry, Space, SpaceId, SplitLayout, SyncStatus,
|
||||
TabGroup, TabId, UpdatePolicy, UrlText,
|
||||
ArchivePolicy, ArchivedTab, BookmarkEntry, BrowserTab, DEFAULT_SIDEBAR_WIDTH_PX,
|
||||
DiagnosticsReportingPolicy, DomainError, DownloadEntry, DownloadPolicy, FavoriteLimit,
|
||||
HistoryEntry, HistoryRecordingPolicy, NewTabDestination, NoteEntry, Profile, ProfileId,
|
||||
ProfileKind, ReadingListEntry, SearchEngine, SitePermissionAuditEvent, SitePermissionEntry,
|
||||
Space, SpaceId, SplitLayout, SyncStatus, TabGroup, TabId, UpdatePolicy, UrlText,
|
||||
};
|
||||
|
||||
use crate::{CoreError, navigation::tab_title};
|
||||
@@ -112,6 +112,7 @@ pub struct BrowserSnapshot {
|
||||
pub search_engine: SearchEngine,
|
||||
pub new_tab_destination: NewTabDestination,
|
||||
pub history_recording_policy: HistoryRecordingPolicy,
|
||||
pub diagnostics_reporting_policy: DiagnosticsReportingPolicy,
|
||||
pub favorite_limit: FavoriteLimit,
|
||||
pub update_policy: UpdatePolicy,
|
||||
pub command_query: String,
|
||||
@@ -144,6 +145,7 @@ pub struct BrowserCore {
|
||||
search_engine: SearchEngine,
|
||||
new_tab_destination: NewTabDestination,
|
||||
history_recording_policy: HistoryRecordingPolicy,
|
||||
diagnostics_reporting_policy: DiagnosticsReportingPolicy,
|
||||
favorite_limit: FavoriteLimit,
|
||||
update_policy: UpdatePolicy,
|
||||
sync_object_policies: SyncObjectPolicies,
|
||||
@@ -190,6 +192,7 @@ impl BrowserCore {
|
||||
search_engine: SearchEngine::default(),
|
||||
new_tab_destination,
|
||||
history_recording_policy: HistoryRecordingPolicy::default(),
|
||||
diagnostics_reporting_policy: DiagnosticsReportingPolicy::default(),
|
||||
favorite_limit: FavoriteLimit::default(),
|
||||
update_policy: UpdatePolicy::default(),
|
||||
sync_object_policies: SyncObjectPolicies::default(),
|
||||
@@ -325,8 +328,13 @@ impl BrowserCore {
|
||||
self.history_recording_policy = policy;
|
||||
}
|
||||
|
||||
pub fn set_diagnostics_reporting_policy(&mut self, policy: DiagnosticsReportingPolicy) {
|
||||
self.diagnostics_reporting_policy = policy;
|
||||
}
|
||||
|
||||
pub fn reset_privacy_settings(&mut self) {
|
||||
self.set_history_recording_policy(HistoryRecordingPolicy::default());
|
||||
self.set_diagnostics_reporting_policy(DiagnosticsReportingPolicy::default());
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
@@ -334,6 +342,11 @@ impl BrowserCore {
|
||||
self.history_recording_policy
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn diagnostics_reporting_policy(&self) -> DiagnosticsReportingPolicy {
|
||||
self.diagnostics_reporting_policy
|
||||
}
|
||||
|
||||
pub fn set_favorite_limit(&mut self, favorite_limit: FavoriteLimit) {
|
||||
self.favorite_limit = favorite_limit;
|
||||
}
|
||||
@@ -408,6 +421,7 @@ impl BrowserCore {
|
||||
search_engine: self.search_engine,
|
||||
new_tab_destination: self.new_tab_destination,
|
||||
history_recording_policy: self.history_recording_policy,
|
||||
diagnostics_reporting_policy: self.diagnostics_reporting_policy,
|
||||
favorite_limit: self.favorite_limit,
|
||||
update_policy: self.update_policy,
|
||||
command_query: self.command_query.clone(),
|
||||
|
||||
@@ -2,9 +2,9 @@ use std::{error::Error, path::PathBuf};
|
||||
|
||||
use ely_browser_core::{BrowserCore, InitialBrowserConfig};
|
||||
use ely_domain::{
|
||||
ArchivePolicy, DEFAULT_SIDEBAR_WIDTH_PX, DownloadPolicy, FavoriteLimit, HistoryRecordingPolicy,
|
||||
NewTabDestination, ProfileKind, ProfileSyncPolicy, SearchEngine, SyncObjectKind,
|
||||
SyncObjectPolicy, UpdatePolicy,
|
||||
ArchivePolicy, DEFAULT_SIDEBAR_WIDTH_PX, DiagnosticsReportingPolicy, DownloadPolicy,
|
||||
FavoriteLimit, HistoryRecordingPolicy, NewTabDestination, ProfileKind, ProfileSyncPolicy,
|
||||
SearchEngine, SyncObjectKind, SyncObjectPolicy, UpdatePolicy,
|
||||
};
|
||||
|
||||
#[test]
|
||||
@@ -20,10 +20,13 @@ fn section_resets_restore_settings_defaults() -> Result<(), Box<dyn Error>> {
|
||||
assert_eq!(core.snapshot()?.search_engine, SearchEngine::DuckDuckGo);
|
||||
|
||||
core.set_history_recording_policy(HistoryRecordingPolicy::Pause);
|
||||
core.set_diagnostics_reporting_policy(DiagnosticsReportingPolicy::Paused);
|
||||
core.reset_privacy_settings();
|
||||
assert_eq!(core.snapshot()?.history_recording_policy, HistoryRecordingPolicy::Record);
|
||||
let snapshot = core.snapshot()?;
|
||||
assert_eq!(snapshot.history_recording_policy, HistoryRecordingPolicy::Record);
|
||||
assert_eq!(snapshot.diagnostics_reporting_policy, DiagnosticsReportingPolicy::Minimal);
|
||||
|
||||
let active_space_id = core.snapshot()?.active_space_id;
|
||||
let active_space_id = snapshot.active_space_id;
|
||||
core.set_active_space_archive_policy(ArchivePolicy::IdleDays(30))?;
|
||||
core.set_space_sidebar_width(&active_space_id, 56)?;
|
||||
core.set_favorite_limit(FavoriteLimit::Six);
|
||||
|
||||
Reference in New Issue
Block a user