Inspiration

If you have a computer without Microsoft Office, or prefer to do your document editing in the browser, it can be a hassle to download a file, then go to your Google Drive or appropriate page, and upload the file back into the cloud. With this extension, downloads of your productivity suite files are seamlessly integrated with Google Drive for you.

What it does

The extension is constantly running in the background, monitoring for a download to start. Once the download starts, AJAX is used to grab the download url and upload the file into the authenticated Google Drive instantly, and cancels the download. The extension will then open the corresponding productivity app for you.

How we built it

The entire extension was written in Javascript, using the Google Drive API along with some JSON used to configure the extension.

Challenges we ran into

Chrome extensions by default are very restricted. This is intentional, as extensions should not be given full access to whatever they want. As a result, we had to bulk up the permissions of this extension to give it access to more cross-domain urls.

Accomplishments that we're proud of

After facing a number of errors regarding authentication and permissions that blocked us from doing everything we wanted to, we were finally able to catch these downloads and upload them into the user's drive seamlessly. This will save a lot of time for the end users.

What we learned

The limitations of chrome extensions are very strong, and therefore working around them like we did should not be taken lightly. The user should feel comfortable that an extension which constantly monitors their downloads, and potentially intercepts them, does exactly what the developers say it should. This is an excellent project for open source and should be held to a high standard.

What's next for Intercepter

Future enhancements would allow the user customization of which types of files are automatically uploaded to Google Drive, as well as let the user choose which of their Google accounts should be used.

Share this project:
×

Updates