First-party-resource branch of the Standard-mode un-hide: the same ###navAdBanner match, but the banner holds a same-origin image and only the label “Ad”, so the significant-text branch cannot apply and only the first-party src can un-hide it. Pairs with cosmetic-id-adbanner-3p, which differs only in the image's origin.
Brave's Standard-mode rule (content_cosmetic.ts, isSubTreeFirstParty + showsSignificantText) un-hides a generic EasyList match 0.3–2.5 s after load (the time moves between runs) when the element's subtree is first-party (a first-party src, or no remote resources at all) or it shows significant text (≥30 characters and ≥5 words). It stays hidden only when it has a third-party resource and little text.
Expected in Standard: hidden first, then visible on the settled read, as in Brave. A build without the Standard un-hide keeps it hidden. In Aggressive the element stays hidden.
The release-test runner reads this page twice (about 250 ms after network idle, and ≥3 s after loadEventEnd) and samples the banner from document start. It grades settled_expectations on the second read and, where that says visible, also requires that the banner was hidden at some point first. The un-hide time moves between runs (0.3–2.5 s), so no fixed early read proves that. The status line below mirrors it with the page's own sampler.