diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-06-28 11:06:20 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-07-13 11:11:40 +0200 |
commit | 734b635cf9a9316ddd05dc9d9abc0a93746fc7f3 (patch) | |
tree | 49c6736d1c0c792326dd52b7541bea361c478609 /src/core/net | |
parent | b848c87dbbc317ad7186418a64670b52777d1393 (diff) |
Adaptations for 90-based
Change-Id: I8402b044d8e12d75e144a00984b856f3de10bffd
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
(cherry picked from commit 1d988d971bc4270ba3d148e8e2c143bf8f625b6e)
Diffstat (limited to 'src/core/net')
-rw-r--r-- | src/core/net/cookie_monster_delegate_qt.cpp | 1 | ||||
-rw-r--r-- | src/core/net/custom_url_loader_factory.cpp | 28 | ||||
-rw-r--r-- | src/core/net/plugin_response_interceptor_url_loader_throttle.cpp | 27 | ||||
-rw-r--r-- | src/core/net/plugin_response_interceptor_url_loader_throttle.h | 6 | ||||
-rw-r--r-- | src/core/net/proxy_config_monitor.cpp | 1 | ||||
-rw-r--r-- | src/core/net/system_network_context_manager.cpp | 11 | ||||
-rw-r--r-- | src/core/net/system_network_context_manager.h | 8 | ||||
-rw-r--r-- | src/core/net/webui_controller_factory_qt.cpp | 5 | ||||
-rw-r--r-- | src/core/net/webui_controller_factory_qt.h | 1 |
9 files changed, 53 insertions, 35 deletions
diff --git a/src/core/net/cookie_monster_delegate_qt.cpp b/src/core/net/cookie_monster_delegate_qt.cpp index 6d72a622b..9f703bcbc 100644 --- a/src/core/net/cookie_monster_delegate_qt.cpp +++ b/src/core/net/cookie_monster_delegate_qt.cpp @@ -44,7 +44,6 @@ #include "base/task/post_task.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" -#include "mojo/public/cpp/bindings/binding.h" #include "net/cookies/cookie_util.h" #include "services/network/public/mojom/cookie_manager.mojom.h" diff --git a/src/core/net/custom_url_loader_factory.cpp b/src/core/net/custom_url_loader_factory.cpp index 10b4a9e0f..dca69c20f 100644 --- a/src/core/net/custom_url_loader_factory.cpp +++ b/src/core/net/custom_url_loader_factory.cpp @@ -43,7 +43,6 @@ #include "base/task/post_task.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" -#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/system/data_pipe.h" @@ -123,13 +122,13 @@ private: // ### We can opt to run the url-loader on the UI thread instead : m_taskRunner(base::CreateSingleThreadTaskRunner({ content::BrowserThread::IO })) , m_proxy(new URLRequestCustomJobProxy(this, request.url.scheme(), profileAdapter)) - , m_binding(this, std::move(loader)) + , m_receiver(this, std::move(loader)) , m_client(std::move(client_info)) , m_request(request) { DCHECK(m_taskRunner->RunsTasksInCurrentSequence()); - m_binding.set_connection_error_handler( - base::BindOnce(&CustomURLLoader::OnConnectionError, m_weakPtrFactory.GetWeakPtr())); + m_receiver.set_disconnect_handler( + base::BindOnce(&CustomURLLoader::OnConnectionError, m_weakPtrFactory.GetWeakPtr())); m_firstBytePosition = 0; m_device = nullptr; m_error = 0; @@ -152,11 +151,13 @@ private: if (!m_corsEnabled && !m_request.request_initiator->IsSameOriginWith(url::Origin::Create(m_request.url))) return CompleteWithFailure(network::CorsErrorStatus(network::mojom::CorsError::kCorsDisabledScheme)); } + if (mojo::CreateDataPipe(nullptr, m_pipeProducerHandle, m_pipeConsumerHandle) != MOJO_RESULT_OK) + return CompleteWithFailure(net::ERR_FAILED); m_head = network::mojom::URLResponseHead::New(); m_head->request_start = base::TimeTicks::Now(); - if (!m_pipe.consumer_handle.is_valid()) + if (!m_pipeConsumerHandle.is_valid()) return CompleteWithFailure(net::ERR_FAILED); std::map<std::string, std::string> headers; @@ -193,7 +194,7 @@ private: void OnConnectionError() { DCHECK(m_taskRunner->RunsTasksInCurrentSequence()); - m_binding.Close(); + m_receiver.reset(); if (m_client.is_bound()) ClearProxyAndClient(false); else @@ -226,7 +227,7 @@ private: // m_taskRunner->PostTask(FROM_HERE, base::BindOnce(&URLRequestCustomJobProxy::release, m_proxy)); base::PostTask(FROM_HERE, { content::BrowserThread::UI }, base::BindOnce(&URLRequestCustomJobProxy::release, m_proxy)); - if (!wait_for_loader_error || !m_binding.is_bound()) + if (!wait_for_loader_error || !m_receiver.is_bound()) delete this; } @@ -307,7 +308,7 @@ private: m_head->charset = m_charset; m_headerBytesRead = m_head->headers->raw_headers().length(); m_client->OnReceiveResponse(std::move(m_head)); - m_client->OnStartLoadingResponseBody(std::move(m_pipe.consumer_handle)); + m_client->OnStartLoadingResponseBody(std::move(m_pipeConsumerHandle)); m_head = nullptr; if (readAvailableData()) // May delete this @@ -315,7 +316,7 @@ private: m_watcher = std::make_unique<mojo::SimpleWatcher>( FROM_HERE, mojo::SimpleWatcher::ArmingPolicy::AUTOMATIC, m_taskRunner); - m_watcher->Watch(m_pipe.producer_handle.get(), MOJO_HANDLE_SIGNAL_WRITABLE, + m_watcher->Watch(m_pipeProducerHandle.get(), MOJO_HANDLE_SIGNAL_WRITABLE, MOJO_WATCH_CONDITION_SATISFIED, base::BindRepeating(&CustomURLLoader::notifyReadyWrite, m_weakPtrFactory.GetWeakPtr())); @@ -384,7 +385,7 @@ private: void *buffer = nullptr; uint32_t bufferSize = 0; - MojoResult beginResult = m_pipe.producer_handle->BeginWriteData( + MojoResult beginResult = m_pipeProducerHandle->BeginWriteData( &buffer, &bufferSize, MOJO_BEGIN_WRITE_DATA_FLAG_NONE); if (beginResult == MOJO_RESULT_SHOULD_WAIT) return false; // Wait for pipe watcher @@ -395,7 +396,7 @@ private: int readResult = m_device->read(static_cast<char *>(buffer), bufferSize); uint32_t bytesRead = std::max(readResult, 0); - m_pipe.producer_handle->EndWriteData(bytesRead); + m_pipeProducerHandle->EndWriteData(bytesRead); m_totalBytesRead += bytesRead; m_client->OnTransferSizeUpdated(m_totalBytesRead); @@ -437,9 +438,10 @@ private: scoped_refptr<base::SequencedTaskRunner> m_taskRunner; scoped_refptr<URLRequestCustomJobProxy> m_proxy; - mojo::Binding<network::mojom::URLLoader> m_binding; + mojo::Receiver<network::mojom::URLLoader> m_receiver; network::mojom::URLLoaderClientPtr m_client; - mojo::DataPipe m_pipe; + mojo::ScopedDataPipeProducerHandle m_pipeProducerHandle; + mojo::ScopedDataPipeConsumerHandle m_pipeConsumerHandle; std::unique_ptr<mojo::SimpleWatcher> m_watcher; net::HttpByteRange m_byteRange; diff --git a/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp b/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp index e01e82aa9..d66e69ef4 100644 --- a/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp +++ b/src/core/net/plugin_response_interceptor_url_loader_throttle.cpp @@ -37,6 +37,11 @@ ** ****************************************************************************/ +// based on chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc +// Copyright 2018 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. + #include "plugin_response_interceptor_url_loader_throttle.h" #include "base/bind.h" @@ -63,8 +68,10 @@ namespace QtWebEngineCore { PluginResponseInterceptorURLLoaderThrottle::PluginResponseInterceptorURLLoaderThrottle( - content::BrowserContext *browser_context, int resource_type, int frame_tree_node_id) - : m_browser_context(browser_context), m_resource_type(resource_type), m_frame_tree_node_id(frame_tree_node_id) + content::BrowserContext *browser_context, + network::mojom::RequestDestination request_destination, + int frame_tree_node_id) + : m_browser_context(browser_context), m_request_destination(request_destination), m_frame_tree_node_id(frame_tree_node_id) {} void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL &response_url, @@ -127,14 +134,17 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL &PluginResponseInterceptorURLLoaderThrottle::ResumeLoad, weak_factory_.GetWeakPtr())); - mojo::DataPipe data_pipe(data_pipe_size); + mojo::ScopedDataPipeProducerHandle producer_handle; + mojo::ScopedDataPipeConsumerHandle consumer_handle; + CHECK_EQ(MOJO_RESULT_OK, mojo::CreateDataPipe(data_pipe_size, producer_handle, consumer_handle)); + uint32_t len = static_cast<uint32_t>(payload.size()); CHECK_EQ(MOJO_RESULT_OK, - data_pipe.producer_handle->WriteData( + producer_handle->WriteData( payload.c_str(), &len, MOJO_WRITE_DATA_FLAG_ALL_OR_NONE)); - new_client->OnStartLoadingResponseBody(std::move(data_pipe.consumer_handle)); + new_client->OnStartLoadingResponseBody(std::move(consumer_handle)); network::URLLoaderCompletionStatus status(net::OK); status.decoded_body_length = len; @@ -163,8 +173,8 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL transferrable_loader->head = std::move(deep_copied_response); transferrable_loader->head->intercepted_by_plugin = true; - bool embedded = m_resource_type != - static_cast<int>(blink::mojom::ResourceType::kMainFrame); + bool embedded = m_request_destination != + network::mojom::RequestDestination::kDocument; content::GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce( @@ -174,7 +184,8 @@ void PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse(const GURL std::move(transferrable_loader), response_url)); } -void PluginResponseInterceptorURLLoaderThrottle::ResumeLoad() { +void PluginResponseInterceptorURLLoaderThrottle::ResumeLoad() +{ delegate_->Resume(); } diff --git a/src/core/net/plugin_response_interceptor_url_loader_throttle.h b/src/core/net/plugin_response_interceptor_url_loader_throttle.h index 205ab25e6..0e10b2124 100644 --- a/src/core/net/plugin_response_interceptor_url_loader_throttle.h +++ b/src/core/net/plugin_response_interceptor_url_loader_throttle.h @@ -42,6 +42,7 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" +#include "services/network/public/mojom/fetch_api.mojom-shared.h" #include "third_party/blink/public/common/loader/url_loader_throttle.h" namespace content { @@ -54,7 +55,8 @@ class PluginResponseInterceptorURLLoaderThrottle : public blink::URLLoaderThrott { public: PluginResponseInterceptorURLLoaderThrottle(content::BrowserContext *browser_context, - int resource_type, int frame_tree_node_id); + network::mojom::RequestDestination request_destination, + int frame_tree_node_id); ~PluginResponseInterceptorURLLoaderThrottle() override = default; private: @@ -66,7 +68,7 @@ private: void ResumeLoad(); content::BrowserContext *m_browser_context = nullptr; - const int m_resource_type; + const network::mojom::RequestDestination m_request_destination; const int m_frame_tree_node_id; base::WeakPtrFactory<PluginResponseInterceptorURLLoaderThrottle> diff --git a/src/core/net/proxy_config_monitor.cpp b/src/core/net/proxy_config_monitor.cpp index a0aaf0c05..de0211f2f 100644 --- a/src/core/net/proxy_config_monitor.cpp +++ b/src/core/net/proxy_config_monitor.cpp @@ -52,7 +52,6 @@ #include "components/proxy_config/pref_proxy_config_tracker_impl.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" -#include "mojo/public/cpp/bindings/associated_interface_ptr.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "net/proxy_resolution/proxy_resolution_service.h" #include "services/network/public/mojom/network_context.mojom.h" diff --git a/src/core/net/system_network_context_manager.cpp b/src/core/net/system_network_context_manager.cpp index 6e564a355..46e678110 100644 --- a/src/core/net/system_network_context_manager.cpp +++ b/src/core/net/system_network_context_manager.cpp @@ -52,8 +52,8 @@ #include "components/network_session_configurator/common/network_switches.h" #include "content/public/browser/network_service_instance.h" #include "content/public/common/content_switches.h" -#include "content/public/common/service_names.mojom.h" #include "net/net_buildflags.h" +#include "services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom.h" #include "services/network/network_service.h" #include "services/network/public/cpp/cross_thread_pending_shared_url_loader_factory.h" #include "services/network/public/cpp/features.h" @@ -240,7 +240,8 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams(network::mo network_context_params->initial_ssl_config->symantec_enforcement_disabled = true; } -void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams(network::mojom::NetworkContextParams *network_context_params) +void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams(network::mojom::NetworkContextParams *network_context_params, + cert_verifier::mojom::CertVerifierCreationParams *cert_verifier_creation_params) { network_context_params->enable_brotli = true; @@ -271,7 +272,9 @@ network::mojom::NetworkContextParamsPtr SystemNetworkContextManager::CreateNetwo { // TODO(mmenke): Set up parameters here (in memory cookie store, etc). network::mojom::NetworkContextParamsPtr network_context_params = network::mojom::NetworkContextParams::New(); - ConfigureDefaultNetworkContextParams(network_context_params.get()); + cert_verifier::mojom::CertVerifierCreationParamsPtr + cert_verifier_creation_params = cert_verifier::mojom::CertVerifierCreationParams::New(); + ConfigureDefaultNetworkContextParams(network_context_params.get(), cert_verifier_creation_params.get()); network_context_params->context_name = std::string("system"); @@ -286,5 +289,7 @@ network::mojom::NetworkContextParamsPtr SystemNetworkContextManager::CreateNetwo proxy_config_monitor_.AddToNetworkContextParams(network_context_params.get()); + network_context_params->cert_verifier_params = + content::GetCertVerifierParams(std::move(cert_verifier_creation_params)); return network_context_params; } diff --git a/src/core/net/system_network_context_manager.h b/src/core/net/system_network_context_manager.h index 48cd99173..a234ead94 100644 --- a/src/core/net/system_network_context_manager.h +++ b/src/core/net/system_network_context_manager.h @@ -54,6 +54,11 @@ #include "net/proxy_config_monitor.h" +namespace cert_verifier { +namespace mojom { +class CertVerifierCreationParams; +}} + namespace network { namespace mojom { class URLLoaderFactory; @@ -121,7 +126,8 @@ public: void AddSSLConfigToNetworkContextParams(network::mojom::NetworkContextParams *network_context_params); // Configures the default set of parameters for the network context. - void ConfigureDefaultNetworkContextParams(network::mojom::NetworkContextParams *); + void ConfigureDefaultNetworkContextParams(network::mojom::NetworkContextParams *, + cert_verifier::mojom::CertVerifierCreationParams *); private: class URLLoaderFactoryForSystem; diff --git a/src/core/net/webui_controller_factory_qt.cpp b/src/core/net/webui_controller_factory_qt.cpp index b645a6d72..d483a1ab8 100644 --- a/src/core/net/webui_controller_factory_qt.cpp +++ b/src/core/net/webui_controller_factory_qt.cpp @@ -187,11 +187,6 @@ bool WebUIControllerFactoryQt::UseWebUIForURL(content::BrowserContext *browser_c return GetWebUIType(browser_context, url) != WebUI::kNoWebUI; } -bool WebUIControllerFactoryQt::UseWebUIBindingsForURL(content::BrowserContext *browser_context, const GURL &url) -{ - return UseWebUIForURL(browser_context, url); -} - std::unique_ptr<WebUIController> WebUIControllerFactoryQt::CreateWebUIControllerForURL(WebUI *web_ui, const GURL &url) { Profile *profile = Profile::FromWebUI(web_ui); diff --git a/src/core/net/webui_controller_factory_qt.h b/src/core/net/webui_controller_factory_qt.h index 6dfc612e1..b5f01a504 100644 --- a/src/core/net/webui_controller_factory_qt.h +++ b/src/core/net/webui_controller_factory_qt.h @@ -52,7 +52,6 @@ class WebUIControllerFactoryQt : public content::WebUIControllerFactory public: content::WebUI::TypeID GetWebUIType(content::BrowserContext *browserContext, const GURL &url) override; bool UseWebUIForURL(content::BrowserContext *browserContext, const GURL &url) override; - bool UseWebUIBindingsForURL(content::BrowserContext *browserContext, const GURL &url) override; std::unique_ptr<content::WebUIController> CreateWebUIControllerForURL(content::WebUI *webUi, const GURL &url) override; static WebUIControllerFactoryQt *GetInstance(); |