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

Side by Side Diff: chrome/renderer/resources/extensions/permissions_custom_bindings.js

Issue 12313142: Revert 184837 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Custom binding for the Permissions API. 5 // Custom bindings for the Permissions API.
6 6
7 var binding = require('binding').Binding.create('permissions'); 7 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
8
9 var sendRequest = require('sendRequest').sendRequest; 8 var sendRequest = require('sendRequest').sendRequest;
10 var lastError = require('lastError'); 9 var lastError = require('lastError');
11 10
12 // These custom binding are only necessary because it is not currently 11 // These custom bindings are only necessary because it is not currently
13 // possible to have a union of types as the type of the items in an array. 12 // possible to have a union of types as the type of the items in an array.
14 // Once that is fixed, this entire file should go away. 13 // Once that is fixed, this entire file should go away.
15 // See, 14 // See,
16 // https://code.google.com/p/chromium/issues/detail?id=162044 15 // https://code.google.com/p/chromium/issues/detail?id=162044
17 // https://code.google.com/p/chromium/issues/detail?id=162042 16 // https://code.google.com/p/chromium/issues/detail?id=162042
18 // TODO(bryeung): delete this file. 17 // TODO(bryeung): delete this file.
19 binding.registerCustomHook(function(api) { 18 chromeHidden.registerCustomHook('permissions', function(api) {
20 var apiFunctions = api.apiFunctions; 19 var apiFunctions = api.apiFunctions;
21 var permissions = api.compiledApi;
22 20
23 function maybeConvertToObject(str) { 21 function maybeConvertToObject(str) {
24 var parts = str.split('|'); 22 var parts = str.split('|');
25 if (parts.length != 2) 23 if (parts.length != 2)
26 return str; 24 return str;
27 25
28 var ret = {}; 26 var ret = {};
29 ret[parts[0]] = JSON.parse(parts[1]); 27 ret[parts[0]] = JSON.parse(parts[1]);
30 return ret; 28 return ret;
31 } 29 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 // that handleResponse doesn't call it again. 73 // that handleResponse doesn't call it again.
76 if (request.callback) 74 if (request.callback)
77 request.callback.apply(request, [response]); 75 request.callback.apply(request, [response]);
78 delete request.callback; 76 delete request.callback;
79 }); 77 });
80 78
81 // Also convert complex permissions back to objects for events. The 79 // Also convert complex permissions back to objects for events. The
82 // dispatchToListener call happens after argument validation, which works 80 // dispatchToListener call happens after argument validation, which works
83 // around the problem that Permissions.permissions is supposed to be a list 81 // around the problem that Permissions.permissions is supposed to be a list
84 // of strings. 82 // of strings.
85 permissions.onAdded.dispatchToListener = function(callback, args) { 83 chrome.permissions.onAdded.dispatchToListener = function(callback, args) {
86 for (var i = 0; i < args[0].permissions.length; i += 1) { 84 for (var i = 0; i < args[0].permissions.length; i += 1) {
87 args[0].permissions[i] = maybeConvertToObject(args[0].permissions[i]); 85 args[0].permissions[i] = maybeConvertToObject(args[0].permissions[i]);
88 } 86 }
89 chrome.Event.prototype.dispatchToListener(callback, args); 87 chrome.Event.prototype.dispatchToListener(callback, args);
90 }; 88 };
91 permissions.onRemoved.dispatchToListener = 89 chrome.permissions.onRemoved.dispatchToListener =
92 permissions.onAdded.dispatchToListener; 90 chrome.permissions.onAdded.dispatchToListener;
93 }); 91 });
94
95 exports.binding = binding.generate();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698