features.mm 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Copyright 2017 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. #include "ios/web/common/features.h"
  5. #include "base/metrics/field_trial_params.h"
  6. #if !defined(__has_feature) || !__has_feature(objc_arc)
  7. #error "This file requires ARC support."
  8. #endif
  9. namespace web {
  10. namespace features {
  11. const base::Feature kCrashOnUnexpectedURLChange{
  12. "CrashOnUnexpectedURLChange", base::FEATURE_ENABLED_BY_DEFAULT};
  13. const base::Feature kBlockUniversalLinksInOffTheRecordMode{
  14. "BlockUniversalLinksInOffTheRecord", base::FEATURE_ENABLED_BY_DEFAULT};
  15. const base::Feature kKeepsRenderProcessAlive{"KeepsRenderProcessAlive",
  16. base::FEATURE_ENABLED_BY_DEFAULT};
  17. const base::Feature kClearOldNavigationRecordsWorkaround{
  18. "ClearOldNavigationRecordsWorkaround", base::FEATURE_ENABLED_BY_DEFAULT};
  19. const base::Feature kEnablePersistentDownloads{
  20. "EnablePersistentDownloads", base::FEATURE_DISABLED_BY_DEFAULT};
  21. const base::Feature kPreserveScrollViewProperties{
  22. "PreserveScrollViewProperties", base::FEATURE_ENABLED_BY_DEFAULT};
  23. const base::Feature kRecordSnapshotSize{"RecordSnapshotSize",
  24. base::FEATURE_DISABLED_BY_DEFAULT};
  25. const base::Feature kSetRequestAttribution{"SetRequestAttribution",
  26. base::FEATURE_ENABLED_BY_DEFAULT};
  27. const base::Feature kDisableNonHTMLScreenshotOnIOS15{
  28. "DisableNonHTMLScreenshotOnIOS15", base::FEATURE_ENABLED_BY_DEFAULT};
  29. const base::Feature kIOSSharedHighlightingColorChange{
  30. "IOSSharedHighlightingColorChange", base::FEATURE_ENABLED_BY_DEFAULT};
  31. const base::Feature kSynthesizedRestoreSession{
  32. "SynthesizedRestoreSession", base::FEATURE_ENABLED_BY_DEFAULT};
  33. const base::Feature kEnableFullscreenAPI{"EnableFullscreenAPI",
  34. base::FEATURE_DISABLED_BY_DEFAULT};
  35. const base::Feature kMediaPermissionsControl{"MediaPermissionsControl",
  36. base::FEATURE_DISABLED_BY_DEFAULT};
  37. const base::Feature kUseLoadSimulatedRequestForOfflinePage{
  38. "UseLoadSimulatedRequestForErrorPageNavigation",
  39. base::FEATURE_DISABLED_BY_DEFAULT};
  40. const base::Feature kEnableWebPageAnnotations{
  41. "EnableWebPageAnnotations", base::FEATURE_DISABLED_BY_DEFAULT};
  42. bool ShouldTakeScreenshotOnNonHTMLContent() {
  43. if (@available(iOS 15, *)) {
  44. return !base::FeatureList::IsEnabled(kDisableNonHTMLScreenshotOnIOS15);
  45. }
  46. return true;
  47. }
  48. bool IsMediaPermissionsControlEnabled() {
  49. if (@available(iOS 15, *)) {
  50. return base::FeatureList::IsEnabled(kMediaPermissionsControl);
  51. }
  52. return false;
  53. }
  54. bool IsLoadSimulatedRequestAPIEnabled() {
  55. if (@available(iOS 15, *)) {
  56. return base::FeatureList::IsEnabled(kUseLoadSimulatedRequestForOfflinePage);
  57. }
  58. return false;
  59. }
  60. } // namespace features
  61. } // namespace web