Home | History | Annotate | Download | only in extensions
      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
      3 // found in the LICENSE file.
      4 
      5 // Custom binding for the pageCapture API.
      6 
      7 var binding = require('binding').Binding.create('pageCapture');
      8 
      9 var pageCaptureNatives = requireNative('page_capture');
     10 var CreateBlob = pageCaptureNatives.CreateBlob;
     11 var SendResponseAck = pageCaptureNatives.SendResponseAck;
     12 
     13 binding.registerCustomHook(function(bindingsAPI) {
     14   var apiFunctions = bindingsAPI.apiFunctions;
     15 
     16   apiFunctions.setCustomCallback('saveAsMHTML',
     17                                  function(name, request, response) {
     18     var path = response.mhtmlFilePath;
     19     var size = response.mhtmlFileLength;
     20 
     21     if (request.callback)
     22       request.callback(CreateBlob(path, size));
     23     request.callback = null;
     24 
     25     // Notify the browser. Now that the blob is referenced from JavaScript,
     26     // the browser can drop its reference to it.
     27     SendResponseAck(request.id);
     28   });
     29 });
     30 
     31 exports.binding = binding.generate();
     32