Closed
Bug 1368636
Opened 8 years ago
Closed 8 years ago
Lightnint "event window" is greyed and almost empty
Categories
(Calendar :: General, defect)
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 1355635
People
(Reporter: nicolas.saudemont, Unassigned)
Details
Attachments
(2 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Steps to reproduce:
open an existing event or try to create one (double click on an event or in an empty space within the calendar)
Actual results:
The popup window is almost empty : only 4~5 menus and ~4 buttons, all greyed out (non clickable).
Not a single field (updatable or not)
I got it on an Ubuntu 16.04 (x64) but a friend on Windows is having the same issue with the same versions (Thunderbird 52 and lightning 5.4)
Expected results:
Normal window (ie non greyed out) with either fields to fill for a new event or information for existing event.
Reporter | ||
Comment 1•8 years ago
|
||
Actually it doesn't happen for an already existing event : only when trying to create a new one.
The thunderbird console displays this :
TypeError: window.calendarItem is undefined[Learn More] calendar-dialog-utils.js:402:1
getCurrentCalendar chrome://calendar/content/calendar-dialog-utils.js:402:1
eventDialogOverlay.onLoad chrome://obet/content/obel/eventDialogOverlay.js:45:20
<anonymous> chrome://obet/content/obel/eventDialogOverlay.js:186:3
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Reporter | ||
Comment 2•8 years ago
|
||
screenshot from the TB console when trying to create a new event by double-clicking
Comment 3•8 years ago
|
||
This is a known error caused by Oracle Beehive Extensions for Thunderbird (obet). Workaround: Disable the extension or enable the edit in tab option.
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
Reporter | ||
Comment 4•8 years ago
|
||
(In reply to Stefan Sitter from comment #3)
> This is a known error caused by Oracle Beehive Extensions for Thunderbird
> (obet). Workaround: Disable the extension or enable the edit in tab option.
Thanks a lot Stefan. I'll try to find the contact at Oracle to have them know about the issue as it's obviously on their side.
Comment 5•8 years ago
|
||
I've contacted someone at Oracle and let them know of the issue, thanks for the offer though!
Comment 6•8 years ago
|
||
I think window.calendarItem is initialized in the onLoad() handler in lightning-item-iframe.js:
https://dxr.mozilla.org/comm-central/source/calendar/lightning/content/lightning-item-iframe.js#321
This functionality is probably triggered by the onLoad() handler of the event dialog itself:
https://dxr.mozilla.org/comm-central/source/calendar/base/content/dialogs/calendar-event-dialog.xul#34
Based on the call stack it seems that the Oracle Beehive extension has its own onLoad() handler. Maybe this onLoad() handler is called before Lightnings onLoad() handler? And therefore window.calendarItem is not yet set up? The Exchange EWS Provider extension might use a similar mechanism because it reports the same error (see bug 1364155, bug 1366718).
Philipp, can we ensure that Lightnings onLoad() handler is called first? Or do we have some guidance for the extension developers on how to correctly implement onLoad() handler or a suitable replacement?
Flags: needinfo?(philipp)
The undefined value of window.calendarItem is also the cause of bug 1355151 so it should be a Lightning issue.
The patch for that bug didn't fix the real cause, i.e. window.calendarItem is still undefined in Lightning (see bug 1355151 comment 3) but was applied a kind of workaround, basically window.calendarItem was changed with
window.arguments[0].calendarEvent
that should be the same variable as set inside onLoad() function:
https://dxr.mozilla.org/comm-central/source/calendar/lightning/content/lightning-item-iframe.js#258
Comment 8•8 years ago
|
||
Since event-in-a-tab, there are two windows in window mode for the event dialog (summary dialog and event tab don't have this). An outer window (calendar-event-dialog.xul and lightning-item-panel.js), which contains the menu bar, and an inner window (lightning-item-iframe.xul/js), which is loaded in an iframe of the outer. The inner window is shared between window and tab mode, while the outer is for window mode only. See [1] for the documentation of the event-in-a-tab implementation.
If you look at getCurrentCalendar() from the stack trace in comment 1, it seems it is called in context of the outer window.
We could change that to look either for the inner or an outer window for such property - I wouldn't like to add an additional property to the outer window. This may be enough to fix this specific issue, but this depends what obet (or other extensions) intend to do when overlaying the dialog.
[1] https://wiki.mozilla.org/Calendar:Event_in_a_Tab/documentation
Updated•6 years ago
|
Flags: needinfo?(philipp)
You need to log in
before you can comment on or make changes to this bug.
Description
•