Rumbling Edge - Thunderbird2014-12-21 Calendar builds

Common (excluding Website bugs)-specific: (37)

  • Fixed: 392028 – Get/Set Calendar prefs from Google (color, title, etc)
  • Fixed: 396496 – install gdata-provider into dist/bin/extensions/ when built with Thunderbird
  • Fixed: 407961 – Google sends Email reminders to all non-google attendees, 24 hours before the event
  • Fixed: 411280 – Make sure EXDATEs are specified in UTC
  • Fixed: 442373 – Implement/Investigate OAuth support
  • Fixed: 461300 – switched off gdata calendar -> invite attendees dialog starts gdata login dialog again
  • Fixed: 467153 – Allow fast, easy configuration of Google Calendar (integrated into lightning)
  • Fixed: 491425 – Snoozed alarm instantly re-fires
  • Fixed: 493389 – Provider for Google Calendar cannot sync tasks.
  • Fixed: 565955 – Login seems to work, but no events are displayed and password isn’t stored in pw manager
  • Fixed: 600065 – Disallow setting invalid reminder values (i.e more than 28 days) for Google Calendar
  • Fixed: 604227 – GData Provider can’t sync shared calendar with access set to “See only free/busy”
  • Fixed: 668321 – Support Google two step verification
  • Fixed: 684482 – Investigate use of gCal:syncEvent to fix invitations
  • Fixed: 775516 – Update to Lightning 1.6: Google calendar entries disappearing from view after some time
  • Fixed: 795851 – Redirects cause dialog asking user if he wants to post his data again
  • Fixed: 867067 – MODIFICATION FAILED when custom reminder is > or = 29 days
  • Fixed: 1043171 – Editing events last selectable category in listbox is shown twice
  • Fixed: 1060363 – Provider for Google Calendar 0.32 – MODIFICATION_FAILED in notify for remind greater then 3 week or 22 day (32768 minutes)
  • Fixed: 1061363 – Syncing Lightning w/GDATA Provider blocks/hangs/freezes UI thread
  • Fixed: 1065612 – Frequently recurring dialog provides almost no useful diagnostic information
  • Fixed: 1073922 – Hard-coded date format in the calendar views
  • Fixed: 1073982 – Add context menu options to show a single calendar and show all calendars
  • Fixed: 1079189 – Code Review for bug 493389 – Provider for Google Calendar cannot sync tasks
  • Fixed: 1080208 – Google Calendar events are showing up twice.
  • Fixed: 1081534 – icaljs is broken in Lightning nightly
  • Fixed: 1082478 – Use application locale when showing OAuth window
  • Fixed: 1083084 – Provider for Google Calendar 1.0.1 fails to download, hash did not match
  • Fixed: 1083934 – Google calendar provider ignores default new event/task reminder setting
  • Fixed: 1085287 – Invalid time zone definition for start time
  • Fixed: 1099869 – Default task start and due dates use the wrong second
  • Fixed: 1100799 – Edit recurrence dialog: recurrence rule preview doesn’t work
  • Fixed: 1103637 – google agendas desappear if not connected
  • Fixed: 1106034 – Lightning 3.6b1 crashes entire Gnome session
  • Fixed: 1106047 – Compatibility for Postbox
  • Fixed: 1107865 – Lightning 3.6b1 does not work with SeaMonkey 2.31
  • Fixed: 1108597 – AddItem() fails when called from native code (stack.filename is null)

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

Rumbling Edge - Thunderbird2014-12-21 Thunderbird comm-central builds

Thunderbird-specific: (43)

  • Fixed: 398531 – Find and Replace dialogue: Pressing Enter key with focus outside buttons unexpectedly closes the dialogue: can’t continue to “Find next”
  • Fixed: 628035 – Adding unknown email addresses to Mailing list, then deleting ghost duplicate entries from contacts pane, causes dataloss in mailing list (contacts pane list is not updated/refreshed)
  • Fixed: 731145 – Provide a checkbox for “default offline.autoDetect” option
  • Fixed: 824909 – Print/Print preview of .eml files shows blank on linux – don’t add wrong file association to ~/.local/share/applications/mimeapps.list
  • Fixed: 910293 – TEST-UNEXPECTED-FAIL | newmailaccount/test-newmailaccount.js | test-newmailaccount.js::test_can_display_providers_in_other_languages
  • Fixed: 947616 – Existing SeaMonkey/outlook/oexpress/eudora profile is no longer offered for migration to Thunderbird (import in a first-run situation)
  • Fixed: 1000162 – Bad Tab layout on Beta builds
  • Fixed: 1039003 – Port |Bug 633773 – Use Google’s HTTPS search by default|, |Bug 958883 – Use HTTPS for Yahoo searches| and search plugin parts of |Bug 959576 – Create a component to get the list of priority domains| to Thunderbird
  • Fixed: 1040009 – .mozconfig configure options are ignored if objdir path is absolute
  • Fixed: 1064795 – TEST-UNEXPECTED-FAIL | older-widget/test-message-filters.js | test-message-filters.js::test_customize_toolbar_doesnt_double_get_mail_menu
  • Fixed: 1081190 – Using InstallTrigger gets “NS_ERROR_FACTORY_NOT_REGISTERED” error – need to port bug 926712 to TB and IB
  • Fixed: 1081693 – Port Bug 947507 to thunderbird: Reset intl.charset.detector if not set to off, Japanese, Russian or Ukrainian
  • Fixed: 1082607 – Disable Edit and Remove buttons on Tag Manager when there is no selection
  • Fixed: 1082896 – New mail notification shows garbled sender name when name is encoded.
  • Fixed: 1084973 – Port |Bug 1031352 – share the logic for determining what MSVC DLLs to package| to im, mail, and suite
  • Fixed: 1085205 – Create filter from – Chooses wrong field
  • Fixed: 1091675 – Implement quoting to disable multi-word search in addressbook
  • Fixed: 1099861 – There are some resource path mixing ://gre/modules and ://modules
  • Fixed: 1099866 – Not checking for attachments creates UI problems in Compose window
  • Fixed: 1100152 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/tests/xpcshell/tests/toolkit/components/terminator/tests/xpcshell/test_terminator_reload.js
  • Fixed: 1100380 – [10.10] Use vibrancy in the tabbar and address tabbar styling issues in Yosemite.
  • Fixed: 1100521 – [10.10] Yosemite styling for sidebars across TB.
  • Fixed: 1100534 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/mozmill/folder-display/test-columns.js | test-columns.js::test_persist_columns_gloda_collection
  • Fixed: 1100672 – Port |Bug 990799 – Update search plugins to use rel=”searchform”| to Thunderbird
  • Fixed: 1100951 – Toolbar -> Titlebar gradient doesn’t match in Yosemite.
  • Fixed: 1102013 – mail/installer/package-manifest.in needs to be updated after the cleanup in bug 1096494
  • Fixed: 1102377 – Port Bug 1094303 (Move buildlist invocations into misc tier) for c-c
  • Fixed: 1102588 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/mozmill/content-tabs/test-plugin-crashing.js | test-plugin-crashing.js::test_crashed_plugin_notification_bar
  • Fixed: 1102892 – Passwords gone after update – port bug 1030059 for Thunderbird
  • Fixed: 1104835 – Port bug 1101170 (Move Linux desktop sandboxing code into plugin-container) to fix bustage: Missing file(s): bin/libmozsandbox.so
  • Fixed: 1104931 – unify the 4 identical accountProvisioner.css files
  • Fixed: 1105197 – check-sync-dirs is no longer run over build/ vs mozilla/build
  • Fixed: 1105715 – Add asan.manifests (port bug 886842)
  • Fixed: 1105723 – Port Bug 1067893 – Detect OTOOL in configure and use it for all ‘otool’ calls
  • Fixed: 1106349 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/tests/xpcshell/tests/toolkit/components/search/tests/xpcshell/test_selectedEngine.js
  • Fixed: 1106585 – Port ‘Bug 1094565 – Update sccache to e68dfc2′ to comm-central and comm-aurora to fix check-sync-dirs.py failure
  • Fixed: 1107902 – Unable to add accounts when a DWM registry key is missing.
  • Fixed: 1107959 – Port bug 1005456 to thunderbird / instantbird
  • Fixed: 1108057 – Port Bug 1106917 – Content font size setting affects some UI elements too, breaking the layout
  • Fixed: 1108198 – Port bug 639134 to TB – ["Allow pages to choose their own colors" does not work with high contrast windows 7 themes]
  • Fixed: 1108207 – Remove doubled styles in accountProvisioner.css
  • Fixed: 1109057 – client.py does not follow the flake8 conventions
  • Fixed: 1113042 – comm-central build for win64 is note updated after 2014-11-25

MailNews Core-specific: (28)

  • Fixed: 286760 – email address with leading/trailing whitespace in Address book, Account manager, or Composition [foo@bar.com ] displays wrongly with added quotes when composing ["foo"@bar.com], causing lost mails and malformed “duplicate” AB entry
  • Fixed: 331560 – “Order Received” reversed when copying messages from Local to IMAP account
  • Fixed: 467118 – Switch Integrated Search indexing over to use nsIIdleService instead of message displayed timers
  • Fixed: 846123 – Thunderbird 100% CPU for minutes when copying a large number of messages (IMAP Online Copy, Copy between Offline-Use=Off folders)
  • Fixed: 870556 – O(n^2) performance freezes UI for several minutes fetching new mail from IMAP server for very large folder
  • Fixed: 1008843 – React to the removal of T.61-8bit
  • Fixed: 1008845 – React to the removal of x-johab
  • Fixed: 1025886 – React to the removal of ISO-2022-KR and ISO-2022-CN
  • Fixed: 1026946 – React to the removal of EUC-TW
  • Fixed: 1067807 – React to the removal of non-Encoding Standard DOS encodings
  • Fixed: 1068505 – React to the removal of non-Encoding Standard Mac encoders
  • Fixed: 1068510 – React to the removal of ARMSCII8
  • Fixed: 1069907 – React to the removal of ISO-IR-111
  • Fixed: 1069909 – React to the removal of ISO-8859-6-I and -E and ISO-8859-8-E as Gecko-canonical names
  • Fixed: 1070986 – React to the removal of us-ascii as a Gecko-canonical name
  • Fixed: 1072202 – React to the removal of VISCII, x-viet-tcvn5712 and x-viet-vps
  • Fixed: 1074125 – Avoid duplication of labelsencodings.properties in charsetalias.properties
  • Fixed: 1082243 – Port |Bug 1077151 – Always use expandlibs descriptors when they exist| to comm-central
  • Fixed: 1085004 – mIsCachable is always true
  • Fixed: 1096109 – Port |Bug 1091383 – Move delayload logic entirely in moz.build frontend code| and |Bug 1091384 – Remove EXPAND_LIBNAME and affiliated| to c-c
  • Fixed: 1096778 – Include browser-element.xpt that defines the nsIBrowserElementAPI interface
  • Fixed: 1099430 – Eliminate the duplication of the build system in comm-central
  • Fixed: 1103373 – Add strings for Bug 529697 – (CSP 1.1) Implement form-action directive
  • Fixed: 1106346 – Needs to follow nsInsIAlertsService.showAlertNotification change
  • Fixed: 1109058 – Fix a header guard in mailnews/base/src/nsMsgSearchDBView.h
  • Fixed: 1109061 – Remove some useless variables
  • Fixed: 1111304 – assertion failure loadinfo
  • Fixed: 1112413 – mailnews/compose/src/nsMsgCompose.cpp:1476:28: error: ‘class nsIScriptContext’ has no member named ‘GC

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

The Mozilla BlogBuilding a Healthy Web to Hand to Future Generations

Ten years ago, a scrappy group of ten Mozilla staff and thousands of volunteer Mozillians broke up Microsoft’s monopoly on accessing the Web with the release of Firefox 1.0. We won by bringing together a diverse and global community through … Continue reading

Mozilla: View Source FundraisingThanks to Our Amazing Supporters: A New Goal

We set a goal for ourselves of $1.75 million to raise during our year-end fundraising campaign this year. I’m excited to report that today—thanks to 213,605 donors representing  more than 174 countries who gave an average gift of $8 to … Continue reading

Firefox AppsKhan Academy Makes Education Accessible

KA1Featuring more than 5,000 instructional videos and guided coursework covering a full array of subject matter—everything from math and science to art history and finance—the Khan Academy app is a beautiful illustration of the power of the mobile web. Brian R. Bondy developed the Firefox OS version of Khan Academy and tells us why this is such an important and personal project for him…

Is there a certain student age range for which Khan Academy is best suited? 
Brian R. Bondy: Khan Academy is a non-profit with a mission to provide a free, world-class education for anyone, anywhere. The content not only covers K-12 but also goes beyond that. I’ve heard stories of 97-year-old ladies using the site. The content is applicable to any age, race, or gender. 

KA3Current languages supported include English, French, Portuguese, Spanish, Turkish, and Bengali—do you have any plans to expand your language support?
BRB: We’ll definitely be supporting more languages as time goes on. Adding additional languages to the app itself is not too hard, but we need to make sure that the content on the site provided by the APIs is also localized.

One contributor, Sashoto Seeam, not only localized the app to Bengali, but also created links for hundreds of videos on the site itself. This ensures that content is delivered in the proper language.

How did you personally become involved with the Khan Academy project?
BRB: I’ve been a contributor on and off for a few years. In April 2014, I decided it was something I wanted to do full time.

Do you plan to add features to the app over time?
BRB: Yes, I’ll be actively developing the app during my spare time. I’m also starting to get help from the open source community. For example in v1.1 of the app, there is a feature to set the playback rate of videos, and it was developed by a contributor named Farez Vadsaria.

Do you have any other future plans for the app?
BRB: Yes, a couple of the major features include a new video player (using video.js) and exercise support for the app.

KA2Which frameworks did you use to build the app?
BRB: The app was built with Facebook’s React + Backbone for models. React is awesome, free, and open source. You declaratively specify your app’s views in various modularized components. It greatly simplifies your code and more Firefox OS apps should use it.

Khan Academy gives users “energy points” for the educational content they engage with. Can you explain more about this credit system and why it matters?
BRB: Energy points is just a quick measure of the effort someone puts in at Khan Academy. Points are awarded for a variety of things, but most commonly for performing activities like watching videos and doing exercises. They help motivate learners and sometimes users will set personal goals for obtaining a certain number of points. Other reward systems used by the site include badges, levels, and attaining mastery at various different skills.  Only energy points are currently in the Khan Academy Firefox OS app, but there are plans to support the other reward systems too.

If you’re interested in learning more about Khan Academy and why Brian developed it for Firefox OS, here’s a link to a recent post on his blog.

SUMO BlogWhat’s up with SUMO – 19th December

The last-but-one SUMO blog post for 2014. Can you feel the excitement of 2015 already? I usually get stuck with writing the old year whenever I have to put a date down for a month or so… But, enough about me, let’s talk about you – the SUMO nation!

Salutations to those who joined us recently

…if I missed your username, I’m sorry – make yourself known in the comment section!

The latest SUMO Community meeting

Agenda and notes: https://etherpad.mozilla.org/sumo-2014-12-15… and the video is below!

Reminder: the next SUMO Community meeting…

  • …is going to take place on Monday, 22nd of December (unless we decide to cancel entirely, so keep an eye on the forums and our Twitter feed).
  • You can find the agenda and notes here: https://etherpad.mozilla.org/sumo-2014-12-22
  • Remember – if you want to add a discussion topic to the live meeting agenda:
    • Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Monday (this will make it easier to have an efficient meeting).
    • Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda).

Community shout-outs

  • HBloomer for writing new KB articles within her first two weeks – thank you!
  • duggabe for jumpstarting the Thunderbird IA project – woot :-)
  • philipp and centurion for their input on 2015 KB goals – kudos, gentlemen…
  • pollti and scootergrisen for their ongoing contributions towards improving their locales – you rock!
  • jayelbe for providing super helpful answers in the forum – hooray!

Forum news

KB news

  • Searches for “Firefox” went up 15% on Google and they were mostly related to the Flash plugin.
  • The goals for January and onward: organized KB contributor onboarding, re-testing and adjusting of the information architecture, shorter, SEO and more l10n-friendly articles.
  • More 2015 goals here – please share your KB wish list with us!

L10n news

Firefox (+ OS, + for Android) news

One final request: please share your 2014 highlights (and one wish for 2015) with us here! We’re looking forward to hearing what made you happy around Mozilla and SUMO in the last 360+ days.

Air MozillaWebmaker Demos December 19

Webmaker Demos December 19 Webmaker Demos December 19

Air MozillaBay Area Rust Meetup December 2014

Bay Area Rust Meetup December 2014 Topics about Rust & Cryptography

Mozilla: View Source FundraisingA/B Testing: ‘Sequential form’ vs ‘Simple PayPal’

This post is one of a series where we’re sharing things we’ve learned while running A/B tests during our End of Year fundraising campaign. At Mozilla we strive to ‘work open’, to make ourselves more accountable, and to encourage others … Continue reading

Mozilla Add-ons BlogAdd-on Compatibility for Firefox 35

Firefox 35 will be released on January 13th. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 35 for Developers, so you should also give it a look.

General

New!

Please let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 35, I’d like to know.

The automatic compatibility validation and upgrade for add-ons on AMO will happen soon, so keep an eye on your email if you have an add-on listed on our site with its compatibility set to Firefox 34.

QMOTestdays Wrap-up 2014

I’m writing to announce that the testday last Friday marks the final Testday for 2014. Due to upcoming holidays, we will not be organizing any more events for the remainder of the year. As the year wraps up we will be conducting a review of the Testdays program to see what we can do in 2015 to foster greater volunteer opportunities. I will write a post on that topic once I have news on that review.

If you want to get involved with Mozilla QA during this time, feel free to mention my name on IRC (ashughes) or email me.

Thank you to everyone who volunteered through 2014. I hope you all have a safe and happy holiday.

See you in 2015!

SUMO BlogThursday, December 18th, is SUMO Day!

It’s Thursday so it’s the perfect time to organize a new SUMO day! We’ll be answering questions in the support forum and helping each other in #sumo on IRC today.

Join us, create an account and then take some time today to help with unanswered questions. Please check the etherpad for additional tips. We have been experiencing quite a high number of questions in the last few days. Our goal this Thursday is to respond to each and ever one of them, so please try to answer as many questions as you can throughout the day.

Let’s do it!

Open Policy & AdvocacyThe Benefits of Fellowship

In just a few weeks, the application window to be a 2015 Ford-Mozilla Open Web Fellow will close. In its first year, the Fellows program will place emerging tech leaders at five of the world’s leading nonprofits fighting to keep the Internet as a shared, open and global resource.

We’ve already seen hundreds of applicants from more than 70 countries apply, and we wanted to answer one of the primary questions we’ve heard: why should I be a Fellow?

Fellowships offer unique opportunities to learn, innovate and gain credentials.

Fellowships offer unique opportunities to learn. Representing the notion that ‘the community is the classroom’, Ford-Mozilla Open Web Fellows will have a set of experiences in which they can learn and have an impact while working in the field. They will be at the epicenter of informing how public policy shapes the Internet. They will be working and collaborating together with a collection of people with diverse skills and experiences. They will be learning from other fellows, from the host organizations, and from the broader policy and advocacy ecosystem.

Fellowships offer the ability to innovate in policy and technology. The Fellowship offers the ability to innovate, using technology and policy as your toolset. We believe that the phrase ‘Move fast. Break things.’ is not reserved for technology companies – it is a way of being that Fellows will get to experience first-hand at our host organizations and working with Mozilla.

The Ford-Mozilla Fellowship offers a unique and differentiating credential. Our Fellows will be able to reference this experience as they continue in their career. As they advance in their chosen fields, alums of the program will be able to draw upon their experience leading in the community and working in the open. This experience will also enable them to expand their professional network as they continue to practice at the intersection of technology and policy.

We’ve also structured the program to remove barriers and assemble a Fellowship class that reflects the diversity of the entire community.

This is a paid fellowship with benefits to allow Fellows to focus on the challenging work of protecting the open Web through policy and technology work. Fellows will receive a $60,000 stipend for the 10-month program. In addition, we’ve created a series of supplements including support for housing, relocation, childcare, healthcare, continuing education and technology. We’re also offering visa assistance in order to ensure global diversity in participants.

In short, the Ford-Mozilla Open Web Fellowship is a unique opportunity to learn, innovate and gain credentials. It’s designed to enable Fellows to focus on the hard job of protecting the Internet.

More information on the Fellowship benefits can be found at https://advocacy.mozilla.org/. Good luck to the applicants of the 2015 Fellowship class.


The Ford-Mozilla Open Web Fellows application deadline is December 31, 2014. Apply at https://advocacy.mozilla.org/.

Air MozillaReps weekly

Reps weekly Weekly Mozilla Reps call

Air MozillaTeach The Web Talks V1

Teach The Web Talks V1 Are you interested in education and the web? Join us on Dec 18th for a Teach the Web Talk with Evan Jones from @TheCLAlliance.

Meeting NotesMobile: 2014-12-17

Schedule

  • 2015-01-12

Tracking Review

Beta

  • Next Build:
ID Summary Status Assigned to
987223 No visible H.264 video playback on MPEG-4 AVC (part 10) (avc1) (Planar 4:2:0 YUV) on Android 4.0 devices NEW Edwin Flores [:eflores] [:edwin] (edwin)
1058160 Specify main activity org.mozilla.fennec.App with a default intent over org.mozilla.search.MainActivity ASSIGNED Nick Alexander :nalexander (nalexander)
1064669 GooglePlayServicesUtil.isGooglePlayServicesAvailable takes ~212ms during startup REOPENED Wesley Johnston (:wesj) (wjohnston)
1071690 WebGL content disappears NEW Robert O’Callahan (:roc) (Mozilla Corporation) (roc)
1073554 Visible seams in webpages while panning NEW Matt Woodrow (:mattwoodrow) (matt.woodrow)
1079584 Persist delayed search events on disk ASSIGNED swaroop.rao
1083271 Big regression in taskjs benchmark 2014-10-08 NEW Matt Woodrow (:mattwoodrow) (matt.woodrow)
1090300 crash in mozilla::MediaCodecDataDecoder::DecoderLoop() REOPENED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1096090 Android Aurora 35 fails to play videos on Asus Memopad NEW James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1098390 Graphic buffer garbage shown and persists when entering full-screen (video/regular content) in Android 5.0 (Nexus 5) NEW Wesley Johnston (:wesj) (wjohnston)
1098421 Aurora stops unexpectedly when trying to launch Search Activity from the widget NEW :Margaret Leibovic (margaret.leibovic)
1100100 Downloaded file can’t be opened from “Downloads” page NEW Wesley Johnston (:wesj) (wjohnston)
1100126 Flickering green/pink screen while playback video in different devices ASSIGNED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1100439 Tinted status bar not working in Android 5.0 ASSIGNED Stefan Arentz [:st3fan] (sarentz)
1105316 crash in java.lang.NullPointerException: at org.mozilla.search.providers.SearchEngineManager.createEngineFromLocale(SearchEngineManager.java) ASSIGNED :Margaret Leibovic (margaret.leibovic)


15 Total;
15 Open (100%);
0 Resolved (0%);
0 Verified (0%);

Aurora

  • Next Build:
ID Summary Status Assigned to
710802 we need updater tests NEW James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
936849 Tablet tabs tray seems to get stuck in some kind of selection mode NEW Martyn Haigh (:mhaigh) (mhaigh)
1010068 Disable OCSP in Firefox for Android NEW Brad Lassey [:blassey] (use needinfo?) (blassey.bugs)
1016555 Disable OCSP checking for certificates covered by OneCRL ASSIGNED David Keeler (:keeler) [use needinfo?] (dkeeler)
1061268 Wrong photo gets used in some BBC articles NEW
1063873 Ship the right libomxplugin files for supported API ranges NEW
1074635 don’t rerender the page for every frame in a GuM tab video stream NEW
1076966 Use “immersive” fullscreen mode REOPENED
1084711 Graphic rendering problems on trunk, black boxes, nothing renderend, eventually crashes NEW Milan Sreckovic [:milan] (milan)
1089653 crash in java.lang.NullPointerException: at org.mozilla.search.SearchActivity.updateSettingsButtonVisibility(SearchActivity.java) NEW Mark Finkle (:mfinkle) (mark.finkle)
1090884 Back button doesn’t do anything NEW
1091461 Tapping anywhere under the ‘Private Browsing’ tip in the History panel will open the Custom menu ASSIGNED Chenxia Liu [:liuche] (liuche)
1091520 Improve framerate of tab tray animation NEW Martyn Haigh (:mhaigh) (mhaigh)
1091677 crash in @0x0 | mozilla::layers::ImageHost::GenEffect(mozilla::gfx::Filter const&) ASSIGNED Jonathan Watt [:jwatt] (vacation Dec 22 – Jan 5) (jwatt)
1094214 fuzzy text NEW


15 Total;
15 Open (100%);
0 Resolved (0%);
0 Verified (0%);

Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs. Make sure friends also get awarded a badge. New contributors are highlighted in bold.

  • Nivvedan fixed bug 1109233 – Replaced Assert.isTrue(false, …) with Assert.fail(…) for easier readability
  • Jalpreet fixed bug 1107253} – Move mBaseUrl and mRawBaseUrl from BaseTest into BaseRobocopTest
    • Also working on cleaning up the home banner visuals – bug 1064461, bug 966654
    • Also helping with gradle integration, thanks!
  • vivek fixed bug 1096669
  • (iOS) TBonnin fixed bug 1110219 – Toolbar textfield reflects the actual page URL
  • (iOS) Chuongv is working on bug 1109647 – Progress bar version2

Stand ups

Suggested format:

  • What did you do last week?
  • What are working on this week?
  • Anything blocking you?

Please keep your update to under 2 minutes!

James W. (snorp)

<Read Only>

  • Fix crash reporter on Android L
  • Add openh264 support
  • Fix bug 1049138

JChen

<Read Only>

Fixed
Working on

GCP

<Read Only>

Last week

  • MozFlu
  • WebRTC e10s sandboxing: building scaffolding, trying to move stuff around
  • Some reviews

Next week

  • WebRTC e10s sandboxing: move more stuff around

Randall Barker

<Read Only>

Last Week:

  • Rebased standalone patches onto WebRTC sdp refactor
  • Enabled two pass build of WebRTC unit tests
  • Started investigating standalone nsPrefService

Next Week:

  • Continue nsPrefService work
  • Get patches ready for review and landing

Eugen Sawin

Fixed

  • bug 991923 – Server not found when switching networks on Android 3-5
    • (dup) bug 947801 – DNS resolution sporadically fails in Android 4.4/5.0 when connected to a VPN
    • (dup) bug 1051637 – Unable to establish web connections through a VPN in Firefox for Android (KitKat+)
  • bug 1109940 – Add symbol wrapping for Android DNS resolver
  • bug 1110529 – Recursive chaining in wrapped Android DNS resolver

Working on

Brian Nicholson

<Read Only>

WesJ

<Read Only>

  • Working through “favicons” on iOS.
  • Building some data abstractions around storing favicons
  • Looked at some sqlite data layers
  • Implemented a CoreData saving layer

LucasR

Last week

Next week

liuche

<Read Only>

Highlights:

  • Defining passwords UI with Anthony
  • Onboarding WIP for v1.5

Past:

Margaret

Highlights:

  • Moved reader mode code to toolkit – bug 793920
  • Landed Downloads.jsm patches – bug 901360
  • Landed tracking protection settings UI (Nightly only) – bug 1107133
  • Disabled estimated reading time in reading list – bug 1110461
  • Working on defaulting to show URL in urlbar instead of title (and updating All The Robocop Tests) – bug 1111729
  • Trying to finish a search activity crash fix – bug 1105316

Past:

Present:

mcomella

<Read Only>

Past
  • New tablet
    • bug 1105541 – Fine-tune Lightweight theme colors on new tablet
    • bug 1109739 – Use dev tools to ensure new tablet LWT is performant
    • bug 1112397 – Go back in testSettingsMenuItems on 7″ tablet
Present
  • New tablet
    • bug 1107386 – Browser menu is clipped and unusable on the Kindle Fire
    • bug 1095278 – Android builds are going to burn when Gecko 36 merges to Beta
    • bug 1105472 – Domain highlighting fails when the URL is longer than the Awesomebar
    • bug 1106935 – Remove old tablet code and resources
    • bug 1110555 – Graphical glitches when rotating with LWT enabled
  • bug 1085837 – Intermittent testAppMenuPathways | application crashed [None]
Future
  • bug 939350 – Create Python linter wrapper
  • bug 983437 – Delay FHR pruning until the screen is off

rnewman

<Read Only>

Fixed
Working on

nalexander

<Read Only>

Projects for this cycle:

  • (Android) Migrate legacy Sync 1.1 devices
    • in progress — UI surface landed (bug 1098667), working on the migration flow
  • (iOS) Implement Firefox Account client
  • Build system stuff
    • Proguarding libraries (bug 1106593) uplifted to Aurora and Beta
    • Another about building with external build systems (Gradle? Buck?) ready to be posted
    • Working on |mach bootstrap| for mobile/android (bug bootstrapfennec)
Past
Present

Martyn Haigh

Past:

  • Said goodbye to lucasr :'(

Present:

Stefan

<Read Only> – But can do quick demo

Been working on smaller UI improvements. Now working on location text field improvements like auto-complete / site suggestions.

BLassey

Fixed
Working on

Antlam

<Read Only>

  • Past
    • PTO
    • Search results page mocks and meetings
  • Upcoming
    • Hack week in SFO for Reader Mode with Desktop
    • Passwords UX work and bugs with Chenxia
    • Onboarding clean up with Chenxia
    • Loading URL in background work with Martyn
    • Doorhangers/ site ID UI clean up
    • Following up with some contributor bugs

Robin

105
Still working on navigation variations. Would like to keep Australis-like feel to UI. Currently playing with using lower tab bar for FxA access.

Search
Researched mobile browser comparisons with different search terms. Had meeting yesterday with team and provider to go over possible UX changes.

Provided feedback on bugs:
bug 1112232

Darrin

<Read Only>

Last Week

  • PTO

This Week

  • Mobile search results proposal
  • iOS browser research and sketching
  • Some initial UX planning for 2015: projects, priorities and goals

QA

Garvan

<Read Only>

  • Fennec Stumbler: Starting to see significant contributions, which revealed we are missing the needed metrics on the MLS server end to make conclusive statements about the value of these contributions. Working on it.
  • Did have 1 crash so far, is fixed, landed in in beta.

Feature Focus

<Read Only>

  • Mobile Roadmap in Trello
  • Funnel review coming up on Monday, December 22nd.
  • 37 in Roadmap is updated per yesterdays Product Planning meeting, but please let me know if you have additional updates or items that should be tracked here.

Details

  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 99998
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 99998
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 99998
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 99998
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 99998
    • UK/London: +44 (0)207 855 3000, x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
  • irc.mozilla.org #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2014-12-17

Schedule & Progress onUpcoming Releases (Lawrence)

  • Mobile 34.0.1 gtb today with fixes for
    • bug 1110499 – Crash reporter does not work in Android L
    • bug 1108627 – Regression: market-specific search defaults (desktop) broke default engine behavior for Fennec
    • May also include bug 1105590
  • 35 beta4 shipped today
  • Modified Beta schedule for holidays (from dev-planning post)
    • Week 3 – Dec 15-19: Beta 4 (Desktop & Mobile) and Beta 5 (Desktop) build & ship as usual
    • Week 4 – Dec 22-26: Beta 6 (Desktop & Mobile) gtb on Monday Dec 22 as usual, ship on Tues Dec 23 – no further betas
    • Week 5 – Dec 29-Jan 2: Beta 8 (Desktop & Mobile) gtb on Monday Dec 29 as usual, ship on Tues Dec 30 – no further betas
    • Week 6 – Jan 5-9: Beta 10 (Mobile) and Desktop RC 35.0 gtb on Monday Jan 5th, ship on Tues Jan 6 to beta channels

Feedback Summary (Cheng/Tyler/Matt)

Desktop

Flash is causing a lot of pain for our users.


Planning Meeting Details

  • Wednesdays – 11:00am PT, 18:00 UTC
  • Mountain View Offices: Warp Core Conference Room
  • Toronto Offices: Finch Conference Room
  • irc.mozilla.org #planning for backchannel
  • (the developer meeting takes place on Tuesdays)

Video/Teleconference Details – NEW

Mozilla Add-ons BlogHow we manage user review moderation

Anyone with an AMO account can leave a user review and rating for an add-on. User reviews are an invaluable part of AMO, helping users decide which add-ons are the best at what they do. However, as any open forum on the web, it needs some monitoring in order to keep the content relevant and useful. We have a set of writing policies and a moderation process for handling user reviews. A link to the policies is presented when you post a user review, but the moderation process may not be very clear, so I’ll explain it here.

We don’t actively monitor users review posted on AMO. Instead, we provide a way for users to request moderation for reviews that are in violation of the content guidelines. Anyone with an AMO account can do this, including the developer of the add-on for which the review was posted. You can find the moderation report link by clicking “See all user reviews” on any add-on listing page and looking at the bottom-right corner of a review. It’ll let you choose the reason for the report and add some information to it.

After a user review is reported, it goes to a moderation queue, where a member of our add-on review team will give it a look and decide if it should stay or be deleted. This is the same team that handles add-on code analysis (confusingly also called add-on reviews). It is mostly comprised of volunteers with a background  in add-on development.

Policy

We want reviews to be useful for add-on users, so our policy encourages user reviews that speak to the advertised features of the add-on. User reviews aren’t meant to start a conversation with the developer or other reviewers, nor are they meant to act as a bug reporting tool. Most add-on listings on the site include contact or support information to get in touch with the developer about these issues.

Deciding what is or isn’t useful is a very subjective call, so it is difficult to obtain results that are consistent, or satisfactory for all users. Some people will get annoyed if we delete a user review that is critical of an add-on, and proceed to write new reviews complaining about the deletion, which are then also deleted. It’s a sub-standard experience that we are aware of and want to fix.

Limitations

While user reviews and their moderation are an important part of AMO, they haven’t had much work done in many years (I should note this isn’t the only part of AMO that has this problem). We don’t have a good way to undelete reviews, or to communicate the reason behind a review deletion to its author.

We haven’t changed our review policies for a long time, and they need some work. Moderating reviews is a secondary task for our review team, and having a team composed of add-on developers probably introduces some bias against negative user reviews. We have been thinking about creating a new team in charge of user review moderation, ideally with less of a developer mindset. I think we’ll also need to relax our policies in order to encourage more diversity of opinions.

User reviews aren’t abundant, and we only show the last 3 in the add-on page. This means that an unwarranted negative review can linger for a long time, causing the developer to lose users. We need to implement a way to mark user reviews as useful or not so we can surface the most useful ones (a common feature found on sites like Amazon and the iTunes Store).

Unfortunately our main limitations are time and people, so it might take a while before we can change user reviews in a meaningful way. Separating the review team and changing the policies is something we can do relatively quickly, so I hope we will be in a better place early next year.

Air MozillaProduct Coordination Meeting

Product Coordination Meeting Weekly coordination meeting for Firefox Desktop & Android product planning between Marketing/PR, Engineering, Release Scheduling, and Support.

WebmakerTowards a new version of the Web Literacy Map

Visualization of WebLitMap by Sabrina Ng

Image from a concept sketch by Sabrina Ng

The Web Literacy Map details the skills and competencies that the Mozilla community believe are required to read, write and participate on the web. It can be seen in visual form in the Webmaker resources section.

Earlier this year we began work on what we termed ‘Web Literacy Map v2.0′. We interviewed stakeholders, ran a survey, collaborated in sessions at MozFest, and hosted a series of seven community calls. This post is to share the outcome of that process. Everything related to this process can be found on the Mozilla wiki.

The five proposals

From the stakeholder interviews we came up with 21 emerging themes, boiled down to five proposals for the community survey. We discussed the results of the survey and made the decisions listed below during the community calls.

Proposal 1 – “I believe the Web Literacy Map should explicitly reference the Mozilla manifesto.”
We decided that we should reference the Mozilla Manifesto in the introduction to the Web Literacy Map, and link to the particular relevant principles where appropriate.

Proposal 2 -  “I believe the three strands should be renamed ‘Reading’, ‘Writing’ and ‘Participating’.”
We decided not to make a decision relating to this proposal for the time being. There are other, related, issues that we need to resolve. For example: who should we prioritise in terms of audience for Web Literacy Map v2.0?

Proposal 3 -  “I believe the Web Literacy Map should look more like a ‘map’.”
(not enough people on the call to make a decision)

Proposal 4 - “I believe that concepts such as ‘Mobile’, ‘Identity’, and ‘Protecting’ should be represented as cross-cutting themes in the Web Literacy Map.”
We decided that:

  • our audience is teachers and learners in the upcoming Web Literacy Clubs
  • we’re not going to include cross-cutting themes in the map itself (the text), but explore them in representations of the map (the visuals)

Proposal 5 -  “I believe a ‘remix’ button should allow me to remix the Web Literacy Map for my community and context.”
We decided that we shouldn’t explicitly encourage remixing of the Web Literacy Map itself, but encourage remixing of the curriculum layer for Web Literacy Clubs.

Re-scoping our efforts to v1.5

As a result of this process we have decided to iterate towards a v1.5 of the Web Literacy Map in the first half of 2015. We can then explore v2.0.

Planned updates for v1.5 and/or v2.0 include:

  1. Making links to the Mozilla Manifesto (where appropriate)
  2. Improving supporting material to provide context
  3. Reviewing and updating competencies and skills (add, remove, rename, merge)
  4. Shifting the Web Literacy Map towards being slightly more ‘opinionated’ (e.g. “the skills and competencies required to read, write and participate on the open web”)
  5. Exploring other (multiple) ways to represent the skills, competencies, and strands

Get involved!

We’ll be hosting community calls and hack sessions in 2015 to get v1.5 out of the door as soon as possible. This process has been extremely useful to allow us to hit the ground running in the new year.

Timings of the sessions are yet to be decided as we’ll be polling the community in the first week back after the holidays. There are several ways you can keep up-to-date and get involved:

Meeting NotesMozilla Platform: 2014-12-16

Need To Know

(Release and system issues that may impact engineering this week.)

Notices/Schedule (lsblakk/sylvestre/lmandel)

Next Merge: January 12, 2015 Next Release: January 13, 2015
Trains
Central: 37 Aurora: 36 Beta: 35 Release: 34
  • 35.0b4 looking like we’ll do a build 2 with backout bug 1097321 due to startup crash issues in b3
  • Holiday Beta scheduling
    • Week 3 – Dec 15-19: Beta 4 (Desktop & Mobile) and Beta 5 (Desktop) build & ship as usual
    • Week 4 – Dec 22-26: Beta 6 (Desktop & Mobile) gtb on Monday Dec 22 as usual, ship on Tues Dec 23 – no further betas
    • Week 5 – Dec 29-Jan 2: Beta 8 (Desktop & Mobile) gtb on Monday Dec 29 as usual, ship on Tues Dec 30 – no further betas
    • Week 6 – Jan 5-9: Beta 10 (Mobile) and Desktop RC 35.0 gtb on Monday Jan 5th, ship on Tues Jan 6 to beta channels

Build Changes (gps)

(Build changes of which engineers should be aware.)

RelEng (catlee)

(Repo, test, and other information for engineers from the release engineering team.)

Upcoming Outages/Upgrades

(System outages/upgrades and tree closures that impact engineering.)

  • Tree Closing Window Saturday, Dec 20. Tentative time 0900-1730 PT, see tracker for details.

Quality Programs

(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)

OrangeFactor (ryanvm)

  • Past week’s OrangeFactor: 2.29 (last week: 3.16).
  • Many of the top oranges are lacking in action. I’ll be pinging in bugs soon, please help if you can.
  • 15 intermittent failures marked as fixed in the last week – List – Thanks!.
    • Thanks to Andreas Pehrson from Telenor for fixing a frequent B2G assertion orange.

MemShrink (njn)

<Read Only>

DMD now does cumulative heap profiling. This is great for finding places where excessive numbers of short-lived heap allocations occur.

Stability (kairo)

Team Stand-ups

(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)

A*Team (jgriffin)

DOM (jst/overholt)

<Read Only>

  • We’re disabling WebSocket on Workers on beta because it’s not stable enough.

Electrolysis (e10s) (blassey)

JS (naveed)

<Read Only>

Layout (jet/dbaron)

<Read Only>

Media (mreavy)

<Read Only>

1. What has your team done since last week that might impact others?

  • Landed rewrite of the webrtc call negotiation code – regressions are possible, some have been fixed
  • Hello Rooms fixes have been uplifting to aurora and beta.

2. What will your team do this week that might impact others?

  • Preparing to land webrtc.org import of stable branch 40 (bug 1109428) – same branch Chrome 40 will use.
    • May well break –disable-webrtc builds again ;-) We’ll fix it.
  • k18e’s team is planning to uplift some media rewrites being done by alfredo and blake wu.

3. Is anything slowing your team down or getting in their way?

  • GMail/Gcal ;-)

Necko (dougt/jduell)

  • HTTP/2 is scheduled to land on FF 35 (we’ll advertise draft spec only)
    • we’ll advertise final (non-draft) HTTP/2 support in 36
    • opportunistic encryption will be in 37
  • B2G emulator still appears to be broken (pipe writes can get lost)
    • we’re trying to hack around it for our fix

Performance (vladan)

<Read Only>

No update this week.

Roundtable

(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)

Links

Mailing List Threads

(Threads that are likely to be of interest to engineering from various mailing lists.)

Good Reads

(Links to blog posts, books, videos, etc. that you think will be of interest to others.)

irc #planning Log From This Meeting

10:52 AM <KaiRo> lmandel: looks like I found the issue behind the gfx issues on beta, see https://bugzilla.mozilla.org/show_bug.cgi?id=1097321#c26
10:53 AM <KaiRo> and lsblakk ^^^
10:55 AM <lmandel> KaiRo: Good sleuthing.
10:56 AM <KaiRo> lmandel: luckily I just stumbled over bugmail of SoftVision verifying that bug that seems to have caused the issue ;-)
10:57 AM <KaiRo> and that got me thinking "hey, we did just land unblocking something that includes Intel stuff? wait a minute..." ;-)
11:00 AM <KaiRo> lsblakk: actually, 1) sheriffs/RyanVM can do a straight backout right away if we are sure enough, that doesn't even need Jeff, and 2) I'm actually reluctant to sign off 35.0b4 with this huge startup crash issue continued
11:00 AM <•lsblakk> ah, didn't see that it was a startup crash anywhere until now
11:00 AM <•lsblakk> in that case, i'm happy to take a backout and do a build 2
11:03 AM <overholt> cpeterson, did milan_ and I get disconnected?
11:03 AM <KaiRo> lsblakk: yes, took me a bit to realize as well, I'm definitely in favor of a build2 there.
11:04 AM <cpeterson> overholt: i don't see you guys on screen
11:04 AM <overholt> cpeterson, thanks. looks like a Vidyo crash. we're back.
11:04 AM <Pike> not just that the calendars are all upset, my head thinks it's wednesday, too
11:07 AM <RyanVM|sheriffduty> KaiRo: lsblakk: backing out now
11:07 AM <KaiRo> RyanVM|sheriffduty: thanks
11:10 AM <RyanVM|sheriffduty> jduell: CC me to that bug when you file it?
11:10 AM — RyanVM|sheriffduty wonders if that's the same underlying issue we have with other emulator test stability issues
11:11 AM <jduell> RyanVM|sheriffduty: will do
11:11 AM <RyanVM|sheriffduty> thanks
11:11 AM <jesup> jduell: sorry, we don't detect it directly: #if defined(MOZ_WIDGET_GONK) && defined(DEBUG) // B2G emulator debug is very, very slow and has problems dealing with realtime audio inputs
11:11 AM <jduell> jesup: ah. Ok, thanks
11:13 AM <jduell> jesup: hmm, this looks interesting... http://mxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxAndroidPlatform.cpp#117

Engineering Meeting Details

  • Tuesday 2014-12-1611:00 am Pacific Standard Time
  • Dial-in: conference# 98411
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 98411
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 98411
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 98411
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 98411
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 98411
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 98411
    • UK/London: +44 (0)207 855 3000, x92 Conf# 98411
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 98411
  • Engineering Vidyo Room / Air Mozilla / MTV Alien Nation / TOR Finch / SFO Warfield / PDX Hair of the Dog
  • join irc.mozilla.org #planning for back channel

Firefox AppsBrand Name Content Continues to Emerge on Firefox OS

Follow your friends on Rdio to discover new music.

Follow your friends on Rdio to discover new music.

As 2014 draws to a close, Firefox OS devices are now sold in 28 countries (with more to come next year). As the reach of Firefox OS grows, so does the breadth of its content ecosystem. I wanted to share some exciting news around a few recent additions to Firefox Marketplace

A trove of Microsoft content is now available, including Outlook, Bing Maps & Search, and MSN.

One of the world’s foremost publishing platforms, WordPress, has developed a version tailored for Firefox OS.

For old-school gaming fans, we’re thrilled to welcome Namco’s Pac-Man into the fold. It’s crazy to recall the very first arcade version of this classic debuted in the U.S. way back in 1980!

While we’re on the topic of entertainment, it’s awesome to see Firefox OS users enjoying millions of free songs on Rdio. Who knows, maybe you’ll discover a new band and get tickets to their next tour through the Ticketmaster app. You can use Nokia’s HERE Maps to find the venue. And be sure to take pics and videos of the concert to share with friends via Telegram, a fabulous, free open source messaging app that puts tremendous emphasis on the security of your personal content.

The massively popular video portal Dailymotion now has a Firefox OS app, too. This is important, because there are times when we all need videos of kittens falling asleep.

Bing Maps displays traffic levels, road conditions, and aerial views.

Bing Maps displays traffic levels, road conditions, and aerial views.

Beyond the obvious desire to reach broader audiences, why are major content players producing apps for Firefox OS? “Our hope for open source platforms is the continuation of a quality, flexible, customizable platform embraced by a vibrant developer community, which continues to provide a viable option to users of iOS, Android, and Windows in the mobile space,” says Scott Kepron of Kobo, a leader in eReading that published their own Firefox OS app.

“The low price of a Firefox OS device makes it appealing to a variety of countries where other smart phones and devices are out of reach,” says Brian R. Bondy of Khan Academy, a revolutionary education app available in six languages. “

Liam Petraska, Director of Mobile Content for the wildly popular MyTones ringtone app, echoed this sentiment, “Being an open source platform, Firefox OS offers a new level of personalization to the user, which was a natural fit for our MyTones application… As [open source platforms] grow, we hope they will gain traction and market share as they continue to be adopted in more and more countries across the globe. Offering Firefox OS as an additional choice to the consumer is positive for the mobile industry as a whole.”

hacks.mozilla.orgPseudo elements, promise inspection, raw headers, and much more – Firefox Developer Edition 36

Firefox 36 was just uplifted to the Developer Edition channel, so let’s take a look at the most important Developer Tools changes in this release. We will also cover some changes from Firefox 35 since it was released shortly before the initial Developer Edition announcement. There is a lot to talk about, so let’s get right to it.

Inspector

You can now inspect ::before and ::after pseudo elements.  They behave like other elements in the markup tree and inspector sidebars. (35, development notes)

before-after-inspection

There is a new “Show DOM Properties” context menu item in the markup tree. (35, development notes, documentation about this feature on MDN)

show-dom-properties

The box model highlighter now works on remote targets, so there is a full-featured highlighter even when working with pages on Firefox for Android or apps on Firefox OS. (36, development notes, and technical documentation for building your own custom highlighter)

Shadow DOM content is now visible in the markup tree; note that you will need to set dom.webcomponents.enabled to true to test this feature (36, development notes, and see bug 1053898 for more work in this space).

We borrowed a useful feature from Firebug and are now allowing more paste options when right clicking a node in the markup tree.  (36, development notes, documentation about this feature on MDN)

paste-options

Some more changes to the Inspector included in Firefox 35 & 36:

  • Deleting a node now selects the previous sibling instead of the parent (36, development notes)
  • There is higher contrast for the currently hovered node in the markup view (36, development notes)
  • Hover over a CSS selector in the computed view to highlight all the nodes that match that selector on the page. (35, development notes)

Debugger / Console

DOM Promises are now inspectable. You can inspect the promises state and value at any moment. (36, development notes)

promise-inspection

The debugger now recognizes and works with eval’ed sources. (36, development notes)

Eval’ed sources support the //# sourceURL=path.js syntax, which will make them appear as a normal file in the debugger and in stack traces reported by Error.prototype.stack. See this post: http://fitzgeraldnick.com/weblog/59/ for much more information. (36, development notes,  more development notes)

Console statements now include the column number they originated from. (36, development notes)

WebIDE

You are now able to connect to Firefox for Android from the WebIDE.  See documentation for debugging firefox for android on MDN.  (36, development notes).

We also made some changes to improve the user experience in the WebIDE:

  • Bring up developer tools by default when I select a runtime app / tab (35, development notes)
  • Re-select project on connect if last project is runtime app (35, development notes)
  • Auto-select and connect to last used runtime if available (35, development notes)
  • Font resizing (36, development notes)
  • You can now adding a hosted app project by entering the base URL (eg: “http://example.com”) instead of requiring the full path to the manifest.webapp file (35, development notes)

Network Monitor

We added a plain request/response headers view to make it easier to view and copy the raw headers on a request. (35, development notes)

net-headers-raw

Here is a list of all the bugs resolved for Firefox 35 and all the bugs resolved for Firefox 36.

Do you have feedback, bug reports, feature requests, or questions? As always, you can comment here, add/vote for ideas on UserVoice or get in touch with the team at @FirefoxDevTools on Twitter.

The Mozilla BlogFirefox OS Expands to Nearly 30 Countries

Firefox OS has brought choice to the mobile industry with 14 smartphones offered by 14 operators in 28 countries. Firefox OS unlocks mobile ecosystem participants from the barriers set by proprietary systems, allowing for independence, control and innovation. More choices … Continue reading

Meeting NotesMozilla Project: 2014-12-15

All-hands Status Meeting Agenda

Items in this section will be shared during the live all-hand status meeting.

Friends of Mozilla

Upcoming Events

This Week

(Update for Portuguese / Brazilian Mozillians) clique aqui se você quiser saber mais sobre como o Firefox está trazendo carga de Gabriel Medina para o Campeonato de Surf para público português on-line esta semana. obrigado (translation via Google Translate)

Monday, 15 December

Will Copyright Law Kill Startups and Innovation?

  • 6-8pm PST in SF Commons and via Air Mozilla.
  • Food and beverages provided.
  • Join Startup Policy Lab, Creative Commons, Hackers/ Founders, and Mozilla for a panel on Copyright Law and the challenges to innovation.
Tuesday, 16 December
Wednesday, 17 December

Be independent with your web browser and your web site.

Create or update your personal site — wherever you host it, shared, VPS, or at home; static, dynamic, WordPress, or other software.

Join a gathering of people with like-minded interests. Bring your friends that want to start a personal web site.

Any questions? See the wiki page for details or join IRC: http://indiewebcamp.com/irc/today?beta#bottom

Project Status Updates (voice updates)

Firefox

Speaker Location: toronto (johnath)

  • Experiments
    • Flash
    • Tiles
    • Heartbeat
  • Growth
    • Downloads
    • Yahoo
Firefox OS

Speaker Location: Asa Dotzler in MTV

  • It’s been three weeks since I updated y’all on the latest happenings in Firefox OS.
  • 203 people made 451 changes to Firefox OS. 9 people made first-time contributions to Firefox OS, including:
    • Gary Chen fixed 1096236 Remove “alternateLayoutOverwrite” in Arabic layout definition
    • Terrence Cole fixed 1101921 GGC nursery size is too large on B2G
    • Ralph Giles fixed 1105858 Bump libvpx to work-around arm toolchain bugs
    • Brian Weeteling fixed 960259 [Keyboard] German esset character “ß” is inconsistent and included in non-German keyboards.
    • Tooru Fujisawa fixed 1100812 flash.sh – run adb root before flashing gecko
    • No-Jun Park fixed 1093874 Create a new test case for loading a mix of valid/invalid image files into Gallery App and 1100390 Create a new test case for the deletion of video from Preview
    • Jay Wang fixed 1105452 [gonk-l] Need to use new Audio system APIs for audio offload playback
    • Cykesiopka fixed 978426 test_sts_preloadlist_perwindowpb.js | application crashed [@ mozilla::storage::Connection::~Connection] on B2G ICS Emulator Debug only and 1109245 Modify test_keysize_ev.js to run on B2G
    • Oleksiy Avramchenko fixed 1108965 Call Set constructor with “new”.
  • Other notable fixes include:
    • 1055897 – [settings] add settings dialog support
    • 1097421 – [email] Upgrade email.js omnibus bug
    • 1102208 – It takes long time to turn on FM Radio in Flame
    • 1102967 – Need some way to mark an email as unread while viewing it
    • 1069157 – [PDF Viewer] Update pdf.js in Gaia
    • 1042673 – Automatic brightness needs some hysteresis
    • 1100192 – [Keyboard][Handwriting] Add words prediction feature
    • 1105850 – (App-Grouping) Add visual cue for app placement.
  • Interesting Firefox OS discussions:
Cloud Services

Speaker Location: Garvan Keeley, Toronto

  • Thank you from Location Services to Portland stumblers
  • Map of new covered areas: http://bit.ly/1xlEo44
  • If you’d like to participate, you can install the Mozilla Stumbler Android app from Google’s Android Play Store.
CTO Update

Speaker Location: Mountain View

This week we launched the WebRTC Competency Center initiative, and our first partner Telenor held a successful event in Oslo, Norway.

The announcement was done on our blog: https://blog.mozilla.org/blog/2014/12/09/mozilla-and-telenor-announce-webrtc-competency-center-to-advance-webrtc-and-help-standardization/

Andreas also posted a supporting piece on his personal blog: http://andreasgal.com/2014/12/09/it-takes-many-to-build-the-web-we-want/

Webmaker

Speaker Location: Andrew Sliwinski, PDX (Remote)

Speakers

Presenter Title Topic Location Share? Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, other info) Links to slides or images you want displayed on screen Link to where audience can find out more information
Dave Steer Director of Advocacy Ford-Mozilla Open Web Fellows – final call for applications! San Francisco yes mozilla.org/advocacy
William Reynolds Product Manager, Community Tools Tis the perfect time to vouch on Mozillians.org San Francisco No FAQ about Vouching
Doug Turner Mr. WeProtect Mountain View No
Liz Compton Legal Affairs Manager Legal Team 2014 Report Mountain View no https://docs.google.com/a/mozilla.com/presentation/d/1iXZ118jKLAdKh9wXyQzIz_aPGfXVZYgSyYLMmTRxGuQ/edit#slide=id.p https://mana.mozilla.org/wiki/display/LGL/Legal+Resources+Home

Roundtable

Do you have a question about a Mozilla Project or initiative? Let us know by Friday- we’ll do our best to get you an answer.

Please note that we may not always be able to get to every item on this list, but we will try!

Who are you? Area of question Question
What’s your name? What do you work on? Is your question about policy, a product, a Foundation initiative, etc. What would you like to know?

Welcome!

Let’s say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.

Introducing New Volunteers

New Volunteer(s) Introduced by Speaker location New Volunteer location Will be working on
Who is the new volunteer(s)? Who will be introducing that person? Where is the introducer? Where is the new person based? What will the new person be doing?

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Alessio Placitelli (aka Dexter on IRC) Read-only introduction: Alessio is a Mozilla volunteer who will now be a paid contributor working on Firefox data collection, analysis, and user support engineering: things like Firefox Health report, telemetry, self-support, and other tools. picture Italy Firefox Data Collection, Analysis, and User Support Engineering

<meta>

Notes and non-voice status updates that aren’t part of the live meeting go here.

Status Updates By Team (*non-voice* updates)

Engagement

  • Dial-in: conference# 8600
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 8600
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 8600
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 8600
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 8600
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 8600
    • UK/London: +44 (0)207 855 3000, x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600

Air MozillaCopyright Panel for Startups

Copyright Panel for Startups A panel with leaders in the copyright space to discuss critical issues as they relate to startups.

Air MozillaMozilla Weekly Project Meeting

Mozilla Weekly Project Meeting The Monday Project Meeting

Open Policy & AdvocacySpotlight on Public Knowledge: A Ford-Mozilla Open Web Fellow Host

(This is the fourth in our series spotlighting host organizations for the 2015 Ford-Mozilla Open Web Fellowship. For years, Public Knowledge has been at the forefront of fighting for citizens and informing complex telecommunications policy to protect people. Working at Public Knowledge, the Fellow will be at the center of emerging policy that will shape the Internet as we know it. Apply to be a Ford-Mozilla Open Web Fellow and use your tech skills at Public Knowledge to protect the Web.)

Spotlight on Public Knowledge: A Ford-Mozilla Open Web Fellow Host
by Shiva Stella, Communications Manager of Public Knowledge

This year has been especially intense for policy advocates passionate about protecting a free and open internet, user protections, and our digital rights. Make no mistake: From net neutrality to the Comcast/Time Warner Cable merger, policy makers will continue to have an outsized influence over the web.

In order to enhance our advocacy efforts, Public Knowledge is hosting a Ford-Mozilla Open Web Fellow. We are looking for a leader with technical skills and drive to defend the internet, focusing on fair-use copyright and consumer protections. There’s a lot of important work to be done, and we know the public could use your help.

Public Knowledge Long

Public Knowledge works steadfastly in the telecommunications and digital rights space. Our goal is to inform the public of key policies that impact and limit a wide range of technology and telecom users. Whether you’re the child first responders fail to locate accurately because you dial 911 from a cell phone or the small business owner who can’t afford to “buy into” the internet “fast lane,” these policies affect your digital rights – including the ability to access, use and own communications tools like your set-top box (which you currently lease forever from your cable company, by the way) and your cell phone (which your carrier might argue can’t be used on a competing network due to copyright law).

There is no doubt that public policy impacts people’s lives, and Public Knowledge is advocating for the public interest at a critical time when special interests are attempting to shape policy that benefits them at our cost or that overlooks an issue’s complexity.

Indeed, in this interconnected world, the right policy outcome isn’t always immediately clear. Location tracking, for example, can impact people’s sense of privacy; and yet, when deployed in the right way, can lead to first responders swiftly locating someone calling 911 from a mobile device. Public Knowledge sifts through the research and makes sure consumers have a seat at the table when these issues are decided.

Public policy in this area can also impact the broader economy, and raises larger questions: Should we have an internet with a “fast lane“ for the relatively few companies that can afford it, and a slow lane for the rest of us? What would be the impact on innovation and small business if we erase net neutrality as we know it?

The answers to these questions require a community of leaders to advocate for policies that serve the public interest. We need to state in clear language the impact of ill-informed policies and how they affect people’s digital rights —including the ability to access, use and own communications tools, as well as the ability to create and innovate.

Even as the U.S. Federal Communications Commission reviews millions of net neutrality comments and considers approving huge mergers that risk consumers, the cable industry is busy hijacking satellite bills (STAVRA), stealthily slipping “pro-cable” provisions into legislation and that must be passed so 1.5 million satellite subscribers may continue receiving their (non-cable!) service. Public Knowledge shines light on these policies to prevent them from harming innovation or jeopardizing our creative and connected future. To this end we advocate for an open internet and public access to affordable technologies and creative works, engaging policy makers and the public in key policy decisions that affect us all.

Let us be clear: private interests are hoping you won’t notice or just don’t care about these issues. We’re betting that’s not the case. Please apply today to join the Public Knowledge team as a Ford-Mozilla Open Web Fellow to defend the internet we love.


Apply to be a Ford-Mozilla Open Web Fellow. Application deadline for the 2015 Fellowship is December 31, 2014.

QMOFirefox 35 Beta 3 Testday Results

Hello everyone!

As you already know, Friday, December 12th we held the Firefox 35.0 Beta 3 Testday. We’d like to take this opportunity to thank everyone for getting involved in the proposed testing activities and in general, for your hard work in helping us make Firefox even better.

Many thanks to Hossain Al Ikram for his continuous efforts and contributions and to all our moderators! Your help is always appreciated.

We look forward to seeing you at the next Testday. Keep an eye on QMO for upcoming events and schedule announcements!

hacks.mozilla.orgMozilla and Web Components: Update

Editor’s note: Mozilla has a long history of participating in standards development. The post below shows a real-time slice of how standards are debated and adopted. The goal is to update developers who are most affected by implementation decisions we make in Firefox. We are particularly interested in getting feedback from JavaScript library and framework developers.

Mozilla has been working on Web Components — a technology encompassing HTML imports, custom elements, and shadow DOM — for a while now and testing this approach in Gaia, the frontend of Firefox OS. Unfortunately, our feedback into the standards process has not always resulted in the changes required for us to ship Web Components. Therefore we decided to reevaluate our stance with members of the developer community.

We came up with the following tentative plan for shipping Web Components in Firefox and we would really appreciate input from the developer community as we move this forward. Web Components changes a core aspect of the Web Platform and getting it right is important. We believe the way to do that is by having the change be driven by the hard learned lessons from JavaScript library developers.

  • Mozilla will not ship an implementation of HTML Imports. We expect that once JavaScript modules — a feature derived from JavaScript libraries written by the developer community — is shipped, the way we look at this problem will have changed. We have also learned from Gaia and others, that lack of HTML Imports is not a problem as the functionality can easily be provided for with a polyfill if desired.
  • Mozilla will ship an implementation of custom elements. Exposing the lifecycle is a very important aspect for the creation of components. We will work with the standards community to use Symbol-named properties for the callbacks to prevent name collisions. We will also ensure the strategy surrounding subclassing is sound with the latest work on that front in JavaScript and that the callbacks are sufficiently capable to describe the lifecycle of elements or can at least be changed in that direction.
  • Mozilla will ship an implementation of shadow DOM. We think work needs to be done to decouple style isolation from event retargeting to make event delegation possible in frameworks and we would like to ensure distribution is sufficiently extensible beyond Selectors. E.g Gaia would like to see this ability.

Our next steps will be working with the standards community to make these changes happen, making sure there is sufficient test coverage in web-platform-tests, and making sure the specifications become detailed enough to implement from.

So please let us know what you think here in the comments or directly on the public-webapps standards list!

The DenIntroducing a smarter way to search with Firefox

Searching is central to how we all engage daily with the Web, from looking for restaurants to finding friends to planning travel. With Firefox, Mozilla popularized the integration of search in the browser, uniting human curiosity with a window into the vast online world. Now we’re excited to introduce a brand new Firefox search experience, designed to give you the best in choice and control.

More search choices than any other browser

With the new Firefox search box, you have the power to choose where you search every time. From Wikipedia’s informative articles to Yahoo’s sleek new interface to any of the great search options available, choosing where you search is easy.

Firefox search box in action

What’s more, you aren’t limited to the defaults we’ve suggested. The new search box is flexible and easy to change.

For example, let’s say you’re a frequent traveler who reads reviews before booking. Add Yelp to your search to jump straight to the latest feedback. Dedicated film buff? Add IMDB to your search box. Photo enthusiast? Add Flickr.

add-yelp

It’s easy to add and remove search options like eBay, Amazon, dictionaries, YouTube or anywhere you want to search. With Firefox, you can personalize your search box to get refined results every time.

set-search-preferences

As always, you’re in control

Firefox is dedicated to putting users in control of their online experience, and search is no exception. We’ve partnered with Yahoo to bring you great search results in a new, modern look we think you’re going to love. If you’d like to change your default search preference, you can do that anytime in a few simple steps. Change it, try something new, change it back. No matter what, you’re always in control.

yahoo-flight-search

We made a choice. You can, too.

For 10 years, Firefox has stood as the only independent browser and we’re working continuously to deliver on our promise. Firefox provides you with more choice and control than any other browser because those differences matter; to you, to us and to the Web. We hope you enjoy the improvements we’ve made to search in Firefox, and we look forward to bringing you even more awesome features in 2015.

search-bar


Related posts

Air MozillaWebmaker Demos December 12

Webmaker Demos December 12 Webmaker Demos December 12

SUMO BlogWhat’s up with SUMO – 12th December

It’s been a while since we’ve last published something on the blog, and we’ve missed you!

As the year draws to a close (at least according to the Gregorian calendar), there’s time to recall the most memorable moments of 2014 (that will happen within the next two weeks, we just have to make sure our joint notes make sense), as well as start planning for 2015. You’ll get a bit of the latter below, with more details coming as we define them.

Forum

  • The redesign is ongoing and there will be more changes and improvement to the existing forums in the coming months – stay tuned!
  • Rachel and Madalina are leading the charge on Community Quality Training, the goal of which is to ensure a healthy community and a consistent support strategy.

Knowledge Base

Localization

Army of Awesome

  • No big news for now, Madalina will keep us all posted.

