features.cc 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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 "printing/buildflags/buildflags.h"
  6. #include "shell/common/gin_helper/dictionary.h"
  7. #include "shell/common/node_includes.h"
  8. namespace {
  9. bool IsBuiltinSpellCheckerEnabled() {
  10. return BUILDFLAG(ENABLE_BUILTIN_SPELLCHECKER);
  11. }
  12. bool IsDesktopCapturerEnabled() {
  13. return BUILDFLAG(ENABLE_DESKTOP_CAPTURER);
  14. }
  15. bool IsOffscreenRenderingEnabled() {
  16. return BUILDFLAG(ENABLE_OSR);
  17. }
  18. bool IsRemoteModuleEnabled() {
  19. return BUILDFLAG(ENABLE_REMOTE_MODULE);
  20. }
  21. bool IsPDFViewerEnabled() {
  22. return BUILDFLAG(ENABLE_PDF_VIEWER);
  23. }
  24. bool IsRunAsNodeEnabled() {
  25. return BUILDFLAG(ENABLE_RUN_AS_NODE);
  26. }
  27. bool IsFakeLocationProviderEnabled() {
  28. return BUILDFLAG(OVERRIDE_LOCATION_PROVIDER);
  29. }
  30. bool IsViewApiEnabled() {
  31. return BUILDFLAG(ENABLE_VIEWS_API);
  32. }
  33. bool IsTtsEnabled() {
  34. return BUILDFLAG(ENABLE_TTS);
  35. }
  36. bool IsPrintingEnabled() {
  37. return BUILDFLAG(ENABLE_PRINTING);
  38. }
  39. bool IsExtensionsEnabled() {
  40. return BUILDFLAG(ENABLE_ELECTRON_EXTENSIONS);
  41. }
  42. bool IsPictureInPictureEnabled() {
  43. return BUILDFLAG(ENABLE_PICTURE_IN_PICTURE);
  44. }
  45. bool IsWinDarkModeWindowUiEnabled() {
  46. return BUILDFLAG(ENABLE_WIN_DARK_MODE_WINDOW_UI);
  47. }
  48. bool IsComponentBuild() {
  49. #if defined(COMPONENT_BUILD)
  50. return true;
  51. #else
  52. return false;
  53. #endif
  54. }
  55. void Initialize(v8::Local<v8::Object> exports,
  56. v8::Local<v8::Value> unused,
  57. v8::Local<v8::Context> context,
  58. void* priv) {
  59. gin_helper::Dictionary dict(context->GetIsolate(), exports);
  60. dict.SetMethod("isBuiltinSpellCheckerEnabled", &IsBuiltinSpellCheckerEnabled);
  61. dict.SetMethod("isDesktopCapturerEnabled", &IsDesktopCapturerEnabled);
  62. dict.SetMethod("isOffscreenRenderingEnabled", &IsOffscreenRenderingEnabled);
  63. dict.SetMethod("isRemoteModuleEnabled", &IsRemoteModuleEnabled);
  64. dict.SetMethod("isPDFViewerEnabled", &IsPDFViewerEnabled);
  65. dict.SetMethod("isRunAsNodeEnabled", &IsRunAsNodeEnabled);
  66. dict.SetMethod("isFakeLocationProviderEnabled",
  67. &IsFakeLocationProviderEnabled);
  68. dict.SetMethod("isViewApiEnabled", &IsViewApiEnabled);
  69. dict.SetMethod("isTtsEnabled", &IsTtsEnabled);
  70. dict.SetMethod("isPrintingEnabled", &IsPrintingEnabled);
  71. dict.SetMethod("isPictureInPictureEnabled", &IsPictureInPictureEnabled);
  72. dict.SetMethod("isComponentBuild", &IsComponentBuild);
  73. dict.SetMethod("isExtensionsEnabled", &IsExtensionsEnabled);
  74. dict.SetMethod("isWinDarkModeWindowUiEnabled", &IsWinDarkModeWindowUiEnabled);
  75. }
  76. } // namespace
  77. NODE_LINKED_MODULE_CONTEXT_AWARE(electron_common_features, Initialize)