PSA: Please use XPCOMUtils.defineLazyGlobalGetters rather than Cu.importGlobalProperties

2018-06-07 Thread Kris Maglione
tl;dr: importGlobalProperties is expensive. If you don't need the imported 
properties immediately, please use defineLazyGlobalGetters instead.


Calling importGlobalProperties immediately defines the properties that you're 
importing and any prototypes that they require. Aside from CPU overhead, this 
also tends to consume a lot of memory, especially for objects with complex 
prototypes. And it does this once for every global you call it in. This is 
especially a problem for content processes, since we get this memory overhead 
in each and every content process (and remember, as a part of Project Fission, 
we're aiming to be able to run 100 content processes for ordinary users).


Ordinary WebIDL globals don't really have this problem, since they're already 
defined lazily via resolveProperty hooks. In bug 1464548, I added 
XPCOMUtils.defineLazyGlobalGetters, which has somewhat similar behavior, and 
also has the benefit of always creating the global in the shared JSM module 
scope, no matter which global it's called from. Please use that helper from 
now on unless you have a very good reason not to.


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


Re: Proposal: WebIDL generated bindings classes renamed from dom::FooBinding to dom::binding::Foo

2018-06-07 Thread Boris Zbarsky

On 6/7/18 4:24 PM, Kyle Machulis wrote:

+1 on the namespace idea. We started using
mozilla::dom::FooBinding::[ConstantName] namespace for constants in bug
792059, so we may also want to change that to
dom::binding::Foo::[ConstantName] for consistency sake.


Right, that change would be part of the proposal here.  All FooBinding 
would become bindings::Foo.


(I guess we have to watch out for bindings::Foo vs binding::Foo; I 
wonder whether we should just "namespace binding = bindings;" and let 
people spell it however.)


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


Re: Proposal: WebIDL generated bindings classes renamed from dom::FooBinding to dom::binding::Foo

2018-06-07 Thread Kyle Machulis
+1 on the namespace idea. We started using
mozilla::dom::FooBinding::[ConstantName] namespace for constants in bug
792059, so we may also want to change that to
dom::binding::Foo::[ConstantName] for consistency sake.

On Thu, Jun 7, 2018 at 1:03 PM, Jeff Gilbert  wrote:

> We have a name conflict under the current system when trying to use
> these two classes from the webgpu sketch webidl:
> - WebGPUBuffer
> - WebGPUBufferBinding
>
> I'm proposing renaming the generated bindings classes from
> dom::FooBinding to dom::binding::Foo. This seems like a reasonable use
> of namespaces, and will be immune from naming collisions coming from
> webidl.
>
> Also considered was dom::Foo_Binding. (webidl really shouldn't have
> underscores, but technically could!) Talking with bz,
> dom::bindings::Foo sounds better to us, though.
> ___
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Proposal: WebIDL generated bindings classes renamed from dom::FooBinding to dom::binding::Foo

2018-06-07 Thread Jeff Gilbert
We have a name conflict under the current system when trying to use
these two classes from the webgpu sketch webidl:
- WebGPUBuffer
- WebGPUBufferBinding

I'm proposing renaming the generated bindings classes from
dom::FooBinding to dom::binding::Foo. This seems like a reasonable use
of namespaces, and will be immune from naming collisions coming from
webidl.

Also considered was dom::Foo_Binding. (webidl really shouldn't have
underscores, but technically could!) Talking with bz,
dom::bindings::Foo sounds better to us, though.
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Pseudolocalization in Firefox Nightly!

2018-06-07 Thread Zibi Braniecki (Gandalf)
Hi all!

We've just landed a new hot developer-oriented feature in Firefox Nightly -
Pseudolocalization.

Pseudolocalization allows developers to quickly test their UI against fake
localizations helping us discover internationalization issues earlier in
the cycle.

You can find an introduction video here:
https://www.youtube.com/watch?v=pmT9PINv6nE
An introduction blog post here:
https://diary.braniecki.net/2018/06/07/pseudolocalization-in-firefox/

And documentation here:
https://firefox-source-docs.mozilla.org/intl/l10n/docs/l10n/fluent_tutorial.html#pseudolocalization

The functionality is directly related to the new localization framework -
Fluent - and in result works in areas covered by Fluent - mainly
Preferences at the moment.
As Fluent becomes available in other parts of our codebase,
pseudolocalization will come with it.

We're looking forward to hear your feedback and requests for more features!

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


Re: Launch of Phabricator and Lando for mozilla-central

2018-06-07 Thread Mark Côté
On Wednesday, 6 June 2018 19:58:43 UTC-4, Xidorn Quan  wrote:
> On Thu, Jun 7, 2018, at 12:57 AM, Mark Côté wrote:
> > Phabricator is a suite of applications, but we are primarily using the 
> > code-review tool, called Differential, which will be taking the place of 
> > MozReview and Splinter. Bug tracking will continue to be done with 
> > Bugzilla, which is integrated with Phabricator. You will log into 
> > Phabricator via Bugzilla. We will soon begin sunsetting MozReview, and 
> > Splinter will be made read-only (or replaced with another patch viewer). 
> > An upcoming post will outline the plans for the deprecation, archival, 
> > and decommission of MozReview, with Splinter to follow.
> 
> Does using Phabricator still require using the PHP client? I recall gps 
> mentioned before that there was a plan to integrate it into hg or mach 
> instead of requiring developers to install another runtime and client. How is 
> that going on?
> 
> If the plan is that everyone should just install the PHP runtime and use that 
> client, maybe MozillaBuild should include PHP (installing it on Linux and 
> macOS should be included in mach bootstrap I guess).
> 
> - Xidorn

Yes, it still requires PHP, and yes, I'd like to bundle it.  This depends, 
though, on how we end up improving commit-series support.

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


Re: Launch of Phabricator and Lando for mozilla-central

2018-06-07 Thread James Graham

On 06/06/2018 15:57, Mark Côté wrote:


Similarly, there are two other features which are not part of initial launch 
but will follow in subsequent releases:
* Stacked revisions. If you have a stack of revisions, that is, two or more 
revisions with parent-child relationships, Lando cannot land them all at once.  
You will need to individually land them. This is filed as 
https://bugzilla.mozilla.org/show_bug.cgi?id=1457525.


Have we considered the impact this will have on our CI load? If we 
currently have (say — I didn't bother to compute the actual number) an 
average of 2 commits per push, it seems like this change could increase 
the load on inbound by a corresponding factor of 2 (or perhaps less if 
the multiple-final-commit workflow is so bad that people start pushing 
fewer, larger, changes).

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