Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5076)

Unified Diff: chrome/renderer/webworker_base.cc

Issue 6713005: Move a bunch of gpu/worker/plugin renderer code to content. I temporarily disabled the sad plugi... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/webworker_base.h ('k') | chrome/renderer/webworker_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/webworker_base.cc
===================================================================
--- chrome/renderer/webworker_base.cc (revision 78516)
+++ chrome/renderer/webworker_base.cc (working copy)
@@ -1,120 +0,0 @@
-// 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.
-
-#include "chrome/renderer/webworker_base.h"
-
-#include "chrome/common/render_messages.h"
-#include "chrome/common/render_messages_params.h"
-#include "content/common/child_thread.h"
-#include "content/common/webmessageportchannel_impl.h"
-#include "content/common/worker_messages.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebWorkerClient.h"
-
-using WebKit::WebMessagePortChannel;
-using WebKit::WebMessagePortChannelArray;
-using WebKit::WebString;
-using WebKit::WebURL;
-using WebKit::WebWorkerClient;
-
-WebWorkerBase::WebWorkerBase(
- ChildThread* child_thread,
- unsigned long long document_id,
- int route_id,
- int render_view_route_id,
- int parent_appcache_host_id)
- : route_id_(route_id),
- render_view_route_id_(render_view_route_id),
- child_thread_(child_thread),
- document_id_(document_id),
- parent_appcache_host_id_(parent_appcache_host_id) {
- if (route_id_ != MSG_ROUTING_NONE)
- child_thread_->AddRoute(route_id_, this);
-}
-
-WebWorkerBase::~WebWorkerBase() {
- Disconnect();
-
- // Free up any unsent queued messages.
- for (size_t i = 0; i < queued_messages_.size(); ++i)
- delete queued_messages_[i];
-}
-
-void WebWorkerBase::Disconnect() {
- if (route_id_ == MSG_ROUTING_NONE)
- return;
-
- // So the messages from WorkerContext (like WorkerContextDestroyed) do not
- // come after nobody is listening. Since Worker and WorkerContext can
- // terminate independently, already sent messages may still be in the pipe.
- child_thread_->RemoveRoute(route_id_);
-
- route_id_ = MSG_ROUTING_NONE;
-}
-
-void WebWorkerBase::CreateWorkerContext(const GURL& script_url,
- bool is_shared,
- const string16& name,
- const string16& user_agent,
- const string16& source_code,
- int pending_route_id,
- int64 script_resource_appcache_id) {
- DCHECK(route_id_ == MSG_ROUTING_NONE);
- ViewHostMsg_CreateWorker_Params params;
- params.url = script_url;
- params.is_shared = is_shared;
- params.name = name;
- params.document_id = document_id_;
- params.render_view_route_id = render_view_route_id_;
- params.route_id = pending_route_id;
- params.parent_appcache_host_id = parent_appcache_host_id_;
- params.script_resource_appcache_id = script_resource_appcache_id;
- IPC::Message* create_message = new ViewHostMsg_CreateWorker(
- params, &route_id_);
- child_thread_->Send(create_message);
- if (route_id_ == MSG_ROUTING_NONE)
- return;
-
- child_thread_->AddRoute(route_id_, this);
-
- // We make sure that the start message is the first, since postMessage or
- // connect might have already been called.
- queued_messages_.insert(queued_messages_.begin(),
- new WorkerMsg_StartWorkerContext(
- route_id_, script_url, user_agent, source_code));
-}
-
-bool WebWorkerBase::IsStarted() {
- // Worker is started if we have a route ID and there are no queued messages
- // (meaning we've sent the WorkerMsg_StartWorkerContext already).
- return (route_id_ != MSG_ROUTING_NONE && queued_messages_.empty());
-}
-
-bool WebWorkerBase::Send(IPC::Message* message) {
- // It's possible that messages will be sent before the worker is created, in
- // which case route_id_ will be none. Or the worker object can be interacted
- // with before the browser process told us that it started, in which case we
- // also want to queue the message.
- if (!IsStarted()) {
- queued_messages_.push_back(message);
- return true;
- }
-
- // For now we proxy all messages to the worker process through the browser.
- // Revisit if we find this slow.
- // TODO(jabdelmalek): handle sync messages if we need them.
- IPC::Message* wrapped_msg = new ViewHostMsg_ForwardToWorker(*message);
- delete message;
- return child_thread_->Send(wrapped_msg);
-}
-
-void WebWorkerBase::SendQueuedMessages() {
- DCHECK(queued_messages_.size());
- std::vector<IPC::Message*> queued_messages = queued_messages_;
- queued_messages_.clear();
- for (size_t i = 0; i < queued_messages.size(); ++i) {
- queued_messages[i]->set_routing_id(route_id_);
- Send(queued_messages[i]);
- }
-}
« no previous file with comments | « chrome/renderer/webworker_base.h ('k') | chrome/renderer/webworker_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698