Blog posts for year 2012 page 2

News and other things I find interesting


RSS Feed


Jul
19
2012

Firefox for Windows 8 Metro, status update 5

Last modified: Thursday, July 19, 2012

It's been a couple months since the last progress update on Firefox for Metro, but things have been progressing at a steady pace.

A new intern working under Frank Yan named Jonathan Wilde started working with us. He's focused on the Metro front-end code, and is really tearing through tasks fast. He's implemented the new URL bar and tab bar as seen here.

Since the last update we've also more or less finished work on the appbar control (the orange bar that appears when doing an edge gesture in Windows 8).

We determined that sharing the same Firefox profile in both Desktop and Metro is out of scope for the initial version, so instead we plan to sync the settings between 2 profiles using Firefox Sync augmented with some key local events to force a sync right away by using Windows Messages, events, and the registry.

We've cleaned up and tweaked a lot of the Windows 8 contracts work. Fixed soft keyboard issues, improved gesture input support, fixed support for invoking external applications, and more.

The graphics code has also been improved by getting rid of the Basic Layers support and moving to LayerManager.

The upgrade from Windows 8 Consumer Preview to Windows 8 Release Preview came with several changes as well that were fixed up.

We removed the XAML interop support because MS decided this was for Metro applications only and not Metro style enabled desktop browsers. To do this we had to change some startup code, gfx code, and re-implement the appbar using XBL/XUL/JS.

Tim Abraldes finished work on combining metrofirefox.exe with firefox.exe, so now there's only one shared exe that dynamically determines which front-end to use. Metro Firefox uses a modified copy of Fennec XUL front-end which is found in browser/metro/.

We also implemented various bugs to support the registration for default browser in Metro. In particular, Windows itself must be responsible for invoking the default browser UI, so we added code to get Windows to prompt for it. The code for detecting which browser is the default has also changed in Windows 8, so that was updated too.

An existing open question was how we would distribute one build that worked both with Windows XP and Windows 8. Microsoft announced that they will be providing support for this, so we won't have to worry too much about it.

Of particular note is Bug 755724 which is to split up platform and app resources so that they can be loaded individually. This is probably the main thing holding us up from landing on mozilla-central. It needs an owner so please reach out to us on #windev if you have time to help out with this task.

A new command line firefox.exe -metrodesktop can be used for viewing the metro front-end in desktop mode. This is useful for things like debugging since Windows kills your process if you have it paused for too long. We're also starting to use this now to get tests running with the Metro front end. There's another bug filed but not completed yet to get tests running actually in Metro mode.

Tags:

Add a new comment | 5 comment(s)

Gravatar image Steve on Thursday, July 19, 2012 (06:07:53) says:

1 Question:
Does is support Adobe Flash?

(unlike Metro IE10 which currently forces an archaic whitelist of only public sites after a 10 week delay/approval process)

Gravatar image Percy Cabello on Thursday, July 19, 2012 (07:07:30) says:

Hope we can get this ahead of Windows 8 release! :D

Is there some build we can try? I am planning to move to Windows 8 this weekend and maybe I can help providing some feedback. Thanks!

Gravatar image Ahmed Nefzaoui on Thursday, July 19, 2012 (09:07:03) says:

Hi Brian, I tried "firefox.exe -metrodesktop"
but it opens the normal desktop view in both Official release and nightly. How can I get the metro version, and if it is not possible.. Should we expect a pre-release date ?

Gravatar image Brian R. Bondy on Friday, July 20, 2012 (11:07:21) says:

There are only builds available if you build from source code here:
http://hg.mozilla.org/projects/elm/

Once we get the code on mozilla-central though you'll be able to test things out with normal Nightly builds.

Gravatar image Yuhong Bao on Sunday, July 29, 2012 (05:07:02) says:

Another thing: VC2012 defaults to SSE2 code generation. This can be disabled by using /arch:IA32.





Jul
4
2012

Retrospection - My first year at Mozilla

Last modified: Wednesday, July 04, 2012

About a year and a half ago, Priya Patel reached out to me and offered me a position as a contractor. I eventually accepted and started work on July 6th 2011 under Benjamin Smedberg.

I put my heart and soul into it, and a couple months later I was offered a full time position. I started working as an employee under Robert Strong as my manager.


