RN: Change Time Drift Error into Warning
Summary: Changes the time drift error into a warning that will only get logged once per debugging session. Reviewed By: jingc Differential Revision: D3539067 fbshipit-source-id: 357db15750d867a91c39b5fc5fd6ed4ae2852bc7
This commit is contained in:
parent
6d3c7b8a4c
commit
ed4db631fa
|
@ -16,6 +16,8 @@ var performanceNow = require('fbjs/lib/performanceNow');
|
||||||
var warning = require('fbjs/lib/warning');
|
var warning = require('fbjs/lib/warning');
|
||||||
var Systrace = require('Systrace');
|
var Systrace = require('Systrace');
|
||||||
|
|
||||||
|
let hasEmittedTimeDriftWarning = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JS implementation of timer functions. Must be completely driven by an
|
* JS implementation of timer functions. Must be completely driven by an
|
||||||
* external clock signal, all that's stored here is timerID, timer type, and
|
* external clock signal, all that's stored here is timerID, timer type, and
|
||||||
|
@ -147,6 +149,17 @@ var JSTimersExecution = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called from native (in development) when environment times are out-of-sync.
|
||||||
|
*/
|
||||||
|
emitTimeDriftWarning: function(warningMessage) {
|
||||||
|
if (hasEmittedTimeDriftWarning) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
hasEmittedTimeDriftWarning = true;
|
||||||
|
console.warn(warningMessage);
|
||||||
|
},
|
||||||
|
|
||||||
_clearIndex: function(i) {
|
_clearIndex: function(i) {
|
||||||
JSTimersExecution.timerIDs[i] = null;
|
JSTimersExecution.timerIDs[i] = null;
|
||||||
JSTimersExecution.callbacks[i] = null;
|
JSTimersExecution.callbacks[i] = null;
|
||||||
|
|
|
@ -17,4 +17,6 @@ import com.facebook.react.bridge.WritableArray;
|
||||||
public interface JSTimersExecution extends JavaScriptModule {
|
public interface JSTimersExecution extends JavaScriptModule {
|
||||||
|
|
||||||
public void callTimers(WritableArray timerIDs);
|
public void callTimers(WritableArray timerIDs);
|
||||||
|
|
||||||
|
public void emitTimeDriftWarning(String warningMessage);
|
||||||
}
|
}
|
||||||
|
|
|
@ -226,11 +226,10 @@ public final class Timing extends ReactContextBaseJavaModule implements Lifecycl
|
||||||
if (mDevSupportManager.getDevSupportEnabled()) {
|
if (mDevSupportManager.getDevSupportEnabled()) {
|
||||||
long driftTime = Math.abs(remoteTime - deviceTime);
|
long driftTime = Math.abs(remoteTime - deviceTime);
|
||||||
if (driftTime > 60000) {
|
if (driftTime > 60000) {
|
||||||
throw new RuntimeException(
|
getReactApplicationContext().getJSModule(executorToken, JSTimersExecution.class)
|
||||||
"Debugger and device times have drifted by more than 60s." +
|
.emitTimeDriftWarning(
|
||||||
"Please correct this by running adb shell " +
|
"Debugger and device times have drifted by more than 60s. Please correct this by " +
|
||||||
"\"date `date +%m%d%H%M%Y.%S`\" on your debugger machine."
|
"running adb shell \"date `date +%m%d%H%M%Y.%S`\" on your debugger machine.");
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue