diff --git a/.isu/issues.json b/.isu/issues.json index a7a7988..88c7a34 100644 --- a/.isu/issues.json +++ b/.isu/issues.json @@ -4941,7 +4941,7 @@ "id": 404, "repo": "we", "title": "Opera traffic bundle throws during offline hydration", - "body": "Parent: isu issue 281. Related: isu issue 335.\\n\\nAfter adding the missing same-origin Opera traffic bundle to the offline snapshot and seeding it in crates/e2e/scenarios/real-web/opera.com.we, the scenario no longer reports a missing fetch for:\\n\\n https://cdn-production-opera-website.operacdn.com/staticfiles/traffic.0f43603a9af9.js\\n\\nThe bundle now executes, but it throws during both desktop and mobile loads:\\n\\n [script] runtime error in https://cdn-production-opera-website.operacdn.com/staticfiles/traffic.0f43603a9af9.js: TypeError: Cannot read properties of undefined (reading 'isGX') (line 1:69071)\\n\\nRepro:\\n cargo run -p we-e2e -- --scenario crates/e2e/scenarios/real-web/opera.com.we --out-dir crates/e2e/artifacts\\n\\nCurrent result with the cached traffic bundle:\\n- desktop L101: 64.68% match (433898/1228500 px differ)\\n- mobile L113: 67.81% match (105970/329160 px differ)\\n- DOM and interaction assertions still pass, including the SurveyMonkey container.\\n\\nArtifacts:\\n- crates/e2e/artifacts/real-web/opera.com/desktop.png\\n- crates/e2e/artifacts/real-web/opera.com/desktop.png.diff.png\\n- crates/e2e/artifacts/real-web/opera.com/desktop_dom.txt\\n- crates/e2e/artifacts/real-web/opera.com/desktop_interaction_dom.txt\\n- crates/e2e/artifacts/real-web/opera.com/mobile.png\\n- crates/e2e/artifacts/real-web/opera.com/mobile.png.diff.png\\n- crates/e2e/artifacts/real-web/opera.com/mobile_dom.txt\\n- crates/e2e/artifacts/real-web/opera.com/mobile_interaction_dom.txt\\n\\nInvestigation notes:\\n- A reduced VM test for function/class default parameters with an explicit undefined argument passes, including an arrow factory calling new C(arg).\\n- The failing bundle shape starts around class vt { constructor(r = {}) { ... this.config = { isGX: r.isGX ?? false, ... } } } and is invoked once with an undefined factory argument before a second configured construction.\\n\\nAcceptance criteria:\\n- Minimize the traffic bundle failure to a deterministic JS or DOM-bridge fixture.\\n- Fix the root cause so the cached traffic bundle executes without this TypeError in opera.com.we.\\n- Keep the traffic bundle cache seed in the Opera scenario and continue tracking the remaining Chromium screenshot parity gap under isu issue 281.", + "body": "Parent: isu issue 281. Related: isu issue 335.\n\nAfter adding the missing same-origin Opera traffic bundle to the offline snapshot and seeding it in crates/e2e/scenarios/real-web/opera.com.we, the scenario no longer reports a missing fetch for:\n\n https://cdn-production-opera-website.operacdn.com/staticfiles/traffic.0f43603a9af9.js\n\nThe bundle now executes, but it throws during both desktop and mobile loads:\n\n [script] runtime error in https://cdn-production-opera-website.operacdn.com/staticfiles/traffic.0f43603a9af9.js: TypeError: Cannot read properties of undefined (reading 'isGX') (line 1:69071)\n\nRepro:\n cargo run -p we-e2e -- --scenario crates/e2e/scenarios/real-web/opera.com.we --out-dir crates/e2e/artifacts\n\nCurrent result with the cached traffic bundle:\n- desktop L101: 64.68% match (433898/1228500 px differ)\n- mobile L113: 67.81% match (105970/329160 px differ)\n- DOM and interaction assertions still pass, including the SurveyMonkey container.\n\nArtifacts:\n- crates/e2e/artifacts/real-web/opera.com/desktop.png\n- crates/e2e/artifacts/real-web/opera.com/desktop.png.diff.png\n- crates/e2e/artifacts/real-web/opera.com/desktop_dom.txt\n- crates/e2e/artifacts/real-web/opera.com/desktop_interaction_dom.txt\n- crates/e2e/artifacts/real-web/opera.com/mobile.png\n- crates/e2e/artifacts/real-web/opera.com/mobile.png.diff.png\n- crates/e2e/artifacts/real-web/opera.com/mobile_dom.txt\n- crates/e2e/artifacts/real-web/opera.com/mobile_interaction_dom.txt\n\nInvestigation notes:\n- A reduced VM test for function/class default parameters with an explicit undefined argument passes, including an arrow factory calling new C(arg).\n- The failing bundle shape starts around class vt { constructor(r = {}) { ... this.config = { isGX: r.isGX ?? false, ... } } } and is invoked once with an undefined factory argument before a second configured construction.\n\nAcceptance criteria:\n- Minimize the traffic bundle failure to a deterministic JS or DOM-bridge fixture.\n- Fix the root cause so the cached traffic bundle executes without this TypeError in opera.com.we.\n- Keep the traffic bundle cache seed in the Opera scenario and continue tracking the remaining Chromium screenshot parity gap under isu issue 281.", "labels": [ "real-web" ],