17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file.
47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Custom bindings for the feedbackPrivate API.
67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)var binding = require('binding').Binding.create('feedbackPrivate');
87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)var blobNatives = requireNative('blob_natives');
107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)binding.registerCustomHook(function(bindingsAPI) {
127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  var apiFunctions = bindingsAPI.apiFunctions;
137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  apiFunctions.setUpdateArgumentsPostValidate(
147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)      "sendFeedback", function(feedbackInfo, callback) {
1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    var attachedFileBlobUuid = '';
1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    var screenshotBlobUuid = '';
177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    if (feedbackInfo.attachedFile)
1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      attachedFileBlobUuid =
20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)          blobNatives.GetBlobUuid(feedbackInfo.attachedFile.data);
217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    if (feedbackInfo.screenshot)
2268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      screenshotBlobUuid =
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)          blobNatives.GetBlobUuid(feedbackInfo.screenshot);
247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    feedbackInfo.attachedFileBlobUuid = attachedFileBlobUuid;
2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    feedbackInfo.screenshotBlobUuid = screenshotBlobUuid;
277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    return [feedbackInfo, callback];
297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  });
307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)});
317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)exports.binding = binding.generate();
33