Closed Bug 1358029 Opened 7 years ago Closed 6 years ago

Updating timeout values does not update capabilities object of content framescript

Categories

(Remote Protocol :: Marionette, enhancement, P3)

Version 3
enhancement

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1379490

People

(Reporter: whimboo, Unassigned)

References

Details

When a new session is created in a framescript we pass in the capabilities. Sadly we do not update the Map when the timeout values are getting changed in driver.js. As such the listener keeps the default values.
We can approach this in a couple of different ways.

One is to make all listener calls involving one of the three timeouts explicit arguments.  This means for example that every time this.listener.get(…) is called from driver.js, it needs to include a pageTimeout argument.

Another approach is to make a synchronous service á là cookies in driver.js that listener.js can query to get the latest updated values.  We can use proxy.toChrome for this, like we do for cookies and imported scripts at http://searchfox.org/mozilla-central/source/testing/marionette/listener.js#90-92.

I don’t have very strong feelings about this, but I feel perhaps that the first is easier and more explicit.  It is a different situation to pass along some arguments necessary for the successful execution of an operation, than a listener function possibly having to query some large-ish state in driver.js.
The first is easier but might end-up with lots of parameters we have to pass into those calls. That is because I think we should not make this exclusive for timeouts only, but also other status like pageLoadStrategy. Or would you exclude those parameters here, which will never change and are part of the capabilities?
It’s only mutable state that changes after the session has been created that we need to worry about, e.g. state that can be changed through setters.  The page load strategy is immutable for the duration of the session.

Maybe the safer option is to create a synchronous listener-to-driver interface to query all config options in driver.js so that state is only kept in one place, and not pass the capabilities to the listener at all when it registers.
Priority: -- → P3
Depends on: 1379490
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.