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

Side by Side Diff: chrome/renderer/print_web_view_helper.cc

Issue 11469015: Renderer process can allocate anonymous shared memory without help from browser process on Windows. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: rebase Created 8 years 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
« no previous file with comments | « no previous file | chrome/renderer/print_web_view_helper_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/renderer/print_web_view_helper.h" 5 #include "chrome/renderer/print_web_view_helper.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 1380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1391 if (print_pages_params_->params.selection_only) 1391 if (print_pages_params_->params.selection_only)
1392 return CopyAndPrint(frame); 1392 return CopyAndPrint(frame);
1393 return PrintPages(frame, node); 1393 return PrintPages(frame, node);
1394 } 1394 }
1395 1395
1396 #if defined(OS_POSIX) 1396 #if defined(OS_POSIX)
1397 bool PrintWebViewHelper::CopyMetafileDataToSharedMem( 1397 bool PrintWebViewHelper::CopyMetafileDataToSharedMem(
1398 printing::Metafile* metafile, 1398 printing::Metafile* metafile,
1399 base::SharedMemoryHandle* shared_mem_handle) { 1399 base::SharedMemoryHandle* shared_mem_handle) {
1400 uint32 buf_size = metafile->GetDataSize(); 1400 uint32 buf_size = metafile->GetDataSize();
1401 base::SharedMemoryHandle mem_handle = 1401 scoped_ptr<base::SharedMemory> shared_buf(
1402 content::RenderThread::Get()->HostAllocateSharedMemoryBuffer(buf_size); 1402 content::RenderThread::Get()->HostAllocateSharedMemoryBuffer(
1403 if (base::SharedMemory::IsHandleValid(mem_handle)) { 1403 buf_size).release());
1404 base::SharedMemory shared_buf(mem_handle, false); 1404
1405 if (shared_buf.Map(buf_size)) { 1405 if (shared_buf.get()) {
1406 metafile->GetData(shared_buf.memory(), buf_size); 1406 if (shared_buf->Map(buf_size)) {
1407 shared_buf.GiveToProcess(base::GetCurrentProcessHandle(), 1407 metafile->GetData(shared_buf->memory(), buf_size);
1408 shared_mem_handle); 1408 shared_buf->GiveToProcess(base::GetCurrentProcessHandle(),
1409 shared_mem_handle);
1409 return true; 1410 return true;
1410 } 1411 }
1411 } 1412 }
1412 NOTREACHED(); 1413 NOTREACHED();
1413 return false; 1414 return false;
1414 } 1415 }
1415 #endif // defined(OS_POSIX) 1416 #endif // defined(OS_POSIX)
1416 1417
1417 bool PrintWebViewHelper::IsScriptInitiatedPrintTooFrequent( 1418 bool PrintWebViewHelper::IsScriptInitiatedPrintTooFrequent(
1418 WebKit::WebFrame* frame) { 1419 WebKit::WebFrame* frame) {
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
1754 DCHECK(IsRendering()); 1755 DCHECK(IsRendering());
1755 return prep_frame_view_->GetPrintCanvasSize(); 1756 return prep_frame_view_->GetPrintCanvasSize();
1756 } 1757 }
1757 1758
1758 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1759 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1759 prep_frame_view_.reset(); 1760 prep_frame_view_.reset();
1760 metafile_.reset(); 1761 metafile_.reset();
1761 pages_to_render_.clear(); 1762 pages_to_render_.clear();
1762 error_ = PREVIEW_ERROR_NONE; 1763 error_ = PREVIEW_ERROR_NONE;
1763 } 1764 }
OLDNEW
« no previous file with comments | « no previous file | chrome/renderer/print_web_view_helper_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698