On Sat, Aug 9, 2014 at 7:19 PM, Bobby Holley <bobbyhol...@gmail.com> wrote:
> I've mentioned this before [1], but recent checkins in mozilla-central
> suggest that this message could use repeating.
>
> Please don't write new tests that do tricky things with SpecialPowers.wrap
> and friends (like SpecialPowers.Cc and SpecialPowers.Cu, which do an
> implicit .wrap()).
>
> These wrappers are intended to be a quick-and-dirty tool to frob things
> from mochitest-plain, but have lots of quirks that cause complicated use
> cases to fail in mysterious ways. Moreover, the transitive nature of the
> wrappers usually cause them to spread much farther than the author
> intended. This can waste a lot of time, and significantly reduces the value
> of your tests, because they're testing a complicated/magical/best-effort
> proxy layer rather than what we actually ship.
>
> Here are some Do's and Don'ts:
>
> Do:
> * Poke various privileged controls (triggered GCs, setting prefs, clearing
> caches) to improve the usefulness of a test.
> * Examine cross-origin objects to avoid complicated postMessage-based tests.
>
> Don't:
> * Import a framework like Task.jsm or Promise.jsm.
> * Implement an XPCOM component.
> * Interact directly with the JSM backend of a DOM API.
>
> If you find yourself itching to do something complicated, write a
> mochitest-chrome test. The default template [2] now generates html files
> (rather then XUL files), so the ergonomics there should be easier than
> before.
>
> If you don't want to write a mochitest-chrome test for some reason, you can
> also use SpecialPowers.loadChromeScript(uri), which lets mochitest-plain
> asynchronously load a privileged JS file in its own privileged scope.
>
> Please enforce this during review, and don't hesitate to get in touch with
> me if you have questions.
>
> Cheers,
> bholley
>
> [1]
> https://groups.google.com/d/msg/mozilla.dev.platform/AkX7jmLRQwg/KLqMxWLeQaYJ
> [2] perl testing/mochitest/gen_template.pl -type chrome -b 555555
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform

Can you look at what Marionette uses SpecialPowers for to see if it is
a problem?  It might just be passing it through to the script the
Marionette client wants to execute, I'm not sure.

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

Reply via email to