| Index: components/offline_pages/loaded_offline_page_info.cc
|
| diff --git a/components/offline_pages/loaded_offline_page_info.cc b/components/offline_pages/loaded_offline_page_info.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..11c5c0321944177f6d21fe49069625389e9ac53a
|
| --- /dev/null
|
| +++ b/components/offline_pages/loaded_offline_page_info.cc
|
| @@ -0,0 +1,60 @@
|
| +// Copyright 2016 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 "components/offline_pages/loaded_offline_page_info.h"
|
| +
|
| +#include "components/offline_pages/offline_page_item.h"
|
| +#include "components/offline_pages/request_header/offline_page_header.h"
|
| +#include "net/url_request/url_request.h"
|
| +
|
| +namespace {
|
| +
|
| +const void* const kLoadedOfflinePageInfoKey = &kLoadedOfflinePageInfoKey;
|
| +}
|
| +
|
| +namespace offline_pages {
|
| +
|
| +LoadedOfflinePageInfo::LoadedOfflinePageInfo() {}
|
| +
|
| +LoadedOfflinePageInfo::~LoadedOfflinePageInfo() {}
|
| +
|
| +std::unique_ptr<LoadedOfflinePageInfo> LoadedOfflinePageInfo::DeepCopy() {
|
| + std::unique_ptr<LoadedOfflinePageInfo> copy(new LoadedOfflinePageInfo);
|
| + if (offline_page_)
|
| + copy->offline_page_.reset(new OfflinePageItem(*offline_page_));
|
| + if (offline_header_)
|
| + copy->offline_header_.reset(new OfflinePageHeader(*offline_header_));
|
| + copy->is_offline_preview_ = is_offline_preview_;
|
| + return copy;
|
| +}
|
| +
|
| +// static
|
| +void LoadedOfflinePageInfo::CreateInfoForRequest(
|
| + net::URLRequest* request,
|
| + std::unique_ptr<OfflinePageItem> offline_page,
|
| + std::unique_ptr<OfflinePageHeader> offline_header,
|
| + bool is_offline_preview) {
|
| + DCHECK(request);
|
| + DCHECK(offline_page);
|
| + DCHECK(offline_header);
|
| + LoadedOfflinePageInfo* info = GetInfo(*request);
|
| + DCHECK(!info);
|
| +
|
| + info = new LoadedOfflinePageInfo();
|
| + info->offline_page_ = std::move(offline_page);
|
| + info->offline_header_ = std::move(offline_header);
|
| + info->is_offline_preview_ = is_offline_preview;
|
| +
|
| + request->SetUserData(kLoadedOfflinePageInfoKey, info);
|
| +}
|
| +
|
| +// static
|
| +LoadedOfflinePageInfo* LoadedOfflinePageInfo::GetInfo(
|
| + const net::URLRequest& request) {
|
| + LoadedOfflinePageInfo* info = static_cast<LoadedOfflinePageInfo*>(
|
| + request.GetUserData(kLoadedOfflinePageInfoKey));
|
| + return info;
|
| +}
|
| +
|
| +} // namespace offline_pages
|
|
|