Re: Proposed W3C Charter: Pointer Events Working Group

2016-03-02 Thread Matt Brubeck
I think that Mozilla should comment in favor of the PEWG charter. Mozilla has 
been participating in the WG and it is doing important work for interop and 
performance of pointer input handling.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Enabling Pointer Events in Firefox (desktop) Nightly

2015-04-24 Thread Matt Brubeck
tl;dr:

We plan to enable Pointer Events for mouse and pen input in Firefox Nightly 
builds within the next few weeks.

Background:

Pointer Events is a W3C recommendation that defines new DOM events for unified 
handling of mouse, touch, and pen input.  It also defines a new 'touch-action' 
CSS property for declarative control over touch panning and zooming behavior:

http://www.w3.org/TR/pointerevents/

The 'touch-action' CSS property is shipping today in both IE11 and Chrome 
stable.  The DOM PointerEvent API is shipping today in IE11, and the Chrome 
team plans to ship it soon.

Status:

Implementation of pointer events and 'touch-action' in Gecko has been in 
progress for several months.  Both features can be enabled in Firefox Nightly 
with prefs, currently off by default.  When these prefs are turned on:

* Events for mouse input are supported on Windows, Mac, and Linux.
* Events for pen input are supported on Windows.
* Events for multi-touch input, and the 'touch-action property, are a work in 
progress on Windows.  These features depend on e10s, and on Async Pan/Zoom 
(APZ) which is currently preffed off by default on desktop.
* PointerEvent and 'touch-action' are not yet implemented on Android or Firefox 
OS, though in the long term much of the code will be shared between all 
platforms, through the APZ controller.

Plans:

The implementation of Pointer Events should be complete enough to enable in 
desktop Nightly builds within the next few weeks.  This will enable Pointer 
Events for mouse and pen input.  (It will also enable Pointer Events for 
multi-touch input on Windows when e10s and APZ are enabled, though like APZ 
itself this is still experimental and will not yet be turned on by default.)

If no serious problems are found, then we want to consider letting this feature 
ride the train to the Aurora/Dev.Edition channel (but not further).

For the release and beta channels, we may want to wait until after touch input 
is ready to ship on Windows (depends on e10s + APZ), and we might also want to 
wait until it is ready to ship on Android and/or Firefox OS at the same time or 
soon after.  When the time is closer, we will send an Intent to Ship email to 
this list for discussion.

See also:

This wiki page has some links to tracking bugs and other information:
https://wiki.mozilla.org/Gecko/Touch
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Plug-in feature not available in the web platform. Alternatives?

2013-11-12 Thread Matt Brubeck

On 11/8/2013 1:33 AM, fma spew wrote:

3- We haven't found any indication of Mozilla about alternatives for these
kind of plug-ins, meaning plug-ins that need access to, in this case,
Windows stuff. Google has provided alternatives though.


One alternative is a Firefox extension.  Firefox extensions can access 
both native platform APIs and web content.  In particular, extensions 
can use js-ctypes to call C/C++ code.


We've also mentioned the possibility of bundling a traditional plugin 
with a Firefox extension to change the default click-to-play behavior:


If a plugin is installed bundled within a Firefox extension, the 
extention can enable the plugin by default (for all sites or for 
particular sites) via preferences/permissions. Because the user chose to 
install the addon, I see no problem with allowing this sort of default 
activating.

-- https://mail.mozilla.org/pipermail/firefox-dev/2013-September/000903.html
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Cost of ICU data

2013-10-17 Thread Matt Brubeck

On 10/17/2013 10:24 AM, Ehsan Akhgari wrote:

We used to have codesighs measurements (and perhaps still do) but
historically many people just ignored them.


We stopped collecting codesighs measurements in November 2012 (bug 
803736).  As Ehsan says, it was widely ignored.  It regressed 
constantly, and it never seemed reasonable to demand that people 
implement desired features and fixes without adding any code.


For this reason, I'm a bit confused at the level of scrutiny of ICU's 
size when we've added many times that amount to our download size over 
the past couple of years without any pushback or even discussion.


(On a related note, what happened to http://www.arewesmallyet.com/?)
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: devolution of cleartype rendering in Fx chrome

2013-10-16 Thread Matt Brubeck

On 10/15/2013 1:36 PM, al...@yahoo.com wrote:

Why are these ignored?


I can't speak for anyone else, but I would guess it's because no one who 
has looked at them has figured out any useful information to add, or 
found the time to investigate further.


As to whether we should pull someone off of other tasks to focus on 
these XP text-rendering bugs, that's tricky.  They are user-visible 
regressions and a large portion of our users are on XP.  On the other 
hand, they do not affect web content; XP is a (slowly) shrinking 
platform; and the difference between grayscale and subpixel AA is 
jarring to some users but subtle or invisible to others.


In general, if I understand correctly, it's hard to use native subpixel 
AA in layers that use hardware accelerated compositing.  So in some 
cases we might need to choose between speed and subpixel rendering. 
(I'm not at all an expert in this area, though.)

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: devolution of cleartype rendering in Fx chrome

2013-10-16 Thread Matt Brubeck

On 10/16/2013 1:24 PM, Karl Tomlinson wrote:

Many people use browsers for reading text, so I would like to
claim that text rendering quality is usually more important than
performance.

I apologize for not looking through the referenced bugs.


To repeat a point from my previous message: These bugs do not affect 
rendering of text on web pages.  They are about rendering of specific 
items in the Firefox chrome.  (That doesn't mean we should ignore the 
bugs; I'm just addressing the people use browsers for reading comment 
above.)

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposal: Email individual patch authors who improve performance

2013-08-27 Thread Matt Brubeck

On 2013-08-12 6:14 PM, Matt Brubeck wrote:

I've posted a patch that would change how the graph server sends email
when a performance *improvement* is detected:
https://bugzilla.mozilla.org/show_bug.cgi?id=904250


I landed this patch, and it will go live with the next graph server 
deployment.  I also just landed some patches that should reduce the main 
causes of false alarms (bug 904322, bug 879903) to minimize any 
noise/spam from this change.


On 8/16/2013 11:27 AM, Mike Hoye wrote:

Can other addresses be CC'ed when this specifically (and in the future,
other automatically-detectable improvements) are accomplished? I'd like
to be able to automate badge-assignment stuff on Mozillians as much as
possible, and this would be a big help.


Yes -- you can either subscribe your address to the dev-tree-management 
mailing list to receive all of the emails, or you could add additional 
logic to the emailWarning function in this code:

http://hg.mozilla.org/graphs/file/tip/server/analysis/analyze_talos.py

If you want to do the latter, please file a bug in the Release 
Engineering: Tools component in Bugzilla.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposal: Email individual patch authors who improve performance

2013-08-19 Thread Matt Brubeck

On 8/13/2013 1:57 PM, Jet Villegas wrote:

This is awesome! Is it possible to see a log of the recipients/patches?
Yes - all of the emails for both regressions and improvements are also 
sent to the dev-tree-management list, which is archived at 
https://groups.google.com/forum/#!forum/mozilla.dev.tree-management


___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Embracing git usage for Firefox/Gecko development?

2013-07-10 Thread Matt Brubeck

On 5/30/2013 5:56 PM, Johnny Stenback wrote:

Some of the known issues with embracing git are:

   * Performance of git on windows is sub-optimal (we're
 already working on it).


This has become a bit of an urban legend; I often see it repeated but 
seldom with actual measurements.  I don't think it's a valid reason to 
avoid git unless there are specific cases where git's performance on 
Windows is insufficient compared to hg's performance on Windows.


In some brief tests using hg.mozilla.org/mozilla-central versus 
github.com/mozilla/mozilla-central on a modern Core i7 laptop with SSD 
and 8GB RAM, after throwing away the first result (so I'm measuring 
warm cache times; cold times would be useful too but would take more 
work for me to measure correctly):


log the last 10,000 changes:
  git 0.745s
  hg  2.570s

blame mobile/android/chrome/content/browser.xul:
  git 1.015s
  hg  0.830s

diff with no changes:
  git 2.136s
  hg  2.001s

status:
  git 3.011s
  hg  1.680s

commit one-line change to configure.in:
  git 2.420s
  hg  3.911s

clone from remote:
  git 26m43s
  hg  19m01s

pull from remote to an up-to-date clone:
  git 1.585s
  hg  0.875s

update working dir from tip to FIREFOX_AURORA_23_BASE:
  git 16.008s
  hg  25.704s

There *are* some cases where git is worse than hg on Windows, but hg is 
as bad or worse for many common operations like log, diff, and commit. 
Overall I find both painful on Windows, but neither noticeably better 
than the other.


(And of course some of these tests are highly unfair because the git 
repo has a more complete history than the hg one, or because they test 
network or server performance that is unpredictable and may vary between 
github and hg.m.o.)

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Windows XP virtual memory peak appears to be causing talos timeout errors for dromaeo_css

2013-07-10 Thread Matt Brubeck

On 6/3/2013 7:28 AM, jmaher wrote:

We have a top orange factor failure which is a talos timeout that only happens on windows XP 
and predominately on the dromaeo_css test.  What happens is we appear to complete the test 
just fine, but the poller we have on the process used to manage firefox never indicates we 
have finished.  After doing some screenshots and looking at the process list, I haven't 
found much except that on the failing cases the _Total value for Virtual Bytes 
Peak is 2GB, and for all the passing instances it is ~1.25GB.

Are there other things I should look for, or things I could change to fix this 
problem?


This *might* be related to bug 859955 which a few people have been 
actively working on recently:


https://bugzilla.mozilla.org/show_bug.cgi?id=859955
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Embracing git usage for Firefox/Gecko development?

2013-07-10 Thread Matt Brubeck

On 5/31/2013 12:32 PM, Boris Zbarsky wrote:

On 5/31/13 3:20 PM, Matt Brubeck wrote:

blame mobile/android/chrome/content/browser.xul:
   git 1.015s
   hg  0.830s


Was this a git blame -C (which would be more similar to hg blame), or
just a git blame?


Good catch. (Sorry, I missed your messages on IRC warning me about 
this.)  The above numbers were without -C.  git blame -C takes about 
3.7 seconds on this file.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Sandboxed, off-screen pages for thumbnail capture

2013-07-10 Thread Matt Brubeck

On 6/17/2013 9:48 PM, Drew Willcoxon wrote:

The desktop Firefox team is building a new Toolkit module that captures 
thumbnails of off-screen web pages. Critically, we want to avoid capturing any 
data in these thumbnails that could identify the user. More generally, we're 
looking for a way to visit pages in a sandboxed manner that does not interact 
with the user's normal browsing session. Does anyone know of such a way or know 
how we might change Gecko to support something like that?


What about launching/forking a separate process to capture thumbnails 
for these pages?  I don't mean an Electrolysis-style child process that 
is tightly coupled to the browser, but rather a separate program that 
does not use the Firefox profile at all.  The browser would pass this 
program a URL and it would just render a page and save the thumbnail.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposal for an inbound2 branch

2013-05-02 Thread Matt Brubeck

On 5/2/2013 6:21 AM, Ehsan Akhgari wrote:

On 2013-05-02 5:46 AM, Neil wrote:

Why do we need a separate repo? Can we not simply close the broken head
and start again at the last green changeset?


Multiheaded repos are evil.  They're very hard to deal with, and I don't
think that buildbot can deal with them properly.


Buildbot can deal with a multi-headed Try, so it can probably be 
convinced to deal with a multi-headed inbound, even if it needs to be a 
special case like Try.


Individual developers might have more problems (they'll want to pull 
from inbound, unlike Try) but I think as long as the inactive heads are 
closed it won't freak out Mercurial too much...  The suggested workflow 
with inbound2 would lead to almost-identical multi-headed repos in 
developers' local clones anyway.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: multiline pref value strings in user.js

2013-04-27 Thread Matt Brubeck

On 4/27/2013 3:26 PM, al...@yahoo.com wrote:

... appear to be possible without the \ escape.  In fact the \ can not be
present as it does not escape the newline but becomes a part of the string.

So it does not seem to follow js rules,  so what is this format?


The format doesn't have a name that I know of; it's that weird format 
that prefread.cpp parses and it's not really documented except:

http://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/prefread.cpp#151
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Improving Mac OS X 10.6 test wait times by reducing 10.7 load

2013-04-26 Thread Matt Brubeck

On 4/26/2013 9:10 AM, Armen Zambrano G. wrote:

Just disabling debug and talos jobs for 10.7 should reduce more than 50%
of the load on 10.7. That might be sufficient for now.


I'd be happy for us to disable all Talos jobs on 10.7, on all trees. 
I've been keeping track of Talos stuff recently and I have not seen any 
genuine regressions that are 10.7-specific, so I don't think it's 
providing us much benefit to run these benchmarks on three Mac platforms 
simultaneously.


In terms of tracking regressions, it would be better to have more 
complete data 10.6 alone than to have incomplete data (due to 
coalescing) on 10.6 and 10.7.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Experimental Technology in Gecko (Re: Storage in Gecko)

2013-04-26 Thread Matt Brubeck

On 4/26/2013 11:43 AM, Gregory Szorc wrote:

Have you explored using IndexedDB?


Not seriously. The this is an experimental technology warning on MDN
is off-putting.


The largest audience for MDN is web developers, so we put that warning 
on anything that's not ready for widespread use on the public web, 
including most things that are prefixed in current browsers.


Here are some other things with the same experimental technology 
warning on their MDN pages:


* JavaScript for...of loops
* CSS transform, transition, animation
* WebSocket
* Set, Map, WeakMap

Obviously we have no qualms against using these ourselves.  When an 
experimental technology is one that *we* are promoting as part of the 
development platform *we* are building, then of course we should using 
it in our own code.  In fact we should be early adopters, because if 
there are issues that prevent us from using our own APIs, then they will 
often affect other developers on our platform, so we need to know about 
those and fix them.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposal for an inbound2 branch

2013-04-26 Thread Matt Brubeck

On 4/26/2013 4:14 PM, Justin Lebar wrote:

If I have a patch ready to land when inbound closes, what would be the
sequence of steps that I need to do to land it on inbound2?  Would I
need to have an up-to-date inbound2 clone and transplant the patch
across?


I think mbrubeck or someone knows how to maintain multiple hg branches
in one repo, but I've never figured that out...


Yes, having been a git user for years before I started with Mercurial, I 
simply treat Mercurial as a slightly crippled version of git.  :)


