/**
  * Retrieves a gadget specification from the Internet, processes its views and
  * adds it to the cache.
  */
 private function fetchFromWeb($url, $ignoreCache)
 {
     $remoteContentRequest = new RemoteContentRequest($url);
     $remoteContentRequest->getRequest($url, $ignoreCache);
     $spec = $this->fetcher->fetchRequest($remoteContentRequest);
     $specParser = new GadgetSpecParser();
     $context = new ProxyGadgetContext($url);
     $gadgetSpec = $specParser->parse($spec->getResponseContent(), $context);
     return $gadgetSpec;
 }