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

Unified Diff: content/renderer/renderer_webkitplatformsupport_impl.cc

Issue 12330162: Use ThreadSafeSender in a couple of places. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 10 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 | « content/renderer/renderer_webkitplatformsupport_impl.h ('k') | content/worker/worker_thread.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/renderer_webkitplatformsupport_impl.cc
===================================================================
--- content/renderer/renderer_webkitplatformsupport_impl.cc (revision 186267)
+++ content/renderer/renderer_webkitplatformsupport_impl.cc (working copy)
@@ -19,6 +19,7 @@
#include "content/common/indexed_db/proxy_webidbfactory_impl.h"
#include "content/common/mime_registry_messages.h"
#include "content/common/npobject_util.h"
+#include "content/common/thread_safe_sender.h"
#include "content/common/view_messages.h"
#include "content/common/webmessageportchannel_impl.h"
#include "content/public/common/content_switches.h"
@@ -114,9 +115,14 @@
class RendererWebKitPlatformSupportImpl::FileUtilities
: public webkit_glue::WebFileUtilitiesImpl {
public:
+ explicit FileUtilities(ThreadSafeSender* sender)
+ : thread_safe_sender_(sender) {}
virtual bool getFileInfo(const WebString& path, WebFileInfo& result);
virtual base::PlatformFile openFile(const WebKit::WebString& path,
int mode);
+ private:
+ bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg) const;
+ scoped_refptr<ThreadSafeSender> thread_safe_sender_;
};
class RendererWebKitPlatformSupportImpl::Hyphenator
@@ -191,6 +197,10 @@
} else {
DVLOG(1) << "Disabling sandbox support for testing.";
}
+
+ // ChildThread may not exist in some tests.
+ if (ChildThread::current())
+ thread_safe_sender_ = ChildThread::current()->thread_safe_sender();
}
RendererWebKitPlatformSupportImpl::~RendererWebKitPlatformSupportImpl() {
@@ -198,27 +208,6 @@
//------------------------------------------------------------------------------
-namespace {
-
-bool SendSyncMessageFromAnyThreadInternal(IPC::SyncMessage* msg) {
- RenderThread* render_thread = RenderThread::Get();
- if (render_thread)
- return render_thread->Send(msg);
- scoped_refptr<IPC::SyncMessageFilter> sync_msg_filter(
- ChildThread::current()->sync_message_filter());
- return sync_msg_filter->Send(msg);
-}
-
-bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg) {
- base::TimeTicks begin = base::TimeTicks::Now();
- const bool success = SendSyncMessageFromAnyThreadInternal(msg);
- base::TimeDelta delta = base::TimeTicks::Now() - begin;
- UMA_HISTOGRAM_TIMES("RendererSyncIPC.ElapsedTime", delta);
- return success;
-}
-
-} // namespace
-
WebKit::WebClipboard* RendererWebKitPlatformSupportImpl::clipboard() {
WebKit::WebClipboard* clipboard =
GetContentClient()->renderer()->OverrideWebClipboard();
@@ -238,7 +227,7 @@
WebKit::WebFileUtilities*
RendererWebKitPlatformSupportImpl::fileUtilities() {
if (!file_utilities_.get()) {
- file_utilities_.reset(new FileUtilities);
+ file_utilities_.reset(new FileUtilities(thread_safe_sender_));
file_utilities_->set_sandbox_enabled(sandboxEnabled());
}
return file_utilities_.get();
@@ -447,6 +436,15 @@
return IPC::PlatformFileForTransitToPlatformFile(handle);
}
+bool RendererWebKitPlatformSupportImpl::FileUtilities::
+SendSyncMessageFromAnyThread(IPC::SyncMessage* msg) const {
+ base::TimeTicks begin = base::TimeTicks::Now();
+ const bool success = thread_safe_sender_->Send(msg);
+ base::TimeDelta delta = base::TimeTicks::Now() - begin;
+ UMA_HISTOGRAM_TIMES("RendererSyncIPC.ElapsedTime", delta);
+ return success;
+}
+
//------------------------------------------------------------------------------
RendererWebKitPlatformSupportImpl::Hyphenator::Hyphenator() {}
@@ -745,10 +743,9 @@
//------------------------------------------------------------------------------
WebBlobRegistry* RendererWebKitPlatformSupportImpl::blobRegistry() {
- // ChildThread::current can be NULL when running some tests.
- if (!blob_registry_.get() && ChildThread::current()) {
- blob_registry_.reset(new WebBlobRegistryImpl(ChildThread::current()));
- }
+ // thread_safe_sender_ can be NULL when running some tests.
+ if (!blob_registry_.get() && thread_safe_sender_.get())
+ blob_registry_.reset(new WebBlobRegistryImpl(thread_safe_sender_));
return blob_registry_.get();
}
« no previous file with comments | « content/renderer/renderer_webkitplatformsupport_impl.h ('k') | content/worker/worker_thread.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698