MicroB ships as the official browser for IT OS 2008
Some people may have noticed, but I'm confirming it for everyone else: MicroB
has shipped as the only (and hence default...) browser with IT OS 2008.
I'd like to say this is a win for open source. MicroB is the engine used by
/usr/bin/browser on IT OS and it is based on Mozilla Gecko.
There are some high points and some low points for this release.
Good news
- The default start page is now useful. Many thanks to Kevin Zhang,
Tuukka Tolvanen, disq, and TPC
for helping with the page. Thanks to
Alicia Patterson, John Lilly, and others at mozilla.org
for the art work.
Thanks to Erkko Anttila and again to Jorma Virkkunen for letting us fix up
the page.
- The Browser default plug-in has been renamed to
Default plug-in, RealPlayer, Windows Media and the description has been
changed to Default plug-in. Supports RealPlayer and Windows Media.
Because of this, you can now load BBC News
Video,
Radio, and French TV stations, e.g.,
France2.
Thanks to Marc-Andre Lureau for complaining about this. Thanks also to
Jens Wilke who has been helping us investigate web compatibility and get
fixes to Nokia
properties for MicroB.
- There is a project to help enhance MicroB, called
browser-extras which is
busy porting and packaging content and extensions to improve your browsing
experience as well as reduce the pressure on our in house developers. Thanks to
their contributors there for settings it up and working on it.
Bad news
- If you like Yahoo! Music (which includes
Music Videos), or many Internet Radio stations (e.g., ABC Radio affiliate
WMAL630
in Washington, D.C.), you will unfortunately get an
error from Media player when you try to use it. Yahoo's content supports at
last Windows Media and Flash plug-ins. Yahoo's content also properly favors
Windows Media. Unfortunately the Media player does not properly support ASF
playlist files unless their file extension is .asf. In order to listen to Yahoo
content, you will have to disable the Default Plug-in. To do that:
- Open the application menu > View > Show toolbar. Make sure the toolbar is
visible for the mode you're in (Full screen / Normal screen). -- Yes, I just
noticed that "Normal screen" appears in the user interface. This is the least
of my language worries, I am quite embarrassed by the quality of the text.
- Click the bottom right button in the toolbar (it looks like a magnifying
glass, but it's really an overloaded kitchen sink button) > Components >
Default plug-in, RealPlayer, Windows Media.
- Try loading your Yahoo media property again. You should now get Flash-based
media delivery.
- We're now using Nokia-sponsored text for all languages, including English US
and English GB. In the betas we shipped Mozilla's text for English. This is a
very mixed bag. Unfortunately it meant that we didn't get very good testing
coverage of the text we're shipping. And it really shows in a number of places.
I take the blame for this. It meant that our beta testers could test the engine
as the localizations we were given were generally so broken that you, e.g. got
a famous yellow/red error indicating Gecko couldn't render the error page when
you could not reach your proxy. Unfortunately the localizers are not familiar
with localizing XML text and consistently generated text which was invalid, and
until the very end we didn't have any tools to help them recognize this problem.
Next time, they'll hopefully do better. There are two main places where you
will notice this, again, I'm sorry. We will try to ship a beta release which
fixes the text shortly. I haven't decided if we'll release back ports for the
other platforms in sync with this fix or before we fix this.
- The HTTPS authentication dialogs repeat the server and message in both the
server and message fields (oops). This was not present in any of our betas,
so I didn't notice it while I was traveling with my devices last month.
- The netError messages don't fit Nokia style, specifically the line below the
title should really show just the site/path, and not text.
What's coming?
We have a number of long term projects;
- Upgrading Gecko to a more current version, which will probably include
switching to using Cairo throughout Gecko instead of just for <canvas>.
- Betas and backports. Hopefully within a week of the IT OS 2008 image being
posted I'll be able to announce packaged versions for all the other platforms
for which we've shipped betas, as well as
OS2007HE. There
is a package available, but I felt that its quality was not up to snuff (yes,
I know the package I'm announcing here isn't perfect, but what I saw when I
first opened it was more glaring and it wasn't the current version at the
time). We'll try to keep all of our releases in sync so that we don't have to
deal with people complaining about bugs in one system and having people with a
different system say that they don't see the bug (when the reason would have
been because one of the versions was newer).
Changes
This is a list of changes since 4, to the best of my ability. Please
remember that there have been occasional updates since that announcement, and as
I have not had time to review or publish the announcements, there is no specific
changelog for them, which means you may not remember some of these bugs. Note
that I'm only reviewing changelogs for browser related packages, it's possible
that bugs affecting browser have been fixed in packages upon which the browser
depends. There's no easy way for me to learn about such things.
I'm assuming that changes happened after August 9, 2007.
User reported bugs
Multimedia
- Default plug-in now includes mime type when it sends content to handlers,
this fixes problems with RealPlayer audio samples from amazon.com.
Note: This requires the Media player to register the content types
- Content of type application/x-mplayer2 should be supported (editor believes
this is fixed in IT OS 2008 on the Media player side, people trying to take
advantage of this fix with MicroB on older releases will probably need to
hack a .desktop file).
- Links to mp3 contents should open Media player
(again because we're passing along the mime type?)
- Links to WVX (and presumably anything else) with query parameters
should be properly sent to Media player
- Loading an mms:// url should work
- Add support for application/vnd.rn-realsystem-rmj; treat it video/x-real, and
audio/x-real as streamable urls (instead of saving to disk before launching
Media player)
- Browser default plug-in "Description" field is now very short, useless
and incorrect.
- Added support for WMODE plug-ins (thanks to karlt for the work)
Windowless plug-in support for X (WMODE)
- We should no longer be violating NPAPI to talk to Flash.
- Some possible plug-in crash should be fixed
- It's possible to re-enable plug-ins after they are disabled due
to low memory conditions.
- Mime types were added to the default plug-in to try to fix wave file support.
- Plug-ins should not be deleted (!?) if they're disabled and the browser quits
unexpectedly (crash/kill/battery removed)
- Browser shouldn't crash when quit if there are no plug-ins....
Zooming
- Each page in back/forward history should remember its zoom level
- Pages with HasUnloadListeners will now have their zoom state preserved if
the page is scrolled.
(Editor's note: Otherwise it isn't. These are edge cases, if you care,
you're welcome to learn Gecko or write your own layout engine.)
- Removed code to add extra scrollbars (this
code
doesn't exist in
CVS)
- When you visit an image directly in the web browser, if it's bigger than the
available window size, you can tap it to shrink it to fit. If you had zoomed it
before tapping, when you tap again, the zoom level will be restored. This zoom
out will try to ensure the area you clicked on is visible close to where you
clicked.
- If the image at 100% would fit in the window, and you zoom it
to e.g., 240% so that it no longer fits in the window, you can't click to zoom
out -- This seems reasonable.
- In testing it seems that if your window is zoomed and you then load an
image without a webpage and you want to use tap to zoom, you will first have
to change your zoom.
- On the N810 with the toolbar visible and shrink to fit active, opening the
keyboard tray will result in the image shrinking again. The keyboard indicator
is awful and needs to be redesigned, this is one of many ways that it breaks
the web browser.
User interface
- Settings dialog title text is now properly distinct from the menu item that
opens it. See footnotes.
- Plug-ins has been renamed to Components to reflect the fact that it should
include both Plug-ins and Extensions.
- New windows will now appear last in the window list (before they would return
to their previous position if there was one, otherwise they were added to the
top)
- Toolbar "Connecting" indicator will no longer accelerate with each successive
load attempt
- Tapping link should always update toolbar address (note to self: figure out
if this was a regression)
- Rapidly clicking the address bar quickly immediately after opening the first
web browser window will result in the default url showing when it loads,
instead of leaving a blank field. (editor's note: it's unclear that this change
makes sense or is an improvement. the internal bug gives a slightly different
actual result which is indeed slightly strange, however the required shipping
result does appear to be a regression from beta. If someone feels that the new
behavior is bad, please file a
bug
.)
- Windows menu should not be misplaced after loading a page with a very long
title
- The toolbar buttons are no longer focusable (it used to be possible to move
focus into them after interacting with the completion widget, this was
surprising. As it isn't seen to be a useful behavior, it was removed).
- The Windows submenu should be properly positioned when web pages have long
titles.
- The RSS button is now to the left of the urlbar.
- Restoring a backup from MicroB in OS2007 into an OS2008 device will result in
a browser that crashes instead of just looping infinitely (please don't ask why
this is considered a feature).
- You can now save the contents of links using the Context Menu.
- about: now has localized text for the about:config link.
make description for about:config localizable
- Set Preference in about:config now works with boolean types
- Deleting an item from history should leave focus at the next item instead
of lost in the void.
- Pressing hardware right should not scroll the components list of the
components dialog.
- Focus for popup windows is properly tracked so trying to load a url in the
window will not go to the window that had triggered the popup.
- Save target as (using Browser) is now available to all libmime consumers
(well, at least Chat)
- UI should be more responsive while the browser engine loads
- Automatic is no longer included as an encoding in the Details dialog.
In Gecko, we will always let Gecko detect an encoding, and the encoding
shown in the dialog should be the encoding Gecko has detected, the user
can choose any alternate encoding but it doesn't make sense to select
automatic since that's always used first.
- Trying to save a page after asking the browser to quit with lots of
windows open shouldn't crash.
- History list should no longer truncate Cyrillic entries
(no one explained if this would affect other non Latin encodings,
the bug reports losing 1 character at the end of titles)
- The password saving dialog was re-implemented.
- Application Switcher now shows favicons with size 64x54 from
gtk_window_set_icon. How this affects the browser on older platforms
is uncertain as it seems we barely got testing for IT OS 2008. I also
have no idea what happens when the only favicon for a site is 64x64,
presumably the icon won't look great.... People are encouraged to
file a
bug
complaining about this behavior (only file one bug, everyone else should just vote for it).
- Find toolbar will remember search string during the session
even if you close and reopen it.
- Opening the find drop down will now highlight the most
recently searched for item (i.e., the one closest to the find bar.
hildon-find-toolbar-example.c
- OK in settings dialog should really save the settings....
- Switching to full-screen mode while a page is loading will stick,
instead of restoring normal view.
- Launching the browser with a url should load it directly without
first loading about:blank.
- Focus should move to the web page when loading a page from the location bar.
- Selecting text in an <input> should have a better chance of working
instead of being treated as a thumb-panning action.
- It should still be possible to trigger the VKB and FKB from <input>s.
- VKB should be able to open on places like www.hotmail.com
because we now process the mouse up instead of the click event (which sites can
choose to swallow).
- Tapping an input field that would appear below the VKB might properly scroll
the field into view after showing the VKB (or it might not, an extra fix got
posted around the time of this announcement and it looks like it wasn't
accepted for the release).
- Frame details page size should show the size of page in the frame, and not
the frameset containing it.
- Page load should succeed even if interrupted to save a new connection if you
picked one in response to a select connection dialog.
- RSS content should be indicated when pages finish loading
- Unrequested pop-up windows should now trigger an information banner
when Enable pop-up windows: is set to Only requested.
- Found and fixed some instances of using freed memory relating to opening
and closing browser windows.
- Loading an image directly will result in a scaled down version if it's bigger
than the window.
browser.enable_automatic_image_resizing
- Start page should be shown with a url of Home.html
- Tabbing will now focus links because using
accessibility.tabfocus = 7 meant that
hardware navigation would not work on pages without textareas.
- Native theming for <select> widgets is mostly implemented.
- Native theming for <input type=checkbox> and <input type=radio>
- Height of <input type=file> should be reasonable
- RSS channel items should not be duplicated
- Pages that serve RSS content with XSLT (i.e., BBC) should trigger the RSS
toolbar button.
- Trying to get a context menu on an automatically resized image should not
result in continuous swaps between resized and normal image states.
Similarly, it should be possible to pan non resized images, instead of just
having them toggle between states.
- Note that you shouldn't use more than 4 browser windows
(Editor recommends 3), unfortunately a related preference
browser.sessionhistory.max_entries
was tuned from 50 (desktop value) to 31 (random value).
People are advised to tune it to 8.
- CSM shouldn't be triggered when you simply click on an element in a
page that uses mouse event handlers
- Undid a change to improve the contrast for text in disabled <textareas>s:
see the unreadable textarea
Hardware Keys
- Pressing hardware select while the focussed element is offscreen will blur
the object instead of triggering it
- Holding hardware arrows to trigger scrolling should result in fairly
continuous scrolling (no link navigation, and focus should be cleared)
- Focus shouldn't leave a <select> element prematurely while navigating using
the hardware navigation keys.
- Pressing a hardware arrow key when there is no focus on the screen should
result in focus being inserted according to cardinal locations (up = top of
screen, etc.)
- Documents in designMode will suppress the ability to open the FKB, you will
need to configure the select button to activate the thumb keyboard.
- Enter key in FKB should not be detected by web sites, e.g.
www.hotmail.com
- You can disable spatial navigation by setting
snav.enabled to false
- Using spatial navigation on yahoo.com might not crash
- You might be able to use the hardware navigation keys in
docs.google.com
- Hardware keys will trigger mouse move events, and those coordinates will
probably relate to the center of the selected element.
Fit width to view
- Toggling Fit Width to View (and starting the Browser?) will now
show an Updating banner
- Fit width to view is disabled by default
- Fit width to view should work slightly better
- Fit width to view will try harder to avoid a horizontal scrollbar
- Opening a new window shouldn't affect the ability to activate/deactivate Fit
width to view in the original window.
- Back/Forward should remember vertical position even when Fit width to view is
enabled
Networking
- Entering multiple words into the location bar will now trigger Google's
"I'm feeling lucky" search.
- Clicking mailto: links will no longer leave the toolbar stuck in the
connecting state.
- Loading an unrecognized protocol should result in some "friendly" error.
- Saved pages (with long filenames/url parameters?) should include
an html file extension so that File manager will know to use Browser
to open the file.
- Save as with images (for html pages) is now part of the normal
File save as dialog (available as a type field, and only visible
for html documents).
- Save as should work from the frame CSM submenu.
- Save as web page, complete should now include a proper charset
a least as much as in mozilla
Incorrect meta tag is used by Save As "Web, page complete" (character encoding specified incorrectly)
- Interrupting a load from Bluetooth will now generate a very annoying and
poorly worded error dialog instead of a standard gecko error page
- Deleting an unnamed download should no longer crash
- One of an infinite number of potential crashes in the download manager
should no longer trigger a crash
- Resuming downloads should not crash
- Delete confirmation dialog should now appear in front of the
downloads window.
- Completing a download should be handled better
- One potential crash involving an incremental download test over https
should not happen
- Network error pages will not show horizontal scrollbars (inner content will
probably have such scrollbars, but that's different)
- Network errors should be properly skinned (including an exclamation mark)
- It should be possible to load a web page saved with images but which requires
some other network resources without going back online. It will almost certainly
require you to select cancel once for each resource which is not stored locally.
- Restored support for PAC (nsProxyAutoConfig.js was not packaged)
- Restored global-region properties
- Rephrased error messages for:
- malformedURI
- fileNotFound
- dnsNotFound
- connectionFailure
- netTimeOut
- proxyResolveFailure
- proxyConnectFailure
- redirectLoop
- deniedPortAccess
Packaging and Building
- Browser is no longer built against maemo launcher, this seems to
result in the best launch times.
- tablet-browser-controls now lists a dependency to microb-eal-dev
- microb-eal-dev now lists a dependency to depend on microb-eal
microb-eal-dev should depend on microb-eal
- microb-refui now lists a dependency to depend on libgtkmozembed
microb-refui should depend on libgtkmozembed
- Should build in gregale
- OS 2006 uses a different plug-in directory
- Browser UI is prelinked with microb engine
- Browser is now compiled with -fPIC (thanks to the toolchain sucking
less and to no using maemo-launcher, although in theory they fixed
maemo-launcher).
- EAL should launch without system DBUS
- At some point in time it built on HILDON2006
(If it doesn't, we'll try to fix it shortly....)
- MicroB uses system cairo (for canvas only!)
- We now include/package/use libsqlite and nssdbm libraries
- mozilla-config symlink is included in system directory
- mozstorage is enabled and built- but probably not very useful (no places)
- microb-refui now lists dependencies
- xulrunner package is available
- Added option to build microb-engine with an SVG backport
- SVG is not enabled in this release
- Gecko engine is probably approximately equivalent to a pull from 2007-09-29,
this is done via the
Debian style
of adding lots of patches on top of a base instead of actually updating the
base.
- Imported fix for
Hang with display: table-caption, large padding and left float inside it
- Uninitialized value used in nsTypedSelection::AddRange()
- Added libnspr package which adds some part of gecko to the ld.so.conf library
search path
- Enabled support for XBM image format
- Disabled indirect threading in spidermonkey because it seems to cause
frequent random crashes at various sites.
Bookmarks
- Trying to paste with an empty clipboard in Browser and Bookmarks should now
use the standard system global "Nothing to paste" message instead of "Unable to
paste".
- Requests from an external application (Bookmarks) to "Open" an item in
the "current" window after having closed a recently opened new window.
- Task navigator list for bookmarks should have reasonable widths
and if items are too long they should be truncated with ellipsis.
(This is fallout from some API work core did)
- Control-B will open the bookmarks menu ... at the same location
as if you had tapped the toolbar button.
- Pressing <escape> will dismiss the bookmarks toolbar menu.
Known Issues
- Opening the VKB for a <textarea> will probably ignore autocapitalization mode
and just use lowercase.
(Editor's note: this seems to be rocket science, and the APIs involved don't
seem to be particularly useful/workable.)
- Due to X or the touch driver or something being oversensitive, it is basically
impossible to tap on a single pixel and expect an application not to hear mouse
move events.
(Editor's note: I'm sorry, but there's really nothing anyone can do.
If you think
this
problem is hard, imagine having at least five dimensions
(That's the problem here), anyway, here's what the one dimensional problem
looks like:
- CSM animation doesn't always go away
(Editor's note: the bug report sucks, it talks about a "dialog", but it
probably means a web application emulated dialog. The problem probably relates
to imperfect accounting of click targets.)
Footnotes
For people wondering about User Interface style, the general rule is:
- A menu item to perform a given task should have ellipsis (...) only if there
is a need to ask the user for additional information in order to complete the
task.
- The Nokia style unfortunately differs and basically says all menus that
trigger dialogs should have ellipsis (...).
(See also Apple's rules)
For people curious about general rules for writing localizable code, here are a
a couple of basic rules:
- Never use the same identifier for terms that appear in different contexts.
- If you're going to give localizers text to translate, make certain that the
text is not grammatically incorrect in the original language. It should also
use the clearest and most common/popular words to describe terms and concepts,
unless you have explicitly defined terms for your localizers.