Re: Proposal for an inbound2 branch

2013-04-29 Thread Boris Zbarsky

On 4/26/13 6:26 PM, Nicholas Nethercote 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?


The following steps assume that the default and default-push for your 
repo are both appropriate versions of inbound and that i2 and 
i2-push are the appropriate versions of inbound2 (you can create such 
aliases in your .hgrc).  They also assume that since inbound just closed 
there is bustage on inbound that is not going to be present on inbound2 
and that you have already pulled this bustage into your tree.


1)  Make sure your patch-to-land is tracked by mq
2)  hg qpop -a
3)  hg strip roots(outgoing('i2'))
4)  hg pull -u i2
5)  hg qpush your patches
6)  hg qfin -a  hg push i2-push

Step 3 is slightly annoying because you have to quote the parens from 
the shell


In any case, the upshot of the above steps is that after step 4 your 
tree is effectively a clone of inbound2, and then you just push to it 
normally.


If your patches are not tracked by mq and you don't want them to be thus 
tracked then things are more complicated: as far as I can tell you want 
to pull into the same tree from inbound2, transplant your patch on top 
of the tip of inbound2, strip out the bits of inbound that shouldn't be 
landing, then push.


-Boris
___
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-29 Thread Benjamin Smedberg

On 4/27/2013 6: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.
Once upon a time, prefs files were actually JS: we created a function 
pref and user_pref and then evaulated the file within the JS engine.


This was slow, and so in 2003 we changed it to use a mostly-compatible 
parser that could consume the existing syntax of most pref.js files (bug 
98533).


The format is now whatever prefread.cpp accepts.

--BDS

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


WebAPI Meeting: Tuesday 30 April @ 10 AM Pacific [1]

2013-04-29 Thread Andrew Overholt

Meeting Details:

* Agenda: https://wiki.mozilla.org/WebAPI/2013-04-30
* WebAPI Vidyo room
* Amoeba conf. room, San Francisco office (7A)
* Spadina conf. room, Toronto office
* Allo Allo conf. room, London office

* Vidyo Phone # +1-650-903-0800 x92 Conference #98413 (US/INTL)
* US Vidyo Phone # 1-800-707-2533 (PIN 369) Conference #98413 (US)

* Join irc.mozilla.org #webapi for back channel

Notes will be taken on etherpad:

https://etherpad.mozilla.org/webapi-meetingnotes

All are welcome!

Andrew

[1]
http://www.timeanddate.com/worldclock/fixedtime.html?msg=WebAPI+meetingiso=20130430T10p1=224am=30 


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


Re: Storage in Gecko

2013-04-29 Thread Taras Glek

So there is no general 'good for performance' way of doing IO.

 However I think most people who need this need to write small bits of 
data and there is a good way to do that.


Gregory Szorc wrote:

I'd like to start a discussion about the state of storage in Gecko.

Currently when you are writing a feature that needs to store data, you
have roughly 3 choices:

1) Preferences
2) SQLite
3) Manual file I/O


* How to robustly write/update small datasets?

#3 above is it for small datasets. The correct way to do this is to 
write blobs of JSON to disk. End of discussion.


Writes of data = ~64K should just be implemented as atomic whole-file 
read/write operations. Those are almost always single blocks on disk.


Writing a whole file at once eliminates risk of data corruption. 
Incremental updates are what makes sqlite do the WAL/fsync/etc dance 
that causes much of the slowness.


We invested a year worth of engineering effort into a pure-js IO library 
to facilitate efficient application-level IO. See OS.File docs, eg 
https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread


As you can see from above examples, manual IO is not scary

If one is into convenience APIs, one can create arbitrary json-storage 
abstractions in ~10lines of code.


* What about writes  64K?
Compression gives you 5-10x reduction of json. 
https://bugzilla.mozilla.org/show_bug.cgi?id=846410

Compression also means that your read-throughput is up to 5x better too.


* What about fsync-less writes?
Many log-type performance-sensitive data-storage operations are ok with 
lossy appends. By lossy I mean data will be lost if there is a power 
outage within a few seconds/minutes of write, consistency is still 
important. For this one should create a directory and write out log 
entries as checksummed individual files...but one should really use 
compression(and get checksums for free).
https://bugzilla.mozilla.org/show_bug.cgi?id=846410 is about 
facilitating such an API.


Use-cases here: telemetry saved-sessions, FHR session-statistics.

* What about large datasets?
These should be decided on a case-by-case basis. Universal solutions 
will always perform poorly in some dimension.


* What about indexeddb?
IDB is overkill for simple storage needs. It is a restrictive wrapper 
over an SQLite schema. Perhaps some large dataset (eg an addressbook) is 
a good fit for it. IDB supports filehandles to do raw IO, but that still 
requires sqlite to bootstrap, doesn't support compression, etc.
IDB also makes sense as a transitional API for web due to the need to 
move away from DOM Local Storage...


* Why isn't there a convenience API for all of the above recommendations?
Because speculatively landing APIs that anticipate future consumers is 
risky, results in over-engineering and unpleasant surprises...So give us 
use-cases and we(ie Yoric) will make them efficient.


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


Re: Storage in Gecko

2013-04-29 Thread Andrew McCreight
- Original Message -
 On Apr 27, 9:37 am, Mounir Lamouri mou...@lamouri.fr wrote:
  Why? Wouldn't be the idea of such component to make sure it is
  usable
  from C++?
 
 Perhaps some day, but IndexedDB was always designed with JS in mind.
 To use it you pass special JS dictionaries for options, clone things
 to/from JS objects, etc. Using it from C++ is not a pleasant
 experience and requires lots of JSAPI.

A WebIDL callback interface thing could probably be set up to make calling from 
C++ into JS less awful, if somebody has a need.

Andrew

 
 We could implement a C++ API that reuses all the transactions and
 threading and such but so far no one has been breaking down our door
 asking for it.
 
 -bent
 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform
 
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Increasing our Aurora and Nightly user populations?

2013-04-29 Thread Chris Peterson

(Sorry if this is not the right forum for this discussion.)

To increase our testing populations, I'd like to suggest that we add a 
periodic channel upsell message to the about:home page (of Aurora and 
Beta) and the about box (of Aurora, Beta, and possibly Release).


Beta and Aurora users have already opted in to a testing channel, so we 
know they are receptive to beta-quality software. If they have set Beta 
or Aurora as their default browser and/or have been using it 
consistently for a few weeks, we could try to upsell Beta users to 
Aurora and Aurora users to Nightly.


We did something similar with Firefox for Android. After a certain 
number of browser launches, we display a one-time message suggesting 
they write a Google Play store review if they like Firefox or contact 
Firefox Support if they have problems.


Similarly, users who check their browser's about box are clearly 
interested in version numbers or checking for the latest updates. These 
users might be receptive to a channel upsell message to get an even 
bigger version number. :)



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


Re: Increasing our Aurora and Nightly user populations?

2013-04-29 Thread Taras Glek
What is the problem with current population size? We are not as small as 
Android on desktop channels :)


Chris Peterson wrote:

(Sorry if this is not the right forum for this discussion.)

To increase our testing populations, I'd like to suggest that we add a
periodic channel upsell message to the about:home page (of Aurora and
Beta) and the about box (of Aurora, Beta, and possibly Release).

Beta and Aurora users have already opted in to a testing channel, so we
know they are receptive to beta-quality software. If they have set Beta
or Aurora as their default browser and/or have been using it
consistently for a few weeks, we could try to upsell Beta users to
Aurora and Aurora users to Nightly.

We did something similar with Firefox for Android. After a certain
number of browser launches, we display a one-time message suggesting
they write a Google Play store review if they like Firefox or contact
Firefox Support if they have problems.

Similarly, users who check their browser's about box are clearly
interested in version numbers or checking for the latest updates. These
users might be receptive to a channel upsell message to get an even
bigger version number. :)


chris p.

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


Re: Increasing our Aurora and Nightly user populations?

2013-04-29 Thread Alex Keybl
A lot of this has to do with population diversity (as opposed to size) and 3rd 
party plugins/add-ons only targeting Beta/Release.

-Alex

On Apr 29, 2013, at 12:26 PM, Kyle Huey m...@kylehuey.com wrote:

 On Mon, Apr 29, 2013 at 12:17 PM, Taras Glek tg...@mozilla.com wrote:
 
 What is the problem with current population size? We are not as small as
 Android on desktop channels :)
 
 
 We routinely see serious bugs first on Beta or Release ...
 
 - Kyle
 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform

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


