OSDN Git Service

Version 0.6.166, fix X.XHR.GadgetProxy.
authoritozyun <itozyun@user.sourceforge.jp>
Wed, 24 Jun 2015 11:12:09 +0000 (20:12 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Wed, 24 Jun 2015 11:12:09 +0000 (20:12 +0900)
0.6.x/js/06_net/05_XXHRGadget.js
0.6.x/js/06_net/10_XOAuth2.js

index d65f2c0..7a9d4d2 100644 (file)
@@ -48,7 +48,7 @@ var X_NET_GIMR_canUse         = 5.5 <= X_UA[ 'IE' ] || !X_UA[ 'IE' ],
 \r
 function X_NET_GIMR_detectImageOverIframe(){\r
        var raw = this[ '_rawObject' ],\r
-               iwin, ret, n, error, data = null, zero, e;\r
+               iwin, ret, n;\r
        \r
        if( raw ){\r
                iwin = raw.contentWindow || ( raw.contentDocument && raw.contentDocument.parentWindow ) || window.frames[ X_NET_GIMR_iframeName ];\r
@@ -94,45 +94,14 @@ function X_NET_GIMR_detectImageOverIframe(){
                                                        X_NET_GIMR_receivedString = X_Net_GIMR_decodeLocationHash( ret );\r
                                                };\r
 \r
-                                               ret = X_String_parseTrustedJsonString( X_NET_GIMR_receivedString );\r
-                                               \r
-                                               \r
+                                               X_NET_GIMRWrapper[ 'asyncDispatch' ]( X_String_parseTrustedJsonString( X_NET_GIMR_receivedString ) );\r
                                                X_NET_GIMR_receivedString = '';\r
-                                               \r
-                                               error = ret[ 'errors' ] && ret[ 'errors' ].length;\r
-                                               \r
-                                               switch( !error && X_NET_GIMR_requestOriginal[ 'dataType' ] ){\r
-                                                       case 'json' :\r
-                                                               data = X_String_parseTrustedJsonString( ret[ 'json' ] || ret[ 'text' ] || '' );\r
-                                                               break;\r
-                                               };\r
-                                               \r
-                                               //console.dir( data || ret );\r
-                                               \r
-                                               X_NET_GIMRWrapper._busy = false;\r
-                                               \r
-                                               if( error || ret[ 'rc' ] < 200 || 400 < ret[ 'rc' ] ){\r
-                                                       e = {\r
-                                                               type      : X_EVENT_ERROR,\r
-                                                               status    : ret[ 'rc' ] || ret[ 'code' ] || 400,\r
-                                                               'message' : error && ret[ 'errors' ].join( '\n' )\r
-                                                       };\r
-                                               } else {\r
-                                                       e = {\r
-                                                               type      : X_EVENT_SUCCESS,\r
-                                                               status    : ret[ 'rc' ] || 200,\r
-                                                               response  : data\r
-                                                       };\r
-                                               };\r
-                                               \r
-                                               e[ 'headers' ] = ret[ 'headers' ];\r
-                                               \r
-                                               X_NET_GIMRWrapper[ 'asyncDispatch' ]( e );\r
-                                               \r
                                                //console.dir( e );\r
 \r
+                                               X_NET_GIMRWrapper._busy = false;\r
                                                X_NET_GIMR_timerID = X_NET_GIMR_phase = 0;\r
-                                               X_NET_GIMR_lastHashString = '';                                                 \r
+\r
+                                               X_NET_GIMR_lastHashString = '';\r
                                                iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_';\r
                                                \r
                                                return X_Callback_UN_LISTEN;\r
@@ -159,8 +128,10 @@ X_TEMP.X_Net_GIMR_init = function(){
                                                        X_JSON_stringify( {\r
                                                                'img'  : X_URL_toAbsolutePath( X_NET_GIMR_IMAGE_URL ),\r
                                                                'len'  : X_NET_GIMR_maxQueryLength,\r
-                                                               'itvl' : 333,\r
-                                                               'gck'  : X_UA[ 'Gecko' ] ? 1 : 0\r
+                                                               'itv'  : 333,\r
+                                                               'gck'  : X_UA[ 'Gecko' ] ? 1 : 0,\r
+                                                               'err'  : X_EVENT_ERROR,\r
+                                                               'suc'  : X_EVENT_SUCCESS\r
                                                        } )\r
                                                ),\r
                                        scrolling         : 'no',\r
index 5bb2c1c..fb9206a 100644 (file)
@@ -55,6 +55,7 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ](
                                var expires_at;
                                
                                obj = X_Object_clone( obj );
+                               obj[ 'refreshMargin' ] = obj[ 'refreshMargin' ] || 300000;
                                
                                X_Pair_create( this, obj );
                                
@@ -62,7 +63,7 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ](
                                obj.updateRequest = X_NET_OAUTH2_updateRequest;                         
                                
                                if( X_OAuth2_getAccessToken( this ) && ( expires_at = X_OAuth2_getAccessTokenExpiry( this ) ) ){
-                                       if( expires_at < X_Timer_now() + ( obj[ 'refreshMargin' ] || 300000 ) ){ // 寿命が5分を切った
+                                       if( expires_at < X_Timer_now() + obj[ 'refreshMargin' ] ){ // 寿命が5分を切った
                                                this[ 'refreshToken' ]();
                                        } else {
                                                obj.oauth2State = 4;
@@ -114,7 +115,7 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ](
                                                        'response_type' : 'code',
                                                        'client_id'     : pair[ 'clientID' ],
                                                        'redirect_uri'  : pair[ 'redirectURI' ],
-                                                       'scope'         : ( pair[ 'scopes' ] || []).join(' ')
+                                                       'scope'         : ( pair[ 'scopes' ] || [] ).join(' ')
                                                }
                                        ),
                                        'oauthauthorize',
@@ -147,8 +148,14 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ](
                                };
                                
                                // http://kojikoji75.hatenablog.com/entry/2013/12/15/223839
-                               X_NET_OAUTH2_authorizationWindow && X_NET_OAUTH2_authorizationWindow.open( 'about:blank', '_self' ).close();
-                               X_NET_OAUTH2_authorizationWindow  = null;
+                               if( X_NET_OAUTH2_authorizationWindow ){
+                                       if( 9 < X_UA[ 'IEHost' ] ){
+                                               X_NET_OAUTH2_authorizationWindow.close();
+                                       } else {
+                                               X_NET_OAUTH2_authorizationWindow.open( 'about:blank', '_self' ).close();
+                                       };
+                                       X_NET_OAUTH2_authorizationWindow  = null;                                       
+                               };
                                
                                X_NET_OAUTH2_authorizationTimerID && X_Timer_remove( X_NET_OAUTH2_authorizationTimerID );
                                X_NET_OAUTH2_authorizationTimerID = 0;
@@ -226,7 +233,11 @@ function X_Net_OAuth2_detectAuthPopup(){
                pair      = X_Pair_get( this );
                pair.code = X_URL_ParamToObj( search.slice( 1 ) )[ 'code' ];
 
-               X_NET_OAUTH2_authorizationWindow.open( 'about:blank', '_self' ).close();
+               if( 9 < X_UA[ 'IEHost' ] ){
+                       X_NET_OAUTH2_authorizationWindow.close();
+               } else {
+                       X_NET_OAUTH2_authorizationWindow.open( 'about:blank', '_self' ).close();
+               };
                closed = true;
 
                X_Net_OAuth2_authorizationCode( this, pair );
@@ -286,7 +297,7 @@ function X_Net_OAuth2_responceHandler( e ){
                        };
                        
                        X_OAuth2_setAccessToken( this, data[ 'access_token' ] || '' );
-                       X_OAuth2_setRefreshToken( this, data[ 'refresh_token' ] || '' );
+                       ( !isRefresh || data[ 'refresh_token' ] ) && X_OAuth2_setRefreshToken( this, data[ 'refresh_token' ] || '' );
                        
                        if( data[ 'expires_in' ] ){
                                X_OAuth2_setAccessTokenExpiry( this, X_Timer_now() + data[ 'expires_in' ] * 1000 );
@@ -298,8 +309,8 @@ function X_Net_OAuth2_responceHandler( e ){
                        pair.oauth2State = 4;
                        
                        if( pair.lazyRequests && pair.lazyRequests.length ){
-                               X_NET_QUEUE_LIST.push.apply( X_NET_QUEUE_LIST, pair.lazyRequests );
-                               pair.lazyRequests.length = 0;                           
+                               //X_NET_QUEUE_LIST.push.apply( X_NET_QUEUE_LIST, pair.lazyRequests );
+                               //pair.lazyRequests.length = 0;                         
                        };
 
                        this[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, message : isRefresh ? 'Refresh access token success.' : 'Get new access token success.' } );