Closed Bug 1396142 Opened 7 years ago Closed 6 years ago

Intermittent testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py TestWindowMaximize.test_stress | AssertionError: 800 != 1500

Categories

(Testing :: Marionette Client and Harness, defect, P5)

Version 3
defect

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: intermittent-bug-filer, Unassigned)

References

Details

(Keywords: intermittent-failure)

[task 2017-09-01T14:07:55.214278Z] 14:07:55     INFO -  1504274875209	Marionette	TRACE	225 -> [0,7,"setWindowSize",{"width":1500,"height":1100}]
[task 2017-09-01T14:07:55.217832Z] 14:07:55     INFO -  1504274875213	Marionette	TRACE	225 <- [1,7,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2017-09-01T14:07:55.218821Z] 14:07:55     INFO -  1504274875215	Marionette	TRACE	225 -> [0,8,"getWindowSize",{}]
[task 2017-09-01T14:07:55.220128Z] 14:07:55     INFO -  1504274875217	Marionette	TRACE	225 <- [1,8,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2017-09-01T14:07:55.222023Z] 14:07:55     INFO -  1504274875218	Marionette	TRACE	225 -> [0,9,"maximizeWindow",{}]
[task 2017-09-01T14:07:55.244847Z] 14:07:55     INFO -  1504274875239	Marionette	TRACE	225 <- [1,9,null,{"x":0,"y":0,"width":1600,"height":1200,"state":"maximized"}]
[task 2017-09-01T14:07:55.246107Z] 14:07:55     INFO -  1504274875241	Marionette	TRACE	225 -> [0,10,"setWindowRect",{"y":null,"x":null,"width":800,"height":600}]
[task 2017-09-01T14:07:55.305756Z] 14:07:55     INFO -  1504274875303	Marionette	TRACE	225 <- [1,10,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]

It looks like that setting a window size while leaving maximize mode at the same time returns too early. Andreas, this is your field of experience. Mind having a look? Maybe some other bug/work already covers this.
Flags: needinfo?(ato)
I wrote a length explanation in
https://bugzilla.mozilla.org/show_bug.cgi?id=1392907#c8 on why it is
impossible to ensure window manipulation commands are 100% race free
with the platform primitives currently available to us on Linux and
X.

We already throttle the sizemodechange event when leaving maximised
mode, so I’m not sure there is anything more we can do about this
that doesn’t involve a hard-coded timeout.  I would like to leave
this open and monitor the orange factor for some more time since it
seems to occur fairly infrequently at the moment.
Flags: needinfo?(ato)
https://wiki.mozilla.org/Bugmasters#Intermittent_Test_Failure_Cleanup
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Summary: Intermittent test_window_maximize.py TestWindowMaximize.test_stress | AssertionError: 800 != 1500 → Intermittent testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py TestWindowMaximize.test_stress | AssertionError: 800 != 1500
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
Status: REOPENED → RESOLVED
Closed: 7 years ago6 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → INCOMPLETE
Recent log failure:

https://treeherder.mozilla.org/logviewer.html#?job_id=183733799&repo=autoland&lineNumber=27387

