Files
StephenHeaps e206aa7e63 [iOS] Brave hiding logic not applying on headers for redirect requests (#35459)
* Assign BraveCore user agent early & respect always request desktop site.

* Cancel & reload request if User Agent in header is incorrect. This can happen with server-side redirect.

* Add feature flag, disabled by default
2026-04-16 13:37:21 +00:00

101 lines
5.1 KiB
Objective-C

// Copyright (c) 2023 The Brave Authors. All rights reserved.
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at https://mozilla.org/MPL/2.0/.
#ifndef BRAVE_IOS_BROWSER_API_FEATURES_FEATURES_H_
#define BRAVE_IOS_BROWSER_API_FEATURES_FEATURES_H_
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
OBJC_EXPORT
@interface Feature : NSObject
@property(nonatomic, readonly) NSString* name;
@property(nonatomic, readonly) bool enabled;
@end
OBJC_EXPORT
@interface FeatureList : NSObject
// MARK: - Brave Features
@property(class, nonatomic, readonly) Feature* kAIChat;
@property(class, nonatomic, readonly) Feature* kAIChatHistory;
@property(class, nonatomic, readonly)
Feature* kAdblockOverrideRegexDiscardPolicy;
@property(class, nonatomic, readonly)
Feature* kAllowUnsupportedWalletProvidersFeature;
@property(class, nonatomic, readonly) Feature* kBraveAdblockCnameUncloaking;
@property(class, nonatomic, readonly)
Feature* kBraveAdblockCollapseBlockedElements;
@property(class, nonatomic, readonly) Feature* kBraveAdblockCookieListDefault;
@property(class, nonatomic, readonly) Feature* kBraveAdblockCosmeticFiltering;
@property(class, nonatomic, readonly) Feature* kBraveAdblockCspRules;
@property(class, nonatomic, readonly) Feature* kBraveAdblockDefault1pBlocking;
@property(class, nonatomic, readonly)
Feature* kBraveAdblockMobileNotificationsListDefault;
@property(class, nonatomic, readonly) Feature* kBraveAdblockScriptletDebugLogs;
@property(class, nonatomic, readonly) Feature* kBraveDarkModeBlock;
@property(class, nonatomic, readonly) Feature* kBraveDeAMP;
@property(class, nonatomic, readonly) Feature* kBraveDebounce;
@property(class, nonatomic, readonly) Feature* kBraveDomainBlock;
@property(class, nonatomic, readonly) Feature* kBraveDomainBlock1PES;
@property(class, nonatomic, readonly) Feature* kBraveNTPBrandedWallpaper;
@property(class, nonatomic, readonly)
Feature* kBraveNTPBrandedWallpaperSurveyPanelist;
@property(class, nonatomic, readonly) Feature* kBraveNewsCardPeekFeature;
@property(class, nonatomic, readonly) Feature* kBraveNewsFeedUpdate;
@property(class, nonatomic, readonly) Feature* kBraveReduceLanguage;
@property(class, nonatomic, readonly) Feature* kBraveSearchDefaultAPIFeature;
@property(class, nonatomic, readonly) Feature* kBraveShredFeature;
@property(class, nonatomic, readonly) Feature* kBraveShredCacheData;
@property(class, nonatomic, readonly) Feature* kBraveShieldsContentSettings;
@property(class, nonatomic, readonly) Feature* kBraveIOSDebugAdblock;
@property(class, nonatomic, readonly) Feature* kBraveIOSEnableFarblingPlugins;
@property(class, nonatomic, readonly)
Feature* kBraveShowStrictFingerprintingMode;
@property(class, nonatomic, readonly) Feature* kBraveSync;
@property(class, nonatomic, readonly, nullable)
Feature* kBraveWalletAnkrBalancesFeature;
@property(class, nonatomic, readonly, nullable)
Feature* kBraveWalletBitcoinFeature;
@property(class, nonatomic, readonly, nullable)
Feature* kBraveWalletZCashFeature;
@property(class, nonatomic, readonly) Feature* kConstellationEnclaveAttestation;
@property(class, nonatomic, readonly)
Feature* kCosmeticFilteringExtraPerfMetrics;
@property(class, nonatomic, readonly) Feature* kCosmeticFilteringJsPerformance;
@property(class, nonatomic, readonly) Feature* kCosmeticFilteringSyncLoad;
@property(class, nonatomic, readonly) Feature* kNTP;
@property(class, nonatomic, readonly) Feature* kSkusFeature;
@property(class, nonatomic, readonly) Feature* kUseDevUpdaterUrl;
@property(class, nonatomic, readonly) Feature* kVerboseLoggingFeature;
@property(class, nonatomic, readonly) Feature* kBraveHttpsByDefault;
@property(class, nonatomic, readonly) Feature* kBlockAllCookiesToggle;
@property(class, nonatomic, readonly) Feature* kBraveTranslateEnabled;
@property(class, nonatomic, readonly) Feature* kBraveAppleTranslateEnabled;
@property(class, nonatomic, readonly) Feature* kUseBraveUserAgent;
@property(class, nonatomic, readonly)
Feature* kShouldCancelRequestsForUserAgentChange;
@property(class, nonatomic, readonly) Feature* kUseProfileWebViewConfiguration;
@property(class, nonatomic, readonly) Feature* kBraveAllowExternalPurchaseLinks;
@property(class, nonatomic, readonly, nullable) Feature* kBraveWalletWebUIIOS;
@property(class, nonatomic, readonly, nullable)
Feature* kBraveWalletCardanoDAppSupportIOS;
@property(class, nonatomic, readonly) Feature* kAIChatWebUIEnabled;
@property(class, nonatomic, readonly) Feature* kBraveSyncDefaultPasswords;
@property(class, nonatomic, readonly)
Feature* kWebKitAdvancedPrivacyProtections;
@property(class, nonatomic, readonly) Feature* kBraveOrigin;
@property(class, nonatomic, readonly, nullable)
Feature* kBraveWalletCardanoEnabled;
@property(class, nonatomic, readonly) Feature* kUseChromiumWebViewsAutofill;
@property(class, nonatomic, readonly) Feature* kQuickViewEnabled;
@property(class, nonatomic, readonly) Feature* kSerpMetricsFeature;
@end
NS_ASSUME_NONNULL_END
#endif // BRAVE_IOS_BROWSER_API_FEATURES_FEATURES_H_