offline_page_feature.cc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. // Copyright 2015 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 "components/offline_pages/core/offline_page_feature.h"
  5. #include <string>
  6. #include "base/command_line.h"
  7. #include "base/feature_list.h"
  8. #include "base/metrics/field_trial_params.h"
  9. namespace {
  10. // This flag significantly shortens the delay between WebContentsObserver events
  11. // and SnapshotController's StartSnapshot calls. The purpose is to speed up
  12. // integration tests.
  13. const char kOfflinePagesUseTestingSnapshotDelay[] =
  14. "short-offline-page-snapshot-delay-for-test";
  15. } // namespace
  16. namespace offline_pages {
  17. const base::Feature kOfflinePagesCTFeature{"OfflinePagesCT",
  18. base::FEATURE_ENABLED_BY_DEFAULT};
  19. const base::Feature kOfflinePagesLivePageSharingFeature{
  20. "OfflinePagesLivePageSharing", base::FEATURE_DISABLED_BY_DEFAULT};
  21. const base::Feature kPrefetchingOfflinePagesFeature{
  22. "OfflinePagesPrefetching", base::FEATURE_DISABLED_BY_DEFAULT};
  23. const base::Feature kOfflinePagesDescriptiveFailStatusFeature{
  24. "OfflinePagesDescriptiveFailStatus", base::FEATURE_DISABLED_BY_DEFAULT};
  25. const base::Feature kOfflinePagesDescriptivePendingStatusFeature{
  26. "OfflinePagesDescriptivePendingStatus", base::FEATURE_ENABLED_BY_DEFAULT};
  27. const base::Feature kOfflinePagesInDownloadHomeOpenInCctFeature{
  28. "OfflinePagesInDownloadHomeOpenInCct", base::FEATURE_ENABLED_BY_DEFAULT};
  29. const base::Feature kOfflineIndicatorFeature{"OfflineIndicator",
  30. base::FEATURE_DISABLED_BY_DEFAULT};
  31. const base::Feature kOfflinePagesNetworkStateLikelyUnknown{
  32. "OfflinePagesNetworkStateLikelyUnknown", base::FEATURE_DISABLED_BY_DEFAULT};
  33. const char kPrefetchingOfflinePagesExperimentsOption[] = "exp";
  34. bool IsOfflinePagesCTEnabled() {
  35. return base::FeatureList::IsEnabled(kOfflinePagesCTFeature);
  36. }
  37. bool IsOfflinePagesLivePageSharingEnabled() {
  38. return base::FeatureList::IsEnabled(kOfflinePagesLivePageSharingFeature);
  39. }
  40. bool IsPrefetchingOfflinePagesEnabled() {
  41. return base::FeatureList::IsEnabled(kPrefetchingOfflinePagesFeature);
  42. }
  43. bool ShouldUseTestingSnapshotDelay() {
  44. base::CommandLine* cl = base::CommandLine::ForCurrentProcess();
  45. return cl->HasSwitch(kOfflinePagesUseTestingSnapshotDelay);
  46. }
  47. bool IsOfflinePagesDescriptiveFailStatusEnabled() {
  48. return base::FeatureList::IsEnabled(
  49. kOfflinePagesDescriptiveFailStatusFeature);
  50. }
  51. bool IsOfflinePagesDescriptivePendingStatusEnabled() {
  52. return base::FeatureList::IsEnabled(
  53. kOfflinePagesDescriptivePendingStatusFeature);
  54. }
  55. bool ShouldOfflinePagesInDownloadHomeOpenInCct() {
  56. return base::FeatureList::IsEnabled(
  57. kOfflinePagesInDownloadHomeOpenInCctFeature);
  58. }
  59. std::string GetPrefetchingOfflinePagesExperimentTag() {
  60. return base::GetFieldTrialParamValueByFeature(
  61. kPrefetchingOfflinePagesFeature,
  62. kPrefetchingOfflinePagesExperimentsOption);
  63. }
  64. bool IsOfflineIndicatorFeatureEnabled() {
  65. return base::FeatureList::IsEnabled(kOfflineIndicatorFeature);
  66. }
  67. bool IsOnTheFlyMhtmlHashComputationEnabled() {
  68. return false;
  69. }
  70. bool IsOfflinePagesNetworkStateLikelyUnknown() {
  71. return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown);
  72. }
  73. } // namespace offline_pages