docs: void processAddOnChanges(Window caller, AddOnDependencyChecker.AddOnChangesResult changes) {
          if (addonsDialog != null) {
              addonsDialog.setDownloadingUpdates();
          }
  
          if (getView() != null) {
              Set<AddOn> addOns = new HashSet<>(changes.getUninstalls());
              addOns.addAll(changes.getOldVersions());
  
              Set<Extension> extensions = new HashSet<>();
              extensions.addAll(changes.getUnloadExtensions());
              extensions.addAll(changes.getSoftUnloadExtensions());
  
              if (!warnUnsavedResourcesOrActiveActions(caller, addOns, extensions, true)) {
                  return;
              }
          }
  
          uninstallAddOns(caller, changes.getUninstalls(), false);
  
          Set<AddOn> allAddons = new HashSet<>(changes.getNewVersions());
          allAddons.addAll(changes.getInstalls());
  
          for (AddOn addOn : allAddons) {
              if (addonsDialog != null) {
                  addonsDialog.notifyAddOnDownloading(addOn);
              }
              downloadAddOn(addOn);
          }
      }