MCPcopy Create free account
hub / github.com/electron/electron / LoadNetworkResource

Method LoadNetworkResource

shell/browser/ui/inspectable_web_contents.cc:718–783  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

716}
717
718void InspectableWebContents::LoadNetworkResource(DispatchCallback callback,
719 const std::string& url,
720 const std::string& headers,
721 int stream_id) {
722 GURL gurl(url);
723 if (!gurl.is_valid()) {
724 base::Value response(base::Value::Type::DICT);
725 response.GetDict().Set("statusCode", net::HTTP_NOT_FOUND);
726 std::move(callback).Run(&response);
727 return;
728 }
729
730 // Create traffic annotation tag.
731 net::NetworkTrafficAnnotationTag traffic_annotation =
732 net::DefineNetworkTrafficAnnotation("devtools_network_resource", R"(
733 semantics {
734 sender: "Developer Tools"
735 description:
736 "When user opens Developer Tools, the browser may fetch additional "
737 "resources from the network to enrich the debugging experience "
738 "(e.g. source map resources)."
739 trigger: "User opens Developer Tools to debug a web page."
740 data: "Any resources requested by Developer Tools."
741 destination: WEBSITE
742 }
743 policy {
744 cookies_allowed: YES
745 cookies_store: "user"
746 setting:
747 "It's not possible to disable this feature from settings."
748 })");
749
750 network::ResourceRequest resource_request;
751 resource_request.url = gurl;
752 resource_request.site_for_cookies = net::SiteForCookies::FromUrl(gurl);
753 resource_request.headers.AddHeadersFromString(headers);
754
755 const auto* const protocol_registry = ProtocolRegistry::FromBrowserContext(
756 GetDevToolsWebContents()->GetBrowserContext());
757 NetworkResourceLoader::URLLoaderFactoryHolder url_loader_factory;
758 if (gurl.SchemeIsFile()) {
759 mojo::PendingRemote<network::mojom::URLLoaderFactory> pending_remote =
760 AsarURLLoaderFactory::Create();
761 url_loader_factory = network::SharedURLLoaderFactory::Create(
762 std::make_unique<network::WrapperPendingSharedURLLoaderFactory>(
763 std::move(pending_remote)));
764 } else if (const auto* const protocol_handler =
765 protocol_registry->FindRegistered(gurl.scheme())) {
766 auto* browser_context = static_cast<ElectronBrowserContext*>(
767 GetDevToolsWebContents()->GetBrowserContext());
768 url_loader_factory = network::SharedURLLoaderFactory::Create(
769 std::make_unique<network::WrapperPendingSharedURLLoaderFactory>(
770 ElectronURLLoaderFactory::Create(protocol_handler->first,
771 protocol_handler->second,
772 browser_context->GetWeakPtr())));
773 } else {
774 auto* partition = GetDevToolsWebContents()
775 ->GetBrowserContext()

Callers

nothing calls this directly

Calls 7

is_validMethod · 0.80
FindRegisteredMethod · 0.80
CreateFunction · 0.50
SetMethod · 0.45
RunMethod · 0.45
GetBrowserContextMethod · 0.45
GetWeakPtrMethod · 0.45

Tested by

no test coverage detected