Early concerns:

I was initially offered a position as a contractor for a 3 month term and no guarantee of anything past that. I was coming from a salaried position with benefits, and since I had twin 2 year old boys, this scared the !#$#!% out of me. I knew the personal growth opportunities at Mozilla exceed those at my current position though, so I decided to take a chance.


Retrospection:

I'm happy to say that when looking back, I'm glad I took the risk, and consider it to be one of the best decisions I've ever made. I've had an amazing year.

Mozilla's values and principles are aligned with my own. They allow me to be open about what I work on. Hundreds of millions of people get to see my work, and I feel like I am not constrained in any way.

The people I work with are awesome, each in their own way, and I have an implicit trust in each of their abilities. QA, support, other developers, project managers, product managers... they've all taught me so much over the past year.


What I've completed over the past year:

Over the past year, not including any of the completed Windows 8 Metro work, I've pushed over 215 patches across over 170 resolved/fixed bugs.

I've also filed 200 bugs that need to be, or have been done.

I'm a module peer for Firefox, Toolkit, ImageLib, and Widget|Win32. I've done a ton of reviews and mentored several bugs. I'm also a member of the coding stewards group.

Here's a list of some of the larger things I've completed over the past year:

  • A ton of Windows 8 Metro work
    • Initial ground work along with Jim Mathies
    • Graphics code integration
    • Metro file picker
    • Metro contracts
    • Dozens of other tasks
  • Updater work:
  • Startup performance tasks under the Snappy project.
  • Dozens of platform integration tasks to better integrate with Windows
  • Jump list icons generated from favicons
  • ImageLib work:
    • BMP encoder
    • ICO encoder
    • Adding Vista style PNG ICO support.
    • Refactoring of ICO decoder to use the BMP decoder inside of it removing the duplicated code.
    • Adding hundreds of reftests
  • Adding a dozen different telemetry histograms
  • Firefox enhancements
  • Lots of crash fixes, memory leak fixes, and intermittent failure fixes
  • The Mozilla development cheatsheet
  • Windows 8 Lightning talk

Where I'd like to go from here:

As part of the coding stewards program, I'm starting work on a project to bring videos for code contributors. The plan is to have short 5-10 minute videos that each cover a single topic. This would be similar to Khan Academy videos in the 1 video per concept way, but will be more like a tutorial and will be focused on contributing to Mozilla.

In my past job I managed a team of developers and I expressed interest in doing this at Mozilla.

Lastly I want to continue doing what I'm already doing, I love making a difference and getting things done.

Tags:

Add a new comment | 7 comment(s)

Gravatar image Jared Wein on Wednesday, July 04, 2012 (01:07:15) says:

Brian, it's been really great working with you. I am super happy to work on the same team as you. Don't stop getting things done, you've got an amazing pace and I look up to you.

Gravatar image Asa Dotzler on Wednesday, July 04, 2012 (07:07:08) says:

I can't believe it's only been a year. Your impact on Firefox and Mozilla is huge. Thanks for taking a risk on us :D

Gravatar image Harsh86 on Wednesday, July 04, 2012 (12:07:10) says:

As a nightly tester, I can certainly say I've noticed your contributions, so thanks a lot.

Gravatar image Beth Burrell on Wednesday, July 04, 2012 (01:07:50) says:

So happy for you! It is only up from here!! You deserve it all

Gravatar image pretzer on Wednesday, July 04, 2012 (04:07:27) says:

This is truly impressive! Thanks for your hard work! I'm looking forward to see more of your metro work in the near future.

Gravatar image sekhar padikkal on Tuesday, July 10, 2012 (04:07:50) says:

This is an exciting time in browser market.The progress you guys are making is on the full throttle.A guy like you with an amazing pace in what you do, makes firefox a lot better. Your communication with the users regarding the progress you make is highly appreciated. Wishing you happy days in Mozilla. Looking forward to see more of your Firefox Metro Work.

Gravatar image Brian R. Bondy on Saturday, July 21, 2012 (07:07:55) says:

Thanks for the kind words!





Jun
8
2012

Visual Studio 2012 Express for Desktop applications

Last modified: Friday, June 08, 2012