Re: Increasing our Aurora and Nightly user populations?

2013-04-29 Thread Johnathan Nightingale
On Apr 29, 2013, at 3:07 PM, Chris Peterson wrote:

 (Sorry if this is not the right forum for this discussion.)

dev-planning feels right-er here - I suggest follow ups take it thattaway. 

J

PS - original post, for dev-planning context:

 To increase our testing populations, I'd like to suggest that we add a 
 periodic channel upsell message to the about:home page (of Aurora and Beta) 
 and the about box (of Aurora, Beta, and possibly Release).
 
 Beta and Aurora users have already opted in to a testing channel, so we know 
 they are receptive to beta-quality software. If they have set Beta or Aurora 
 as their default browser and/or have been using it consistently for a few 
 weeks, we could try to upsell Beta users to Aurora and Aurora users to 
 Nightly.
 
 We did something similar with Firefox for Android. After a certain number of 
 browser launches, we display a one-time message suggesting they write a 
 Google Play store review if they like Firefox or contact Firefox Support if 
 they have problems.
 
 Similarly, users who check their browser's about box are clearly interested 
 in version numbers or checking for the latest updates. These users might be 
 receptive to a channel upsell message to get an even bigger version number. :)


---
Johnathan Nightingale
VP Firefox Engineering
@johnath

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


Re: DOM Bindings Meeting - Monday @ 12:30 PM PDT

2013-04-29 Thread Boris Zbarsky

On 4/29/13 11:05 AM, Kyle Huey wrote:

Our (ostensibly) weekly DOM bindings meetings continue on Monday April 29th
at 12:30 PM PDT.


Per discussion of the meeting, here's a strawman plan for converting 
Window to WebIDL: https://etherpad.mozilla.org/WebIDL-Window


Please add anything I missed that needs to happen there?

-Boris

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


Re: Storage in Gecko

2013-04-29 Thread Gregory Szorc

Great post, Taras!

Per IRC conversations, we'd like to move subsequent discussion of 
actions into a meeting so we can more quickly arrive at a resolution.


Please meet in Gregory Szorc's Vidyo Room at 1400 PDT Tuesday, April 30. 
That's 2200 UTC. Apologies to the European and east coast crowds. If 
you'll miss it because it's too late, let me know and I'll consider 
moving it.


https://v.mozilla.com/flex.html?roomdirect.htmlkey=yJWrGKmbSi6S

On 4/29/13 10:51 AM, Taras Glek wrote:

* How to robustly write/update small datasets?

#3 above is it for small datasets. The correct way to do this is to
write blobs of JSON to disk. End of discussion.

Writes of data = ~64K should just be implemented as atomic whole-file
read/write operations. Those are almost always single blocks on disk.

Writing a whole file at once eliminates risk of data corruption.
Incremental updates are what makes sqlite do the WAL/fsync/etc dance
that causes much of the slowness.

We invested a year worth of engineering effort into a pure-js IO library
to facilitate efficient application-level IO. See OS.File docs, eg
https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread


As you can see from above examples, manual IO is not scary

If one is into convenience APIs, one can create arbitrary json-storage
abstractions in ~10lines of code.

* What about writes  64K?
Compression gives you 5-10x reduction of json.
https://bugzilla.mozilla.org/show_bug.cgi?id=846410
Compression also means that your read-throughput is up to 5x better too.


* What about fsync-less writes?
Many log-type performance-sensitive data-storage operations are ok with
lossy appends. By lossy I mean data will be lost if there is a power
outage within a few seconds/minutes of write, consistency is still
important. For this one should create a directory and write out log
entries as checksummed individual files...but one should really use
compression(and get checksums for free).
https://bugzilla.mozilla.org/show_bug.cgi?id=846410 is about
facilitating such an API.

Use-cases here: telemetry saved-sessions, FHR session-statistics.

* What about large datasets?
These should be decided on a case-by-case basis. Universal solutions
will always perform poorly in some dimension.

* What about indexeddb?
IDB is overkill for simple storage needs. It is a restrictive wrapper
over an SQLite schema. Perhaps some large dataset (eg an addressbook) is
a good fit for it. IDB supports filehandles to do raw IO, but that still
requires sqlite to bootstrap, doesn't support compression, etc.
IDB also makes sense as a transitional API for web due to the need to
move away from DOM Local Storage...

