| Index: chrome/worker/worker_thread.h
|
| ===================================================================
|
| --- chrome/worker/worker_thread.h (revision 0)
|
| +++ chrome/worker/worker_thread.h (revision 0)
|
| @@ -0,0 +1,55 @@
|
| +// 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 CHROME_WORKER_WORKER_THREAD_H_
|
| +#define CHROME_WORKER_WORKER_THREAD_H_
|
| +
|
| +#include "base/thread.h"
|
| +#include "chrome/common/ipc_sync_channel.h"
|
| +#include "chrome/common/message_router.h"
|
| +#include "chrome/common/resource_dispatcher.h"
|
| +
|
| +class WebWorkerContextStub;
|
| +class WorkerProcess;
|
| +
|
| +class WorkerThread : public IPC::Channel::Listener,
|
| + public IPC::Message::Sender,
|
| + public base::Thread {
|
| + public:
|
| + WorkerThread(WorkerProcess *process, const std::wstring& channel_name);
|
| + ~WorkerThread();
|
| +
|
| + // IPC::Channel::Listener implementation:
|
| + virtual void OnMessageReceived(const IPC::Message& msg);
|
| + virtual void OnChannelError();
|
| +
|
| + // IPC::Message::Sender implementation:
|
| + virtual bool Send(IPC::Message* msg);
|
| +
|
| + void OnWorkerDestruction(WebWorkerContextStub* worker);
|
| +
|
| + private:
|
| + // Thread implementation:
|
| + void Init();
|
| + void CleanUp();
|
| +
|
| + void OnCreateWorker(const GURL& url, int route_id);
|
| +
|
| + // The process that has created this thread
|
| + WorkerProcess *worker_process_;
|
| +
|
| + // The message loop used to run tasks on the thread that started this thread.
|
| + MessageLoop* owner_loop_;
|
| +
|
| + std::wstring channel_name_;
|
| + scoped_ptr<IPC::SyncChannel> channel_;
|
| +
|
| + // Used to implement message routing functionality to
|
| + // WebWorkerContextProxyStub objects.
|
| + MessageRouter router_;
|
| +
|
| + DISALLOW_EVIL_CONSTRUCTORS(WorkerThread);
|
| +};
|
| +
|
| +#endif // CHROME_WORKER_WORKER_THREAD_H_
|
|
|