features.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 "atom/common/node_includes.h"
  5. #include "electron/buildflags/buildflags.h"
  6. #include "native_mate/dictionary.h"
  7. #include "printing/buildflags/buildflags.h"
  8. namespace {
  9. bool IsDesktopCapturerEnabled() {
  10. return BUILDFLAG(ENABLE_DESKTOP_CAPTURER);
  11. }
  12. bool IsOffscreenRenderingEnabled() {
  13. return BUILDFLAG(ENABLE_OSR);
  14. }
  15. bool IsPDFViewerEnabled() {
  16. return BUILDFLAG(ENABLE_PDF_VIEWER);
  17. }
  18. bool IsRunAsNodeEnabled() {
  19. return BUILDFLAG(ENABLE_RUN_AS_NODE);
  20. }
  21. bool IsFakeLocationProviderEnabled() {
  22. return BUILDFLAG(OVERRIDE_LOCATION_PROVIDER);
  23. }
  24. bool IsViewApiEnabled() {
  25. return BUILDFLAG(ENABLE_VIEW_API);
  26. }
  27. bool IsTtsEnabled() {
  28. return BUILDFLAG(ENABLE_TTS);
  29. }
  30. bool IsPrintingEnabled() {
  31. return BUILDFLAG(ENABLE_PRINTING);
  32. }
  33. bool IsComponentBuild() {
  34. #if defined(COMPONENT_BUILD)
  35. return true;
  36. #else
  37. return false;
  38. #endif
  39. }
  40. void Initialize(v8::Local<v8::Object> exports,
  41. v8::Local<v8::Value> unused,
  42. v8::Local<v8::Context> context,
  43. void* priv) {
  44. mate::Dictionary dict(context->GetIsolate(), exports);
  45. dict.SetMethod("isDesktopCapturerEnabled", &IsDesktopCapturerEnabled);
  46. dict.SetMethod("isOffscreenRenderingEnabled", &IsOffscreenRenderingEnabled);
  47. dict.SetMethod("isPDFViewerEnabled", &IsPDFViewerEnabled);
  48. dict.SetMethod("isRunAsNodeEnabled", &IsRunAsNodeEnabled);
  49. dict.SetMethod("isFakeLocationProviderEnabled",
  50. &IsFakeLocationProviderEnabled);
  51. dict.SetMethod("isViewApiEnabled", &IsViewApiEnabled);
  52. dict.SetMethod("isTtsEnabled", &IsTtsEnabled);
  53. dict.SetMethod("isPrintingEnabled", &IsPrintingEnabled);
  54. dict.SetMethod("isComponentBuild", &IsComponentBuild);
  55. }
  56. } // namespace
  57. NODE_LINKED_MODULE_CONTEXT_AWARE(atom_common_features, Initialize)