mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
Bug 1422106 - Show broken heart when unverified in synced tabs sidebar/panel. r=markh
MozReview-Commit-ID: BDTdmcIOHmn --HG-- extra : rebase_source : c2b534461715f8db1e6cb8bc7910311cc4ff6611
This commit is contained in:
parent
3355738c27
commit
7fabe73930
@ -477,12 +477,17 @@
|
||||
key="key_openAddons"
|
||||
command="Tools:Addons"/>
|
||||
|
||||
<!-- only one of sync-setup, sync-syncnowitem or sync-reauthitem will be showing at once -->
|
||||
<!-- only one of sync-setup, sync-unverifieditem, sync-syncnowitem or sync-reauthitem will be showing at once -->
|
||||
<menuitem id="sync-setup"
|
||||
label="&syncSignIn.label;"
|
||||
accesskey="&syncSignIn.accesskey;"
|
||||
observes="sync-setup-state"
|
||||
oncommand="gSync.openPrefs('menubar')"/>
|
||||
<menuitem id="sync-unverifieditem"
|
||||
label="&syncSignIn.label;"
|
||||
accesskey="&syncSignIn.accesskey;"
|
||||
observes="sync-unverified-state"
|
||||
oncommand="gSync.openPrefs('menubar')"/>
|
||||
<menuitem id="sync-syncnowitem"
|
||||
label="&syncSyncNowItem.label;"
|
||||
accesskey="&syncSyncNowItem.accesskey;"
|
||||
|
@ -166,6 +166,7 @@
|
||||
<!-- broadcasters of the "hidden" attribute to reflect setup state for
|
||||
menus -->
|
||||
<broadcaster id="sync-setup-state"/>
|
||||
<broadcaster id="sync-unverified-state" hidden="true"/>
|
||||
<broadcaster id="sync-syncnow-state" hidden="true"/>
|
||||
<broadcaster id="sync-reauth-state" hidden="true"/>
|
||||
<broadcaster id="viewTabsSidebar" autoCheck="false" sidebartitle="&syncedTabs.sidebar.label;"
|
||||
|
@ -218,13 +218,15 @@ var gSync = {
|
||||
document.getElementById("sync-reauth-state").hidden = true;
|
||||
document.getElementById("sync-setup-state").hidden = true;
|
||||
document.getElementById("sync-syncnow-state").hidden = true;
|
||||
document.getElementById("sync-unverified-state").hidden = true;
|
||||
|
||||
if (status == UIState.STATUS_LOGIN_FAILED) {
|
||||
// unhiding this element makes the menubar show the login failure state.
|
||||
document.getElementById("sync-reauth-state").hidden = false;
|
||||
} else if (status == UIState.STATUS_NOT_CONFIGURED ||
|
||||
status == UIState.STATUS_NOT_VERIFIED) {
|
||||
} else if (status == UIState.STATUS_NOT_CONFIGURED) {
|
||||
document.getElementById("sync-setup-state").hidden = false;
|
||||
} else if (status == UIState.STATUS_NOT_VERIFIED) {
|
||||
document.getElementById("sync-unverified-state").hidden = false;
|
||||
} else {
|
||||
document.getElementById("sync-syncnow-state").hidden = false;
|
||||
}
|
||||
|
@ -108,8 +108,8 @@ add_task(async function test_ui_state_unverified() {
|
||||
syncing: false,
|
||||
syncNowTooltip: tooltipText
|
||||
});
|
||||
checkRemoteTabsPanel("PanelUI-remotetabs-setupsync", false);
|
||||
checkMenuBarItem("sync-setup");
|
||||
checkRemoteTabsPanel("PanelUI-remotetabs-unverified", false);
|
||||
checkMenuBarItem("sync-unverifieditem");
|
||||
});
|
||||
|
||||
add_task(async function test_ui_state_loginFailed() {
|
||||
@ -176,7 +176,8 @@ function checkPanelUIStatusBar({label, tooltip, fxastatus, avatarURL, syncing, s
|
||||
function checkRemoteTabsPanel(expectedShownItemId, syncing, syncNowTooltip) {
|
||||
checkItemsVisiblities(["PanelUI-remotetabs-main",
|
||||
"PanelUI-remotetabs-setupsync",
|
||||
"PanelUI-remotetabs-reauthsync"],
|
||||
"PanelUI-remotetabs-reauthsync",
|
||||
"PanelUI-remotetabs-unverified"],
|
||||
expectedShownItemId);
|
||||
|
||||
if (syncing != undefined && syncNowTooltip != undefined) {
|
||||
@ -185,7 +186,7 @@ function checkRemoteTabsPanel(expectedShownItemId, syncing, syncNowTooltip) {
|
||||
}
|
||||
|
||||
function checkMenuBarItem(expectedShownItemId) {
|
||||
checkItemsVisiblities(["sync-setup", "sync-syncnowitem", "sync-reauthitem"],
|
||||
checkItemsVisiblities(["sync-setup", "sync-syncnowitem", "sync-reauthitem", "sync-unverifieditem"],
|
||||
expectedShownItemId);
|
||||
}
|
||||
|
||||
|
@ -491,6 +491,17 @@
|
||||
label="&appMenuRemoteTabs.signin.label;"
|
||||
oncommand="gSync.openPrefs('synced-tabs');"/>
|
||||
</vbox>
|
||||
<vbox id="PanelUI-remotetabs-unverified"
|
||||
flex="1"
|
||||
align="center"
|
||||
class="PanelUI-remotetabs-instruction-box"
|
||||
observes="sync-unverified-state">
|
||||
<image class="fxaSyncIllustrationIssue"/>
|
||||
<label class="PanelUI-remotetabs-instruction-label">&appMenuRemoteTabs.unverified.label;</label>
|
||||
<toolbarbutton class="PanelUI-remotetabs-button"
|
||||
label="&appMenuRemoteTabs.signin.label;"
|
||||
oncommand="gSync.openPrefs('synced-tabs');"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</panelview>
|
||||
|
@ -139,6 +139,13 @@ add_task(async function() {
|
||||
});
|
||||
add_task(asyncCleanup);
|
||||
|
||||
// When Sync is configured in an unverified state.
|
||||
add_task(async function() {
|
||||
gSync.updateAllUI({ status: UIState.STATUS_NOT_VERIFIED, email: "foo@bar.com" });
|
||||
await openPrefsFromMenuPanel("PanelUI-remotetabs-unverified", "synced-tabs");
|
||||
});
|
||||
add_task(asyncCleanup);
|
||||
|
||||
// When Sync is configured in a "needs reauthentication" state.
|
||||
add_task(async function() {
|
||||
gSync.updateAllUI({ status: UIState.STATUS_LOGIN_FAILED, email: "foo@bar.com" });
|
||||
|
@ -63,6 +63,7 @@ SyncedTabsDeckComponent.prototype = {
|
||||
NOT_AUTHED_INFO: "notAuthedInfo",
|
||||
SINGLE_DEVICE_INFO: "singleDeviceInfo",
|
||||
TABS_DISABLED: "tabs-disabled",
|
||||
UNVERIFIED: "unverified"
|
||||
},
|
||||
|
||||
get container() {
|
||||
@ -130,9 +131,12 @@ SyncedTabsDeckComponent.prototype = {
|
||||
|
||||
getPanelStatus() {
|
||||
return this._getSignedInUser().then(user => {
|
||||
if (!user || !user.verified || this._SyncedTabs.loginFailed) {
|
||||
if (!user || this._SyncedTabs.loginFailed) {
|
||||
return this.PANELS.NOT_AUTHED_INFO;
|
||||
}
|
||||
if (!user.verified) {
|
||||
return this.PANELS.UNVERIFIED;
|
||||
}
|
||||
if (!this._SyncedTabs.isConfiguredToSyncTabs) {
|
||||
return this.PANELS.TABS_DISABLED;
|
||||
}
|
||||
|
@ -80,6 +80,11 @@
|
||||
<p class="instructions">&syncedTabs.sidebar.notsignedin.label;</p>
|
||||
<button class="button sync-prefs">&fxaSignIn.label;</button>
|
||||
</div>
|
||||
<div class="unverified sync-state">
|
||||
<div class="syncIllustration"></div>
|
||||
<p class="instructions">&syncedTabs.sidebar.unverified.label;</p>
|
||||
<button class="button sync-prefs">&syncedTabs.sidebar.openprefs.label;</button>
|
||||
</div>
|
||||
<div class="singleDeviceInfo sync-state">
|
||||
<div class="syncIllustrationIssue"></div>
|
||||
<p class="instructions">&syncedTabs.sidebar.noclients.subtitle;</p>
|
||||
|
@ -228,6 +228,12 @@ add_task(async function testSyncedTabsSidebarStatus() {
|
||||
Assert.ok(selectedPanel.classList.contains("notAuthedInfo"),
|
||||
"not-authed panel is selected");
|
||||
|
||||
account = {verified: false};
|
||||
await syncedTabsDeckComponent.updatePanel();
|
||||
selectedPanel = syncedTabsDeckComponent.container.querySelector(".sync-state.selected");
|
||||
Assert.ok(selectedPanel.classList.contains("unverified"),
|
||||
"unverified panel is selected");
|
||||
|
||||
account = {verified: true};
|
||||
await syncedTabsDeckComponent.updatePanel();
|
||||
selectedPanel = syncedTabsDeckComponent.container.querySelector(".sync-state.selected");
|
||||
|
@ -159,7 +159,7 @@ add_task(async function testPanelStatus() {
|
||||
account = {verified: false};
|
||||
|
||||
result = await component.getPanelStatus();
|
||||
Assert.equal(result, component.PANELS.NOT_AUTHED_INFO);
|
||||
Assert.equal(result, component.PANELS.UNVERIFIED);
|
||||
|
||||
account = {verified: true};
|
||||
|
||||
|
@ -381,6 +381,7 @@ These should match what Safari and other Apple applications use on OS X Lion. --
|
||||
<!ENTITY appMenuRemoteTabs.noclients.subtitle "Want to see your tabs from other devices here?">
|
||||
<!ENTITY appMenuRemoteTabs.openprefs.label "Sync Preferences">
|
||||
<!ENTITY appMenuRemoteTabs.notsignedin.label "Sign in to view a list of tabs from your other devices.">
|
||||
<!ENTITY appMenuRemoteTabs.unverified.label "Your account needs to be verified.">
|
||||
<!ENTITY appMenuRemoteTabs.signin.label "Sign in to Sync">
|
||||
<!ENTITY appMenuRemoteTabs.managedevices.label "Manage Devices…">
|
||||
<!ENTITY appMenuRemoteTabs.sidebar.label "View Synced Tabs Sidebar">
|
||||
@ -794,6 +795,7 @@ you can use these alternative items. Otherwise, their values should be empty. -
|
||||
<!ENTITY syncedTabs.sidebar.noclients.label "Sign in to Firefox from your other devices to view their tabs here.">
|
||||
<!ENTITY syncedTabs.sidebar.noclients.subtitle "Want to see your tabs from other devices here?">
|
||||
<!ENTITY syncedTabs.sidebar.notsignedin.label "Sign in to view a list of tabs from your other devices.">
|
||||
<!ENTITY syncedTabs.sidebar.unverified.label "Your account needs to be verified.">
|
||||
<!ENTITY syncedTabs.sidebar.notabs.label "No open tabs">
|
||||
<!ENTITY syncedTabs.sidebar.openprefs.label "Open &syncBrand.shortName.label; Preferences">
|
||||
<!-- LOCALIZATION NOTE (syncedTabs.sidebar.tabsnotsyncing.label): This is shown
|
||||
|
@ -36,6 +36,7 @@ function mockSyncedTabs() {
|
||||
// configure our broadcasters so we are in the right state.
|
||||
document.getElementById("sync-reauth-state").hidden = true;
|
||||
document.getElementById("sync-setup-state").hidden = true;
|
||||
document.getElementById("sync-unverified-state").hidden = true;
|
||||
document.getElementById("sync-syncnow-state").hidden = false;
|
||||
|
||||
registerCleanupFunction(() => {
|
||||
@ -43,6 +44,7 @@ function mockSyncedTabs() {
|
||||
|
||||
document.getElementById("sync-reauth-state").hidden = true;
|
||||
document.getElementById("sync-setup-state").hidden = false;
|
||||
document.getElementById("sync-unverified-state").hidden = true;
|
||||
document.getElementById("sync-syncnow-state").hidden = true;
|
||||
});
|
||||
}
|
||||
|
@ -718,6 +718,7 @@ toolbarbutton[constrain-size="true"][cui-areatype="menu-panel"] > .toolbarbutton
|
||||
*/
|
||||
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-setupsync,
|
||||
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-reauthsync,
|
||||
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-unverified,
|
||||
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-nodevicespane,
|
||||
#PanelUI-remotetabs[mainview] #PanelUI-remotetabs-tabsdisabledpane {
|
||||
min-height: calc(var(--panel-ui-sync-illustration-height) +
|
||||
|
@ -3,7 +3,7 @@
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 173.9 156.5">
|
||||
<style>
|
||||
.st0{opacity:0.1;fill:#0C0C0D;enable-background:new ;} .st1{fill:#FFFFFF;} .st2{fill:url(#SVGID_1_);} .st3{fill:#F9F9FA;} .st4{fill:url(#SVGID_2_);} .st5{fill:url(#SVGID_3_);} .st6{fill:url(#SVGID_4_);} .st7{fill:url(#SVGID_5_);} .st8{fill:url(#SVGID_6_);} .st9{fill:url(#SVGID_7_);}
|
||||
.st0{opacity:0.1;fill:#0C0C0D;} .st1{fill:#FFFFFF;} .st2{fill:url(#SVGID_1_);} .st3{fill:#F9F9FA;} .st4{fill:url(#SVGID_2_);} .st5{fill:url(#SVGID_3_);} .st6{fill:url(#SVGID_4_);} .st7{fill:url(#SVGID_5_);} .st8{fill:url(#SVGID_6_);} .st9{fill:url(#SVGID_7_);}
|
||||
</style>
|
||||
<path class="st0" d="M140.9 152h-69c-.6 0-1-.4-1-1s.4-1 1-1H141c.6 0 1 .4 1 1s-.5 1-1.1 1zm-9.3-5.1h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-15.7 9.6h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-20 0h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5zm-7 0h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5zm-10 0h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-20 0h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5zm-7 0h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5zm-10 0h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-20 0h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5zm-7 0h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5z"/>
|
||||
<path class="st1" d="M85 20.4h21.3s-6.7-14.9 7.5-16.8c12.6-1.7 17.6 11.3 17.6 11.3s1.5-7.5 9-6.1 12.9 13.3 12.9 13.3h18.6"/>
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@ -3,7 +3,7 @@
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 173.9 156.5">
|
||||
<style>
|
||||
.st0{opacity:0.1;fill:#0C0C0D;enable-background:new ;} .st1{fill:#FFFFFF;} .st2{fill:url(#SVGID_1_);} .st3{fill:#F9F9FA;} .st4{fill:url(#SVGID_2_);} .st5{fill:url(#SVGID_3_);} .st6{fill:url(#SVGID_4_);} .st7{fill:url(#SVGID_5_);} .st8{fill:url(#SVGID_6_);} .st9{fill:url(#SVGID_7_);}
|
||||
.st0{opacity:0.1;fill:#0C0C0D;} .st1{fill:#FFFFFF;} .st2{fill:url(#SVGID_1_);} .st3{fill:#F9F9FA;} .st4{fill:url(#SVGID_2_);} .st5{fill:url(#SVGID_3_);} .st6{fill:url(#SVGID_4_);} .st7{fill:url(#SVGID_5_);} .st8{fill:url(#SVGID_6_);} .st9{fill:url(#SVGID_7_);}
|
||||
</style>
|
||||
<path class="st0" d="M140.9 152h-69c-.6 0-1-.4-1-1s.4-1 1-1H141c.6 0 1 .4 1 1s-.5 1-1.1 1zm-9.3-5.1h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-15.7 9.6h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-20 0h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5zm-7 0h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5zm-10 0h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-20 0h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5zm-7 0h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5zm-10 0h-12c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5zm-20 0h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5zm-7 0h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5z"/>
|
||||
<path class="st1" d="M85 20.4h21.3s-6.7-14.9 7.5-16.8c12.6-1.7 17.6 11.3 17.6 11.3s1.5-7.5 9-6.1 12.9 13.3 12.9 13.3h18.6"/>
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Loading…
Reference in New Issue
Block a user