mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-01 05:43:46 +00:00
bug 883346 permissions support for standalone chat window, r=felipe
This commit is contained in:
parent
969230ff7c
commit
b0289891cb
@ -287,59 +287,6 @@
|
|||||||
|
|
||||||
<menupopup id="placesContext"/>
|
<menupopup id="placesContext"/>
|
||||||
|
|
||||||
<panel id="notification-popup"
|
|
||||||
type="arrow"
|
|
||||||
footertype="promobox"
|
|
||||||
position="after_start"
|
|
||||||
hidden="true"
|
|
||||||
orient="vertical"
|
|
||||||
role="alert"/>
|
|
||||||
|
|
||||||
<!-- Popup for site identity information -->
|
|
||||||
<panel id="identity-popup"
|
|
||||||
type="arrow"
|
|
||||||
hidden="true"
|
|
||||||
noautofocus="true"
|
|
||||||
consumeoutsideclicks="true"
|
|
||||||
onpopupshown="gIdentityHandler.onPopupShown(event);"
|
|
||||||
level="top">
|
|
||||||
<hbox id="identity-popup-container" align="top">
|
|
||||||
<image id="identity-popup-icon"/>
|
|
||||||
<vbox id="identity-popup-content-box">
|
|
||||||
<label id="identity-popup-connectedToLabel"
|
|
||||||
class="identity-popup-label"
|
|
||||||
value="&identity.connectedTo;"/>
|
|
||||||
<label id="identity-popup-connectedToLabel2"
|
|
||||||
class="identity-popup-label"
|
|
||||||
value="&identity.unverifiedsite2;"/>
|
|
||||||
<description id="identity-popup-content-host"
|
|
||||||
class="identity-popup-description"/>
|
|
||||||
<label id="identity-popup-runByLabel"
|
|
||||||
class="identity-popup-label"
|
|
||||||
value="&identity.runBy;"/>
|
|
||||||
<description id="identity-popup-content-owner"
|
|
||||||
class="identity-popup-description"/>
|
|
||||||
<description id="identity-popup-content-supplemental"
|
|
||||||
class="identity-popup-description"/>
|
|
||||||
<description id="identity-popup-content-verifier"
|
|
||||||
class="identity-popup-description"/>
|
|
||||||
<hbox id="identity-popup-encryption" flex="1">
|
|
||||||
<vbox>
|
|
||||||
<image id="identity-popup-encryption-icon"/>
|
|
||||||
</vbox>
|
|
||||||
<description id="identity-popup-encryption-label" flex="1"
|
|
||||||
class="identity-popup-description"/>
|
|
||||||
</hbox>
|
|
||||||
<!-- Footer button to open security page info -->
|
|
||||||
<hbox id="identity-popup-button-container" pack="end">
|
|
||||||
<button id="identity-popup-more-info-button"
|
|
||||||
label="&identity.moreInfoLinkText;"
|
|
||||||
onblur="gIdentityHandler.hideIdentityPopup();"
|
|
||||||
oncommand="gIdentityHandler.handleMoreInfoClick(event);"/>
|
|
||||||
</hbox>
|
|
||||||
</vbox>
|
|
||||||
</hbox>
|
|
||||||
</panel>
|
|
||||||
|
|
||||||
<panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top">
|
<panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top">
|
||||||
<hbox>
|
<hbox>
|
||||||
@ -382,57 +329,7 @@
|
|||||||
#endif
|
#endif
|
||||||
</tooltip>
|
</tooltip>
|
||||||
|
|
||||||
<popupnotification id="webRTC-shareDevices-notification" hidden="true">
|
#include popup-notifications.inc
|
||||||
<popupnotificationcontent id="webRTC-selectCamera" orient="vertical">
|
|
||||||
<separator class="thin"/>
|
|
||||||
<label value="&getUserMedia.selectCamera.label;"
|
|
||||||
accesskey="&getUserMedia.selectCamera.accesskey;"
|
|
||||||
control="webRTC-selectCamera-menulist"/>
|
|
||||||
<menulist id="webRTC-selectCamera-menulist">
|
|
||||||
<menupopup id="webRTC-selectCamera-menupopup"/>
|
|
||||||
</menulist>
|
|
||||||
</popupnotificationcontent>
|
|
||||||
<popupnotificationcontent id="webRTC-selectMicrophone" orient="vertical">
|
|
||||||
<separator class="thin"/>
|
|
||||||
<label value="&getUserMedia.selectMicrophone.label;"
|
|
||||||
accesskey="&getUserMedia.selectMicrophone.accesskey;"
|
|
||||||
control="webRTC-selectMicrophone-menulist"/>
|
|
||||||
<menulist id="webRTC-selectMicrophone-menulist">
|
|
||||||
<menupopup id="webRTC-selectMicrophone-menupopup"/>
|
|
||||||
</menulist>
|
|
||||||
</popupnotificationcontent>
|
|
||||||
</popupnotification>
|
|
||||||
|
|
||||||
<popupnotification id="geolocation-notification" hidden="true">
|
|
||||||
<popupnotificationcontent orient="vertical" align="start">
|
|
||||||
<separator class="thin"/>
|
|
||||||
<label id="geolocation-learnmore-link" class="text-link"/>
|
|
||||||
</popupnotificationcontent>
|
|
||||||
</popupnotification>
|
|
||||||
|
|
||||||
<popupnotification id="servicesInstall-notification" hidden="true">
|
|
||||||
<popupnotificationcontent orient="vertical" align="start">
|
|
||||||
<separator class="thin"/>
|
|
||||||
<label id="servicesInstall-learnmore-link" class="text-link"/>
|
|
||||||
</popupnotificationcontent>
|
|
||||||
</popupnotification>
|
|
||||||
|
|
||||||
<popupnotification id="pointerLock-notification" hidden="true">
|
|
||||||
<popupnotificationcontent orient="vertical" align="start">
|
|
||||||
<separator class="thin"/>
|
|
||||||
<label id="pointerLock-cancel" value="&pointerLock.notification.message;"/>
|
|
||||||
</popupnotificationcontent>
|
|
||||||
</popupnotification>
|
|
||||||
|
|
||||||
<popupnotification id="mixed-content-blocked-notification" hidden="true">
|
|
||||||
<popupnotificationcontent orient="vertical" align="start">
|
|
||||||
<separator/>
|
|
||||||
<description id="mixed-content-blocked-moreinfo">&mixedContentBlocked.moreinfo;</description>
|
|
||||||
<separator/>
|
|
||||||
<label id="mixed-content-blocked-helplink" class="text-link"
|
|
||||||
value="&mixedContentBlocked.helplink;"/>
|
|
||||||
</popupnotificationcontent>
|
|
||||||
</popupnotification>
|
|
||||||
|
|
||||||
</popupset>
|
</popupset>
|
||||||
|
|
||||||
|
@ -61,6 +61,21 @@ var gChatWindow = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// define a popupnotifications handler for this window. we don't use
|
||||||
|
// an iconbox here, and only support the browser frame for chat.
|
||||||
|
XPCOMUtils.defineLazyGetter(this, "PopupNotifications", function () {
|
||||||
|
let tmp = {};
|
||||||
|
Cu.import("resource://gre/modules/PopupNotifications.jsm", tmp);
|
||||||
|
try {
|
||||||
|
return new tmp.PopupNotifications(document.getElementById("chatter").content,
|
||||||
|
document.getElementById("notification-popup"),
|
||||||
|
null);
|
||||||
|
} catch (ex) {
|
||||||
|
console.error(ex);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
#include browser-sets.inc
|
#include browser-sets.inc
|
||||||
@ -82,6 +97,9 @@ var gChatWindow = {
|
|||||||
gContextMenu = null;">
|
gContextMenu = null;">
|
||||||
#include browser-context.inc
|
#include browser-context.inc
|
||||||
</menupopup>
|
</menupopup>
|
||||||
|
|
||||||
|
#include popup-notifications.inc
|
||||||
|
|
||||||
</popupset>
|
</popupset>
|
||||||
|
|
||||||
<commandset id="editMenuCommands"/>
|
<commandset id="editMenuCommands"/>
|
||||||
|
108
browser/base/content/popup-notifications.inc
Normal file
108
browser/base/content/popup-notifications.inc
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
# to be included inside a popupset element
|
||||||
|
|
||||||
|
<panel id="notification-popup"
|
||||||
|
type="arrow"
|
||||||
|
footertype="promobox"
|
||||||
|
position="after_start"
|
||||||
|
hidden="true"
|
||||||
|
orient="vertical"
|
||||||
|
role="alert"/>
|
||||||
|
|
||||||
|
<!-- Popup for site identity information -->
|
||||||
|
<panel id="identity-popup"
|
||||||
|
type="arrow"
|
||||||
|
hidden="true"
|
||||||
|
noautofocus="true"
|
||||||
|
consumeoutsideclicks="true"
|
||||||
|
onpopupshown="gIdentityHandler.onPopupShown(event);"
|
||||||
|
level="top">
|
||||||
|
<hbox id="identity-popup-container" align="top">
|
||||||
|
<image id="identity-popup-icon"/>
|
||||||
|
<vbox id="identity-popup-content-box">
|
||||||
|
<label id="identity-popup-connectedToLabel"
|
||||||
|
class="identity-popup-label"
|
||||||
|
value="&identity.connectedTo;"/>
|
||||||
|
<label id="identity-popup-connectedToLabel2"
|
||||||
|
class="identity-popup-label"
|
||||||
|
value="&identity.unverifiedsite2;"/>
|
||||||
|
<description id="identity-popup-content-host"
|
||||||
|
class="identity-popup-description"/>
|
||||||
|
<label id="identity-popup-runByLabel"
|
||||||
|
class="identity-popup-label"
|
||||||
|
value="&identity.runBy;"/>
|
||||||
|
<description id="identity-popup-content-owner"
|
||||||
|
class="identity-popup-description"/>
|
||||||
|
<description id="identity-popup-content-supplemental"
|
||||||
|
class="identity-popup-description"/>
|
||||||
|
<description id="identity-popup-content-verifier"
|
||||||
|
class="identity-popup-description"/>
|
||||||
|
<hbox id="identity-popup-encryption" flex="1">
|
||||||
|
<vbox>
|
||||||
|
<image id="identity-popup-encryption-icon"/>
|
||||||
|
</vbox>
|
||||||
|
<description id="identity-popup-encryption-label" flex="1"
|
||||||
|
class="identity-popup-description"/>
|
||||||
|
</hbox>
|
||||||
|
<!-- Footer button to open security page info -->
|
||||||
|
<hbox id="identity-popup-button-container" pack="end">
|
||||||
|
<button id="identity-popup-more-info-button"
|
||||||
|
label="&identity.moreInfoLinkText;"
|
||||||
|
onblur="gIdentityHandler.hideIdentityPopup();"
|
||||||
|
oncommand="gIdentityHandler.handleMoreInfoClick(event);"/>
|
||||||
|
</hbox>
|
||||||
|
</vbox>
|
||||||
|
</hbox>
|
||||||
|
</panel>
|
||||||
|
|
||||||
|
|
||||||
|
<popupnotification id="webRTC-shareDevices-notification" hidden="true">
|
||||||
|
<popupnotificationcontent id="webRTC-selectCamera" orient="vertical">
|
||||||
|
<separator class="thin"/>
|
||||||
|
<label value="&getUserMedia.selectCamera.label;"
|
||||||
|
accesskey="&getUserMedia.selectCamera.accesskey;"
|
||||||
|
control="webRTC-selectCamera-menulist"/>
|
||||||
|
<menulist id="webRTC-selectCamera-menulist">
|
||||||
|
<menupopup id="webRTC-selectCamera-menupopup"/>
|
||||||
|
</menulist>
|
||||||
|
</popupnotificationcontent>
|
||||||
|
<popupnotificationcontent id="webRTC-selectMicrophone" orient="vertical">
|
||||||
|
<separator class="thin"/>
|
||||||
|
<label value="&getUserMedia.selectMicrophone.label;"
|
||||||
|
accesskey="&getUserMedia.selectMicrophone.accesskey;"
|
||||||
|
control="webRTC-selectMicrophone-menulist"/>
|
||||||
|
<menulist id="webRTC-selectMicrophone-menulist">
|
||||||
|
<menupopup id="webRTC-selectMicrophone-menupopup"/>
|
||||||
|
</menulist>
|
||||||
|
</popupnotificationcontent>
|
||||||
|
</popupnotification>
|
||||||
|
|
||||||
|
<popupnotification id="geolocation-notification" hidden="true">
|
||||||
|
<popupnotificationcontent orient="vertical" align="start">
|
||||||
|
<separator class="thin"/>
|
||||||
|
<label id="geolocation-learnmore-link" class="text-link"/>
|
||||||
|
</popupnotificationcontent>
|
||||||
|
</popupnotification>
|
||||||
|
|
||||||
|
<popupnotification id="servicesInstall-notification" hidden="true">
|
||||||
|
<popupnotificationcontent orient="vertical" align="start">
|
||||||
|
<separator class="thin"/>
|
||||||
|
<label id="servicesInstall-learnmore-link" class="text-link"/>
|
||||||
|
</popupnotificationcontent>
|
||||||
|
</popupnotification>
|
||||||
|
|
||||||
|
<popupnotification id="pointerLock-notification" hidden="true">
|
||||||
|
<popupnotificationcontent orient="vertical" align="start">
|
||||||
|
<separator class="thin"/>
|
||||||
|
<label id="pointerLock-cancel" value="&pointerLock.notification.message;"/>
|
||||||
|
</popupnotificationcontent>
|
||||||
|
</popupnotification>
|
||||||
|
|
||||||
|
<popupnotification id="mixed-content-blocked-notification" hidden="true">
|
||||||
|
<popupnotificationcontent orient="vertical" align="start">
|
||||||
|
<separator/>
|
||||||
|
<description id="mixed-content-blocked-moreinfo">&mixedContentBlocked.moreinfo;</description>
|
||||||
|
<separator/>
|
||||||
|
<label id="mixed-content-blocked-helplink" class="text-link"
|
||||||
|
value="&mixedContentBlocked.helplink;"/>
|
||||||
|
</popupnotificationcontent>
|
||||||
|
</popupnotification>
|
@ -144,6 +144,7 @@
|
|||||||
<body><![CDATA[
|
<body><![CDATA[
|
||||||
aTarget.setAttribute('label', this.contentDocument.title);
|
aTarget.setAttribute('label', this.contentDocument.title);
|
||||||
aTarget.content.setAttribute("origin", this.content.getAttribute("origin"));
|
aTarget.content.setAttribute("origin", this.content.getAttribute("origin"));
|
||||||
|
aTarget.content.popupnotificationanchor.className = this.content.popupnotificationanchor.className;
|
||||||
this.content.socialErrorListener.remove();
|
this.content.socialErrorListener.remove();
|
||||||
this.content.swapDocShells(aTarget.content);
|
this.content.swapDocShells(aTarget.content);
|
||||||
Social.setErrorListener(this.content, function(aBrowser) {
|
Social.setErrorListener(this.content, function(aBrowser) {
|
||||||
|
@ -59,8 +59,6 @@ Notification.prototype = {
|
|||||||
|
|
||||||
get anchorElement() {
|
get anchorElement() {
|
||||||
let iconBox = this.owner.iconBox;
|
let iconBox = this.owner.iconBox;
|
||||||
if (!iconBox)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
let anchorElement = null;
|
let anchorElement = null;
|
||||||
let anchor = this.browser.getAttribute("popupnotificationanchor") ||
|
let anchor = this.browser.getAttribute("popupnotificationanchor") ||
|
||||||
@ -69,10 +67,13 @@ Notification.prototype = {
|
|||||||
if (anchor instanceof Ci.nsIDOMXULElement) {
|
if (anchor instanceof Ci.nsIDOMXULElement) {
|
||||||
anchorElement = anchor;
|
anchorElement = anchor;
|
||||||
} else {
|
} else {
|
||||||
anchorElement = iconBox.ownerDocument.getElementById(anchor);
|
anchorElement = this.browser.ownerDocument.getElementById(anchor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!iconBox)
|
||||||
|
return anchorElement;
|
||||||
|
|
||||||
if (!anchorElement && this.anchorID)
|
if (!anchorElement && this.anchorID)
|
||||||
anchorElement = iconBox.querySelector("#"+this.anchorID);
|
anchorElement = iconBox.querySelector("#"+this.anchorID);
|
||||||
|
|
||||||
@ -123,7 +124,8 @@ this.PopupNotifications = function PopupNotifications(tabbrowser, panel, iconBox
|
|||||||
this.panel.addEventListener("popuphidden", this, true);
|
this.panel.addEventListener("popuphidden", this, true);
|
||||||
|
|
||||||
this.window.addEventListener("activate", this, true);
|
this.window.addEventListener("activate", this, true);
|
||||||
this.tabbrowser.tabContainer.addEventListener("TabSelect", this, true);
|
if (this.tabbrowser.tabContainer)
|
||||||
|
this.tabbrowser.tabContainer.addEventListener("TabSelect", this, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
PopupNotifications.prototype = {
|
PopupNotifications.prototype = {
|
||||||
@ -392,7 +394,7 @@ PopupNotifications.prototype = {
|
|||||||
* Gets notifications for the currently selected browser.
|
* Gets notifications for the currently selected browser.
|
||||||
*/
|
*/
|
||||||
get _currentNotifications() {
|
get _currentNotifications() {
|
||||||
return this._getNotificationsForBrowser(this.tabbrowser.selectedBrowser);
|
return this.tabbrowser.selectedBrowser ? this._getNotificationsForBrowser(this.tabbrowser.selectedBrowser) : [];
|
||||||
},
|
},
|
||||||
|
|
||||||
_remove: function PopupNotifications_removeHelper(notification) {
|
_remove: function PopupNotifications_removeHelper(notification) {
|
||||||
|
Loading…
Reference in New Issue
Block a user