Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: trunk/src/extensions/renderer/resources/last_error.js

Issue 309413002: Revert 274558 "Move some extensions renderer resources to extens..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/extensions/renderer/resources/last_error.js
===================================================================
--- trunk/src/extensions/renderer/resources/last_error.js (revision 274563)
+++ trunk/src/extensions/renderer/resources/last_error.js (working copy)
@@ -1,124 +0,0 @@
-// Copyright 2014 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.
-
-var GetAvailability = requireNative('v8_context').GetAvailability;
-var GetGlobal = requireNative('sendRequest').GetGlobal;
-
-// Utility for setting chrome.*.lastError.
-//
-// A utility here is useful for two reasons:
-// 1. For backwards compatibility we need to set chrome.extension.lastError,
-// but not all contexts actually have access to the extension namespace.
-// 2. When calling across contexts, the global object that gets lastError set
-// needs to be that of the caller. We force callers to explicitly specify
-// the chrome object to try to prevent bugs here.
-
-/**
- * Sets the last error for |name| on |targetChrome| to |message| with an
- * optional |stack|.
- */
-function set(name, message, stack, targetChrome) {
- var errorMessage = name + ': ' + message;
- if (stack != null && stack != '')
- errorMessage += '\n' + stack;
-
- if (!targetChrome)
- throw new Error('No chrome object to set error: ' + errorMessage);
- clear(targetChrome); // in case somebody has set a sneaky getter/setter
-
- var errorObject = { message: message };
- if (GetAvailability('extension.lastError').is_available)
- targetChrome.extension.lastError = errorObject;
-
- assertRuntimeIsAvailable();
-
- // We check to see if developers access runtime.lastError in order to decide
- // whether or not to log it in the (error) console.
- privates(targetChrome.runtime).accessedLastError = false;
- $Object.defineProperty(targetChrome.runtime, 'lastError', {
- configurable: true,
- get: function() {
- privates(targetChrome.runtime).accessedLastError = true;
- return errorObject;
- },
- set: function(error) {
- errorObject = errorObject;
- }});
-};
-
-/**
- * Check if anyone has checked chrome.runtime.lastError since it was set.
- * @param {Object} targetChrome the Chrome object to check.
- * @return boolean True if the lastError property was set.
- */
-function hasAccessed(targetChrome) {
- assertRuntimeIsAvailable();
- return privates(targetChrome.runtime).accessedLastError === true;
-}
-
-/**
- * Check whether there is an error set on |targetChrome| without setting
- * |accessedLastError|.
- * @param {Object} targetChrome the Chrome object to check.
- * @return boolean Whether lastError has been set.
- */
-function hasError(targetChrome) {
- if (!targetChrome)
- throw new Error('No target chrome to check');
-
- assertRuntimeIsAvailable();
- if ('lastError' in targetChrome.runtime)
- return true;
-
- return false;
-};
-
-/**
- * Clears the last error on |targetChrome|.
- */
-function clear(targetChrome) {
- if (!targetChrome)
- throw new Error('No target chrome to clear error');
-
- if (GetAvailability('extension.lastError').is_available)
- delete targetChrome.extension.lastError;
-
- assertRuntimeIsAvailable();
- delete targetChrome.runtime.lastError;
- delete privates(targetChrome.runtime).accessedLastError;
-};
-
-function assertRuntimeIsAvailable() {
- // chrome.runtime should always be available, but maybe it's disappeared for
- // some reason? Add debugging for http://crbug.com/258526.
- var runtimeAvailability = GetAvailability('runtime.lastError');
- if (!runtimeAvailability.is_available) {
- throw new Error('runtime.lastError is not available: ' +
- runtimeAvailability.message);
- }
- if (!chrome.runtime)
- throw new Error('runtime namespace is null or undefined');
-}
-
-/**
- * Runs |callback(args)| with last error args as in set().
- *
- * The target chrome object is the global object's of the callback, so this
- * method won't work if the real callback has been wrapped (etc).
- */
-function run(name, message, stack, callback, args) {
- var targetChrome = GetGlobal(callback).chrome;
- set(name, message, stack, targetChrome);
- try {
- $Function.apply(callback, undefined, args);
- } finally {
- clear(targetChrome);
- }
-}
-
-exports.clear = clear;
-exports.hasAccessed = hasAccessed;
-exports.hasError = hasError;
-exports.set = set;
-exports.run = run;
« no previous file with comments | « trunk/src/extensions/renderer/resources/json_schema.js ('k') | trunk/src/extensions/renderer/resources/messaging.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698