anchor.diff:      serverManipulate = serverRoot.resolve("manipulate");
       serverTakeScreenshot = serverRoot.resolve("take_screenshot");
   
  -    availableObjectsChecker =
  -        new Timer.periodic(MILLISECOND * (1000 * interval), (Timer timer) {
  -      updateAvailableObjects();
  -    });
  +    runLater(updateAvailableObjectsIntervalMs,
  +        updateAvailableObjectsPeriodically);
       addCollapseButtons();
       updateCollapsedSections();
       handleObjects(serverGetObjects);
  
positive.code:     clientRoot = Uri.parse(window.location.href);
      var interval = clientRoot.queryParameters["interval"];
      interval = interval != null ? double.parse(interval) : 1.0;
      serverRoot = clientRoot.resolve("/");
      serverGetObjects = serverRoot.resolve("get_objects");
      serverGetNewObjects = serverRoot.resolve("get_new_objects");
  
negative.code:   final List<String> availableObjects = new ObservableList<String>();
    Set<String> availableObjectSet = new Set<String>();
    Timer availableObjectsChecker;
    int updateAvailableObjectsIntervalMs;
  
    // Object handlers.
    static final Map<String, Function> OBJECT_HANDLERS = <String, Function>{
  