web3.js
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 lint
with success and extended the tests and types if necessary. - [ ] I ran
npm run test:unit
with success. - [ ] I ran
npm run test:coverage
and my test cases cover all the lines and branches of the added code. - [ ] I ran
npm run build
and testeddist/web3.min.js
in 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.md
file 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
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.