blob: 048674fd5554fb44bb2fb7d4097f7579ab86a8b3 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_WEBAPPS_ISOLATED_WEB_APPS_URL_LOADING_UTILS_H_
#define COMPONENTS_WEBAPPS_ISOLATED_WEB_APPS_URL_LOADING_UTILS_H_
#include <optional>
#include <string>
#include <string_view>
#include "components/web_package/signed_web_bundles/signed_web_bundle_id.h"
#include "content/public/browser/frame_tree_node_id.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "net/http/http_status_code.h"
#include "services/network/public/mojom/url_loader.mojom-forward.h"
#include "url/gurl.h"
namespace content {
class BrowserContext;
} // namespace content
namespace net {
struct MutableNetworkTrafficAnnotationTag;
} // namespace net
namespace network {
struct ResourceRequest;
} // namespace network
namespace web_app {
class IwaSourceProxy;
void CompleteWithGeneratedResponse(
mojo::Remote<network::mojom::URLLoaderClient> loader_client,
net::HttpStatusCode http_status_code,
std::optional<std::string> body = std::nullopt,
std::string_view content_type = "text/html");
void LogErrorMessageToConsole(
std::optional<content::FrameTreeNodeId> frame_tree_node_id,
const std::string& error_message);
void LogErrorAndFail(
const std::string& error_message,
const std::optional<content::FrameTreeNodeId>& frame_tree_node_id,
mojo::PendingRemote<network::mojom::URLLoaderClient> client);
void HandleProxy(
content::BrowserContext* browser_context,
const web_package::SignedWebBundleId& web_bundle_id,
const IwaSourceProxy& proxy,
mojo::PendingReceiver<network::mojom::URLLoader> loader_receiver,
mojo::PendingRemote<network::mojom::URLLoaderClient> loader_client,
const network::ResourceRequest& resource_request,
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
const std::optional<content::FrameTreeNodeId>& frame_tree_node_id);
} // namespace web_app
#endif // COMPONENTS_WEBAPPS_ISOLATED_WEB_APPS_URL_LOADING_UTILS_H_