\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
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
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
var expires_at;
obj = X_Object_clone( obj );
+ obj[ 'refreshMargin' ] = obj[ 'refreshMargin' ] || 300000;
X_Pair_create( this, obj );
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;
'response_type' : 'code',
'client_id' : pair[ 'clientID' ],
'redirect_uri' : pair[ 'redirectURI' ],
- 'scope' : ( pair[ 'scopes' ] || []).join(' ')
+ 'scope' : ( pair[ 'scopes' ] || [] ).join(' ')
}
),
'oauthauthorize',
};
// 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;
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 );
};
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 );
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.' } );