#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "content/common/navigation_client.mojom.h"
#include <math.h>
#include <stdint.h>
#include <utility>
#include "base/debug/alias.h"
#include "base/hash/md5_constexpr.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "mojo/public/cpp/bindings/features.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/generated_code_util.h"
#include "mojo/public/cpp/bindings/lib/message_internal.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/lib/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/serialization_util.h"
#include "mojo/public/cpp/bindings/lib/unserialized_message_context.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "mojo/public/cpp/bindings/urgent_message_scope.h"
#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "content/common/navigation_client.mojom-params-data.h"
#include "content/common/navigation_client.mojom-shared-message-ids.h"
#include "content/common/navigation_client.mojom-import-headers.h"
#include "content/common/navigation_client.mojom-test-utils.h"
#include "net/cert/cert_verify_result.h"
#include "services/network/public/mojom/cookie_access_observer.mojom.h"
#include "services/network/public/mojom/devtools_observer.mojom.h"
#include "services/network/public/mojom/trust_token_access_observer.mojom.h"
#include "third_party/blink/common/permissions_policy/permissions_policy_mojom_traits.h"
#include "third_party/blink/public/common/frame/view_transition_state_mojom_traits.h"
#include "third_party/blink/public/common/messaging/task_attribution_id_mojom_traits.h"
#include "third_party/blink/public/common/page/browsing_context_group_info_mojom_traits.h"
#include "third_party/blink/public/common/service_worker/service_worker_embedded_worker_status_mojom_traits.h"
#include "third_party/blink/public/common/service_worker/service_worker_router_rule_mojom_traits.h"
namespace content::mojom {
DidCommitProvisionalLoadParams::DidCommitProvisionalLoadParams()
: … { … }
DidCommitProvisionalLoadParams::DidCommitProvisionalLoadParams(
int64_t item_sequence_number_in,
int64_t document_sequence_number_in,
const std::string& navigation_api_key_in,
const ::GURL& url_in,
::blink::mojom::ReferrerPtr referrer_in,
::ui::PageTransition transition_in,
bool should_update_history_in,
const std::string& contents_mime_type_in,
bool did_create_new_entry_in,
const std::string& method_in,
int64_t post_id_in,
int32_t http_status_code_in,
bool url_is_unreachable_in,
const ::blink::PageState& page_state_in,
bool is_overriding_user_agent_in,
bool history_list_was_cleared_in,
const ::url::Origin& origin_in,
const std::optional<::GURL>& initiator_base_url_in,
const std::string& origin_calculation_debug_info_in,
std::vector<::blink::ParsedPermissionsPolicyDeclaration> permissions_policy_header_in,
const base::flat_map<::blink::mojom::DocumentPolicyFeature, ::blink::PolicyValue>& document_policy_header_in,
::blink::mojom::InsecureRequestPolicy insecure_request_policy_in,
std::vector<uint32_t> insecure_navigations_set_in,
bool has_potentially_trustworthy_unique_origin_in,
int32_t request_id_in,
const ::base::UnguessableToken& navigation_token_in,
const std::optional<::base::UnguessableToken>& embedding_token_in,
std::optional<::base::TimeTicks> unload_start_in,
std::optional<::base::TimeTicks> unload_end_in,
::base::TimeTicks commit_navigation_start_in,
std::optional<::base::TimeTicks> commit_navigation_end_in)
: … { … }
DidCommitProvisionalLoadParams::~DidCommitProvisionalLoadParams() = default;
void DidCommitProvisionalLoadParams::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool DidCommitProvisionalLoadParams::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
DidCommitSameDocumentNavigationParams::DidCommitSameDocumentNavigationParams()
: … { … }
DidCommitSameDocumentNavigationParams::DidCommitSameDocumentNavigationParams(
::blink::mojom::SameDocumentNavigationType same_document_navigation_type_in,
bool is_client_redirect_in,
bool started_with_transient_activation_in,
bool should_replace_current_entry_in,
const std::optional<::blink::SameDocNavigationScreenshotDestinationToken>& navigation_entry_screenshot_destination_in)
: … { … }
DidCommitSameDocumentNavigationParams::~DidCommitSameDocumentNavigationParams() = default;
void DidCommitSameDocumentNavigationParams::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool DidCommitSameDocumentNavigationParams::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
CookieManagerInfo::CookieManagerInfo()
: … { … }
CookieManagerInfo::CookieManagerInfo(
const ::url::Origin& origin_in,
::mojo::PendingRemote<::network::mojom::RestrictedCookieManager> cookie_manager_in)
: … { … }
CookieManagerInfo::~CookieManagerInfo() = default;
void CookieManagerInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool CookieManagerInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
StorageInfo::StorageInfo()
: … { … }
StorageInfo::StorageInfo(
::mojo::PendingRemote<::blink::mojom::StorageArea> local_storage_area_in,
::mojo::PendingRemote<::blink::mojom::StorageArea> session_storage_area_in)
: … { … }
StorageInfo::~StorageInfo() = default;
void StorageInfo::WriteIntoTrace(
perfetto::TracedValue traced_context) const { … }
bool StorageInfo::Validate(
const void* data,
mojo::internal::ValidationContext* validation_context) { … }
const char NavigationClient::Name_[] = …;
constexpr uint32_t NavigationClient::kResetForSwap;
constexpr uint32_t NavigationClient::kResetForAbort;
NavigationClient::IPCStableHashFunction NavigationClient::MessageToMethodInfo_(mojo::Message& message) { … }
const char* NavigationClient::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t NavigationClient::CommitNavigation_Sym::IPCStableHash() { … }
uint32_t NavigationClient::CommitFailedNavigation_Sym::IPCStableHash() { … }
# endif
class NavigationClient_CommitNavigation_ForwardToCallback
: public mojo::MessageReceiver { … };
class NavigationClient_CommitFailedNavigation_ForwardToCallback
: public mojo::MessageReceiver { … };
NavigationClientProxy::NavigationClientProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void NavigationClientProxy::CommitNavigation(
::blink::mojom::CommonNavigationParamsPtr in_common_params, ::blink::mojom::CommitNavigationParamsPtr in_request_params, ::network::mojom::URLResponseHeadPtr in_response_head, ::mojo::ScopedDataPipeConsumerHandle in_response_body, ::network::mojom::URLLoaderClientEndpointsPtr in_url_loader_client_endpoints, ::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle> in_subresource_loader_factories, std::optional<std::vector<::blink::mojom::TransferrableURLLoaderPtr>> in_subresource_overrides, ::blink::mojom::ControllerServiceWorkerInfoPtr in_controller_service_worker_info, ::blink::mojom::ServiceWorkerContainerInfoForClientPtr in_container_info, ::mojo::PendingRemote<::network::mojom::URLLoaderFactory> in_subresource_proxying_loader_factory, ::mojo::PendingRemote<::network::mojom::URLLoaderFactory> in_keep_alive_loader_factory, ::mojo::PendingAssociatedRemote<::blink::mojom::FetchLaterLoaderFactory> in_fetch_later_loader_factory, const ::blink::DocumentToken& in_document_token, const ::base::UnguessableToken& in_devtools_navigation_token, const ::base::Uuid& in_base_auction_nonce, const std::optional<std::vector<::blink::ParsedPermissionsPolicyDeclaration>>& in_permissions_policy, ::blink::mojom::PolicyContainerPtr in_policy_container, ::mojo::PendingRemote<::blink::mojom::CodeCacheHost> in_code_cache_host, ::mojo::PendingRemote<::blink::mojom::CodeCacheHost> in_code_cache_host_for_background, CookieManagerInfoPtr in_cookie_manager_info, StorageInfoPtr in_storage_info, CommitNavigationCallback callback) { … }
void NavigationClientProxy::CommitFailedNavigation(
::blink::mojom::CommonNavigationParamsPtr in_common_params, ::blink::mojom::CommitNavigationParamsPtr in_request_params, bool in_has_stale_copy_in_cache, int32_t in_error_code, int32_t in_extended_error_code, const ::net::ResolveErrorInfo& in_resolve_error_info, const std::optional<std::string>& in_error_page_content, ::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle> in_subresource_loader_factories, const ::blink::DocumentToken& in_document_token, ::blink::mojom::PolicyContainerPtr in_policy_container, ::content::mojom::AlternativeErrorPageOverrideInfoPtr in_alternative_error_page_info, CommitFailedNavigationCallback callback) { … }
class NavigationClient_CommitNavigation_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool NavigationClient_CommitNavigation_ForwardToCallback::Accept(
mojo::Message* message) { … }
void NavigationClient_CommitNavigation_ProxyToResponder::Run(
DidCommitProvisionalLoadParamsPtr in_params, ::content::mojom::DidCommitProvisionalLoadInterfaceParamsPtr in_interface_params) { … }
class NavigationClient_CommitFailedNavigation_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool NavigationClient_CommitFailedNavigation_ForwardToCallback::Accept(
mojo::Message* message) { … }
void NavigationClient_CommitFailedNavigation_ProxyToResponder::Run(
DidCommitProvisionalLoadParamsPtr in_params, ::content::mojom::DidCommitProvisionalLoadInterfaceParamsPtr in_interface_params) { … }
bool NavigationClientStubDispatch::Accept(
NavigationClient* impl,
mojo::Message* message) { … }
bool NavigationClientStubDispatch::AcceptWithResponder(
NavigationClient* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kNavigationClientValidationInfo[] = …;
bool NavigationClientRequestValidator::Accept(mojo::Message* message) { … }
bool NavigationClientResponseValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
bool StructTraits<::content::mojom::DidCommitProvisionalLoadParams::DataView, ::content::mojom::DidCommitProvisionalLoadParamsPtr>::Read(
::content::mojom::DidCommitProvisionalLoadParams::DataView input,
::content::mojom::DidCommitProvisionalLoadParamsPtr* output) { … }
bool StructTraits<::content::mojom::DidCommitSameDocumentNavigationParams::DataView, ::content::mojom::DidCommitSameDocumentNavigationParamsPtr>::Read(
::content::mojom::DidCommitSameDocumentNavigationParams::DataView input,
::content::mojom::DidCommitSameDocumentNavigationParamsPtr* output) { … }
bool StructTraits<::content::mojom::CookieManagerInfo::DataView, ::content::mojom::CookieManagerInfoPtr>::Read(
::content::mojom::CookieManagerInfo::DataView input,
::content::mojom::CookieManagerInfoPtr* output) { … }
bool StructTraits<::content::mojom::StorageInfo::DataView, ::content::mojom::StorageInfoPtr>::Read(
::content::mojom::StorageInfo::DataView input,
::content::mojom::StorageInfoPtr* output) { … }
}
namespace content::mojom {
void NavigationClientInterceptorForTesting::CommitNavigation(::blink::mojom::CommonNavigationParamsPtr common_params, ::blink::mojom::CommitNavigationParamsPtr request_params, ::network::mojom::URLResponseHeadPtr response_head, ::mojo::ScopedDataPipeConsumerHandle response_body, ::network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints, ::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle> subresource_loader_factories, std::optional<std::vector<::blink::mojom::TransferrableURLLoaderPtr>> subresource_overrides, ::blink::mojom::ControllerServiceWorkerInfoPtr controller_service_worker_info, ::blink::mojom::ServiceWorkerContainerInfoForClientPtr container_info, ::mojo::PendingRemote<::network::mojom::URLLoaderFactory> subresource_proxying_loader_factory, ::mojo::PendingRemote<::network::mojom::URLLoaderFactory> keep_alive_loader_factory, ::mojo::PendingAssociatedRemote<::blink::mojom::FetchLaterLoaderFactory> fetch_later_loader_factory, const ::blink::DocumentToken& document_token, const ::base::UnguessableToken& devtools_navigation_token, const ::base::Uuid& base_auction_nonce, const std::optional<std::vector<::blink::ParsedPermissionsPolicyDeclaration>>& permissions_policy, ::blink::mojom::PolicyContainerPtr policy_container, ::mojo::PendingRemote<::blink::mojom::CodeCacheHost> code_cache_host, ::mojo::PendingRemote<::blink::mojom::CodeCacheHost> code_cache_host_for_background, CookieManagerInfoPtr cookie_manager_info, StorageInfoPtr storage_info, CommitNavigationCallback callback) { … }
void NavigationClientInterceptorForTesting::CommitFailedNavigation(::blink::mojom::CommonNavigationParamsPtr common_params, ::blink::mojom::CommitNavigationParamsPtr request_params, bool has_stale_copy_in_cache, int32_t error_code, int32_t extended_error_code, const ::net::ResolveErrorInfo& resolve_error_info, const std::optional<std::string>& error_page_content, ::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle> subresource_loader_factories, const ::blink::DocumentToken& document_token, ::blink::mojom::PolicyContainerPtr policy_container, ::content::mojom::AlternativeErrorPageOverrideInfoPtr alternative_error_page_info, CommitFailedNavigationCallback callback) { … }
NavigationClientAsyncWaiter::NavigationClientAsyncWaiter(
NavigationClient* proxy) : … { … }
NavigationClientAsyncWaiter::~NavigationClientAsyncWaiter() = default;
void NavigationClientAsyncWaiter::CommitNavigation(
::blink::mojom::CommonNavigationParamsPtr common_params, ::blink::mojom::CommitNavigationParamsPtr request_params, ::network::mojom::URLResponseHeadPtr response_head, ::mojo::ScopedDataPipeConsumerHandle response_body, ::network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints, ::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle> subresource_loader_factories, std::optional<std::vector<::blink::mojom::TransferrableURLLoaderPtr>> subresource_overrides, ::blink::mojom::ControllerServiceWorkerInfoPtr controller_service_worker_info, ::blink::mojom::ServiceWorkerContainerInfoForClientPtr container_info, ::mojo::PendingRemote<::network::mojom::URLLoaderFactory> subresource_proxying_loader_factory, ::mojo::PendingRemote<::network::mojom::URLLoaderFactory> keep_alive_loader_factory, ::mojo::PendingAssociatedRemote<::blink::mojom::FetchLaterLoaderFactory> fetch_later_loader_factory, const ::blink::DocumentToken& document_token, const ::base::UnguessableToken& devtools_navigation_token, const ::base::Uuid& base_auction_nonce, const std::optional<std::vector<::blink::ParsedPermissionsPolicyDeclaration>>& permissions_policy, ::blink::mojom::PolicyContainerPtr policy_container, ::mojo::PendingRemote<::blink::mojom::CodeCacheHost> code_cache_host, ::mojo::PendingRemote<::blink::mojom::CodeCacheHost> code_cache_host_for_background, CookieManagerInfoPtr cookie_manager_info, StorageInfoPtr storage_info, DidCommitProvisionalLoadParamsPtr* out_params, ::content::mojom::DidCommitProvisionalLoadInterfaceParamsPtr* out_interface_params) { … }
void NavigationClientAsyncWaiter::CommitFailedNavigation(
::blink::mojom::CommonNavigationParamsPtr common_params, ::blink::mojom::CommitNavigationParamsPtr request_params, bool has_stale_copy_in_cache, int32_t error_code, int32_t extended_error_code, const ::net::ResolveErrorInfo& resolve_error_info, const std::optional<std::string>& error_page_content, ::std::unique_ptr<::blink::PendingURLLoaderFactoryBundle> subresource_loader_factories, const ::blink::DocumentToken& document_token, ::blink::mojom::PolicyContainerPtr policy_container, ::content::mojom::AlternativeErrorPageOverrideInfoPtr alternative_error_page_info, DidCommitProvisionalLoadParamsPtr* out_params, ::content::mojom::DidCommitProvisionalLoadInterfaceParamsPtr* out_interface_params) { … }
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif