Re: Moving Away from Makefile's

2012-08-22 Thread Robert O'Callahan
On Thu, Aug 23, 2012 at 8:40 AM, Ben Hearsum bhear...@mozilla.com wrote:

 On 08/22/12 04:38 PM, Gregory Szorc wrote:
  Let's think of what can be done to secure/limit Python. Disabling import
  has already been mentioned. That's a start.

 I think it's worth noting that even if you *do* limit what you can do
 through some technical means, you still have the option to change that
 later, disable it some places, etc. It's really easy to get into that
 game when you're fixing blockers or working on chemspills, too.


If someone is that desperate, what would you have them do instead of hack
the configuration file? Aren't they likely to respond by doing some even
worse hack that gets the job done?

I think it makes a ton of sense to use automation to stop developers
accidentally doing something they shouldn't. But if someone's desperate
enough to disable the automation, and can get a review for it, then I don't
think it makes sense to try to stop them.

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others? [Matthew 5:43-47]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Changing reftest required resolution

2012-08-28 Thread Robert O'Callahan
On Wed, Aug 29, 2012 at 6:17 AM, L. David Baron dba...@dbaron.org wrote:

 We don't want to be running our reftests at
 a size smaller than the accepted max size for reftests at W3C.


What is the current required size for W3C reftests? I can't find any
documentation of that.

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others? [Matthew 5:43-47]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Known Risky Platform Changes Landing in FF18

2012-08-28 Thread Robert O'Callahan
On Tue, Aug 28, 2012 at 8:20 AM, Alex Keybl ake...@mozilla.com wrote:

 Quick ping to platform devs - do you all know of any particularly risky
 changes going in over the next 6 weeks that carry the possibility of
 regression, especially to B2G? Thanks in advance!


Display-list-based-invalidation:
https://bugzilla.mozilla.org/show_bug.cgi?id=dlbi

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others? [Matthew 5:43-47]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The current state of Talos benchmarks

2012-08-29 Thread Robert O'Callahan
On Thu, Aug 30, 2012 at 1:00 PM, Ehsan Akhgari ehsan.akhg...@gmail.comwrote:

 I agree with that if we talk about performance in general.  But this
 thread is about specific regressions in performance as a result of
 changeset going into our tree.  I don't think the same argument applies
 here, unless we decide that we don't care about some of the things that we
 measure on Talos (in which case we should stop running those tests if we're
 not going to act on their results.)


Yeah. Troubled as Talos is, we have had a lot of cases where Talos reported
a regression that we tracked down to a real bug in some checkin, and
backing out the checkin and fixing it was absolutely the right thing to do.
Talos is useful.

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others? [Matthew 5:43-47]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Pixel precision

2012-10-08 Thread Robert O'Callahan
On Tue, Oct 9, 2012 at 10:16 AM, Anthony Jones ajo...@mozilla.com wrote:

 This formats the float to 6 significant figures, however a float has 7.2
 significant figures[1]. A float can contain any integer up to 2^24.
 Anything more than 999,999 pixels shows in exponent format as 1e+6 and so
 on. Currently co-ordinates are limited to nscoord_MAX = 2^30. This works
 out at 2^24 * 64 / 60 which is slightly more than a float can hold.
 Changing AppendFloat to 7 digits of precision breaks tests that assume 6
 digits of precision.


Which tests?

We should certainly output with all available precision.
nsROCSSPrimitiveValue::GetCssText should work with doubles since that seems
to be necessary.

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others? [Matthew 5:43-47]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Pixel precision

2012-10-09 Thread Robert O'Callahan
I guess 7 digits of precision beyond the decimal point is overkill.

How about we output values rounded to the nearest 1e-6.

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others? [Matthew 5:43-47]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Why we avoid making private modifications to NSPR and NSS (was Re: Imported code)

2012-10-14 Thread Robert O'Callahan
On Sat, Oct 13, 2012 at 3:25 AM, Ehsan Akhgari ehsan.akhg...@gmail.comwrote:

 In some cases in the past (such as bug 563082), we've needed to change the
 semantics of some of the NSPR functions to make them work better for some
 things, such as more precise time measurements, but we've had to implement
 our own APIs (e.g.,
 http://mxr.mozilla.org/mozilla-central/source/xpcom/ds/TimeStamp_windows.cpp)
 which we've since heavily optimized (for example, in bug 784859).  Would
 such improvements be interesting to NSPR?  I guess in a lot of cases we
 just don't know whether NSPR would accept a patch if we make one, so we end
 up implementing our own APIs.


One thing is that most of our new library APIs tend to be C++ and NSPR is a
C library. I don't think we would want to restrict new APIs to C just so
they could be folded into NSPR. (TimeStamp and Mutex, for example, really
benefit from being C++ APIs.)

Rob
-- 
“You have heard that it was said, ‘Love your neighbor and hate your enemy.’
But I tell you, love your enemies and pray for those who persecute you,
that you may be children of your Father in heaven. ... If you love those
who love you, what reward will you get? Are not even the tax collectors
doing that? And if you greet only your own people, what are you doing more
than others? [Matthew 5:43-47]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Coding style change proposal: #pragma once

2012-10-29 Thread Robert O'Callahan
On Tue, Oct 30, 2012 at 1:13 PM, Nicholas Nethercote n.netherc...@gmail.com
 wrote:

 #pragma once does have one drawback (other than being non-standard)
 and that is if you have the same file in different locations (we have
 this because our build system copies files around) then the compiler
 will think these are different files

 Is that a problem for Mozilla code?


It could be. On Windows files get copied from the source directory to
dist/include. So it seems to me that if . is on the include path before
dist/include, it would be easy for some files to be included twice.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: PGO: another test + PGO topcrashes

2012-11-01 Thread Robert O'Callahan
On Fri, Nov 2, 2012 at 2:19 PM, Dave Mandelin dmande...@gmail.com wrote:

  (b) Failing that, how about not fixing PGO bugs unless they are
 reproducible, on a trial basis? If my lifecycle theory is correct, then the
 total crash rate would stay roughly constant. And I assume that if the
 crash rate doesn't actually go up, that's OK. If it does, and especially if
 that can be shown to be due to an increasing number due to outstanding PGO
 bugs, that would show that we do benefit from fixing them.


Seems to me a good start would be to make a number of builds from regularly
spaced points in the past, backing out all PGO fixes in all those builds,
and examining the code to see if each PGO bug was present. Perhaps you
could improve the results by weighting each bug according to its measured
topcrash rate while it was present.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposal for reorganizing test directories

2012-11-01 Thread Robert O'Callahan
On Fri, Nov 2, 2012 at 2:53 PM, Dave Mandelin dmande...@gmail.com wrote:

 Sure, it's not some grand thing. I just like things to be nicely
 organized. And I really did find mochitest paths a hassle and a (small) tax
 on development effort.


You could keep tests near the code and still have a predictable algorithm
for mapping test paths.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposed style guide modification: using declarations and nested namespaces

2012-11-09 Thread Robert O'Callahan
On Fri, Nov 9, 2012 at 10:14 PM, Zack Weinberg za...@panix.com wrote:

 The style guide should forbid `using namespace` altogether.  Use only what
 you need.


I really don't think it should. I do not want to see source files full of
difficult-to-maintain and unnecessary using boilerplate a la Java
import. At least with Java imports, there are really good tools for
managing the mess; we don't have those tools for C++.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposed style guide modification: using declarations and nested namespaces

2012-11-12 Thread Robert O'Callahan
On Mon, Nov 12, 2012 at 9:37 AM, Zack Weinberg za...@panix.com wrote:

 The scenario I'm concerned with is when a .cpp file does 'using namespace
 A;' and then goes on to define a bunch of its *own* symbols; later someone
 adds a symbol to namespace A, and gets an unexpected break possibly miles
 from their own code.  I see *avoiding* this phenomenon as the primary
 *benefit* of namespaces, and it's totally lost if you do 'using namespace'
 even in .cpp files.


I see. Thanks for explaining that.

I've never ever seen that happen, though. So I'm reluctant to pay an
up-front cost to mitigate a problem whose size is unknown but could be
smaller than any other problem we have. (And if it does occur in the
future, the problem can still be quite easily fixed then.)

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposed style guide modification: using declarations and nested namespaces

2012-11-13 Thread Robert O'Callahan
On Mon, Nov 12, 2012 at 8:37 PM, Jeff Walden jwalden+...@mit.edu wrote:

 We ended up removing the nested |using| above and making all SpiderMonkey
 headers qualify everything with mozilla::.  We use few enough things from
 mozilla:: so far that we switched to |using mozilla::RangedPtr| and so on
 in .cpp files and didn't think twice.  The patch itself was pretty big and
 annoying, but at least we won't have these issues in the future.


Why is using mozilla::RangedPtr required; is RangedPtr ambiguous?

Concerning the DOM nsDocument case, one possible solution might be to refer
 to those symbols with a still-qualified but not fully-qualified name.  Type
 inference code uses types:: without much pain; Ion code uses ion:: (inside
 the js namespace) without much pain, either.


These seem like fine solutions.

For another data point, WebKit's WTF headers include |using WTF::Vector|
 and such at the bottom of them, and I have seen grumbling and/or regrets
 about this decision, as it's caused issues with name conflicts with some of
 Google's gtest framework.


I think everyone agrees that all kinds of using declarations in headers
are disallowed.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Using anonymous namespace vs 'static'

2012-11-20 Thread Robert O'Callahan
On Wed, Nov 21, 2012 at 3:19 PM, net...@gmail.com wrote:

 Maybe there's a specific case where you can reproduce this, but in general
 I've always been able to set breakpoints in unnamed namespaces.
 I've tested just now with a simple app in VS2008, VS2010 and VS2012.  And
 on those debuggers it works fine.


http://msdn.microsoft.com/en-us/library/0888kc6a%28v=vs.100%29.aspx

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Using anonymous namespace vs 'static'

2012-11-20 Thread Robert O'Callahan
On Wed, Nov 21, 2012 at 4:07 PM, net...@gmail.com wrote:

 In VS2010 you can have symbols in your watch window that are in an
 anonymous namespace and you can put breakpoints on them.  For example:

 namespace {
   int g = 42;
 }

 In your Watch window, add g, and you can see 42.

 If you have an anonymous namespace inside of another namespace, then they
 are not easy to see in your watch window.


Actually that seems quite easy. For example in FrameLayerBuilder.cpp I can
add gMaskLayerImageCache to the watch window with no problems, even though
it's in mozilla::{anonymous namespace}. Maybe it being static as well helps?


 But you can still put breakpoints on them.


I don't know how. For example, I don't know how to set a breakpoint by name
on GetMaskLayerImageCache, or ContainerState::ProcessDisplayItems. I have
to open up the source file and click on a line. I also don't know how to
cast to a ContainerState* in the expression evaluator.

That case is not very common though.


Yes, non-toplevel anonymous namespaces do seem to be rare. Unfortunately
that doesn't seem to help me, e.g. I don't know how to set breakpoints by
name on methods of CSSParserImpl, which is in a toplevel anonymous
namespace. Nor can I cast to a CSSParserImpl* in the expression evaluator.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Mac Flash crash: need to find a Mac with Intel GMA 950/X3100

2012-12-06 Thread Robert O'Callahan
Bug 804606 is a pretty bad Flash crash that we're chasing for beta.

If you have an old-ish Mac (5 years old?) and about:support shows Intel
GMA X3100 or Intel GMA 950 under WebGL Renderer then please try
loading Yahoo mail with Flash enabled and Flash hardware acceleration
enabled. (You may need to create a Yahoo mail account for this.) If you see
Flash crashing when we visit the Yahoo mail page, please reply here or in
the bug.

Thanks,
Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Integrating ICU into Mozilla build

2012-12-06 Thread Robert O'Callahan
How hard would it be to incrementally download data for the locales we need?

It seems that most users won't ever need the collation tables for Chinese,
for example. If we could figure out a way to make them available
just-in-time, that could be a win.

I assume the relevant APIs are synchronous, so this might not be trivial.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Integrating ICU into Mozilla build

2012-12-06 Thread Robert O'Callahan
On Fri, Dec 7, 2012 at 4:25 PM, Robert O'Callahan rob...@ocallahan.orgwrote:

 On Fri, Dec 7, 2012 at 4:08 PM, Norbert Lindenberg 
 mozillali...@lindenbergsoftware.com wrote:

 This sounds like non-trivial surgery on ICU. Yes, the APIs are
 synchronous. And we don't know whether the time when a user stumbles onto a
 Chinese web page that requests Chinese collation is really the best time to
 download the data - at that time the user may be roaming in China with a
 U.S. data plan...


 It may not be easy, but I think it's worth jumping through some hoops to
 avoid the download size hit. (Not to mention the B2G and Android footprint
 hit.)


One way this could work (straw-man proposal) is that when a locale is
requested that we support but haven't yet downloaded data for, we simply
start the download and pretend not to support that locale until the
download has happened. When the download completes, show an infobar
explaining what happened and suggesting the user reload the page.

The data-plan issue you mention is real but automated Firefox updates have
the same issue ... we could adopt whatever strategy we already have for
that.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Mac Flash crash: need to find a Mac with Intel GMA 950/X3100

2012-12-06 Thread Robert O'Callahan
On Fri, Dec 7, 2012 at 1:45 PM, Robert O'Callahan rob...@ocallahan.orgwrote:

 Bug 804606 is a pretty bad Flash crash that we're chasing for beta.

 If you have an old-ish Mac (5 years old?) and about:support shows Intel
 GMA X3100 or Intel GMA 950 under WebGL Renderer then please try
 loading Yahoo mail with Flash enabled and Flash hardware acceleration
 enabled. (You may need to create a Yahoo mail account for this.) If you see
 Flash crashing when we visit the Yahoo mail page, please reply here or in
 the bug.


This has been taken care of by Juan Becerra. Thanks!

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Integrating ICU into Mozilla build

2012-12-12 Thread Robert O'Callahan
On Thu, Dec 13, 2012 at 6:10 AM, Jean-Marc Desperrier jmd...@gmail.comwrote:

 Knowing that in most cases you will be reimplementing in parallel the
 support the user has added to the OS so that native application can get it.
 And doing it in parallel means never doing it perfectly the same way.


This argument doesn't always work. Often, the OS support for a particular
language is really terrible and we can and should do better even if it
means being inconsistent with the OS. This is certainly true for the case
of font shaping, for example.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: C++11 atomics in Mozilla

2012-12-13 Thread Robert O'Callahan
On Fri, Dec 14, 2012 at 12:33 PM, Joshua Cranmer pidgeo...@verizon.netwrote:

 3. Similar to #2, the ideal version of a reference counter would be
 mozilla::Atomicnsrefcnt, mozilla::Unordered (which would make threadsafe
 refcounting cheaper on our ARM platforms if we compiled with gcc 4.6 or
 clang 3.1 or newer). However, I'm not sure that no one has written code
 that relies on atomic operations having memory ordering properties, and I
 don't want to go through and audit every thread-safe XPCOM class.


Is code like this safe in the C++1 Unordered model?
Thread 1:
  int x = obj-v;
  obj-Release();
Thread 2:
  obj-Release();
where obj's destructor trashes obj-v.
The potential hazard is if thread 1's obj-Release() atomic decrement is
reordered to run before the obj-v load has completed, then Thread 2's
obj-Release() runs and trashes obj-v, and thread 1 reads the trashed
value.

For what it's worth, I think asking programmers to even think about such
question is insane, so I'd go for full memory barriers and sequential
consistency until we have benchmark numbers showing big wins from other
choices.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


reproducing bug 808466

2012-12-18 Thread Robert O'Callahan
Bug 808466 is about changes in selection sometimes not being rendered in a
timely manner. Basically you select something and the selection doesn't
show up immediately. It will usually show up after some delay.

I *think* this is a rendering bug due to DLBI or something related, but I'm
not 100% sure (jank can sometimes produce the same effect). Unfortunately
no-one knows reliable steps to reproduce the bug. If you've seen the bug,
and especially if you know how to reproduce it, please comment in bug
808466. I'd really like to not ship this regression, because it's annoying.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: reproducing bug 808466

2012-12-18 Thread Robert O'Callahan
On Wed, Dec 19, 2012 at 12:23 AM, Dirkjan Ochtman dirk...@ochtman.nlwrote:

 This sounds similar to https://bugzilla.mozilla.org/show_bug.cgi?id=801555
 .


I can reproduce something via the steps in
https://bugzilla.mozilla.org/show_bug.cgi?id=801555#c16. Thanks!!!

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: reproducing bug 808466

2012-12-18 Thread Robert O'Callahan
On Wed, Dec 19, 2012 at 2:57 AM, Kevin Gadd kevin.g...@gmail.com wrote:

 Would it be possible to add some instrumentation that would let us
 dive into this issue once we reproduce it - like a hotkey or toolbar
 button that would start logging painting and invalidation? When I hit
 this bug it is usually fairly persistent - i.e. all drag-selection
 operations on a webpage show the same extremely long delay - so if
 there was instrumentation like that, I'd be able to use it to record
 info on the bug the next time I see it.


You might be able to debug this using SPS. So install the SPS addon from
https://github.com/bgirard/Gecko-Profiler-Addon/raw/master/geckoprofiler.xpiand
enable profiling, and maybe we'll get lucky.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Removing writable [Replaceable] properties

2012-12-20 Thread Robert O'Callahan
Seems like a reasonable change to me, for the inner*, outer* and screen*
properties. I don't know about the others.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Use of instanceof SomeDOMInterface in chrome and extensions

2012-12-30 Thread Robert O'Callahan
On Mon, Dec 31, 2012 at 11:23 AM, Andreas Gal g...@mozilla.com wrote:

 I think it would be extremely surprising to chrome JS authors if
 instanceof works differently in content and chrome, resulting in very hard
 to diagnose bugs.


What if we made it work that way in content as well?

Yes, ultra-dirty and all that, but in terms of least-surprise, stuff like
iframe.contentDocument.documentElement instanceof Node being false is
pretty surprising to most authors too.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Use of instanceof SomeDOMInterface in chrome and extensions

2012-12-31 Thread Robert O'Callahan
On Tue, Jan 1, 2013 at 2:08 PM, Bobby Holley bobbyhol...@gmail.com wrote:

 It also sounds from your initial post that other vendors weren't very
 receptive to the idea. If so, that's a shame. Maybe we could try again?


I interpreted Boris to mean other vendors were apathetic rather than
opposed.

If it was just apathy, then I think we should go for it and make instanceof
magic for WebIDL interface objects in both content and chrome, and try to
get specs and other engines to follow suit.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Emacs and vim modelines

2013-01-04 Thread Robert O'Callahan
I agree with what David said.

Also does anyone know if there's any research on how line lengths affect
code reading speed? For reading regular text there's definitely an optimal
line length: when text lines are too long, then when your eye moves from
the end of one line to the start of the next line it can get confused about
which line you're on. I don't know if this applies to code, though.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Difficulty with font-face cross-domain restrictions

2013-01-05 Thread Robert O'Callahan
One reason behind this is: what if you were using a font that wasn't free,
but had a license that required you to prevent deep-linking of the font
from other sites to where it's hosted on your site? Firefox and IE give you
a way to do that. Chrome doesn't.

In this case, it's a free font so it doesn't matter, but of course the
browser doesn't know that ... unless you tell us via
Access-Control-Allow-Origin:*.

BTW it's not clear to me why after adding Access-Control-Allow-Origin:*,
you still had problems. I assume it's an arcane detail of Web development
I'm blissfully ignorant of :-).

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


region of zeroes in Gecko address space

2013-01-13 Thread Robert O'Callahan
I need a big read-only buffer full of zeroes. On Linux I could mmap
/dev/zero read-only, and something similar on Windows/Mac I'm sure, but do
we already have code for that, or better yet something like that already
mapped into memory?

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: mozilla-central/inbound closed -- we hit the Windows PGO memory limit

2013-01-21 Thread Robert O'Callahan
Exactly what control do we have over what gets PGOed? In particular:

1) Are we able to exclude particular object files or libraries from PGO
when we link libxul, reducing PGO memory usage for the final link? I think
you said yes on IRC.