[task 2018-06-19T02:45:22.809Z] 02:45:22     INFO - TEST-START | testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py TestWindowMaximize.test_stress
[task 2018-06-19T02:45:22.810Z] 02:45:22     INFO -  1529376322805	Marionette	TRACE	111 <- [1,11,null,{"value":null}]
[task 2018-06-19T02:45:22.819Z] 02:45:22     INFO -  1529376322811	Marionette	DEBUG	Closed connection 111
[task 2018-06-19T02:45:22.819Z] 02:45:22     INFO -  1529376322813	Marionette	DEBUG	Accepted connection 112 from 127.0.0.1:52178
[task 2018-06-19T02:45:22.823Z] 02:45:22     INFO -  1529376322818	Marionette	TRACE	112 -> [0,1,"WebDriver:NewSession",{}]
[task 2018-06-19T02:45:22.824Z] 02:45:22     INFO -  1529376322822	Marionette	DEBUG	[2147483911] Frame script loaded
[task 2018-06-19T02:45:22.828Z] 02:45:22     INFO -  1529376322825	Marionette	DEBUG	[2147483911] Frame script registered
[task 2018-06-19T02:45:22.832Z] 02:45:22     INFO -  1529376322829	Marionette	DEBUG	[2147483935] Frame script loaded
[task 2018-06-19T02:45:22.833Z] 02:45:22     INFO -  1529376322831	Marionette	TRACE	112 <- [1,1,null,{"sessionId":"c658c0be-7acc-40b2-9e3d-c1663f224c99","capabilities":{"browserName":"firefox","browserVersion":"62.0a ... ssID":1985,"moz:profile":"/tmp/tmp5DltpV.mozrunner","moz:useNonSpecCompliantPointerOrigin":false,"moz:webdriverClick":true}}]
[task 2018-06-19T02:45:22.840Z] 02:45:22     INFO -  1529376322835	Marionette	DEBUG	[2147483935] Frame script registered
[task 2018-06-19T02:45:22.841Z] 02:45:22     INFO -  1529376322835	Marionette	TRACE	112 -> [0,2,"WebDriver:SetTimeouts",{"script":30000}]
[task 2018-06-19T02:45:22.842Z] 02:45:22     INFO -  1529376322837	Marionette	TRACE	112 <- [1,2,null,{"value":null}]
[task 2018-06-19T02:45:22.843Z] 02:45:22     INFO -  1529376322839	Marionette	TRACE	112 -> [0,3,"WebDriver:SetTimeouts",{"pageLoad":300000}]
[task 2018-06-19T02:45:22.845Z] 02:45:22     INFO -  1529376322841	Marionette	TRACE	112 <- [1,3,null,{"value":null}]
[task 2018-06-19T02:45:22.846Z] 02:45:22     INFO -  1529376322844	Marionette	TRACE	112 -> [0,4,"WebDriver:SetTimeouts",{"implicit":0}]
[task 2018-06-19T02:45:22.850Z] 02:45:22     INFO -  1529376322846	Marionette	TRACE	112 <- [1,4,null,{"value":null}]
[task 2018-06-19T02:45:22.851Z] 02:45:22     INFO -  1529376322848	Marionette	TRACE	112 -> [0,5,"WebDriver:ExecuteScript",{"scriptTimeout":null,"newSandbox":true,"args":[],"filename":"tests/testing/marionette/harness ... width: window.screen.availWidth,\n              height: window.screen.availHeight,\n            }","sandbox":null,"line":18}]
[task 2018-06-19T02:45:22.859Z] 02:45:22     INFO -  1529376322855	Marionette	TRACE	112 <- [1,5,null,{"value":{"width":1600,"height":1200}}]
[task 2018-06-19T02:45:22.860Z] 02:45:22     INFO -  1529376322856	Marionette	TRACE	112 -> [0,6,"WebDriver:SetWindowRect",{"y":null,"x":null,"width":1500,"height":1100}]
[task 2018-06-19T02:45:22.868Z] 02:45:22     INFO -  1529376322862	Marionette	TRACE	112 <- [1,6,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2018-06-19T02:45:22.868Z] 02:45:22     INFO -  1529376322863	Marionette	TRACE	112 -> [0,7,"WebDriver:GetWindowRect",{}]
[task 2018-06-19T02:45:22.868Z] 02:45:22     INFO -  1529376322865	Marionette	TRACE	112 <- [1,7,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2018-06-19T02:45:22.871Z] 02:45:22     INFO -  1529376322867	Marionette	TRACE	112 -> [0,8,"WebDriver:MaximizeWindow",{}]
[task 2018-06-19T02:45:22.900Z] 02:45:22     INFO -  1529376322898	Marionette	TRACE	112 <- [1,8,null,{"x":0,"y":0,"width":1600,"height":1200,"state":"maximized"}]
[task 2018-06-19T02:45:22.908Z] 02:45:22     INFO -  1529376322904	Marionette	TRACE	112 -> [0,9,"WebDriver:SetWindowRect",{"y":null,"x":null,"width":800,"height":600}]
[task 2018-06-19T02:45:23.038Z] 02:45:23     INFO -  1529376323032	Marionette	TRACE	112 <- [1,9,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2018-06-19T02:45:23.039Z] 02:45:23     INFO -  1529376323035	Marionette	TRACE	112 -> [0,10,"Marionette:GetContext",{}]
[task 2018-06-19T02:45:23.039Z] 02:45:23     INFO -  1529376323036	Marionette	TRACE	112 <- [1,10,null,{"value":"content"}]
[task 2018-06-19T02:45:23.047Z] 02:45:23     INFO -  1529376323040	Marionette	TRACE	112 -> [0,11,"Marionette:SetContext",{"value":"chrome"}]
[task 2018-06-19T02:45:23.048Z] 02:45:23     INFO -  1529376323041	Marionette	TRACE	112 <- [1,11,null,{"value":null}]
[task 2018-06-19T02:45:23.048Z] 02:45:23     INFO -  1529376323042	Marionette	TRACE	112 -> [0,12,"WebDriver:TakeScreenshot",{"highlights":null,"full":true,"hash":false,"id":null,"scroll":true}]
[task 2018-06-19T02:45:23.130Z] 02:45:23     INFO -  1529376323127	Marionette	TRACE	112 <- [1,12,null,{"value":"iVBORw0KGgoAAAANSUhEUgAABdwAAARMCAYAAACDJFGTAAAgAElEQVR4nOzd32vc953vcV8u9P8oeNlCSpecQgttWTgLIbB7ctF0Swmc ... gDAAAAAMBAuAMAAAAAwEC4AwAAAADAQLgDAAAAAMBAuAMAAAAAwEC4AwAAAADAQLgDAAAAAMBAuAMAAAAAwEC4AwAAAADAIB9IbPs6vZkXAAAAAElFTkSuQmCC"}]
[task 2018-06-19T02:45:23.132Z] 02:45:23     INFO -  1529376323129	Marionette	TRACE	112 -> [0,13,"Marionette:SetContext",{"value":"content"}]
[task 2018-06-19T02:45:23.132Z] 02:45:23     INFO -  1529376323130	Marionette	TRACE	112 <- [1,13,null,{"value":null}]
[task 2018-06-19T02:45:23.136Z] 02:45:23     INFO -  1529376323132	Marionette	TRACE	112 -> [0,14,"Marionette:GetContext",{}]
[task 2018-06-19T02:45:23.137Z] 02:45:23     INFO -  1529376323133	Marionette	TRACE	112 <- [1,14,null,{"value":"content"}]
[task 2018-06-19T02:45:23.138Z] 02:45:23     INFO -  1529376323134	Marionette	TRACE	112 -> [0,15,"Marionette:SetContext",{"value":"content"}]
[task 2018-06-19T02:45:23.138Z] 02:45:23     INFO -  1529376323134	Marionette	TRACE	112 <- [1,15,null,{"value":null}]
[task 2018-06-19T02:45:23.139Z] 02:45:23     INFO -  1529376323135	Marionette	TRACE	112 -> [0,16,"WebDriver:GetPageSource",{}]
[task 2018-06-19T02:45:23.166Z] 02:45:23     INFO - TEST-UNEXPECTED-FAIL | testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py TestWindowMaximize.test_stress | AssertionError: 800 != 1500
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → INCOMPLETE
This is still happening.

