The GSoC 2015 program is coming to end now. This year, I applied to work on Electron project, a desktop application framework created by GitHub, and luckily I was accepted.

My proposal is about supporting print in Electron(previous known as Atom Shell). Originally, the printing feature(BrowserWindow.print API) is ported from Chromium’s source code. However, it doesn’t work on Windows after upgrading the newest release version of Chromium. It’s caused by the internal APIs’ change in Chromium. Besides, Chromium has provided a very nice print-preview feature to users, users can print webpage as PDF format, and customise the printing settings(e.g. margin types, page size) in a very friendly UI. So The goal of my work is to enable the printing feature on Windows, and to see whether we can add more printing-related feature to Electron.

Below are my output brief during this summer:

  • Finished my proposal under the guide and help of @zcbenz, made the broken print feature work on Windows, and implemented a printToPDF API.
    The following screenshot is a sample of printToPDF APIs:

  • Interacted and communicated with the Electron’s community; helped to verify and fix bugs; added new features required by Electron’s users.
  • Created an electron-app-samples, a repository contains bunch of apps that demonstrates the usage of Electron’s APIs.
  • Created a libchromiumcontent-qiniu-mirror, a mirror hosts prebuilt library used in Electron’s development.
    The motivation of this project is that developers is not easy to download items from AWS in China due to the slow download speed. This mirror will reduce the pain of developers in China for contributing Electron by accelerating download speed.

For all details, you can view my pull requests at Electron, brightray, libchromiumcontent.

Last but not least, I’m much appreciated with GitHubber @zcbenz for his kind guide and help throughout the summer. And thanks all the community people(e.g. @paulbetts, @kevinsawicki, @deepak1556) for their support and feedback during the process. This is an invaluable and amazing experience in contributing Electron project. I will surely continue to stick around the community as a contributor.
This year is GitHub’s first year pariticipated in GSoC as a mentoring organization, I wish GitHub would continue to be a GSoC mentoring organization in the future and guide more students in contributing open-sourced projects.

Big thanks to @GitHub, @Google for making this happen!