Two weeks ago I wrote this tweet that generated over 1500 link clicks alone, as well as several retweets with different untracked links.

In this blog post I mentioned that actions speak louder than words and asked Microsoft to show us their commitment to open source.

I'm happy to say that today Microsoft announced that they listened to user feedback and will now be offering a Visual Studio Express for Desktop applications.

Not having a Visual Studio Express for Desktop applications would have had a negative impact on open source. Thanks to everyone who retweeted and voted!

Tags:

Add a new comment





May
26
2012

Visual Studio 11 Express - No support for building desktop applications nor metro style enabled desktop browsers

Last modified: Sunday, May 27, 2012

Microsoft announced last week that Visual Studio 11 Express will not have support for building Desktop applications, by extension this also means that it will not have support for building metro style enabled desktop browsers.

The workaround is to install Visual Studio 2010 and use the Windows 8 SDK. This isn't a good solution, but it's even worse when you consider metro style enabled desktop browsers. This workaround won't work for metro style enabled desktop browsers that need the Visual Studio 11 compiler. The Windows 8 SDK no longer ships with a compiler of its own.

Firefox can be built with a configuration option to disable the metro bits, so you'll still be able to use Visual Studio 2010 Express to develop on Windows 8, but not if you want to work on Metro related things. In that case, you'll need to use a paid version of Visual Studio 11.

As we've seen with Visual Studio 11 though, who itself can't target Windows XP, this will eventually become a problem as Windows versions increase if no change is made by Microsoft.

I hope that Microsoft will come out with an edition of Visual Studio 11 Express for desktop development, because it hurts open source projects that want to develop for Windows 8 and beyond.

If you also think this will hurt open source development in the long run, you can vote to add support for desktop development back into Visual Studio 2010 Express. Vote it, tweet it, blog it, add comments to it.

Microsoft has previously claimed that it loves open source:

"We love open source," says Jean Paoli of Microsoft in a recent interview with Network World. "We have worked with open source for a long time now."

Actions speak louder than words, please show us.

Tags:

Add a new comment | 4 comment(s)

Gravatar image Anonymous on Saturday, May 26, 2012 (06:05:31) says:

Long-term, have you considered migrating Firefox to build with a MinGW toolchain instead?

Gravatar image Brian R. Bondy on Saturday, May 26, 2012 (06:05:28) says:

We do have some contributors building that way but it's not currently the primary way people build. And our Nightly builds and tests all run with builds made with Visual Studio currently. That wouldn't help with the Metro related bits problem also.

Gravatar image Jay on Monday, May 28, 2012 (04:05:33) says:

Microsoft doesn't like open source/free software.

Microsoft doesn't like competition.

Open source is the worst kind of competition for Microsoft.

You've 2 alternatives: don't develop for windows, find an alternative.

Don't beg. Makes you look weak!

Gives credence to those that say that open source is for "hobbyists".

Gravatar image Brian R. Bondy on Friday, June 08, 2012 (06:06:21) says:

Please see here:
http://www.brianbondy.com/blog/id/143/visual-studio-2012-express-for-desktop-applications

Microsoft does like open source, they just made a temporary bad decision which they corrected.

Also there's a big difference between advocating and begging.





May
26
2012

DirectX and XAML interop - Great feature, but not for metro style enabled desktop browsers

Last modified: Saturday, May 26, 2012

The Windows 8 Consumer Preview introduced a great new feature called XAML interop for DirectX applications. Since Firefox on Metro is a Direct X application, we took advantage of that feature.

Using XAML interop made the following things easier:

  • Platform integration features
  • Input related work
  • The appbar
  • Edge detection
  • Other areas where we would use XAML based WinRT APIs

We ran into a bug in Windows where our process would crash on suspend though. This bug was confirmed in Windows 8 and was expected to be fixed for the release preview. Unfortunately since then, it was decided that this functionality would not be supported for metro style enabled desktop browsers.

This doesn't cause us major pain, but does take some extra time. We need to backout the XAML interop support. I'll be working on doing that this weekend, and expect to be finished by Monday.

We are currently using XUL for UI, if we ever did decide to switch to native UI like Android did, then this may be a problem. The appbar support will be reimplemented in XUL.

Tags:

Add a new comment





Prev page Next page