| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <objidl.h> | 9 #include <objidl.h> |
| 10 #include <mlang.h> | 10 #include <mlang.h> |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 #else | 100 #else |
| 101 return command_line.HasSwitch(switches::kInProcessPlugins) || | 101 return command_line.HasSwitch(switches::kInProcessPlugins) || |
| 102 command_line.HasSwitch(switches::kSingleProcess); | 102 command_line.HasSwitch(switches::kSingleProcess); |
| 103 #endif | 103 #endif |
| 104 } | 104 } |
| 105 | 105 |
| 106 // ----------------------------------------------------------------------------- | 106 // ----------------------------------------------------------------------------- |
| 107 // Platform specific code for dealing with bitmap transport... | 107 // Platform specific code for dealing with bitmap transport... |
| 108 | 108 |
| 109 TransportDIB* RenderProcessImpl::CreateTransportDIB(size_t size) { | 109 TransportDIB* RenderProcessImpl::CreateTransportDIB(size_t size) { |
| 110 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_OPENBSD) | 110 #if defined(OS_WIN) || defined(OS_LINUX) || \ |
| 111 defined(OS_OPENBSD) || defined(OS_ANDROID) |
| 111 // Windows and Linux create transport DIBs inside the renderer | 112 // Windows and Linux create transport DIBs inside the renderer |
| 112 return TransportDIB::Create(size, transport_dib_next_sequence_number_++); | 113 return TransportDIB::Create(size, transport_dib_next_sequence_number_++); |
| 113 #elif defined(OS_MACOSX) | 114 #elif defined(OS_MACOSX) |
| 114 // Mac creates transport DIBs in the browser, so we need to do a sync IPC to | 115 // Mac creates transport DIBs in the browser, so we need to do a sync IPC to |
| 115 // get one. The TransportDIB is cached in the browser. | 116 // get one. The TransportDIB is cached in the browser. |
| 116 TransportDIB::Handle handle; | 117 TransportDIB::Handle handle; |
| 117 IPC::Message* msg = new ViewHostMsg_AllocTransportDIB(size, true, &handle); | 118 IPC::Message* msg = new ViewHostMsg_AllocTransportDIB(size, true, &handle); |
| 118 if (!main_thread()->Send(msg)) | 119 if (!main_thread()->Send(msg)) |
| 119 return NULL; | 120 return NULL; |
| 120 if (handle.fd < 0) | 121 if (handle.fd < 0) |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 } | 235 } |
| 235 | 236 |
| 236 void RenderProcessImpl::ClearTransportDIBCache() { | 237 void RenderProcessImpl::ClearTransportDIBCache() { |
| 237 for (size_t i = 0; i < arraysize(shared_mem_cache_); ++i) { | 238 for (size_t i = 0; i < arraysize(shared_mem_cache_); ++i) { |
| 238 if (shared_mem_cache_[i]) { | 239 if (shared_mem_cache_[i]) { |
| 239 FreeTransportDIB(shared_mem_cache_[i]); | 240 FreeTransportDIB(shared_mem_cache_[i]); |
| 240 shared_mem_cache_[i] = NULL; | 241 shared_mem_cache_[i] = NULL; |
| 241 } | 242 } |
| 242 } | 243 } |
| 243 } | 244 } |
| OLD | NEW |