This fixes an instance of passing an Error prototype over the message
manager as a CPOW. We solve this by marshaling the error, which is
now done automatically by the new AsyncMessageChannel. It allows us to
create an (almost) transparent promise-based interface between chrome-
and content contexts.
The patch also makes AsyncMessageChannel reusable on both sides of the
message listener, but it's currently not used at its maximum potential
because of the way the listener is architected.
--HG--
extra : commitid : EQd5E4Digdv
extra : rebase_source : 8e0c36960759d25c73bbbc0f4f0bcb453c1028f4
extra : amend_source : 6bb6a76a8b30a5524639f8236291980b16402e6a
A <window> object may not exist in popup windows that are spawned from
a <window>. document.documentElement is equivalent to <window> in
the case of the primary window, but lets us support the ChromeWindow's
document when it isn't.
--HG--
extra : commitid : GVJfQ7yGGdV
extra : rebase_source : af351c5bd91eb865c657a2f45479c5b360c50fc6
extra : amend_source : f3ddef37a7f663fcf4f049f13eac3cf94df2ad29
Turns testing/marionette/actions.js into a JS module.
--HG--
extra : commitid : 9H79Czlo1bR
extra : rebase_source : 361ba48bf1e25aff74f919b3f8d6999e3ef76209
extra : amend_source : e3d437eff976a4fd1381d5048e160c0359763d7d
If the client is able to connect but the server never sends any data,
the socket should time out in order for the function not to hang forever.
That said, polling for ports like this is inherently racy and we should
instead specify and bind what port we wish Marionette to start on in
the future.
--HG--
extra : commitid : H3MeLBVOCNT
extra : rebase_source : 45b4727a9b12541990f525795007a8b0502b1170
extra : amend_source : 94fc48fd23cb6223147ce204c3576e74bb95e80b
This change reduces the number of content frame script message senders
from three to one by imposing a message format.
--HG--
extra : rebase_source : 2e2940eb7d095e22a60d3e6f3af44446bb425c93
This allows us to now handle errors and return the appropriate
errors to the clients
--HG--
extra : commitid : K6Kqatm97sY
extra : rebase_source : 2f6ceefc910be77e6d88ed300d29650b41a171d9
extra : histedit_source : e636d2ca4b337140d54caba5a240ade7b7d8a01d
This allows us to now handle errors and return the appropriate
errors to the clients
--HG--
extra : rebase_source : 948dc82a6d36d97b69ef2f0ef43b8390c35616aa
A distinct advantage is that try...catch statements are no longer used
to control the flow of code.
--HG--
extra : rebase_source : e3dcadcf9fdfcfe9d227b571b5a830437428762c
extra : source : 2b6d148fd941363e4580137e5d6efc0eebdaf7bd
When socket.settimeout(None) is set in Python's standard library this
is meant to be equivalent to disabling timeouts on socket operations.
marionette.transport should respect this.
This change set unbreaks the use of the --jdebugger flag to `./mach
marionette-test'.
--HG--
extra : rebase_source : a2b72fd1e40142cbae5387193ea828348c8eee5c
If the client is able to connect but the server never sends any data,
the socket should time out in order for the function not to hang forever.
That said, polling for ports like this is inherently racy and we should
instead specify and bind what port we wish Marionette to start on in
the future.
--HG--
extra : rebase_source : eb2339c4e70fcc410d8d2a83c93894050ce57001
When socket.settimeout(None) is set in Python's standard library this
is meant to be equivalent to disabling timeouts on socket operations.
marionette.transport should respect this.
This change set unbreaks the use of the --jdebugger flag to `./mach
marionette-test'.
--HG--
extra : rebase_source : 8b3babda46fb0d82345f36b854c1dee2c9e7a05c
A distinct advantage is that try...catch statements are no longer used
to control the flow of code.
--HG--
extra : rebase_source : 402890020719b04245aa7c601f52752cb43c0666
Previously fnName and line was tested as the entry requirement for
printing the filename to the trace information. Testing line here was
premature since it is meant to be an optional argument.
This patch rectifies this behaviour by testing for each of the optional
arguments sequentially. This means the file argument is required to print
the line, and the fnName argument is required to print any of those two.
--HG--
extra : rebase_source : 484be6c8e09c8d4c5e6ce25e12ffc522d8111963
Previously fnName and line was tested as the entry requirement for
printing the filename to the trace information. Testing line here was
premature since it is meant to be an optional argument.
This patch rectifies this behaviour by testing for each of the optional
arguments sequentially. This means the file argument is required to print
the line, and the fnName argument is required to print any of those two.
--HG--
extra : rebase_source : d6490c7a8c393fdad2a4d008db82bdf0f1010175