[DateTimePicker] Make DateTimePicker Fission-aware

RESOLVED FIXED in Firefox 69

Status

()

enhancement
P3
normal
RESOLVED FIXED
10 months ago
9 days ago

People

(Reporter: Felipe, Assigned: ablayelyfondou)

Tracking

(Blocks 1 bug)

Trunk
mozilla69
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Fission Milestone:M4, firefox64 wontfix, firefox69 fixed)

Details

Attachments

(2 attachments)

The DateTimePickerParent should be able to directly communicate with the DateTimePickerChild related to the subframe where the MozOpenDateTimePicker event happened
By using the API from bug 1493984 and setting allFrames=true we can establish a direct communication between the actor in the subframe and the DateTimePickerParent.
I chose the DateTimePicker as a proof of concept since it's a simple case. This demonstrates how the changes from bug 1490810 and bug 1493984 can be used to fix code to be more future-proof for Fission.

These changes don't break the normal operation of the DateTimePicker, but it now works properly with browser.fission.simulate=true too
Priority: -- → P3
Pushed by fgomes@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7005723d76c7
Make the DateTimePicker Fission-aware. r=mconley
Backed out for failing mochitest and bc

Push that started the failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=7005723d76c7d3215255c75f6eddedf627b153a1

Failure logs:

mochitest: https://treeherder.mozilla.org/logviewer.html#?job_id=209255627&repo=autoland&lineNumber=7452

[task 2018-11-01T19:56:14.383Z] 19:56:14     INFO - TEST-START | dom/indexedDB/test/test_event_listener_leaks.html
[task 2018-11-01T19:56:14.644Z] 19:56:14     INFO - TEST-INFO | started process screentopng
[task 2018-11-01T19:56:15.503Z] 19:56:15     INFO - TEST-INFO | screentopng: exit 0
[task 2018-11-01T19:56:15.505Z] 19:56:15     INFO - Buffered messages logged at 19:56:14
[task 2018-11-01T19:56:15.506Z] 19:56:15     INFO - TEST-PASS | dom/indexedDB/test/test_event_listener_leaks.html | should be able to create a weak reference - IDB default 
[task 2018-11-01T19:56:15.507Z] 19:56:15     INFO - Buffered messages finished
[task 2018-11-01T19:56:15.509Z] 19:56:15     INFO - TEST-UNEXPECTED-FAIL | dom/indexedDB/test/test_event_listener_leaks.html | iframe content window should be garbage collected - IDB default 
[task 2018-11-01T19:56:15.510Z] 19:56:15     INFO -     SimpleTest.ok@SimpleTest/SimpleTest.js:275:7
[task 2018-11-01T19:56:15.513Z] 19:56:15     INFO -     _eventListenerLeakStep@dom/events/test/event_leak_utils.js:80:3
[task 2018-11-01T19:56:15.515Z] 19:56:15     INFO -     async*checkForEventListenerLeaks@dom/events/test/event_leak_utils.js:23:9
[task 2018-11-01T19:56:15.516Z] 19:56:15     INFO -     async*runTest@dom/indexedDB/test/test_event_listener_leaks.html:50:11
[task 2018-11-01T19:56:15.517Z] 19:56:15     INFO -     EventListener.handleEvent*@dom/indexedDB/test/test_event_listener_leaks.html:59:1
[task 2018-11-01T19:56:15.518Z] 19:56:15     INFO - TEST-PASS | dom/indexedDB/test/test_event_listener_leaks.html | should be able to create a weak reference - IDB bfcache 
[task 2018-11-01T19:56:15.519Z] 19:56:15     INFO - TEST-PASS | dom/indexedDB/test/test_event_listener_leaks.html | iframe content window should be garbage collected - IDB bfcache 
[task 2018-11-01T19:56:15.520Z] 19:56:15     INFO - TEST-PASS | dom/indexedDB/test/test_event_listener_leaks.html | should be able to create a weak reference - IDB document.open() 
[task 2018-11-01T19:56:15.521Z] 19:56:15     INFO - Not taking screenshot here: see the one that was previously logged
[task 2018-11-01T19:56:15.522Z] 19:56:15     INFO - TEST-UNEXPECTED-FAIL | dom/indexedDB/test/test_event_listener_leaks.html | iframe content window should be garbage collected - IDB document.open() 
[task 2018-11-01T19:56:15.524Z] 19:56:15     INFO -     SimpleTest.ok@SimpleTest/SimpleTest.js:275:7
[task 2018-11-01T19:56:15.526Z] 19:56:15     INFO -     _eventListenerLeakStep@dom/events/test/event_leak_utils.js:80:3
[task 2018-11-01T19:56:15.527Z] 19:56:15     INFO -     async*checkForEventListenerLeaks@dom/events/test/event_leak_utils.js:36:9
[task 2018-11-01T19:56:15.529Z] 19:56:15     INFO -     async*runTest@dom/indexedDB/test/test_event_listener_leaks.html:50:11
[task 2018-11-01T19:56:15.530Z] 19:56:15     INFO -     EventListener.handleEvent*@dom/indexedDB/test/test_event_listener_leaks.html:59:1
[task 2018-11-01T19:56:15.531Z] 19:56:15     INFO - GECKO(4269) | MEMORY STAT | vsize 1472MB | residentFast 117MB | heapAllocated 13MB
[task 2018-11-01T19:56:15.532Z] 19:56:15     INFO - TEST-OK | dom/indexedDB/test/test_event_listener_leaks.html | took 680ms

