blob: 161a7cbab723e542b61224c10017eebf11e39efb [file] [log] [blame]
// Copyright 2017 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.
#include "chrome/browser/history/profile_based_browsing_history_driver.h"
#include <utility>
#include "chrome/browser/banners/app_banner_settings_helper.h"
#include "chrome/browser/history/history_utils.h"
#include "chrome/browser/history/web_history_service_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/pref_names.h"
#include "components/browsing_data/core/history_notice_utils.h"
#include "components/prefs/pref_service.h"
#include "extensions/features/features.h"
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/activity_log/activity_log.h"
#endif
void ProfileBasedBrowsingHistoryDriver::OnRemoveVisits(
const std::vector<history::ExpireHistoryArgs>& expire_list) {
#if BUILDFLAG(ENABLE_EXTENSIONS)
// If the profile has activity logging enabled also clean up any URLs from the
// extension activity log. The extension activity log contains URLS which
// websites an extension has activity on so it will indirectly contain
// websites that a user has visited.
extensions::ActivityLog* activity_log =
extensions::ActivityLog::GetInstance(GetProfile());
for (const history::ExpireHistoryArgs& expire_entry : expire_list) {
activity_log->RemoveURLs(expire_entry.urls);
}
#endif
for (const history::ExpireHistoryArgs& expire_entry : expire_list) {
AppBannerSettingsHelper::ClearHistoryForURLs(GetProfile(),
expire_entry.urls);
}
}
bool ProfileBasedBrowsingHistoryDriver::AllowHistoryDeletions() {
return GetProfile()->GetPrefs()->GetBoolean(
prefs::kAllowDeletingBrowserHistory);
}
bool ProfileBasedBrowsingHistoryDriver::ShouldHideWebHistoryUrl(
const GURL& url) {
return !CanAddURLToHistory(url);
}
history::WebHistoryService*
ProfileBasedBrowsingHistoryDriver::GetWebHistoryService() {
return WebHistoryServiceFactory::GetForProfile(GetProfile());
}
void ProfileBasedBrowsingHistoryDriver::
ShouldShowNoticeAboutOtherFormsOfBrowsingHistory(
const syncer::SyncService* sync_service,
history::WebHistoryService* history_service,
base::Callback<void(bool)> callback) {
return browsing_data::ShouldShowNoticeAboutOtherFormsOfBrowsingHistory(
sync_service, history_service, std::move(callback));
}