Commit a46cb343 authored by thestig@chromium.org's avatar thestig@chromium.org

Split printing utility IPC messages into its own file.

Review URL: https://codereview.chromium.org/323693002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278042 0039d316-1c4b-4281-b951-d872f2087c98
parent cac3776e
......@@ -117,7 +117,7 @@ base::LazyInstance<chrome::ChromeContentBrowserClient>
#if !defined(CHROME_MULTIPLE_DLL_BROWSER)
base::LazyInstance<ChromeContentRendererClient>
g_chrome_content_renderer_client = LAZY_INSTANCE_INITIALIZER;
base::LazyInstance<chrome::ChromeContentUtilityClient>
base::LazyInstance<ChromeContentUtilityClient>
g_chrome_content_utility_client = LAZY_INSTANCE_INITIALIZER;
base::LazyInstance<chrome::ChromeContentPluginClient>
g_chrome_content_plugin_client = LAZY_INSTANCE_INITIALIZER;
......@@ -761,7 +761,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
#if !defined(CHROME_MULTIPLE_DLL_BROWSER)
if (process_type == switches::kUtilityProcess ||
process_type == switches::kZygoteProcess) {
chrome::ChromeContentUtilityClient::PreSandboxStartup();
ChromeContentUtilityClient::PreSandboxStartup();
}
#endif
}
......
......@@ -11,10 +11,13 @@
#include "base/files/scoped_temp_dir.h"
#include "base/logging.h"
#include "chrome/common/chrome_utility_messages.h"
#include "chrome/common/chrome_utility_printing_messages.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/child_process_data.h"
#include "content/public/browser/utility_process_host.h"
#include "content/public/browser/utility_process_host_client.h"
#include "printing/pdf_render_settings.h"
#include "printing/pwg_raster_settings.h"
namespace local_discovery {
......
......@@ -11,10 +11,13 @@
#include "base/files/scoped_temp_dir.h"
#include "base/logging.h"
#include "chrome/common/chrome_utility_messages.h"
#include "chrome/common/chrome_utility_printing_messages.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/child_process_data.h"
#include "content/public/browser/utility_process_host.h"
#include "content/public/browser/utility_process_host_client.h"
#include "printing/page_range.h"
#include "printing/pdf_render_settings.h"
namespace printing {
......
......@@ -76,6 +76,7 @@
'../crypto/crypto.gyp:crypto',
'../google_apis/google_apis.gyp:google_apis',
'../jingle/jingle.gyp:notifier',
'../printing/printing.gyp:printing',
'../skia/skia.gyp:skia',
'../sql/sql.gyp:sql',
'../sync/sync.gyp:sync',
......@@ -2687,11 +2688,6 @@
'xcode_settings': {'OTHER_LDFLAGS': ['-weak_framework CoreImage']},
},
}],
['enable_printing!=0', {
'dependencies': [
'../printing/printing.gyp:printing',
],
}],
['OS=="win" or OS=="mac"', {
'sources': [
'browser/media_galleries/fileapi/iapps_data_provider.cc',
......@@ -3135,28 +3131,51 @@
],
}],
['enable_printing==0', {
'dependencies!': [
'../printing/printing.gyp:printing',
],
'sources/': [
['exclude', '^browser/printing/'],
['exclude', '^browser/task_manager/printing_information.cc'],
],
}],
['enable_printing==1', {
'sources/': [
['exclude', '^browser/printing/print_view_manager_basic.*'],
'sources!': [
'browser/printing/print_view_manager_basic.cc',
'browser/printing/print_view_manager_basic.h',
],
}, {
'sources!': [
'browser/local_discovery/privet_http_impl.cc',
'browser/local_discovery/privet_http_impl.h',
'browser/local_discovery/pwg_raster_converter.cc',
'browser/local_discovery/pwg_raster_converter.h',
],
}],
['enable_printing==2', {
'sources/': [
['exclude', '^browser/printing/background_printing_manager.*'],
['exclude', '^browser/printing/cloud_print/'],
['exclude', '^browser/printing/print_view_manager.cc'],
['exclude', '^browser/printing/print_error_dialog.*'],
['exclude', '^browser/printing/print_preview.*'],
['exclude', '^browser/printing/print_view_manager.cc'],
['exclude', '^browser/printing/print_view_manager.h'],
['exclude', '^browser/printing/printer_manager_dialog.*'],
['exclude', '^browser/service_process/'],
['exclude', '^browser/task_manager/printing_information.cc'],
],
'sources!': [
'browser/printing/background_printing_manager.cc',
'browser/printing/background_printing_manager.h',
'browser/printing/print_view_manager.cc',
'browser/printing/print_error_dialog.cc',
'browser/printing/print_error_dialog.h',
'browser/printing/print_preview.cc',
'browser/printing/print_preview.h',
'browser/printing/print_view_manager.cc',
'browser/printing/print_view_manager.h',
'browser/printing/printer_manager_dialog.cc',
'browser/printing/printer_manager_dialog.h',
'browser/task_manager/printing_information.cc',
],
}],
['OS!="win" or win_pdf_metafile_for_printing!=1', {
'sources!': [
'browser/printing/pdf_to_emf_converter.cc',
'browser/printing/pdf_to_emf_converter.h',
],
}],
['enable_captive_portal_detection!=1', {
......
......@@ -349,7 +349,7 @@
['exclude', '^renderer/printing/']
]
}],
['win_pdf_metafile_for_printing', {
['win_pdf_metafile_for_printing==1', {
'sources': [
'renderer/printing/print_web_view_helper_pdf_win.cc',
],
......
......@@ -2286,6 +2286,9 @@
['exclude', '^browser/ui/webui/print_preview/'],
['exclude', '^service/'],
],
'sources!': [
'browser/local_discovery/privet_http_unittest.cc',
],
}],
['enable_captive_portal_detection!=1', {
'sources/': [
......
......@@ -72,6 +72,8 @@
'utility/importer/nss_decryptor_win.h',
'utility/importer/safari_importer.h',
'utility/importer/safari_importer.mm',
'utility/local_discovery/service_discovery_message_handler.cc',
'utility/local_discovery/service_discovery_message_handler.h',
'utility/media_galleries/image_metadata_extractor.cc',
'utility/media_galleries/image_metadata_extractor.h',
'utility/media_galleries/ipc_data_source.cc',
......@@ -80,6 +82,8 @@
'utility/media_galleries/itunes_pref_parser_win.h',
'utility/media_galleries/media_metadata_parser.cc',
'utility/media_galleries/media_metadata_parser.h',
'utility/printing_handler.cc',
'utility/printing_handler.h',
'utility/profile_import_handler.cc',
'utility/profile_import_handler.h',
'utility/utility_message_handler.h',
......@@ -134,17 +138,23 @@
['exclude', '^utility/profile_import_handler\.cc'],
],
}],
['enable_mdns == 1', {
'sources': [
'utility/local_discovery/service_discovery_message_handler.cc',
'utility/local_discovery/service_discovery_message_handler.h',
]
}],
['OS!="win"', {
'sources': [
'utility/image_writer/image_writer_stub.cc',
]
}],
['enable_printing!=1', {
'sources!': [
'utility/printing_handler.cc',
'utility/printing_handler.h',
]
}],
['enable_mdns==0', {
'sources!': [
'utility/local_discovery/service_discovery_message_handler.cc',
'utility/local_discovery/service_discovery_message_handler.h',
]
}],
],
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
......
......@@ -21,10 +21,6 @@
#include "chrome/common/safe_browsing/zip_analyzer.h"
#include "ipc/ipc_message_macros.h"
#include "ipc/ipc_platform_file.h"
#include "printing/backend/print_backend.h"
#include "printing/page_range.h"
#include "printing/pdf_render_settings.h"
#include "printing/pwg_raster_settings.h"
#include "third_party/skia/include/core/SkBitmap.h"
#define IPC_MESSAGE_START ChromeUtilityMsgStart
......@@ -36,53 +32,6 @@ typedef std::vector<Tuple2<SkBitmap, base::FilePath> > DecodedImages;
#endif // CHROME_COMMON_CHROME_UTILITY_MESSAGES_H_
IPC_STRUCT_TRAITS_BEGIN(printing::PageRange)
IPC_STRUCT_TRAITS_MEMBER(from)
IPC_STRUCT_TRAITS_MEMBER(to)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(printing::PrinterCapsAndDefaults)
IPC_STRUCT_TRAITS_MEMBER(printer_capabilities)
IPC_STRUCT_TRAITS_MEMBER(caps_mime_type)
IPC_STRUCT_TRAITS_MEMBER(printer_defaults)
IPC_STRUCT_TRAITS_MEMBER(defaults_mime_type)
IPC_STRUCT_TRAITS_END()
IPC_ENUM_TRAITS_MAX_VALUE(printing::ColorModel, printing::PROCESSCOLORMODEL_RGB)
IPC_ENUM_TRAITS_MIN_MAX_VALUE(printing::DuplexMode,
printing::UNKNOWN_DUPLEX_MODE,
printing::SHORT_EDGE)
IPC_STRUCT_TRAITS_BEGIN(printing::PrinterSemanticCapsAndDefaults::Paper)
IPC_STRUCT_TRAITS_MEMBER(display_name)
IPC_STRUCT_TRAITS_MEMBER(vendor_id)
IPC_STRUCT_TRAITS_MEMBER(size_um)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(printing::PrinterSemanticCapsAndDefaults)
IPC_STRUCT_TRAITS_MEMBER(collate_capable)
IPC_STRUCT_TRAITS_MEMBER(collate_default)
IPC_STRUCT_TRAITS_MEMBER(copies_capable)
IPC_STRUCT_TRAITS_MEMBER(duplex_capable)
IPC_STRUCT_TRAITS_MEMBER(duplex_default)
IPC_STRUCT_TRAITS_MEMBER(color_changeable)
IPC_STRUCT_TRAITS_MEMBER(color_default)
IPC_STRUCT_TRAITS_MEMBER(color_model)
IPC_STRUCT_TRAITS_MEMBER(bw_model)
IPC_STRUCT_TRAITS_MEMBER(papers)
IPC_STRUCT_TRAITS_MEMBER(default_paper)
IPC_STRUCT_TRAITS_MEMBER(dpis)
IPC_STRUCT_TRAITS_MEMBER(default_dpi)
IPC_STRUCT_TRAITS_END()
IPC_ENUM_TRAITS(printing::PwgRasterTransformType);
IPC_STRUCT_TRAITS_BEGIN(printing::PwgRasterSettings)
IPC_STRUCT_TRAITS_MEMBER(odd_page_transform)
IPC_STRUCT_TRAITS_MEMBER(rotate_all_pages)
IPC_STRUCT_TRAITS_MEMBER(reverse_page_order)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(UpdateManifest::Result)
IPC_STRUCT_TRAITS_MEMBER(extension_id)
IPC_STRUCT_TRAITS_MEMBER(version)
......@@ -183,23 +132,6 @@ IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_DecodeImage,
IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_DecodeImageBase64,
std::string) // base64 encoded image contents
// Tell the utility process to render the given PDF into a metafile.
// The metafile path will have ".%d" inserted where the %d is the page number.
// If no page range is specified, all pages will be converted.
IPC_MESSAGE_CONTROL4(ChromeUtilityMsg_RenderPDFPagesToMetafiles,
IPC::PlatformFileForTransit, // PDF file
base::FilePath, // Base location for output metafile
printing::PdfRenderSettings, // PDF render settings
std::vector<printing::PageRange>)
// Tell the utility process to render the given PDF into a PWGRaster.
IPC_MESSAGE_CONTROL4(ChromeUtilityMsg_RenderPDFPagesToPWGRaster,
IPC::PlatformFileForTransit, /* Input PDF file */
printing::PdfRenderSettings, /* PDF render settings */
// PWG transform settings.
printing::PwgRasterSettings,
IPC::PlatformFileForTransit /* Output PWG file */)
// Tell the utility process to decode the given JPEG image data with a robust
// libjpeg codec.
IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_RobustJPEGDecodeImage,
......@@ -209,20 +141,6 @@ IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_RobustJPEGDecodeImage,
IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_ParseJSON,
std::string /* JSON to parse */)
// Tells the utility process to get capabilities and defaults for the specified
// printer. Used on Windows to isolate the service process from printer driver
// crashes by executing this in a separate process. This does not run in a
// sandbox.
IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_GetPrinterCapsAndDefaults,
std::string /* printer name */)
// Tells the utility process to get capabilities and defaults for the specified
// printer. Used on Windows to isolate the service process from printer driver
// crashes by executing this in a separate process. This does not run in a
// sandbox. Returns result as printing::PrinterSemanticCapsAndDefaults.
IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_GetPrinterSemanticCapsAndDefaults,
std::string /* printer name */)
// Tell the utility process to patch the given |input_file| using |patch_file|
// and place the output in |output_file|. The patch should use the bsdiff
// algorithm (Courgette's version).
......@@ -372,20 +290,6 @@ IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_DecodeImage_Succeeded,
// Reply when an error occurred decoding the image.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_DecodeImage_Failed)
// Reply when the utility process has succeeded in rendering the PDF.
IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_Succeeded,
std::vector<printing::PageRange>, // Pages rendered
double) // Scale factor
// Reply when an error occurred rendering the PDF.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_RenderPDFPagesToMetafile_Failed)
// Reply when the utility process has succeeded in rendering the PDF to PWG.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Succeeded)
// Reply when an error occurred rendering the PDF to PWG.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Failed)
// Reply when the utility process successfully parsed a JSON string.
//
// WARNING: The result can be of any Value subclass type, but we can't easily
......@@ -399,21 +303,6 @@ IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_ParseJSON_Succeeded,
IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_ParseJSON_Failed,
std::string /* error message, if any*/)
#if defined(ENABLE_FULL_PRINTING)
// Reply when the utility process has succeeded in obtaining the printer
// capabilities and defaults.
IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_GetPrinterCapsAndDefaults_Succeeded,
std::string /* printer name */,
printing::PrinterCapsAndDefaults)
// Reply when the utility process has succeeded in obtaining the printer
// semantic capabilities and defaults.
IPC_MESSAGE_CONTROL2(
ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Succeeded,
std::string /* printer name */,
printing::PrinterSemanticCapsAndDefaults)
#endif
// Reply when a file has been patched successfully.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_PatchFile_Succeeded)
......@@ -421,17 +310,6 @@ IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_PatchFile_Succeeded)
IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_PatchFile_Failed,
int /* error code */)
// Reply when the utility process has failed to obtain the printer
// capabilities and defaults.
IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_GetPrinterCapsAndDefaults_Failed,
std::string /* printer name */)
// Reply when the utility process has failed to obtain the printer
// semantic capabilities and defaults.
IPC_MESSAGE_CONTROL1(
ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed,
std::string /* printer name */)
#if defined(OS_CHROMEOS)
// Reply when the utility process has succeeded in creating the zip file.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_CreateZipFile_Succeeded)
......
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Multiply-included message file, so no include guard.
#include <string>
#include <vector>
#include "ipc/ipc_message_macros.h"
#include "ipc/ipc_platform_file.h"
#include "printing/backend/print_backend.h"
#include "printing/page_range.h"
#include "printing/pdf_render_settings.h"
#include "printing/pwg_raster_settings.h"
#if !defined(ENABLE_FULL_PRINTING)
#error "Full printing must be enabled"
#endif
#define IPC_MESSAGE_START UtilityPrintingMsgStart
IPC_STRUCT_TRAITS_BEGIN(printing::PageRange)
IPC_STRUCT_TRAITS_MEMBER(from)
IPC_STRUCT_TRAITS_MEMBER(to)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(printing::PrinterCapsAndDefaults)
IPC_STRUCT_TRAITS_MEMBER(printer_capabilities)
IPC_STRUCT_TRAITS_MEMBER(caps_mime_type)
IPC_STRUCT_TRAITS_MEMBER(printer_defaults)
IPC_STRUCT_TRAITS_MEMBER(defaults_mime_type)
IPC_STRUCT_TRAITS_END()
IPC_ENUM_TRAITS_MAX_VALUE(printing::ColorModel, printing::PROCESSCOLORMODEL_RGB)
IPC_ENUM_TRAITS_MIN_MAX_VALUE(printing::DuplexMode,
printing::UNKNOWN_DUPLEX_MODE,
printing::SHORT_EDGE)
IPC_STRUCT_TRAITS_BEGIN(printing::PrinterSemanticCapsAndDefaults::Paper)
IPC_STRUCT_TRAITS_MEMBER(display_name)
IPC_STRUCT_TRAITS_MEMBER(vendor_id)
IPC_STRUCT_TRAITS_MEMBER(size_um)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(printing::PrinterSemanticCapsAndDefaults)
IPC_STRUCT_TRAITS_MEMBER(collate_capable)
IPC_STRUCT_TRAITS_MEMBER(collate_default)
IPC_STRUCT_TRAITS_MEMBER(copies_capable)
IPC_STRUCT_TRAITS_MEMBER(duplex_capable)
IPC_STRUCT_TRAITS_MEMBER(duplex_default)
IPC_STRUCT_TRAITS_MEMBER(color_changeable)
IPC_STRUCT_TRAITS_MEMBER(color_default)
IPC_STRUCT_TRAITS_MEMBER(color_model)
IPC_STRUCT_TRAITS_MEMBER(bw_model)
IPC_STRUCT_TRAITS_MEMBER(papers)
IPC_STRUCT_TRAITS_MEMBER(default_paper)
IPC_STRUCT_TRAITS_MEMBER(dpis)
IPC_STRUCT_TRAITS_MEMBER(default_dpi)
IPC_STRUCT_TRAITS_END()
IPC_ENUM_TRAITS(printing::PwgRasterTransformType);
IPC_STRUCT_TRAITS_BEGIN(printing::PwgRasterSettings)
IPC_STRUCT_TRAITS_MEMBER(odd_page_transform)
IPC_STRUCT_TRAITS_MEMBER(rotate_all_pages)
IPC_STRUCT_TRAITS_MEMBER(reverse_page_order)
IPC_STRUCT_TRAITS_END()
//------------------------------------------------------------------------------
// Utility process messages:
// These are messages from the browser to the utility process.
// Tell the utility process to render the given PDF into a PWGRaster.
IPC_MESSAGE_CONTROL4(ChromeUtilityMsg_RenderPDFPagesToPWGRaster,
IPC::PlatformFileForTransit, /* Input PDF file */
printing::PdfRenderSettings, /* PDF render settings */
// PWG transform settings.
printing::PwgRasterSettings,
IPC::PlatformFileForTransit /* Output PWG file */)
// Tells the utility process to get capabilities and defaults for the specified
// printer. Used on Windows to isolate the service process from printer driver
// crashes by executing this in a separate process. This does not run in a
// sandbox.
IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_GetPrinterCapsAndDefaults,
std::string /* printer name */)
// Tells the utility process to get capabilities and defaults for the specified
// printer. Used on Windows to isolate the service process from printer driver
// crashes by executing this in a separate process. This does not run in a
// sandbox. Returns result as printing::PrinterSemanticCapsAndDefaults.
IPC_MESSAGE_CONTROL1(ChromeUtilityMsg_GetPrinterSemanticCapsAndDefaults,
std::string /* printer name */)
#if defined(WIN_PDF_METAFILE_FOR_PRINTING)
// Tell the utility process to render the given PDF into a metafile.
// The metafile path will have ".%d" inserted where the %d is the page number.
// If no page range is specified, all pages will be converted.
IPC_MESSAGE_CONTROL4(ChromeUtilityMsg_RenderPDFPagesToMetafiles,
IPC::PlatformFileForTransit, // PDF file
base::FilePath, // Base location for output metafile
printing::PdfRenderSettings, // PDF render settings
std::vector<printing::PageRange>)
#endif
//------------------------------------------------------------------------------
// Utility process host messages:
// These are messages from the utility process to the browser.
// Reply when the utility process has succeeded in rendering the PDF to PWG.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Succeeded)
// Reply when an error occurred rendering the PDF to PWG.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_RenderPDFPagesToPWGRaster_Failed)
// Reply when the utility process has succeeded in obtaining the printer
// capabilities and defaults.
IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_GetPrinterCapsAndDefaults_Succeeded,
std::string /* printer name */,
printing::PrinterCapsAndDefaults)
// Reply when the utility process has succeeded in obtaining the printer
// semantic capabilities and defaults.
IPC_MESSAGE_CONTROL2(
ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Succeeded,
std::string /* printer name */,
printing::PrinterSemanticCapsAndDefaults)
// Reply when the utility process has failed to obtain the printer
// capabilities and defaults.
IPC_MESSAGE_CONTROL1(ChromeUtilityHostMsg_GetPrinterCapsAndDefaults_Failed,
std::string /* printer name */)
// Reply when the utility process has failed to obtain the printer
// semantic capabilities and defaults.
IPC_MESSAGE_CONTROL1(
ChromeUtilityHostMsg_GetPrinterSemanticCapsAndDefaults_Failed,
std::string /* printer name */)
#if defined(WIN_PDF_METAFILE_FOR_PRINTING)
// Reply when the utility process has succeeded in rendering the PDF.
IPC_MESSAGE_CONTROL2(ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_Succeeded,
std::vector<printing::PageRange>, // Pages rendered
double) // Scale factor
// Reply when an error occurred rendering the PDF.
IPC_MESSAGE_CONTROL0(ChromeUtilityHostMsg_RenderPDFPagesToMetafile_Failed)
#endif
......@@ -20,6 +20,10 @@
#include "chrome/common/local_discovery/local_discovery_messages.h"
#endif
#if defined(ENABLE_FULL_PRINTING)
#include "chrome/common/chrome_utility_printing_messages.h"
#endif
#if defined(ENABLE_PRINTING)
#include "chrome/common/print_messages.h"
#endif
......
......@@ -15,7 +15,7 @@
#include "base/process/kill.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/chrome_utility_messages.h"
#include "chrome/common/chrome_utility_printing_messages.h"
#include "content/public/common/child_process_host.h"
#include "content/public/common/result_codes.h"
#include "content/public/common/sandbox_init.h"
......@@ -230,11 +230,13 @@ void ServiceUtilityProcessHost::OnChildDisconnected() {
bool ServiceUtilityProcessHost::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(ServiceUtilityProcessHost, message)
#if defined(WIN_PDF_METAFILE_FOR_PRINTING)
IPC_MESSAGE_HANDLER(
ChromeUtilityHostMsg_RenderPDFPagesToMetafiles_Succeeded,
OnRenderPDFPagesToMetafilesSucceeded)
IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_RenderPDFPagesToMetafile_Failed,
OnRenderPDFPagesToMetafileFailed)
#endif
IPC_MESSAGE_HANDLER(
ChromeUtilityHostMsg_GetPrinterCapsAndDefaults_Succeeded,
OnGetPrinterCapsAndDefaultsSucceeded)
......@@ -255,6 +257,7 @@ base::ProcessHandle ServiceUtilityProcessHost::GetHandle() const {
return handle_;
}
#if defined(WIN_PDF_METAFILE_FOR_PRINTING)
void ServiceUtilityProcessHost::OnRenderPDFPagesToMetafilesSucceeded(
const std::vector<printing::PageRange>& page_ranges,
double scale_factor) {
......@@ -298,6 +301,7 @@ void ServiceUtilityProcessHost::OnRenderPDFPagesToMetafileFailed() {
FROM_HERE,
base::Bind(&Client::OnRenderPDFPagesToMetafileFailed, client_.get()));
}
#endif // defined(WIN_PDF_METAFILE_FOR_PRINTING)
void ServiceUtilityProcessHost::OnGetPrinterCapsAndDefaultsSucceeded(
const std::string& printer_name,
......
......@@ -49,7 +49,7 @@ class ChromeUnitTestSuiteInitializer : public testing::EmptyTestEventListener {
#if !defined(OS_IOS)
browser_content_client_.reset(new chrome::ChromeContentBrowserClient());
content::SetBrowserClientForTesting(browser_content_client_.get());
utility_content_client_.reset(new chrome::ChromeContentUtilityClient());
utility_content_client_.reset(new ChromeContentUtilityClient());
content::SetUtilityClientForTesting(utility_content_client_.get());
#endif
......@@ -74,7 +74,7 @@ class ChromeUnitTestSuiteInitializer : public testing::EmptyTestEventListener {
// TODO(ios): Bring this back once ChromeContentBrowserClient is building.
#if !defined(OS_IOS)
scoped_ptr<chrome::ChromeContentBrowserClient> browser_content_client_;
scoped_ptr<chrome::ChromeContentUtilityClient> utility_content_client_;
scoped_ptr<ChromeContentUtilityClient> utility_content_client_;
#endif
DISALLOW_COPY_AND_ASSIGN(ChromeUnitTestSuiteInitializer);
......
......@@ -6,8 +6,6 @@
#define CHROME_UTILITY_CHROME_CONTENT_UTILITY_CLIENT_H_
#include "base/compiler_specific.h"
#include "base/files/file.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
#include "chrome/common/media_galleries/picasa_types.h"
#include "content/public/utility/content_utility_client.h"
......@@ -18,22 +16,10 @@ class FilePath;
struct FileDescriptor;
}
namespace gfx {
class Rect;
}
namespace metadata {
class MediaMetadataParser;
}
namespace printing {
class PdfRenderSettings;
struct PwgRasterSettings;
struct PageRange;
}
namespace chrome {
class UtilityMessageHandler;
class ChromeContentUtilityClient : public content::ContentUtilityClient {
......@@ -55,16 +41,6 @@ class ChromeContentUtilityClient : public content::ContentUtilityClient {
void OnParseUpdateManifest(const std::string& xml);
void OnDecodeImage(const std::vector<unsigned char>& encoded_data);
void OnDecodeImageBase64(const std::string& encoded_data);
void OnRenderPDFPagesToMetafile(
IPC::PlatformFileForTransit pdf_transit,
const base::FilePath& metafile_path,
const printing::PdfRenderSettings& settings,
const std::vector<printing::PageRange>& page_ranges);
void OnRenderPDFPagesToPWGRaster(
IPC::PlatformFileForTransit pdf_transit,
const printing::PdfRenderSettings& settings,
const printing::PwgRasterSettings& bitmap_settings,
IPC::PlatformFileForTransit bitmap_transit);
void OnRobustJPEGDecodeImage(
const std::vector<unsigned char>& encoded_data);
void OnParseJSON(const std::string& json);
......@@ -75,29 +51,6 @@ class ChromeContentUtilityClient : public content::ContentUtilityClient {
const base::FileDescriptor& dest_fd);
#endif // defined(OS_CHROMEOS)
#if defined(OS_WIN)
// Helper method for Windows.
// |highest_rendered_page_number| is set to -1 on failure to render any page.
// |page_ranges| is both input and output. If supplied as input, only the
// specified pages will be rendered. If an empty vector is supplied it will
// be filled with a range of all pages that were rendered.
bool RenderPDFToWinMetafile(
base::File pdf_file,
const base::FilePath& metafile_path,
const printing::PdfRenderSettings& settings,
std::vector<printing::PageRange>* page_ranges,
int* highest_rendered_page_number,
double* scale_factor);
#endif // defined(OS_WIN)
bool RenderPDFPagesToPWGRaster(
base::File pdf_file,
const printing::PdfRenderSettings& settings,
const printing::PwgRasterSettings& bitmap_settings,
base::File bitmap_file);
void OnGetPrinterCapsAndDefaults(const std::string& printer_name);
void OnGetPrinterSemanticCapsAndDefaults(const std::string& printer_name);
void OnPatchFileBsdiff(const base::FilePath& input_file,
const base::FilePath& patch_file,
const base::FilePath& output_file);
......@@ -151,6 +104,4 @@ class ChromeContentUtilityClient : public content::ContentUtilityClient {
DISALLOW_COPY_AND_ASSIGN(ChromeContentUtilityClient);
};
} // namespace chrome
#endif // CHROME_UTILITY_CHROME_CONTENT_UTILITY_CLIENT_H_
......@@ -5,8 +5,6 @@
#include "chrome/utility/chrome_content_utility_ipc_whitelist.h"
#include "chrome/common/chrome_utility_messages.h"
namespace chrome {
const uint32 kMessageWhitelist[] = {
#ifdef OS_WIN
ChromeUtilityHostMsg_GetAndEncryptWiFiCredentials::ID,
......@@ -16,5 +14,3 @@ const uint32 kMessageWhitelist[] = {
ChromeUtilityMsg_ImageWriter_Verify::ID};
const size_t kMessageWhitelistSize = arraysize(kMessageWhitelist);
} // namespace chrome
......@@ -7,8 +7,6 @@
#include "base/basictypes.h"
namespace chrome {
// This array contains the list of IPC messages that the utility process will
// accept when running with elevated privileges. When new messages need to run
// with elevated privileges, add them here and be sure to add a security
......@@ -16,6 +14,4 @@ namespace chrome {
extern const uint32 kMessageWhitelist[];
extern const size_t kMessageWhitelistSize;
} // namespace chrome
#endif // CHROME_UTILITY_CHROME_CONTENT_UTILITY_IPC_WHITELIST_H_
......@@ -18,8 +18,8 @@ class FilePath;
namespace image_writer {
// A handler for messages related to writing images. This class is added as a
// handler in chrome::ChromeContentUtilityClient.
class ImageWriterHandler : public chrome::UtilityMessageHandler {
// handler in ChromeContentUtilityClient.
class ImageWriterHandler : public UtilityMessageHandler {
public:
ImageWriterHandler();
virtual ~ImageWriterHandler();
......
......@@ -33,7 +33,7 @@ namespace local_discovery {
class ServiceDiscoveryClient;
// Handles messages related to local discovery inside utility process.
class ServiceDiscoveryMessageHandler : public chrome::UtilityMessageHandler {
class ServiceDiscoveryMessageHandler : public UtilityMessageHandler {
public:
ServiceDiscoveryMessageHandler();
virtual ~ServiceDiscoveryMessageHandler();
......
......@@ -24,7 +24,7 @@ namespace metadata {
// as a DataSource on a different thread. The utility thread must not be blocked
// for read operations to succeed.
class IPCDataSource: public media::DataSource,
public chrome::UtilityMessageHandler {
public UtilityMessageHandler {
public:
// May only be called on the utility thread.
explicit IPCDataSource(int64 total_size);
......
This diff is collapsed.
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_UTILITY_PRINTING_HANDLER_H_
#define CHROME_UTILITY_PRINTING_HANDLER_H_
#include "base/compiler_specific.h"
#include "base/macros.h"
#include "chrome/utility/utility_message_handler.h"
#include "ipc/ipc_platform_file.h"
#if !defined(ENABLE_FULL_PRINTING)
#error "Full printing must be enabled"
#endif
namespace printing {
class PdfRenderSettings;
struct PwgRasterSettings;
struct PageRange;
}
// Dispatches IPCs for printing.
class PrintingHandler : public UtilityMessageHandler {
public:
PrintingHandler();
virtual ~PrintingHandler();
static void PreSandboxStartup();
// IPC::Listener:
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
private:
// IPC message handlers.
#if defined(WIN_PDF_METAFILE_FOR_PRINTING)
void OnRenderPDFPagesToMetafile(
IPC::PlatformFileForTransit pdf_transit,
const base::FilePath& metafile_path,
const printing::PdfRenderSettings& settings,
const std::vector<printing::PageRange>& page_ranges);
#endif
void OnRenderPDFPagesToPWGRaster(
IPC::PlatformFileForTransit pdf_transit,
const printing::PdfRenderSettings& settings,
const printing::PwgRasterSettings& bitmap_settings,
IPC::PlatformFileForTransit bitmap_transit);
#if defined(WIN_PDF_METAFILE_FOR_PRINTING)
// Helper method for Windows.
// |highest_rendered_page_number| is set to -1 on failure to render any page.
// |page_ranges| is both input and output. If supplied as input, only the
// specified pages will be rendered. If an empty vector is supplied it will
// be filled with a range of all pages that were rendered.
bool RenderPDFToWinMetafile(
base::File pdf_file,
const base::FilePath& metafile_path,
const printing::PdfRenderSettings& settings,
std::vector<printing::PageRange>* page_ranges,
int* highest_rendered_page_number,
double* scale_factor);
#endif
bool RenderPDFPagesToPWGRaster(
base::File pdf_file,
const printing::PdfRenderSettings& settings,
const printing::PwgRasterSettings& bitmap_settings,
base::File bitmap_file);
void OnGetPrinterCapsAndDefaults(const std::string& printer_name);
void OnGetPrinterSemanticCapsAndDefaults(const std::string& printer_name);
DISALLOW_COPY_AND_ASSIGN(PrintingHandler);
};
#endif // CHROME_UTILITY_PRINTING_HANDLER_H_
......@@ -14,7 +14,13 @@
#include "chrome/utility/importer/importer_creator.h"
#include "content/public/utility/utility_thread.h"
namespace chrome {
namespace {
bool Send(IPC::Message* message) {
return content::UtilityThread::Get()->Send(message);
}
} // namespace
ProfileImportHandler::ProfileImportHandler() : items_to_import_(0) {}
......@@ -83,10 +89,3 @@ void ProfileImportHandler::ImporterCleanup() {
import_thread_.reset();
content::UtilityThread::Get()->ReleaseProcessIfNeeded();
}
// static
bool ProfileImportHandler::Send(IPC::Message* message) {
return content::UtilityThread::Get()->Send(message);
}
} // namespace chrome
......@@ -23,8 +23,6 @@ namespace importer {
struct SourceProfile;
}
namespace chrome {
// Dispatches IPCs for out of process profile import.
class ProfileImportHandler : public UtilityMessageHandler {
public:
......@@ -45,8 +43,6 @@ class ProfileImportHandler : public UtilityMessageHandler {
// The following are used with out of process profile import:
void ImporterCleanup();
static bool Send(IPC::Message* message);
// Thread that importer runs on, while ProfileImportThread handles messages
// from the browser process.
scoped_ptr<base::Thread> import_thread_;
......@@ -62,6 +58,4 @@ class ProfileImportHandler : public UtilityMessageHandler {
scoped_refptr<Importer> importer_;
};
} // namespace chrome
#endif // CHROME_UTILITY_PROFILE_IMPORT_HANDLER_H_
......@@ -9,8 +9,6 @@ namespace IPC {
class Message;
}
namespace chrome {
class UtilityMessageHandler {
public:
virtual ~UtilityMessageHandler() {}
......@@ -20,7 +18,5 @@ class UtilityMessageHandler {
virtual bool OnMessageReceived(const IPC::Message& message) = 0;
};
} // namespace chrome
#endif // CHROME_UTILITY_UTILITY_MESSAGE_HANDLER_H_
......@@ -105,6 +105,7 @@ enum IPCMessageStart {
PushMessagingMsgStart,
GinJavaBridgeMsgStart,
BatteryStatusMsgStart,
UtilityPrintingMsgStart,
LastIPCMsgStart // Must come last.
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment