Skip to content

Cosmetic filtering fails on Safari preloaded pages (iOS/iPadOS) #655

@abvfx

Description

@abvfx

Prerequisites

  • I verified that this is not a filter list issue. Report any issues with filter lists or broken website functionality by using the chat icon in the popup panel.
  • This is NOT a YouTube, Facebook or Twitch report. These sites MUST be reported by clicking their respective links.
  • This is not a support issue or a question. For support, questions, or help, visit /r/uBlockOrigin.
  • I performed a cursory search of the issue tracker to avoid opening a duplicate issue.
  • The issue is not present after disabling uBO Lite in the browser.

I tried to reproduce the issue when...

  • uBO Lite is the only extension.
  • using a new, unmodified browser profile.

Description

When Safari preloads a page via "Preload Top Hit" (enabled by default), ad resources are blocked but cosmetic filters do not apply. Empty ad containers remain visible as blank spaces. A page reload applies cosmetic filtering correctly.

Disabling "Preload Top Hit" (Settings → Safari → Preload Top Hit) eliminates the issue.

Reproduces on every iOS/iPadOS version that supports uBOL.

A specific URL where the issue occurs.

https://www.macrumors.com/

Any fast-loading ad-heavy site works.

Steps to Reproduce

  1. Ensure Safari's "Preload Top Hit" is enabled (default).
  2. Set Ubol filtering mode to Optimal or Complete.
  3. Type a URL (e.g., macrumors.com) in the Safari address bar.
  4. Wait a moment for Safari to preload the site, then tap to navigate.
  5. Observe blank spaces where ads were blocked.
  6. Reload the page: blank spaces disappear, cosmetic filtering now applied.

Expected behavior

Cosmetic filters apply on preloaded pages without requiring a reload.

Actual behavior

Cosmetic filters do not apply on preloaded pages. Network blocking works; cosmetic filtering does not. Reload fixes it.

Troubleshooting information

name: uBlock Origin Lite
version: 2026.405.2010
browser: Safari Mobile 26.4 (ios)
filtering:
 default: complete
permission: all
rules: 125096
rulesets:
 adguard-mobile
 easylist
 easyprivacy
 ublock-filters
scripting:
 prevent-popup
 adguard-mobile.main
 adguard-mobile.isolated
 css-specific
 ublock-filters.isolated
 css-generic-some
 ublock-filters.main
 css-generic-all
 easyprivacy.main
 css-procedural
 css-generichigh
 easyprivacy.isolated

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions