#include "extensions/renderer/extension_localization_throttle.h"
#include "base/containers/span.h"
#include "base/memory/ptr_util.h"
#include "base/memory/weak_ptr.h"
#include "base/strings/string_util.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_thread.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension_id.h"
#include "extensions/renderer/extension_frame_helper.h"
#include "extensions/renderer/shared_l10n_map.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/data_pipe_drainer.h"
#include "mojo/public/cpp/system/data_pipe_producer.h"
#include "mojo/public/cpp/system/string_data_source.h"
#include "services/network/public/mojom/early_hints.mojom.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "url/gurl.h"
namespace extensions {
namespace {
const char kCancelReason[] = …;
class ExtensionLocalizationURLLoader : public network::mojom::URLLoaderClient,
public network::mojom::URLLoader,
public mojo::DataPipeDrainer::Client { … };
}
std::unique_ptr<ExtensionLocalizationThrottle>
ExtensionLocalizationThrottle::MaybeCreate(
base::optional_ref<const blink::LocalFrameToken> local_frame_token,
const GURL& request_url) { … }
ExtensionLocalizationThrottle::ExtensionLocalizationThrottle(
base::optional_ref<const blink::LocalFrameToken> local_frame_token)
: … { … }
ExtensionLocalizationThrottle::~ExtensionLocalizationThrottle() = default;
void ExtensionLocalizationThrottle::DetachFromCurrentSequence() { … }
void ExtensionLocalizationThrottle::WillProcessResponse(
const GURL& response_url,
network::mojom::URLResponseHead* response_head,
bool* defer) { … }
void ExtensionLocalizationThrottle::DeferredCancelWithError(int error_code) { … }
}