Recent failure: https://treeherder.mozilla.org/logviewer.html#?job_id=191812161&repo=autoland&lineNumber=27625


[task 2018-08-03T08:06:20.905Z] 08:06:20     INFO - TEST-START | testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py TestWindowMaximize.test_stress
[task 2018-08-03T08:06:20.905Z] 08:06:20     INFO -  1533283580890	Marionette	TRACE	111 <- [1,11,null,{"value":null}]
[task 2018-08-03T08:06:20.913Z] 08:06:20     INFO -  1533283580906	Marionette	DEBUG	Closed connection 111
[task 2018-08-03T08:06:20.915Z] 08:06:20     INFO -  1533283580908	Marionette	DEBUG	Accepted connection 112 from 127.0.0.1:60756
[task 2018-08-03T08:06:20.915Z] 08:06:20     INFO -  1533283580910	Marionette	TRACE	112 -> [0,1,"WebDriver:NewSession",{}]
[task 2018-08-03T08:06:20.931Z] 08:06:20     INFO -  1533283580922	Marionette	DEBUG	[2147483935] Frame script loaded
[task 2018-08-03T08:06:20.933Z] 08:06:20     INFO -  1533283580924	Marionette	DEBUG	[2147483935] Frame script registered
[task 2018-08-03T08:06:20.935Z] 08:06:20     INFO -  1533283580928	Marionette	DEBUG	[2147483911] Frame script loaded
[task 2018-08-03T08:06:20.937Z] 08:06:20     INFO -  1533283580930	Marionette	DEBUG	[2147483911] Frame script registered
[task 2018-08-03T08:06:20.950Z] 08:06:20     INFO -  1533283580944	Marionette	TRACE	112 <- [1,1,null,{"sessionId":"b07bb434-ea48-4312-a181-fc4a49247a87","capabilities":{"browserName":"firefox","browserVersion":"63.0a ... ssID":2132,"moz:profile":"/tmp/tmpi01HeX.mozrunner","moz:useNonSpecCompliantPointerOrigin":false,"moz:webdriverClick":true}}]
[task 2018-08-03T08:06:20.954Z] 08:06:20     INFO -  1533283580948	Marionette	TRACE	112 -> [0,2,"WebDriver:SetTimeouts",{"script":30000}]
[task 2018-08-03T08:06:20.956Z] 08:06:20     INFO -  1533283580952	Marionette	TRACE	112 <- [1,2,null,{"value":null}]
[task 2018-08-03T08:06:20.965Z] 08:06:20     INFO -  1533283580959	Marionette	TRACE	112 -> [0,3,"WebDriver:SetTimeouts",{"pageLoad":300000}]
[task 2018-08-03T08:06:20.967Z] 08:06:20     INFO -  1533283580960	Marionette	TRACE	112 <- [1,3,null,{"value":null}]
[task 2018-08-03T08:06:20.969Z] 08:06:20     INFO -  1533283580962	Marionette	TRACE	112 -> [0,4,"WebDriver:SetTimeouts",{"implicit":0}]
[task 2018-08-03T08:06:20.971Z] 08:06:20     INFO -  1533283580964	Marionette	TRACE	112 <- [1,4,null,{"value":null}]
[task 2018-08-03T08:06:20.980Z] 08:06:20     INFO -  1533283580973	Marionette	TRACE	112 -> [0,5,"WebDriver:ExecuteScript",{"scriptTimeout":null,"newSandbox":true,"args":[],"filename":"tests/testing/marionette/harness ... width: window.screen.availWidth,\n              height: window.screen.availHeight,\n            }","sandbox":null,"line":18}]
[task 2018-08-03T08:06:20.988Z] 08:06:20     INFO -  1533283580984	Marionette	TRACE	112 <- [1,5,null,{"value":{"width":1600,"height":1200}}]
[task 2018-08-03T08:06:20.989Z] 08:06:20     INFO -  1533283580986	Marionette	TRACE	112 -> [0,6,"WebDriver:SetWindowRect",{"y":null,"x":null,"width":1500,"height":1100}]
[task 2018-08-03T08:06:21.007Z] 08:06:21     INFO -  1533283580995	Marionette	TRACE	112 <- [1,6,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2018-08-03T08:06:21.009Z] 08:06:21     INFO -  1533283580997	Marionette	TRACE	112 -> [0,7,"WebDriver:GetWindowRect",{}]
[task 2018-08-03T08:06:21.011Z] 08:06:21     INFO -  1533283580999	Marionette	TRACE	112 <- [1,7,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2018-08-03T08:06:21.014Z] 08:06:21     INFO -  1533283581001	Marionette	TRACE	112 -> [0,8,"WebDriver:MaximizeWindow",{}]
[task 2018-08-03T08:06:21.048Z] 08:06:21     INFO -  1533283581038	Marionette	TRACE	112 <- [1,8,null,{"x":0,"y":0,"width":1600,"height":1200,"state":"maximized"}]
[task 2018-08-03T08:06:21.052Z] 08:06:21     INFO -  1533283581044	Marionette	TRACE	112 -> [0,9,"WebDriver:SetWindowRect",{"y":null,"x":null,"width":800,"height":600}]
[task 2018-08-03T08:06:21.196Z] 08:06:21     INFO -  1533283581188	Marionette	TRACE	112 <- [1,9,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2018-08-03T08:06:21.199Z] 08:06:21     INFO -  1533283581192	Marionette	TRACE	112 -> [0,10,"Marionette:GetContext",{}]
[task 2018-08-03T08:06:21.201Z] 08:06:21     INFO -  1533283581193	Marionette	TRACE	112 <- [1,10,null,{"value":"content"}]
[task 2018-08-03T08:06:21.203Z] 08:06:21     INFO -  1533283581194	Marionette	TRACE	112 -> [0,11,"Marionette:SetContext",{"value":"chrome"}]
[task 2018-08-03T08:06:21.205Z] 08:06:21     INFO -  1533283581195	Marionette	TRACE	112 <- [1,11,null,{"value":null}]
[task 2018-08-03T08:06:21.222Z] 08:06:21     INFO -  1533283581208	Marionette	TRACE	112 -> [0,12,"WebDriver:TakeScreenshot",{"highlights":null,"full":true,"hash":false,"id":null,"scroll":true}]
[task 2018-08-03T08:06:21.305Z] 08:06:21     INFO -  1533283581299	Marionette	TRACE	112 <- [1,12,null,{"value":"iVBORw0KGgoAAAANSUhEUgAABdwAAARMCAYAAACDJFGTAAAgAElEQVR4nOzd32vc953vcV8u9P8oeNlCSpecQgvdZWEvQmC3uWhKSQPb ... AAAAAD4Q4AAAAAAAPhDgAAAAAAA+EOAAAAAAAD4Q4AAAAAAAPhDgAAAAAAA+EOAAAAAAAD4Q4AAAAAAAPhDgAAAAAAgwBpa7lHSewngAAAAABJRU5ErkJggg=="}]
[task 2018-08-03T08:06:21.306Z] 08:06:21     INFO -  1533283581301	Marionette	TRACE	112 -> [0,13,"Marionette:SetContext",{"value":"content"}]
[task 2018-08-03T08:06:21.307Z] 08:06:21     INFO -  1533283581301	Marionette	TRACE	112 <- [1,13,null,{"value":null}]
[task 2018-08-03T08:06:21.308Z] 08:06:21     INFO -  1533283581302	Marionette	TRACE	112 -> [0,14,"Marionette:GetContext",{}]
[task 2018-08-03T08:06:21.310Z] 08:06:21     INFO -  1533283581302	Marionette	TRACE	112 <- [1,14,null,{"value":"content"}]
[task 2018-08-03T08:06:21.313Z] 08:06:21     INFO -  1533283581305	Marionette	TRACE	112 -> [0,15,"Marionette:SetContext",{"value":"content"}]
[task 2018-08-03T08:06:21.316Z] 08:06:21     INFO -  1533283581305	Marionette	TRACE	112 <- [1,15,null,{"value":null}]
[task 2018-08-03T08:06:21.317Z] 08:06:21     INFO -  1533283581313	Marionette	TRACE	112 -> [0,16,"WebDriver:GetPageSource",{}]
[task 2018-08-03T08:06:21.326Z] 08:06:21     INFO -  1533283581320	Marionette	TRACE	112 <- [1,16,null,{"value":"<html><head>\n<title>Marionette New Tab Link</title>\n</head>\n<body>\n  <a href=\"empty.html\" id=\"new ... javascript:window.open(&quot;empty.html&quot;, null, &quot;location=1,toolbar=1&quot;);\">New Window</a>\n\n</body></html>"}]
[task 2018-08-03T08:06:21.328Z] 08:06:21     INFO -  1533283581321	Marionette	TRACE	112 -> [0,17,"Marionette:SetContext",{"value":"content"}]
[task 2018-08-03T08:06:21.330Z] 08:06:21     INFO -  1533283581322	Marionette	TRACE	112 <- [1,17,null,{"value":null}]
[task 2018-08-03T08:06:21.355Z] 08:06:21     INFO - TEST-UNEXPECTED-FAIL | testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py TestWindowMaximize.test_stress | AssertionError: 800 != 1500
[task 2018-08-03T08:06:21.355Z] 08:06:21     INFO - Traceback (most recent call last):
[task 2018-08-03T08:06:21.356Z] 08:06:21     INFO -   File "/builds/worker/workspace/build/venv/lib/python2.7/site-packages/marionette_harness/marionette_test/testcases.py", line 159, in run
[task 2018-08-03T08:06:21.357Z] 08:06:21     INFO -     testMethod()
[task 2018-08-03T08:06:21.358Z] 08:06:21     INFO -   File "/builds/worker/workspace/build/tests/marionette/tests/testing/marionette/harness/marionette_harness/tests/unit/test_window_maximize.py", line 83, in test_stress
[task 2018-08-03T08:06:21.359Z] 08:06:21     INFO -     self.assertEqual(800, rect["width"])
[task 2018-08-03T08:06:21.360Z] 08:06:21     INFO - TEST-INFO took 429ms
[task 2018-08-03T08:06:21.361Z] 08:06:21     INFO -  1533283581332	Marionette	TRACE	112 -> [0,18,"WebDriver:SetWindowRect",{"y":null,"x":null,"width":1500,"height":1100}]
[task 2018-08-03T08:06:21.361Z] 08:06:21     INFO -  1533283581340	Marionette	TRACE	112 <- [1,18,null,{"x":0,"y":0,"width":1500,"height":1100,"state":"normal"}]
[task 2018-08-03T08:06:21.362Z] 08:06:21     INFO -  1533283581341	Marionette	TRACE	112 -> [0,19,"WebDriver:DeleteSession",{}]
[task 2018-08-03T08:06:21.363Z] 08:06:21     INFO -  1533283581350	Marionette	TRACE	112 <- [1,19,null,{"value":null}]
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → INCOMPLETE
Recent log failure:
https://treeherder.mozilla.org/logviewer.html#?job_id=200783672&repo=mozilla-beta&lineNumber=27662
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
closing as not been seen in a while
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → WORKSFORME
No, because the test was removed by bug 1492499 about three weeks ago.
Resolution: WORKSFORME → INVALID
Product: Testing → Remote Protocol
Moving bug to Testing::Marionette Client and Harness component per bug 1815831.
Component: Marionette → Marionette Client and Harness
Product: Remote Protocol → Testing
You need to log in before you can comment on or make changes to this bug.