| Index: chrome/renderer/resources/extensions/test_custom_bindings.js | 
| diff --git a/chrome/renderer/resources/extensions/test_custom_bindings.js b/chrome/renderer/resources/extensions/test_custom_bindings.js | 
| deleted file mode 100644 | 
| index 3c5c89cde9829605f781b70fe165f47be0d1f2a3..0000000000000000000000000000000000000000 | 
| --- a/chrome/renderer/resources/extensions/test_custom_bindings.js | 
| +++ /dev/null | 
| @@ -1,353 +0,0 @@ | 
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -// test_custom_bindings.js | 
| -// mini-framework for ExtensionApiTest browser tests | 
| - | 
| -var binding = require('binding').Binding.create('test'); | 
| - | 
| -var chrome = requireNative('chrome').GetChrome(); | 
| -var GetExtensionAPIDefinitionsForTest = | 
| -    requireNative('apiDefinitions').GetExtensionAPIDefinitionsForTest; | 
| -var GetAvailability = requireNative('v8_context').GetAvailability; | 
| -var GetAPIFeatures = requireNative('test_features').GetAPIFeatures; | 
| -var uncaughtExceptionHandler = require('uncaught_exception_handler'); | 
| -var userGestures = requireNative('user_gestures'); | 
| - | 
| -binding.registerCustomHook(function(api) { | 
| -  var chromeTest = api.compiledApi; | 
| -  var apiFunctions = api.apiFunctions; | 
| - | 
| -  chromeTest.tests = chromeTest.tests || []; | 
| - | 
| -  var currentTest = null; | 
| -  var lastTest = null; | 
| -  var testsFailed = 0; | 
| -  var testCount = 1; | 
| -  var failureException = 'chrome.test.failure'; | 
| - | 
| -  // Helper function to get around the fact that function names in javascript | 
| -  // are read-only, and you can't assign one to anonymous functions. | 
| -  function testName(test) { | 
| -    return test ? (test.name || test.generatedName) : "(no test)"; | 
| -  } | 
| - | 
| -  function testDone() { | 
| -    // Use setTimeout here to allow previous test contexts to be | 
| -    // eligible for garbage collection. | 
| -    setTimeout(chromeTest.runNextTest, 0); | 
| -  } | 
| - | 
| -  function allTestsDone() { | 
| -    if (testsFailed == 0) { | 
| -      chromeTest.notifyPass(); | 
| -    } else { | 
| -      chromeTest.notifyFail('Failed ' + testsFailed + ' of ' + | 
| -                             testCount + ' tests'); | 
| -    } | 
| -  } | 
| - | 
| -  var pendingCallbacks = 0; | 
| - | 
| -  apiFunctions.setHandleRequest('callbackAdded', function() { | 
| -    pendingCallbacks++; | 
| - | 
| -    var called = null; | 
| -    return function() { | 
| -      if (called != null) { | 
| -        var redundantPrefix = 'Error\n'; | 
| -        chrome.test.fail( | 
| -          'Callback has already been run. ' + | 
| -          'First call:\n' + | 
| -          $String.slice(called, redundantPrefix.length) + '\n' + | 
| -          'Second call:\n' + | 
| -          $String.slice(new Error().stack, redundantPrefix.length)); | 
| -      } | 
| -      called = new Error().stack; | 
| - | 
| -      pendingCallbacks--; | 
| -      if (pendingCallbacks == 0) { | 
| -        chromeTest.succeed(); | 
| -      } | 
| -    }; | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('runNextTest', function() { | 
| -    // There may have been callbacks which were interrupted by failure | 
| -    // exceptions. | 
| -    pendingCallbacks = 0; | 
| - | 
| -    lastTest = currentTest; | 
| -    currentTest = chromeTest.tests.shift(); | 
| - | 
| -    if (!currentTest) { | 
| -      allTestsDone(); | 
| -      return; | 
| -    } | 
| - | 
| -    try { | 
| -      chromeTest.log("( RUN      ) " + testName(currentTest)); | 
| -      uncaughtExceptionHandler.setHandler(function(message, e) { | 
| -        if (e !== failureException) | 
| -          chromeTest.fail('uncaught exception: ' + message); | 
| -      }); | 
| -      currentTest.call(); | 
| -    } catch (e) { | 
| -      uncaughtExceptionHandler.handle(e.message, e); | 
| -    } | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('fail', function(message) { | 
| -    chromeTest.log("(  FAILED  ) " + testName(currentTest)); | 
| - | 
| -    var stack = {}; | 
| -    Error.captureStackTrace(stack, chromeTest.fail); | 
| - | 
| -    if (!message) | 
| -      message = "FAIL (no message)"; | 
| - | 
| -    message += "\n" + stack.stack; | 
| -    console.log("[FAIL] " + testName(currentTest) + ": " + message); | 
| -    testsFailed++; | 
| -    testDone(); | 
| - | 
| -    // Interrupt the rest of the test. | 
| -    throw failureException; | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('succeed', function() { | 
| -    console.log("[SUCCESS] " + testName(currentTest)); | 
| -    chromeTest.log("(  SUCCESS )"); | 
| -    testDone(); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('assertTrue', function(test, message) { | 
| -    chromeTest.assertBool(test, true, message); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('assertFalse', function(test, message) { | 
| -    chromeTest.assertBool(test, false, message); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('assertBool', | 
| -                                function(test, expected, message) { | 
| -    if (test !== expected) { | 
| -      if (typeof(test) == "string") { | 
| -        if (message) | 
| -          message = test + "\n" + message; | 
| -        else | 
| -          message = test; | 
| -      } | 
| -      chromeTest.fail(message); | 
| -    } | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('checkDeepEq', function(expected, actual) { | 
| -    if ((expected === null) != (actual === null)) | 
| -      return false; | 
| - | 
| -    if (expected === actual) | 
| -      return true; | 
| - | 
| -    if (typeof(expected) !== typeof(actual)) | 
| -      return false; | 
| - | 
| -    for (var p in actual) { | 
| -      if ($Object.hasOwnProperty(actual, p) && | 
| -          !$Object.hasOwnProperty(expected, p)) { | 
| -        return false; | 
| -      } | 
| -    } | 
| -    for (var p in expected) { | 
| -      if ($Object.hasOwnProperty(expected, p) && | 
| -          !$Object.hasOwnProperty(actual, p)) { | 
| -        return false; | 
| -      } | 
| -    } | 
| - | 
| -    for (var p in expected) { | 
| -      var eq = true; | 
| -      switch (typeof(expected[p])) { | 
| -        case 'object': | 
| -          eq = chromeTest.checkDeepEq(expected[p], actual[p]); | 
| -          break; | 
| -        case 'function': | 
| -          eq = (typeof(actual[p]) != 'undefined' && | 
| -                expected[p].toString() == actual[p].toString()); | 
| -          break; | 
| -        default: | 
| -          eq = (expected[p] == actual[p] && | 
| -                typeof(expected[p]) == typeof(actual[p])); | 
| -          break; | 
| -      } | 
| -      if (!eq) | 
| -        return false; | 
| -    } | 
| -    return true; | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('assertEq', | 
| -                                function(expected, actual, message) { | 
| -    var error_msg = "API Test Error in " + testName(currentTest); | 
| -    if (message) | 
| -      error_msg += ": " + message; | 
| -    if (typeof(expected) == 'object') { | 
| -      if (!chromeTest.checkDeepEq(expected, actual)) { | 
| -        // Note: these JSON.stringify calls may fail in tests that explicitly | 
| -        // override JSON.stringfy, so surround in try-catch. | 
| -        try { | 
| -          error_msg += "\nActual: " + JSON.stringify(actual) + | 
| -                       "\nExpected: " + JSON.stringify(expected); | 
| -        } catch (e) {} | 
| -        chromeTest.fail(error_msg); | 
| -      } | 
| -      return; | 
| -    } | 
| -    if (expected != actual) { | 
| -      chromeTest.fail(error_msg + | 
| -                       "\nActual: " + actual + "\nExpected: " + expected); | 
| -    } | 
| -    if (typeof(expected) != typeof(actual)) { | 
| -      chromeTest.fail(error_msg + | 
| -                       " (type mismatch)\nActual Type: " + typeof(actual) + | 
| -                       "\nExpected Type:" + typeof(expected)); | 
| -    } | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('assertNoLastError', function() { | 
| -    if (chrome.runtime.lastError != undefined) { | 
| -      chromeTest.fail("lastError.message == " + | 
| -                       chrome.runtime.lastError.message); | 
| -    } | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('assertLastError', function(expectedError) { | 
| -    chromeTest.assertEq(typeof(expectedError), 'string'); | 
| -    chromeTest.assertTrue(chrome.runtime.lastError != undefined, | 
| -        "No lastError, but expected " + expectedError); | 
| -    chromeTest.assertEq(expectedError, chrome.runtime.lastError.message); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('assertThrows', | 
| -                                function(fn, self, args, message) { | 
| -    chromeTest.assertTrue(typeof fn == 'function'); | 
| -    try { | 
| -      fn.apply(self, args); | 
| -      chromeTest.fail('Did not throw error: ' + fn); | 
| -    } catch (e) { | 
| -      if (e != failureException && message !== undefined) { | 
| -        if (message instanceof RegExp) { | 
| -          chromeTest.assertTrue(message.test(e.message), | 
| -                                e.message + ' should match ' + message) | 
| -        } else { | 
| -          chromeTest.assertEq(message, e.message); | 
| -        } | 
| -      } | 
| -    } | 
| -  }); | 
| - | 
| -  function safeFunctionApply(func, args) { | 
| -    try { | 
| -      if (func) | 
| -        return $Function.apply(func, undefined, args); | 
| -    } catch (e) { | 
| -      var msg = "uncaught exception " + e; | 
| -      chromeTest.fail(msg); | 
| -    } | 
| -  }; | 
| - | 
| -  // Wrapper for generating test functions, that takes care of calling | 
| -  // assertNoLastError() and (optionally) succeed() for you. | 
| -  apiFunctions.setHandleRequest('callback', function(func, expectedError) { | 
| -    if (func) { | 
| -      chromeTest.assertEq(typeof(func), 'function'); | 
| -    } | 
| -    var callbackCompleted = chromeTest.callbackAdded(); | 
| - | 
| -    return function() { | 
| -      if (expectedError == null) { | 
| -        chromeTest.assertNoLastError(); | 
| -      } else { | 
| -        chromeTest.assertLastError(expectedError); | 
| -      } | 
| - | 
| -      var result; | 
| -      if (func) { | 
| -        result = safeFunctionApply(func, arguments); | 
| -      } | 
| - | 
| -      callbackCompleted(); | 
| -      return result; | 
| -    }; | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('listenOnce', function(event, func) { | 
| -    var callbackCompleted = chromeTest.callbackAdded(); | 
| -    var listener = function() { | 
| -      event.removeListener(listener); | 
| -      safeFunctionApply(func, arguments); | 
| -      callbackCompleted(); | 
| -    }; | 
| -    event.addListener(listener); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('listenForever', function(event, func) { | 
| -    var callbackCompleted = chromeTest.callbackAdded(); | 
| - | 
| -    var listener = function() { | 
| -      safeFunctionApply(func, arguments); | 
| -    }; | 
| - | 
| -    var done = function() { | 
| -      event.removeListener(listener); | 
| -      callbackCompleted(); | 
| -    }; | 
| - | 
| -    event.addListener(listener); | 
| -    return done; | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('callbackPass', function(func) { | 
| -    return chromeTest.callback(func); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('callbackFail', function(expectedError, func) { | 
| -    return chromeTest.callback(func, expectedError); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('runTests', function(tests) { | 
| -    chromeTest.tests = tests; | 
| -    testCount = chromeTest.tests.length; | 
| -    chromeTest.runNextTest(); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('getApiDefinitions', function() { | 
| -    return GetExtensionAPIDefinitionsForTest(); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('getApiFeatures', function() { | 
| -    return GetAPIFeatures(); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('isProcessingUserGesture', function() { | 
| -    return userGestures.IsProcessingUserGesture(); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('runWithUserGesture', function(callback) { | 
| -    chromeTest.assertEq(typeof(callback), 'function'); | 
| -    return userGestures.RunWithUserGesture(callback); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('runWithoutUserGesture', function(callback) { | 
| -    chromeTest.assertEq(typeof(callback), 'function'); | 
| -    return userGestures.RunWithoutUserGesture(callback); | 
| -  }); | 
| - | 
| -  apiFunctions.setHandleRequest('setExceptionHandler', function(callback) { | 
| -    chromeTest.assertEq(typeof(callback), 'function'); | 
| -    uncaughtExceptionHandler.setHandler(callback); | 
| -  }); | 
| -}); | 
| - | 
| -exports.binding = binding.generate(); | 
|  |