By the way – we haven’t met on two Mondays in a row, but the Community Meeting is coming back on the 15th of December. You can find the agenda and the instructions on how to join or watch it live here. We are looking forward to having you with us in the meeting, in any way you can join it.

Finally, we wanted to share some of the equally inspiring and heart-warming Mozlandia presentations that you can access at Air Mozilla. If you have time to watch only two, go for Mitchell’s and Mark’s (Chris’ is not bad, but Mark is talking about some very universal things). If you can watch more, don’t forget about these two ;-).

We hope to see you on Monday – have a great weekend!

Mozilla: View Source FundraisingPrivacy-Forward Fundraising

There are a lot of ways that fundraising at Mozilla is very different than the fundraising I’ve done at other non-profit organizations. One of the most striking differences is how our Privacy Principles guide our donor experience, our fundraising systems, … Continue reading

hacks.mozilla.orgIntroducing the JavaScript Internationalization API

Firefox 29 issued half a year ago, so this post is long overdue. Nevertheless I wanted to pause for a second to discuss the Internationalization API first shipped on desktop in that release (and passing all tests!). Norbert Lindenberg wrote most of the implementation, and I reviewed it and now maintain it. (Work by Makoto Kato should bring this to Android soon; b2g may take longer due to some b2g-specific hurdles. Stay tuned.)

What’s internationalization?

Internationalization (i18n for short — i, eighteen characters, n) is the process of writing applications in a way that allows them to be easily adapted for audiences from varied places, using varied languages. It’s easy to get this wrong by inadvertently assuming one’s users come from one place and speak one language, especially if you don’t even know you’ve made an assumption.

function formatDate(d)
{
  // Everyone uses month/date/year...right?
  var month = d.getMonth() + 1;
  var date = d.getDate();
  var year = d.getFullYear();
  return month + "/" + date + "/" + year;
}
 
function formatMoney(amount)
{
  // All money is dollars with two fractional digits...right?
  return "$" + amount.toFixed(2);
}
 
function sortNames(names)
{
  function sortAlphabetically(a, b)
  {
    var left = a.toLowerCase(), right = b.toLowerCase();
    if (left > right)
      return 1;
    if (left === right)
      return 0;
    return -1;
  }
 
  // Names always sort alphabetically...right?
  names.sort(sortAlphabetically);
}

JavaScript’s historical i18n support is poor

i18n-aware formatting in traditional JS uses the various toLocaleString() methods. The resulting strings contained whatever details the implementation chose to provide: no way to pick and choose (did you need a weekday in that formatted date? is the year irrelevant?). Even if the proper details were included, the format might be wrong e.g. decimal when percentage was desired. And you couldn’t choose a locale.

As for sorting, JS provided almost no useful locale-sensitive text-comparison (collation) functions. localeCompare() existed but with a very awkward interface unsuited for use with sort. And it too didn’t permit choosing a locale or specific sort order.

These limitations are bad enough that — this surprised me greatly when I learned it! — serious web applications that need i18n capabilities (most commonly, financial sites displaying currencies) will box up the data, send it to a server, have the server perform the operation, and send it back to the client. Server roundtrips just to format amounts of money. Yeesh.

A new JS Internationalization API

The new ECMAScript Internationalization API greatly improves JavaScript’s i18n capabilities. It provides all the flourishes one could want for formatting dates and numbers and sorting text. The locale is selectable, with fallback if the requested locale is unsupported. Formatting requests can specify the particular components to include. Custom formats for percentages, significant digits, and currencies are supported. Numerous collation options are exposed for use in sorting text. And if you care about performance, the up-front work to select a locale and process options can now be done once, instead of once every time a locale-dependent operation is performed.

That said, the API is not a panacea. The API is “best effort” only. Precise outputs are almost always deliberately unspecified. An implementation could legally support only the oj locale, or it could ignore (almost all) provided formatting options. Most implementations will have high-quality support for many locales, but it’s not guaranteed (particularly on resource-constrained systems such as mobile).

Under the hood, Firefox’s implementation depends upon the International Components for Unicode library (ICU), which in turn depends upon the Unicode Common Locale Data Repository (CLDR) locale data set. Our implementation is self-hosted: most of the implementation atop ICU is written in JavaScript itself. We hit a few bumps along the way (we haven’t self-hosted anything this large before), but nothing major.

The Intl interface

The i18n API lives on the global Intl object. Intl contains three constructors: Intl.Collator, Intl.DateTimeFormat, and Intl.NumberFormat. Each constructor creates an object exposing the relevant operation, efficiently caching locale and options for the operation. Creating such an object follows this pattern:

var ctor = "Collator"; // or the others
var instance = new Intl[ctor](locales, options);

locales is a string specifying a single language tag or an arraylike object containing multiple language tags. Language tags are strings like en (English generally), de-AT (German as used in Austria), or zh-Hant-TW (Chinese as used in Taiwan, using the traditional Chinese script). Language tags can also include a “Unicode extension”, of the form -u-key1-value1-key2-value2..., where each key is an “extension key”. The various constructors interpret these specially.

options is an object whose properties (or their absence, by evaluating to undefined) determine how the formatter or collator behaves. Its exact interpretation is determined by the individual constructor.

Given locale information and options, the implementation will try to produce the closest behavior it can to the “ideal” behavior. Firefox supports 400+ locales for collation and 600+ locales for date/time and number formatting, so it’s very likely (but not guaranteed) the locales you might care about are supported.

Intl generally provides no guarantee of particular behavior. If the requested locale is unsupported, Intl allows best-effort behavior. Even if the locale is supported, behavior is not rigidly specified. Never assume that a particular set of options corresponds to a particular format. The phrasing of the overall format (encompassing all requested components) might vary across browsers, or even across browser versions. Individual components’ formats are unspecified: a short-format weekday might be “S”, “Sa”, or “Sat”. The Intl API isn’t intended to expose exactly specified behavior.

Date/time formatting

Options

The primary options properties for date/time formatting are as follows:

weekday, era
"narrow", "short", or "long". (era refers to typically longer-than-year divisions in a calendar system: BC/AD, the current Japanese emperor’s reign, or others.)
month
"2-digit", "numeric", "narrow", "short", or "long"
year
day
hour, minute, second
"2-digit" or "numeric"
timeZoneName
"short" or "long"
timeZone
Case-insensitive "UTC" will format with respect to UTC. Values like "CEST" and "America/New_York" don’t have to be supported, and they don’t currently work in Firefox.

The values don’t map to particular formats: remember, the Intl API almost never specifies exact behavior. But the intent is that "narrow", "short", and "long" produce output of corresponding size — “S” or “Sa”, “Sat”, and “Saturday”, for example. (Output may be ambiguous: Saturday and Sunday both could produce “S”.) "2-digit" and "numeric" map to two-digit number strings or full-length numeric strings: “70” and “1970”, for example.

The final used options are largely the requested options. However, if you don’t specifically request any weekday/year/month/day/hour/minute/second, then year/month/day will be added to your provided options.

Beyond these basic options are a few special options:

hour12
Specifies whether hours will be in 12-hour or 24-hour format. The default is typically locale-dependent. (Details such as whether midnight is zero-based or twelve-based and whether leading zeroes are present are also locale-dependent.)

There are also two special properties, localeMatcher (taking either "lookup" or "best fit") and formatMatcher (taking either "basic" or "best fit"), each defaulting to "best fit". These affect how the right locale and format are selected. The use cases for these are somewhat esoteric, so you should probably ignore them.

Locale-centric options

DateTimeFormat also allows formatting using customized calendaring and numbering systems. These details are effectively part of the locale, so they’re specified in the Unicode extension in the language tag.

For example, Thai as spoken in Thailand has the language tag th-TH. Recall that a Unicode extension has the format -u-key1-value1-key2-value2.... The calendaring system key is ca, and the numbering system key is nu. The Thai numbering system has the value thai, and the Chinese calendaring system has the value chinese. Thus to format dates in this overall manner, we tack a Unicode extension containing both these key/value pairs onto the end of the language tag: th-TH-u-ca-chinese-nu-thai.

For more information on the various calendaring and numbering systems, see the full DateTimeFormat documentation.

Examples

After creating a DateTimeFormat object, the next step is to use it to format dates via the handy format() function. Conveniently, this function is a bound function: you don’t have to call it on the DateTimeFormat directly. Then provide it a timestamp or Date object.

Putting it all together, here are some examples of how to create DateTimeFormat options for particular uses, with current behavior in Firefox.

var msPerDay = 24 * 60 * 60 * 1000;
 
// July 17, 2014 00:00:00 UTC.
var july172014 = new Date(msPerDay * (44 * 365 + 11 + 197));

Let’s format a date for English as used in the United States. Let’s include two-digit month/day/year, plus two-digit hours/minutes, and a short time zone to clarify that time. (The result would obviously be different in another time zone.)

var options =
  { year: "2-digit", month: "2-digit", day: "2-digit",
    hour: "2-digit", minute: "2-digit",
    timeZoneName: "short" };
var americanDateTime =
  new Intl.DateTimeFormat("en-US", options).format;
 
print(americanDateTime(july172014)); // 07/16/14, 5:00 PM PDT

Or let’s do something similar for Portuguese — ideally as used in Brazil, but in a pinch Portugal works. Let’s go for a little longer format, with full year and spelled-out month, but make it UTC for portability.

var options =
  { year: "numeric", month: "long", day: "numeric",
    hour: "2-digit", minute: "2-digit",
    timeZoneName: "short", timeZone: "UTC" };
var portugueseTime =
  new Intl.DateTimeFormat(["pt-BR", "pt-PT"], options);
 
// 17 de julho de 2014 00:00 GMT
print(portugueseTime.format(july172014));

How about a compact, UTC-formatted weekly Swiss train schedule? We’ll try the official languages from most to least popular to choose the one that’s most likely to be readable.

var swissLocales = ["de-CH", "fr-CH", "it-CH", "rm-CH"];
var options =
  { weekday: "short",
    hour: "numeric", minute: "numeric",
    timeZone: "UTC", timeZoneName: "short" };
var swissTime =
  new Intl.DateTimeFormat(swissLocales, options).format;
 
print(swissTime(july172014)); // Do. 00:00 GMT

Or let’s try a date in descriptive text by a painting in a Japanese museum, using the Japanese calendar with year and era:

var jpYearEra =
  new Intl.DateTimeFormat("ja-JP-u-ca-japanese",
                          { year: "numeric", era: "long" });
 
print(jpYearEra.format(july172014)); // 平成26年

And for something completely different, a longer date for use in Thai as used in Thailand — but using the Thai numbering system and Chinese calendar. (Quality implementations such as Firefox’s would treat plain th-TH as th-TH-u-ca-buddhist-nu-latn, imputing Thailand’s typical Buddhist calendar system and Latin 0-9 numerals.)

var options =
  { year: "numeric", month: "long", day: "numeric" };
var thaiDate =
  new Intl.DateTimeFormat("th-TH-u-nu-thai-ca-chinese", options);
 
print(thaiDate.format(july172014)); // ๒๐ 6 ๓๑

Calendar and numbering system bits aside, it’s relatively simple. Just pick your components and their lengths.

Number formatting

Options

The primary options properties for number formatting are as follows:

style
"currency", "percent", or "decimal" (the default) to format a value of that kind.
currency
A three-letter currency code, e.g. USD or CHF. Required if style is "currency", otherwise meaningless.
currencyDisplay
"code", "symbol", or "name", defaulting to "symbol". "code" will use the three-letter currency code in the formatted string. "symbol" will use a currency symbol such as $ or £. "name" typically uses some sort of spelled-out version of the currency. (Firefox currently only supports "symbol", but this will be fixed soon.)
minimumIntegerDigits
An integer from 1 to 21 (inclusive), defaulting to 1. The resulting string is front-padded with zeroes until its integer component contains at least this many digits. (For example, if this value were 2, formatting 3 might produce “03”.)
minimumFractionDigits, maximumFractionDigits
Integers from 0 to 20 (inclusive). The resulting string will have at least minimumFractionDigits, and no more than maximumFractionDigits, fractional digits. The default minimum is currency-dependent (usually 2, rarely 0 or 3) if style is "currency", otherwise 0. The default maximum is 0 for percents, 3 for decimals, and currency-dependent for currencies.
minimumSignificantDigits, maximumSignificantDigits
Integers from 1 to 21 (inclusive). If present, these override the integer/fraction digit control above to determine the minimum/maximum significant figures in the formatted number string, as determined in concert with the number of decimal places required to accurately specify the number. (Note that in a multiple of 10 the significant digits may be ambiguous, as in “100” with its one, two, or three significant digits.)
useGrouping
Boolean (defaulting to true) determining whether the formatted string will contain grouping separators (e.g. “,” as English thousands separator).

NumberFormat also recognizes the esoteric, mostly ignorable localeMatcher property.

Locale-centric options

Just as DateTimeFormat supported custom numbering systems in the Unicode extension using the nu key, so too does NumberFormat. For example, the language tag for Chinese as used in China is zh-CN. The value for the Han decimal numbering system is hanidec. To format numbers for these systems, we tack a Unicode extension onto the language tag: zh-CN-u-nu-hanidec.

For complete information on specifying the various numbering systems, see the full NumberFormat documentation.

Examples

NumberFormat objects have a format function property just as DateTimeFormat objects do. And as there, the format function is a bound function that may be used in isolation from the NumberFormat.

Here are some examples of how to create NumberFormat options for particular uses, with Firefox’s behavior. First let’s format some money for use in Chinese as used in China, specifically using Han decimal numbers (instead of much more common Latin numbers). Select the "currency" style, then use the code for Chinese renminbi (yuan), grouping by default, with the usual number of fractional digits.

var hanDecimalRMBInChina =
  new Intl.NumberFormat("zh-CN-u-nu-hanidec",
                        { style: "currency", currency: "CNY" });
 
print(hanDecimalRMBInChina.format(1314.25)); // ¥ 一,三一四.二五

Or let’s format a United States-style gas price, with its peculiar thousandths-place 9, for use in English as used in the United States.

var gasPrice =
  new Intl.NumberFormat("en-US",
                        { style: "currency", currency: "USD",
                          minimumFractionDigits: 3 });
 
print(gasPrice.format(5.259)); // $5.259

Or let’s try a percentage in Arabic, meant for use in Egypt. Make sure the percentage has at least two fractional digits. (Note that this and all the other RTL examples may appear with different ordering in RTL context, e.g. ٤٣٫٨٠٪ instead of ٤٣٫٨٠٪.)

var arabicPercent =
  new Intl.NumberFormat("ar-EG",
                        { style: "percent",
                          minimumFractionDigits: 2 }).format;
 
print(arabicPercent(0.438)); // ٤٣٫٨٠٪

Or suppose we’re formatting for Persian as used in Afghanistan, and we want at least two integer digits and no more than two fractional digits.

var persianDecimal =
  new Intl.NumberFormat("fa-AF",
                        { minimumIntegerDigits: 2,
                          maximumFractionDigits: 2 });
 
print(persianDecimal.format(3.1416)); // ۰۳٫۱۴

Finally, let’s format an amount of Bahraini dinars, for Arabic as used in Bahrain. Unusually compared to most currencies, Bahraini dinars divide into thousandths (fils), so our number will have three places. (Again note that apparent visual ordering should be taken with a grain of salt.)

var bahrainiDinars =
  new Intl.NumberFormat("ar-BH",
                        { style: "currency", currency: "BHD" });
 
print(bahrainiDinars.format(3.17)); // د.ب.‏ ٣٫١٧٠

Collation

Options

The primary options properties for collation are as follows:

usage
"sort" or "search" (defaulting to "sort"), specifying the intended use of this Collator. (A search collator might want to consider more strings equivalent than a sort collator would.)
sensitivity
"base", "accent", "case", or "variant". This affects how sensitive the collator is to characters that have the same “base letter” but have different accents/diacritics and/or case. (Base letters are locale-dependent: “a” and “ä” have the same base letter in German but are different letters in Swedish.) "base" sensitivity considers only the base letter, ignoring modifications (so for German “a”, “A”, and “ä” are considered the same). "accent" considers the base letter and accents but ignores case (so for German “a” and “A” are the same, but “ä” differs from both). "case" considers the base letter and case but ignores accents (so for German “a” and “ä” are the same, but “A” differs from both). Finally, "variant" considers base letter, accents, and case (so for German “a”, “ä, “ä” and “A” all differ). If usage is "sort", the default is "variant"; otherwise it’s locale-dependent.
numeric
Boolean (defaulting to false) determining whether complete numbers embedded in strings are considered when sorting. For example, numeric sorting might produce "F-4 Phantom II", "F-14 Tomcat", "F-35 Lightning II"; non-numeric sorting might produce "F-14 Tomcat", "F-35 Lightning II", "F-4 Phantom II".
caseFirst
"upper", "lower", or "false" (the default). Determines how case is considered when sorting: "upper" places uppercase letters first ("B", "a", "c"), "lower" places lowercase first ("a", "c", "B"), and "false" ignores case entirely ("a", "B", "c"). (Note: Firefox currently ignores this property.)
ignorePunctuation
Boolean (defaulting to false) determining whether to ignore embedded punctuation when performing the comparison (for example, so that "biweekly" and "bi-weekly" compare equivalent).

And there’s that localeMatcher property that you can probably ignore.

Locale-centric options

The main Collator option specified as part of the locale’s Unicode extension is co, selecting the kind of sorting to perform: phone book (phonebk), dictionary (dict), and many others.

Additionally, the keys kn and kf may, optionally, duplicate the numeric and caseFirst properties of the options object. But they’re not guaranteed to be supported in the language tag, and options is much clearer than language tag components. So it’s best to only adjust these options through options.

These key-value pairs are included in the Unicode extension the same way they’ve been included for DateTimeFormat and NumberFormat; refer to those sections for how to specify these in a language tag.

Examples

Collator objects have a compare function property. This function accepts two arguments x and y and returns a number less than zero if x compares less than y, 0 if x compares equal to y, or a number greater than zero if x compares greater than y. As with the format functions, compare is a bound function that may be extracted for standalone use.

Let’s try sorting a few German surnames, for use in German as used in Germany. There are actually two different sort orders in German, phonebook and dictionary. Phonebook sort emphasizes sound, and it’s as if “ä”, “ö”, and so on were expanded to “ae”, “oe”, and so on prior to sorting.

var names =
  ["Hochberg", "Hönigswald", "Holzman"];
 
var germanPhonebook = new Intl.Collator("de-DE-u-co-phonebk");
 
// as if sorting ["Hochberg", "Hoenigswald", "Holzman"]:
//   Hochberg, Hönigswald, Holzman
print(names.sort(germanPhonebook.compare).join(", "));

Some German words conjugate with extra umlauts, so in dictionaries it’s sensible to order ignoring umlauts (except when ordering words differing only by umlauts: schon before schön).

var germanDictionary = new Intl.Collator("de-DE-u-co-dict");
 
// as if sorting ["Hochberg", "Honigswald", "Holzman"]:
//   Hochberg, Holzman, Hönigswald
print(names.sort(germanDictionary.compare).join(", "));

Or let’s sort a list Firefox versions with various typos (different capitalizations, random accents and diacritical marks, extra hyphenation), in English as used in the United States. We want to sort respecting version number, so do a numeric sort so that numbers in the strings are compared, not considered character-by-character.

var firefoxen =
  ["FireFøx 3.6",
   "Fire-fox 1.0",
   "Firefox 29",
   "FÍrefox 3.5",
   "Fírefox 18"];
 
var usVersion =
  new Intl.Collator("en-US",
                    { sensitivity: "base",
                      numeric: true,
                      ignorePunctuation: true });
 
// Fire-fox 1.0, FÍrefox 3.5, FireFøx 3.6, Fírefox 18, Firefox 29
print(firefoxen.sort(usVersion.compare).join(", "));

Last, let’s do some locale-aware string searching that ignores case and accents, again in English as used in the United States.

// Comparisons work with both composed and decomposed forms.
var decoratedBrowsers =
  [
   "A\u0362maya",  // A͢maya
   "CH\u035Brôme", // CH͛rôme
   "FirefÓx",
   "sAfàri",
   "o\u0323pERA",  // ọpERA
   "I\u0352E",     // I͒E
  ];
 
var fuzzySearch =
  new Intl.Collator("en-US",
                    { usage: "search", sensitivity: "base" });
 
function findBrowser(browser)
{
  function cmp(other)
  {
    return fuzzySearch.compare(browser, other) === 0;
  }
  return cmp;
}
 
print(decoratedBrowsers.findIndex(findBrowser("Firêfox"))); // 2
print(decoratedBrowsers.findIndex(findBrowser("Safåri")));  // 3
print(decoratedBrowsers.findIndex(findBrowser("Ãmaya")));   // 0
print(decoratedBrowsers.findIndex(findBrowser("Øpera")));   // 4
print(decoratedBrowsers.findIndex(findBrowser("Chromè")));  // 1
print(decoratedBrowsers.findIndex(findBrowser("IË")));      // 5

Odds and ends

It may be useful to determine whether support for some operation is provided for particular locales, or to determine whether a locale is supported. Intl provides supportedLocales() functions on each constructor, and resolvedOptions() functions on each prototype, to expose this information.

var navajoLocales =
  Intl.Collator.supportedLocalesOf(["nv"], { usage: "sort" });
print(navajoLocales.length > 0
      ? "Navajo collation supported"
      : "Navajo collation not supported");
 
var germanFakeRegion =
  new Intl.DateTimeFormat("de-XX", { timeZone: "UTC" });
var usedOptions = germanFakeRegion.resolvedOptions();
print(usedOptions.locale);   // de
print(usedOptions.timeZone); // UTC

Legacy behavior

The ES5 toLocaleString-style and localeCompare functions previously had no particular semantics, accepted no particular options, and were largely useless. So the i18n API reformulates them in terms of Intl operations. Each method now accepts additional trailing locales and options arguments, interpreted just as the Intl constructors would do. (Except that for toLocaleTimeString and toLocaleDateString, different default components are used if options aren’t provided.)