hg clone https://hg.mozilla.org/mozilla-central/
cd mozilla-central
# hack on some stuff
# do some builds and tests
hg new my-patch

# time to push to inbound:
hg qpop
hg pull https://hg.mozilla.org/integration/mozilla-inbound/
hg up -c
hg qpush  hg qfin my-patch
hg push -r tip https://hg.mozilla.org/integration/mozilla-inbound/

# Now, let's backport something to Aurora!
hg pull https://hg.mozilla.org/releases/mozilla-aurora/
hg export -r a3c55bdbe37d | hg qimport -P -n patch-to-uplift
hg push -r tip https://hg.mozilla.org/releases/mozilla-aurora/

# After a good night's sleep, back to work!
# hg pull -u won't work across branches, so:
hg pull https://hg.mozilla.org/mozilla-central/
hg up -c
# do a build
# start hacking again!

This sort of workflow is of course much more natural in git, which makes 
it easy to track the state of the remote repo(s).  The bookmark workflow 
that gps added to MDN basically emulates part of the functionality of 
git remote tracking branches.


I'm actually astounded that Mercurial doesn't have better support for 
this built in; I see Mozilla developers doing crazy time-consuming 
things all the time because of Mercurial's poor support for working with 
remote repositories.  :(

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Preparing for the next windows PGO build memory exhaustion

2013-04-18 Thread Matt Brubeck

On 4/17/2013 3:07 PM, Matt Brubeck wrote:

analyze_talos.py does identify several real regressions in that dataset
-- but it suppresses emails for them because each one is an increase of
less than 2% (see bug 822249).  Here are regressions identified by the
latest version of analyze.py:


In case anyone wants to investigate these, I've added regression ranges 
below.  These are automatically generated; I haven't double-checked them 
manually.


Since we run PGO builds only a few times a day, the ranges can be large. 
 For those that include m-c merges, you could narrow them down using 
the m-c data.  WebIDL seems to be a common theme.



changesetmem (KB)   t-test  % change

c1ee454506f6 329686 139.519   1.05%


http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=88543d623c3ftochange=c1ee454506f6

(Includes several Paris bindings changes, among others)


0acac77dd920 333029  11.809   0.99%


http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=16ddbb6852ectochange=0acac77dd920

(More Paris binding changes, and others)


e6ca584f4fe7 335801   9.753   0.86%


http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=a69f329fc7eetochange=e6ca584f4fe7

(includes the Win8 Metro merge)


80d52655c8b8 339830  74.742   0.45%


http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=4637a1449900tochange=80d52655c8b8

(includes some WebIDL-related changes)


d27445d1eac5 345040  26.214   0.99%


http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=92824d900e25tochange=d27445d1eac5


eaff15332579 346897  70.525   0.52%


http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=e38c5c346840tochange=eaff15332579

(Olli Pettay — Bug 822399 - Make Event to use Paris bindings)


Perhaps we should modify bug 822249 to ignore the 2% threshold for
specific tests where we *do* care about small changes.  Or for any
change with a very high t-test score.  I filed this bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=863061


A fix has been checked in, so we should start getting alerts for future 
linker memory regressions of any size.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Preparing for the next windows PGO build memory exhaustion

2013-04-18 Thread Matt Brubeck

On 4/18/2013 12:10 PM, Matt Brubeck wrote:

Since we run PGO builds only a few times a day, the ranges can be large.
  For those that include m-c merges, you could narrow them down using
the m-c data.  WebIDL seems to be a common theme.


I filed https://bugzilla.mozilla.org/show_bug.cgi?id=863492 to 
investigate whether Paris bindings are a particular contributor to 
linker memory usage, and possible solutions.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: A new way to run mach

2013-04-17 Thread Matt Brubeck

On 4/15/2013 11:04 AM, Rob Campbell wrote:

On Mac, does mach do the right thing when you rebuild browser, does it also 
rebuild browser/app so your application bundle gets updated?
mach build browser is the same as make -C $objdir/browser 
(literally, it just executes that make command to do all the work), so 
just like make it should rebuild all of the sub-directories too as 
long as the dependencies are correct.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Landing on Trunk - Target Milestone vs. Status Flag Usage vs. Tracking for Future Releases

2013-04-10 Thread Matt Brubeck

On 4/10/2013 5:14 PM, Gregory Szorc wrote:

I don't really have much to say on the specifics of this post other than
a simple question: why don't we have a checkin hook or bot automatically
update Bugzilla flags when changesets are pushed? This would save
developer time and would reduce the error rate of bugs not updated
properly (especially when you consider that policies change over time).


http://www.graememcc.co.uk/m-cmerge/ is a tool that will automatically 
resolve bugs and set Target Milestone correctly for patches pushed to 
m-c.  It's used by most of the people who regularly merge from inbound 
and other branches to m-c.


It still needs to be invoked explicitly by the person who lands/merges 
the patches, so it's not a fool-proof automatic solution.  Just pointing 
it out for anyone following who doesn't know about this part of the process.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


A new way to run mach

2013-03-16 Thread Matt Brubeck
I recently landed a new feature for the mach build tool [1].  You can 
now run mach from anywhere in the mozilla source tree.


To get started, add mach to your $PATH.  You can do this by changing the 
PATH environment variable to include the mozilla source directory, or by 
copying the mach script from your source directory to a location like 
/usr/local/bin.


Then you can run mach commands from anywhere in your source directory, 
and you can use paths within your current directory.  For example, if 
you are working on some devtools code you might run commands like:


  cd browser/devtools

  # Rebuild the code in browser/devtools/webconsole:
  mach build webconsole
  # Run browser-chrome tests from browser/devtools/webconsole/test:
  mach mochitest-browser webconsole/test

  # Most commands work the same no matter where you run them:
  mach clobber
  mach build   # Do a full rebuild
  mach package
  mach install

You can also run mach within an objdir.  If you have multiple objdirs 
with different mozconfigs, mach automatically defaults to the mozconfig 
that built the current objdir.  This means you can switch between 
configurations as easily as:


  cd obj-debug
  mach build
  mach xpcshell-test

  cd ../obj-optimized
  mach build
  mach xpcshell-test

(Note: the automatically-detected mozconfig is used as a default, but 
you can still override it by explicitly setting the MOZCONFIG 
environment variable.)


The mach script is now just a wrapper; it loads the actual mach code 
and configuration from whichever source directory you run it in.  So you 
can add mach to your path once and it should work with any current or 
future mozilla-central directory.  (For older trees, like the current 
aurora or beta repos, you still need to run mach the old way, using 
./mach in the top source directory.)


For development details, please see bugs 840588 and 840690 (but note 
that the feature changed a bit since those bugs were first filed).  Huge 
thanks to gps and all the other people who helped in the design and 
implementation of this feature!


[1] https://developer.mozilla.org/en-US/docs/Developer_Guide/mach
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=840588
[3] https://bugzilla.mozilla.org/show_bug.cgi?id=840690
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


setTimeout without a DOM window using Timer.jsm

2013-03-02 Thread Matt Brubeck
I noticed a number of places in Mozilla code where setTimeout-like 
functionality is needed, but DOM window.setTimeout is not available 
because the code runs in a non-DOM context like a JSM.  In a few places 
we had created pure-JS implementations of window.setTimeout to solve 
this problem.


With Gavin's encouragement, I extracted one of these into a standalone 
JSM file, to make it easier to share.  If you need to call setTimeout 
without a DOM window, you can now use Timer.jsm:


https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Timer.jsm

This offers two main benefits over just using nsITimer directly: it 
makes it easier to re-use code written for use in a DOM window, and it 
addresses this common nsITimer garbage collection problem:

http://www.joshmatthews.net/blog/2011/03/nsitimer-anti-pattern/

For more details, see bug 840360.  Thank you to Chris Jones who wrote 
the original code, and to several other people who gave feedback on it.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Upcoming separation between resource://app and resource://gre

2013-02-08 Thread Matt Brubeck

On 2/7/2013 6:12 AM, Mike Hommey wrote:

- But really, what does it change for developers?

Almost nothing they shouldn't be doing already. The main difference is
that resource://app/ and resource://gre/ urls are not going to point to
the same location anymore, which means I won't have to file bugs about
$randomFile including resource://gre/modules/something.jsm instead of
resource://app/modules/something.jsm.


This seems like a major add-on compatibility issue.  Has anyone looked 
into how many add-ons will now have incorrect resource: URIs?  How can 
we scan for these, and how can we mitigate the breakage?

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: UA string: Touch or Tablet again

2012-11-12 Thread Matt Brubeck
Here is my personal suggestion for how we should handle this in our 
Metro browser, and the reasoning behind my proposal.  This is meant to 
be a minimal step to bring Firefox for Metro in line with other 
platforms, without making changes to any other products.  It might need 
to be tweaked if we make any broader, cross-platform UA changes.


This was originally posted at:
https://bugzilla.mozilla.org/show_bug.cgi?id=809396#c5

ASSUMPTIONS:

A. The UA header is used mainly by sites that serve very different 
content to different devices.  Sites that use the same basic UI for both 
mouse and touch can serve a single page that works with both types of 
input and uses feature detection to determine browser capabilities as 
needed.


B. For any site that serves different content to desktop and mobile 
users, some portion of users will disagree with the site's default (no 
matter which is the default) and will want to switch to the other version.


C. Users of touch-screen devices will sometimes interact with the device 
primarily through touch, and sometimes interact primarily with a mouse / 
trackpad / other precise pointer device.  (Some users will stick to 
one interaction type all the time, while others may switch back and 
forth even on the same device.)


D. *Most* people will prefer the touch-friendly Metro Firefox UI while 
they are interacting primarily through touch, and *most* people will 
prefer the mouse-friendly desktop Firefox UI while they are 
interacting primarily with precise pointer devices.


E. Many web developers will test on only one or two device types.  More 
variations in the User-Agent header would mean more developers who 
mishandle some of those variations without realizing it.


PROPOSAL:

* We should add Tablet to the User-Agent header when the the Metro 
Firefox UI is used *and* the hardware supports touch input.


* For non-touch hardware, we should make no changes to the User-Agent 
header.


* For the classic (desktop) Firefox UI, we should make no changes to the 
User-Agent header.


PROS:

* Users who browse in the mouse-friendly Windows desktop environment 
will see no changes in content.  In particular, users of 
touch-compatible desktops or notebooks who nonetheless prefer the 
traditional desktop environment will generally see familiar 
desktop-style web content.


* Users who browse in the touch-friendly Windows Metro environment are 
likely to get touch-optimized content by default.


* Sites are unlikely to serve touch-only content to users without touch 
hardware.


