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

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

Issue 2894923003: [Extensions Bindings] Include request id in a custom callback response (Closed)
Patch Set: really fix Created 3 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
« no previous file with comments | « no previous file | extensions/renderer/api_bindings_system_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 pageCapture API. 5 // Custom binding for the pageCapture API.
6 6
7 var binding = require('binding').Binding.create('pageCapture'); 7 var binding = apiBridge || require('binding').Binding.create('pageCapture');
8 8
9 var handleUncaughtException = require('uncaught_exception_handler').handle; 9 var handleUncaughtException = require('uncaught_exception_handler').handle;
10 var pageCaptureNatives = requireNative('page_capture'); 10 var pageCaptureNatives = requireNative('page_capture');
11 var CreateBlob = pageCaptureNatives.CreateBlob; 11 var CreateBlob = pageCaptureNatives.CreateBlob;
12 var SendResponseAck = pageCaptureNatives.SendResponseAck; 12 var SendResponseAck = pageCaptureNatives.SendResponseAck;
13 13
14 binding.registerCustomHook(function(bindingsAPI) { 14 binding.registerCustomHook(function(bindingsAPI) {
15 var apiFunctions = bindingsAPI.apiFunctions; 15 var apiFunctions = bindingsAPI.apiFunctions;
16 16
17 apiFunctions.setCustomCallback('saveAsMHTML', 17 apiFunctions.setCustomCallback('saveAsMHTML',
18 function(name, request, callback, response) { 18 function(name, request, callback, response) {
19 if (response) 19 if (response)
20 response = CreateBlob(response.mhtmlFilePath, response.mhtmlFileLength); 20 response = CreateBlob(response.mhtmlFilePath, response.mhtmlFileLength);
21 21
22 try { 22 try {
23 callback(response); 23 callback(response);
24 } catch (e) { 24 } catch (e) {
25 handleUncaughtException( 25 handleUncaughtException(
26 'Error in chrome.pageCapture.saveAsMHTML callback', e, request.stack); 26 'Error in chrome.pageCapture.saveAsMHTML callback', e, request.stack);
27 } finally { 27 } finally {
28 // Notify the browser. Now that the blob is referenced from JavaScript, 28 // Notify the browser. Now that the blob is referenced from JavaScript,
29 // the browser can drop its reference to it. 29 // the browser can drop its reference to it.
30 SendResponseAck(request.id); 30 SendResponseAck(request.id);
31 } 31 }
32 }); 32 });
33 }); 33 });
34 34
35 exports.$set('binding', binding.generate()); 35 if (!apiBridge)
36 exports.$set('binding', binding.generate());
OLDNEW
« no previous file with comments | « no previous file | extensions/renderer/api_bindings_system_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698