2) Are we able to collect a set of object files, link them with PGO into a
static library, and then link the result into libxul, reducing PGO memory
usage for the final link?

Given the answer to #1 is yes, I think it's worth going through the
contents of libxul and disabling PGO on stuff that we deem unimportant. If
the answer to #2 is yes, we can independently-PGO those bits to limit the
perf hit.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: mozilla-central/inbound closed -- we hit the Windows PGO memory limit

2013-01-22 Thread Robert O'Callahan
On Wed, Jan 23, 2013 at 4:31 AM, Ehsan Akhgari ehsan.akhg...@gmail.comwrote:

 But note that unless a given code path is examined throughout the
 profiling phase of a PGO build, PGO will probably have negligible effect on
 it, if any.  The PGO compiler looks for hot code paths and tries to
 optimize those, so for example if the awesomebar doesn't get examined
 during the profiling (which it isn't), it is extremely unlikely that
 turning off PGO on the code responsible for it would have any noticeable
 change on performance.


I don't think this is a safe assumption. Our PGO builds not only do PGO but
also Link Time Code Generation which enables cross-module optimizations.
I have seen code being heavily optimized under PGO that I would not have
expected to be significant in our PGO profile.

It wouldn't be that hard to do an experiment to test the impact of PGO/LTCG
on code that's not in the profile.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The future of PGO on Windows

2013-01-30 Thread Robert O'Callahan
What about leaving PGO/LTCG enabled for a subset of our modules? Is that
not a possible solution?

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: The future of PGO on Windows

2013-01-30 Thread Robert O'Callahan
On Thu, Jan 31, 2013 at 5:34 PM, Ehsan Akhgari ehsan.akhg...@gmail.comwrote:

 On 2013-01-30 11:11 PM, Robert O'Callahan wrote:

 What about leaving PGO/LTCG enabled for a subset of our modules? Is that
 not a possible solution?


 I did in fact measure that by disabling PGO/LTCG on all directories except
 content, dom, layout and xpcom.  I can't seem to find the try push right
 now (and bug 836626 doesn't help), but IIRC that bought us 600MB-700MB.  To
 put that number in context, we have increased the linker memory usage by
 about 1GB over the past 10 months.  Therefore, this will fall under option
 #2.


Can we do it at finer granularity than that? There's a lot under content
and dom that aren't critical.

Also, reducing the number of directories that are PGO/LTCG should mean that
the rate of growth decreases proportionally. Even more than proportionally,
if we flip our default for entirely new modules to be non-PGO/LTCG, as I
assume we would.

Rob
-- 
Jesus called them together and said, “You know that the rulers of the
Gentiles lord it over them, and their high officials exercise authority
over them. Not so with you. Instead, whoever wants to become great among
you must be your servant, and whoever wants to be first must be your
slave — just
as the Son of Man did not come to be served, but to serve, and to give his
life as a ransom for many.” [Matthew 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Cycle collection for workers

2013-02-06 Thread Robert O'Callahan
We're going to want to add worker bindings for canvas (both 2D and WebGL).
Over time I expect we'll want worker versions of almost every popular DOM
API that doesn't actually require content/layout. We need to be able to
share code between worker and main-thread implementations as much as
possible. Right now a major blocker for that is that main-thread DOM APIs
require cycle collection and workers can't use cycle collection. So, what
are the prospects for supporting cycle collection in workers? (I'm talking
about independent cycle collectors for each thread, not any kind of
cross-thread CC.)

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Off-main-thread Painting

2013-02-12 Thread Robert O'Callahan
On Wed, Feb 13, 2013 at 6:17 AM, Jet Villegas j...@mozilla.com wrote:

 I assume we would send the same diff we use for DLBI over to the
 painting thread to minimize the cost.


No, the plan is to ship the entire unoptimized display list over to the
painting thread and do optimization and DLBI processing there. This should
be similar in overall cost to what we do today (but more parallel).

How would this new design interact with the current refresh driver
 scheduling?


Not much. The refresh driver would still run on the main thread and work
like it does today. The painting thread would be an extra stage whose
execution would probably be triggered by the completion of the display list
in the refresh driver, i.e. implicitly scheduled by the refresh driver.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Off-main-thread Painting

2013-02-12 Thread Robert O'Callahan
On Wed, Feb 13, 2013 at 9:43 AM, Robert O'Callahan rob...@ocallahan.orgwrote:

 A large chunk of the work of off-main-thread painting is refactoring
 display lists to be independent of frames, which definitely can and should
 be done incrementally and could be done in parallel with the layers
 refactoring. I still think it should wait till after the layers refactoring
 so all possible resources are on deck for layers.


Also there are a couple of simplifications to the display list stuff I'd
like to make before we do this:
-- Stop using explict nsDisplayClip items and simply attach clipping data
to each display item (making display list construction do what
FrameLayerBuilder already does internally). Large numbers of nsDisplayClips
slow down display list processing, especially on B2G.
-- Make BuildDisplayList infallible.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Off-main-thread Painting

2013-02-12 Thread Robert O'Callahan
On Wed, Feb 13, 2013 at 12:28 PM, Matt Woodrow mwood...@mozilla.com wrote:

 This is the second half of the plan. Third paragraph of 'Proposed Solution'

 The basic idea is that the display list owned by the painting thread
 already contains all the information required to render the page at any
 scroll position.


As dbaron said, we can't do this for literally *any* scroll position. We
can't for example create a display list for the entire HTML5 spec.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Increase in memory utilization on Mac OSX 10.7+ due to history swipe animations

2013-02-12 Thread Robert O'Callahan
Can we compress these screenshots to JPEG or something?

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Running mousemove events from the refresh driver

2013-02-12 Thread Robert O'Callahan
Context: bug 837985.

At times we can be flooded by OS-level mousemove events. I think it would
make sense to process mousemoves at most once per refresh driver tick. This
matters for a couple of reasons: mousemove processing can cause arbitrary
JS handlers to run which can do slow things, and also for performance
reasons we currently don't flush layout before all mousemoves, but we
really should (and we've been burned by bugs where we didn't). If we
dispatch mousemoves in the refresh driver that should reduce the impact of
having to flush, since the refresh driver flushes layout anyway.

I think I'd do this by usurping the synthetic-mouse-move code to dispatch
real mousemoves as well, so platform-level mousemove events do nothing
but notify the presshell that a mousemove is needed and schedule a refresh
driver tick.

Can anyone see any problems with this?

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-12 Thread Robert O'Callahan
On Wed, Feb 13, 2013 at 4:45 PM, Rob Arnold tell...@gmail.com wrote:

 Would you want to predict the mouse location based on past events when you
 dispatch the synthetic event? I guess it depends on how frequently you get
 the events but this is done for touches on mobile where the input frequency
 is close (with 2x) the display frequency. If not, what would the timestamp
 on the event be?


I hadn't thought about that. Is it really necessary? I think without
prediction, we'd get the same visual results as we do today. With
prediction we might make drags seem to track the mouse a bit better,
although it sounds a bit scary to have the user mouse over something they
actually didn't.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-12 Thread Robert O'Callahan
On Wed, Feb 13, 2013 at 5:14 PM, Rob Arnold tell...@gmail.com wrote:

 I agree; it should be no worse than today. I do have some concerns with
 dispatching a mouse move event that contains coordinates the mouse may not
 have been at but the visual results for scrolling ought to be nice. Only
 other concern is if there are applications that make use of the higher
 frequency mouse events to do extra processing (ex: a finger painting app
 would want more samples for curve reconstruction). Otherwise I think it
 makes sense.


I did some tests with various browsers on Windows and we normally only get
60-ish mouse-moves per second max. So if we're keep our frame rate up, we
should be OK.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-13 Thread Robert O'Callahan
On Thu, Feb 14, 2013 at 3:21 AM, Benjamin Smedberg benja...@smedbergs.uswrote:

 On what OSes? Windows by default coalesces mouse move events. They are
 like WM_PAINT events in that they are only delivered when the event queue
 is empty. See
 http://blogs.msdn.com/b/oldnewthing/archive/2011/12/19/10249000.aspx

 This should basically mean that we process mousemove events on windows up
 to 100% CPU, but we should never be flooded by them. Although I do wonder
 if WM_MOUSEMOVE has priority over WM_PAINT so that if the mouse is moving a
 lot, that could affect the latency of WM_PAINT.


We are definitely getting flooded. Here's what I think is happening on the
page I'm looking at, it's pretty simple:
1) nsAppShell::ProcessNextNativeEvent checks for input events, finds a
WM_MOUSE_MOVE, and dispatches it, which takes a little while because this
page's mousemove handler modifies and flushes layout on every mouse move.
2) While that's happening, the mouse keeps moving.
3) After processing that WM_MOUSE_MOVE, ProcessNextNativeEvent calls
PeekMessage again and finds another WM_MOUSE_MOVE is ready. Go to step 1.
4) Meanwhile the refresh driver timer has fired and queued an event, but we
don't get around to running it until NATIVE_EVENT_STARVATION_LIMIT has
expired (one second).

I suppose we could try ignoring WM_MOUSE_MOVEs when there's a Gecko event
pending, but that sounds kinda scary. I think deferring DOM mousemove
events to the next refresh driver tick would be safer than that.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-14 Thread Robert O'Callahan
On Fri, Feb 15, 2013 at 10:14 AM, Benjamin Smedberg
benja...@smedbergs.uswrote:

 I think we should try to process mousemoves as quickly as we can: it's
 important for certain kinds of drawing apps especially to have as much
 mouse input as possible, and I doubt that only receiving mouse input at
 60fps would be adequate in general. Can we build a very basic layer on top
 of the OS mousemove events that coalesces them and dispatches them as soon
 as there are no pending events (native or gecko)? This should solve the
 problem of starving gecko events (especially refresh driver events).


That could starve mousemove events, though.

I created http://people.mozilla.com/~roc/mousemove-freq.html. We get up to
120-ish mousemoves per second on my machine in Firefox, and a bit more in
IE9, but it caps out at 60fps in Chrome which suggests to me they're doing
something like what I suggested already.

In that testcase you can artificially limit mousemove frequency to 60 per
second. It doesn't make much difference to my drawing, athough I'm poorly
coordinately. But wouldn't it make sense for a drawing app to intelligently
interpolate between mousemove points anyway, using splines or something? I
sort of doubt the difference between 60 points per second and 120 points
per second is critical. And I *really* doubt we should design for that
constraint.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-14 Thread Robert O'Callahan
On Fri, Feb 15, 2013 at 4:44 PM, John Volikas fero...@gmail.com wrote:

 I tried the test on Nightly runnig Windows 7 64bit.

 I get up to 1000(!) mousemoves per second but I have a Logitech G400
 gaming mouse that defaults to a 1000Hz polling rate without Logitech's
 software. I guess it depends on the peripheral and the OS. The lines are
 very smooth even with rapid mouse movements. [1]

 Selecting the checkbox to cap the rate and rapidly moving the mouse around
 results in a very ugly result though. [2]

 [1] http://ompldr.org/vaGd2bg/moverate.png
 [2] http://ompldr.org/vaGd2bw/moveratecapped.png


Thanks. That is useful information. Unfortunately it doesn't help me figure
out what to do :-).

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-17 Thread Robert O'Callahan
On Sat, Feb 16, 2013 at 6:16 AM, Steve Fink sf...@mozilla.com wrote:

 It suggests a solution where a quick handler sees all mouse move events
 and batches them up, delivering the batches at a lower rate (60fps isn't
 completely unreasonable). Which is of course completely not
 spec-compliant.


I think it is spec-compliant, actually, if we deliver the batched events as
a series of individually dispatched mousemove DOM events. It might even be
a reasonable solution. In bug 837985 it wouldn't be quite as good as
coalescing --- we'd deliver multiple mouse-move events on each refresh
driver tick, and all but the last one would do significant unnecessary work
--- but it would stop the refresh driver from being starved so it would
make that bug a lot better. The drawing application case would work
perfectly.

It could mess with the timing of sites that use Date.now() in a mousemove
event handler to estimate mouse velocity. On the other hand that is already
probably super-inaccurate over very short intervals. We could make
event.timeStamp return the right thing anyway, if it's OK for DOM event
dispatch order to not match the timeStamp order.

I'm still not sure that this approach would be worth implementing. The
extra precision for drawing applications doesn't seem like a big win given
the mouse isn't a very good drawing tool anyway.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-18 Thread Robert O'Callahan
How about this idea: after processing a WM_MOUSEMOVE event, go into an
anti-flood state where WM_MOUSEMOVE is ignored. After we service the
Gecko event queue, exit the anti-flood state.

This is very simple and I think it would work well for all cases. When DOM
mousemove handlers are cheap and there isn't much else going on, we'll be
able to fire mousemove at very high rates. But when mousemove handlers are
expensive (bug 837985) we'd never delay processing the Gecko event queue
(and running the refresh driver) by more than the duration of one mousemove
handler.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-18 Thread Robert O'Callahan
On Tue, Feb 19, 2013 at 11:47 AM, Karl Tomlinson mozn...@karlt.net wrote:

 Robert O'Callahan writes:

  How about this idea: after processing a WM_MOUSEMOVE event, go into an
  anti-flood state where WM_MOUSEMOVE is ignored. After we service the
  Gecko event queue, exit the anti-flood state.

 The general approach sounds good.

 I expect ignored will have to be ignored at least until there
 is another user input event so that the document will know where
 the mouse is when a key is pressed.


Why? We currently don't do anything to ensure mousemoves are flushed before
key events.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-18 Thread Robert O'Callahan
On Tue, Feb 19, 2013 at 12:44 PM, Karl Tomlinson mozn...@karlt.net wrote:

 I don't know exactly what happens with WM_MOUSEMOVE, it would seem
 unfortunate if a WM_MOUSEMOVE with an updated mouse position is
 not received before key events.  Changing the order of events
 changes the meaning considerably.


On Windows key events are already prioritized over mousemoves, by Windows
itself.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-18 Thread Robert O'Callahan
On Tue, Feb 19, 2013 at 1:40 PM, Brian Birtles bbirt...@mozilla.com wrote:

 I'm not sure if this is a relevant data point but we had an issue[1] with
 touch event coalescing on fennec that produced poor results for the
 following drawing application on some devices such as the Dell Streak:

   
 http://parapara-editor.**mozlabs.jp/testhttp://parapara-editor.mozlabs.jp/test

 This application uses splines to interpolate between the points but still
 the lack of events produced poor results. It was fixed by turning off touch
 event coalescing. See bug 757680.


Thanks, that's helpful.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-19 Thread Robert O'Callahan
On Tue, Feb 19, 2013 at 8:42 PM, Justin Dolske dol...@mozilla.com wrote:

 On 2/18/13 10:24 PM, Jonas Sicking wrote:

  One possible solution is to allow pages to opt in to high-precision
 mousemove events. Then a drawing program could do that on the
 mousedown event end opt out again on mouseup.


 Hmm, we could even do a bit of this today without an opt-in -- throttle
 events unless you're in a mousedown state. (Or throttle less when in a
 mousedown state.) That would, roughly, make existing drawing apps work well
 while also making the common case (not moving while holding a button)
 faster.


Unfortunately bug 837985, the motivator here, happens when the button is
down.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-19 Thread Robert O'Callahan
On Tue, Feb 19, 2013 at 7:24 PM, Jonas Sicking jo...@sicking.cc wrote:

 But I would expect that in the majority of other cases, each mousemove
 event will not leave persisted data and dispatching more mouse moves
 will simply mean that the page will redo the same calculations over
 and over only. The result is that at best 60 results per second being
 used to affect what's drawn on screen.

 One possible solution is to allow pages to opt in to high-precision
 mousemove events. Then a drawing program could do that on the
 mousedown event end opt out again on mouseup. Or if it's really lazy
 opt in for the lifetime of the page. Something like this would have to
 be coordinated with other vendors of course. Given that it looks like
 Chrome is throtteling to 60 mousemove events per second, I would
 expect them to be interested in working on such an API.


I think my idea for an anti-flood state makes this unnecessary.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-21 Thread Robert O'Callahan
On Wed, Feb 20, 2013 at 9:41 AM, Anthony Jones ajo...@mozilla.com wrote:

 We really have to choices:
 A. Provide an API that allows applications to specify whether they are
 type 1 or type 2. It could be implicitly done by including a mouse event
 history array.
 B. Automatically prevent flooding (as per roc's suggestion)
 C. Both of the above.

 Option A fixes most cases but adds more complexity to the API (although
 not much). Poorly written applications or slow systems may still end up
 flooding.

 Option B will mostly fix the problem but will waste CPU cycles if your
 application is type 1.


We pretty much have to do something automatic, so I think we do B, and then
if and when it's worthwhile, A.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Running mousemove events from the refresh driver

2013-02-23 Thread Robert O'Callahan
On Sun, Feb 24, 2013 at 1:41 PM, Neil n...@parkwaycc.co.uk wrote:

 Robert O'Callahan wrote:

  I suppose we could try ignoring WM_MOUSE_MOVEs when there's a Gecko event
 pending, but that sounds kinda scary. I think deferring DOM mousemove
 events to the next refresh driver tick would be safer than that.


 Currently we peek for WM_MOUSEFIRST to WM_MOUSELAST, where conveniently
 WM_MOUSEFIRST == WM_MOUSEMOVE, so couldn't we exclude WM_MOUSEMOVE from the
 native events that we check for? Then they would get picked up when the
 system wasn't so busy.


WM_MOUSEMOVE events, like other native events, would still take priority
over all Gecko events and potentially starve the refresh driver.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: proposal: replace talos with inline tests

2013-03-04 Thread Robert O'Callahan
Writing a lot of performance tests creates the problem that those tests
will take a long time to run. The nature of performance tests is that each
test must run for a relatively long time to get meaningful results.
Therefore I doubt writing lots of different performance tests can scale.
(Maybe we can find ways to eliminate noise in very short tests, but that
might be research.)

One other thing to keep in mind if we're going to start doing performance
tests differently is https://bugzilla.mozilla.org/show_bug.cgi?id=846166.
Basically Chris suggests using eideticker for performance tests a lot more.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Turning off window.Components for the web

2013-03-05 Thread Robert O'Callahan
On Wed, Mar 6, 2013 at 8:54 AM, Gavin Sharp ga...@gavinsharp.com wrote:

 This line of reasoning can be dangerous, given the presence of
 browser-specific code (e.g. if (firefox) { /* use Ci! */ }). But we're
 in estimates of likelihood of bustage based on intuition territory,
 which can make it difficult to have a productive debate. I imagine
 we'll get better data about the potential for bustage impact once this
 gets onto Aurora and/or Beta, but prior experience with this kind of
 thing has shown that those channels often aren't sufficient for
 detecting high-impact web compat changes, so we need to be careful...


Bustage detection rate isn't just a function of the user populations on
each channel; it's also a function of time. Six months of testing on beta
is better than six weeks. I don't know how much better but I'd like to!
Letting changes like this progress to beta and then stay there for several
releases might be a good idea, and if we get some experience with it we
might be able to estimate the value of different lengths of time.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Moz2D Repository Creation

2013-03-27 Thread Robert O'Callahan
On Thu, Mar 28, 2013 at 9:42 AM, Bas Schouten bschou...@mozilla.com wrote:

 - Improve Moz2D development workflow by having faster turnaround time on
 builds and tests (both local and Try)
 - Lower the barrier for external contributors, some people have already
 expressed the desire to work on potential backends we do not wish to invest
 in ourselves, but have been deterred by the complexity of the
 checkout/building process.
 - Improve sharing between Servo/Gecko.
 - Reduce load on our infrastructure by building and testing only Moz2D
 stand-alone when a change affects only Moz2D, both on regular builds and
 try.


Seems to me that of those goals, only lower the barrier for external
contributors actually *requires* Moz2D to be in a separate repository. Is
that right?

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Moz2D Repository Creation

2013-03-27 Thread Robert O'Callahan
On Thu, Mar 28, 2013 at 11:45 AM, Bas Schouten bschou...@mozilla.comwrote:

 I don't think it works that way. At least it doesn't for me, these time
 issues don't work that way. There's a context switch involved, those are
 expensive and there's the feeling of pulling in 2.5 gigs+ onto your hard
 drive to do something small, for someone else really, not because you get
 paid for it. Especially when you're for example on a conference with a poor
 network connection. As another example, currently pushing to try is a very
 conscious decision for me. Is this test result worth it if it's going to
 take me 4 hours to get the results on all platforms? I'll have to look at
 it again tomorrow, maybe I should look a little more if I've done
 everything to make sure it works. Because I know that by pushing that try
 run I'm going to put a lot of burden on our infrastructure to see if a
 small change compiles on all platforms.


But pushing to try is something you do a lot. Cloning Moz2D is something
you probably only do once. And you probably won't do it at a conference.

Additionally all -other- operations on a larger repository are a lot
 slower, things like top-level diffs, updates, etc. They take seconds or
 less on small repository, every step of your workflow is more efficient in
 a more isolated environment. Bisecting is only a small example of this,
 bisecting inside a small repository with a fast build/test is a process
 that's done very quickly and is very easy to justify timewise. Bisecting
 mozilla-central is a hard task that takes a lot of time.


Mainly because you have to build all of mozilla-central. Standalone builds
and tests of Moz2D would be great and we can do that without putting it in
its own repository.

Rob
-- 
Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]
___
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-14 Thread Robert O'Callahan
On Sun, Apr 14, 2013 at 3:40 AM, Asa Dotzler a...@mozilla.com wrote:

 I have a really basic question. Is PGO's performance gains something users
 are actually going to notice or are we mostly talking about synthetic
 benchmark pissing contests here?


It seems to me that benchmark results affect the beliefs of at least some
users.

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


Forcing alphabetical order in moz.build files

2013-04-16 Thread Robert O'Callahan
I have a request ... can we require lists in moz.build files to be in
alphabetical order, and actually enforce with some build-system check? I'm
always annoyed by Makefiles where lists are sometimes unordered and it's
hard to find items and know where to add items.

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


Re: Forcing alphabetical order in moz.build files

2013-04-17 Thread Robert O'Callahan
On Thu, Apr 18, 2013 at 3:40 AM, Ms2ger ms2...@gmail.com wrote:

 On 04/17/2013 07:15 AM, Robert O'Callahan wrote:

 I have a request ... can we require lists in moz.build files to be in
 alphabetical order, and actually enforce with some build-system check? I'm
 always annoyed by Makefiles where lists are sometimes unordered and it's
 hard to find items and know where to add items.


 Fully agree, with the exception that I'm not sure this is a safe
 transformation for *DIRS.


Good point. That's fine though, we can just not care about that.

Likewise we can not care about conditional blocks. I would simply say that
if we have a literal array being appended to one of a known set of
order-independent variables (including EXPORTS, CPPSRCS, etc), its elements
should be in sorted order.

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


Re: Using a pre-processing flag to auto-disable features in later Beta versions

2013-04-19 Thread Robert O'Callahan
On Sat, Apr 20, 2013 at 10:34 AM, Asa Dotzler a...@mozilla.com wrote:

 That would be great -- if we had a significantly larger Aurora population.
  Right now, the only way to get anything close to decent did we break the
 web testing is on our Beta channel.


I think Daniel was concerned about user-visible features (and I agree with
that concern).

If we're only going to use this flag for does this break the Web tests,
where we expect/hope users will not notice, that sounds fine to me, as long
as we stick to that rule.

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


Re: Using a pre-processing flag to auto-disable features in later Beta versions

2013-04-19 Thread Robert O'Callahan
On Sat, Apr 20, 2013 at 11:27 AM, Asa Dotzler a...@mozilla.com wrote:

 I don't think it's that black and white. PDF.js and our new Cookie policy
 are both user facing features and web compat concerns that need a crap ton
 of compat testing.


Hmm, PDF.js yes, maybe click to play too.

But for cookie policy, Shumway, and mixed content blocking, the goal is to
minimize user impact.

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


Accelerating exact rooting work

2013-04-22 Thread Robert O'Callahan
On Tue, Apr 23, 2013 at 5:36 AM, Terrence Cole tc...@mozilla.com wrote:

 Our exact rooting work is at a spot right now where we could easily use
 more hands to accelerate the process. The main problem is that the work
 is easy and tedious: a hard sell for pretty much any hacker at mozilla.


It sounds worthwhile to encourage developers who aren't currently working
on critical-path projects to pile onto the exact rooting project. Getting
GGC over the line reaps some pretty large benefits and it's an
all-or-nothing project, unlike say pursuing the long tail of WebIDL
conversions.

If that sounds right, put out a call for volunteers (by which I include
paid staff) to help push on exact rooting, with detailed instructions. I
know some people who could probably help.

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


Re: Some data on mozilla-inbound

2013-04-23 Thread Robert O'Callahan
On Wed, Apr 24, 2013 at 11:21 AM, Nicholas Nethercote 
n.netherc...@gmail.com wrote:

 - The 'inbound was closed for 15.3068% of the total time due to
 bustage' number is an underestimate, in one sense.  When inbound is
 closed at 10am California time, it's a lot more inconvenient to
 developers than when it's busted at midnight California time.  More
 than 3x, according to
 http://oduinn.com/images/2013/blog_2013_02_pushes_per_hour.png.


Although I've been known to bust inbound, I also tend to check in around
2-3am PDT.

I think it's important to remember that the optimal bustage rate for
inbound is some value greater than zero and varies depending on the time of
day. If inbound is never busted then we're wasting try resources testing
patches that have a 0.99 probability of landing safely. OTOH, whenever the
bustage rate is high enough it's difficult to get things landed, or the
sheriffs' ability to detect regressions is impacted, it's too high. That
currently seems to be the case so it seems like a good idea to use a
highscore list or something like it to exert pressure to use try more until
the situation is resolved.

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


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


Implementing CSS/SVG filters

2013-04-30 Thread Robert O'Callahan
This is a fairly important feature that people want to get working on soon,
but there are quite a few design issues to settle on before we go too far.

I've tried to summarize the requirements, and my ideas about the design,
here:
https://wiki.mozilla.org/Gecko:AcceleratedFilters
Please tear this apart, or better still, constructively add to it :-).

Thanks,
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


Re: Implementing CSS/SVG filters

2013-04-30 Thread Robert O'Callahan
On Wed, May 1, 2013 at 4:11 PM, Andreas Gal g...@mozilla.com wrote:

 I wonder whether we should focus on one fast GPU path via GLSL, and have
 one precise, working, I-don't-care-how-slow CPU fallback.


I agree that should be our top priority, and it may not be worth doing CPU
SIMD at all. But if we can get it cheaply via Skia or somewhere else, maybe
it's worth having. I didn't mean to imply CPU SIMD should be a priority.

As for the filters on GLContext, I wonder whether thats really the best
 approach. Don't most filter applications want to be injected into the
 shader pipeline instead? We would have to be able to compose filters for
 that and generate a composite GLSL program from that. So for example we
 want a BGRXTextureLayer, with Mask3D, with ColorMatrix, and we want GLSL
 source generated from that. So isn't really what we want a GLSL shader
 program generator (and cache) that we give an EffectChain and that gives us
 back a compiled shader? (with added effects including ColorMatrix, etc).


That's a good point: for optimal performance with simple filters we need to
be able to combine the EffectChain with the filter. However I think adding
filters to the EffectChain is probably not the right way to do that,
because some filters require multiple passes with intermediate buffers and
can't be compiled to a single program. I think to keep basic compositing
simple we want an EffectChain to always compile to a single program. So I
suspect the best approach might be to pass the EffectChain as an additional
parameter to the GLContext filter implementation. However, I'm no expert on
GL or GPU programming so I hope the usual suspects will chime in here. (I
was deliberately vague about GL objects for the same reason.)

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


Re: Implementing CSS/SVG filters

2013-04-30 Thread Robert O'Callahan
On Wed, May 1, 2013 at 5:28 PM, Andreas Gal g...@mozilla.com wrote:

 Should we hide the temporary surface generation (when needed) within the
 API?

 GLContext::Composite(Target, Source, EffectChain, Filters)

 And if multiple shaders or passes are needed, we create a temporary
 surface on the fly and then do the final composite with the given
 EffectChain.


It certainly should be hidden within the GLContext filter implementation.
That probably needs to live somewhere under gfx/gl, since Moz2D will need
access to it and Moz2D doesn't depend on layers.

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


Re: Implementing CSS/SVG filters

2013-05-01 Thread Robert O'Callahan
On Wed, May 1, 2013 at 8:20 PM, Andreas Gal g...@mozilla.com wrote:

 We should probably start with the CPU-based fallback path. We can then try
 that with SkiaGL to see what the performance looks like (the
 GLContext-based implementation, essentially). Should we file a couple bugs?
 I might volunteer for the CPU fallback to get something started.


Let's give people a few days for more feedback before anyone dives in. Plus
I think the API needs to be fleshed out quite a bit more ... fully
supporting SVG filters has a lot of subtleties.

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


Re: Mac OSX 10.7+ lion style scroll bars landed on m-i

2013-05-02 Thread Robert O'Callahan
Hooray! Thanks for all the hard work, Stephen.

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


Re: PSA: make -C toolkit/library does not currently work on trunk; use make libs -C toolkit/library instead

2013-05-03 Thread Robert O'Callahan
On Sat, May 4, 2013 at 9:54 AM, Justin Lebar justin.le...@gmail.com wrote:

 See https://bugzilla.mozilla.org/show_bug.cgi?id=809430#c39 for details.

 As roc points out, this has broken |mach build dir|.  Stay tuned in
 the bug if you're interested in whether we resolve this by backing out
 the change or fixing mach.


We have a simple fix toolkit/library/Makefile.in to make the problem go
away.

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


Re: We should drop MathML

2013-05-06 Thread Robert O'Callahan
Let me go on a bit of a rampage about TeX for a bit.

