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

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 12356002: [NOT FOR COMMIT] Hacks to merge render compositor thread with UI thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: New thread restriction allows (incomplete patch) Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h" 92 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h"
93 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptController.h " 93 #include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptController.h "
94 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h" 94 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h"
95 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSharedWorkerReposi tory.h" 95 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSharedWorkerReposi tory.h"
96 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 96 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
97 #include "ui/base/layout.h" 97 #include "ui/base/layout.h"
98 #include "ui/base/ui_base_switches.h" 98 #include "ui/base/ui_base_switches.h"
99 #include "v8/include/v8.h" 99 #include "v8/include/v8.h"
100 #include "webkit/glue/webkit_glue.h" 100 #include "webkit/glue/webkit_glue.h"
101 101
102 #include "base/threading/thread_restrictions.h"
103
102 #if defined(OS_WIN) 104 #if defined(OS_WIN)
103 #include <windows.h> 105 #include <windows.h>
104 #include <objbase.h> 106 #include <objbase.h>
105 #include "base/win/scoped_com_initializer.h" 107 #include "base/win/scoped_com_initializer.h"
106 #else 108 #else
107 // TODO(port) 109 // TODO(port)
108 #include "base/memory/scoped_handle.h" 110 #include "base/memory/scoped_handle.h"
109 #include "content/common/np_channel_base.h" 111 #include "content/common/np_channel_base.h"
110 #endif 112 #endif
111 113
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 RenderThreadImpl::HostAllocateSharedMemoryBuffer(size_t size) { 760 RenderThreadImpl::HostAllocateSharedMemoryBuffer(size_t size) {
759 if (size > static_cast<size_t>(std::numeric_limits<int>::max())) 761 if (size > static_cast<size_t>(std::numeric_limits<int>::max()))
760 return scoped_ptr<base::SharedMemory>(); 762 return scoped_ptr<base::SharedMemory>();
761 763
762 base::SharedMemoryHandle handle; 764 base::SharedMemoryHandle handle;
763 bool success; 765 bool success;
764 IPC::Message* message = 766 IPC::Message* message =
765 new ChildProcessHostMsg_SyncAllocateSharedMemory(size, &handle); 767 new ChildProcessHostMsg_SyncAllocateSharedMemory(size, &handle);
766 768
767 // Allow calling this from the compositor thread. 769 // Allow calling this from the compositor thread.
768 if (MessageLoop::current() == message_loop()) 770 if (MessageLoop::current() == message_loop()) {
769 success = ChildThread::Send(message); 771 success = ChildThread::Send(message);
770 else 772 } else {
773 // This one should be ok...
774 base::ThreadRestrictions::ScopedAllowWait allow_wait;
boliu 2013/03/01 00:19:12 This one just allocates shared mem and does not us
771 success = sync_message_filter()->Send(message); 775 success = sync_message_filter()->Send(message);
776 }
772 777
773 if (!success) 778 if (!success)
774 return scoped_ptr<base::SharedMemory>(); 779 return scoped_ptr<base::SharedMemory>();
775 780
776 if (!base::SharedMemory::IsHandleValid(handle)) 781 if (!base::SharedMemory::IsHandleValid(handle))
777 return scoped_ptr<base::SharedMemory>(); 782 return scoped_ptr<base::SharedMemory>();
778 783
779 return scoped_ptr<base::SharedMemory>(new base::SharedMemory(handle, false)); 784 return scoped_ptr<base::SharedMemory>(new base::SharedMemory(handle, false));
780 } 785 }
781 786
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
998 "surface_id", 1003 "surface_id",
999 surface_id); 1004 surface_id);
1000 1005
1001 int32 route_id = MSG_ROUTING_NONE; 1006 int32 route_id = MSG_ROUTING_NONE;
1002 IPC::Message* message = new GpuHostMsg_CreateViewCommandBuffer( 1007 IPC::Message* message = new GpuHostMsg_CreateViewCommandBuffer(
1003 surface_id, 1008 surface_id,
1004 init_params, 1009 init_params,
1005 &route_id); 1010 &route_id);
1006 1011
1007 // Allow calling this from the compositor thread. 1012 // Allow calling this from the compositor thread.
1008 if (MessageLoop::current() == message_loop()) 1013 if (MessageLoop::current() == message_loop()) {
1009 ChildThread::Send(message); 1014 ChildThread::Send(message);
1010 else 1015 } else {
1016 base::ThreadRestrictions::ScopedAllowWait allow_wait;
boliu 2013/03/01 00:19:12 potential deadlock? See comment in gpu_message_fil
1011 sync_message_filter()->Send(message); 1017 sync_message_filter()->Send(message);
1018 }
1012 1019
1013 return route_id; 1020 return route_id;
1014 } 1021 }
1015 1022
1016 void RenderThreadImpl::CreateImage( 1023 void RenderThreadImpl::CreateImage(
1017 gfx::PluginWindowHandle window, 1024 gfx::PluginWindowHandle window,
1018 int32 image_id, 1025 int32 image_id,
1019 const CreateImageCallback& callback) { 1026 const CreateImageCallback& callback) {
1020 NOTREACHED(); 1027 NOTREACHED();
1021 } 1028 }
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 1212
1206 void RenderThreadImpl::SetFlingCurveParameters( 1213 void RenderThreadImpl::SetFlingCurveParameters(
1207 const std::vector<float>& new_touchpad, 1214 const std::vector<float>& new_touchpad,
1208 const std::vector<float>& new_touchscreen) { 1215 const std::vector<float>& new_touchscreen) {
1209 webkit_platform_support_->SetFlingCurveParameters(new_touchpad, 1216 webkit_platform_support_->SetFlingCurveParameters(new_touchpad,
1210 new_touchscreen); 1217 new_touchscreen);
1211 1218
1212 } 1219 }
1213 1220
1214 } // namespace content 1221 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698