| Index: chrome/renderer/resources/extensions/pepper_request.js
|
| diff --git a/chrome/renderer/resources/extensions/pepper_request.js b/chrome/renderer/resources/extensions/pepper_request.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b90b35d279d0d2bba93abee889d68818590c8de6
|
| --- /dev/null
|
| +++ b/chrome/renderer/resources/extensions/pepper_request.js
|
| @@ -0,0 +1,51 @@
|
| +// Copyright 2013 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 SendResponse = requireNative('pepper_request_natives').SendResponse;
|
| +var GetAvailability = requireNative('v8_context').GetAvailability;
|
| +
|
| +function checkAvailability(name) {
|
| + var availability = GetAvailability(name);
|
| + if (!availability.is_available)
|
| + throw Error(availability.message);
|
| +}
|
| +
|
| +function resolveName(name) {
|
| + checkAvailability(name);
|
| + var item = chrome;
|
| + var nameComponents = $String.split(name, '.');
|
| + for (var i = 0; i < nameComponents.length; i++) {
|
| + item = item[nameComponents[i]];
|
| + }
|
| + return item;
|
| +}
|
| +
|
| +function callMethod(targetName, requestId) {
|
| + var args = $Array.slice(arguments, 2);
|
| + args.push(function() {
|
| + var error = null;
|
| + if (chrome.runtime.lastError)
|
| + error = chrome.runtime.lastError.message;
|
| + SendResponse(requestId, $Array.slice(arguments), error);
|
| + });
|
| + try {
|
| + var target = resolveName(targetName);
|
| + $Function.apply(target, null, args);
|
| + } catch (e) {
|
| + return e.message;
|
| + }
|
| +}
|
| +
|
| +function postMethod(targetName) {
|
| + var args = $Array.slice(arguments, 1);
|
| + try {
|
| + var target = resolveName(targetName);
|
| + $Function.apply(target, null, args);
|
| + } catch (e) {
|
| + return e.message;
|
| + }
|
| +}
|
| +
|
| +exports.callMethod = callMethod;
|
| +exports.postMethod = postMethod;
|
|
|