Permalink
Browse files

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
  • Loading branch information...
1 parent 6d3c7b8 commit ed4db631faf0091a92179e9fd629ce06e4704d1e @yungsters yungsters committed with Facebook Github Bot 8 Jul 11, 2016
@@ -16,6 +16,8 @@ var performanceNow = require('fbjs/lib/performanceNow');
var warning = require('fbjs/lib/warning');
var Systrace = require('Systrace');
+let hasEmittedTimeDriftWarning = false;
+
/**
* JS implementation of timer functions. Must be completely driven by an
* 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) {
JSTimersExecution.timerIDs[i] = null;
JSTimersExecution.callbacks[i] = null;
@@ -17,4 +17,6 @@
public interface JSTimersExecution extends JavaScriptModule {
public void callTimers(WritableArray timerIDs);
+
+ public void emitTimeDriftWarning(String warningMessage);
}
@@ -226,11 +226,10 @@ public void createTimer(
if (mDevSupportManager.getDevSupportEnabled()) {
long driftTime = Math.abs(remoteTime - deviceTime);
if (driftTime > 60000) {
- throw new RuntimeException(
- "Debugger and device times have drifted by more than 60s." +
- "Please correct this by running adb shell " +
- "\"date `date +%m%d%H%M%Y.%S`\" on your debugger machine."
- );
+ getReactApplicationContext().getJSModule(executorToken, JSTimersExecution.class)
+ .emitTimeDriftWarning(
+ "Debugger and device times have drifted by more than 60s. Please correct this by " +
+ "running adb shell \"date `date +%m%d%H%M%Y.%S`\" on your debugger machine.");
}
}

0 comments on commit ed4db63

Please sign in to comment.