Home - PolySuite/PolyBrowser GitHub Wiki
#PolyBrowser Wiki
Welcome to the PolyBrowser Open-Source Repository.
Let's re-imagine web browsing, together.
PolyBrowser is compiled as a completely stand-alone browser. However, it is architected in the same manner as an extension of Mozilla Firefox, and is overlayed on a custom-branded version of Firefox. So to summarize, PolyBrowser comprises two layers:
Layer 1)
A compiled version of Firefox with all branding changed to PolyBrowser
- Layer 1 Browser source code and build instructions are available here (https://github.com/PolySuite/PolyBrowser/wiki/Building-PolyBrowser)
Layer 2)
A set of extensions that modifies the compiled browser to create the PolyBrowser experience (Placed in a folder within the browser directory called /distribution/bundles/)
- Most of PolyBrowser's functionality is contained in this repository (https://github.com/PolySuite/PolyBrowser/)
- Code for PolyBrowser's about:newtab page is located here (https://github.com/PolySuite/PolyBrowser-newtab/)
Why is set up in this way? This allows the code base of Firefox and PolyBrowser to remain loosely coupled and independent of each other. The benefit of this setup is that as the Firefox code evolves over time, PolyBrowser doesn't need to be constantly rebuilt with each version.
The architecture of Layer 1 vs. Layer 2
Most of PolyBrowser exists on Layer 2 in the PolyBrowser extension, which is literally a layer that covers that background Firefox-clone browser (Layer 1). PolyBrowser's tabs, browser views and scrollable browser container are custom-created components that exist on Layer 2 and typically, everything happens there. However, websites are sometimes loaded into Layer 1 (such as when clicking on a hyperlink from another application). In this case, the website from Layer 1 is trapped, and loaded into Layer 2 instead. See Source Code File Contents for more details.
##Getting Started
The easiest way to get started with PolyBrowser is:
Step 1 Download and install PolyBrowser from PolyBrowser.com
Step 2 Open the /PolyBrowser/ folder that was installed and look for the folder /distribution/bundles/ (Note: It's located in /resources/ on the OSX version) You will see two folders:
- The folder called /{a0108b30-8567-11e1-b0c4-0800200c9a66}/ contains PolyBrowser's main code
- The folder called /superstart/ contains the code for PolyBrowser's New Tab page
Step 3 Download the source code from this repository (https://github.com/PolySuite/PolyBrowser/) and replace the contents of /{a0108b30-8567-11e1-b0c4-0800200c9a66}/ with it
That's it! You now have the latest PolyBrowser code, and can start playing around and modifying.
- Hint: After making changes to the code, hold down the Shift key (or Option on OSX) to launch in Safe Mode. This clears the cache and ensures that you've loaded the latest code.
##Learning to Code PolyBrowser PolyBrowser is built using Firefox's extension technology. To learn more about how this works, refer to this guide on Developing Extensions for Firefox
- Note: PolyBrowser uses XUL overlays, which Mozilla refers to as a "Legacy" type extension.
For PolyBrowser-sepecific code, see the rest of the pages in this wiki.