Add a helper class for intercepting URLLoader requests.
This allows test to monitor and intercept:
-frame requests (for now only with network service, until non-NS code path starts using URLLoader)
-subresources requests (both with and without network service)
Bug: 776589
Change-Id: I34a7e4ce57b966109bd421beac6eeab26481a2f7
Reviewed-on: https://chromium-review.googlesource.com/789355
Commit-Queue: John Abd-El-Malek <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Cr-Commit-Position: refs/heads/master@{#519412}
diff --git a/content/browser/url_loader_factory_getter.h b/content/browser/url_loader_factory_getter.h
index cee9f47..79b6ce1 100644
--- a/content/browser/url_loader_factory_getter.h
+++ b/content/browser/url_loader_factory_getter.h
@@ -30,17 +30,22 @@
// Called on the IO thread to get the URLLoaderFactory to the network service.
// The pointer shouldn't be cached.
- mojom::URLLoaderFactoryPtr* GetNetworkFactory();
+ mojom::URLLoaderFactory* GetNetworkFactory();
// Called on the IO thread to get the URLLoaderFactory to the blob service.
// The pointer shouldn't be cached.
- CONTENT_EXPORT mojom::URLLoaderFactoryPtr* GetBlobFactory();
+ CONTENT_EXPORT mojom::URLLoaderFactory* GetBlobFactory();
// Overrides the network URLLoaderFactory for subsequent requests. Passing a
// null pointer will restore the default behavior.
// This is called on the UI thread.
CONTENT_EXPORT void SetNetworkFactoryForTesting(
- mojom::URLLoaderFactoryPtr test_factory);
+ mojom::URLLoaderFactory* test_factory);
+
+ CONTENT_EXPORT mojom::URLLoaderFactoryPtr*
+ original_network_factory_for_testing() {
+ return &network_factory_;
+ }
private:
friend class base::DeleteHelper<URLLoaderFactoryGetter>;
@@ -49,13 +54,12 @@
CONTENT_EXPORT ~URLLoaderFactoryGetter();
void InitializeOnIOThread(mojom::URLLoaderFactoryPtrInfo network_factory,
mojom::URLLoaderFactoryPtrInfo blob_factory);
- void SetTestNetworkFactoryOnIOThread(
- mojom::URLLoaderFactoryPtrInfo test_factory);
+ void SetTestNetworkFactoryOnIOThread(mojom::URLLoaderFactory* test_factory);
// Only accessed on IO thread.
mojom::URLLoaderFactoryPtr network_factory_;
mojom::URLLoaderFactoryPtr blob_factory_;
- mojom::URLLoaderFactoryPtr test_factory_;
+ mojom::URLLoaderFactory* test_factory_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(URLLoaderFactoryGetter);
};