Bug 1319237 - Make GeckoDriver#setWindowSize synchronous; r?automatedtester
Return from the Set Window Size command only after the window resize
DOM event has occurred.
MozReview-Commit-ID: 7ygZuNJZzq2
--- a/testing/marionette/driver.js
+++ b/testing/marionette/driver.js
@@ -2472,25 +2472,32 @@ GeckoDriver.prototype.getWindowSize = fu
/**
* Set the size of the browser window currently in focus.
*
* Not supported on B2G. The supplied width and height values refer to
* the window outerWidth and outerHeight values, which include scroll
* bars, title bars, etc.
*/
-GeckoDriver.prototype.setWindowSize = function(cmd, resp) {
+GeckoDriver.prototype.setWindowSize = function*(cmd, resp) {
if (this.appName != "Firefox") {
throw new UnsupportedOperationError();
}
let {width, height} = cmd.parameters;
+
let win = this.getCurrentWindow();
- win.resizeTo(width, height);
- this.getWindowSize(cmd, resp);
+ yield new Promise(resolve => {
+ win.addEventListener("resize", resolve, {once: true});
+ win.resizeTo(width, height);
+ });
+ return {
+ width: win.outerWidth,
+ height: win.outerHeight,
+ };
};
/**
* Maximizes the user agent window as if the user pressed the maximise
* button.
*
* Not Supported on B2G or Fennec.
*/