diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 02:00:56 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 02:00:56 +0000 |
commit | a5da6d613f41ecf35c027e8744dd6d3a41e4010c (patch) | |
tree | dad6a3e159fcc21df62180f481a0024db97d5b0d /chrome/worker | |
parent | e23ed5427d0892d07480781f45b4367adebc0c00 (diff) | |
download | chromium_src-a5da6d613f41ecf35c027e8744dd6d3a41e4010c.zip chromium_src-a5da6d613f41ecf35c027e8744dd6d3a41e4010c.tar.gz chromium_src-a5da6d613f41ecf35c027e8744dd6d3a41e4010c.tar.bz2 |
Cross-process Message Port implementation.
I'm sending this first, then I'll add support to workers in another changelist to avoid making this change larger.
TEST=running message port related layout tests in ui_tests
Review URL: http://codereview.chromium.org/159372
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22356 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/worker')
-rw-r--r-- | chrome/worker/worker_uitest.cc | 29 | ||||
-rw-r--r-- | chrome/worker/worker_webkitclient_impl.cc | 6 | ||||
-rw-r--r-- | chrome/worker/worker_webkitclient_impl.h | 1 |
3 files changed, 36 insertions, 0 deletions
diff --git a/chrome/worker/worker_uitest.cc b/chrome/worker/worker_uitest.cc index e493203..62c618c 100644 --- a/chrome/worker/worker_uitest.cc +++ b/chrome/worker/worker_uitest.cc @@ -374,6 +374,35 @@ TEST_F(WorkerTest, WorkerXhrHttpLayoutTests) { StopHttpServer(); } +TEST_F(WorkerTest, MessagePorts) { + static const char* kLayoutTestFiles[] = { + "message-channel-gc.html", + "message-channel-gc-2.html", + "message-channel-gc-3.html", + "message-channel-gc-4.html", + "message-port.html", + "message-port-clone.html", + "message-port-constructor-for-deleted-document.html", + "message-port-deleted-document.html", + "message-port-deleted-frame.html", + "message-port-inactive-document.html", + "message-port-no-wrapper.html", + // Only works with run-webkit-tests --leaks. + //"message-channel-listener-circular-ownership.html", + }; + + FilePath fast_test_dir; + fast_test_dir = fast_test_dir.AppendASCII("LayoutTests"); + fast_test_dir = fast_test_dir.AppendASCII("fast"); + + FilePath worker_test_dir; + worker_test_dir = worker_test_dir.AppendASCII("events"); + InitializeForLayoutTest(fast_test_dir, worker_test_dir, false); + + for (size_t i = 0; i < arraysize(kLayoutTestFiles); ++i) + RunLayoutTest(kLayoutTestFiles[i], false); +} + TEST_F(WorkerTest, LimitPerPage) { int max_workers_per_tab = WorkerService::kMaxWorkersPerTabWhenSeparate; GURL url = GetTestUrl(L"workers", L"many_workers.html"); diff --git a/chrome/worker/worker_webkitclient_impl.cc b/chrome/worker/worker_webkitclient_impl.cc index 21ca49a..4923542 100644 --- a/chrome/worker/worker_webkitclient_impl.cc +++ b/chrome/worker/worker_webkitclient_impl.cc @@ -5,6 +5,7 @@ #include "chrome/worker/worker_webkitclient_impl.h" #include "base/logging.h" +#include "chrome/common/webmessageportchannel_impl.h" #include "chrome/worker/worker_thread.h" #include "webkit/api/public/WebString.h" #include "webkit/api/public/WebURL.h" @@ -36,6 +37,11 @@ bool WorkerWebKitClientImpl::isLinkVisited(unsigned long long link_hash) { return false; } +WebKit::WebMessagePortChannel* +WorkerWebKitClientImpl::createMessagePortChannel() { + return new WebMessagePortChannelImpl(); +} + void WorkerWebKitClientImpl::setCookies(const WebKit::WebURL& url, const WebKit::WebURL& policy_url, const WebKit::WebString& value) { diff --git a/chrome/worker/worker_webkitclient_impl.h b/chrome/worker/worker_webkitclient_impl.h index ecd3220..69a28e4 100644 --- a/chrome/worker/worker_webkitclient_impl.h +++ b/chrome/worker/worker_webkitclient_impl.h @@ -16,6 +16,7 @@ class WorkerWebKitClientImpl : public webkit_glue::WebKitClientImpl { virtual unsigned long long visitedLinkHash(const char* canonicalURL, size_t length); virtual bool isLinkVisited(unsigned long long linkHash); + virtual WebKit::WebMessagePortChannel* createMessagePortChannel(); virtual void setCookies(const WebKit::WebURL& url, const WebKit::WebURL& policy_url, const WebKit::WebString& value); |