blob: 5960209d27e65d4199e494647da99acd6d069b06 [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.
#ifndef CONTENT_COMMON_SERVICE_WORKER_SERVICE_WORKER_FETCH_REQUEST_STRUCT_TRAITS_H_
#define CONTENT_COMMON_SERVICE_WORKER_SERVICE_WORKER_FETCH_REQUEST_STRUCT_TRAITS_H_
#include "base/numerics/safe_conversions.h"
#include "content/public/common/referrer.h"
#include "storage/common/blob_storage/blob_handle.h"
#include "third_party/WebKit/public/platform/modules/fetch/fetch_api_request.mojom.h"
namespace mojo {
template <>
struct EnumTraits<blink::mojom::FetchCredentialsMode,
content::FetchCredentialsMode> {
static blink::mojom::FetchCredentialsMode ToMojom(
content::FetchCredentialsMode input);
static bool FromMojom(blink::mojom::FetchCredentialsMode input,
content::FetchCredentialsMode* out);
};
template <>
struct EnumTraits<blink::mojom::FetchRedirectMode, content::FetchRedirectMode> {
static blink::mojom::FetchRedirectMode ToMojom(
content::FetchRedirectMode input);
static bool FromMojom(blink::mojom::FetchRedirectMode input,
content::FetchRedirectMode* out);
};
template <>
struct EnumTraits<blink::mojom::RequestContextFrameType,
content::RequestContextFrameType> {
static blink::mojom::RequestContextFrameType ToMojom(
content::RequestContextFrameType input);
static bool FromMojom(blink::mojom::RequestContextFrameType input,
content::RequestContextFrameType* out);
};
template <>
struct EnumTraits<blink::mojom::RequestContextType,
content::RequestContextType> {
static blink::mojom::RequestContextType ToMojom(
content::RequestContextType input);
static bool FromMojom(blink::mojom::RequestContextType input,
content::RequestContextType* out);
};
template <>
struct EnumTraits<blink::mojom::ServiceWorkerFetchType,
content::ServiceWorkerFetchType> {
static blink::mojom::ServiceWorkerFetchType ToMojom(
content::ServiceWorkerFetchType input);
static bool FromMojom(blink::mojom::ServiceWorkerFetchType input,
content::ServiceWorkerFetchType* out);
};
template <>
struct StructTraits<blink::mojom::FetchAPIRequestDataView,
content::ServiceWorkerFetchRequest> {
static network::mojom::FetchRequestMode mode(
const content::ServiceWorkerFetchRequest& request) {
return request.mode;
}
static bool is_main_resource_load(
const content::ServiceWorkerFetchRequest& request) {
return request.is_main_resource_load;
}
static content::RequestContextType request_context_type(
const content::ServiceWorkerFetchRequest& request) {
return request.request_context_type;
}
static content::RequestContextFrameType frame_type(
const content::ServiceWorkerFetchRequest& request) {
return request.frame_type;
}
static const GURL& url(const content::ServiceWorkerFetchRequest& request) {
return request.url;
}
static const std::string& method(
const content::ServiceWorkerFetchRequest& request) {
return request.method;
}
static std::map<std::string, std::string> headers(
const content::ServiceWorkerFetchRequest& request);
static const std::string& blob_uuid(
const content::ServiceWorkerFetchRequest& request) {
return request.blob_uuid;
}
static uint64_t blob_size(const content::ServiceWorkerFetchRequest& request) {
return request.blob_size;
}
static blink::mojom::BlobPtr blob(
const content::ServiceWorkerFetchRequest& request) {
if (!request.blob)
return nullptr;
return request.blob->Clone();
}
static const content::Referrer& referrer(
const content::ServiceWorkerFetchRequest& request) {
return request.referrer;
}
static content::FetchCredentialsMode credentials_mode(
const content::ServiceWorkerFetchRequest& request) {
return request.credentials_mode;
}
static blink::mojom::FetchCacheMode cache_mode(
const content::ServiceWorkerFetchRequest& request) {
return request.cache_mode;
}
static content::FetchRedirectMode redirect_mode(
const content::ServiceWorkerFetchRequest& request) {
return request.redirect_mode;
}
static const std::string& integrity(
const content::ServiceWorkerFetchRequest& request) {
return request.integrity;
}
static const std::string& client_id(
const content::ServiceWorkerFetchRequest& request) {
return request.client_id;
}
static bool is_reload(const content::ServiceWorkerFetchRequest& request) {
return request.is_reload;
}
static content::ServiceWorkerFetchType fetch_type(
const content::ServiceWorkerFetchRequest& request) {
return request.fetch_type;
}
static bool Read(blink::mojom::FetchAPIRequestDataView data,
content::ServiceWorkerFetchRequest* out);
};
} // namespace mojo
#endif // CONTENT_COMMON_SERVICE_WORKER_SERVICE_WORKER_FETCH_REQUEST_STRUCT_TRAITS_H_