[2026-10-29] eagle: work/projects/cpm-post-release-analysis-2026-10-27.md
This commit is contained in:
1 parent
56934f157e
commit
91376126e1
1 file changed
+1
@@ -374,3 +374,4 @@ Re-cut of the post-release data (macOS 1.213.x, 26–27 Oct, matured since the s
|
||||
- **Decisive options:** (a) macOS build where the monitor ignores error documents (`.alternateHtmlLoad` / failed provisional navigations) and M4 never fires for them; compare wake share and permanent rate with the current build; (b) a flag parameter on the episode pixel (needs the privacy review you wanted to avoid).
|
||||
- **Filter implemented (28 Oct, uncommitted, not pushed):** worktree `apple-browsers.git/cpm-error-page-filter`, branch `alex/cpm-error-page-filter` from `8023e4cb5c`. New `CPMNavigationKind.errorPage`; `CPMMessagingHealthMonitor` does not measure a commit/finish of a tab whose current navigation is `.errorPage` (`commitNavigation`, `finishNavigation`), so no timeout, no episode and no M4 for it; macOS `Navigation.cpmMessagingNavigationKind` returns `.errorPage` for `.alternateHtmlLoad` (`PrivacyDashboardTabExtension.swift`). Tests: two monitor unit tests (`testErrorPageIsNotMeasured`, `testNavigationAfterErrorPageIsMeasured`) and the harness `CPMReproErrorPageTests` (3 tests, `CPM_REPRO=1`), all green; the same harness tests failed (`other / failed_tab_response / tabs=1`) before the change, and with it the background still wakes at the navigation but no episode is counted. SwiftLint strict: 0 violations. Not done: iOS error pages (no `loadAlternateHTML` path found on iOS; not checked how they are shown), running the real app, comparing wake share between builds.
|
||||
- **macOS app build with the filter:** `xcodebuild -scheme "macOS Browser" -configuration Debug CODE_SIGNING_ALLOWED=NO` succeeded (the change compiles in the app target). Product: `/private/tmp/claude-501/-Users-admin-DuckDuckGo-apple-browsers-git/2490a862-c422-4358-b940-1f30df9cbb83/scratchpad/app-dd/Build/Products/Debug/DuckDuckGo.app` (scratchpad of that session; may be cleaned). The app was not launched: no window run on the host Mac. The real-app check is still open: three tabs idle >30 s, a dead host in each, `log stream` for `CPM Health Monitor`; with the filter there should be no `timeoutElapsed` for the error pages.
|
||||
- **Integration test (28–29 Oct):** `macOS/IntegrationTests/Tab/CPMErrorPageMonitoringTests.swift` (added to both Integration Tests targets in the pbxproj). Real `Tab` + `WKWebView` + `TestSchemeHandler` failing with `NSURLErrorCannotFindHost`; the tab gets a stub `WebExtensionManaging` whose health monitor records events. Asserts the monitor sees `started:other`, `failed`, then `started:error_page`, and the error page finish for the failed URL arrives after it (the real macOS path: `Navigation` alternate load → `.errorPage`). `build-for-testing` of scheme `macOS Integration Tests` succeeded and SwiftLint strict is clean; **not run locally** (integration tests are left to CI, no host windows). Without the macOS mapping the second start would be `started:other` and the test would fail; that was not observed, only reasoned.
|
||||
Reference in new issue
Block a user