Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(639)

Unified Diff: content/browser/loader/url_loader_factory_impl.cc

Issue 2390983003: Implement Mojo SyncLoad (Closed)
Patch Set: +tests Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/loader/url_loader_factory_impl.h ('k') | content/child/resource_dispatcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/loader/url_loader_factory_impl.cc
diff --git a/content/browser/loader/url_loader_factory_impl.cc b/content/browser/loader/url_loader_factory_impl.cc
index 7b11666452e2683045457b408c5fb466e06c4243..75f308796010f677b82881070d1ecc4afcdd6948 100644
--- a/content/browser/loader/url_loader_factory_impl.cc
+++ b/content/browser/loader/url_loader_factory_impl.cc
@@ -13,6 +13,26 @@
namespace content {
+namespace {
+
+void DispatchSyncLoadResult(
+ const URLLoaderFactoryImpl::SyncLoadCallback& callback,
+ const SyncLoadResult* result) {
+ // |result| can be null when a loading task is aborted unexpectedly. Reply
+ // with a failure result on that case.
+ // TODO(tzik): Test null-result case.
+ if (!result) {
+ SyncLoadResult failure;
+ failure.error_code = net::ERR_FAILED;
+ callback.Run(failure);
+ return;
+ }
+
+ callback.Run(*result);
+}
+
+} // namespace
+
URLLoaderFactoryImpl::URLLoaderFactoryImpl(
scoped_refptr<ResourceMessageFilter> resource_message_filter)
: resource_message_filter_(std::move(resource_message_filter)) {
@@ -38,6 +58,18 @@ void URLLoaderFactoryImpl::CreateLoaderAndStart(
resource_message_filter_.get());
}
+void URLLoaderFactoryImpl::SyncLoad(int32_t routing_id,
+ int32_t request_id,
+ const ResourceRequest& url_request,
+ const SyncLoadCallback& callback) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+
+ ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get();
+ rdh->OnSyncLoadWithMojo(routing_id, request_id, url_request,
+ resource_message_filter_.get(),
+ base::Bind(&DispatchSyncLoadResult, callback));
+}
+
void URLLoaderFactoryImpl::Create(
scoped_refptr<ResourceMessageFilter> filter,
mojo::InterfaceRequest<mojom::URLLoaderFactory> request) {
« no previous file with comments | « content/browser/loader/url_loader_factory_impl.h ('k') | content/child/resource_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698