TeX is not a markup format. It is an executable code format. It is a
programming language by design! (It's a very poor programming language, but
let's ignore that for the moment.) You run a TeX program to generate the
rendered output. This has some major implications:
-- It's very hard to write a universal WYSIWYG editor. While I was still in
research I tried various WYSIWYG TeX editors. They all sucked because it's
an intractable problem. That's not a problem for programmers,
mathematicians and scientists who are used to writing everything in
plaintext with emacs. It is for everyone else.
-- You have an edit/compile/debug cycle and your Tex can fail with
compilation/runtime errors. Catastrophic fail document content models
(like XML) really suck for Web content. (Yes, MathML is XML, but people can
and should use the HTML embedding which avoids this problem.)

(Because I like WYSIWYG and I don't like edit/compile/debug cycles and TeX
is atrocious as a language, I tried to avoid it in my research. I published
a POPL paper full of type theory written in Mircrosoft Word (which is
totally unheard of), and wrote my thesis which also include a lot of
semantics and type theory in FrameMaker, which was actually pretty good but
is very dead. (I had an officemate who wrote his thesis in Scribe, which
was very dead even in the mid-90s!))

You could try to fix TeX's problems in a new math language, but computer
scientists have been talking about that for decades and nobody has. Of
course, computer scientists and mathematicians would probably continue to
prefer a Turing-complete language, which is fine for them but again, not
suitable for normal users for the above reasons. And of course, to the
extent you change TeX, you break compatibility with TeX, which is much of
its appeal in the first place.

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


Re: We should drop MathML

2013-05-06 Thread Robert O'Callahan
On Mon, May 6, 2013 at 6:14 PM, Robert O'Callahan rob...@ocallahan.orgwrote:

 wrote my thesis which also include a lot of semantics and type theory in
 FrameMaker, which was actually pretty good but is very dead.


Correction: it's alive! Amazing.

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


Re: We should drop MathML

2013-05-06 Thread Robert O'Callahan
On Tue, May 7, 2013 at 7:12 AM, Benoit Jacob jacob.benoi...@gmail.comwrote:

 How many specific domains will want to have their own domain-specific
 markup language next? Chemistry? Biology? Electronics? Music? Flow charts?
 Calligraphy?


This is a good question to ask, but I think it would help if there are
specific vocabularies we can use as examples.

I think we can safely say that mathematics is a more compelling domain for
Web content than all those other domain. For years we've had a MathML WG in
the W3C and as far as I know, none of those other domains have ever wanted
a WG at the W3C --- at least, they haven't had one. Likewise we've had and
still have a lot of people pushing for browser support for math, and I
haven't ever noticed anyone pushing for browser support for those other
domains.

I think you can also look at Wikipedia and see a lot of use of math, but
relatively little use of content in those other domains. Probably because
math is a much more general tool than those other domains.

Another thing to consider is how amenable to automatic layout/presentation
a particular XML vocabulary is. I know good automatic music layout is very
difficult. For flow-charts, and I suspect chemistry, it is too. For biology
I don't even know what the browser would do. If there's no known good
automatic layout algorithm then obviously browser rendering of content
doesn't make much sense.

One domain you didn't list where I *have* seen pressure for built-in
browser support is maps. Some people want to extend SVG with features to
support maps, so a browser can just render a map without specialized Web
app support. I don't think that is a good idea because good map layout
algorithms are really difficult (e.g. placing labels). Also, mapping
applications invariably have a lot of functionality that wouldn't make
sense to add to the browser --- direction finding, for example --- so it's
hard to imagine users wanting to use maps outside of the context of some
Web application. There's almost no benefit to anyone supporting maps
outside the context of a mapping Web application.

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


Re: We should drop MathML

2013-05-06 Thread Robert O'Callahan
Hopefully Web Components will provide a good solution to let authors extend
the browser with support for vocabularies that can be rendered via a
straightforward decomposition to HTML or MathML or SVG.

I think the layout requirements of MathML are too onerous for MathML to be
reduced to HTML or SVG that way.

While diagrams such as chemical formulae, flowcharts or electronics
schematics can be compiled to SVG, the layout step is very much nontrivial
and I don't think Web Components is enough for that. Web Components plus
some JS to do the layout is probably satisfactory.

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


Re: Extending the text-overflow/overflow property to support fading out

2013-05-22 Thread Robert O'Callahan
I'm pretty sure an unconditional mask with a linear gradient on the
right-hand-end of the text could be achieved using 'mask-box-image' and
slicing appropriately: http://www.w3.org/TR/css-masking/#the-mask-box-image.
That's not currently implemented in Gecko, but it's worth implementing.

A pure-CSS solution that makes the mask conditional on the text overflowing
can't be implemented using any existing spec. I agree an extension to
text-overflow would make the most sense.

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


Re: Code Review Session

2013-05-24 Thread Robert O'Callahan
On Fri, May 24, 2013 at 10:50 PM, Justin Lebar justin.le...@gmail.comwrote:

 If we do, we risk ending up with yet another crappy
 non-solution to a real problem (see bugzilla interdiff, splinter
 integration, and so on).


I think that's quite unfair to the people who integrated Splinter. It's not
everything I want, but I like it a lot better than what we had before.

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


Re: Heads up: difference in reference counting between Mozilla and WebKit worlds

2013-06-18 Thread Robert O'Callahan
I believe that in Webkit you're not supposed to call new directly.
Instead you call a static create method that returns the equivalent of
already_AddRefed.

Rob
-- 
Jtehsauts tshaei dS,o n Wohfy Mdaon yhoaus eanuttehrotraiitny eovni le
atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o Whhei csha iids teoa
stiheer :p atroa lsyazye,d 'mYaonu,r sGients uapr,e tfaokreg iyvoeunr, 'm
aotr atnod sgaoy ,h o'mGee.t uTph eann dt hwea lmka'n? gBoutt uIp waanndt
wyeonut thoo mken.o w
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Making proposal for API exposure official

2013-06-21 Thread Robert O'Callahan
I think APIs which only Mozilla is interested in at that time needs
clarification that this refers to APIs that solve use cases that only
Mozilla is interested in. If other vendors are interested in those
use-cases, but don't like our API proposal, we can't just brush that off.

Rob
-- 
Jtehsauts tshaei dS,o n Wohfy Mdaon yhoaus eanuttehrotraiitny eovni le
atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o Whhei csha iids teoa
stiheer :p atroa lsyazye,d 'mYaonu,r sGients uapr,e tfaokreg iyvoeunr, 'm
aotr atnod sgaoy ,h o'mGee.t uTph eann dt hwea lmka'n? gBoutt uIp waanndt
wyeonut thoo mken.o w
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Making proposal for API exposure official

2013-06-24 Thread Robert O'Callahan
On Tue, Jun 25, 2013 at 3:08 PM, Brian Smith bsm...@mozilla.com wrote:

 At the same time, I doubt such a policy is necessary or helpful for the
 modules that I am owner/peer of (PSM/Necko), at least at this time. In
 fact, though I haven't thought about it deeply, most of the recent evidence
 I've observed indicates that such a policy would be very harmful if applied
 to network and cryptographic protocol design and deployment, at least.


I think you should elaborate, because I think we should have consistent
policy across products and modules.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Making proposal for API exposure official

2013-06-25 Thread Robert O'Callahan
On Wed, Jun 26, 2013 at 4:15 AM, Mounir Lamouri mou...@lamouri.fr wrote:

  3. APIs solving use cases which no browser vendor shipping an engine
  other Gecko is interested in at that time. In cases such as this,
  Mozilla will solicit feedback from as many relevant parties as
  possible, begin the standardization process with a relevant standards
  body, and create a test suite as part of the standards process. An
  example of this is the Push Notifications API.

 I am not a big fan of that exception. Given how fast paced the Web is
 nowadays, we could easily put a lot of APIs in that category.


I don't see this. Can you give some examples?


 Actually,
 if we ask other vendors what they think about most Firefox OS APIs, we
 will very likely get no answer. Does that mean that those APIs are good
 to go?


If no answer means we don't care about your use cases, then we can't
let that block our progress, because there are always going to be use-cases
we need to solve that no other vendor is currently interested in.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Making proposal for API exposure official

2013-06-26 Thread Robert O'Callahan
On Thu, Jun 27, 2013 at 3:59 AM, Ehsan Akhgari ehsan.akhg...@gmail.comwrote:

 On 2013-06-26 9:09 AM, Robert O'Callahan wrote:

 If we think these use cases are (or ever will be) relevant, we need to
 give
 feedback even if we don't plan to implement them soon. We should at least
 try to make sure these APIs are something we wouldn't feel bad about
 implementing, and complain if they are.


 I don't think that in practice we can expect other vendors to give us
 feedback on all proposed APIs, or that we give them feedback on their
 proposed APIs.


I agree, which is why the default for the no-feedback situation has to be
forward progress, not deadlock.

For whatever it's worth, Blink has made the decision to implement Web MIDI
 without receiving any feedback from us (and to the best of my knowledge
 from other vendors), and has also made the decision to ship
 requestAutocomplete hoping that Hixie will add it to the spec before it
 hits the Chrome release channel.  In the case of Web MIDI at least they
 have asked us to give feedback on a few occasions, but we've been unable to
 do so because of not having enough resources.  But it looks like they're
 also interested in making progress on the features that are only
 interesting to them while making an effort to solicit feedback from other
 engine vendors.


I think they've done the right thing here for Web MIDI. They've produced a
spec, invited feedback, and confirmed that at least we don't have
objections.

So, are you proposing that we should give feedback on all APIs even if
 they're not interesting to us?


I think we should try. So, we should try to have someone carve out some
time to review Web MIDI, at least to the point where we feel confident it
would make sense to implement.


 I'd be fine with that, but I don't think we can assume that it will be
 reciprocated.


That doesn't matter.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: review stop-energy (was 24hour review)

2013-07-11 Thread Robert O'Callahan
On Wed, Jul 10, 2013 at 3:26 PM, Justin Lebar justin.le...@gmail.comwrote:

 If I can propose something that's perhaps different:

 1) Write software to figure out who's slow with reviews.
 2) We talk to those people.


We've done this before too.

But we should just do it again --- the definition of insanity aphorism is
nonsense. Repetition helps people learn.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: review stop-energy (was 24hour review)

2013-07-11 Thread Robert O'Callahan
We can't have a rigid rule about 24 hours. Someone requesting a review from
me on Thursday PDT probably won't get a response until Monday if neither of
us work during the weekend.

But I think it's reasonable to expect developers to process outstanding
review requests (and needinfos) at least once every regular work day.
Processing includes leaving a comment with an ETA.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: review stop-energy (was 24hour review)

2013-07-11 Thread Robert O'Callahan
On Wed, Jul 10, 2013 at 2:48 PM, Jeff Walden jwalden+...@mit.edu wrote:

 Reviewer-side: I've lately tried to minimize my review turnaround time
 such that I get things done, roughly FIFO, before I get a review-nag mail.
  I can approximately do that, while keeping up with most of my coding.
  Establishing one-day turnaround time on reviews, or on requests, would
 require a lot more polling on my review queue.  And I don't think that's a
 good thing, context-switching from coding tasks being pretty expensive for
 any developer.


I think a reasonable expectation is that paid staff process outstanding
review requests at least once every regular work day. If you do it at the
beginning of the day, before diving into your other work, it won't
interrupt that other work.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: review stop-energy (was 24hour review)

2013-07-11 Thread Robert O'Callahan
While I think your observations are useful, I think (hope!) you are a
massive outlier and I don't think we should design a policy based on the
assumption that your review commitments are in any way normal.

I would be totally OK with a policy that explicitly applies to everyone
except you. Or, we could parameterize it with a dynamic list of exceptions
who are known to be overloaded with reviews. In fact, making that list
explicit and publishing it would let people know not to request reviews
from people on that list except as a last resort (which is, in fact, how I
treat you and dbaron).

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: review stop-energy (was 24hour review)

2013-07-11 Thread Robert O'Callahan
On Thu, Jul 11, 2013 at 6:23 AM, Justin Lebar justin.le...@gmail.comwrote:

 Someone who usually has a long review queue has told me that he hates
 reviewing code.  I realized that we don't really have a place at Mozilla
 for
 experienced hackers who don't want to do reviews.  Should we?


I think someone can hate doing reviews and also want to do reviews
because they're important. I don't know anyone who loves doing reviews.

As another data point, someone told me recently that he's trying not to
 become
 a peer of the modules he's working on, because he doesn't want to review
 code.


If someone who can do reviews is avoiding them, they're pushing workload
onto their peers who probably don't enjoy it much more. That's antisocial
and unacceptable IMHO.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: review stop-energy (was 24hour review)

2013-07-11 Thread Robert O'Callahan
The way I work is that review and needinfo requests go to my inbox and I
process them with high priority. I can and do ignore them there temporarily
if I need to. Given I use my inbox as a to-do list, that approach seems
perfect for me.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Using C++0x auto

2013-07-18 Thread Robert O'Callahan
On Fri, Jul 19, 2013 at 3:34 AM, Ehsan Akhgari ehsan.akhg...@gmail.comwrote:

 On 2013-07-18 5:48 AM, mscl...@googlemail.com wrote:

  r-value references  4.3@10.0!   Yes


 This is very useful.  I believe the JS engine already rolls their own
 tricks to implement this semantics.


With this we can get rid of already_AddRefed and just pass
nsRefPtr/nsCOMPtr/RefPtr around, right?

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Using C++0x auto

2013-07-21 Thread Robert O'Callahan
On Mon, Jul 22, 2013 at 3:58 PM, L. David Baron dba...@dbaron.org wrote:

 Is the idea here that nsRefPtr/nsCOMPtr/etc. would have move
 constructors, and we'd just return them, and the move constructors
 plus return value optimizations would take care of avoiding excess
 reference counting?


That, plus forget() returns a nsRefPtr.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Using C++0x auto

2013-07-21 Thread Robert O'Callahan
On Mon, Jul 22, 2013 at 5:39 PM, Justin Lebar justin.le...@gmail.comwrote:

 But if we return nsRefPtr, then if I have

   nsRefPtrFoo GetFoo();
   Foo* = GetFoo();

 that compiles fine (I think?) because nsRefPtrT has an implicit
 conversion to T*.


It doesn't leak, though. OTOH you probably get a use-after-free, which is
worse. So I dunno, maybe this is a bad idea.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


On indirect feedback

2013-08-02 Thread Robert O'Callahan
On Sat, Aug 3, 2013 at 9:13 AM, Gregory Szorc g...@mozilla.com wrote:

 Many of the complaints I've heard have been from overhearing hallway
 conversations, noticing non-directed complaints on IRC, having 3rd parties
 report anecdotes, etc. *Please, please, please voice your complaints
 directly at me and the build peers.* Indirectly complaining isn't a very
 effective way to get attention or to spur action.


Yes! Indirect feedback is antisocial and destructive.
http://robert.ocallahan.org/2013/05/over-time-ive-become-increasingly.htmlFWIW.

Even if you're just the recipient of indirect feedback, you can help, by
refusing to hear it until direct feedback has been given.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: On indirect feedback

2013-08-03 Thread Robert O'Callahan
On Sat, Aug 3, 2013 at 12:43 PM, Brian Smith br...@briansmith.org wrote:

 I think some people may interpret what you say in that last paragraph the
 opposite of how you intend. I am pretty sure you mean something like If
 somebody starts to complain to you about somebody else, then stop them and
 ask them to first talk to the person they were trying to complain about.


Yes, that's exactly what I mean. Thanks.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Flash and e10s

2013-08-06 Thread Robert O'Callahan
I was talking to people about plans for Flash on e10s.

Full support for windowed Flash on e10s is possible but would be a ton of
work. Flash is on a downward trajectory and it would be a shame to do a ton
of work to support something that may not be relevant for much longer.

One idea I had is this: suppose, independently of e10s, we make Flash
click-to-play. (I understand this is already a goal, or at least a wish.)
Then suppose we allowed click-to-play to reload the page. We would then be
able to ensure that any page where Flash is enabled is loaded directly in
the master process and everything would just work. That's not ideal, but
it's a fine stop-gap approach IMHO.

As Shumway matures we could whitelist common sites where Shumway is known
to work, so those sites wouldn't need to be hoisted to the master process.

One problem with these ideas is H.264 video sites on Windows XP. We're
stuck with using Flash there for now. We might need to impose a different
policy on Windows XP, backing off e10s more there perhaps.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Flash and e10s

2013-08-06 Thread Robert O'Callahan
On Wed, Aug 7, 2013 at 4:31 PM, Justin Lebar justin.le...@gmail.com wrote:

 On Tue, Aug 6, 2013 at 5:46 PM, Robert O'Callahan rob...@ocallahan.org
 wrote:
  I was talking to people about plans for Flash on e10s.
 
  Full support for windowed Flash on e10s is possible but would be a ton of
  work. Flash is on a downward trajectory and it would be a shame to do a
 ton
  of work to support something that may not be relevant for much longer.

 Just to be clear about our assumptions here: You think it would be a
 lot of work to do anything with Flash and content processes, including
 running Flash within the content process itself?


Yes.

Running windowed Flash within the content process itself would mean giving
that content process access to the main window's HWND. That's not really an
option for sandboxing, AIUI. Also, running windowed Flash within the
content process would not work with multiple content processes, AIUI. Also,
running Flash in the same process as content sucks more than running it in
its own process.

The best option for proper support of Flash would probably be a Flash
process hanging off the master process, with content processes granted
channels to the Flash process via IPDL trickery, plus some extra work to
have the content process tell the master process how to position and clip
each Flash window. It's going to be complex.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Flash and e10s

2013-08-07 Thread Robert O'Callahan
On Wed, Aug 7, 2013 at 6:05 PM, Markus Stange msta...@themasta.com wrote:

 On 07.08.13 06:39, Robert O'Callahan wrote:

 Running windowed Flash within the content process itself would mean giving
 that content process access to the main window's HWND.


 What would be the disadvantages of forcing wmode=transparent for content
 process flash?


That might help. The other issues are still serious.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Flash and e10s

2013-08-07 Thread Robert O'Callahan
On Thu, Aug 8, 2013 at 2:14 AM, Benjamin Smedberg benja...@smedbergs.uswrote:

 The primary reason I know for windowed Flash to be a huge PITA is because
 of the deadlock issues caused by attached input queues. I'd love to force
 Flash to be windowless and use our fullscreen support instead of their own
 windows, because this would fix many of the deadlock issues.


That would be nice.

What other issues are you concerned about specifically?


Managing window geometry from the master process is going to be a bit of a
pain, since we'll have to combine information from the content process(es)
with information about the geometry and visibility of the browsing context.
It's doable though.



 One idea I had is this: suppose, independently of e10s, we make Flash
 click-to-play. (I understand this is already a goal, or at least a wish.)

 It is neither a goal nor feasible. We did user research into this at the
 beginning of the year, and there is enough hidden Flash out on the web that
 click to play is just too confusing for the average user.


OK, that's very good to know. That scotches my idea. Thanks!

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Exposing the CSS/SVG Filters as Canvas API's

2013-08-08 Thread Robert O'Callahan
Markus is moving with great speed and we should have the necessary Moz2D
support landed soonish.

I think the biggest outstanding issue is how to spec the canvas API for
this. The most obvious approach to me is to add a filter attribute to
CanvasRenderingContext2D that takes a CSS filter value and applies it
during the compositing step of each drawing operation. Unfortunately CSS3
filters doesn't have a value representing a general color matrix. You could
use context.filter = url(#mysvgColorMatrixFilter) and set up the
corresponding filter element subtree in the document, but that's a bit
naff for JS users (and wouldn't work in Workers). The data: URL version of
that is even more naff and might also not work in Workers.

So, we could choose between
a) Add CanvasRenderingContext2D.filter and a
color-matrix(N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N) CSS filter value.
b) Add CanvasRenderingContext2D.colorMatrix which allows direct setting of
a color matrix on the canvas, more like what Tobias suggested. This would
allow later adding CanvasRenderingContext2D.filter as a separate feature.
(If both were specified, both would be applied in some specified order.)

Any thoughts?

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Exposing the CSS/SVG Filters as Canvas API's

2013-08-08 Thread Robert O'Callahan
On Fri, Aug 9, 2013 at 9:29 AM, K. Gadd k...@luminance.org wrote:

 Consider this my +1 in favor of a dedicated .colorMatrix attribute,


Good, then I'll expect you to back me up in WHATWG with usecases :-).


 preferably in the form of a Uint8Array or Float32Array instead of another
 *!@$ string.


Using an array for an attribute is problematic due to liveness issues.

heycam, what's the WebIDL-friendliest way to have an array-valued
attribute-like thing? Just getter and setter methods?

SVG color matrices provide a superset of some very important rendering
 operations that show up a lot in game rendering. Right now to emulate them
 in canvas I have to use the CPU to split a source image into four 'channel'
 images and blend them iteratively to the canvas in additive mode in order
 to approximate the most common one (GL_MULTIPLY, effectively)


Doesn't GL_MULTIPLY multiply color values in the source by color values in
the destination? The colormatrix feature we're talking about can't do that.

Rob
-- 
Jtehsauts  tshaei dS,o n Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni
le atrhtohu gthot sf oirng iyvoeu rs ihnesa.rt sS?o  Whhei csha iids  teoa
stiheer :p atroa lsyazye,d  'mYaonu,r  sGients  uapr,e  tfaokreg iyvoeunr,
'm aotr  atnod  sgaoy ,h o'mGee.t  uTph eann dt hwea lmka'n?  gBoutt  uIp
waanndt  wyeonut  thoo mken.o w  *
*
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


  1   2   3   4   >