the Chromium logo

The Chromium Projects

Chromium Print Proxy

[TOC]

Abstract

A cloud print proxy enables cloud printing support for legacy (non-cloud-aware) printers. The proxy acts as a protocol bridge between Google Cloud Print and the native print driver stack on existing PCs. The cloud print proxy runs on Windows (XP SP2 and higher), Mac OS X (10.5 and higher on Intel), and Linux desktops and laptops. The proxy code is built as a part of the Google Chrome browser and is an end-user opt-in feature. It should be noted that in parallel to developing the cloud print proxy for legacy printer support, Google will be working with third parties to help create solutions (based on open/documented standards) for allowing printers to connect directly to Google Cloud Print without the need for a dedicated PC or cloud print proxy on that PC.

Goals

Audience

The cloud print proxy code acts as a reference implementation for implementing the service interfaces provided by Google Cloud Print. This document is intended for Google Chrome browser developers as well as future implementers of the service interfaces (for example, printer vendors).

Design

The Google Chrome browser exposes the cloud print proxy as an end-user opt-in feature in the Options dialog. When the user chooses to enable this feature, the proxy code asks for the user's Google account credentials (if this has not already been entered for another cloud-related feature such as Bookmarks Sync). Upon successful authentication, the client proxy code runs a background thread that performs the following steps:

Cloud services in the Google Chrome browser such as cloud print proxy and Bookmarks Sync share a common framework for signing in to the user's Google account as well as for receiving XMPP-based notifications. Users enter their Google credentials only once to enable one or more of these features.

The cloud print proxy background thread continues to run in a persistent process even when the user closes all visible browser windows. In addition, upon user login, an invisible instance of this process with this background thread running is launched automatically.

As listed in the table below, the cloud print proxy fetches print jobs in PDF format. The format used for the user-selected printer settings (print ticket) on each platform is also listed in this table. On Windows, the proxy code will use a PDF interpreter library to print the PDF. The proxy code leverages platform support on Mac OS X and Linux to print PDF documents.

Data formats

The following table summarizes the data formats used for the current proxy implementations. Note that these formats are specific to the current proxy implementations. Google Cloud Print supports multiple formats and the actual data formats used for cloud-aware printers will likely be different from the ones listed below.

Proxy operating system Data format for document to be printed Data format for printer capabilties Data format for printer defaults Data format for print job settings
Windows PDF XML-based Print Schema. See here for details. XML-based Print Schema. See here for details. XML-based Print Schema. See here for details.
Mac OS PDF PPD. See here for details. PPD. See here for details. PPD. See here for details.
Linux PDF PPD. PPD. PPD.
**Note:** Not enough research has been done on the details of formats on the Mac OS, and our decision might change.

Open issues