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

Unified Diff: chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc

Issue 3463005: Merge 59890 - Map: Guard concurrent accesses to a std::map by a lock in drawi... (Closed) Base URL: svn://svn.chromium.org/chrome/branches/517/src/
Patch Set: Created 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/renderer_host/accelerated_surface_container_manager_mac.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc
===================================================================
--- chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc (revision 59895)
+++ chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc (working copy)
@@ -18,6 +18,8 @@
gfx::PluginWindowHandle
AcceleratedSurfaceContainerManagerMac::AllocateFakePluginWindowHandle(
bool opaque, bool root) {
+ AutoLock lock(lock_);
+
AcceleratedSurfaceContainerMac* container =
new AcceleratedSurfaceContainerMac(this, opaque);
gfx::PluginWindowHandle res =
@@ -32,6 +34,8 @@
void AcceleratedSurfaceContainerManagerMac::DestroyFakePluginWindowHandle(
gfx::PluginWindowHandle id) {
+ AutoLock lock(lock_);
+
AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
if (container) {
if (container == root_container_) {
@@ -54,6 +58,8 @@
int32 width,
int32 height,
uint64 io_surface_identifier) {
+ AutoLock lock(lock_);
+
AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
if (container) {
container->SetSizeAndIOSurface(width, height, io_surface_identifier);
@@ -65,6 +71,8 @@
int32 width,
int32 height,
TransportDIB::Handle transport_dib) {
+ AutoLock lock(lock_);
+
AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
if (container)
container->SetSizeAndTransportDIB(width, height, transport_dib);
@@ -72,6 +80,8 @@
void AcceleratedSurfaceContainerManagerMac::SetPluginContainerGeometry(
const webkit_glue::WebPluginGeometry& move) {
+ AutoLock lock(lock_);
+
AcceleratedSurfaceContainerMac* container = MapIDToContainer(move.window);
if (container)
container->SetGeometry(move);
@@ -79,6 +89,8 @@
void AcceleratedSurfaceContainerManagerMac::Draw(CGLContextObj context,
gfx::PluginWindowHandle id) {
+ AutoLock lock(lock_);
+
glColorMask(true, true, true, true);
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -101,6 +113,8 @@
}
void AcceleratedSurfaceContainerManagerMac::ForceTextureReload() {
+ AutoLock lock(lock_);
+
for (PluginWindowToContainerMap::const_iterator i =
plugin_window_to_container_map_.begin();
i != plugin_window_to_container_map_.end(); ++i) {
@@ -111,6 +125,8 @@
void AcceleratedSurfaceContainerManagerMac::SetSurfaceWasPaintedTo(
gfx::PluginWindowHandle id) {
+ AutoLock lock(lock_);
+
AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
if (container)
container->set_was_painted_to();
@@ -118,6 +134,8 @@
bool AcceleratedSurfaceContainerManagerMac::SurfaceShouldBeVisible(
gfx::PluginWindowHandle id) const {
+ AutoLock lock(lock_);
+
if (IsRootContainer(id) && !gpu_rendering_active_)
return false;
« no previous file with comments | « chrome/browser/renderer_host/accelerated_surface_container_manager_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698