Google Cloud Print Integration

Registered by Till Kamppeter

Google Cloud Print allows printing on your local printers from whereever you can send jobs to the Google Cloud Print service, especially from mobile devices, like smartphones, tablets, and computers running Google Chrome OS.

For Cloud Print support under Ubuntu we need to consider both server and client side, as Ubuntu can be used on a desktop or server machine with a printer set up or also on a mobile device from where we should be able to print.

Server:

Google itself only offers to either use HP ePrint printers (network printers which can receive print jobs by e-mail) or to use the Chromium browser as server to share the local printers to Cloud Print. The latter is officially only supported under Windows and Mac OS X, but under Linux it can be enabled through a secret "Cheat Mode", entering the URL "about:Flags" and enabling the “Cloud Print Proxy” entry, then clicking the menu button at the upper right and selecting "Settings", opening the advanced settings and there will be a "Google Cloud Print" section near the end of the list.

So these methods are awkward, running a full-featured browser only to make available ones printers or to have to use a printer out of small choice of models.

There is also a "cloudprint" package in Universe which is a small lightweight command line tool to replace the Cloud Print functionality of Chromium, but usual desktop users are not aware of that.

What we would need is something like a capplet in GNOME Control Center to (de)activate and configure Google Cloud Print or an appropriate entry in the Google accounts section of the "Online Accounts" part of the System Settings. This GUI elements need to be designed and it also needs to be decided which user daemon will be used to enable Cloud Print, the one of Chromium, the "cloudprint" package. some already existing user daemon of GNOME with Cloud print patched in, or perhaps a completely new user daemon. The protocol is know and can most easily be found in the source code of cloudprint.

Client:

For using Cloud Print as a client applications must be able to send jobs into a queue in the cloud. Such queues are user-specific and not system-wide as they depend on the Google account of the user and not on anything local. Therefore the Cloud Print queues cannot get made available through CUPS queues without major changes on the CUPS architecture. Instead we should implement the Cloud print client access in the print dialogs (GTK, Qt, LibreOffice, ... how was it with the Common Print Dialog?), for example as a backend for the GTK print dialog.

Blueprint information

Status:
Not started
Approver:
Sebastien Bacher
Priority:
Low
Drafter:
Till Kamppeter
Direction:
Needs approval
Assignee:
Till Kamppeter
Definition:
Pending Approval
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Whiteboard

seb128, 2013-03-11: dropping raring target, it's not going to happen this cycle

UDS-r:
http://summit.ubuntu.com/uds-r/meeting/21318/desktop-r-google-cloud-print-integration/
* cloud print will be important to mobile
* use `cloudprint` to share local printers via Google's cloudprint
* a small daemon integrated with GOA / UOA is needed
  * only needs to run when printers are connected
  * should be opt-in anyway
* client side:
  * should be a gtk print backend (CUPS doesn't support per-user print queues)
Documentation for the cloud print protocol -- https://developers.google.com/cloud-print/docs/proxyinterfaces

tkamppeter, 2011-11-11: In the session we decided on using the "cloudprint" package as user daemon and add a switch for Google Cloud Print to the Google account in the Online Accounts section of GNOME Control Center.

pitti, 2011-11-11: This seems like a rather large change to precise. Can you please talk to the security team first that they can give this a thorough review? Did you already discuss that with GNOME, are they ok with taking this extra switch and the control-center integration?

rodrigo-moya, 2011-11-11: We probably don't need cloudprint for more than a reference implementation for functionality to be included in gnome-settings-daemon.

tkamppeter, 2011-11-11: We let the cloudprint MIR with the security review request open for now to check whether that method is secure, then we use this method in g-s-d.

tkamppeter, 2011-11-11: Retargeted cloudprint WI.

pitti, 2011-11-16: Retargetted at Q. Of course work can start in precise, but we don't count on it to land in precise.

tkamppeter, 2011-12-12: After a phone meeting with David Barth proposing to try a subset for Precise (only server, which means user prints from mobile device and Ubuntu box at home/office picks job from Google and prints it), as work amount is rather low. This would require

- the inclusion of a user dameon functionality for cloudprint
- modification of gnome-control-center to connect to the internal account part, to add a switch to turn on and off the functionality

Client (Ubuntu user prints into the Google cloud) is too complicated to get it into Precise, it would need user-specific CUPS queues.

tkamppeter, 2012-01-10: Removed all references to Rodrigo Moya from this Blueprint and the linked bug reports as Rodrigo is not in the desktop team any more.

seb128, 2012-05-21: dropping q target, the workitems there are outdated and the topic needs to be rediscussed, especially:
- we don't use gnome-online-account with Unity so that's not something we should base this work on
- we are trying to moving away from adding extra code to gnome-settings-daemon, it would be better to have a standalone printing service

tkamppeter, 2012-10-19: Updated for Raring.

(?)

Work Items

Work items:
Add setup/config functionality to "Online Accounts" in System Settings: TODO
Implement server functionality: TODO
Client in GTK print dialog: TODO
Client in Qt print dialog: TODO
Client in LibreOffice: TODO
[till-kamppeter] find people to work on it: TODO