blob: a8098ae3649c82a1a9593fd1af150af913eac859 [file] [log] [blame]
// Copyright 2020 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 "weblayer/browser/navigation_ui_data_impl.h"
namespace weblayer {
#if defined(OS_ANDROID)
NavigationUIDataImpl::ResponseHolder::ResponseHolder(
std::unique_ptr<embedder_support::WebResourceResponse> response)
: response_(std::move(response)) {}
NavigationUIDataImpl::ResponseHolder::~ResponseHolder() = default;
std::unique_ptr<embedder_support::WebResourceResponse>
NavigationUIDataImpl::ResponseHolder::TakeResponse() {
return std::move(response_);
}
#endif // OS_ANDROID
NavigationUIDataImpl::NavigationUIDataImpl() = default;
NavigationUIDataImpl::~NavigationUIDataImpl() = default;
std::unique_ptr<content::NavigationUIData> NavigationUIDataImpl::Clone() {
auto rv = std::make_unique<NavigationUIDataImpl>();
rv->disable_network_error_auto_reload_ = disable_network_error_auto_reload_;
#if defined(OS_ANDROID)
rv->response_holder_ = response_holder_;
#endif // OS_ANDROID
return rv;
}
#if defined(OS_ANDROID)
void NavigationUIDataImpl::SetResponse(
std::unique_ptr<embedder_support::WebResourceResponse> response) {
DCHECK(!response_holder_);
response_holder_ = base::MakeRefCounted<ResponseHolder>(std::move(response));
}
std::unique_ptr<embedder_support::WebResourceResponse>
NavigationUIDataImpl::TakeResponse() {
if (!response_holder_)
return nullptr;
return response_holder_->TakeResponse();
}
#endif // OS_ANDROID
} // namespace weblayer