[go: nahoru, domu]

blob: a97cebf277a8b984d72031ac9948be9aed4c1c0c [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/cocoa/screentime/history_deleter_impl.h"
#import <ScreenTime/ScreenTime.h>
#include "base/apple/foundation_util.h"
#include "base/memory/ptr_util.h"
#include "base/notreached.h"
#include "base/strings/sys_string_conversions.h"
#include "net/base/mac/url_conversions.h"
namespace screentime {
HistoryDeleterImpl::~HistoryDeleterImpl() = default;
std::unique_ptr<HistoryDeleterImpl> HistoryDeleterImpl::Create() {
if (@available(macOS 12.1, *))
return base::WrapUnique(new HistoryDeleterImpl);
return nullptr;
}
void HistoryDeleterImpl::DeleteAllHistory() {
if (@available(macOS 12.1, *)) {
[platform_deleter_ deleteAllHistory];
} else {
NOTIMPLEMENTED();
}
}
void HistoryDeleterImpl::DeleteHistoryDuringInterval(
const TimeInterval& interval) {
if (@available(macOS 12.1, *)) {
NSDateInterval* nsinterval =
[[NSDateInterval alloc] initWithStartDate:interval.first.ToNSDate()
endDate:interval.second.ToNSDate()];
[platform_deleter_ deleteHistoryDuringInterval:nsinterval];
} else {
NOTIMPLEMENTED();
}
}
void HistoryDeleterImpl::DeleteHistoryForURL(const GURL& url) {
if (@available(macOS 12.1, *)) {
[platform_deleter_ deleteHistoryForURL:net::NSURLWithGURL(url)];
} else {
NOTIMPLEMENTED();
}
}
HistoryDeleterImpl::HistoryDeleterImpl() {
if (@available(macOS 12.1, *)) {
NSError* error = nil;
NSString* bundle_id = base::SysUTF8ToNSString(base::apple::BaseBundleID());
platform_deleter_ = [[STWebHistory alloc] initWithBundleIdentifier:bundle_id
error:&error];
DCHECK(!error);
} else {
NOTIMPLEMENTED();
}
}
} // namespace screentime