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

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

Issue 329483002: [fsp] Group arguments for API methods and events in dictionaries. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleaned up. Created 6 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 fileSystemProvider API. 5 // Custom binding for the fileSystemProvider API.
6 6
7 var binding = require('binding').Binding.create('fileSystemProvider'); 7 var binding = require('binding').Binding.create('fileSystemProvider');
8 var fileSystemProviderInternal = 8 var fileSystemProviderInternal =
9 require('binding').Binding.create('fileSystemProviderInternal').generate(); 9 require('binding').Binding.create('fileSystemProviderInternal').generate();
10 var eventBindings = require('event_bindings'); 10 var eventBindings = require('event_bindings');
(...skipping 26 matching lines...) Expand all
37 modificationTime: annotateDate(metadata.modificationTime) 37 modificationTime: annotateDate(metadata.modificationTime)
38 }; 38 };
39 return result; 39 return result;
40 } 40 }
41 41
42 binding.registerCustomHook(function(bindingsAPI) { 42 binding.registerCustomHook(function(bindingsAPI) {
43 var apiFunctions = bindingsAPI.apiFunctions; 43 var apiFunctions = bindingsAPI.apiFunctions;
44 44
45 apiFunctions.setUpdateArgumentsPostValidate( 45 apiFunctions.setUpdateArgumentsPostValidate(
46 'mount', 46 'mount',
47 function(fileSystemId, displayName, successCallback, errorCallback) { 47 function(options, successCallback, errorCallback) {
48 // Piggyback the error callback onto the success callback, 48 // Piggyback the error callback onto the success callback,
49 // so we can use the error callback later. 49 // so we can use the error callback later.
50 successCallback.errorCallback_ = errorCallback; 50 successCallback.errorCallback_ = errorCallback;
51 return [fileSystemId, displayName, successCallback]; 51 return [options, successCallback];
52 }); 52 });
53 53
54 apiFunctions.setCustomCallback( 54 apiFunctions.setCustomCallback(
55 'mount', 55 'mount',
56 function(name, request, response) { 56 function(name, request, response) {
57 var domError = null; 57 var domError = null;
58 if (request.callback && response) { 58 if (request.callback && response) {
59 // DOMError is present only if mount() failed. 59 // DOMError is present only if mount() failed.
60 if (response[0]) { 60 if (response[0]) {
61 // Convert a Dictionary to a DOMError. 61 // Convert a Dictionary to a DOMError.
62 domError = GetDOMError(response[0].name, response[0].message); 62 domError = GetDOMError(response[0].name, response[0].message);
63 response.length = 1; 63 response.length = 1;
64 } 64 }
65 65
66 var successCallback = request.callback; 66 var successCallback = request.callback;
67 var errorCallback = request.callback.errorCallback_; 67 var errorCallback = request.callback.errorCallback_;
68 delete request.callback; 68 delete request.callback;
69 69
70 if (domError) 70 if (domError)
71 errorCallback(domError); 71 errorCallback(domError);
72 else 72 else
73 successCallback(); 73 successCallback();
74 } 74 }
75 }); 75 });
76 76
77 apiFunctions.setUpdateArgumentsPostValidate( 77 apiFunctions.setUpdateArgumentsPostValidate(
78 'unmount', 78 'unmount',
79 function(fileSystemId, successCallback, errorCallback) { 79 function(options, successCallback, errorCallback) {
80 // Piggyback the error callback onto the success callback, 80 // Piggyback the error callback onto the success callback,
81 // so we can use the error callback later. 81 // so we can use the error callback later.
82 successCallback.errorCallback_ = errorCallback; 82 successCallback.errorCallback_ = errorCallback;
83 return [fileSystemId, successCallback]; 83 return [options, successCallback];
84 }); 84 });
85 85
86 apiFunctions.setCustomCallback( 86 apiFunctions.setCustomCallback(
87 'unmount', 87 'unmount',
88 function(name, request, response) { 88 function(name, request, response) {
89 var domError = null; 89 var domError = null;
90 if (request.callback) { 90 if (request.callback) {
91 // DOMError is present only if mount() failed. 91 // DOMError is present only if mount() failed.
92 if (response && response[0]) { 92 if (response && response[0]) {
93 // Convert a Dictionary to a DOMError. 93 // Convert a Dictionary to a DOMError.
94 domError = GetDOMError(response[0].name, response[0].message); 94 domError = GetDOMError(response[0].name, response[0].message);
95 response.length = 1; 95 response.length = 1;
96 } 96 }
97 97
98 var successCallback = request.callback; 98 var successCallback = request.callback;
99 var errorCallback = request.callback.errorCallback_; 99 var errorCallback = request.callback.errorCallback_;
100 delete request.callback; 100 delete request.callback;
101 101
102 if (domError) 102 if (domError)
103 errorCallback(domError); 103 errorCallback(domError);
104 else 104 else
105 successCallback(); 105 successCallback();
106 } 106 }
107 }); 107 });
108 }); 108 });
109 109
110 eventBindings.registerArgumentMassager( 110 eventBindings.registerArgumentMassager(
111 'fileSystemProvider.onUnmountRequested', 111 'fileSystemProvider.onUnmountRequested',
112 function(args, dispatch) { 112 function(args, dispatch) {
113 var fileSystemId = args[0]; 113 var options = args[0];
114 var requestId = args[1];
115 var onSuccessCallback = function() { 114 var onSuccessCallback = function() {
116 fileSystemProviderInternal.unmountRequestedSuccess( 115 fileSystemProviderInternal.unmountRequestedSuccess(
117 fileSystemId, requestId); 116 options.fileSystemId, options.requestId);
118 }; 117 };
119 var onErrorCallback = function(error) { 118 var onErrorCallback = function(error) {
120 fileSystemProviderInternal.unmountRequestedError( 119 fileSystemProviderInternal.unmountRequestedError(
121 fileSystemId, requestId, error); 120 options.fileSystemId, options.requestId, error);
122 } 121 }
123 dispatch([fileSystemId, onSuccessCallback, onErrorCallback]); 122 dispatch([options, onSuccessCallback, onErrorCallback]);
124 }); 123 });
125 124
126 eventBindings.registerArgumentMassager( 125 eventBindings.registerArgumentMassager(
127 'fileSystemProvider.onGetMetadataRequested', 126 'fileSystemProvider.onGetMetadataRequested',
128 function(args, dispatch) { 127 function(args, dispatch) {
129 var fileSystemId = args[0]; 128 var options = args[0];
130 var requestId = args[1];
131 var entryPath = args[2];
132 var onSuccessCallback = function(metadata) { 129 var onSuccessCallback = function(metadata) {
133 fileSystemProviderInternal.getMetadataRequestedSuccess( 130 fileSystemProviderInternal.getMetadataRequestedSuccess(
134 fileSystemId, requestId, annotateMetadata(metadata)); 131 options.fileSystemId,
132 options.requestId,
133 annotateMetadata(metadata));
135 }; 134 };
136 var onErrorCallback = function(error) { 135 var onErrorCallback = function(error) {
137 fileSystemProviderInternal.getMetadataRequestedError( 136 fileSystemProviderInternal.getMetadataRequestedError(
138 fileSystemId, requestId, error); 137 options.fileSystemId, options.requestId, error);
139 } 138 }
140 dispatch([fileSystemId, entryPath, onSuccessCallback, onErrorCallback]); 139 dispatch([options, onSuccessCallback, onErrorCallback]);
141 }); 140 });
142 141
143 eventBindings.registerArgumentMassager( 142 eventBindings.registerArgumentMassager(
144 'fileSystemProvider.onReadDirectoryRequested', 143 'fileSystemProvider.onReadDirectoryRequested',
145 function(args, dispatch) { 144 function(args, dispatch) {
146 var fileSystemId = args[0]; 145 var options = args[0];
147 var requestId = args[1];
148 var directoryPath = args[2];
149 var onSuccessCallback = function(entries, hasNext) { 146 var onSuccessCallback = function(entries, hasNext) {
150 var annotatedEntries = entries.map(annotateMetadata); 147 var annotatedEntries = entries.map(annotateMetadata);
151 fileSystemProviderInternal.readDirectoryRequestedSuccess( 148 fileSystemProviderInternal.readDirectoryRequestedSuccess(
152 fileSystemId, requestId, annotatedEntries, hasNext); 149 options.fileSystemId, options.requestId, annotatedEntries, hasNext);
153 }; 150 };
154 var onErrorCallback = function(error) { 151 var onErrorCallback = function(error) {
155 fileSystemProviderInternal.readDirectoryRequestedError( 152 fileSystemProviderInternal.readDirectoryRequestedError(
156 fileSystemId, requestId, error); 153 options.fileSystemId, options.requestId, error);
157 } 154 }
158 dispatch([ 155 dispatch([options, onSuccessCallback, onErrorCallback]);
159 fileSystemId, directoryPath, onSuccessCallback, onErrorCallback]);
160 }); 156 });
161 157
162 eventBindings.registerArgumentMassager( 158 eventBindings.registerArgumentMassager(
163 'fileSystemProvider.onOpenFileRequested', 159 'fileSystemProvider.onOpenFileRequested',
164 function(args, dispatch) { 160 function(args, dispatch) {
165 var fileSystemId = args[0]; 161 var options = args[0];
166 var requestId = args[1];
167 var filePath = args[2];
168 var mode = args[3];
169 var create = args[4];
170 var onSuccessCallback = function() { 162 var onSuccessCallback = function() {
171 fileSystemProviderInternal.openFileRequestedSuccess( 163 fileSystemProviderInternal.openFileRequestedSuccess(
172 fileSystemId, requestId); 164 options.fileSystemId, options.requestId);
173 }; 165 };
174 var onErrorCallback = function(error) { 166 var onErrorCallback = function(error) {
175 fileSystemProviderInternal.openFileRequestedError( 167 fileSystemProviderInternal.openFileRequestedError(
176 fileSystemId, requestId, error); 168 options.fileSystemId, options.requestId, error);
177 } 169 }
178 dispatch([fileSystemId, requestId, filePath, mode, create, 170 dispatch([options, onSuccessCallback, onErrorCallback]);
179 onSuccessCallback, onErrorCallback]);
180 }); 171 });
181 172
182 eventBindings.registerArgumentMassager( 173 eventBindings.registerArgumentMassager(
183 'fileSystemProvider.onCloseFileRequested', 174 'fileSystemProvider.onCloseFileRequested',
184 function(args, dispatch) { 175 function(args, dispatch) {
185 var fileSystemId = args[0]; 176 var options = args[0];
186 var requestId = args[1];
187 var openRequestId = args[2];
188 var onSuccessCallback = function() { 177 var onSuccessCallback = function() {
189 fileSystemProviderInternal.closeFileRequestedSuccess( 178 fileSystemProviderInternal.closeFileRequestedSuccess(
190 fileSystemId, requestId); 179 options.fileSystemId, options.requestId);
191 }; 180 };
192 var onErrorCallback = function(error) { 181 var onErrorCallback = function(error) {
193 fileSystemProviderInternal.closeFileRequestedError( 182 fileSystemProviderInternal.closeFileRequestedError(
194 fileSystemId, requestId, error); 183 options.fileSystemId, options.requestId, error);
195 } 184 }
196 dispatch([fileSystemId, openRequestId, onSuccessCallback, 185 dispatch([options, onSuccessCallback, onErrorCallback]);
197 onErrorCallback]);
198 }); 186 });
199 187
200 eventBindings.registerArgumentMassager( 188 eventBindings.registerArgumentMassager(
201 'fileSystemProvider.onReadFileRequested', 189 'fileSystemProvider.onReadFileRequested',
202 function(args, dispatch) { 190 function(args, dispatch) {
203 var fileSystemId = args[0]; 191 var options = args[0];
204 var requestId = args[1];
205 var openRequestId = args[2];
206 var offset = args[3];
207 var length = args[4];
208 var onSuccessCallback = function(data, hasNext) { 192 var onSuccessCallback = function(data, hasNext) {
209 fileSystemProviderInternal.readFileRequestedSuccess( 193 fileSystemProviderInternal.readFileRequestedSuccess(
210 fileSystemId, requestId, data, hasNext); 194 options.fileSystemId, options.requestId, data, hasNext);
211 }; 195 };
212 var onErrorCallback = function(error) { 196 var onErrorCallback = function(error) {
213 fileSystemProviderInternal.readFileRequestedError( 197 fileSystemProviderInternal.readFileRequestedError(
214 fileSystemId, requestId, error); 198 options.fileSystemId, options.requestId, error);
215 } 199 }
216 dispatch([fileSystemId, openRequestId, offset, length, onSuccessCallback, 200 dispatch([options, onSuccessCallback, onErrorCallback]);
217 onErrorCallback]);
218 }); 201 });
219 202
220 exports.binding = binding.generate(); 203 exports.binding = binding.generate();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698