Sunday, December 23, 2012

New year, new GPG key

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

As predicted by Mayan prophesies, my GPG key will expire at the end of the year 2012. Hence, I'm transitioning to a new key. This transition document is signed with both keys to validate the transition.

The old key, which I am transitional away from, is:
pub   1024D/22FEB115 2009-04-09 [expires: 2013-01-01]
      Key fingerprint = B3BA 1CB3 70D2 FBEC 4D93  93FC 217E B4E5 22FE B115

The new key, to which I am transitioning, is:
pub   4096R/D1B35332 2012-12-14 [expires: 2017-01-01]
      Key fingerprint = 5620 331F A1E0 4359 5A02  0C5D EC57 90F7 D1B3 5332

To fetch the full new key from a public key server using GnuPG, run:
  gpg --recv-keys D1B35332

If you have already validated my old key, you can then validate that the new key is signed by my old key:
  gpg --check-sigs D1B35332

Please contact me via e-mail if you have any questions about this document or this transition.

Daniel Holbert
2012-12-23
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAlDWwHUACgkQIX605SL+sRVTlgCgy2zuvK7tBktXw+AX6NPwsioY
VbcAoJZ9OPjEeQ5AVee+ESBtg/g2lsY2iQIcBAEBAgAGBQJQ1sB1AAoJEOxXkPfR
s1MyYwAP/Rbd1mxsSixmFpKsvTzZjGRy2ETp4tTZF9mstPBb9RxlmMDyEGQCFNV1
+JssP7rtCrlg3dX7O/Hyw68WwkVq+TjvfxJ2kKqwih4P3LKXsxOV/0/tVH5267zO
un4faWxkoUvjMO642g4cUr70yRqDkFxdBPXaTuChrrFChMjUMOTaG8Geioo7R/jN
ss7fPF6NJvWkVqVROoh3j5FM3miZG4Q1K2mWSqGZTM2MrasQEDqJR7Jk+7gvHwzO
0qMnfyU7LsqEKGZS44A8Ip0cTW8Pa2HItnzUltaNM0ee/RV744p1j07alCzOgcAE
fEBHhmsaKzRtk0hFgn8nVeOHPObapHGPUJ3CTkn1Nbg1RmNbLNxki6DUPts8iZe7
VkAlEP4SLRAzWGEPPGzb7R/KzCrT3q5PLAQJd9AbsCu0LfwO8qCGV8zBylof0tqx
1lKwdeI4RfYXgJrDiNG5jtrUqL5VQDJtCXCH2vFOycnZDrzOZOGQepuXhIzfrp5v
LtBUlqEO3VM4snaIy+1TtwnHwOu5TyEIpIAJin/NjGMouMr1qaxfFXT2Tv5aPqfM
TTk2DptfyzqV3l5H8ucV73L6Jp8Fh+yGAZWXo/cxYGPiX4GFhAulRjxZVmN0GTzJ
E44Es3Ov4j8YrwszELw3RmFVdBnse3cWwEkx3260pMz3YQjCvAhd
=w8o8
-----END PGP SIGNATURE-----


(For convenience, I've also posted this as a signed standalone text document.)

Friday, December 7, 2012

CSS3 Flexbox enabled in nightlies & ready for testing!

This morning, I checked in a patch to enable CSS3 Flexbox support in Mozilla's bleeding-edge nightly builds! So, in a day or two (when that change is merged to mozilla-central), our Nightly builds will support CSS3 Flexbox.

This is the new CSS Flexbox model -- using "display: flex", as opposed to the older "display: -moz-box" model. Also, in the spirit of avoiding vendor prefixes for experimental features, we'll be shipping this new flexbox implementation without a vendor prefix in development builds -- hence, "flex" instead of "-moz-flex".  It'll be guarded by a hidden preference ("layout.css.flexbox.enabled") which we can toggle to make it available in release builds, too, once it's been sufficiently tested and had its kinks worked out.

Today's patch simply toggled that hidden preference to "on" in Nightly builds, and that change will be merged to Aurora (Firefox alpha) builds around January 6th, the next merge day.  With some luck, this may continue to "ride the release trains" and be released as part of Firefox 20, but we'll evaluate its readiness when Firefox 20 is merged to the Beta channel and may toggle it off at that point (though anyone wishing to test flexbox would still be able to toggle the pref on for themselves).

So: please go forth and test the new flexbox support in nightlies, and file bugs for any issues you encounter! Eiji Kitamura's "CSS Flexbox Please" demo page is a fun place to start.

A few known issues:
  • When printed, flex containers currently get truncated at page-boundaries (though I'm actively working on fixing that).
  • The "order" property doesn't yet affect paint-order/layering (though it does control positioning) -- I've got a patch in hand that fixes this -- it's just awaiting review, and it'll hopefully land soon.
  • The line-wrapping "multi-line" version of flexbox is not yet implemented. (That's the "flex-wrap" property and the shorthand "flex-flow" properties.) I'll hopefully get to this in the near term, but it's somewhat separate from the core flexbox functionality, so we opted to implement it separately.