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 SVG.
- 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
(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).
- 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
(Editor's note: Media player support for WVX was added in IT OS 2008)
- Loading an mms:// url should work
(Editor's note: There's no bug reference in the changelog,
I can't determine what this means)
- 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)
(Editor's note: Media player team claimed to fix something but didn't
explain what, and I don't feel like diffing their source tree to figure it out.)
- Browser default plug-in "Description" field is now very short, useless
and incorrect.
(Editor's note: it seems that some reporter and engineer decided that
it would be better not to show lots of semicolons, so instead we now
make my job a lot harder when it comes to video/audio evangelism.
That will be the subject of a least one blog article.)
Networking
- 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.
Packaging and Building
- 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
(Editor's note: yeah, but what is it?)
- 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).
- At some point in time it built on HILDON2006
(If it doesn't, we'll try to fix it shortly....)
User interface
- Settings dialog title text is now properly distinct from the menu item that
opens it. See footnotes.
- Removed unused code (note to self: try to figure out what this means)
- 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).
- 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".
- 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).
- !! Fixed restore plug-ins state if the browser crashes at low memory. !!
(Editor's note: There's no bug reference in the changelog,
I can't determine what this means)
- 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
- 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 (Editor's note: There's no bug reference
in the changelog, I can't easily determine what this means)
- Resuming downloads should not crash
(Editor's note: There's no bug reference in the changelog,
I can't easily determine what this means)
- 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.
- Some possible plug-in crash should be fixed
(Editor's note: There's no bug reference in the changelog,
I can't determine what this means)
- Interrupting a load from Bluetooth will now generate a very annoying and
poorly worded error dialog instead of a standard gecko error page
(Editor's note: I clearly don't approve of this improvement)
- 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
(Editor's note: There's no bug reference in the changelog,
and the English is wrong...)
- Requests from an external application (Bookmarks) to "Open" an item in
the "current" window after having closed a recently opened new window.
(Editor's note: the "feaure" of opening an item into a random existing
window from an external application is probably a bug and needs to be
reconsidered, usually the result is dataloss)
- 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.
(Editor's note: why not? the user wants the browser to quit....
Don't ask me if the file should get saved or if you can actually try
to save anymore.)
- 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).
- Toggling Fit Width to View (and starting the Browser?) will now
show an Updating banner
(Editor's note: I have no idea why this is considered a feature,
I know a number of people who have asked me if I'm familiar with
this bug - namely the "Updating" banner when the browser launches)
- 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)
- It's possible to re-enable plug-ins after they are disabled due
to low memory conditions.
- Delete confirmation dialog should now appear in front of the
downloads window.
(Editor's note: the window manager seems to be really flaky.
I've seen similar problems in a number of parts of the browser,
and I walked an even worse variation of this visible in the Map
application to the responsible engineer. Maybe they'll fix this
for IT OS 2010.)
- 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
- 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.
- OK in settings dialog should really save the settings....
- Control-B will open the bookmarks menu ... at the same location
as if you had tapped the toolbar button.
(Editor's note: I did not approve of this keybinding as it results
in conflicts with Google and other Web Applications....)
- Pressing <escape> will dismiss the bookmarks toolbar menu.
- Switching to full-screen mode while a page is loading will stick,
instead of restoring normal view.
- Enabled support for XBM image format
- Browser is no longer built against maemo launcher, this seems to
result in the best launch times.
- Launching the browser with a url should load it directly without
first loading about:blank.
- 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).
- Mime types were added to the default plug-in to try to fix wave file support.
(Editor's note: However this was all removed later. I believe the only
interesting changes were telling our testers to fix their testcases.)
- 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 sill be possible to trigger the vkb and fkb from <input>s.
(Editor's note: If you don't think the preceding couple of bullets are
juggling conditions, I have a dozen more
egg-citing
conditions you can try juggling, no points for dropping or breaking any
eggs.)
- Restored support for PAC (nsProxyAutoConfig.js was not packaged)
- Restored global-region properties
(Editor's note: letting people who don't understand Gecko remove files from
the distributed set is not recommended.)
- Rephrased error messages for:
- malformedURI
- fileNotFound
- dnsNotFound
- connectionFailure
- netTimeOut
- proxyResolveFailure
- proxyConnectFailure
- redirectLoop
- deniedPortAccess
(Editor's note: upon review of the results, we don't like them, see footnotes.)
- 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).
- Enter key in fkb should not be detected by web sites, e.g.
www.hotmail.com
- Completing a download should be handled better
(Editor's note: the changelog for this item just says it's cleaning something.)
- 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.
- Fit width to view is disabled by default
(Editor's note: it's not a very good feature anyway.)
- Fit width to view should work slightly better
(Editor's note: the comment gives no indication about how/why/under what
circumstances.)
- Opening a new window shouldn't affect the ability to activate/deactivate Fit
width to view in the original window.
- Each page in back/forward history should remember its zoom level
- RSS content should be indicated when pages finish loading
(Editor's note: this doesn't mean it works in all cases, and given the lack
of a bug report or change set, there's no guarantee it means anything at all.)
- Loading an unrecognized protocol should result in some "friendly" error.
(Editor's note: the error message is not friendly, and the Connecting bar doesn't
stop until you click OK.)
- Plug-ins should not be deleted (!?) if they're disabled and the browser quits
unexpectedly (crash/kill/battery removed)
(Editor's note: the bug doesn't explain the fix or what actually happened at
the file system level, I only speculated based on the description.)
- EAL should launch without system DBUS
- Save as should work from the frame CSM submenu.
- Clicking mailto: links will no longer leave the toolbar stuck in the
connecting state.
- 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
- Browser shouldn't crash when quit if there are no plug-ins....
- Start page should be shown with a url of Home.html
(Editor's note: yes, this isn't a url, and yes your home page might be something
else. Yes, I'd rather call it Start.html, yes, I lost.)
- Hardware keys will trigger mouse move events
(Editor's note: why? answer: because we're specified to do so)
- Tabbing will now focus links because using
accessibility.tabfocus = 7 meant that
hardware navigation would not work on pages without textareas.
- Disabled indirect threading in spidermonkey because it seems to cause frequent random crashes at various sites.
(Editor's note: We suspect gcc3.3/arm toolchain is buggy. Given that
JS_THREADED_INTERP is only supposed to be a performance improvement,
it's a good thing to drop.)
- Focus shouldn't leave a <select> element prematurely while navigating using
the hardware navigation keys.
- 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.)
- Native theming for <select> widgets is mostly implemented.
- Imported fix for
Hang with display: table-caption, large padding and left float inside it
27 * Fixed double handling of VKB on mouse_up event
45 * Fixes for disabling of mult cursor reading from file
46 * Fixed reported performance team problem with multiple reading cursor from file
48 * Disabled Extension mode on design document
117 * Fixed possibility to disable spatial navigation
11 * Make JS Break patch more simple, because window->setenabled is not
12 implemented.
36 * Enabled back JS suspending while Native events handling<F2>
32 * Updated for building with trunk engine.
33 Version 2007-09-29
34 Bonsai Date: 2007-09-28 23:12
40 * Disabled activation offscreen element
41 * Enabled variables initialize for js_LookupPropertyWithFlags crash
45 * Fixed mType initialization for both constructors
46 * Fixed glib criticals on create backbuffer
49 * Fixed disabled state for buttons widgets
51 * Fixed bug: Browser crash on opening page after invoking WLAN connection
52 through browser. Fixes: NB#70633
53 * Fixed bug:Valgrind reported unconditional jumps in Browser.
54 Fixes: NB#66825
55 * Fixed bug:Incorrect focus behavior when scrolling page with HW keys.
56 Fixes: NB#50934
62 * Fixed bug:Authentication : Server and Message fields are incorrect..
63 Fixes: NB#61394
64 * Fixed often crash in JavaScript after enabling JS suspend in
65 JSBreakExperimental.diff
66 * Disabled trunk updates while not fixed crash
67 * Fixed uninitialized variable in JS flags
68 * Fixed bug:Page www.4players.de is not rendered correctly after zooming its
69 content. Fixes: NB#57072
70 * Add 701_FixForTiledBGScaling.diff
71 * Fixed bug:RSS channel items are duplicated. Fixes: NB#56207
72 * Fixed bug:Internet keywords feature does not call "Google.. Lucky".
73 Fixes: NB#70218
74 * Fixed bug:Needless scrollbars visible. Fixes: NB#64367
75 * Fixed bug:Network error messages are wider than browser window and they
76 look complex and messy when zoom level is bigger than 100%.
77 Fixes: NB#65694
78 * Fixed bug:"browse" button on www.zshare.net is two times smaller than on
79 desktop version. Fixes: NB#65700
93 * Fixed bug:onFocus is not set on input element by the Select HW Key..
94 Fixes: NB#55701
95 * Added storage building for FF config
96 * Fixed bug:some drop-down menus are disabled and should be dimmed.
97 Fixes: NB#60893
99 * Fixed bug with JavaScript focus
100 * Fixed building gecko 1.8 compat by default
101 * Fixed building PasswordManager with DEBUG, logging options
102 * Updated moztree gtkmozembed
103 * Fixed storage enabled
104 * Added patch from some hidden JS bugs
105 * Added FF configuration option
106 * Disabled double registration for FTV component
107 * Fixed fit to view set for special browser window
109 * Enabled Windowless mode
110 * Fixed HandleEvent plugins handling
111 * Enabled using system cairo
112 * Fixed bug:WB toolbar lacks RSS button for BBC feeds. Fixes: NB#54733
115 * Fixed bug:Images flicker after zooming.. Fixes: NB#68855
117 * Added proper option for building SVG backport
119 * Fixed crash on Incremental download test with https
120 * Fixed bug:Unable to pan image. Fixes: NB#65521
121 * Fixed bug:Pages using charset UTF-8 look bad when opened from local file
122 system. FixeS: NB#66781
123 * Fixed bug:Triple scrollbars on cnn.com page zoomed to 300%.
124 Fixes: NB#61550
126 * Fixed bug:Auto - focus not working properly. Fixes: NB#66666
127 * Fixed bug:[GFX-GTK2] Page 'www.nordea.com' is rendered
128 incorrectly. Fixes: NB#54907
134 * Disabled wrong workaround for initializing engine in separate thread
137 * Fixed bug:Fixed broken installation of FTV component. Fixes: NB#68749
138 * Adding about:extensions implementation.
139 * Fixed building of XPCOM stub
140 * Added patch which will allow initialize almost all xpcom in separate
141 thread
142 * Fixed library search patch for microb packages
143 * Added some comments and info in prepare engine script
144 * Added commented updated zooming patch to series file
145 * Added new patch for zom implementation.
152 * Small updated for oforward functionality
153 * Fixed bug:Expanded combobox blocks toolbar and Zoom HWK. Fixes: NB#66625
154 * Fixed bug:Image cropped when zoomed in/out by tapping. Fixes: NB#65511
158 * Fixed bug:CSS style are incorrectly applied to network error notification
159 pages. Fixes: NB#57857
161 * Fixed bug:Form element render wrong when displayed on colored background.
162 Fixes: NB#66905
164 * Fixed bug:Unable to move focus out of text field with rocker.
165 Fixes: NB#66792.
168 * Fixed bug with changing theme on fly Bug 393976
169 * Fixed proper drawing of themed buttons
172 * Added UI for FitToView feature
174 * Improved FTV components Possible build on TRUNK mozilla sources
175 * Fixed problems with getting BOX dimensions
176 * Fixed Some problems in spatial navigation and FTV
177 * Updated to latest trunk
178 * Added xulrunner package
191 * Fixed bug:Page state is not preserved in FTV mode. Fixes: NB#66436
192 * Fixed bug:Security Testing: Browser crashes while opening GIF images.
193 Fixes: NB#66409
194 * Fixed bug:about:config Set Preference is not working with boolean types.
195 Fixes: NB#66688
196 * fixing url parsing to handle spaces (they're converted to plus as part of
197 urls)
198 * Fixed bug:Fixed broken CSS style for form controls.
199 * Fixed bug:Click on the zooming bar on the left once, and you get a CSM
200 menu launched. Fixes: NB#65859
202 * Fixed bug:By pressing the Tab button in the text area of the web page the
203 focus goes to the non-text entry field. Fixes: NB#55046
210 * Fixed possible crash on yahoo
211 * Fixed moving of mouse to the proper place
212 * Bug 1831 make description for about:config localizable
213 includes engineer's English for all localizations
216 * Fixed bug: Scrolling to not visible focusable element might
217 not happen. Fixes: NB#44373
218 * Fixed bug: fit width to view changes only part of the page. Fixes: NB#60297
221 * Fixed bug: disabled textarea is shown badly. Fixes: NB#50404
222 * Fixed bug: rocker does not work in text. Fixes: NB#65844
225 * Added libsqlite and nssdbm libraries
226 * Added symlink for mozilla-config in system directory
233 * Added depends for microb-refui
234 * Removed resources installing from engine (while crashes in gfx will not
235 fixed)
241 * Disabled good theming of radio/check buttons, dropdowns... because we have
242 broken Stretch/composite functionality
243 * Fixed division by 0 on gfx GTK2
244 * Fixed default zoom value
246 * Added controls for zoom testing
16 * Fixed bug:Browser; wrong alignment in Authentication dialog .weba.
17 Fixes: NB#71127
3 * Added check for valid instance object NPP_SetWindow
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 here 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 (...).
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.