blob: 876b73df291c98b98e181b2b3bc6dfe76b98008d [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/offline_pages/fresh_offline_content_observer.h"
#include "chrome/browser/offline_pages/prefetch/prefetched_pages_notifier.h"
#include "components/offline_pages/core/client_policy_controller.h"
#include "components/offline_pages/core/offline_page_feature.h"
#include "components/offline_pages/core/offline_page_item.h"
namespace offline_pages {
namespace {
int kFreshOfflineContentObserverUserDataKey;
}
// static
void FreshOfflineContentObserver::AttachToOfflinePageModel(
OfflinePageModel* model) {
if (!IsPrefetchingOfflinePagesEnabled())
return;
auto observer = std::make_unique<FreshOfflineContentObserver>();
model->AddObserver(observer.get());
model->SetUserData(&kFreshOfflineContentObserverUserDataKey,
std::move(observer));
}
FreshOfflineContentObserver::FreshOfflineContentObserver() = default;
FreshOfflineContentObserver::~FreshOfflineContentObserver() = default;
void FreshOfflineContentObserver::OfflinePageModelLoaded(
OfflinePageModel* model) {}
void FreshOfflineContentObserver::OfflinePageAdded(
OfflinePageModel* model,
const OfflinePageItem& added_page) {
if (model->GetPolicyController()->IsSupportedByDownload(
added_page.client_id.name_space)) {
OnFreshOfflineContentAvailableForNotification();
}
}
void FreshOfflineContentObserver::OfflinePageDeleted(
const OfflinePageModel::DeletedPageInfo& page_info) {}
} // namespace offline_pages