For brief use where precise behavior doesn’t matter, the old methods are fine to use. But if you need more control or are formatting or comparing many times, it’s best to use the Intl primitives directly.

Conclusion

Internationalization is a fascinating topic whose complexity is bounded only by the varied nature of human communication. The Internationalization API addresses a small but quite useful portion of that complexity, making it easier to produce locale-sensitive web applications. Go use it!

(And a special thanks to Norbert Lindenberg, Anas El Husseini, Simon Montagu, Gary Kwong, Shu-yu Guo, Ehsan Akhgari, the people of #mozilla.de, and anyone I may have forgotten [sorry!] who provided feedback on this article or assisted me in producing and critiquing the examples. The English and German examples were the limit of my knowledge, and I’d have been completely lost on the other examples without their assistance. Blame all remaining errors on me. Thanks again!)

QMOBug Verification Day

Greetings mozillians!

Wednesday, December 17th, we will be holding our weekly Bug Verification Day. This event is held on the #qa IRC channel and it’s addressed to everyone willing to get involved and improve Firefox.

You don’t need to have any previous experience in working with bugs. Ask for help on the #qa channel and someone there will give you assistance. More details are available in the wiki page we set up for you.

If you’re unable to attend these meetings and still want to get involved, you can verify bugs on your own time. Just add the [bugday-20141217] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Let’s make Firefox better!

When: December 17, 2014.

Air MozillaReps weekly

Reps weekly Weekly Mozilla Reps call

Meeting NotesMobile: 2014-12-10

Schedule

  • 2015-01-12

Tracking Review

Beta

  • Next Build:
ID Summary Status Assigned to
947801 DNS resolution sporadically fails in Android 4.4/5.0 when connected to a VPN REOPENED Daniel Stenberg [:bagder] (daniel)
987223 No visible H.264 video playback on MPEG-4 AVC (part 10) (avc1) (Planar 4:2:0 YUV) on Android 4.0 devices NEW Edwin Flores [:eflores] [:edwin] (edwin)
1058160 Specify main activity org.mozilla.fennec.App with a default intent over org.mozilla.search.MainActivity ASSIGNED Nick Alexander :nalexander (nalexander)
1064669 GooglePlayServicesUtil.isGooglePlayServicesAvailable takes ~212ms during startup REOPENED Wesley Johnston (:wesj) (wjohnston)
1071690 WebGL content disappears NEW Robert O’Callahan (:roc) (Mozilla Corporation) (roc)
1073554 Visible seams in webpages while panning NEW Matt Woodrow (:mattwoodrow) (matt.woodrow)
1073772 Releng work for producing two ARMv7 APKs to target different API ranges REOPENED Jordan Lund (:jlund) (jlund)
1079584 Persist delayed search events on disk ASSIGNED swaroop.rao
1080749 Add nightly jobs for new splitapk Android builders ASSIGNED Jordan Lund (:jlund) (jlund)
1083271 Big regression in taskjs benchmark 2014-10-08 NEW Matt Woodrow (:mattwoodrow) (matt.woodrow)
1089210 Crash without breakpad on windows93.net NEW Milan Sreckovic [:milan] (milan)
1090300 crash in mozilla::MediaCodecDataDecoder::DecoderLoop() REOPENED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1096090 Android Aurora 35 fails to play videos on Asus Memopad NEW James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1098390 Graphic buffer garbage shown and persists when entering full-screen (video/regular content) in Android 5.0 (Nexus 5) NEW Lucas Rocha (:lucasr) (lucasr.at.mozilla)
1098421 Aurora stops unexpectedly when trying to launch Search Activity from the widget NEW :Margaret Leibovic (margaret.leibovic)
1100100 Downloaded file can’t be opened from “Downloads” page NEW Wesley Johnston (:wesj) (wjohnston)
1100126 Flickering green/pink screen while playback video in different devices ASSIGNED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1100361 Firefox 35 and higher unable to install on devices with 5MB LinearAlloc limit (particularly Gingerbread) ASSIGNED Richard Newman [:rnewman] (rnewman)
1100439 Tinted status bar not working in Android 5.0 ASSIGNED Stefan Arentz [:st3fan] (sarentz)


19 Total;
19 Open (100%);
0 Resolved (0%);
0 Verified (0%);

Aurora

  • Next Build:
ID Summary Status Assigned to
710802 we need updater tests NEW James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1010068 Disable OCSP in Firefox for Android NEW Brad Lassey [:blassey] (use needinfo?) (blassey.bugs)
1016555 Disable OCSP checking for certificates covered by OneCRL ASSIGNED David Keeler (:keeler) [use needinfo?] (dkeeler)
1061268 Wrong photo gets used in some BBC articles NEW
1063873 Ship the right libomxplugin files for supported API ranges NEW
1068663 Casting will always start playback from the beginning and cannot continue from the playback position in the Firefox browser on Android. NEW Mark Finkle (:mfinkle) (mark.finkle)
1074102 [meta] SIMD backend: implement SIMD operations for ARM NEW
1074635 don’t rerender the page for every frame in a GuM tab video stream NEW
1076966 Use “immersive” fullscreen mode REOPENED
1084711 Graphic rendering problems on trunk, black boxes, nothing renderend, eventually crashes NEW Milan Sreckovic [:milan] (milan)
1089653 crash in java.lang.NullPointerException: at org.mozilla.search.SearchActivity.updateSettingsButtonVisibility(SearchActivity.java) NEW Mark Finkle (:mfinkle) (mark.finkle)
1090884 Back button doesn’t do anything NEW
1091461 Tapping anywhere under the ‘Private Browsing’ tip in the History panel will open the Custom menu ASSIGNED Chenxia Liu [:liuche] (liuche)
1091677 crash in @0x0 | mozilla::layers::ImageHost::GenEffect(mozilla::gfx::Filter const&) ASSIGNED Jonathan Watt [:jwatt] (jwatt)
1093635 confusing time indication on the Reading list NEW :Margaret Leibovic (margaret.leibovic)
1094214 fuzzy text NEW
1109165 Remove lock screen widget NEW Wesley Johnston (:wesj) (wjohnston)


17 Total;
17 Open (100%);
0 Resolved (0%);
0 Verified (0%);

Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs. Make sure friends also get awarded a badge. New contributors are highlighted in bold.

  • ckitching fixed bug 1106593 – Proguard third-party libraries that ship with Fennec.
  • Tom Schuster fixed bug 1103181 – Remove quote() from about:addons/config
  • Manu Jain fixed bug 1088186 – Index out of range in RecentTabsCursorLoader
  • vivek continues to do a lot of great work:
    • Fixed bug 1100742 – Pleasant vibration on long back press
    • Fixed bug 898613 – Back button behavior for url toolbar in display/editing mode
    • Fixed bug 1097098 – Get tab history calculation offloaded to JS
    • Working on bug 732752 – Load session history when ‘loading tabs from last time’
  • Thanks to capella, ckitching, and vivek for meeting up with us last week in Portland!

Stand ups

Suggested format:

  • What did you do last week?
  • What are working on this week?
  • Anything blocking you?

Please keep your update to under 2 minutes!

James W. (snorp)

<Read Only>

  • Working on getting openh264 going in child process
  • Worked on a SurfaceTexture-backed tiles implementation. Got something halfway working, but ran into strange fd leaks. Shelved for now.
  • Helping Eugen and bagder investigate bug 947801. Close to a solution.

JChen

Working on
  • e10s telemetry
    • bug 1103036 – Allow ContentChild to perform tasks on shutdown
    • bug 1103101 – Start the telemetry module in content processes
  • Starting JNI refactoring

Randall Barker

<Read Only>

Last Week:

  • Work Week

This Week:

  • Try and land bugs blocking bug 1079348 [meta] Make a standalone WebRTC implementation

Eugen Sawin

<Read Only> (training)

Last week

  • bug 991923 – server not found when switching networks
  • bug 1093179 – Page-position on m.diepresse.com not always remembered when navigating back
  • Struggling with screen orientation locking tests (fullscreen on load not enforceable for mochitests, robocop test (bug) exists but didn’t go anywhere)

Next week

  • bug 1093815 – Use AndroidPlatformDecoder for standalone MP3 on Android

Brian Nicholson

<Read Only>

  • Landed tiles locale support for tracking (bug 1105011)
  • Basic WebView + navbar in iOS (bug 1108880)
  • Restructuring iOS project to be browser-based
  • Adding support for tabbed browsing

LucasR

<Read Only>

  • Last week at Mozilla. Thanks everyone!

Last week

  • Wrapping up tablet v1 stuff: http://lucasr.org/?p=4072
  • bug 1097318 – Fix talos regression when new tablet UI is enabled
  • bug 1106118 – getVerticalSpacing() is only available on SDK >= 16
  • bug 1109001 – [Tablet] Unfocused tab in the tab strip is black
  • bug 1098245 – Experiment: Avoid cropping tab curve when selected tab is partially visible
  • (In progress) bug 936849 – Tablet tabs tray seems to get stuck in some kind of selection mode
  • (In progress) bug 1109155 – [7′ Tablet] Gridview doesn’t show the last row completely on portrait

liuche

<Read Only>

Highlights:

  • Passwords+tests done
  • More password bugs
  • trying out hg bookmarks + reviewboard
  • Next: onboarding v1.5

Present:

Past:

Margaret

Highlights:

Past:

Present:

mcomella

<Read Only>

Past
  • New tablet
    • bug 1091587 – Improve Private tabs’s empty view layout on new tablet UI
    • bug 1085771 – New tablet UI: LWTheme background should be displayed on tabstrip
    • bug 1107698 – Fix setAlpha in ResizablePathDrawable
    • bug 1105053 – Move LightweightTheme* to sub-package
Present
  • New tablet
    • bug 1107386 – Browser menu is clipped and unusable on the Kindle Fire
    • bug 1105541 – Fine-tune Lightweight theme colors on new tablet
    • bug 1109739 – Use dev tools to ensure new tablet LWT is performant
  • bug 1085837 – Intermittent testAppMenuPathways | application crashed [None]
Future
  • bug 939350 – Create Python linter wrapper
  • bug 983437 – Delay FHR pruning until the screen is off

rnewman

<Read Only>

  • In UK this week.
  • Task continuity kickoff.
  • Met with cloud services team several times re reading list, cloud service integration, and other topics.
  • Discussing iOS data architecture. Read code, came up with a fairly concrete plan.
  • Opened iOS repo. \o/
  • Created iOS bug components, moved and cleaned up bugs.
  • Merged first public iOS pull request. \o/
  • Met with Robin to discuss Sync datatype constraints, iOS share features, et al.
  • Investigated iOS localization story.
    • Found iOS Simulator bug and reported to list.
    • Got a basic localization workflow started. Filed bug to automate.
    • Discussed with Pike and mhorvat.
    • Discussed with Pike and Stefan.
  • Passwords kickoff meeting. No Android or iOS action items.
  • Hello investigation meeting.
  • Push notifications: coming soon, we hope.
  • Managed to convince Ben to pick up device management as a dependency. This’ll be huge.
  • Discussed three-character locales and other Android localization issues with Jeff.
  • Miscellaneous dev, review, uplifts, etc. for Sync, RL, etc. ad infinitum.
Fixed
Working on

nalexander

<Read Only>

Projects for this cycle:

Past
Present

Martyn Haigh

Past:

  • Monday & tuesday written off by travel and lack of sleep

Present:

  • Hacking on Load in background

BLassey

Fixed
Working on

Antlam

  • Past
  • Upcoming

Robin

105
Changing design direction, working on best v1 experience and integration of earlier design ideas and password management. Considering both iPhones and iPads.

Kid-friendly browser
Received device from Karen, thank you! Will be contact person for it in SF. Dogfooding pre-installed fork and noting the interactions/possible issues from current implementation to proposed. Thinking about best place (newsletter-like email, in the browser, or in the content area in parent’s Child safety app).

Search
Will install plugin to check out content-rich search experience to provide feedback.

A-Team

<Read Only>

QA

Feature Focus

  • Mobile Roadmap in Trello
    • Note – the pink tagged items are references from the Platform roadmap of items related to Android. The idea is you shouldn’t have too dig to far to find out the status of a platform item you are dependent on!
  • Some clean up yesterday of things that didn’t ride the train and stay on 37 nightly
  • Next funnel review coming up this Monday

Details

  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 99998
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 99998
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 99998
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 99998
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 99998
    • UK/London: +44 (0)207 855 3000, x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
  • irc.mozilla.org #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2014-12-10

Schedule & Progress onUpcoming Releases (Lukas/Sylvestre/Lawrence)

  • 34.0.5 (yahoo search default) updates enabled 100%
  • possible 34.0.1 Android release
  • 35.0b2 Desktop shipped yesterday
  • 35.0b3 Desktop & 35.0b2 mobile go to build tomorrow

Feedback Summary (Cheng/Tyler/Matt)

Desktop

  • Tracking the following:
    • Firefox 34 + Youtube = black box
    • Silverlight newest update not working bug 1109484
    • Yahoo feedback
    • Search UI changes feedback

General

  • Working hard on getting some version of Heartbeat out by 36
  • Trying to get the about:support API into Input

Planning Meeting Details

  • Wednesdays – 11:00am PT, 18:00 UTC
  • Mountain View Offices: Warp Core Conference Room
  • Toronto Offices: Finch Conference Room
  • irc.mozilla.org #planning for backchannel
  • (the developer meeting takes place on Tuesdays)

Video/Teleconference Details – NEW

Air MozillaLast Intern Presentation of 2014

Last Intern Presentation of 2014 Clark's mysterious presentation

Air MozillaIntern Presentation: Clark Gaebel

Intern Presentation: Clark Gaebel Clark Gaebel's mysterious intern presentation.

Air MozillaProduct Coordination Meeting

Product Coordination Meeting Weekly coordination meeting for Firefox Desktop & Android product planning between Marketing/PR, Engineering, Release Scheduling, and Support.

hacks.mozilla.orgQuaggaJS – Building a barcode-scanner for the Web

Have your ever tried to type in a voucher code on your mobile phone or simply enter the number of your membership card into a web form?

These are just two examples of time-consuming and error-prone tasks which can be avoided by taking advantage of printed barcodes. This is nothing new; many solutions exist for reading barcodes with a regular camera, like zxing, but they require a native platform such as Android or iOS. I wanted a solution which works on the Web, without plugins of any sort, and which even Firefox OS could leverage.

My general interest in computer vision and web technologies fueled my curiosity whether something like this would be possible. Not just a simple scanner, but a scanner equipped with localization mechanisms to find a barcode in real-time.

The result is a project called QuaggaJS, which is hosted on GitHub. Take a look at the demo pages to get an idea of what this project is all about.

Reading Barcodes - teaser_500

How does it work?

Simply speaking, the pipeline can be divided into the following three steps:

  1. Reading the image and converting it into a binary representation
  2. Determining the location and rotation of the barcode
  3. Decoding the barcode based on the type EAN, Code128

The first step requires the source to be either a webcam stream or an image file, which is then converted into gray-scale and stored in a 1D array. After that, the image data is passed along to the locator, which is responsible for finding a barcode-like pattern in the image. And finally, if a pattern is found, the decoder tries to read the barcode and return the result. You can read more about these steps in how barcode localization works in QuaggaJS.

The real-time challenge

One of the main challenges was to get the pipeline up to speed and fast enough to be considered as a real-time application. When talking about real-time in image-processing applications, I consider 25 frames per second (FPS) the lower boundary. This means that the entire pipeline has to be completed in at least 40ms.

The core parts of QuaggaJS are made up of computer vision algorithms which tend to be quite heavy on array access. As I already mentioned, the input image is stored in a 1D array. This is not a regular JavaScript Array, but a Typed Array. Since the image has already been converted to gray-scale in the first step, the range of each pixel’s value is set between 0 and 255. This is why Uint8Arrays are used for all image-related buffers.

Memory efficiency

One of the key ways to achieve real-time speed for interactive applications is to create memory efficient code which avoids large GC (garbage collection) pauses. That is why I removed most of the memory allocation calls by simply reusing initially created buffers. However this is only useful for buffers when you know the size up front and when the size does not change over time, as with images.

Profiling

When you are curious why a certain part of your application runs too slow, a CPU profile may come in handy.

Firefox includes some wonderful tools to create CPU profiles for the running JavaScript code. During development, this proved to be viable for pinpointing performance bottlenecks and finding functions which caused the most load on the CPU. The following profile was recorded during a session with a webcam on an Intel Core i7-4600U. (Config: video 640×480, half-sampling barcode-localization)

alt=

The profile is zoomed in and shows four subsequent frames. On average, one frame in the pipeline is processed in roughly 20 ms. This can be considered fast enough, even when running on machines having a less powerful CPU, like mobile phones or tablets.

I marked each step of the pipeline in a different color; green is the first, blue the second and red the third one. The drill-down shows that the localization step consumes most of the time (55.6 %), followed by reading the input stream (28.4 %) and finally by decoding (3.7 %). It is also worth noting that skeletonize is one of the most expensive functions in terms of CPU usage. Because of that, I re-implemented the entire skeletonizing algorithm in asm.js by hand to see whether it could run even faster.

asm.js

Asm.js is a highly optimizable subset of JavaScript that can execute at close to native speed. It promises a lot of performance gains when used for compute-intensive tasks (take a look at MASSIVE), like most computer vision algorithms. That’s why I ported the entire skeletonizer module to asm.js. This was a very tedious task, because you are actually not supposed to write asm.js code by hand. Usually asm.js code is generated when it is cross-compiled from C/C++ or other LLVM languages using emscripten. But I did it anyway, just to prove a point.

The first thing that needs to be sorted out is how to get the image-data into the asm.js module, alongside with parameters like the size of the image. The module is designed to fit right into the existing implementation and therefore incorporates some constraints, like a square image size. However, the skeletonizer is only applied on chunks of the original image, which are all square by definition. Not only is the input-data relevant, but also three temporary buffers are needed during processing (eroded, temp, skeleton).

In order to cover that, an initial buffer is created, big enough to hold all four images at once. The buffer is shared between the caller and the module. Since we are working with a single buffer, we need to keep a reference to the position of each image. It’s like playing with pointers in C.

function skeletonize() {
  var subImagePtr = 0,
    erodedImagePtr = 0,
    tempImagePtr = 0,
    skelImagePtr = 0;
 
  erodedImagePtr = imul(size, size) | 0;
  tempImagePtr = (erodedImagePtr + erodedImagePtr) | 0;
  skelImagePtr = (tempImagePtr + erodedImagePtr) | 0;
  // ...
}

To get a better understanding of the idea behind the structure of the buffer, compare it with the following illustration:

Buffer in Skeletonizer

The buffer in green represents the allocated memory, which is passed in the asm.js module upon creation. This buffer is then divided into four blue blocks, of which each contains the data for the respective image. In order to get a reference to the correct data block, the variables (ending with Ptr) are pointing to that exact position.

Now that we have set up the buffer, it is time to take a look at the erode function, which is part of the skeletonizer written in vanilla JavaScript:

function erode(inImageWrapper, outImageWrapper) {
  var v,
    u,
    inImageData = inImageWrapper.data,
    outImageData = outImageWrapper.data,
    height = inImageWrapper.size.y,
    width = inImageWrapper.size.x,
    sum,
    yStart1,
    yStart2,
    xStart1,
    xStart2;
 
  for ( v = 1; v < height - 1; v++) {
    for ( u = 1; u < width - 1; u++) {
      yStart1 = v - 1;
      yStart2 = v + 1;
      xStart1 = u - 1;
      xStart2 = u + 1;
      sum = inImageData[yStart1 * width + xStart1] +
        inImageData[yStart1 * width + xStart2] +
        inImageData[v * width + u] +
        inImageData[yStart2 * width + xStart1] +
        inImageData[yStart2 * width + xStart2];
 
      outImageData[v * width + u] = sum === 5 ? 1 : 0;
    }
  }
}

This code was then modified to conform to the asm.js specification.

"use asm";
 
// initially creating a view on the buffer (passed in)
var images = new stdlib.Uint8Array(buffer),
  size = foreign.size | 0;
 
function erode(inImagePtr, outImagePtr) {
  inImagePtr = inImagePtr | 0;
  outImagePtr = outImagePtr | 0;
 
  var v = 0,
    u = 0,
    sum = 0,
    yStart1 = 0,
    yStart2 = 0,
    xStart1 = 0,
    xStart2 = 0,
    offset = 0;
 
  for ( v = 1; (v | 0) < ((size - 1) | 0); v = (v + 1) | 0) {
    offset = (offset + size) | 0;
    for ( u = 1; (u | 0) < ((size - 1) | 0); u = (u + 1) | 0) {
      yStart1 = (offset - size) | 0;
      yStart2 = (offset + size) | 0;
      xStart1 = (u - 1) | 0;
      xStart2 = (u + 1) | 0;
      sum = ((images[(inImagePtr + yStart1 + xStart1) | 0] | 0) +
        (images[(inImagePtr + yStart1 + xStart2) | 0] | 0) +
        (images[(inImagePtr + offset + u) | 0] | 0) +
        (images[(inImagePtr + yStart2 + xStart1) | 0] | 0) +
        (images[(inImagePtr + yStart2 + xStart2) | 0] | 0)) | 0;
      if ((sum | 0) == (5 | 0)) {
        images[(outImagePtr + offset + u) | 0] = 1;
      } else {
        images[(outImagePtr + offset + u) | 0] = 0;
      }
    }
  }
  return;
}

Although the basic code structure did not significantly change, the devil is in the detail. Instead of passing in the references to JavaScript objects, the respective indexes of the input and output images, pointing to the buffer, are used. Another noticeable difference is the repeated casting of values to integers with the | 0 notion, which is necessary for secure array access. There is also an additional variable offset defined, which is used as a counter to keep track of the absolute position in the buffer. This approach replaces the multiplication used for determining the current position. In general, asm.js does not allow multiplications of integers except when using the imul operator.

Finally, the use of the tenary operator ( ? : ) is forbidden in asm.js which has simply been replaced by a regular if.. else condition.

Performance comparison

And now it is time to answer the more important question: How much faster is the asm.js implementation compared to regular JavaScript? Let’s take a look at the performance profiles, of which the first one represents the normal JavaScript version and the second asm.js.

Image Stream Profile

image-stream-profile-asm

Surprisingly, the difference between the two implementations is not as big as you might expect (~10%). Apparently, the initial JavaScript code was already written clean enough, so that the JIT compiler could already take full advantage of that. This assumption can only be proven wrong or right if someone re-implements the algorithm in C/C++ and cross-compiles it to asm.js using emscripten. I’m almost sure that the result would differ from my naïve port and produce much more optimized code.

getUserMedia

Besides performance, there are many other parts that must fit together in order to get the best experience. One of those parts is the portal to the user’s world, the camera. As we all know, getUserMedia provides an API to gain access to the device’s camera. Here, the difficulty lies within the differences among all major browser vendors, where the constraints, resolutions and events are handled differently.

Front/back-facing

If you are targeting devices other than regular laptops or computers, the chances are high that these devices offer more than one camera. Nowadays almost every tablet or smartphone has a back- and front-facing camera. When using Firefox, selecting the camera programmatically is not possible. Every time the user confirms access to the camera, he or she has to select the desired one. This is handled differently in Chrome, where MediaStreamTrack.getSources exposes the available sources which can then be filtered. You can find the defined sources in the W3C draft.

The following snippet demonstrates how to get preferred access to the user’s back-facing camera:

MediaStreamTrack.getSources(function(sourceInfos) {
  var envSource = sourceInfos.filter(function(sourceInfo) {
    return sourceInfo.kind == "video"
        && sourceInfo.facing == "environment";
  }).reduce(function(a, source) {
    return source;
  }, null);
  var constraints = {
    audio : false,
    video : {
      optional : [{
        sourceId : envSource ? envSource.id : null
      }]
    }
  };
});

In the use-case of barcode-scanning, the user is most likely going to use the device’s back-facing camera. This is where choosing a camera up front can enormously improve the user experience.

Resolution

Another very important topic when working with video is the actual resolution of the stream. This can be controlled with additional constraints to the video stream.

var hdConstraint = {
  video: {
    mandatory: {
      width: { min: 1280 },
      height: { min: 720 }
    }
  }
};

The above snippet, when added to the video constraints, tries to get a video-stream with the specified quality. If no camera meets those requirements, an ConstraintNotSatisfiedError error is returned in the callback. However, these constraints are not fully compatible with all browsers, since some use minWidth and minHeight instead.

Autofocus

Barcodes are typically rather small and must be close-up to the camera in order to be correctly identified. This is where a built-in auto-focus can help to increase the robustness of the detection algorithm. However, the getUserMedia API lacks functionality for triggering the auto-focus and most devices do not even support continuous autofocus in browser-mode. If you have an up-to-date Android device, chances are high that Firefox is able to use the autofocus of your camera (e.g. Nexus 5 or HTC One). Chrome on Android does not support it yet, but there is already an issue filed.

Performance

And there is still the question of the performance impact caused by grabbing the frames from the video stream. The results have already been presented in the profiling section. They show that almost 30%, or 8ms of CPU time is consumed for just fetching the image and storing it in a TypedArray instance. The typical process of reading the data from a video-source looks as follows:

  1. Make sure the camera-stream is attached to a video-element
  2. Draw the image to a canvas using ctx.drawImage
  3. Read the data from the canvas using ctx.getImageData
  4. Convert the video to gray-scale and store it inside a TypedArray
var video = document.getElementById("camera"),
    ctx = document.getElementById("canvas").getContext("2d"),
    ctxData,
    width = video.videoWidth,
    height = video.videoHeight
    data = new Uint8Array(width*height);
 
ctx.drawImage(video, 0, 0);
ctxData = ctx.getImageData(0, 0, width, height).data;
computeGray(ctxData, data);

It would be very much appreciated if there were a way to get lower-level access to the camera frames without going through the hassle of drawing and reading every single image. This is especially important when processing higher resolution content.

Wrap up

It has been real fun to create a project centered on computer vision, especially because it connects so many parts of the web platform. Hopefully, limitations such as the missing auto-focus on mobile devices, or reading the camera stream, will be sorted out in the near future. Still, it is pretty amazing what you can build nowadays by simply using HTML and JavaScript.

Another lesson learned is that implementing asm.js by hand is both hard and unnecessary if you already know how to write proper JavaScript code. However, if you already have an existing C/C++ codebase which you would like to port, emscripten does a wonderful job. This is where asm.js comes to the rescue.

Finally, I hope more and more people are jumping on the computer vision path, even if technologies like WebCL are still a long way down the road. The future for Firefox might even be for ARB_compute_shader to eventually jump on to the fast track.

Meeting NotesSeaMonkey: 2014-12-09

Agenda

  • Who’s taking minutes? -> Ratty
  • Nominees for Friends of the Fish Tank:
    • TBD

Action Items

(who needs to do what that hasn’t been recorded in a bug)
We should assign people to the open items.

NEW

OPEN

  • bug 1081726 Donation link on website needs to be change to point to SeaMonkey Paypal donation page. Blocked on mcsmurf getting a new CVS website account, looks like his old one has expired.
  • (bug 956561); move blog to https://blog.seamonkey-project.org. [DONE]
    • Now live with new design and branding.
    • Some progress with the SSL certificate issue. With the certificate, things would work easier as mcsmurf wants to sync the blog with Facebook entries.
  • bug 998807 Sync account creation or device pairing fails with exception in BrowserIDManager
    • mcsmurf says he has a short term workaround for this.
  • bug 1057920 SeaMonkey’s CVS dependency really should be removed. (currently used only for Releng Automation, and SeaMonkey Website).
    • IanN has had zero time in the last 2 weeks, preparing/having job interviews so no progress on this.

CLOSED

Status of the SeaMonkey Buildbot Master and Tree

  • Windows nightly trunk builds are running again, a big thanks to Callek/ewong!
  • Buildmaster is up and running, and produces en-US builds, see 9/16 meeting’s Friends of the Fish Tank. Builds and langpacks in 18 languages including en-US are available unofficially thanks to A.Kalla.
  • [IanN] We’re going to have a task coming soon for moving from Win2003 to Win2008. There is also some upcoming changes to L10n build system in Q1 2015 (bug 1107635). [Ratty] Callek says we have a good chance of getting our builders upgraded to Win2008.
  • bug 1083689 Langpacks aren’t updated when auto-updating SeaMonkey. The langpacks need strict versioning e.g. min 2.30 max 2.30.* which makes sense since you don’t want 2.29 strings with 2.30. This is possibly a build config problem so we should check with Callek, ewong, or KaiRo.
    • The de and en-GB langpacks for 2.30 have:
      <em:minVersion>2.30</em:minVersion><em:maxVersion>2.*</em:maxVersion>
      2.22 had:
      <em:minVersion>2.22</em:minVersion><em:maxVersion>2.22.*</em:maxVersion>
  • Due to the master having some mysql issues, Callek has put a halt on the mysql updates, which affects the tbpl. So nothing is showing in tbpl atm.
  • [9th December 2014]
    • Infrastructure issues
      • linux64 systems are still plagued by bug 1058385. Regular AWOLing. Currently 6 slaves are up.(-2, -3, -4, -6, -7, -13)
        • Callek says that he’ll poke Mozilla IT about this.
      • NB: Currently the miscellaneous patches to fix the RelEng infra (tooltool et.al) are all applied to the master directly. Once reviewed, the patches will be pushed to their corresponding repositories and the master will be updated properly.
      • NB2: None of the test bustages are listed. Priority is currently set to get the builds running properly.
      • NB3: Build oranges are not mentioned. Read NB2.
      • On mozilla-central a win64 change has landed recently and switching to VS2013. SeaMonkey Windows builders are running Vista and VS 2013 has a minimum requirement of Windows 7.
    • [comm-central]
      • WinNT (debug/normal) busted : bug 1108970 – gfx/layers/d3d11/CompositorD3D11.cpp : Cannot open include file ‘DXGI1_2.h': No such file or directory
      • l10n nightly/dep builds busted : bug 1073327 Fix waiting review.
      • blocklist update bustage : bug 1074572 Fix waiting review.
    • [comm-aurora]
      • blocklist update bustage : bug 1074572 Fix waiting review.
      • OSX64 l10n nightly/dep bustage : related to bug 902876
      • OSX64 bustage: atm, unsure what’s busting this. tracked in bug 1090136
  • See RelEng page for the RelEng status history.
  • In Bug 902876 Comment 12 Mcsmurf is waiting for feedback from the build team on how to proceed.

Release Train

  • SeaMonkey 2.31 was released December 4.
  • Useful Firefox Release Schedule link: Releases Scheduling

Extensions and Plugins Compatibility Tracking

  • Firefox & Thunderbird Add-on Converter for SeaMonkey http://addonconverter.fotokraina.com/
    This tool goes a little further beyond simply modifying install.rdf – it also identifies a few more other things in the code that are Firefox or Thunderbird specific and attempts to change them. Of course, not all extensions can be ported so easily to SeaMonkey since there’s only so much an automated tool like that can do.
    •  !This item should be moved to somewhere more permanent and discoverable!
  • Flashblock is broken on Firefox and SeaMonkey (for 2.31, bug 1052480), regression from bug 1050049.
  • Current Lightning 3.6b1 builds offered on AMO don’t work with the 2.31 release (bug 1081534, bug 1106034, bug 1107865)
  • The Thunderbird team is planning to ship Lightning with Thunderbird. IanN thinks we will want to ship lightning too. We should coordinate with Thunderbird.
  • Proposed replacement for Venkman for shipping with SeaMonkey: Tiny JavaScript Debugger. TinyJSD is a JavaScript debugger for privileged code running Mozilla products like Firefox, Thunderbird, SeaMonkey. It serves to debug the application as well as extensions written in JavaScript.
    • Consensus is that we should ship TJSD as a replacement for Venkman. The next step is to contact the author.
  • Addon SDK: Mostly fixed. The largest remaining stumbling block is the hard dependency on (the Firefox) CustomizableUI.jsm which is used by SDK UI modules like button and toolbar. But see also Replace deprecated sdk/widget, without using toolbar from Australis
    You can fork the widget module and publish it on npm and try to support it. Just copy and paste it to a new module, remove the deprecation warnings, and publish that on npm, and start using it with jpm

  • See Basics page. Please only list current changes here.
  • Addon Compatibility Listings
  • Ratty filed bug 957149 to push an updated version of DOMi to addons.mozilla.org to pick up the latest fixes. Depends on:
  • Our build team needs to automate DOMI branch selection rather than having to tweak the client.py every 6 weeks. bug 763506

2.x (Last, Current, Next)

2.31

open tracking (0)
tracking requests (7)
targeted (0)
fixed (11)

2.Next
  • Stalled. Needs a kick.
    • bug 815954 Click-to-Play: Port bug 812562 (click-to-play blocklisted plugins: reshow urlbar notification as with normal click-to-play).
    • bug 476108 GetShortPathNameW fails under some NTFS junctions [patchlove].
  • Current breakages:
    • bug 998807 Sync account creation or device pairing fails with exception in BrowserIDManager needs an owner
    • bug 995737 adapt seamonkey for the address book remote content policy change; use permission manager instead of address book property.
  • Mozilla-central bugs that affect us:
    • Our front end Sync UI needs to be updated as the old backend is going away in Gecko/Firefox 31. See: New Firefox Sync has landed in Firefox Nightly. Tracked in:
      • bug 998807 Sync account creation or device pairing fails with exception in BrowserIDManager.
      • bug 1003434 Add support for about:sync-progress.
    • A lot of these bugs are due to mozilla-central switching from synchronous APIs to Asynchronous APIs.
    • bug 566746 (asyncFormHistory) Form history should use asynchronous storage API. Tracked in:
      • bug 912031 Use Asynchronous FormHistory.jsm in place of nsIFormHistory2 in Suite.
    • bug 769764 move proxy resolution to separate thread and remove sync api. Tracked in:
      • MailNews bug 791645 Rewrite calls to synchronous nsIProtocolProxyService::DeprecatedBlockingResolve with Async code before DeprecatedBlockingResolve disappears as well.
    • bug 793634 Force builds to be compatible with gtk 2.18/glib 2.22. Tracked in:
      • bug 795354 Migrate SeaMonkey Linux builders to CentOS 6.
    • bug 846635 Use asynchronous getCharsetForURI in getShortcutOrURI. bug 834543 Add asynchronous version of setCharsetForURI and getCharsetForURI. Tracked in:
      • bug 896947 Use asynchronous version of setCharsetForURI and getCharsetForURI in getShortcutOrURI and other places.
    • bug 825588 Asynchronous JavaScript API for downloads and bug 851471 Decommission nsIDownloadManager. Tracked in:
      • bug 888915 Move SeaMonkey to the new JavaScript API for downloads when nsIDownloadManager is decommissioned.

Feature List, Planning

Bug statistics for the last two (full) weeks: 29 new, 6 fixed, 15 triaged.

  • Medium triaging effort, average number of new bugs filed.
  • IanN thinks it would be useful to remind people on the newsgroups / forums that they can contribute by triaging. Tonymec will post a reminder to newsgroups / forums. See bug 1092632 (Sm_tri_HowTo) Document how to triage SeaMonkey bugs.

Open reviews/flags:
30 review
5 super-review
3 ui-review
6 feedback

  • See Feature List page for major wanted/needed features.
  • TODO: We will need to update our Sync UI code due to the new Sync API. Also we need to check if we are allowed to create FX accounts from our UI Since the new Sync accounts are FX accounts.[IanN] I’m sure I saw a question about FX accounts and branding. Callek was going to ask about being able to use Firefox accounts.

Roundtable – Personal Status Updates

Status Updates from developers – what are you working on, what’s the progress, any other comments? (feel free to add yourself to the list if your name is missing and you have interesting status).

InvisibleSmiley

Done:

Working on:

  • bug 1084143 (SM231-RELNOTE) Create/Update 2.31 Release Notes
Neil

Checked in to mozilla-central:

  • bug 1103868 ‘SupportsD2D1′ : is not a member of ‘mozilla::gfx::Factory’.

Checked in to comm-aurora and comm-beta:

  • bug 1061990 Cache size does not update after clearing cache.
  • bug 1101978 Deal with removal of the plugin finder service (branch-safe patch).

Still needs checkin:

  • bug 870556 Try to improve performance of the IMAP download queue.

Waiting for review:

  • bug 1101978 Deal with removal of the plugin finder service (string tweaks).

Still waiting for review:

Ratty

Bustage fix checked-in. Waiting for post landing review:

Check-in needed:

  • bug 1106274 Go history menu items end up at the bottom of the menu and not between the startHistorySeparator and endHistorySeparator.

Waiting for review:

  • bug 1097818 Add search suggestions to the DuckDuckGo search engine.

Working on:

  • bug 640420 Add draggable splitter between urlbar and searchbar.
  • bug 917725 Consolidate utils.js and PlacesUIUtils.jsm.
  • bug 1040910 Support XHTML in feed titles.
  • bug 1098639 The Edit Bookmark Panel should not animate when opening.

ToDo:
Other stuff:

  • Did some reviews.
  • Bug triage and Bug discussions.
  • Usual end user support and PR in newsgroups and Mozillazine.
rsx11m

Waiting for review:

  • bug 1102576 Extend help for tracking protection by descriptions for new notification bar and its preference.

Filed:

  • bug 1104743 No longer possible to modify or add HTTP Strict Transport Security settings in Data Manager.

Stalled:

  • bug 1032302 8BITMIME keyword ignored in EHLO greeting, BODY=8BITMIME absent in MAIL request for 8-bit transfers. (MailNews)

Other:

  • Bug triage, testing, and commenting for SeaMonkey and MailNews Core.
  • End-user information and discussion on MozillaZine.

Any other business?


SeaMonkey Meeting Details

Meeting NotesMozilla Platform: 2014-12-09

Need To Know

(Release and system issues that may impact engineering this week.)

Notices/Schedule (lsblakk/sylvestre/lmandel)

Next Merge: January 12, 2015 Next Release: January 13, 2015
Trains
Central: 37 Aurora: 36 Beta: 35 Release: 34
  • Firefox 34.0.5 updates are enabled at 100% as of this morning
  • We might need to do a mobile-only 34.0.1
  • Firefox Beta 35.0b2 shipping today
  • Fennec Beta 35.0b2 delayed go to build until Thursday
    • We’re still working on split apk for Gingerbread users, should have that in place in the next couple of weeks

Build Changes (gps)

(Build changes of which engineers should be aware.)

RelEng (catlee)

(Repo, test, and other information for engineers from the release engineering team.)

Upcoming Outages/Upgrades

(System outages/upgrades and tree closures that impact engineering.)

Quality Programs

(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)

MemShrink (njn)

<Read Only>
No update.

Team Stand-ups

(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)

Electrolysis (e10s) (blassey)

GFX (milan)

  • B2G: the follow up to 2.1 (“2.X”) looks to be based on Gecko 37…
    • Graphics plans are unchanged from 2.2 to 2.X
    • Graphics plans were based on Gecko 38
    • So… will likely keep the 38 time frame and uplift to B2G 37 branch past the trunk. Will figure it out by mid January when this becomes relevant.

JS (naveed)

  • Work Week
    • Shumway load time is highest priority
    • 2015 Planning (more on this to come)

Layout (jet/dbaron)

<Read Only>

  • Investigating bug 1107378 to fix webkit-dependent sites in China added to a mobile (fennec) fix-list.
  • Landed bug 1089417 – restyling fixes for CSS media queries

Media (mreavy)

<Read Only>

  • 1. What has your team done since last week that might impact others?
    • Hello is in Release/34! Early reviews are generally good (and recognize the differences for privacy compared to say Skype).
    • Landed sdparta! bug 1091242 – (rewrite of the majority of webrtc signaling, other than the parsing).
      • Known regression bug 1109130 breaks < MSVC 2013 compiles; fix shortly
    • Lots of great discussions at #mozlandia
    • FoxEye presentation (echoes of roc’s older MediaStream Processing proposal)
    • Work moving forward towards multiple streams of a type and renegotiation
  • 2. What will your team do this week that might impact others?
    • Starting work towards a webrtc.org update
    • More sdparta work

Performance (vladan)

1. What has your team done since last week that might impact others?

  • bug 1107779, bug 1107782: Avi found that the “activeTicks” FHR measurement significantly over-reports Firefox usage time, because Firefox fires “user-interaction-active” notifications while the mouse cursor is positioned over the browser even when the user is away from the computer
    • Should we just land the fix, or is it important to maintain continuity with the current measurement (for monitoring for relative changes)?
    • The above bugs are unrelated to the big drop in activeTicks reported in bug 1096498
  • Talos numbers for most E10s tests are available
    • we’re still converting some tests, e.g. tresize
    • there are serious regressions from E10S, e.g. WebGL is 4x worse on Windows
    • Joel Maher said he’ll write a blog post summarizing Talos regressions/improvements from E10S
  • Spark is the new, much faster way of analyzing large amounts of Telemetry data:

2. What will your team do this week that might impact others?

  • bug 998863: Almost ready to land asynchronous initialization of out-of-process plugins

3. Is anything slowing your team down or getting in their way?

  • bug 998863: Need one more review for asynchronous initialization of out-of-process plugins

Shumway (tschneidereit)

Roundtable

(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)

Touch input standardization update (mbrubeck)

  • W3C Pointer Events going to Proposed Rec. Shipping in IE, portions shipping in Chrome, partially implemented in Gecko.
    • Chrome and Safari have no plans to ship full Pointer Events implementation.
  • Touch Events CG is actively discussing errata and extensions, about to start a weekly-ish telecon. Let me know if you want to get involved.
  • Gecko/Touch has a breakdown of our implementation status and various missing pieces.

Links

Mailing List Threads

(Threads that are likely to be of interest to engineering from various mailing lists.)

Good Reads

(Links to blog posts, books, videos, etc. that you think will be of interest to others.)

irc #planning Log From This Meeting


Engineering Meeting Details

  • Tuesday 2014-12-0911:00 am Pacific Standard Time
  • Dial-in: conference# 98411
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 98411
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 98411
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 98411
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 98411
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 98411
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 98411
    • UK/London: +44 (0)207 855 3000, x92 Conf# 98411
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 98411
  • Engineering Vidyo Room / Air Mozilla / MTV Alien Nation / TOR Finch / SFO Warfield / PDX Hair of the Dog
  • join irc.mozilla.org #planning for back channel

QMOReview of the Testdays Program

Hello Mozilla QA Community, I’m writing today to seek your assistance.

Another year is coming to a close and we’ve seen no significant uptick in participation. Later this year we made a focused attempt to relaunch the Testdays program with a focus on mentorship. This work is largely on-going thanks to the help of Aaron Train, Gabriela Montagu, and Jennie Halperin. As the year comes to a close I can’t help but think we have a lot of work ahead of us. I’d like to start the new year by completely throwing away any past assumptions and to start anew. However, we can’t do that without your help.

Jennie has suggested that we conduct a SWOT analysis so we can better understand the impact and challenges of running testdays. To this end, I’ve set up an etherpad to start collecting your feedback.

  • If you’re someone who currently participates in testdays we need to understand what motivates you to participate each time.
  • If you’re someone who used to participate but no longer does we need to understand what drew you away from testdays.
  • If you’re someone who developed a feature that was a focus of a testday in the past we need to understand what benefit, if any, it brought to your work.
  • If you’re someone who has never participated in a testday before we need to understand how we’ve failed to motivate you.

I encourage you all to be as candid and detailed as possible. The more open and honest the feedback we receive the more likely we are to succeed in the future. We will be reviewing the feedback at next week’s meeting on Tuesday, December 16, 2014.

Thank you

The Mozilla BlogMozilla and Telenor Announce WebRTC Competency Center to Advance WebRTC and Help Standardization

Web Real-Time Communications (WebRTC) is changing the way people communicate over the Web by enabling developers to more easily integrate real-time communications on websites, mobile Web apps or video conferencing systems. WebRTC makes complex real-time communications technology available to everyone, … Continue reading

Mozilla L10NFirefox L10n Report (cycles 35 & 36)

Hello localizers!

Thank you all for your great work with Firefox 34 and 35. Here’s an outline of what is currently in Aurora this cycle (36) and what we accomplished together last cycle:

This cycle (Fx35) — 1 Dec. – 12 Jan.

Key dates:
– Beta sign-offs for new locales must be complete by 22 Dec.
– Beta sign offs must be completed before 29 Dec.
– Aurora sign offs must be completed before 12 Jan.
– Firefox 34 releases 13 Jan.
Features:
– Approximately 192 new string changes were made to Aurora desktop, 39 for Aurora mobile exclusively (unshared).
– 40% of the desktop strings changes are strings or files that need to be removed from your repos. 8% of all changes are related to Loop. 40% of all string changes are in devtools (see https://wiki.mozilla.org/Features/Release_Tracking#Likely_in_Firefox_36 for more info).
– 28% of the mobile string changes are related to Do Not Track. 15% of the mobile string changes are related to Content Security Policy. The rest include home page, Firefox Accounts, and preferences (see https://wiki.mozilla.org/Mobile/Roadmap#Firefox_36_.28Aurora.29 ).

Notes:
Please remember that sign offs are a critical piece to the cycle and mean that you approve and can vouch for the work you’re submitting for shipment.

Last cycle — 13 Oct. – 1 Dec.

Noteworthy accomplishments:
70% of all locales shipped Firefox 34 on desktop updates on time. Congratulations to everyone who signed off and shipped this last cycle! This is an 10% decrease in locale coverage between Firefox 33 and Firefox 34.
77% of all locales shipped Fennec 34 on time. Congratulations to everyone who signed off and shipped this last cycle! This is a 3% increase in locale coverage between Fennec 33 and Fennec 34!

Thank you to everyone for all of your dedication and hard work this last sprint. As always, if you note anything missing in these reports, please let me know.

QMOBug Triage Day

Greetings mozillians!

Monday, December 15th we will be holding our weekly Bug Triage Day. Join us on the #qa IRC channel and get involved!

No previous experience in working with bugs needed, just ask for help on #qa and someone will happily offer you assistance. Details are also available in this event’s wiki page.

If you aren’t able to attend this event but still want to get involved, you can triage bugs on your own time.

Remember to add the [bugday-20141215] tag to the whiteboard or a comment for every bug you work on, so we know you participated in this event.

Join us and help make Firefox better!

When: December 15, 2014.

Firebug BlogFirebug 2.0.7

The Firebug team released Firebug 2.0.7. This is a maintenance release ensuring compatibility with latest Firefox release.

 

Firebug 2.0.7b1 has also been released to update users on AMO beta channel. This version is exactly the same as 2.0.7.

 

Firebug 2.0.7 is compatible with Firefox 30 – 37

Firebug 2.0.7 fixes 1 issue.

 

Firebug 2.0.7 is not compatible with upcoming Multiprocess Firefox (read more about e10s), but we are already working on Firebug 3 (alpha available for testing) that is fully compatible. Note that Firebug 2 users will be automatically prompted for update when running in e10s enabled browser. The following panel will be displayed when clicked on Firebug start button. Read more about Firebug & e10s.

 

Please post feedback in the newsgroup, thanks.

Jan ‘Honza’ Odvarko

 

Meeting NotesMozilla Project: 2014-12-08

All-hands Status Meeting Agenda

Items in this section will be shared during the live all-hand status meeting.

Friends of Mozilla

A big thanks to Mardi for inviting Macklemore & Ryan Lewis to help us “Just celebrate Mozilla” in Mozlandia.

Upcoming Events

Monday, 08 December
  • JSFest Oakland Dec 7-13 in Oakland, CA
    • JSFest is a week long festival organized by numerous members of the JavaScript community
    • Jen Adwent-Fong speaking
Friday, 12 December

Project Status Updates (voice updates)

Firefox

Speaker Location: Toronto (johnath)

Firefox Mobile

Speaker Location: Remote (mfinkle)

Webmaker

Speaker Location: Brooklyn (Chris Lawrence)

· Contributor Goal Update

Speakers

Presenter Title Topic Location Share? Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, other info) Links to slides or images you want displayed on screen Link to where audience can find out more information

Roundtable

Do you have a question about a Mozilla Project or initiative? Let us know by Friday- we’ll do our best to get you an answer.

Please note that we may not always be able to get to every item on this list, but we will try!

Who are you? Area of question Question
What’s your name? What do you work on? Is your question about policy, a product, a Foundation initiative, etc. What would you like to know?

Welcome!

Let’s say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.

Introducing New Volunteers

New Volunteer(s) Introduced by Speaker location New Volunteer location Will be working on
Who is the new volunteer(s)? Who will be introducing that person? Where is the introducer? Where is the new person based? What will the new person be doing?

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Yushin Cho Tim Terriberry Mountain View Mountain View Codec Engineer working on Daala
Linda Ypulong Albert Villarde Mountain View San Francisco Mozilla Operations Center (MOC) Manager

<meta>

Notes and non-voice status updates that aren’t part of the live meeting go here.

Status Updates By Team (*non-voice* updates)

Automation & Tools
Engagement
Events
  • Want more productive team work weeks? Want to stop bike-shedding? Become an expert facilitator! The Agile Coaching Institute is holding their 2.5 day Agile Facilitator class in Moz SF space Jan 29-30. Group discounts available. For more information visit: https://etherpad.mozilla.org/2TKBil02Lp

  • Dial-in: conference# 8600
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 8600
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 8600
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 8600
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 8600
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 8600
    • UK/London: +44 (0)207 855 3000, x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600

Firefox AppsNovember Contributor of the Month: Rigin Oommen

Rigin OommenCongratulations to Rigin Oommen, our Marketplace Contributor of the Month for November! Rigin is an engineering student, author of 10 apps on Firefox Marketplace, and a member of the Community App Curation Board.

In addition to Marketplace, Rigin also contributes to Webmaker, Location Services, Localization, SUMO, and MDN. He is involved with organizing Mozilla Events in his local communities as well.

In November, Rigin helped to complete App Regression Testing for Firefox OS v2.1 and also contributed to localizing FxStumbler for Malayalam.

Here are all the accomplishments from November—thank you to everyone who made a difference last month! A special shout-out goes to Santosh and Hossain, who were runners-up for Contributor of the Month.

A new wiki for December is now available. Be sure to report any accomplishments in the Get Recognized section. Happy last month of the year!

The Mozilla BlogMozilla Joins Hour of Code

For the second year in a row, Mozilla is a partner in the Hour of Code, and we hope you’ll join us. This  campaign launched in 2013, to align with Computer Science Education Week, and to demystify code and show … Continue reading

Mozilla: View Source FundraisingBitcoin Donations to Mozilla: 17 Days In

Just over two weeks ago Mozilla began accepting bitcoin donations. In the first three days our bitcoin donation form was live, we raised $1,600 USD in bitcoin, and to date we’ve raised about $5,000 USD. Here is the trendline: We … Continue reading

Bugzilla TipsMaking Bugzilla Searches Faster

People often wonder how to make searches in Bugzilla faster on large installations. Two things will give you the most bang for the buck:

  • Specify you only want open bugs (if that’s true)
  • Specify a product (and, if you know it, a component) to search

Do those two things, and your searches will be much faster.

Coincidentally enough, Bugzilla’s “Simple Search” (BMO version) allows you to specify precisely those two things.


Mozilla Add-ons BlogAdd-ons Update – Week of 2014/12/05

I post these updates every 3 weeks to inform add-on developers about the status of the review queues, add-on compatibility, and other happenings in the add-ons world.

The Review Queues

  • Most nominations for full review are taking less than 9 weeks to review.
  • 185 nominations in the queue awaiting review.
  • Most updates are being reviewed within 5 weeks.
  • 101 updates in the queue awaiting review.
  • Most preliminary reviews are being reviewed within 5 weeks.
  • 159 preliminary review submissions in the queue awaiting review.

If you’re an add-on developer and would like to see add-ons reviewed faster, please consider joining us. Add-on reviewers get invited to Mozilla events and earn cool gear with their work. Visit our wiki page for more information.

Firefox 34 Compatibility

The Firefox 34 compatibility blog post is up. The automatic AMO validation was also run already. Note that there were also some changes in the search UI that could affect your add-on.

As always, we recommend that you test your add-ons on Beta and Firefox Developer Edition (formerly known as Aurora) to make sure that they continue to work correctly. End users can install the Add-on Compatibility Reporter to identify and report any add-ons that aren’t working anymore.

Firefox 35 Compatibility

Coming up.

Electrolysis

Electrolysis, also known as e10s, is the next major compatibility change coming to Firefox. In a nutshell, Firefox will run on multiple processes now, running each content tab in a different one. This should improve responsiveness and overall stability, but it also means many add-ons will need to be updated to support this.

We will be talking more about these changes in this blog in the near future. For now we recommend you start looking at the available documentation.

hacks.mozilla.orgVideos and Firefox OS

Before HTML5

Those were dark times Harry, dark times – Rubeus Hagrid

Before HTML5, displaying video on the Web required browser plugins and Flash.

Luckily, Firefox OS supports HTML5 video so we don’t need to support these older formats.

Video support on the Web

Even though modern browsers support HTML5, the video formats they support vary:

In summary, to support the most browsers with the fewest formats you need the MP4 and WebM video formats (Firefox prefers WebM).

Multiple sizes

Now that you have seen what formats you can use, you need to decide on video resolutions, as desktop users on high speed wifi will expect better quality videos than mobile users on 3G.

At Rormix we decided on 720p for desktop, 360p for mobile connections, and 180p specially for Firefox OS to reduce the cost in countries with high data charges.

There are no hard and fast rules — it depends on who your market audience is.

Streaming?

The best streaming solution would be to automatically serve the user different videos sizes depending on their connection status (adaptive streaming) but support for this technology is poor.

HTTP live streaming works well on Apple devices, but has poor support on Android.

At the time of writing, the most promising technology is MPEG DASH, which is an international standard.

In summary, we are going to have to wait before we get an adaptive streaming technology that is widely accepted (Firefox does not support HLS or MPEG DASH).

DIY Adaptive streaming

In the absence of adaptive streaming we need to try to work out the best video quality to load at the outset. The following is a quick guide to help you decide:

Wifi or 3G

Using a certified Firefox OS app you can check to see if the user is on wifi or not.

var lock    = navigator.mozSettings.createLock();
var setting = lock.get('wifi.enabled');
 
setting.onsuccess = function () {
  console.log('wifi.enabled: ' + setting.result);
}
 
setting.onerror = function () {
  console.warn('An error occured: ' + setting.error);
}

https://developer.mozilla.org/en-US/docs/Web/API/Settings_API

There is some more information at the W3C Device API.

Detecting screen size

There is no point sending a 720p video to a user with a screen smaller than 720p. There are many ways to get the different bounds of a user’s screen; innerWidth and width allow you to get a good idea:

function getVidSize()
{
  //Get the width of the phone (rotation independent)
  var min = Math.min($(window).innerHeight(),$(window).innerWidth());
  //Return a video size we have
  if(min < 320)      return '180';
  else if(min < 550) return '360';
  else               return '720';
}

http://www.quirksmode.org/m/tests/widthtest.html

Determining internet speed

It is difficult to get an accurate read of a user’s internet speed using web technologies — usually they involve loading a large image onto the user’s device and timing it. This has the disadvantage of having to send more data to the user. Some services such as: http://speedof.me/api.html exist, but still require data downloads to the user’s device. (Stackoverflow has some more options.)

You can be slightly more clever by using HTML5, and checking the time it takes between the user starting the video and a set amount of the video loading. This way we do not need to load any extra data on the user’s device. A quick VideoJS example follows:

var global_speedcount = 0;
var global_video = null;
global_video = videojs("video", {}, function(){
//Set up video sources
});
 
global_video.on('play',function(){
  //User has clicked play
  global_speedcount = new Date().getTime();
});
 
function timer()
{
  var diff = new Date().getTime() - global_speedcount;
  //Remove this handler as it is run multiple times per second!
  global_video.off('timeupdate',timer);
}
 
global_video.on('timeupdate',timer);

This code starts timing when the user clicks play, and when the browser starts to play the video it sends timing information to timeupdate. You can also use this function to detect if lots of buffering is happening.

Detect high resolution devices

One final thing to determine is whether or not a user has a high pixel density screen. In this case even if they have a small screen it can still have a large number of pixels (and therefore require a higher resolution video).

Modernizr has a plugin for detecting hi-res screens.

if (Modernizr.highresdisplay)
{
  alert('Your device has a high resolution screen');
}

WebP Thumbnails

Not to get embroiled in an argument, but at Rormix we have seen an average decrease of 30% in file size (WebP vs JPEG) with no loss of quality (in some cases up to 50% less). And in countries with expensive data plans, the less data the better.

We encode all of our thumbnails in multiple resolutions of WebP and send them to every device that supports them to reduce the amount of data being sent to the user.

Mobile considerations

If you are playing HTML5 videos on mobile devices, their behavior differs. On iOS it automatically goes to full screen on iPhones/iPods, but not on tablets.

Some libraries such as VideoJS have removed the controls from mobile devices until their stability increases.

Useful libraries

There are a few useful HTML5 video libraries:

Mozilla links

Mozilla has some great articles on web video:

Other useful Links

QMOFirefox 35 Beta 3 Testday, December 12th

Greetings mozillians!

Long time no Testday! So, the great news is that the following Friday, December 12th, we’ll be hosting Firefox 35.0 beta 3 Testday. The main focus is going to be on the most recent changes and fixes, like New Search and Hello button. All the detailed instructions are available in this etherpad.

No previous testing experience is required so feel free to join via #qa IRC channel and our moderators will give you assistance.

Join us next Friday and let’s make Firefox better together!

When: December 12, 2014.

QMOBug Verification Day

Greetings everyone!

Wednesday, December 10th, we will be holding our weekly Bug Verification Day. This event is held on the #qa IRC channel and it’s addressed to everyone willing to get involved and improve Firefox.

You don’t need to have any previous experience in working with bugs. Ask for help on the #qa channel and someone there will give you assistance. More details are available in the wiki page we set up for you.

If you’re unable to attend these meetings and still want to get involved, you can verify bugs on your own time. Just add the [bugday-20141210] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us and help make Firefox better!

When: December 10, 2014.

QMOBug Triage Day

Hello mozillians!

Monday, December 8th we will be holding our weekly Bug Triage Day. Join us on the #qa IRC channel and get involved!

You don’t need to have any previous experience in working with bugs. Ask for help on #qa and someone there will offer you assistance. Details are also available in this event’s wiki page.

If you aren’t able to attend this event but still want to get involved, you can triage bugs on your own time.

Remember to add the [bugday-20141208] tag to the whiteboard or a comment for every bug you work on, so we know you participated in this event.

Join us and help make Firefox better!

When: December 8, 2014.

hacks.mozilla.orgMozilla Hacks gets a new Editor

Almost three and a half years ago I wrote my first article for Mozilla Hacks and have been the Editor since September 2012. As the face and caretaker of this blog for such a long time, having published 350 posts in two years, I want to take the opportunity to thank you all for reading, and to pass on the torch to its new Editor.

I’ve been in the same team as Havi Hoffman since I started at Mozilla, and I’m now glad to announce that she is the new Editor of Mozilla Hacks!

I know there are a number of interesting upcoming articles and I’d strongly recommend you keep on reading this blog. Also make sure to follow it on Twitter: @mozhacks.

All the comments & interesting discussions we’ve had over the years have been much appreciated, and thanks to all the authors who have taken their valuable time to share their knowledge and to help creating a great Open Web.

Thanks for now, and see you on the Internet!

Mozilla: View Source FundraisingTesting, testing and more testing

While the team working on our End of Year fundraising campaign are heads down iterating on form design, localization, email writing and much more I wanted to take a quick moment to report out on how the numbers are looking … Continue reading

hacks.mozilla.orgFirebug 3 & Multiprocess Firefox (e10s)

Firebug 3 alpha was announced couple of weeks ago. This version represents the next generation of Firebug built on top of Firefox native developer tools.

There are several reasons why having Firebug built on top of native developer tools in Firefox is an advantage — one of them is tight integration with the existing platform. This direction allows simple use of available platform components. This is important especially for upcoming multiprocess support in Firefox (also called Electrolysis or E10S).

From wiki:

The goal of the Electrolysis project (“e10s” for short) is to run web content in a separate process from Firefox itself. The two major advantages of this model are security and performance.

The e10s project introduces a great leap ahead in terms of security and performance, as well as putting more emphasis on the internal architecture of add-ons. The main challenge (for many extensions) is solving communication problems between processes. The add-on’s code will run in a different process (browser chrome process) from web page content (page content process) — see the diagram below. Every time an extension needs to access the web page it must use one of the available inter-process communication channels (e.g. message manager or remote debugging protocol). Direct access is no longer possible. This often means that many of the existing synchronous APIs will turn into asynchronous APIs.

Developer tools, including Firebug, deal with the content in many ways. Tools usually collect a large amount of (meta) data about the debugged page and present it to the user. Various CSS and DOM inspectors not only display internal content data, but also allow the user to edit them and see live changes. All these features require heavy interaction between a tool and the page content.

So Firebug, built on top of the existing developer tools infrastructure that already ensures basic interaction with the debugged page, allows us to focus more on new features and user experience.

Firebug Compatibility

Firebug 2.0 is compatible with Firefox 30 – 36 and will support upcoming non-multiprocess browsers (as well as the recently announced browser for developers).

Firebug 3.0 alpha (aka Firebug.next) is currently compatible with Firefox 35 – 36 and will support upcoming multiprocess (as well as non-multiprocess) browsers.

Upgrade From Firebug 2

If you install Firebug 2 into a multiprocess (e10s) enabled browser, you’ll be prompted to upgrade to Firebug 3 or switch off the multiprocess support.

Learn more…

Upgrade to Firebug 3 is definitely the recommended option. You might miss some features from Firebug 2 in Firebug 3 (it’s still in alpha phase) like Firebug extensions, but this is the right time to provide feedback and let us know what the priority features are for you.

You can follow us on Twitter to be updated.

Leave a comment here or on the Firebug newsgroup.

Jan ‘Honza’ Odvarko

WebmakerMake the web: start with an Hour of Code

Kenya - November 2014

Making the web in Kenya. Photo Credit: Laura de Reynal

For the second year in a row, Webmaker and Hive Learning Networks will be participating in the largest learning event in history–the Hour of Code, running from Dec. 8-14, 2014.

Code.org launched this global campaign in 2013, to align with Computer Science Education Week, and to demystify code and show that anyone can learn the basics. Last year, 15 million students participated, and the campaign was supported by education and technology leaders, celebrities and even teachers in your hometown. This year, the goal is to reach 100 million students, to introduce them to an hour of computer science as a means to helping them become better problem-solvers and logistical thinkers, and to explore new outlets for creativity.

This is a chance to be part of something big. Whether in classrooms, afterschool programs, or at home with friends, you can achieve and learn a lot in one hour.

Webmaker Hour of Code Activity

We put together a few fun activities that you can do with others to celebrate the Hour of Code this year. Try coding your first app using local weather data, or remixing your local newspaper’s website. No previous coding experience is required–all you need are a computer, access to the web, and some eager learners (note these activities may be best for ages 8 and up).

In addition to helping to build hard skills like HTML, CSS, JavaScript and app development, these activities have other important skills baked in–like critical thinking, problem-solving and collaboration. It’s this combination that results in a fun learning experience, especially important when introducing new concepts.

Hour of Code in your Hometown
With millions of people participating in this year’s Hour of Code campaign, there are sure to be some events happening near you. These could be great opportunities to learn new skills while also meeting new people, and being introduced to ongoing programs offered in schools, at libraries and other community centers in your hometown.

Here are some examples of programs and events happening in Mozilla Hive Learning cities across North America:

Hive Chattanooga:

  • Screen Shot 2014-12-01 at 11.14.21 PMThe Chattanooga Public Library, STEM Innovation Hub, Public Education Foundation, Tennessee Code Academy, Carbon Five and Hive Chattanooga are hosting two Hour of Code events on 12/13: one is for 3rd-4th grade students from 10am-12pm at the Youth and Family Development Center; and the other is for 5th-8th graders, at the Chattanooga Public Library from 1-3pm.
  • They’re also hosting a Code and Carols event on 12/11, a meet-up for teachers, educators, and others to learn about the digital literacy resources available for classrooms and informal education spaces.

Hive Pittsburgh:

  • The Remake Learning Digital Corps will be running afterschool programs all week featuring MakeyMakey, Hummingbird Robotics, Scratch, App Inventor and Webmaker. Check out their teaching kits here!
  • Several schools, including Propel High School, Elizabeth Forward High School and Elizabeth Forward Middle School, will run Hour of Code activities during the school day, including partnering older and younger students for mentoring opportunities.
  • Carnegie Science Center is hosting a drop-in Hour of Code workshop on 12/9 from 10am-2pm.The Labs at Carnegie Library of Pittsburgh will host coding workshops at their Main Library branch space on 12/9 during afterschool time from 4-7 pm. Also, the Homewood branch will feature an Hour of Code event on 12/11with TekStart.

Hive Chicago

  • The Lawndale Christian Development Corporation Community Technology Center is hosting a three-day celebration featuring written, graphic, video and animated design on 12/11, an “Open Coding Workshop” with Scratch and Webmaker on 12/12, and a “CodeCreate and Friends” interactive workshop using Simple Photocell Circuits with Morse Code, Scratch and Webmaker on 12/13.
  • LevelUP is hosting a robotics-focused Hour of Code on 12/6, and an evening of open coding opportunities on 12/9.
  • Museum educators at The Field Museum, Shedd Aquarium, and Adler Planetarium are highlighting coding careers in museums through in-person events as well as online. Follow hashtag #MuseumsCode on Twitter to find out about Hour of Code events happening in Chicago and at museums in your city.

Hive NYC

  • Iridescent will run their Build an App class for 5th-10th graders to building websites using Thimble, Neocities and Javascript.
  • NYC Parks and Recreation Computer Resource Centers are running KidsCode! programs in ten locations.
  • Brooklyn Public Library is hosting an Hour of Code workshop for all ages in the Central Library’s Information Commons Lab on 12/14 from 2-3pm.

Hive Kansas City

  • This month’s Hive Kansas City meet-up on 12/9 will feature Hour of Code activities including remixing the Nelson Atkins Museum online collection using X-Ray Goggles.

Hive Toronto

Hive Bay Area

  • The Kapor Center for Social Impact will host Brothers Code, a one-day event on 12/13 for African American and Latino young men with an interest in tech and tech careers.

You can find even more Hour of Code events across the world here.

We hope you have an opportunity to spend at least one hour between Dec. 8th and 12th to learn something new or help someone else gain useful new skills. If you do, be sure to apply for your Web Literacy Skill Share badge, and show us what you’ve made using the #hourofcode and #webmaker hashtags.

hacks.mozilla.orgMetricsGraphics.js – a lightweight graphics library based on D3

MetricsGraphics.js is a library built on top of D3 that is optimized for visualizing and laying out time-series data. It provides a simple way to produce common types of graphics in a principled and consistent way. The library supports line charts, scatterplots, histograms, barplots and data tables, as well as features like rug plots and basic linear regression.

The library elevates the layout and explanation of these graphics to the same level of priority as the graphics. The emergent philosophy is one of efficiency and practicality.

Hamilton Ulmer and I began building the library earlier this year, during which time we found ourselves copy-and-pasting bits of code in various projects. This led to errors and inconsistent features, and so we decided to develop a single library that provides common functionality and aesthetics to all of our internal projects.

Moreover, at the time, we were having limited success with our attempts to get casual programmers and non-programmers within the organization to use a library like D3 to create dashboards. The learning curve was proving a bit of an obstacle. So it seemed reasonable to create a level of indirection using well-established design patterns to try and bridge that chasm.

Our API is simple. All that’s needed to create a graphic is to specify a few default parameters and then, if desired, override one or more of the optional parameters on offer. We don’t maintain state. To update a graphic, one would call data_graphic on the same target element.

The library is also data-source agnostic. While it provides a number of convenience functions and options that allow for graphics to better handle things like missing observations, it doesn’t care where the data comes from.

A quick tutorial

Here’s a quick tutorial to get you started. Say that we have some data on a scholarly topic like UFO sightings. We decide that we’re interested in creating a line chart of yearly sightings.

We create a JSON file called data/ufo-sightings.json based on the original dataset, where we aggregate yearly sightings. The data doesn’t have to be JSON of course, but that will mean less work later on.

The next thing we do is load the data:

d3.json('data/ufo-sightings.json', function(data) {
})

data_graphic expects the data object to be an array of objects, which is already the case for us. That’s good. It also needs dates to be timestamps if they’re in a format like yyyy-mm-dd. We’ve got aggregated yearly data, so we don’t need to worry about that. So now, all we need to do is create the graphic and place it in the element specified in target.

d3.json('data/ufo-sightings.json', function(data) {
    data_graphic({
        title: "UFO Sightings",
        description: "Yearly UFO sightings (1945 to 2010).",
        data: data,
        width: 650,
        height: 150,
        target: '#ufo-sightings',
        x_accessor: 'year',
        y_accessor: 'sightings',
        markers: [{'year': 1964, 
                   'label': '"The Creeping Terror" released'
        }]
    })
})

And this is what we end up with. In this example, we’re adding a marker to draw attention to a particular data point. This is optional of course.

A line chart in MetricsGraphics.js

A few final remarks

We follow a real-needs approach to development. Right now, we have mostly implemented features that have been important to us. Having said that, our work is available on Github, as are many of our discussions, and we take any and all pull requests and issues seriously.

There is still a lot of work to be done. We invite you to take the library out for a spin and file bugs! We’ve set up a sandbox that you can use to try things out without having to download anything: http://metricsgraphicsjs.org

MetricsGraphics.js v1.1 is scheduled for release on December 1, 2014.

Mozilla Add-ons BlogDecember Featured Add-ons

Pick of the Month: Location Bar Enhancer

by Girish Sharma

Modifies the Location Bar of Firefox into a breadcrumb display with rich and interactive features.

“I absolutely LOVE the page loading progress bar animation. It absolutely modernizes Firefox, especially when combines with Australis curved tabs in Firefox 29. Looks very slick (and very useful)!”

Also Featured

Amazon “Add to Wish List” Button by Amazon Wish List
Official Amazon Add-on. Add anything from any website to your Amazon Wish List!

Nominate your favorite add-ons

Featured add-ons are selected by a community board made up of add-on developers, users, and fans. Board members change every six months, so there’s always an opportunity to participate. Please follow this blog to find out when we are selecting a new board.

If you’d like to nominate an add-on for featuring, please send it to amo-featured@mozilla.org for the board’s consideration. We welcome you to submit your own add-on.

SUMO BlogWhat’s up with SUMO – 28 November

Welcome, welcome, do come in and take a seat. We’ve got a few interesting pieces of news from the world of SUMO… and a bit beyond!

New arrivals to SUMO – a new handful of internet heroes arrives!

Latest SUMO Community meeting

The video is below, the notes are here: https://etherpad.mozilla.org/sumo-2014-11-24

(Is it just me, or is Roland sitting in the most red room ever known to mankind?)

Reminder: next SUMO Community meeting…

  • Will NOT take place on the 1st of December – we are all in Portland for the annual Mozilla: the Gathering (almost like Magic: the Gathering, but with more actual magic happening)
  • Will most likely take place on the 8th of December, but we’ll update you about that in due time – thank you for your patience!
  • Remember – if you want to add a discussion topic to the live meeting agenda:
    • Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Monday (this will make it easier to have an efficient meeting)
    • Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda)

Shout-outs

  • Huge thanks to Andrew (otherwise known as feer56), who’s been a solid rock for SUMO for quite a while now. This time, it’s about his review of the SUMO bugs in Bugzilla. This spring cleaning in winter is definitely making things much easier for us all – thank you!
  • Kudos to duggabe for his contributions to the Thunderbird KB and refreshing “newbie” enthusiasm :-)

