Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

firestore: verify DOMException exists before using it in when base64 decoding #7130

Merged
merged 2 commits into from
Mar 16, 2023

Conversation

dconeybe
Copy link
Contributor

In #7115 the customer shows that the "browser" logic for decoding a base64 string was being invoked from a react-native app. In react-native, the DOMException class does not exist, which results in the following error:

ReferenceError: Property 'DOMException' doesn't exist

This usage of DOMException was added by #7019.

Although a react-native app should be using a different implementation of base64 decoding, we may as well be safe here so that the error message produced from a react-native app is more meaningful, something like Uncaught ReferenceError: atob() is not defined.

@dconeybe dconeybe self-assigned this Mar 16, 2023
@changeset-bot
Copy link

changeset-bot bot commented Mar 16, 2023

🦋 Changeset detected

Latest commit: fa2146b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@firebase/firestore Patch
firebase Patch
@firebase/firestore-compat Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@google-oss-bot
Copy link
Contributor

Size Report 1

Affected Products

  • @firebase/firestore

    TypeBase (a8be6ed)Merge (2754c2b)Diff
    browser278 kB278 kB+33 B (+0.0%)
    esm5346 kB346 kB+33 B (+0.0%)
    module278 kB278 kB+33 B (+0.0%)
  • @firebase/firestore-lite

    TypeBase (a8be6ed)Merge (2754c2b)Diff
    browser87.7 kB87.7 kB+33 B (+0.0%)
    esm5106 kB106 kB+33 B (+0.0%)
    module87.7 kB87.7 kB+33 B (+0.0%)
  • bundle

    12 size changes

    TypeBase (a8be6ed)Merge (2754c2b)Diff
    firestore (Persistence)283 kB283 kB+33 B (+0.0%)
    firestore (Query Cursors)222 kB222 kB+33 B (+0.0%)
    firestore (Query)219 kB219 kB+33 B (+0.0%)
    firestore (Read data once)207 kB207 kB+33 B (+0.0%)
    firestore (Realtime updates)209 kB209 kB+33 B (+0.0%)
    firestore (Transaction)190 kB190 kB+33 B (+0.0%)
    firestore (Write data)190 kB190 kB+33 B (+0.0%)
    firestore-lite (Query Cursors)81.6 kB81.6 kB+33 B (+0.0%)
    firestore-lite (Query)77.7 kB77.8 kB+33 B (+0.0%)
    firestore-lite (Read data once)59.9 kB59.9 kB+33 B (+0.1%)
    firestore-lite (Transaction)84.7 kB84.7 kB+33 B (+0.0%)
    firestore-lite (Write data)69.5 kB69.6 kB+33 B (+0.0%)

  • firebase

    TypeBase (a8be6ed)Merge (2754c2b)Diff
    firebase-compat.js750 kB750 kB+33 B (+0.0%)
    firebase-firestore-compat.js323 kB323 kB+33 B (+0.0%)
    firebase-firestore-lite.js94.4 kB94.5 kB+33 B (+0.0%)
    firebase-firestore.js327 kB327 kB+33 B (+0.0%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/vldPbJQND9.html

@google-oss-bot
Copy link
Contributor

Size Analysis Report 1

Affected Products

  • @firebase/firestore

    • AbstractUserDataWriter

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size24.6 kB24.7 kB+33 B (+0.1%)
      size-with-ext-deps83.6 kB83.6 kB+33 B (+0.0%)
    • Bytes

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size18.2 kB18.2 kB+33 B (+0.2%)
      size-with-ext-deps77.1 kB77.1 kB+33 B (+0.0%)
    • QueryEndAtConstraint

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size35.5 kB35.5 kB+33 B (+0.1%)
      size-with-ext-deps94.4 kB94.5 kB+33 B (+0.0%)
    • QueryFieldFilterConstraint

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size41.1 kB41.1 kB+33 B (+0.1%)
      size-with-ext-deps100 kB100 kB+33 B (+0.0%)
    • QueryStartAtConstraint

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size35.5 kB35.5 kB+33 B (+0.1%)
      size-with-ext-deps94.4 kB94.5 kB+33 B (+0.0%)
    • Transaction

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size50.3 kB50.4 kB+33 B (+0.1%)
      size-with-ext-deps109 kB109 kB+33 B (+0.0%)
    • WriteBatch

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size47.2 kB47.2 kB+33 B (+0.1%)
      size-with-ext-deps106 kB106 kB+33 B (+0.0%)
    • addDoc

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size120 kB120 kB+33 B (+0.0%)
      size-with-ext-deps180 kB180 kB+33 B (+0.0%)
    • aggregateQuerySnapshotEqual

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size32.9 kB33.0 kB+33 B (+0.1%)
      size-with-ext-deps92.3 kB92.3 kB+33 B (+0.0%)
    • and

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size42.6 kB42.6 kB+33 B (+0.1%)
      size-with-ext-deps102 kB102 kB+33 B (+0.0%)
    • arrayRemove

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size29.4 kB29.4 kB+33 B (+0.1%)
      size-with-ext-deps88.3 kB88.4 kB+33 B (+0.0%)
    • arrayUnion

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size29.4 kB29.4 kB+33 B (+0.1%)
      size-with-ext-deps88.3 kB88.4 kB+33 B (+0.0%)
    • deleteDoc

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size111 kB111 kB+33 B (+0.0%)
      size-with-ext-deps171 kB171 kB+33 B (+0.0%)
    • disableNetwork

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size99.5 kB99.5 kB+33 B (+0.0%)
      size-with-ext-deps159 kB159 kB+33 B (+0.0%)
    • enableIndexedDbPersistence

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size181 kB181 kB+33 B (+0.0%)
      size-with-ext-deps242 kB242 kB+33 B (+0.0%)
    • enableMultiTabIndexedDbPersistence

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size214 kB214 kB+33 B (+0.0%)
      size-with-ext-deps275 kB275 kB+33 B (+0.0%)
    • enableNetwork

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size99.4 kB99.5 kB+33 B (+0.0%)
      size-with-ext-deps159 kB159 kB+33 B (+0.0%)
    • endAt

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size35.5 kB35.5 kB+33 B (+0.1%)
      size-with-ext-deps94.5 kB94.5 kB+33 B (+0.0%)
    • endBefore

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size35.5 kB35.5 kB+33 B (+0.1%)
      size-with-ext-deps94.5 kB94.5 kB+33 B (+0.0%)
    • executeWrite

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size110 kB110 kB+33 B (+0.0%)
      size-with-ext-deps170 kB170 kB+33 B (+0.0%)
    • getAggregateFromServer

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size107 kB107 kB+33 B (+0.0%)
      size-with-ext-deps166 kB166 kB+33 B (+0.0%)
    • getCountFromServer

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size107 kB107 kB+33 B (+0.0%)
      size-with-ext-deps167 kB167 kB+33 B (+0.0%)
    • getDoc

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size137 kB137 kB+33 B (+0.0%)
      size-with-ext-deps196 kB196 kB+33 B (+0.0%)
    • getDocFromCache

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size92.2 kB92.2 kB+33 B (+0.0%)
      size-with-ext-deps151 kB151 kB+33 B (+0.0%)
    • getDocFromServer

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size137 kB137 kB+33 B (+0.0%)
      size-with-ext-deps196 kB196 kB+33 B (+0.0%)
    • getDocs

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size138 kB138 kB+33 B (+0.0%)
      size-with-ext-deps198 kB198 kB+33 B (+0.0%)
    • getDocsFromCache

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size99.9 kB99.9 kB+33 B (+0.0%)
      size-with-ext-deps159 kB159 kB+33 B (+0.0%)
    • getDocsFromServer

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size138 kB138 kB+33 B (+0.0%)
      size-with-ext-deps198 kB198 kB+33 B (+0.0%)
    • loadBundle

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size109 kB109 kB+33 B (+0.0%)
      size-with-ext-deps168 kB168 kB+33 B (+0.0%)
    • memoryLocalCache

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size96.4 kB96.5 kB+33 B (+0.0%)
      size-with-ext-deps156 kB156 kB+33 B (+0.0%)
    • namedQuery

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size85.6 kB85.7 kB+33 B (+0.0%)
      size-with-ext-deps145 kB145 kB+33 B (+0.0%)
    • onSnapshot

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size139 kB139 kB+33 B (+0.0%)
      size-with-ext-deps199 kB199 kB+33 B (+0.0%)
    • onSnapshotsInSync

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size129 kB129 kB+33 B (+0.0%)
      size-with-ext-deps188 kB188 kB+33 B (+0.0%)
    • or

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size42.6 kB42.6 kB+33 B (+0.1%)
      size-with-ext-deps102 kB102 kB+33 B (+0.0%)
    • persistentLocalCache

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size178 kB178 kB+33 B (+0.0%)
      size-with-ext-deps239 kB239 kB+33 B (+0.0%)
    • persistentMultipleTabManager

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size211 kB211 kB+33 B (+0.0%)
      size-with-ext-deps272 kB272 kB+33 B (+0.0%)
    • persistentSingleTabManager

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size178 kB178 kB+33 B (+0.0%)
      size-with-ext-deps239 kB239 kB+33 B (+0.0%)
    • query

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size42.8 kB42.9 kB+33 B (+0.1%)
      size-with-ext-deps102 kB102 kB+33 B (+0.0%)
    • queryEqual

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size32.8 kB32.9 kB+33 B (+0.1%)
      size-with-ext-deps91.8 kB91.9 kB+33 B (+0.0%)
    • runTransaction

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size120 kB120 kB+33 B (+0.0%)
      size-with-ext-deps180 kB180 kB+33 B (+0.0%)
    • setDoc

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size119 kB119 kB+33 B (+0.0%)
      size-with-ext-deps179 kB179 kB+33 B (+0.0%)
    • setIndexConfiguration

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size88.3 kB88.3 kB+33 B (+0.0%)
      size-with-ext-deps147 kB147 kB+33 B (+0.0%)
    • snapshotEqual

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size38.5 kB38.6 kB+33 B (+0.1%)
      size-with-ext-deps97.5 kB97.6 kB+33 B (+0.0%)
    • startAfter

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size35.5 kB35.5 kB+33 B (+0.1%)
      size-with-ext-deps94.5 kB94.5 kB+33 B (+0.0%)
    • startAt

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size35.5 kB35.5 kB+33 B (+0.1%)
      size-with-ext-deps94.5 kB94.5 kB+33 B (+0.0%)
    • updateDoc

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size120 kB120 kB+33 B (+0.0%)
      size-with-ext-deps179 kB179 kB+33 B (+0.0%)
    • waitForPendingWrites

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size99.9 kB99.9 kB+33 B (+0.0%)
      size-with-ext-deps159 kB159 kB+33 B (+0.0%)
    • where

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size41.9 kB41.9 kB+33 B (+0.1%)
      size-with-ext-deps101 kB101 kB+33 B (+0.0%)
    • writeBatch

      Size

      TypeBase (a8be6ed)Merge (2754c2b)Diff
      size122 kB122 kB+33 B (+0.0%)
      size-with-ext-deps181 kB181 kB+33 B (+0.0%)

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/xdySuE86ZN.html

@dconeybe dconeybe requested a review from milaGGL March 16, 2023 17:56
@dconeybe dconeybe merged commit 7d23aa4 into master Mar 16, 2023
@dconeybe dconeybe deleted the dconeybe/rn_domexception_fix branch March 16, 2023 18:25
@google-oss-bot google-oss-bot mentioned this pull request Mar 29, 2023
@firebase firebase locked and limited conversation to collaborators Apr 16, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants