Hey! So we have a number of milestones for GaiaUpgrade going forward. Most of them have more to do with the framework that it's built on. Initially the framework was built into the extension. Well the extension needs to be rewritten for more flexibility and to be able to add new functionality and for cleaner and more object-oriented code.
So, fun fact. I made the whole framework that GU v1.x uses in about a week; 3 days to make it and 3 or 4 to mostly debug it as use-cases were raised.
As it stands now the framework is only somewhat object-oriented, it heavily relies on a super object. This is not so good for flexibility and more so for maintainability. So for those two reasons the framework needs to be rewritten.
I figured while I'm rewriting the extension framework we should extract it from the extension application, (GaiaUpgrade), itself and make it a required dependency. This will allow us to maintain the framework separately from the extension application. Since the framework will be it's own project it needs it's own name. I've decided to name it WebExtensions, after Firefox's WebExtensions API — soo original, right?
We can also then release the framework to the world for any other browser extension developers that may have possible use for it.
One key milestone for the framework is browser abstraction. Currently it can only support browsers that implement some variation of the Chromium API. The milestone for this is to add browser API adapters. This means that there will be — at least — four layers of the entire extension:
GaiaUpgrade (the actual application you all know and love) Framework API Adapters Browser API The application talks to the framework. The framework talks to the adapters and the adapters interact with the browser extension API itself
What this means is that we can create adapters to support different browser APIs or if possible polyfill APIs — like MS Edge not support the Alarm API (just simply an interval timer API). So, we would theoretically be able to support browsers like Safari, Pale Moon, Maxthon, and more! We wouldn't have to change the application code or the framework code, the adapters will handle the heavy lifting for interacting with the browser.
One of the other major key areas we want to focus on is performance. If you have enabled the forum centering option, you may notice about a second or so of delay until the forum is centered. Yeah, that's a problem. We don't like it and we imagine you don't either, it's just a bad experience when those things happen. So we will be looking to add a Style Engine to the framework that will run in parallel with the rest of the extension to apply component styles such as forum centering much faster so that it's far less noticeable or not noticeable at all.
In conclusion, it's looking more and more likely v1.8 that we're working on now will be the last big v1.x update, with some minor bug patches if they arise until v2 comes out. We want to really improve our code and improve the user experience with GaiaUpgrade. We strive for excellence, to meet our users' expectations from us the best we can.
I'll post more later about other things we're doing with the framework and the extension.
Knight Yoshi · Sun Jan 28, 2018 @ 08:28am · 0 Comments |