Index: webkit/glue/webworkerclient_impl.h |
=================================================================== |
--- webkit/glue/webworkerclient_impl.h (revision 0) |
+++ webkit/glue/webworkerclient_impl.h (revision 0) |
@@ -0,0 +1,61 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef WEBKIT_GLUE_WEBWORKERCLIENT_IMPL_H_ |
+#define WEBKIT_GLUE_WEBWORKERCLIENT_IMPL_H_ |
+ |
+#if ENABLE(WORKERS) |
+ |
+#include "base/scoped_ptr.h" |
+#include "webkit/glue/webworkerclient.h" |
+ |
+#include "WorkerContextProxy.h" |
+ |
+class WebWorker; |
+ |
+// The purpose of this class is to provide a WorkerContextProxy |
+// implementation that we can give to WebKit. Internally, it converts the |
+// data types to Chrome compatible ones so that renderer code can use it over |
+// IPC. |
+class WebWorkerClientImpl : public WebCore::WorkerContextProxy, |
+ public WebWorkerClient { |
+ public: |
+ WebWorkerClientImpl(WebCore::Worker* worker); |
+ |
+ void set_webworker(WebWorker* webworker); |
+ |
+ // WebCore::WorkerContextProxy implementation |
+ void startWorkerContext(const WebCore::KURL& scriptURL, |
+ const WebCore::String& userAgent, |
+ const WebCore::String& sourceCode); |
+ void terminateWorkerContext(); |
+ void postMessageToWorkerContext(const WebCore::String& message); |
+ bool hasPendingActivity() const; |
+ void workerObjectDestroyed(); |
+ |
+ // WebWorkerClient implementation. |
+ void PostMessageToWorkerObject(const string16& message); |
+ void PostExceptionToWorkerObject(const string16& error_message, |
+ int line_number, |
+ const string16& source_url); |
+ void PostConsoleMessageToWorkerObject(int destination, |
+ int source, |
+ int level, |
+ const string16& message, |
+ int line_number, |
+ const string16& source_url); |
+ void ConfirmMessageFromWorkerObject(bool has_pending_activity); |
+ void ReportPendingActivity(bool has_pending_activity); |
+ void WorkerContextDestroyed(); |
+ |
+ private: |
+ virtual ~WebWorkerClientImpl(); |
+ |
+ WebCore::Worker* worker_; |
+ scoped_ptr<WebWorker> webworker_; |
+}; |
+ |
+#endif |
+ |
+#endif // WEBKIT_GLUE_WEBWORKERCLIENT_IMPL_H_ |