* Why isn't there a convenience API for all of the above recommendations?
Because speculatively landing APIs that anticipate future consumers is
risky, results in over-engineering and unpleasant surprises...So give us
use-cases and we(ie Yoric) will make them efficient.

Taras


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


RE: Increasing our Aurora and Nightly user populations?

2013-04-29 Thread Karen Rudnitski
Maybe another route to trial this would be to use our product
announcements feature since it can be much more targeted. I would not be
wholly comfortable at this point to use the snippet real estate (if I was
reading the original request), especially for our GA audience.

I also think we should think about the goal here - which I think would be
to expand the volume numbers of each of these groups and not necessarily
move current users to other products (although I do understand the
rationale prompting this suggestion, generally around to lower friction
level to try less stable software).

If we are agreed on the above, perhaps it is also a discussion to get our
marketing friendlies and contributor engagement folks with an objective to
target and capture new users for these channels. 

Karen

-Original Message-
From: dev-planning-bounces+krudnitski=mozilla@lists.mozilla.org
[mailto:dev-planning-bounces+krudnitski=mozilla@lists.mozilla.org] On
Behalf Of Johnathan Nightingale
Sent: 29 April 2013 15:32
To: Chris Peterson
Cc: mozilla.dev.planning group; dev-platform@lists.mozilla.org
Subject: Re: Increasing our Aurora and Nightly user populations?

On Apr 29, 2013, at 3:07 PM, Chris Peterson wrote:

 (Sorry if this is not the right forum for this discussion.)

dev-planning feels right-er here - I suggest follow ups take it thattaway.


J

PS - original post, for dev-planning context:

 To increase our testing populations, I'd like to suggest that we add a
periodic channel upsell message to the about:home page (of Aurora and
Beta) and the about box (of Aurora, Beta, and possibly Release).
 
 Beta and Aurora users have already opted in to a testing channel, so we
know they are receptive to beta-quality software. If they have set Beta or
Aurora as their default browser and/or have been using it consistently for
a few weeks, we could try to upsell Beta users to Aurora and Aurora users
to Nightly.
 
 We did something similar with Firefox for Android. After a certain
number of browser launches, we display a one-time message suggesting they
write a Google Play store review if they like Firefox or contact Firefox
Support if they have problems.
 
 Similarly, users who check their browser's about box are clearly
interested in version numbers or checking for the latest updates. These
users might be receptive to a channel upsell message to get an even bigger
version number. :)


---
Johnathan Nightingale
VP Firefox Engineering
@johnath

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


Re: Fallibility of NS_DispatchTo[Current|Main]Thread

2013-04-29 Thread Robert O'Callahan
On Tue, Apr 30, 2013 at 5:32 AM, Kyle Huey m...@kylehuey.com wrote:

 Is it feasible to make these functions infallible?  What work would need to
 be done?


Off the top of my head, I think it probably is feasible. IIRC XPCOM event
dispatch can fail for two reasons: OOM, and when the thread has been shut
down. We can die on OOM. DispatchToCurrentThread obviously shouldn't happen
when that thread has shut down. DispatchToMainThread shouldn't happen after
the main thread has shut down either ... I suppose it could due to a bug,
but we could just die.

Rob
-- 
q“qIqfq qyqoquq qlqoqvqeq qtqhqoqsqeq qwqhqoq qlqoqvqeq qyqoquq,q qwqhqaqtq
qcqrqeqdqiqtq qiqsq qtqhqaqtq qtqoq qyqoquq?q qEqvqeqnq qsqiqnqnqeqrqsq
qlqoqvqeq qtqhqoqsqeq qwqhqoq qlqoqvqeq qtqhqeqmq.q qAqnqdq qiqfq qyqoquq
qdqoq qgqoqoqdq qtqoq qtqhqoqsqeq qwqhqoq qaqrqeq qgqoqoqdq qtqoq qyqoquq,q
qwqhqaqtq qcqrqeqdqiqtq qiqsq qtqhqaqtq qtqoq qyqoquq?q qEqvqeqnq
qsqiqnqnqeqrqsq qdqoq qtqhqaqtq.q
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform