(Regarding the experimental `React.unstable_Profiler` API and reactjs/rfcs/pull/51.)

PR #13058 changed the behavior of React profiling builds to opt host roots into `ProfileMode` if the React DevTools extension is detected. This was necessary in order to have accurate tree base time measurements for the visual flame graphs.

The Profiler plug-in for DevTools does feature detection to determine if it's enabled by looking at each root and seeing if any of the fibers contain an `actualDuration` attribute,

The problem is that the `actualDuration` attribute will be present on v16.4 fibers, which pre-date PR #13058. As a result, the Profiler UI may enable itself with versions of React that it cannot work correctly with.

Perhaps an easy solution would be to rename one of the `unstable_Profiler`'s fiber attributes prior to the next minor release (e.g. `treeBaseTime` -> `treeBaseDuration`) and change the DevTools Profiler to feature check using this new name instead.
if (isRendering) {
    
    return currentSchedulerTime;
  }
   Check if there's pending work.
  findHighestPriorityRoot();
  if (
    nextFlushedExpirationTime === NoWork ||
    nextFlushedExpirationTime === Never
  ) {
    
    
    recomputeCurrentRendererTime();
    currentSchedulerTime = currentRendererTime;
    return currentSchedulerTime;
  }
   There's already pending work. We might be in the middle of a browser
   event. If we were to read the current time, it could cause multiple updates
   within the same event to receive different expiration times, leading to
   tearing. Return the last read time. During the next idle callback, the
   time will be updated.
  return currentSchedulerTime;
}
function requestWork(root: FiberRoot, expirationTime: ExpirationTime) {
  addRootToSchedule(root, expirationTime);
  if (isRendering) {
    
    
    return;