Necko team
Myth and Pandora
Mozilla Try, made simple.
hg qnew -m"try: -a" -f try-chooser-fud
hg push -f ssh://hg.mozilla.org/try
hg qpop
hg qremove try-chooser-fud
It might be cool to bundle this as a hg alias or a hook.
Desktop Notifications in Fennec
Just a quick update. I implemented Desktop Notifications in Mozilla. The first product that will use this will be Fennec, or Firefox for mobile. The work is based on and is a subset of the w3c draft specification. For now, the API is Mozilla specific and is accessible via navigator.mozNotification.
When building this API, I was very minimal and only wanted attributes that would be used by everyone. You can find some simple examples here.
Please give it a try, and let me know what you think. You can this it out in any of the latest nightly builds of Fennec.
On OSs that do not have a native notification system, you will see something like:
On Android, you will see something like:
Fair to note here, that because android doesn’t have a way to change the graphic in the notification area, you’ll always get the Fennec/Firefox icon. If you know a workaround, do tell!
Geolocation – Setting your position manually
I thought that this was written down somwhere, but I couldn’t easily find it…. so
If you know how to muck with about:config, there is an easy way to set your location manually. First figure out your longitude and latitude. There area bunch of tools on the web that gets you this. Once you have this, you can do the following:
1) Open up about:config
2) search for geo.wifi.uri
3) change the value to:
http://snaptome.appspot.com/loc/json?latitude=your_lat&longitude=your_lon&accuracy=10
Thats it. I hope this helps.
Desktop Notifications
This is a feature that may come to a browser some day. I am interesting in your thoughts:
Desktop Notifications
Desktop notifications allow a web page to notify the user using system level services, such as Growl, in a clean, safe, and easy to use manner.
The code is very simple:
navigator.notification.notify("Another Desktop Notification",
"Check out my icon",
"http://dougt.org/me.jpg");
and the result is something you’d expect from a notification. On the Mac, the notification may look like:
You can get more sophisticated by adding a callback when the user clicks on the Desktop Notification:
navigator.notification.notify("Another Desktop Notification",
"Check out my icon",
"http://dougt.org/me.jpg");
function() { /*do something*/ });
A user must grant each site permission before they can use Desktop Notifications. We will use the familiar notification bar (the text isn’t final. Also, these will end up looking quite different in future releases of Firefox.):
That is there all there is to it!
Get involved:
If you like or dislike this feature, please just leave a comment.
If you like to follow the implementation details, you can follow bug 573588.
You can try out the engineering builds. There are bound to be a few bugz. If you see anything funky, please let me know.
If you are using the above engineering builds, you can try out Desktop Notifications.
More details:
I reviewed two draft specifications. The first is the WebNotification specification and the other is the Google Gears NotificationAPI. I found both of these APIs more complex than what was required. Clearly both of these other APIs have use cases that are not address by my proposal. But for basic notification from the browser, not much is required.
Looking at what Growl and other system level notification services provide, you basically only need a title, a description, and an icon. For fun, I added one callback if the user clicks on the notification while it is on screen.
Next Steps
You tell me. Is this something you’d like to see in the browser? Does the API work for your use cases?
Let me know what you think!
Opera 10.6 Beta – Geolocation
Oh, cool! Opera has geolocation!
Opera employees do lots of heavy lifting on standards. During my involvement at the geolocation working group, I saw first hand the great to work that the Opera folks do (Hi Lars-Erik + Max!). And it is really great to see that this work be put into a product and shipped.
I spend a bit of time looking at 10.6 and their geo implementation. The info bar has the basic elements that a geolocation notification bar is suppose to have. I will leave it to the Opera users to decided if this is a pretty notification bar or not… Notice that they did leave off a informational link that allows a user to get more information each time a geolocation request is performed. We left that on so that people away can find a way back to the explanation of geolocation. I also like the wording on the prompt… the browser shares the location data with the web page, but we do not transmit or send data. It is a minor difference, but if the location is transmitted it is really the page that does it.
The first time you click “Share My Location”, you get a big modal dialog with a bunch of legalize in it that explain what geolocation is, and how it is used in Opera, and what providers, etc. The text is pretty dense and will probably scare most people away. I suppose much of the text is similar to the Firefox text. There are some word smithing that could be done, but its a beta and Opera is probably still working on it.
Under the hood, Opera does use https when transmitting the geolocation data to and from Google’s Location Service. They also expire the service cookie every two weeks and offer a way for the user to purge this value more frequently. In my quick conformance tests, it looks like Opera behaves much like Firefox.
Overall, I am pretty happy with Opera’s Geolocation implementation. Go Opera. (btw, do I still get a t-shirt for saying that?)
Got Android? We need you…
Mozilla has started to produce nightly builds of Fennec for Android. You can get them here:
http://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mobile-trunk/fennec.apk
No auto-updating yet, so check back often. Send your feedback to the forum.
MythTv Python Bindings in 0.23
For the last few weeks I have been testing the waters with an open source alternative to TiVo called MythTv. Its really simple to get started with and has some tremendously useful features for the tv hobbyist hacker. Check this out….
With the upcoming 0.23 release, MythTv has a new and super easy-to-use python binding. The best way to illustrate this is an example. Suppose you want to record every “special event” broadcast. These are the programs that do not occur all of the time. For example, “The Eighth Annual Young Comedians Show” is a special event. LOST is not. To do this, the code is simple:
from MythTV import MythDB, Record db = MythDB() shows = db.searchGuide(category="Special") for x in shows: x.record()
This is huge! Being able to allow developers to script the TV is great and I can’t wait to see what cool things people come up with.
Policies attached to data
Everyday millions of people upload pictures, update their status message, and shop online. In each of these actions, users have expressed consent and the browser is the instrument that enables the user to perform these various tasks. When I upload a picture to a site, it is arguably governed by the terms and conditions of that site and local laws.
There have been some requests to require all web browsers to transmit rules that instruct web pages on how long they can hold onto data. Passing rules along with data is a bad idea because it may be ignored due to existing rules and simply because it is unenforceable.
Suppose that a default rule that a web browser would send is “only keep this data for 2 weeksâ€. When a user goes to upload and share a picture with their friends, there are existing terms and conditions in place merely by using the web site which may override this 2 week retention rule. The website might say plainly that uploaded pictures will be archived forever which is in conflict with the rules that are associated with the picture. This leads to user confusion as the expectations may differ.
Using the same example as above, there is no way for the browser to verify that the website does honor this retention rule. After all, what a recipient does with a piece of data is outside the scope of what a browser sees. Any browser user-interface would not be able to assert any fact regarding these rules.  Thus, the default rules would never be able to be changed by the user. And because these defaults would never be seen by the user or changed in any way, all will most likely ignore them.
Currently, one of the most sensitive data that people share with a website is their credit card number. Browsers have never passed rules to a website when an e-commerce transaction occurs. Yet, sites do not retain credit card numbers without permission. In this case, there are regional laws governing the usage of credit card numbers.
This approach of putting legal protection around data is best. If a certain type of data is deemed more sensitive, it should be treated that way legally and outside of the way it is transfer. Credit card numbers can be transferred in any manner – from the browser to a website, or from a postcard to a brick and mortar – both methods are protected.
Update:
Localization to Belorussian by Patricia Clausnitzer. Cool.





