code: protected function getRemoteContents($originUrl, $fileUrl, $context, array &$responseHeaders = null)
      {
          if (isset(self::$cache[$fileUrl])) {
              $result = self::$cache[$fileUrl];
  
              if (3 < \func_num_args()) {
                  list($responseHeaders, $result) = $result;
              }
  
              return $result;
          }
  
          if (self::$cacheNext) {
              self::$cacheNext = false;
  
              if (3 < \func_num_args()) {
                  $result = $this->getRemoteContents($originUrl, $fileUrl, $context, $responseHeaders);
                  self::$cache[$fileUrl] = [$responseHeaders, $result];
              } else {
                  $result = $this->getRemoteContents($originUrl, $fileUrl, $context);
                  self::$cache[$fileUrl] = $result;
              }
  
              return $result;
          }
  
          if (!$this->downloader) {
              return parent::getRemoteContents($originUrl, $fileUrl, $context, $responseHeaders);
          }
  
          try {
              $result = $this->downloader->get($originUrl, $fileUrl, $context, $this->fileName);
  
              if (3 < \func_num_args()) {
                  list($responseHeaders, $result) = $result;
              }
  
              return $result;
          } catch (TransportException $e) {
              $this->io->writeError('Retrying download: '.$e->getMessage(), true, IOInterface::DEBUG);
  
              return parent::getRemoteContents($originUrl, $fileUrl, $context, $responseHeaders);
          } catch (\Throwable $e) {
              $responseHeaders = [];
              throw $e;
          }
      }
docs: {@inheritdoc}