It’s been too long since I’ve made a post, but a lot has happened in the past few weeks, mostly good!
My rotation patch has been formally accepted, and is in the main tree. I also found a fairly minor issue in it, and created a second bug on Bugzilla and submitted a patch for it. Said patch is still waiting on Jaws’ feedback.
Zoom is coming along. The best way I can describe it right now is as follows: it looks and feels horrible, but we’ve got a proof-of-concept for how we can do it. Right now, we’re using a <stack> containing a <box> inside the main browser <stack>. The background of that <box> is a <canvas>. The <canvas> contains a screenshot of the page. Initially, I tried scaling the screenshot in the <canvas>, however, the performance was terrible, so I stuck to scaling the <box>. It works at least as well as before, with the added bonus of always rendering in front–before, the <canvas> would render behind the page and in front of only a few objects, and it worked not at all.
Coming up next week is our alpha presentation, as well as the due date for our Design Day booklet page. The booklet page is coming along well. Bill and Ray have done some good work on it.
My starter bug is still technically not finished, but I just submitted a new patch that should hopefully get accepted.
We’re getting there!
I proposed an actual patch for my rotation bug today! Cool!
Hopefully that will work out pretty well. I also fixed some problems that were present in previous versions of the patch.
Git has been a lifesaver this semester. Absolutely incredible program for source control and merging, branching, etc. etc. etc. It has made everything easier and more reliable. ❤ git!
The project has gone really well this week. I’ve learned a lot about Firefox as a whole and more about our specific components.
I’ve partially implemented a rotate gesture for images, and it works pretty smoothly, even on large images (~3500×2500). I’m gonna be merging the code into some existing files early next week, and if all goes well, it might make it to Firefox soon, which is exciting!
This weekend we’ll be working on our presentation and project plan. Sunday we’re gonna rehearse the presentation.
On another note, I discovered a function today that may be a very simple and effective way of dealing with the screenshot-based smooth zoom. It’s a Gecko-only function for HTML5’s canvas tag, called drawWindow(). It could REALLY be helpful!
I’m a maniac.
Welp, I broke the executable on my desktop and am currently rebuilding, so I figured it’s a good time to report on what’s going on.
I spent more time on the project plan presentation and documents in the last couple days, and I’ve finally learned some more about the system and feel more confident about starting the project. The plan right now is to start by implementing a much-more-easy interpolated snap zoom, rather than taking a screenshot and scaling. If the UI team deems this satisfactory we’ll skip the screenshot-scaling zoom altogether.
The latter half of the past week, as well as most of this week, consisted (will consist) primarily of working on our project plan document and our presentations. On the 23rd, we’ll be giving team status reports, talking about the status of our machines, our project plan document, etc. These will be short, only about five minutes.
Beginning on the 28th, the various capstone teams will begin presenting their project plans. This is mostly just a brief version of the project plan document. This will be about a fifteen minute presentation. I’m slightly concerned that we can’t stretch our material out to fifteen minutes, because our project is pretty simple to explain–touch gestures for Firefox on Mac OS X. There’s not a whole lot more to say, except to explain the specifics of what we’ll be doing.
The project plan document will be quite a bit more work than the presentation. This is to give a functional, design, and technical specification for both the client and Dr. Dyksen to view. We’ve gotten a pretty good start on it, but once again, we’re want for length because the project is pretty simple to explain in terms of what it does and how it looks.
As of yet, the team feels that we know too little about Firefox’s architecture and inner workings to be able to speak with detail and correctness in our technical specification, but said technical spec will probably contain the bulk of the material in the document. I feel it’s gonna take a substantial amount of research to determine how Firefox is put together, and thus, where our work will fit into it.
Much of the architecture is in place already, fortunately. Multi-touch gestures are recognized by the OS and picked up by a callback in Firefox’s low-level components. It then generates a Gecko event (which is platform independent), and sends it up to the higher-level components. So, all of the detection is already implemented for us–we just have to implement the action itself. Still unsure where and how we’ll do that, and how to fit it into the existing framework. Figuring those things out is the plan for the next week or so.
Today I’ve been working on a simple bug to gain familiarity with Firefox’s patch and review processes. The bug report is available here: https://bugzilla.mozilla.org/show_bug.cgi?id=719318. It’s pretty cool to be writing code that will be in a browser I’ve used since practically before I can remember. I started with Firefox way back in the days of Firefox 1, shortly before it went to 2.0.
What can I say? It’s a long term relationship.
Oh no! Another bland boring Hello World post! But not really, because here’s a kitten: