web3.js
                                
                                 web3.js copied to clipboard
                                
                                    web3.js copied to clipboard
                            
                            
                            
                        Throw `InsecureContextError` if `window.crypto.subtle` is `undefined`
Description
Fixes #6485
Type of change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
Checklist:
- [ ] I have selected the correct base branch.
- [ ] I have performed a self-review of my own code.
- [ ] I have commented my code, particularly in hard-to-understand areas.
- [ ] I have made corresponding changes to the documentation.
- [ ] My changes generate no new warnings.
- [ ] Any dependent changes have been merged and published in downstream modules.
- [ ] I ran npm run lintwith success and extended the tests and types if necessary.
- [ ] I ran npm run test:unitwith success.
- [ ] I ran npm run test:coverageand my test cases cover all the lines and branches of the added code.
- [ ] I ran npm run buildand testeddist/web3.min.jsin a browser.
- [ ] I have tested my code on the live network.
- [ ] I have checked the Deploy Preview and it looks correct.
- [ ] I have updated the CHANGELOG.mdfile in the root folder.
- [ ] I have linked Issue(s) with this PR in "Linked Issues" menu.
Bundle Stats
Hey there, this message comes from a github action that helps you and reviewers to understand how these changes affect the size of this project's bundle.
As this PR is updated, I'll keep you updated on how the bundle size is impacted.
Total
| Asset | Old size | New size | Diff | Diff % | 
|---|---|---|---|---|
| Total | 590 KB | 591 KB | 900 bytes | 0.15% | 
View detailed bundle breakdown
Added
No assets were added
Removed
No assets were removed
Bigger
No assets were bigger
Smaller
No assets were smaller
Unchanged
| Asset | Old size | New size | Diff | Diff % | 
|---|---|---|---|---|
| web3.min.js | 572 KB | 573 KB | 900 bytes | 0.15% | 
| ../lib/commonjs/index.d.ts | 8.63 KB | 8.63 KB | 0 | 0.00% | 
| ../lib/commonjs/accounts.d.ts | 3.89 KB | 3.89 KB | 0 | 0.00% | 
| ../lib/commonjs/types.d.ts | 2.45 KB | 2.45 KB | 0 | 0.00% | 
| ../lib/commonjs/web3.d.ts | 1.14 KB | 1.14 KB | 0 | 0.00% | 
| ../lib/commonjs/abi.d.ts | 1000 bytes | 1000 bytes | 0 | 0.00% | 
| ../lib/commonjs/eth.exports.d.ts | 280 bytes | 280 bytes | 0 | 0.00% | 
| ../lib/commonjs/providers.exports.d.ts | 148 bytes | 148 bytes | 0 | 0.00% | 
| ../lib/commonjs/version.d.ts | 60 bytes | 60 bytes | 0 | 0.00% | 
Deploying with   Cloudflare Pages
  Cloudflare Pages
| Latest commit: | 23bc4fb | 
| Status: | ✅ Deploy successful! | 
| Preview URL: | https://2a76a872.web3-js-docs.pages.dev | 
| Branch Preview URL: | https://6485-throw-insecurecontexter.web3-js-docs.pages.dev | 
To resume working on this after merging: https://github.com/web3/web3.js/pull/6398/ and https://github.com/web3/web3.js/pull/6486
Codecov Report
Merging #6487 (23bc4fb) into 4.x (e1080d9) will increase coverage by
0.00%. Report is 39 commits behind head on 4.x. The diff coverage is95.83%.
Additional details and impacted files
@@           Coverage Diff           @@
##              4.x    #6487   +/-   ##
=======================================
  Coverage   91.01%   91.01%           
=======================================
  Files         214      214           
  Lines        8121     8134   +13     
  Branches     2174     2182    +8     
=======================================
+ Hits         7391     7403   +12     
- Misses        730      731    +1     
| Flag | Coverage Δ | |
|---|---|---|
| UnitTests | 91.01% <95.83%> (+<0.01%) | :arrow_up: | 
Flags with carried forward coverage won't be shown. Click here to find out more.
| Components | Coverage Δ | |
|---|---|---|
| web3 | ∅ <ø> (∅) | |
| web3-core | ∅ <ø> (∅) | |
| web3-errors | ∅ <ø> (∅) | |
| web3-eth | ∅ <ø> (∅) | |
| web3-eth-abi | ∅ <ø> (∅) | |
| web3-eth-accounts | ∅ <ø> (∅) | |
| web3-eth-contract | ∅ <ø> (∅) | |
| web3-eth-ens | ∅ <ø> (∅) | |
| web3-eth-iban | ∅ <ø> (∅) | |
| web3-eth-personal | ∅ <ø> (∅) | |
| web3-net | ∅ <ø> (∅) | |
| web3-providers-http | ∅ <ø> (∅) | |
| web3-providers-ipc | ∅ <ø> (∅) | |
| web3-providers-ws | ∅ <ø> (∅) | |
| web3-rpc-methods | ∅ <ø> (∅) | |
| web3-utils | ∅ <ø> (∅) | |
| web3-validator | ∅ <ø> (∅) | 
so if using a testing env is causing changes in code to be tested, thn it should be avoided.
and in case of requirement of SSL, I think thats ok.
I am not in favor of using jsdom for browser testing, as it already need many changes in our lib. jest + jsdom is direction that we will not go.
So we should use cypress for browser testing for now.
Sounds good. However, the case that this PR is handling does not show in the browser for local addresses. So, it would not happen with our Cypress configuration. It happens only with remote Urls that is also not secure (http and not with https). And this case is simulated in jsdom currently. However, We can also not use jsdom and just set mocking the window and set window.crypto.subtle to undefined, in order to simulate the case.
This PR has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. If you believe this was a mistake, please comment.