blob_native_handler.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright 2014 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. #ifndef EXTENSIONS_RENDERER_BLOB_NATIVE_HANDLER_H_
  5. #define EXTENSIONS_RENDERER_BLOB_NATIVE_HANDLER_H_
  6. #include "extensions/renderer/object_backed_native_handler.h"
  7. #include "v8/include/v8-forward.h"
  8. namespace extensions {
  9. class ScriptContext;
  10. // This native handler is used to extract Blobs' UUIDs and pass them over to the
  11. // browser process extension implementation via argument modification. This is
  12. // necessary to support extension functions that take Blob parameters, as Blobs
  13. // are not serialized and sent over to the browser process in the normal way.
  14. //
  15. // Blobs sent via this method don't have their ref-counts incremented, so the
  16. // app using this technique must be sure to keep a reference.
  17. class BlobNativeHandler : public ObjectBackedNativeHandler {
  18. public:
  19. explicit BlobNativeHandler(ScriptContext* context);
  20. // ObjectBackedNativeHandler:
  21. void AddRoutes() override;
  22. private:
  23. void TakeBrowserProcessBlob(const v8::FunctionCallbackInfo<v8::Value>& args);
  24. };
  25. } // namespace extensions
  26. #endif // EXTENSIONS_RENDERER_BLOB_NATIVE_HANDLER_H_