summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authordimich@google.com <dimich@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-10 20:31:10 +0000
committerdimich@google.com <dimich@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-10 20:31:10 +0000
commit8711df994152f2dc72dd7f45da8779d73fe1e558 (patch)
tree7ec65344af0c5ee1792cb0a50cee17d9327a6721 /chrome
parent61d74983f154e4b6d3e8501b212be6b27de3c500 (diff)
downloadchromium_src-8711df994152f2dc72dd7f45da8779d73fe1e558.zip
chromium_src-8711df994152f2dc72dd7f45da8779d73fe1e558.tar.gz
chromium_src-8711df994152f2dc72dd7f45da8779d73fe1e558.tar.bz2
Make OSX TestShell able to run workers, using a new test_worker.dylib which is basically a webkit+v8+helpers to simulate separate process with worker v8 threads. This is similar way we do on Win32.
Review URL: http://codereview.chromium.org/66043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13537 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/test/worker/test_worker.exp2
-rw-r--r--chrome/test/worker/test_worker_main.cc22
2 files changed, 20 insertions, 4 deletions
diff --git a/chrome/test/worker/test_worker.exp b/chrome/test/worker/test_worker.exp
new file mode 100644
index 0000000..88f6ee1
--- /dev/null
+++ b/chrome/test/worker/test_worker.exp
@@ -0,0 +1,2 @@
+_CreateWebWorker
+
diff --git a/chrome/test/worker/test_worker_main.cc b/chrome/test/worker/test_worker_main.cc
index 4cc434a..9c6b1cc 100644
--- a/chrome/test/worker/test_worker_main.cc
+++ b/chrome/test/worker/test_worker_main.cc
@@ -9,6 +9,7 @@
#include "base/logging.h"
#include "base/path_service.h"
#include "base/scoped_ptr.h"
+#include "base/string_util.h"
#include "chrome/worker/worker_webkitclient_impl.h"
#include "chrome/test/worker/test_webworker.h"
#include "googleurl/src/gurl.h"
@@ -26,6 +27,10 @@ static base::AtExitManager global_at_exit_manager;
// WebKit client used in DLL.
static scoped_ptr<WorkerWebKitClientImpl> webkit_client;
+#if defined(COMPILER_GCC)
+#pragma GCC visibility push(default)
+#endif
+extern "C" {
// DLL entry points
WebWorker* API_CALL CreateWebWorker(WebWorkerClient* webworker_client,
TestWebWorkerHelper* webworker_helper) {
@@ -40,11 +45,16 @@ WebWorker* API_CALL CreateWebWorker(WebWorkerClient* webworker_client,
return NULL;
#endif
}
+} // extern "C"
-// WebKit glue functions
-
+// WebKit glue stub functions.
namespace webkit_glue {
+#if defined(COMPILER_GCC)
+// GCC hides the class methods like this by default, even in the scope
+// of the "#pragma visibility". Need the attribute.
+__attribute__((visibility("default")))
+#endif
ResourceLoaderBridge* ResourceLoaderBridge::Create(
const std::string& method,
const GURL& url,
@@ -62,7 +72,7 @@ ResourceLoaderBridge* ResourceLoaderBridge::Create(
}
string16 GetLocalizedString(int message_id) {
- return L"";
+ return EmptyString16();
}
StringPiece GetDataResource(int resource_id) {
@@ -145,4 +155,8 @@ bool DownloadUrl(const std::string& url, HWND caller_window) {
}
#endif
-}
+} // namespace webkit_glue
+
+#if defined(COMPILER_GCC)
+#pragma GCC visibility pop
+#endif