Remove logic for downloading a content_shell from npm_test.js

This logic was used to download a content_shell from a remote location
when trying to run a test. However, we should only be using local
versions when running tests.

R=yangguo@chromium.org

Bug: 1087379
Change-Id: I134f007e4fe29ce59e23bf03b176631f19c9555c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2224798
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
diff --git a/scripts/npm_test.js b/scripts/npm_test.js
index a35bab8..c2e6e44 100644
--- a/scripts/npm_test.js
+++ b/scripts/npm_test.js
@@ -5,7 +5,6 @@
 const childProcess = require('child_process');
 const fs = require('fs');
 const path = require('path');
-const shell = require('child_process').execSync;
 const utils = require('./utils');
 
 const Flags = {
@@ -19,12 +18,8 @@
 const IS_DEBUG_ENABLED =
     utils.includes(process.argv, Flags.DEBUG_DEVTOOLS) || utils.includes(process.argv, Flags.DEBUG_DEVTOOLS_SHORTHAND);
 const CUSTOM_CHROMIUM_PATH = utils.parseArgs(process.argv)[Flags.CHROMIUM_PATH];
-const IS_FETCH_CONTENT_SHELL = utils.includes(process.argv, Flags.FETCH_CONTENT_SHELL);
 const TARGET = utils.parseArgs(process.argv)[Flags.TARGET] || 'Release';
 
-const CONTENT_SHELL_ZIP = 'content-shell.zip';
-const MAX_CONTENT_SHELLS = 10;
-const PLATFORM = getPlatform();
 const PYTHON = process.platform === 'win32' ? 'python.bat' : 'python';
 
 const CURRENT_PATH = process.env.PWD || process.cwd();  // Using env.PWD to account for symlinks.
@@ -34,76 +29,22 @@
 const BLINK_TEST_PATH = path.resolve(CHROMIUM_SRC_PATH, 'third_party', 'blink', 'tools', 'run_web_tests.py');
 const DEVTOOLS_PATH = path.resolve(CHROMIUM_SRC_PATH, 'third_party', 'devtools-frontend', 'src');
 const CACHE_PATH = path.resolve(DEVTOOLS_PATH, '.test_cache');
-const SOURCE_PATH = path.resolve(DEVTOOLS_PATH, 'front_end');
 
 function main() {
   if (!utils.isDir(CACHE_PATH)) {
     fs.mkdirSync(CACHE_PATH);
   }
-  deleteOldContentShells();
 
   const hasUserCompiledContentShell = utils.isFile(getContentShellBinaryPath(RELEASE_PATH));
-  if (!IS_FETCH_CONTENT_SHELL && hasUserCompiledContentShell) {
-    const outDir = path.resolve(RELEASE_PATH, '..');
-    if (!IS_DEBUG_ENABLED) {
-      compileFrontend();
-    }
-
-    runTests(outDir, IS_DEBUG_ENABLED);
+  if (!hasUserCompiledContentShell) {
     return;
   }
+  const outDir = path.resolve(RELEASE_PATH, '..');
 
-  findPreviousUploadedPosition(findMostRecentChromiumCommit())
-    .then(onUploadedCommitPosition)
-    .catch(onError);
-
-  function onError(error) {
-    console.log('Unable to run tests because of error:', error);
-    console.log(`Try removing the .test_cache folder [${CACHE_PATH}] and retrying`);
-  }
+  runTests(outDir, IS_DEBUG_ENABLED);
 }
 main();
 
-function compileFrontend() {
-  console.log('Compiling devtools frontend');
-  try {
-    shell(`ninja -C ${RELEASE_PATH} devtools_frontend_resources`, {cwd: CHROMIUM_SRC_PATH});
-  } catch (err) {
-    console.log(err.stdout.toString());
-    console.log('ERROR: Cannot compile frontend\n' + err);
-    process.exit(1);
-  }
-}
-
-function onUploadedCommitPosition(commitPosition) {
-  const contentShellDirPath = path.resolve(CACHE_PATH, commitPosition, 'out', TARGET);
-  const contentShellResourcesPath = path.resolve(contentShellDirPath, 'resources');
-  const contentShellPath = path.resolve(CACHE_PATH, commitPosition, 'out');
-
-  const hasCachedContentShell = utils.isFile(getContentShellBinaryPath(contentShellDirPath));
-  if (hasCachedContentShell) {
-    console.log(`Using cached content shell at: ${contentShellPath}`);
-    copyFrontend(contentShellResourcesPath);
-    return runTests(contentShellPath, true);
-  }
-  const url = `http://commondatastorage.googleapis.com/chromium-browser-snapshots/${PLATFORM}/${commitPosition
-  }/${CONTENT_SHELL_ZIP}`;
-  return prepareContentShellDirectory(commitPosition)
-      .then(() => downloadContentShell(url, commitPosition))
-      .then(extractContentShell)
-      .then(() => copyFrontend(contentShellResourcesPath))
-      .then(() => runTests(contentShellPath, true));
-}
-
-function copyFrontend(contentShellResourcesPath) {
-  const devtoolsResourcesPath = path.resolve(contentShellResourcesPath, 'inspector');
-  const copiedFrontendPath = path.resolve(devtoolsResourcesPath, 'front_end');
-  const debugFrontendPath = path.resolve(devtoolsResourcesPath, 'debug');
-  utils.removeRecursive(copiedFrontendPath);
-  utils.removeRecursive(debugFrontendPath);
-  utils.copyRecursive(SOURCE_PATH, devtoolsResourcesPath);
-  fs.renameSync(copiedFrontendPath, debugFrontendPath);
-}
 
 function getChromiumSrcPath(isThirdParty) {
   if (isThirdParty)
@@ -124,118 +65,6 @@
   return srcPath;
 }
 
-function getPlatform() {
-  if (process.platform === 'linux') {
-    return 'Linux_x64';
-  }
-  if (process.platform === 'win32') {
-    return 'Win_x64';
-  }
-  if (process.platform === 'darwin') {
-    return 'Mac';
-  }
-
-  throw new Error(`Unrecognized platform detected: ${process.platform}`);
-}
-
-function findMostRecentChromiumCommit() {
-  const commitMessage = shell('git log --max-count=1 --grep="Cr-Commit-Position"').toString().trim();
-  const commitPosition = commitMessage.match(/Cr-Commit-Position: refs\/heads\/master@\{#([0-9]+)\}/)[1];
-  return commitPosition;
-}
-
-function deleteOldContentShells() {
-  const files = fs.readdirSync(CACHE_PATH);
-  if (files.length < MAX_CONTENT_SHELLS) {
-    return;
-  }
-  files.sort((a, b) => parseInt(b, 10) - parseInt(a, 10));
-  const remainingNumberOfContentShells = MAX_CONTENT_SHELLS / 2;
-  const oldContentShellDirs = files.slice(remainingNumberOfContentShells);
-  for (let i = 0; i < oldContentShellDirs.length; i++) {
-    utils.removeRecursive(path.resolve(CACHE_PATH, oldContentShellDirs[i]));
-  }
-  console.log(`Removed old content shells: ${oldContentShellDirs}`);
-}
-
-function findPreviousUploadedPosition(commitPosition) {
-  const previousPosition = commitPosition - 100;
-  const positionsListURL =
-      `http://commondatastorage.googleapis.com/chromium-browser-snapshots/?delimiter=/&prefix=${PLATFORM
-  }/&marker=${PLATFORM}/${previousPosition}/`;
-  return utils.fetch(positionsListURL).then(onPositionsList).catch(onError);
-
-  function onPositionsList(buffer) {
-    const positions = buffer.toString('binary')
-                        .match(/([^<>]+)(?=<\/Prefix><\/CommonPrefixes>)/g)
-                        .map(prefixedPosition => prefixedPosition.split('/')[1])
-                        .map(positionString => parseInt(positionString, 10));
-    const positionSet = new Set(positions);
-    let previousUploadedPosition = commitPosition;
-    while (commitPosition - previousUploadedPosition < 100) {
-      if (positionSet.has(previousUploadedPosition)) {
-        return previousUploadedPosition.toString();
-      }
-      previousUploadedPosition--;
-    }
-    onError();
-  }
-
-  function onError(error) {
-    if (error) {
-      console.log(`Received error: ${error} trying to fetch positions list from url: ${positionsListURL}`);
-    }
-    throw new Error(`Unable to find a previous upload position for commit position: ${commitPosition}`);
-  }
-}
-
-async function prepareContentShellDirectory(folder) {
-  const contentShellPath = path.join(CACHE_PATH, folder);
-  if (utils.isDir(contentShellPath)) {
-    utils.removeRecursive(contentShellPath);
-  }
-  fs.mkdirSync(contentShellPath);
-  return folder;
-}
-
-function downloadContentShell(url, folder) {
-  console.log('Downloading content shell from:', url);
-  console.log('NOTE: Download is ~35-65 MB depending on OS');
-  return utils.fetch(url).then(writeZip).catch(onError);
-
-  function writeZip(buffer) {
-    console.log('Completed download of content shell');
-    const contentShellZipPath = path.join(CACHE_PATH, folder, CONTENT_SHELL_ZIP);
-    fs.writeFileSync(contentShellZipPath, buffer);
-    return contentShellZipPath;
-  }
-
-  function onError(error) {
-    console.log(`Received error: ${error} trying to download content shell from url: ${url}`);
-    throw new Error('Unable to download content shell');
-  }
-}
-
-function extractContentShell(contentShellZipPath) {
-  console.log(`Extracting content shell zip: ${contentShellZipPath}`);
-  const unzipScriptPath = path.resolve(__dirname, 'unzip.py');
-  const src = contentShellZipPath;
-  const dest = path.resolve(path.dirname(src), 'out');
-  shell(`${PYTHON} ${unzipScriptPath} ${src} ${dest}`);
-  fs.unlinkSync(src);
-  const originalDirPath = path.resolve(dest, 'content-shell');
-  const newDirPath = path.resolve(dest, TARGET);
-  fs.renameSync(originalDirPath, newDirPath);
-  fs.chmodSync(getContentShellBinaryPath(newDirPath), '755');
-  if (process.platform === 'darwin') {
-    const helperPath = path.resolve(
-        newDirPath, 'Content Shell.app', 'Contents', 'Frameworks', 'Content Shell Helper.app', 'Contents', 'MacOS',
-        'Content Shell Helper');
-    fs.chmodSync(helperPath, '755');
-  }
-  return dest;
-}
-
 function getContentShellBinaryPath(dirPath) {
   if (process.platform === 'linux') {
     return path.resolve(dirPath, 'content_shell');