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

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

Issue 23694031: Fix race conditions in window snapshot code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Incorporated enne and jbauman's feedback. Created 7 years, 3 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 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 // Note that under Linux, the media library will normally already have 407 // Note that under Linux, the media library will normally already have
408 // been initialized by the Zygote before this instance became a Renderer. 408 // been initialized by the Zygote before this instance became a Renderer.
409 base::FilePath media_path; 409 base::FilePath media_path;
410 PathService::Get(DIR_MEDIA_LIBS, &media_path); 410 PathService::Get(DIR_MEDIA_LIBS, &media_path);
411 if (!media_path.empty()) 411 if (!media_path.empty())
412 media::InitializeMediaLibrary(media_path); 412 media::InitializeMediaLibrary(media_path);
413 413
414 memory_pressure_listener_.reset(new base::MemoryPressureListener( 414 memory_pressure_listener_.reset(new base::MemoryPressureListener(
415 base::Bind(&RenderThreadImpl::OnMemoryPressure, base::Unretained(this)))); 415 base::Bind(&RenderThreadImpl::OnMemoryPressure, base::Unretained(this))));
416 416
417 renderer_process_id_ = base::kNullProcessId;
418
417 TRACE_EVENT_END_ETW("RenderThreadImpl::Init", 0, ""); 419 TRACE_EVENT_END_ETW("RenderThreadImpl::Init", 0, "");
418 } 420 }
419 421
420 RenderThreadImpl::~RenderThreadImpl() { 422 RenderThreadImpl::~RenderThreadImpl() {
421 } 423 }
422 424
423 void RenderThreadImpl::Shutdown() { 425 void RenderThreadImpl::Shutdown() {
424 FOR_EACH_OBSERVER( 426 FOR_EACH_OBSERVER(
425 RenderProcessObserver, observers_, OnRenderProcessShutdown()); 427 RenderProcessObserver, observers_, OnRenderProcessShutdown());
426 428
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 bool handled = true; 1112 bool handled = true;
1111 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) 1113 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg)
1112 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForCurrentURL, 1114 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForCurrentURL,
1113 OnSetZoomLevelForCurrentURL) 1115 OnSetZoomLevelForCurrentURL)
1114 // TODO(port): removed from render_messages_internal.h; 1116 // TODO(port): removed from render_messages_internal.h;
1115 // is there a new non-windows message I should add here? 1117 // is there a new non-windows message I should add here?
1116 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) 1118 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView)
1117 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache) 1119 IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache)
1118 IPC_MESSAGE_HANDLER(ViewMsg_NetworkStateChanged, OnNetworkStateChanged) 1120 IPC_MESSAGE_HANDLER(ViewMsg_NetworkStateChanged, OnNetworkStateChanged)
1119 IPC_MESSAGE_HANDLER(ViewMsg_TempCrashWithData, OnTempCrashWithData) 1121 IPC_MESSAGE_HANDLER(ViewMsg_TempCrashWithData, OnTempCrashWithData)
1122 IPC_MESSAGE_HANDLER(ViewMsg_SetRendererProcessID, OnSetRendererProcessID)
1120 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended, 1123 IPC_MESSAGE_HANDLER(ViewMsg_SetWebKitSharedTimersSuspended,
1121 OnSetWebKitSharedTimersSuspended) 1124 OnSetWebKitSharedTimersSuspended)
1122 IPC_MESSAGE_UNHANDLED(handled = false) 1125 IPC_MESSAGE_UNHANDLED(handled = false)
1123 IPC_END_MESSAGE_MAP() 1126 IPC_END_MESSAGE_MAP()
1124 return handled; 1127 return handled;
1125 } 1128 }
1126 1129
1127 void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) { 1130 void RenderThreadImpl::OnCreateNewView(const ViewMsg_New_Params& params) {
1128 EnsureWebKitInitialized(); 1131 EnsureWebKitInitialized();
1129 // When bringing in render_view, also bring in webkit's glue and jsbindings. 1132 // When bringing in render_view, also bring in webkit's glue and jsbindings.
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1247 void RenderThreadImpl::OnNetworkStateChanged(bool online) { 1250 void RenderThreadImpl::OnNetworkStateChanged(bool online) {
1248 EnsureWebKitInitialized(); 1251 EnsureWebKitInitialized();
1249 WebNetworkStateNotifier::setOnLine(online); 1252 WebNetworkStateNotifier::setOnLine(online);
1250 } 1253 }
1251 1254
1252 void RenderThreadImpl::OnTempCrashWithData(const GURL& data) { 1255 void RenderThreadImpl::OnTempCrashWithData(const GURL& data) {
1253 GetContentClient()->SetActiveURL(data); 1256 GetContentClient()->SetActiveURL(data);
1254 CHECK(false); 1257 CHECK(false);
1255 } 1258 }
1256 1259
1260 void RenderThreadImpl::OnSetRendererProcessID(int64 process_id) {
1261 renderer_process_id_ = static_cast<base::ProcessId>(process_id);
1262 }
1263
1257 void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) { 1264 void RenderThreadImpl::OnSetWebKitSharedTimersSuspended(bool suspend) {
1258 ToggleWebKitSharedTimer(suspend); 1265 ToggleWebKitSharedTimer(suspend);
1259 } 1266 }
1260 1267
1261 void RenderThreadImpl::OnMemoryPressure( 1268 void RenderThreadImpl::OnMemoryPressure(
1262 base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { 1269 base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) {
1263 base::allocator::ReleaseFreeMemory(); 1270 base::allocator::ReleaseFreeMemory();
1264 1271
1265 if (memory_pressure_level == 1272 if (memory_pressure_level ==
1266 base::MemoryPressureListener::MEMORY_PRESSURE_CRITICAL) { 1273 base::MemoryPressureListener::MEMORY_PRESSURE_CRITICAL) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1306 new_touchscreen); 1313 new_touchscreen);
1307 1314
1308 } 1315 }
1309 1316
1310 void RenderThreadImpl::SampleGamepads(WebKit::WebGamepads* data) { 1317 void RenderThreadImpl::SampleGamepads(WebKit::WebGamepads* data) {
1311 if (!gamepad_shared_memory_reader_) 1318 if (!gamepad_shared_memory_reader_)
1312 gamepad_shared_memory_reader_.reset(new GamepadSharedMemoryReader); 1319 gamepad_shared_memory_reader_.reset(new GamepadSharedMemoryReader);
1313 gamepad_shared_memory_reader_->SampleGamepads(*data); 1320 gamepad_shared_memory_reader_->SampleGamepads(*data);
1314 } 1321 }
1315 1322
1323 base::ProcessId RenderThreadImpl::renderer_process_id() const {
1324 return renderer_process_id_;
1325 }
1326
1316 } // namespace content 1327 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698