Skip to content
This repository has been archived by the owner on Dec 1, 2017. It is now read-only.

Commit

Permalink
Merge pull request #27 from mancas/bug1230946
Browse files Browse the repository at this point in the history
Bug 1230946 - Tab sharing is unpaused when switching tabs. r=mikedeboer
  • Loading branch information
Standard8 committed Dec 23, 2015
2 parents add06f9 + f108448 commit 5a6ad7d
Showing 1 changed file with 28 additions and 12 deletions.
40 changes: 28 additions & 12 deletions add-on/chrome/bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,7 @@ var WindowListener = {
// Watch for title changes as opposed to location changes as more
// metadata about the page is available when this event fires.
gBrowser.addEventListener("DOMTitleChanged", this);
this._browserSharePaused = false;
}

this._maybeShowBrowserSharingInfoBar();
Expand All @@ -506,6 +507,7 @@ var WindowListener = {
gBrowser.tabContainer.removeEventListener("TabSelect", this);
gBrowser.removeEventListener("DOMTitleChanged", this);
this._listeningToTabSelect = false;
this._browserSharePaused = false;
},

/**
Expand Down Expand Up @@ -537,26 +539,37 @@ var WindowListener = {
}

let box = gBrowser.getNotificationBox();
let paused = false;
let pauseButtonLabel = this._getString(this._browserSharePaused ?
"infobar_button_resume_label" :
"infobar_button_pause_label");
let pauseButtonAccessKey = this._getString(this._browserSharePaused ?
"infobar_button_resume_accesskey" :
"infobar_button_pause_accesskey");
let barLabel = this._getString(this._browserSharePaused ?
"infobar_screenshare_paused_browser_message" :
"infobar_screenshare_browser_message2");
let bar = box.appendNotification(
this._getString("infobar_screenshare_browser_message2"),
barLabel,
kBrowserSharingNotificationId,
// Icon is defined in browser theme CSS.
null,
box.PRIORITY_WARNING_LOW,
[{
label: this._getString("infobar_button_pause_label"),
accessKey: this._getString("infobar_button_pause_accesskey"),
label: pauseButtonLabel,
accessKey: pauseButtonAccessKey,
isDefault: false,
callback: (event, buttonInfo, buttonNode) => {
paused = !paused;
bar.label = paused ? this._getString("infobar_screenshare_paused_browser_message") :
this._getString("infobar_screenshare_browser_message2");
bar.classList.toggle("paused", paused);
buttonNode.label = paused ? this._getString("infobar_button_resume_label") :
this._getString("infobar_button_pause_label");
buttonNode.accessKey = paused ? this._getString("infobar_button_resume_accesskey") :
this._getString("infobar_button_pause_accesskey");
this._browserSharePaused = !this._browserSharePaused;
bar.label = this._getString(this._browserSharePaused ?
"infobar_screenshare_paused_browser_message" :
"infobar_screenshare_browser_message2");
bar.classList.toggle("paused", this._browserSharePaused);
buttonNode.label = this._getString(this._browserSharePaused ?
"infobar_button_resume_label" :
"infobar_button_pause_label");
buttonNode.accessKey = this._getString(this._browserSharePaused ?
"infobar_button_resume_accesskey" :
"infobar_button_pause_accesskey");
return true;
},
type: "pause"
Expand All @@ -573,6 +586,9 @@ var WindowListener = {
}]
);

// Sets 'paused' class if needed.
bar.classList.toggle("paused", !!this._browserSharePaused);

// Keep showing the notification bar until the user explicitly closes it.
bar.persistence = -1;
},
Expand Down

0 comments on commit 5a6ad7d

Please sign in to comment.