BC: https://treeherder.mozilla.org/logviewer.html#?job_id=209262433&repo=autoland&lineNumber=7558

3:31:59     INFO - TEST-START | toolkit/content/tests/browser/browser_datetime_datepicker.js
13:32:44     INFO - TEST-INFO | started process screencapture
13:32:44     INFO - TEST-INFO | screencapture: exit 0
13:32:44     INFO - Buffered messages logged at 13:31:59
13:32:44     INFO - Entering test bound test_datepicker_today
13:32:44     INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "data:text/html, <input type='date'>" line: 0}]
13:32:44     INFO - Buffered messages finished
13:32:44     INFO - TEST-UNEXPECTED-FAIL | toolkit/content/tests/browser/browser_datetime_datepicker.js | Test timed out - 
13:32:44     INFO - Not taking screenshot here: see the one that was previously logged
13:32:44     INFO - TEST-UNEXPECTED-FAIL | toolkit/content/tests/browser/browser_datetime_datepicker.js | Cleanup function threw an exception - at chrome://mochitests/content/browser/toolkit/content/tests/browser/head.js:221 - TypeError: this.frame is null; can't access its "remove" property
13:32:44     INFO - GECKO(1234) | MEMORY STAT | vsize 4464MB | residentFast 366MB | heapAllocated 99MB
13:32:44     INFO - TEST-OK | toolkit/content/tests/browser/browser_datetime_datepicker.js | took 45058ms
13:32:44     INFO - Not taking screenshot here: see the one that was previously logged
13:32:44     INFO - TEST-UNEXPECTED-FAIL | toolkit/content/tests/browser/browser_datetime_datepicker.js | Found a tab after previous test timed out: data:text/html, <input type='date'> - 
13:32:44     INFO - checking window state

Backout: https://hg.mozilla.org/integration/autoland/rev/37545337e03d38cb4f545c14d99550d110c15376
Flags: needinfo?(felipc)
(I'll look at what caused the failure when I get back to this bug)
Flags: needinfo?(felipc)

Unassigning for now as this is for a future milestone

Assignee: felipc → nobody
Status: ASSIGNED → NEW
Fission Milestone: --- → Future
Assignee: nobody → mconley

Were you looking to pick this up, Abdoulaye?

Assignee: mconley → nobody
Flags: needinfo?(ablayelyfondou)

Yes, I would like to take it. Do you mind if I do so? I see that you have an ongoing work here!

Flags: needinfo?(ablayelyfondou) → needinfo?(mconley)

Not at all, please do!

Assignee: nobody → ablayelyfondou
Flags: needinfo?(mconley)
Fission Milestone: Future → M3
Attachment #9070272 - Attachment description: Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?Neil → Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?NeilDeakin
Attachment #9070272 - Attachment description: Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?NeilDeakin → Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?Neil
Attachment #9070272 - Attachment description: Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?Neil → Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?NeilDeakin
Fission Milestone: M3 → M4
Attachment #9070272 - Attachment description: Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?NeilDeakin → Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?Neil
Attachment #9070272 - Attachment description: Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?Neil → Bug 1497280 - [Fission] Make DateTimePicker works with JSWindowActor. r?Neil,mconley
Pushed by neil@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/dc987632b5bb
[Fission] Make DateTimePicker works with JSWindowActor. r=NeilDeakin,mconley
Backout by malexandru@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2fb6fcfd4958
Backed out changeset dc987632b5bb for causing geckoview failures in MediaElementTest. CLOSED TREE
Pushed by neil@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9c9fc94799da
[Fission] Make DateTimePicker works with JSWindowActor. r=NeilDeakin,mconley
Status: NEW → RESOLVED
Closed: 16 days ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/2d6811274bb1
Port bug 1497280 - Stop referencing DateTimePickerParent.jsm from mailGlue.js; rs=me
You need to log in before you can comment on or make changes to this bug.