* Users have an easy and (somewhat) intuitive way to choose between the 
tablet and desktop versions of sites, for example by using Metro 
Firefox's View in desktop command.


* Sites that follow our existing guidelines to send tablet-optimized 
content to Firefox for Android tablets will not need any changes, and 
will immediately begin serving tablet-optimized content to Firefox for 
Metro.


CONS:

* Tablet is not widely used by other browser vendors.  Touch would 
be consistent with Internet Explorer.


* Tablet is kind of misleading since it refers to a specific form 
factor and is not accurate for all devices where people use our touch 
UI. Touch might look more right, and be more self-documenting.  For 
example, some authors might wrongly assume Tablet implies a certain 
screen size.


These and many related issues are discussed in much more detail at: 
https://bugzilla.mozilla.org/show_bug.cgi?id=773355


QUESTIONS:

Q. Why Tablet and not Touch?

Mainly for consistency with our current UA header, especially on 
Android.  Using both Tablet and Touch would complicate our UA, 
adding more variations and more chances for authors to make errors. 
Switching from Tablet to Touch would undo some of our evangelism 
work over the past year, and would involve a transition where both 
variations exist, again complicating web development and testing.


However, I think this is a reasonable question to discuss in bug 773355, 
and I believe the rest of this proposal would still make sense if we 
replaced Tablet with Touch everywhere.


Q. What about users who want to use desktop Firefox *and* interact with 
web pages through touch?


Ideally, most web developers would use feature detection instead of UA 
sniffing, and serve a single page with good support for both touch and 
mouse interaction, which will work in all browsers.


But for sites that do use UA sniffing, the best we can do is help 
developers choose defaults that work best for the majority of users. 
Users who dislike the default can easily change it by switching between 
Metro and desktop Firefox, or by using an add-on or about:config to 
change the header.

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform