Switches the whole test to task based and removes most of the CPOW traffic, the
plugin checks are the notable exception.
This also makes ContentTask act sanely in the presence of tab detach by using
browser.permanentKey as the indication that the framescript has been loaded and
just listening to all frames.
Also adds a click in the upper-left of the content area to browser_tabopen_reflows.js
to make sure the mouse isn't hovered over one of the tiles causing an unexpected
reflow.
This introduces a new medule ContentTask, which includes a spawn method.
This new method can be used to spawn a task in the content process of a
browser. When called, a promise will be returned which resolves to the
value returned by the task.
This allows you to quickly write test code which can touch the content
and return information without having to write custom framescripts all
the time (The content code can be written inline as a simple generator
definition). ContentTask is automatically included in the scope of
mochitests.
An example use follows:
yield ContentTask.spawn(browser, {}, function* gen_replaceState() {
content.window.history.replaceState({}, "", 'test-entry/');
return "Value that the promise will resolve with";
});