Cursor rule Cursor
ALWAYS use the centralized dependency provider for all service dependencies.
Cursor rule Cursor
ALWAYS use the centralized dependency provider for all service dependencies.
Cursor rule Cursor
This document provides a comprehensive overview of how content blocking has been implemented on iOS to protect user privacy and block tracking attempts. Our implementation uses a dual-approach strategy that combines the efficiency of WebKit's native content blocking with the flexibility of JavaScript-based protection.
Cursor rule Cursor
The DuckDuckGo browser apps for iOS and macOS leverage Apple's Unified Logging System for capturing telemetry and debugging information. This system enables efficient tracking of app behavior, issue diagnosis, and performance monitoring in a structured and privacy-conscious manner.
Cursor rule Cursor
Define a concrete pattern for removing .shared singletons in the macOS app by replacing them with app-owned instances and dependency injection. The AIChatPreferences and AboutPreferences refactors in AppDelegate are canonical examples.
Cursor rule Cursor
Use proper service management for background agents.
Cursor rule Cursor
ALWAYS use WindowsManager for creating and managing browser windows.
Cursor rule Cursor
Maestro tests can run on either iPhone or iPad simulators based on tags in the test YAML files. This allows you to test iPad-specific UI layouts and features while maintaining a single test suite.
Cursor rule Cursor
NetworkQualityMonitor uses a browser-optimized scoring algorithm that prioritizes latency and consistency over raw bandwidth. The scoring is weighted as follows.
Cursor rule Cursor
The NetworkQualityMonitor uses carefully tuned parameters to balance speed and accuracy for browser performance testing.
Cursor rule Cursor
The NetworkQualityMonitor is a comprehensive network quality testing framework designed for the DuckDuckGo Privacy Browser. It provides pre-flight network connectivity and performance checks to ensure optimal browser performance.
Cursor rule Cursor
NetworkQualityMonitor displays variance in milliseconds (user-friendly) but scores using Coefficient of Variation (CV) internally. This provides fair comparison across different latency ranges.
Cursor rule Cursor
// Use weak/unowned references appropriately class ViewController: UIViewController { private var timer: Timer?
Cursor rule Cursor
Rules for creating and maintaining pixel definition JSON5 files that document pixels fired by the iOS and macOS apps.
Cursor rule Cursor
How to define, name, and fire pixels on iOS and macOS.
Cursor rule Cursor
Cursor rule "privacy-security" from duckduckgo/apple-browsers, covering privacy & security guidelines, core principles, privacy by design, secure storage and data handling.
Cursor rule Cursor
DuckDuckGo.xcworkspace/ # Main workspace (ALWAYS open this) ├── iOS/ # iOS app target ├── macOS/ # macOS app target ├── SharedPackages/ # Cross-platform Swift packages ├── fastlane/ # CI/CD automation └── README.md # Main project documentation.
Cursor rule Cursor
PR, pull request, commit, push, git push, gh pr create, open PR, create PR, reviewer, Asana task, merge, GitHub.
Cursor rule Cursor
These guidelines encapsulate vital information for using SecureVault in our application. SecureVault is our secure storage system built on GRDB with SQLCipher encryption, providing a layered security approach for sensitive data.
Cursor rule Cursor
SharedPackages/ ├── FeatureName/ │ ├── Package.swift │ ├── README.md │ ├── Sources/ │ │ └── FeatureName/ │ │ ├── Public/ # Public API │ │ ├── Internal/ # Internal implementation │ │ └── Resources/ # Assets and resources │ └── Tests/ │ └── FeatureNameTests/ │ └── FeatureTests.swift.
Cursor rule Cursor
DuckDuckGo's subscription system provides access to premium features including VPN (Network Protection), Personal Information Removal (PIR), Identity Theft Restoration (ITR), and AI Chat. The system supports multiple purchase platforms and cross-platform activation.
Cursor rule Cursor
Create reusable ViewModifiers for common styling.
Cursor rule Cursor
Cursor rule "swiftui-style" from duckduckgo/apple-browsers, covering view structure, view organization, design system integration, required: use designresourceskit colors and required: use designresourceskit icons.
Cursor rule Cursor
This guide covers testing practices and patterns for the DuckDuckGo browser on iOS and macOS platforms.
Cursor rule Cursor
This guide covers UI testing practices and patterns specifically for the DuckDuckGo macOS browser.