summaryrefslogtreecommitdiff
path: root/chromium/content/browser/service_worker/embedded_worker_test_helper.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-01-25 11:39:07 +0100
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-01-25 15:20:42 +0000
commit6c91641271e536ffaa88a1dff5127e42ee99a91e (patch)
tree703d9dd49602377ddc90cbf886aad37913f2496b /chromium/content/browser/service_worker/embedded_worker_test_helper.h
parentb145b7fafd36f0c260d6a768c81fc14e32578099 (diff)
downloadqtwebengine-chromium-6c91641271e536ffaa88a1dff5127e42ee99a91e.tar.gz
BASELINE: Update Chromium to 49.0.2623.23
Also adds missing printing sources. Change-Id: I3726b8f0c7d6751c9fc846096c571fadca7108cd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'chromium/content/browser/service_worker/embedded_worker_test_helper.h')
-rw-r--r--chromium/content/browser/service_worker/embedded_worker_test_helper.h44
1 files changed, 37 insertions, 7 deletions
diff --git a/chromium/content/browser/service_worker/embedded_worker_test_helper.h b/chromium/content/browser/service_worker/embedded_worker_test_helper.h
index e36c18b1778..a95454a9490 100644
--- a/chromium/content/browser/service_worker/embedded_worker_test_helper.h
+++ b/chromium/content/browser/service_worker/embedded_worker_test_helper.h
@@ -5,12 +5,17 @@
#ifndef CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_
#define CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_TEST_HELPER_H_
+#include <stdint.h>
+
#include <map>
#include <string>
#include <vector>
#include "base/callback.h"
+#include "base/containers/scoped_ptr_hash_map.h"
+#include "base/macros.h"
#include "base/memory/weak_ptr.h"
+#include "content/common/mojo/service_registry_impl.h"
#include "ipc/ipc_listener.h"
#include "ipc/ipc_test_sink.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -24,9 +29,11 @@ namespace content {
class EmbeddedWorkerRegistry;
class EmbeddedWorkerTestHelper;
class MessagePortMessageFilter;
+class MockRenderProcessHost;
class ServiceWorkerContextCore;
class ServiceWorkerContextWrapper;
struct ServiceWorkerFetchRequest;
+class TestBrowserContext;
// In-Process EmbeddedWorker test helper.
//
@@ -46,11 +53,9 @@ struct ServiceWorkerFetchRequest;
class EmbeddedWorkerTestHelper : public IPC::Sender,
public IPC::Listener {
public:
- // Initialize this helper for |context|, and enable this as an IPC
- // sender for |mock_render_process_id|. If |user_data_directory| is empty,
- // the context makes storage stuff in memory.
- EmbeddedWorkerTestHelper(const base::FilePath& user_data_directory,
- int mock_render_process_id);
+ // If |user_data_directory| is empty, the context makes storage stuff in
+ // memory.
+ explicit EmbeddedWorkerTestHelper(const base::FilePath& user_data_directory);
~EmbeddedWorkerTestHelper() override;
// Call this to simulate add/associate a process to a pattern.
@@ -73,6 +78,12 @@ class EmbeddedWorkerTestHelper : public IPC::Sender,
void ShutdownContext();
int mock_render_process_id() const { return mock_render_process_id_;}
+ // Mock render process. Only set if the one-parameter constructor was used.
+ MockRenderProcessHost* mock_render_process_host() {
+ return render_process_host_.get();
+ }
+
+ TestBrowserContext* browser_context() { return browser_context_.get(); }
protected:
// Called when StartWorker, StopWorker and SendMessageToWorker message
@@ -82,7 +93,7 @@ class EmbeddedWorkerTestHelper : public IPC::Sender,
// - OnStopWorker calls SimulateWorkerStoped
// - OnSendMessageToWorker calls the message's respective On*Event handler
virtual void OnStartWorker(int embedded_worker_id,
- int64 service_worker_version_id,
+ int64_t service_worker_version_id,
const GURL& scope,
const GURL& script_url);
virtual void OnStopWorker(int embedded_worker_id);
@@ -90,6 +101,10 @@ class EmbeddedWorkerTestHelper : public IPC::Sender,
int embedded_worker_id,
const IPC::Message& message);
+ // Called to setup mojo for a new embedded worker. Override to register
+ // services the worker should expose to the browser.
+ virtual void OnSetupMojo(ServiceRegistry* service_registry);
+
// On*Event handlers. Called by the default implementation of
// OnMessageToWorker when events are sent to the embedded
// worker. By default they just return success via
@@ -117,6 +132,8 @@ class EmbeddedWorkerTestHelper : public IPC::Sender,
EmbeddedWorkerRegistry* registry();
private:
+ class MockEmbeddedWorkerSetup;
+
void OnStartWorkerStub(const EmbeddedWorkerMsg_StartWorker_Params& params);
void OnStopWorkerStub(int embedded_worker_id);
void OnMessageToWorkerStub(int thread_id,
@@ -127,9 +144,15 @@ class EmbeddedWorkerTestHelper : public IPC::Sender,
void OnFetchEventStub(int request_id,
const ServiceWorkerFetchRequest& request);
void OnPushEventStub(int request_id, const std::string& data);
+ void OnSetupMojoStub(int thread_id,
+ mojo::InterfaceRequest<mojo::ServiceProvider> services,
+ mojo::ServiceProviderPtr exposed_services);
MessagePortMessageFilter* NewMessagePortMessageFilter();
+ scoped_ptr<TestBrowserContext> browser_context_;
+ scoped_ptr<MockRenderProcessHost> render_process_host_;
+
scoped_refptr<ServiceWorkerContextWrapper> wrapper_;
IPC::TestSink sink_;
@@ -138,7 +161,14 @@ class EmbeddedWorkerTestHelper : public IPC::Sender,
int next_thread_id_;
int mock_render_process_id_;
- std::map<int, int64> embedded_worker_id_service_worker_version_id_map_;
+ ServiceRegistryImpl render_process_service_registry_;
+
+ std::map<int, int64_t> embedded_worker_id_service_worker_version_id_map_;
+
+ // Stores the ServiceRegistries that are associated with each individual
+ // service worker.
+ base::ScopedPtrHashMap<int, scoped_ptr<ServiceRegistryImpl>>
+ thread_id_service_registry_map_;
// Updated each time MessageToWorker message is received.
int current_embedded_worker_id_;