#include "net/base/page_res_request_info.h"
#include "net/url_request/url_request.h"
namespace ohos_prp_preload {
void PRRequestInfo::InitInfoFromUrlRequest(const net::URLRequest& request)
{
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
url_ = request.url();
allow_credentials_ = request.allow_credentials();
is_for_websockets_ = request.is_for_websockets();
initiator_ = request.initiator();
referrer_ = request.referrer();
method_ = request.method();
has_storage_access_ = request.has_storage_access();
extra_request_headers_ = request.extra_request_headers();
load_flags_ = request.load_flags();
secure_dns_policy_ = request.secure_dns_policy();
accepted_stream_types_ = request.accepted_stream_types();
upgrade_if_insecure_ = request.upgrade_if_insecure();
send_client_certs_ = request.send_client_certs();
idempotency_ = request.GetIdempotency();
force_ignore_site_for_cookies_ = request.force_ignore_site_for_cookies();
force_main_frame_for_same_site_cookies_ = request.force_main_frame_for_same_site_cookies();
cookie_setting_overrides_ = request.cookie_setting_overrides();
referrer_policy_ = request.referrer_policy();
first_party_url_policy_ = request.first_party_url_policy();
net_log_ = request.net_log();
force_ignore_top_frame_party_for_cookies_ = request.force_ignore_top_frame_party_for_cookies();
}
CacheInfo PRRequestInfo::cache_info() {
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
return CacheInfo {cache_type_, freshness_life_times_, e_tag_, last_modified_};
}
void PRRequestInfo::set_cache_info(PRRequestCacheType cache_type,
int64_t freshness_life_times,
const std::string& e_tag,
const std::string& last_modified) {
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
cache_type_ = cache_type;
freshness_life_times_ = freshness_life_times;
e_tag_ = e_tag;
last_modified_ = last_modified;
}
void PRRequestInfo::set_request_end_time(int64_t time)
{
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
req_end_time_ = time;
}
int64_t PRRequestInfo::request_end_time() const
{
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
return req_end_time_ > req_start_time_ ? req_end_time_ : 0;
}
void PRRequestInfo::set_preload_flag(PRRequestFlags flags)
{
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
preload_flags_ = flags;
}
void PRRequestInfo::or_preload_flag(PRRequestFlags flags)
{
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
preload_flags_ = (PRRequestFlags)(preload_flags_ | flags);
}
PRRequestFlags PRRequestInfo::preload_flag() const
{
std::lock_guard<std::mutex> cache_info_guard(cache_info_mutex_);
return preload_flags_;
}
}