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

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 231733005: Delete the GTK+ port of Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remerge to ToT Created 6 years, 8 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 // Represents the browser side of the browser <--> renderer communication 5 // Represents the browser side of the browser <--> renderer communication
6 // channel. There will be one RenderProcessHost per renderer process. 6 // channel. There will be one RenderProcessHost per renderer process.
7 7
8 #include "content/browser/renderer_host/render_process_host_impl.h" 8 #include "content/browser/renderer_host/render_process_host_impl.h"
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1274 matching lines...) Expand 10 before | Expand all | Expand 10 after
1285 // This is a platform specific function for mapping a transport DIB given its id 1285 // This is a platform specific function for mapping a transport DIB given its id
1286 TransportDIB* RenderProcessHostImpl::MapTransportDIB( 1286 TransportDIB* RenderProcessHostImpl::MapTransportDIB(
1287 TransportDIB::Id dib_id) { 1287 TransportDIB::Id dib_id) {
1288 #if defined(OS_WIN) 1288 #if defined(OS_WIN)
1289 // On Windows we need to duplicate the handle from the remote process 1289 // On Windows we need to duplicate the handle from the remote process
1290 HANDLE section; 1290 HANDLE section;
1291 DuplicateHandle(GetHandle(), dib_id.handle, GetCurrentProcess(), &section, 1291 DuplicateHandle(GetHandle(), dib_id.handle, GetCurrentProcess(), &section,
1292 FILE_MAP_READ | FILE_MAP_WRITE, 1292 FILE_MAP_READ | FILE_MAP_WRITE,
1293 FALSE, 0); 1293 FALSE, 0);
1294 return TransportDIB::Map(section); 1294 return TransportDIB::Map(section);
1295 #elif defined(TOOLKIT_GTK)
1296 return TransportDIB::Map(dib_id.shmkey);
1297 #elif defined(OS_ANDROID) 1295 #elif defined(OS_ANDROID)
1298 return TransportDIB::Map(dib_id); 1296 return TransportDIB::Map(dib_id);
1299 #else 1297 #else
1300 // On POSIX, the browser allocates all DIBs and keeps a file descriptor around 1298 // On POSIX, the browser allocates all DIBs and keeps a file descriptor around
1301 // for each. 1299 // for each.
1302 return widget_helper_->MapTransportDIB(dib_id); 1300 return widget_helper_->MapTransportDIB(dib_id);
1303 #endif 1301 #endif
1304 } 1302 }
1305 1303
1306 TransportDIB* RenderProcessHostImpl::GetTransportDIB( 1304 TransportDIB* RenderProcessHostImpl::GetTransportDIB(
(...skipping 18 matching lines...) Expand all
1325 size_t smallest_size = std::numeric_limits<size_t>::max(); 1323 size_t smallest_size = std::numeric_limits<size_t>::max();
1326 1324
1327 for (std::map<TransportDIB::Id, TransportDIB*>::iterator 1325 for (std::map<TransportDIB::Id, TransportDIB*>::iterator
1328 i = cached_dibs_.begin(); i != cached_dibs_.end(); ++i) { 1326 i = cached_dibs_.begin(); i != cached_dibs_.end(); ++i) {
1329 if (i->second->size() <= smallest_size) { 1327 if (i->second->size() <= smallest_size) {
1330 smallest_iterator = i; 1328 smallest_iterator = i;
1331 smallest_size = i->second->size(); 1329 smallest_size = i->second->size();
1332 } 1330 }
1333 } 1331 }
1334 1332
1335 #if defined(TOOLKIT_GTK)
1336 smallest_iterator->second->Detach();
1337 #else
1338 delete smallest_iterator->second; 1333 delete smallest_iterator->second;
1339 #endif
1340 cached_dibs_.erase(smallest_iterator); 1334 cached_dibs_.erase(smallest_iterator);
1341 } 1335 }
1342 1336
1343 cached_dibs_[dib_id] = dib; 1337 cached_dibs_[dib_id] = dib;
1344 cached_dibs_cleaner_.Reset(); 1338 cached_dibs_cleaner_.Reset();
1345 return dib; 1339 return dib;
1346 } 1340 }
1347 1341
1348 void RenderProcessHostImpl::ClearTransportDIBCache() { 1342 void RenderProcessHostImpl::ClearTransportDIBCache() {
1349 #if defined(TOOLKIT_GTK)
1350 std::map<TransportDIB::Id, TransportDIB*>::const_iterator dib =
1351 cached_dibs_.begin();
1352 for (; dib != cached_dibs_.end(); ++dib)
1353 dib->second->Detach();
1354 #else
1355 STLDeleteContainerPairSecondPointers( 1343 STLDeleteContainerPairSecondPointers(
1356 cached_dibs_.begin(), cached_dibs_.end()); 1344 cached_dibs_.begin(), cached_dibs_.end());
1357 #endif
1358 cached_dibs_.clear(); 1345 cached_dibs_.clear();
1359 } 1346 }
1360 1347
1361 bool RenderProcessHostImpl::Send(IPC::Message* msg) { 1348 bool RenderProcessHostImpl::Send(IPC::Message* msg) {
1362 TRACE_EVENT0("renderer_host", "RenderProcessHostImpl::Send"); 1349 TRACE_EVENT0("renderer_host", "RenderProcessHostImpl::Send");
1363 if (!channel_) { 1350 if (!channel_) {
1364 if (!is_initialized_) { 1351 if (!is_initialized_) {
1365 queued_messages_.push(msg); 1352 queued_messages_.push(msg);
1366 return true; 1353 return true;
1367 } else { 1354 } else {
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 2139
2153 void RenderProcessHostImpl::SetWebUIHandle( 2140 void RenderProcessHostImpl::SetWebUIHandle(
2154 int32 view_routing_id, 2141 int32 view_routing_id,
2155 mojo::ScopedMessagePipeHandle handle) { 2142 mojo::ScopedMessagePipeHandle handle) {
2156 if (!render_process_host_mojo_) 2143 if (!render_process_host_mojo_)
2157 render_process_host_mojo_.reset(new RenderProcessHostMojoImpl(this)); 2144 render_process_host_mojo_.reset(new RenderProcessHostMojoImpl(this));
2158 render_process_host_mojo_->SetWebUIHandle(view_routing_id, handle.Pass()); 2145 render_process_host_mojo_->SetWebUIHandle(view_routing_id, handle.Pass());
2159 } 2146 }
2160 2147
2161 } // namespace content 2148 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698