features.cc 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Copyright (c) 2018 GitHub, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #include "electron/buildflags/buildflags.h"
  5. #include "native_mate/dictionary.h"
  6. #include "printing/buildflags/buildflags.h"
  7. // clang-format off
  8. #include "atom/common/node_includes.h" // NOLINT(build/include_alpha)
  9. // clang-format on
  10. namespace {
  11. bool IsDesktopCapturerEnabled() {
  12. return BUILDFLAG(ENABLE_DESKTOP_CAPTURER);
  13. }
  14. bool IsOffscreenRenderingEnabled() {
  15. return BUILDFLAG(ENABLE_OSR);
  16. }
  17. bool IsPDFViewerEnabled() {
  18. return BUILDFLAG(ENABLE_PDF_VIEWER);
  19. }
  20. bool IsRunAsNodeEnabled() {
  21. return BUILDFLAG(ENABLE_RUN_AS_NODE);
  22. }
  23. bool IsFakeLocationProviderEnabled() {
  24. return BUILDFLAG(OVERRIDE_LOCATION_PROVIDER);
  25. }
  26. bool IsViewApiEnabled() {
  27. return BUILDFLAG(ENABLE_VIEW_API);
  28. }
  29. bool IsTtsEnabled() {
  30. return BUILDFLAG(ENABLE_TTS);
  31. }
  32. bool IsPrintingEnabled() {
  33. return BUILDFLAG(ENABLE_PRINTING);
  34. }
  35. void Initialize(v8::Local<v8::Object> exports,
  36. v8::Local<v8::Value> unused,
  37. v8::Local<v8::Context> context,
  38. void* priv) {
  39. mate::Dictionary dict(context->GetIsolate(), exports);
  40. dict.SetMethod("isDesktopCapturerEnabled", &IsDesktopCapturerEnabled);
  41. dict.SetMethod("isOffscreenRenderingEnabled", &IsOffscreenRenderingEnabled);
  42. dict.SetMethod("isPDFViewerEnabled", &IsPDFViewerEnabled);
  43. dict.SetMethod("isRunAsNodeEnabled", &IsRunAsNodeEnabled);
  44. dict.SetMethod("isFakeLocationProviderEnabled",
  45. &IsFakeLocationProviderEnabled);
  46. dict.SetMethod("isViewApiEnabled", &IsViewApiEnabled);
  47. dict.SetMethod("isTtsEnabled", &IsTtsEnabled);
  48. dict.SetMethod("isPrintingEnabled", &IsPrintingEnabled);
  49. }
  50. } // namespace
  51. NODE_LINKED_MODULE_CONTEXT_AWARE(atom_common_features, Initialize)