Skip to content

Commit c38fdeb

Browse files
authored
fix(chrome-extension): Enable support for Metamask & OKX; Mark unsupported components (#6179)
1 parent 2692124 commit c38fdeb

File tree

8 files changed

+23
-64
lines changed

8 files changed

+23
-64
lines changed

.changeset/twelve-ducks-refuse.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@clerk/chrome-extension': minor
3+
---
4+
5+
- Explicitly mark `GoogleOneTap` and `SignInWithMetamaskButton` UI components as deprecated and unsupported (due to the requirement of Remotely Hosted Code) to help avoid confusion.
6+
7+
- Enable Metamask and OKXWallet Web3 for non-popup extensions.

packages/chrome-extension/src/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
export * from '@clerk/clerk-react';
2+
23
export type { StorageCache } from './internal/utils/storage';
34

4-
// The order matters since we want override @clerk/clerk-react ClerkProvider
5-
export { ClerkProvider } from './react';
5+
// The order matters since we want override @clerk/clerk-react components
6+
export { ClerkProvider, GoogleOneTap } from './react';
67

78
// Override Clerk React error thrower to show that errors come from @clerk/chrome-extension
89
import { setErrorThrowerOptions } from '@clerk/clerk-react/internal';
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* @deprecated This component is not supported in Browser Extensions due to Chrome's security restrictions around remotely hosted code.
3+
* @see https://clerk.com/docs/references/browser-extensions/browser-security-restrictions
4+
*/
5+
export const GoogleOneTap = () => null;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export { ClerkProvider } from './ClerkProvider';
2+
export { GoogleOneTap } from './NotSupported';

packages/clerk-js/src/core/clerk.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1986,35 +1986,20 @@ export class Clerk implements ClerkInterface {
19861986
};
19871987

19881988
public authenticateWithMetamask = async (props: AuthenticateWithMetamaskParams = {}): Promise<void> => {
1989-
if (__BUILD_DISABLE_RHC__) {
1990-
clerkUnsupportedEnvironmentWarning('Metamask');
1991-
return;
1992-
}
1993-
19941989
await this.authenticateWithWeb3({
19951990
...props,
19961991
strategy: 'web3_metamask_signature',
19971992
});
19981993
};
19991994

20001995
public authenticateWithCoinbaseWallet = async (props: AuthenticateWithCoinbaseWalletParams = {}): Promise<void> => {
2001-
if (__BUILD_DISABLE_RHC__) {
2002-
clerkUnsupportedEnvironmentWarning('Coinbase Wallet');
2003-
return;
2004-
}
2005-
20061996
await this.authenticateWithWeb3({
20071997
...props,
20081998
strategy: 'web3_coinbase_wallet_signature',
20091999
});
20102000
};
20112001

20122002
public authenticateWithOKXWallet = async (props: AuthenticateWithOKXWalletParams = {}): Promise<void> => {
2013-
if (__BUILD_DISABLE_RHC__) {
2014-
clerkUnsupportedEnvironmentWarning('OKX Wallet');
2015-
return;
2016-
}
2017-
20182003
await this.authenticateWithWeb3({
20192004
...props,
20202005
strategy: 'web3_okx_wallet_signature',
@@ -2030,11 +2015,6 @@ export class Clerk implements ClerkInterface {
20302015
legalAccepted,
20312016
secondFactorUrl,
20322017
}: ClerkAuthenticateWithWeb3Params): Promise<void> => {
2033-
if (__BUILD_DISABLE_RHC__) {
2034-
clerkUnsupportedEnvironmentWarning('Web3');
2035-
return;
2036-
}
2037-
20382018
if (!this.client || !this.environment) {
20392019
return;
20402020
}

packages/clerk-js/src/core/resources/SignIn.ts

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ import {
6161
clerkInvalidStrategy,
6262
clerkMissingOptionError,
6363
clerkMissingWebAuthnPublicKeyOptions,
64-
clerkUnsupportedEnvironmentWarning,
6564
clerkVerifyEmailAddressCalledBeforeCreate,
6665
clerkVerifyPasskeyCalledBeforeCreate,
6766
clerkVerifyWeb3WalletCalledBeforeCreate,
@@ -274,11 +273,6 @@ export class SignIn extends BaseResource implements SignInResource {
274273
};
275274

276275
public authenticateWithWeb3 = async (params: AuthenticateWithWeb3Params): Promise<SignInResource> => {
277-
if (__BUILD_DISABLE_RHC__) {
278-
clerkUnsupportedEnvironmentWarning('Web3');
279-
return this;
280-
}
281-
282276
const { identifier, generateSignature, strategy = 'web3_metamask_signature' } = params || {};
283277
const provider = strategy.replace('web3_', '').replace('_signature', '') as Web3Provider;
284278

@@ -325,11 +319,6 @@ export class SignIn extends BaseResource implements SignInResource {
325319
};
326320

327321
public authenticateWithMetamask = async (): Promise<SignInResource> => {
328-
if (__BUILD_DISABLE_RHC__) {
329-
clerkUnsupportedEnvironmentWarning('Metamask');
330-
return this;
331-
}
332-
333322
const identifier = await getMetamaskIdentifier();
334323
return this.authenticateWithWeb3({
335324
identifier,
@@ -339,11 +328,6 @@ export class SignIn extends BaseResource implements SignInResource {
339328
};
340329

341330
public authenticateWithCoinbaseWallet = async (): Promise<SignInResource> => {
342-
if (__BUILD_DISABLE_RHC__) {
343-
clerkUnsupportedEnvironmentWarning('Coinbase Wallet');
344-
return this;
345-
}
346-
347331
const identifier = await getCoinbaseWalletIdentifier();
348332
return this.authenticateWithWeb3({
349333
identifier,
@@ -353,11 +337,6 @@ export class SignIn extends BaseResource implements SignInResource {
353337
};
354338

355339
public authenticateWithOKXWallet = async (): Promise<SignInResource> => {
356-
if (__BUILD_DISABLE_RHC__) {
357-
clerkUnsupportedEnvironmentWarning('OKX Wallet');
358-
return this;
359-
}
360-
361340
const identifier = await getOKXWalletIdentifier();
362341
return this.authenticateWithWeb3({
363342
identifier,

packages/clerk-js/src/core/resources/SignUp.ts

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import { normalizeUnsafeMetadata } from '../../utils/resourceParams';
4242
import {
4343
clerkInvalidFAPIResponse,
4444
clerkMissingOptionError,
45-
clerkUnsupportedEnvironmentWarning,
4645
clerkVerifyEmailAddressCalledBeforeCreate,
4746
clerkVerifyWeb3WalletCalledBeforeCreate,
4847
} from '../errors';
@@ -183,11 +182,6 @@ export class SignUp extends BaseResource implements SignUpResource {
183182
legalAccepted?: boolean;
184183
},
185184
): Promise<SignUpResource> => {
186-
if (__BUILD_DISABLE_RHC__) {
187-
clerkUnsupportedEnvironmentWarning('Web3');
188-
return this;
189-
}
190-
191185
const {
192186
generateSignature,
193187
identifier,
@@ -237,11 +231,6 @@ export class SignUp extends BaseResource implements SignUpResource {
237231
legalAccepted?: boolean;
238232
},
239233
): Promise<SignUpResource> => {
240-
if (__BUILD_DISABLE_RHC__) {
241-
clerkUnsupportedEnvironmentWarning('Metamask');
242-
return this;
243-
}
244-
245234
const identifier = await getMetamaskIdentifier();
246235
return this.authenticateWithWeb3({
247236
identifier,
@@ -257,11 +246,6 @@ export class SignUp extends BaseResource implements SignUpResource {
257246
legalAccepted?: boolean;
258247
},
259248
): Promise<SignUpResource> => {
260-
if (__BUILD_DISABLE_RHC__) {
261-
clerkUnsupportedEnvironmentWarning('Coinbase Wallet');
262-
return this;
263-
}
264-
265249
const identifier = await getCoinbaseWalletIdentifier();
266250
return this.authenticateWithWeb3({
267251
identifier,
@@ -277,11 +261,6 @@ export class SignUp extends BaseResource implements SignUpResource {
277261
legalAccepted?: boolean;
278262
},
279263
): Promise<SignUpResource> => {
280-
if (__BUILD_DISABLE_RHC__) {
281-
clerkUnsupportedEnvironmentWarning('OKX Wallet');
282-
return this;
283-
}
284-
285264
const identifier = await getOKXWalletIdentifier();
286265
return this.authenticateWithWeb3({
287266
identifier,

packages/clerk-js/src/utils/web3.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import type { Web3Provider } from '@clerk/types';
22

3+
import { clerkUnsupportedEnvironmentWarning } from '@/core/errors';
4+
35
import { toHex } from './hex';
46
import { getInjectedWeb3Providers } from './injectedWeb3Providers';
57

@@ -75,6 +77,11 @@ export async function generateSignatureWithOKXWallet(params: GenerateSignaturePa
7577

7678
async function getEthereumProvider(provider: Web3Provider) {
7779
if (provider === 'coinbase_wallet') {
80+
if (__BUILD_DISABLE_RHC__) {
81+
clerkUnsupportedEnvironmentWarning('Coinbase Wallet');
82+
return null;
83+
}
84+
7885
const createCoinbaseWalletSDK = await import('@coinbase/wallet-sdk').then(mod => mod.createCoinbaseWalletSDK);
7986
const sdk = createCoinbaseWalletSDK({
8087
preference: {

0 commit comments

Comments
 (0)