@@ -24,6 +24,21 @@ define('login',
2424 notification . notification ( { message : gettext ( 'You have been signed in' ) } ) ;
2525 }
2626
27+ function logOut ( ) {
28+ cache . flush_signed ( ) ;
29+ user . clear_token ( ) ;
30+
31+ z . body . removeClass ( 'logged-in' ) ;
32+ z . page . trigger ( 'reload_chrome' ) . trigger ( 'before_logout' ) ;
33+ if ( ! z . context . dont_reload_on_login ) {
34+ z . page . trigger ( 'logged_out' ) ;
35+ signOutNotification ( ) ;
36+ require ( 'views' ) . reload ( ) ;
37+ } else {
38+ console . log ( 'Reload on logout aborted by current view' ) ;
39+ }
40+ }
41+
2742 z . body . on ( 'click' , '.persona' , function ( e ) {
2843 e . preventDefault ( ) ;
2944
@@ -36,25 +51,14 @@ define('login',
3651 } ) . on ( 'click' , '.logout' , utils . _pd ( function ( e ) {
3752 requests . del ( urls . api . url ( 'logout' ) ) ;
3853
39- cache . flush_signed ( ) ;
40- user . clear_token ( ) ;
41-
4254 if ( capabilities . persona ( ) ) {
4355 console . log ( 'Triggering Persona logout' ) ;
4456 navigator . id . logout ( ) ;
4557 }
46-
47- z . body . removeClass ( 'logged-in' ) ;
48- z . page . trigger ( 'reload_chrome' ) . trigger ( 'before_logout' ) ;
49- // Moved here from the onlogout callback for now until
50- // https://github.com/mozilla/browserid/issues/3229
51- // gets fixed.
52- if ( ! z . context . dont_reload_on_login ) {
53- z . page . trigger ( 'logged_out' ) ;
54- signOutNotification ( ) ;
55- require ( 'views' ) . reload ( ) ;
56- } else {
57- console . log ( 'Reload on logout aborted by current view' ) ;
58+ if ( 'email' in settings ) {
59+ // navigator.id callback didn't log us out, let's do it now.
60+ // see https://github.com/mozilla/browserid/issues/3229
61+ logOut ( ) ;
5862 }
5963 } ) ) ;
6064
@@ -265,10 +269,7 @@ define('login',
265269 loggedInUser : email ,
266270 onready : function ( ) { } ,
267271 onlogin : gotVerifiedEmail ,
268- onlogout : function ( ) {
269- z . body . removeClass ( 'logged-in' ) ;
270- z . page . trigger ( 'reload_chrome' ) . trigger ( 'logout' ) ;
271- }
272+ onlogout : logOut
272273 } ;
273274 if ( capabilities . nativeFxA ( ) ) {
274275 opts . wantIssuer = 'firefox-accounts' ;
0 commit comments