Forum update

KB update

L10n update

Firefox (+ OS, + for Android) update

And that’s it for this week! Follow our Twitter account for updates from the Mozilla work week in Portland next week. Who knows, we may even take a team picture! As mentioned before, the Portland gathering means we’ll be a bit quieter on the forums, and IRC, but our great community (yes, this means YOU!) is always there, so don’t hesitate, come over and say “hi”.

PS. Is everyone as unexcited by this as I am? Yes, I prefer that by far ;-)

Mozilla Add-ons BlogNew search UI coming in Firefox 34

Update: it looks like this change will only be visible to a fraction of users initially, so please plan any changes to be backward-compatible.

The search UI was retooled and it will launch with Firefox 34 (at least in the US region). This landed late in the Firefox 34 beta cycle since it is related to our switch of default search provider in certain regions, which was announced very recently.

Unfortunately, this is bound to break some add-ons and themes. If your add-on overlays any content in the search UI or modifies its behavior, we strongly recommend that you test it on the latest beta (only the US English version seems to have this change for now). If you have any compatibility updates related to this issue in the review queues, please let us know on our IRC channel (#amo-editors) or the amo-editors mailing list.

Let us know in the comments if any of your add-ons break because of this.

QMOBug Verification Day

Greetings everyone!

Wednesday, December 3rd, we will be holding our weekly Bug Verification Day. In case you missed our latest posts, we will be holding this event via the#qa IRC channel from now on!

You don’t need to have any previous experience in working with bugs. Ask for help on the #qa channel and someone there will give you assistance. More details are available in the wiki page we set up for you.

If you’re unable to attend these meetings and still want to get involved, you can verify bugs on your own time. Just add the [bugday-20141203] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us on Wednesday and let’s make Firefox better together!

When: December 3, 2014.

Meeting NotesMobile: 2014-11-26

Schedule

  • Next merge: 2014-12-01

Topics for This Week

Work Week
Next week we are meeting up in Portland with the rest of Mozilla. Lots of opportunities to chat with your own team, but also with other teams. Go to meetings to learn about 2015 Initiatives. Hack on amazing, cool stuff – not on normal bug work. Leverage the opportunity.
Passwords
We have had a few meetings about new password-related work in Mobile & Desktop & Cloud Services. We are landing some “parity” features in Fennec soon. We are also looking ahead to new features too, including: Password generation, password strength, LoginManager form heuristics and more.
Reading List
In addition to working on client-side features, Mozilla has also started working on a Reading List service that would sync data across platforms – Mobile and Desktop.

Tracking Review

Beta

  • Next Build:
ID Summary Status Assigned to
1049138 crash in VisitNextEdgeBetweenRect NEW Eugen Sawin [:esawin] (esawin)
1050832 OMX Plugin could not be initialized in Android L Preview (Loading OMX Plugin: nullptr) ASSIGNED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1062758 crash in nsObserverService::RemoveObserver(nsIObserver*, char const*) NEW
1081560 Opening recent tab from awesomescreen with kbd closed results in blank page REOPENED Robert O’Callahan (:roc) (Mozilla Corporation) (roc)
1085742 crash in nsAutoPtr<mozilla::CacheData>* nsTArray_Impl<nsAutoPtr<mozilla::CacheData>, nsTArrayInfallibleAllocator>::AppendElement<mozilla::CacheData*>(mozilla::CacheData* const&) NEW :Ehsan Akhgari (not reading bugmail, needinfo? me!) (ehsan.akhgari)


5 Total;
5 Open (100%);
0 Resolved (0%);
0 Verified (0%);

Aurora

  • Next Build:
ID Summary Status Assigned to
936099 We should use new Android 4.4 full-screen modes to draw content underneath the toolbar and status bar NEW Lucas Rocha (:lucasr) (lucasr.at.mozilla)
987223 No visible H.264 video playback on MPEG-4 AVC (part 10) (avc1) (Planar 4:2:0 YUV) on Android 4.0 devices NEW Edwin Flores [:eflores] [:edwin] (edwin)
1058160 Specify main activity org.mozilla.fennec.App with a default intent over org.mozilla.search.MainActivity ASSIGNED Nick Alexander :nalexander (nalexander)
1063867 Add telemetry flag for resource-constrained builds NEW
1064669 GooglePlayServicesUtil.isGooglePlayServicesAvailable takes ~212ms during startup REOPENED Wesley Johnston (:wesj) (wjohnston)
1065190 [meta] Improve Android version conditionalization NEW
1071690 WebGL content disappears NEW Robert O’Callahan (:roc) (Mozilla Corporation) (roc)
1072423 Autophone – support split APKs for 2.3/later ASSIGNED Bob Clary [:bc:] (bob)
1073554 Visible seams in webpages while panning NEW Matt Woodrow (:mattwoodrow) (matt.woodrow)
1073772 Releng work for producing two ARMv7 APKs to target different API ranges REOPENED Jordan Lund (:jlund) (jlund)
1074536 Padding for integrated Statusbar overlaps with addressbar when statusbar is hidden NEW Lucas Rocha (:lucasr) (lucasr.at.mozilla)
1079584 Persist delayed search events on disk ASSIGNED swaroop.rao
1079874 crash in java.lang.NullPointerException: at org.mozilla.gecko.toolbar.BrowserToolbarTabletBase.setButtonEnabled(BrowserToolbarTabletBase.java) NEW Lucas Rocha (:lucasr) (lucasr.at.mozilla)
1079875 crash in java.lang.NullPointerException: at org.mozilla.gecko.toolbar.BrowserToolbarPhoneBase.<init>(BrowserToolbarPhoneBase.java) NEW Lucas Rocha (:lucasr) (lucasr.at.mozilla)
1079891 Search widget not available for adding to a Android homescreen on the Android One (and likely other devices); fixed widget size can not fit on the device NEW Wesley Johnston (:wesj) (wjohnston)
1080749 Add nightly jobs for new splitapk Android builders ASSIGNED Jordan Lund (:jlund) (jlund)
1083271 Big regression in taskjs benchmark 2014-10-08 NEW Matt Woodrow (:mattwoodrow) (matt.woodrow)
1089210 Crash without breakpad on windows93.net NEW Milan Sreckovic [:milan] (milan)
1089417 regression: golem.de not rendered correctly NEW David Baron [:dbaron] (UTC-8) (needinfo? for questions) (dbaron)
1090300 crash in mozilla::MediaCodecDataDecoder::DecoderLoop() REOPENED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1093826 Don’t build GeckoView for resource-constrained builds NEW Nick Alexander :nalexander (nalexander)
1096090 Android Aurora 35 fails to play videos on Asus Memopad NEW James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1097116 Some frames not displayed in short video REOPENED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1098390 Graphic buffer garbage shown and persists when entering full-screen (video/regular content) in Android 5.0 (Nexus 5) NEW Lucas Rocha (:lucasr) (lucasr.at.mozilla)
1098421 Aurora stops unexpectedly when trying to launch Search Activity from the widget NEW :Margaret Leibovic (margaret.leibovic)
1100100 Downloaded file can’t be opened from “Downloads” page NEW Wesley Johnston (:wesj) (wjohnston)
1100126 Flickering green screen while playback video in different devices ASSIGNED James Willcox (:snorp) (jwillcox@mozilla.com) (snorp)
1100361 Could not install/update to latest Nightly on Gingerbread NEW
1100439 Tinted status bar not working in Android 5.0 ASSIGNED Stefan Arentz [:st3fan] (sarentz)


29 Total;
29 Open (100%);
0 Resolved (0%);
0 Verified (0%);

Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs. Make sure friends also get awarded a badge. New contributors are highlighted in bold.

  • Chun-Min Chang fixed bug 1071197 – Ensure user-triggered mouse events are not treated as synthesized

Stand ups

Suggested format:

  • What did you do last week?
  • What are working on this week?
  • Anything blocking you?

Please keep your update to under 2 minutes!

James W. (snorp)

<Read Only>

  • Ironing out a few remaining issues on bug 1097116
  • Trying to get a proof-of-concept standalone MP3 parser coupled with MediaCodec for next week
  • Figuring out why openh264 stuff won’t load

JChen

<Read Only>

Fixed
  • bug 1091758 – Add relative path to filenames in BHR data
  • bug 1101031 – Handle crashes in update service
  • bug 1093098 – crash in org.mozilla.gecko.ANRReporter.requestNativeStack
Working on
  • e10s telemetry
  • bug 1103101 – Start the telemetry module in content processes
  • bug 1103036 – Allow ContentChild to perform tasks on shutdown

GCP

Last week

  • Standalone WebRTC
  • Visible seams bug

Next week

  • Portland

Randall Barker

<Read Only>

Last Week:

Next Week:

  • Work week.
  • Get desktop WebRTC player using new version of standalone WebRTC library.

Eugen Sawin

Last week

  • PTO
  • Janus Proxy
    • Add-on updates (HTTPS PAC, removed deprecated options)
    • Test server serving PAC via HTTPS and HTTP (for compatibility) now

Next week

  • Mochitests for screen orientation locking (having issues with enforcing full screen on Android)
  • bug 1093179 – Page-position on m.diepresse.com not always remembered when navigating back

Brian Nicholson

<Read Only>

  • iOS – Keyboard scrolling implementation
  • iOS – Miscellaneous login view fixes
  • Tiles upload testing

LucasR

Last week

  • bug 1077035 – Thin pixel bar seen in unselected tabs in the new tablet UI
  • bug 1098459 – Remove dead area on the right of “new tab” button
  • bug 1100904 – Implement UI transitions tracker
  • bug 1101784 – Don’t clip to padding in tabs panel grid
  • bug 1102836 – Close button hit area tweaks in tabs panel
  • bug 1073125 – Run trimage on all new_tablet image assets
  • bug 1098433 – Tabs tray on non-7″ tablet looks crowded
  • bug 1100894 – Don’t smooth scroll tab strip when restoring tabs on startup

Next week

  • Bugs tracking Aurora
  • Wrap up new tablet UI v1

liuche

<Read Only>

Highlights:

  • Passwords UI done, writing tests/learning about JavascriptTest!
  • Onboarding

Present:

Past:

Margaret

Highlights:

Past:

Present:

mcomella

<Read Only>

Past
  • New tablet
    • bug 1085487 – Correct new tablet menu bar item alignment
    • bug 1100021 – New tablet toolbar buttons are broken on devices with hardware menu buttons
  • bug 975837 – crash in java.lang.IllegalArgumentException: Cannot handle null URLs in enterEditingMode at org.mozilla.gecko.BrowserApp.enterEditingMode(BrowserApp.java)
Present
  • New tablet
    • bug 1020534 – Tablet toolbar icons hard to read on dark lightweight themes
    • bug 1091587 – Improve Private tabs’s empty view layout on new tablet UI
    • bug 1085771 – New tablet UI: LWTheme background should be displayed on tabstrip
  • bug 1085837 – Intermittent testAppMenuPathways | application crashed [None]
Future
  • bug 939350 – Create Python linter wrapper
  • bug 983437 – Delay FHR pruning until the screen is off

rnewman

<Read Only>

  • 4-day weekend! \o/
  • Reading list planning.
  • l10n fixes.
  • Phone screens.
  • Distributions work.
  • Reviews et al, as always.
  • Sync iOS stuff.
Fixed
Working on

nalexander

<Read Only>

Projects for this cycle:

  • Support Firefox Account “locked” status
    • on track — patches have r+ in bug 1080242, testing with rfkelly and the Cloud Services team
  • Migrate legacy Sync 1.1 devices
  • Pushing Synced Tabs home panel through Aurora bug remotetabsv2
    • color fixes landed
    • antlam wants bug 1071887 so I’m planning to do it (and bug )
  • Starting Reading List sync service
    • no progress
  • Gradle integration
    • landed |mach gradle|
    • improved omnijar rebuilding, much faster
  • buck integration
    • evaluated and rejected in favour of Gradle; planning a blog post to drill into this
Past
Present

Martyn Haigh

Past:

  • Lost and found my voice – hurrah.

Present:

Stefan

  • iOS Work: Sharing functionality is pretty much finished. Last bits need to be merged in and we have some small bugs.
  • First (tiny) Fennec patch: 1100439 – Tinted status bar not working in Android 5.0

Started two ‘iOS Feasability Research’ documents:

Rest of this week:

  • Finish that Fennec patch and find another started bug (suggestions?)
  • Continue with iOS work. Not sure what part yet other than the small bugs in the Sharing extensions.

BLassey

Fixed
Working on

Antlam

  • Past
    • Tablet V1 bugs
    • A lot of Search work
    • 105 UX work and meetings
    • Onboarding sync up
    • Sending/saving tabs story boarding
  • Upcoming
    • Onboarding meeting with Arcadio
    • Passwords project
    • More Search
    • More 105
    • FENNEC TEAM needs gear!
    • bug 1058818: Doorhangers need love
    • PORTLAND
    • PTO week after Mozlandia!

Robin

One Oh Fiver goodness:
105 tap-prototype — constantly updating prototype.

Intern interviews.

Machine is on the fritz. Just setting up a loaner.

Darrin

  • Contiuned my 105 Design Document (https://people.mozilla.org/~dhenein/mobile/105/)
  • Started sketching and prototyping some navigation ideas, looking at content hierarchy and flow
  • Some good initial discussions with Chronicle people and how it relates to mobile
  • Readling list meetings
  • Lots of interviews + covering for Sevaan/Hello (he is PTO)
  • Transition stuff

QA

Garvan

Feature Focus

  • Roadmap in Trello
  • Coming Monday would’ve been funnel review… thoughts on some folks meeting up to do this live at some point in PDX?

Details

  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 99998
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 99998
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 99998
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 99998
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 99998
    • UK/London: +44 (0)207 855 3000, x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
  • irc.mozilla.org #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2014-11-26

Schedule & Progress onUpcoming Releases (Lukas/Sylvestre/Lawrence)

  • 34 Desktop
    • 34.0 RC ships to Beta today
    • 34.0.5 RC ships to Beta on Friday
  • merge from m-c -> m-a and m-a -> m-b happening on Friday
  • 35 beta1 scheduled to ship Thu, Dec 4
  • 36 Aurora updates scheduled to be re-enabled on Fri, Dec 5

Developer Tools (Jeff)

  • Outbound
    • Dev Edition: 257,964 Downloads, 399,964 Installs
    • Actual toolbox usage has spiked past Beta in week two, we have ‘heavier’ users spending more time in the tools.
  • Landings

Insights

Worth a Read

Notes


Planning Meeting Details

  • Wednesdays – 11:00am PT, 18:00 UTC
  • Mountain View Offices: Warp Core Conference Room
  • Toronto Offices: Finch Conference Room
  • irc.mozilla.org #planning for backchannel
  • (the developer meeting takes place on Tuesdays)

Video/Teleconference Details – NEW