Skip to content

chore: temp integration of advanced charts - #45271

Draft
sahar-fehri wants to merge 2 commits into
docs/advanced-charts-extension-integrationfrom
chore/temp-advanced-charts-integ
Draft

sahar-fehri wants to merge 2 commits into
docs/advanced-charts-extension-integrationfrom
chore/temp-advanced-charts-integ

Conversation

@sahar-fehri

@sahar-fehri sahar-fehri commented Aug 6, 2026 •

Copy link
Copy Markdown
Contributor

Description

Changelog

CHANGELOG entry:

Related issues

Fixes:
Related: #45233

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamask-ci

metamask-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

👨‍🔧 @MetaMask/extension-platform (1 files, +5 -0)
  • 📁 development/
    • 📁 webpack/
      • 📄 webpack.config.ts +5 -0

👨‍🔧 @itsyoboieltr (1 files, +5 -0)
  • 📁 development/
    • 📁 webpack/
      • 📄 webpack.config.ts +5 -0

@sahar-fehri

sahar-fehri commented Aug 6, 2026 •

Copy link
Copy Markdown
Contributor Author

TradingView's charting_library.js needs to reach into its own inner <iframe> via same-origin DOM access. In the extension we're forced to host the chart in a sandboxed page, which Chrome gives an opaque origin ("null"). Same-origin access from a "null" origin is blocked, so TradingView throws before the chart can mount. This seems to be a Chrome MV3 wall.

Screenshot 2026-08-06 at 08 46 07

* @param options - Widget construction options (datafeed, formatters, etc.).
* @returns The constructed TradingView widget.
*/
function createChartWidget(config, options) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This chartLogic.iife.js is the compiled IIFE of the shared @metamask/advanced-chart-core engine, hand-copied from mobile's build output just to prototype the extension TDP integration. The extension isn't wired to core — there's no dependency and nothing rebuilds this file; it exists only for this temporary spike.

createChartWidget here is the last line of our code before it hands off to TradingView's proprietary charting_library.js (new TvWidget(...)), which is where the opaque-origin SecurityError is thrown

Follow-up: replace this copy by adding @metamask/advanced-chart-core as a real dependency and bundling it via webpack (like mobile) MetaMask/core#9762

@metamask-ci

metamask-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor
Builds ready [0f72070]
⚡ Performance Benchmarks (Total: 🟢 11 pass · 🟡 10 warn · 🔴 3 fail)

Baseline (latest main): 171ed20 | Date: 7/28/2026 | Pipeline: 31081850930 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 srpButtonToSrpForm(p75) [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🔴 [CI log]🔴 [CI log]

Regressions (🔴 3 failures)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]
🟡 load_new_account
🟡 [CI log]
🟡 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
🔴 bridge_load_asset_picker

📈 Results compared to the previous 5 runs on main

  • ↑ loadNewAccount/load_new_account: +41%
  • ↑ loadNewAccount/total: +41%
  • ↑ loadNewAccount/inp: +14%
  • ↑ loadNewAccount/cls: +1710%
  • ↓ bridgeUserActions/bridge_load_asset_picker: -11%
  • ↓ bridgeUserActions/longTaskCount: -44%
  • ↓ bridgeUserActions/longTaskTotalDuration: -33%
  • ↑ loadNewAccount/load_new_account: +21%
  • ↑ loadNewAccount/total: +21%
  • ↓ loadNewAccount/inp: -24%
  • ↓ loadNewAccount/fcp: -46%
  • ↑ loadNewAccount/lcp: +1172%
  • ↑ confirmTx/confirm_tx: +12%
  • ↓ confirmTx/longTaskCount: -100%
  • ↓ confirmTx/longTaskTotalDuration: -100%
  • ↓ confirmTx/longTaskMaxDuration: -100%
  • ↓ confirmTx/tbt: -100%
  • ↑ confirmTx/total: +12%
  • ↓ confirmTx/inp: -17%
  • ↑ confirmTx/lcp: +1204%
  • ↑ bridgeUserActions/bridge_load_page: +249%
  • ↑ bridgeUserActions/bridge_load_asset_picker: +1129%
  • ↓ bridgeUserActions/longTaskCount: -100%
  • ↓ bridgeUserActions/longTaskTotalDuration: -100%
  • ↓ bridgeUserActions/longTaskMaxDuration: -100%
  • ↓ bridgeUserActions/tbt: -100%
  • ↑ bridgeUserActions/total: +177%
  • ↓ bridgeUserActions/fcp: -42%
  • ↑ bridgeUserActions/lcp: +1144%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 confirmTx/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
–🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ startupStandardHome/uiStartup: -19%
  • ↓ startupStandardHome/load: -17%
  • ↓ startupStandardHome/domContentLoaded: -17%
  • ↓ startupStandardHome/domInteractive: -18%
  • ↓ startupStandardHome/backgroundConnect: -17%
  • ↓ startupStandardHome/firstReactRender: -21%
  • ↓ startupStandardHome/initialActions: -33%
  • ↓ startupStandardHome/loadScripts: -17%
  • ↓ startupStandardHome/setupStore: -24%
  • ↓ startupStandardHome/numNetworkReqs: -21%
  • ↓ startupStandardHome/longTaskCount: -33%
  • ↓ startupStandardHome/longTaskTotalDuration: -26%
  • ↓ startupStandardHome/longTaskMaxDuration: -21%
  • ↓ startupStandardHome/tbt: -24%
  • ↓ startupStandardHome/inp: -11%
  • ↓ startupStandardHome/fcp: -17%
  • ↓ startupStandardHome/lcp: -16%
  • ↑ startupStandardHome/domInteractive: +44%
  • ↓ startupStandardHome/numNetworkReqs: -13%
  • ↑ startupStandardHome/fcp: +47%
  • ↑ startupPowerUserHome/uiStartup: +11%
  • ↑ startupPowerUserHome/load: +15%
  • ↑ startupPowerUserHome/domContentLoaded: +15%
  • ↑ startupPowerUserHome/domInteractive: +38%
  • ↑ startupPowerUserHome/backgroundConnect: +18%
  • ↑ startupPowerUserHome/firstReactRender: +10%
  • ↑ startupPowerUserHome/initialActions: +11%
  • ↑ startupPowerUserHome/loadScripts: +15%
  • ↑ startupPowerUserHome/setupStore: +269%
  • ↑ startupPowerUserHome/inp: +23%
  • ↑ startupPowerUserHome/fcp: +35%
  • ↑ startupPowerUserHome/lcp: +11%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 232ms
  • 🟡 startupPowerUserHome/LCP: p75 3.2s
User Journey Benchmarks · Samples: 5 · mock API 🔴 3
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 total
🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 total
🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 assetClickToPriceChart
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ onboardingImportWallet/metricsToWalletReadyScreen: -12%
  • ↓ onboardingImportWallet/doneButtonToHomeScreen: -76%
  • ↓ onboardingImportWallet/openAccountMenuToAccountListLoaded: -89%
  • ↓ onboardingImportWallet/longTaskCount: -100%
  • ↓ onboardingImportWallet/longTaskTotalDuration: -100%
  • ↓ onboardingImportWallet/longTaskMaxDuration: -100%
  • ↓ onboardingImportWallet/tbt: -100%
  • ↓ onboardingImportWallet/total: -79%
  • ↓ onboardingNewWallet/skipBackupToMetricsScreen: -15%
  • ↓ onboardingNewWallet/longTaskCount: -100%
  • ↓ onboardingNewWallet/longTaskTotalDuration: -100%
  • ↓ onboardingNewWallet/longTaskMaxDuration: -100%
  • ↓ onboardingNewWallet/tbt: -100%
  • ↓ solanaAssetDetails/assetClickToPriceChart: -74%
  • ↓ solanaAssetDetails/longTaskCount: -100%
  • ↓ solanaAssetDetails/longTaskTotalDuration: -100%
  • ↓ solanaAssetDetails/longTaskMaxDuration: -100%
  • ↓ solanaAssetDetails/tbt: -100%
  • ↓ solanaAssetDetails/total: -74%
  • ↓ solanaAssetDetails/inp: -37%
  • ↓ solanaAssetDetails/fcp: -27%
  • ↓ solanaAssetDetails/lcp: -19%
  • ↓ importSrpHome/longTaskCount: -30%
  • ↓ importSrpHome/longTaskTotalDuration: -27%
  • ↓ importSrpHome/tbt: -26%
  • ↓ importSrpHome/inp: -27%
  • ↑ importSrpHome/fcp: +10%
  • ↑ importSrpHome/cls: +475%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 224ms
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 assetDetails/FCP: p75 2.1s
  • 🟡 solanaAssetDetails/FCP: p75 2.1s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 2.0s
  • 🟡 swap/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ dappPageLoad/pageLoadTime: -25%
  • ↓ dappPageLoad/domContentLoaded: -19%
  • ↓ dappPageLoad/firstPaint: -14%
  • ↓ dappPageLoad/firstContentfulPaint: -14%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 119 Bytes (0%)
  • ui: 5.06 KiB (0.03%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 28 Bytes (0%)
  • zip: 34.34 KiB (0.16%)

@metamask-ci

metamask-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor
Builds ready [5ba767f]
⚡ Performance Benchmarks (Total: 🟢 13 pass · 🟡 9 warn · 🔴 2 fail)

Baseline (latest main): 171ed20 | Date: 7/28/2026 | Pipeline: 31085334327 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🔴 [CI log]🔴 [CI log]

Regressions (🔴 2 failures)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]
🟡 load_new_account
🟡 [CI log]
🟡 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↑ loadNewAccount/load_new_account: +38%
  • ↑ loadNewAccount/total: +38%
  • ↑ loadNewAccount/inp: +14%
  • ↓ loadNewAccount/lcp: -12%
  • ↑ loadNewAccount/cls: +1710%
  • ↑ bridgeUserActions/bridge_load_page: +107%
  • ↑ bridgeUserActions/longTaskCount: +11%
  • ↑ bridgeUserActions/longTaskMaxDuration: +13%
  • ↑ bridgeUserActions/tbt: +11%
  • ↓ bridgeUserActions/lcp: -13%
  • ↑ loadNewAccount/load_new_account: +24%
  • ↑ loadNewAccount/total: +24%
  • ↓ loadNewAccount/inp: -17%
  • ↑ loadNewAccount/lcp: +1146%
  • ↑ confirmTx/confirm_tx: +11%
  • ↓ confirmTx/longTaskCount: -100%
  • ↓ confirmTx/longTaskTotalDuration: -100%
  • ↓ confirmTx/longTaskMaxDuration: -100%
  • ↓ confirmTx/tbt: -100%
  • ↑ confirmTx/total: +11%
  • ↓ confirmTx/inp: -24%
  • ↓ confirmTx/fcp: -47%
  • ↑ confirmTx/lcp: +1164%
  • ↑ bridgeUserActions/bridge_load_page: +434%
  • ↑ bridgeUserActions/bridge_load_asset_picker: +86%
  • ↓ bridgeUserActions/longTaskCount: -100%
  • ↓ bridgeUserActions/longTaskTotalDuration: -100%
  • ↓ bridgeUserActions/longTaskMaxDuration: -100%
  • ↓ bridgeUserActions/tbt: -100%
  • ↑ bridgeUserActions/total: +45%
  • ↓ bridgeUserActions/inp: -23%
  • ↑ bridgeUserActions/lcp: +1122%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 bridgeUserActions/FCP: p75 1.9s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
–🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ startupStandardHome/numNetworkReqs: -21%
  • ↑ startupStandardHome/firstReactRender: +13%
  • ↓ startupStandardHome/numNetworkReqs: -13%
  • ↓ startupPowerUserHome/uiStartup: -19%
  • ↑ startupPowerUserHome/backgroundConnect: +23%
  • ↓ startupPowerUserHome/firstReactRender: -15%
  • ↑ startupPowerUserHome/initialActions: +11%
  • ↓ startupPowerUserHome/setupStore: -71%
  • ↓ startupPowerUserHome/inp: -15%
  • ↓ startupPowerUserHome/lcp: -18%
User Journey Benchmarks · Samples: 5 · mock API 🔴 2
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🔴 [CI log]
🔴 total
🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • ↓ onboardingImportWallet/pwFormToMetricsScreen: -13%
  • ↑ onboardingImportWallet/metricsToWalletReadyScreen: +24%
  • ↓ onboardingImportWallet/doneButtonToHomeScreen: -92%
  • ↓ onboardingImportWallet/openAccountMenuToAccountListLoaded: -65%
  • ↓ onboardingImportWallet/longTaskCount: -100%
  • ↓ onboardingImportWallet/longTaskTotalDuration: -100%
  • ↓ onboardingImportWallet/longTaskMaxDuration: -100%
  • ↓ onboardingImportWallet/tbt: -100%
  • ↓ onboardingImportWallet/total: -85%
  • ↓ onboardingNewWallet/skipBackupToMetricsScreen: -13%
  • ↓ onboardingNewWallet/longTaskCount: -100%
  • ↓ onboardingNewWallet/longTaskTotalDuration: -100%
  • ↓ onboardingNewWallet/longTaskMaxDuration: -100%
  • ↓ onboardingNewWallet/tbt: -100%
  • ↓ solanaAssetDetails/assetClickToPriceChart: -69%
  • ↓ solanaAssetDetails/longTaskCount: -100%
  • ↓ solanaAssetDetails/longTaskTotalDuration: -100%
  • ↓ solanaAssetDetails/longTaskMaxDuration: -100%
  • ↓ solanaAssetDetails/tbt: -100%
  • ↓ solanaAssetDetails/total: -69%
  • ↓ solanaAssetDetails/inp: -21%
  • ↓ solanaAssetDetails/lcp: -13%
  • ↓ importSrpHome/loginToHomeScreen: -11%
  • ↓ importSrpHome/longTaskCount: -37%
  • ↓ importSrpHome/longTaskTotalDuration: -42%
  • ↓ importSrpHome/tbt: -39%
  • ↓ importSrpHome/inp: -17%
  • ↓ importSrpHome/lcp: -14%
  • ↑ importSrpHome/cls: +514%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 256ms
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 swap/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 119 Bytes (0%)
  • ui: 5.06 KiB (0.03%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 28 Bytes (0%)
  • zip: 22.26 KiB (0.1%)

This branch was previously deployed

1 inactive deployment
pr-comment — 5ba767f6 Deployed Aug 6, 2026 by sahar-fehri via Publish prerelease / Publish prerelease #157049
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant