Categories
Mozilla

Test Build: Asynchronous Location Bar Searches

A few months ago I decided to try to use the asynchronous storage API that was added in Firefox 3.1 to help reduce the pain of disk IO on the main thread. Sadly, it became quite apparent that this was going to be too big of a change and need to much work to make it into 3.1, so I put off doing any more work on it. However, this week I started working on the patch again, updating it to work with the changes to the location bar and the storage back-end. Today I finally got it passing all of our existing tests (although, I know of at least one condition where it fails and is untested).

Now that it’s passing all tests, I feel comfortable posting a test build for folks to try and see if it helps or not. I should note that the current implementation is pretty dumb and doesn’t take many opportunities speed up results. Additionally, there are some other performance wins that are on my mind that become a lot easier to do with this newer implementation.

Admittedly, I haven’t benchmarked this yet, so I don’t know how it compares to the existing code. During causal use, however, it feels no slower than the existing implementation, but I don’t usually have issues with it. The goal here is to help out those who do have performance issues with the location bar. In fact, that’s exactly the feedback I’m looking to get. So, if you are feeling ambitious and willing to live on the wild side for a bit, I’d like you try this test build. After a little bit of use, let me know if you think the results are faster, slower, or about the same. Note: this is build off of mozilla-central, so it’s like a 3.2a1pre build.

Your feedback is greatly appreciated!

Categories
Mozilla Personal

Finer-grained Controls for Clearing Private Data

I semi-recently did some work to add a nice new feature for Firefox 3.1. The feature is “Forget About This Site,” and is a nice addition to our Clear Private Data and Private Browsing features. Any time you view a history entry (in the history sidebar or in the Library) you get a handy context menu item:
Forget About This Site Screenshot

That’s right! You can now selectively clear data from a domain (and all of it’s sub domains) with two clicks of the mouse! This tries to clear everything we know about a site, with the exception of bookmarks. There are still a number of issues pending with this to make it even more powerful (help wanted!), but as it stands, it’s pretty nice. I am, of course, biased.

All this work made it in for Firefox 3.1 beta 2, but I’ve been lazy and am just now getting to it.

Categories
Mozilla

Double Landings? No Problem!

I just found a really useful way to do the double landings that we have to do if we want to land anything on the 1.9.1 branch right now. hg has this handy feature that will let you import from a url, which means it’s incredibly simple to take a changeset from mozilla-central, and then push it to mozilla-1.9.1:

  1. Figure out your changeset url for mozilla-central. For this example, we’ll use http://hg.mozilla.org/mozilla-central/rev/242894260a86.
  2. In your mozilla-1.9.1 tree, run hg import and pass in the previously obtained mozilla-central revision url, with a minor modification: change rev to raw-rev (so you’ll end up with http://hg.mozilla.org/mozilla-central/raw-rev/242894260a86

Assuming it applied cleanly, you now have that changeset as a local commit in your repo. You can now push like you always do. Happy landings!

Categories
Mozilla Personal

Artistic Blog Representation

I wanted to see what I was writing about looked like after reading KaiRo’s post about his site. So, I jumped on over to Wordle (which sadly uses Java), and generated this:


Click to see full image

Clearly, I write a lot about Mozilla, and as of late, performance has dominated that topic. It’s funny, because some time this week I was going to write another blog post about performance too…

Side note: It’d be really cool if someone made a WordPress widget that generated this.

Categories
Mozilla Technology

Highlight Warnings in Make

Curtis just gave me this incredibly handy piece of code that higlights errors and warnings in make output. Now, when I’m building, all the warnings are highlighted in yellow, and the errors in red. Just put the following in your bash profile script:

make()
{
  pathpat="(/[^/]*)+:[0-9]+"
  ccred=$(echo -e "\033[0;31m")
  ccyellow=$(echo -e "\033[0;33m")
  ccend=$(echo -e "\033[0m")
  /usr/bin/make "$@" 2>&1 | sed -E -e "/[Ee]rror[: ]/ s%$pathpat%$ccred&$ccend%g" -e "/[Ww]arning[: ]/ s%$pathpat%$ccyellow&$ccend%g"
  return ${PIPESTATUS[0]}
}

Of course, improvements and more ideas welcome! Thanks goes to Curtis for this!