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

Update use of allPolicies variable and push notification subscription to fix inconsistency in deep link routing #14588

Merged
merged 5 commits into from
Jan 31, 2023

Conversation

tienifr
Copy link
Contributor

@tienifr tienifr commented Jan 26, 2023

Details

  • Currently, logging out from an account with workspaces and then login to a new account will not open the FAB modal as default. To make the FAB modal always opened for a new account regardless of the previous state of the app, delete the duplicated allPolicies variable in
    const allPolicies = {};
    Onyx.connect({
    key: ONYXKEYS.COLLECTION.POLICY,
    callback: (val, key) => {
    if (!val || !key) {
    return;
    }
    allPolicies[key] = {...allPolicies[key], ...val};
    },
    });

    and reuse the same variable in
    const allPolicies = {};
  • Currently, navigating to a deeplink from push notification may cause inconsistency due to overlapping navigation with the default navigation (last accessed report) of the app. To make the push notification always open the correct report, add the use of Navigation.isDrawerReady() before navigating in
    if (Navigation.canNavigate('navigate')) {
    // If a chat is visible other than the one we are trying to navigate to, then we need to navigate back
    if (Navigation.getActiveRoute().slice(1, 2) === ROUTES.REPORT && !Navigation.isActiveRoute(`r/${reportID}`)) {
    Navigation.goBack();
    }
    Navigation.navigate(ROUTES.getReportRoute(reportID));
    } else {
    // Navigation container is not yet ready, use deeplinking to open to correct report instead
    Navigation.setDidTapNotification();
    Linking.openURL(`${CONST.DEEPLINK_BASE_URL}${ROUTES.getReportRoute(reportID)}`);
    }
  • Currently, the device push notification listener is not working when user logout, keep app in background and login again. When such scenario happens, clicking a push notification will open the app but will not open the correct report, which also cause inconsistency. To miltigate this issue, add the subscription logic in the register() function like in https://github.com/Expensify/App/pull/14588/files#diff-24c7a3c4dd0b7b7cb20e0e8cb485e27259b55286e6395fc6ae92727c7bb8741f
    This function is then called each time the user try to login to the app, but the logic will only be triggered for new user logging in the app only (logged in users are not affected)

Fixed Issues

$ #13691
#13691 (comment)
#13691 (comment)

Tests

  1. Open the app
  2. Register with a new email
  3. Go back to home screen
  4. Perform 1 of the following
    4.1. Keep the app in background
    4.2. Kill the app in background
  5. Go to mailbox and click the magic sign-in link to access the set password page. Set a password and proceed
  6. Verify that the FAB modal is opened after signing in
  7. Select New workspace to create a new workspace
  8. Wait for the Notification from the support team member
  9. Perform 1 of the following
    9.1. Keep the app in background
    9.2. Kill the app in background
  10. Tap the notification
  11. Verify that the app navigates to the correct channel #admins
  • Verify that no errors appear in the JS console

Offline tests

  1. Open the app
  2. Register with a new email
  3. Go back to home screen
  4. Perform 1 of the following
    4.1. Keep the app in background
    4.2. Kill the app in background
  5. Go to mailbox and click the magic sign-in link to access the set password page. Set a password and proceed
  6. Disable the internet
  7. Verify that the FAB modal is opened after signing in
  8. Enable the internet
  9. Select New workspace to create a new workspace
  10. Wait for the Notification from the support team member
  11. Disable the internet
  12. Perform 1 of the following
    12.1. Keep the app in background
    12.2. Kill the app in background
  13. Tap the notification
  14. Verify that the app navigates to the correct channel #admins

QA Steps

  1. Open the app
  2. Register with a new email
  3. Go back to home screen
  4. Perform 1 of the following
    4.1. Keep the app in background
    4.2. Kill the app in background
  5. Go to mailbox and click the magic sign-in link to access the set password page. Set a password and proceed
  6. Verify that the FAB modal is opened after signing in
  7. Select New workspace to create a new workspace
  8. Wait for the Notification from the support team member
  9. Perform 1 of the following
    9.1. Keep the app in background
    9.2. Kill the app in background
  10. Tap the notification
  11. Verify that the app navigates to the correct channel #admins
  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
web.mp4
Mobile Web - Chrome
az_recorder_20230127_203510.mp4
Mobile Web - Safari
Screen.Recording.2023-01-27.at.00.21.16.mp4
Desktop
Screen.Recording.2023-01-27.at.12.15.12.mp4
iOS
Screen.Recording.2023-01-26.at.21.46.23.mov
Android
android_native_compressed.mp4

@tienifr tienifr marked this pull request as ready for review January 26, 2023 14:11
@tienifr tienifr requested a review from a team as a code owner January 26, 2023 14:11
@melvin-bot melvin-bot bot requested review from ctkochan22 and removed request for a team January 26, 2023 14:12
@melvin-bot
Copy link

melvin-bot bot commented Jan 26, 2023

@ctkochan22 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@mountiny
Copy link
Contributor

@tienifr please make sure to link the issue correctly when the PR is marked as raedy for a reivew, so the correct people are assigned for a review

image

@ctkochan22 assigning myself for a review since I helped as CME on that linked issue.

@tienifr
Copy link
Contributor Author

tienifr commented Jan 26, 2023

@mountiny sorry for the inconvenience, I'll note that for next time
thanks!

@ctkochan22
Copy link
Contributor

@tienifr can you also update the PR title so that it explains what is being changed/fixed?

Its hard to keep track now, but clear titles will be helpful in the future when debugging changes and git blames in the future

@mountiny
Copy link
Contributor

@tienifr aand also some short details section explaining you changes in plain English is also great if someone comes to this PR some time in future 🙌 Thanks!

@tienifr tienifr changed the title Fix/13691 Update use of allPolicies variable and push notification subscription to fix inconsistency in deep link routing Jan 27, 2023
@tienifr
Copy link
Contributor Author

tienifr commented Jan 27, 2023

@mountiny @ctkochan22 PR title and details are updated!

Onyx.connect({
key: ONYXKEYS.COLLECTION.POLICY,
callback: (val, key) => {
if (!val || !key) {
return;
}

allPolicies[key] = {...allPolicies[key], ...val};
Policy.allPolicies[key] = {...Policy.allPolicies[key], ...val};
Copy link
Member

@rushatgabhane rushatgabhane Jan 27, 2023

Choose a reason for hiding this comment

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

@tienifr FYI, I prefer the delete all policies solution over reusing from Policy.js

it feels less coupled. can we implement that instead?

#13691 (comment)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@rushatgabhane I'm sorrry, but did you mean that you prefer Solution 1 for the 2) Magic sign in Failure issue, in which I added the clearing logic for the variable? You said in the issue comment that you prefer the delete allPolicies solution, which I believe was more similar to Solution 2

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@rushatgabhane New commit with Solution 1 for the Magic sign in Failure issue has been uploaded

408f972

Copy link
Member

Choose a reason for hiding this comment

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

@tienifr sorry for the ambiguity. Yes, I meant the solution # 1

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@rushatgabhane I have updated a new commit, and posted a comment to explain your concert below

@rushatgabhane
Copy link
Member

rushatgabhane commented Jan 27, 2023

Currently, the device push notification listener is not working when user logout, keep app in background and login again. When such scenario happens, clicking a push notification will open the app but will not open the correct report, which also cause inconsistency. To miltigate this issue, add the subscription logic in the register() function like in

I'm sorry, I'm lost here. Is there an issue for this?
Why are we fixing push notifications in this PR? I have no context 😅

@tienifr
Copy link
Contributor Author

tienifr commented Jan 27, 2023

Currently, the device push notification listener is not working when user logout, keep app in background and login again. When such scenario happens, clicking a push notification will open the app but will not open the correct report, which also cause inconsistency. To miltigate this issue, add the subscription logic in the register() function like in

I'm sorry, I'm lost here. Is there an issue for this? Why are we fixing push notifications in this PR? I have no context sweat_smile

@rushatgabhane
Yes, it is the 3) Admin chat failure issue, quote It should be the #admins chat, but is often an entirely different chat. When the push notification event listener is not working, clicking the push notification after creating a workspace (or any other types of notification like chat noti) will not navigate the user to the right chat, causing the inconsistency. The issue occurred when an user logged out of an account (event listener got cleared), and then login right again to another account (event listener not reinitialized).

Both this and adding isDrawerReady() will mitigate the inconsistency issue in the deep link from device notification.

Sorry for not being clear.

ctkochan22
ctkochan22 previously approved these changes Jan 27, 2023
@@ -1027,4 +1027,5 @@ export {
openWorkspaceMembersPage,
openWorkspaceInvitePage,
removeWorkspace,
allPolicies,
Copy link
Member

Choose a reason for hiding this comment

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

@tienifr this export can be removed, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@rushatgabhane Yes indeed, that's a nice catch. I have updated it in the latest commit.
f2a52fc

@tienifr tienifr requested review from rushatgabhane and removed request for ctkochan22 January 27, 2023 22:57
Copy link
Member

@rushatgabhane rushatgabhane left a comment

Choose a reason for hiding this comment

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

Reviewer Checklist

  • I have verified the author checklist is complete (all boxes are checked off).
  • I verified the correct issue is linked in the ### Fixed Issues section above
  • I verified testing steps are clear and they cover the changes made in this PR
    • I verified the steps for local testing are in the Tests section
    • I verified the steps for Staging and/or Production testing are in the QA steps section
    • I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
  • I checked that screenshots or videos are included for tests on all platforms
  • I included screenshots or videos for tests on all platforms
  • I verified tests pass on all platforms & I tested again on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
  • I verified proper code patterns were followed (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I verified that this PR follows the guidelines as stated in the Review Guidelines
  • I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
Screen.Recording.2023-01-30.at.5.20.39.PM.mov
Mobile Web - Chrome
WhatsApp.Video.2023-01-30.at.23.14.34.mp4
Mobile Web - Safari
Screen.Recording.2023-01-30.at.11.09.04.PM.mov
Desktop
Screen.Recording.2023-01-30.at.11.06.34.PM.mov
iOS
Screen.Recording.2023-01-30.at.11.03.47.PM.mov
Android
WhatsApp.Video.2023-01-30.at.22.49.28.mp4

@rushatgabhane
Copy link
Member

Hey
on DEV, I'm not getting any push notifications on iOS and Android. Asked on slack if that's just me
https://expensify.slack.com/archives/C01GTK53T8Q/p1675092451431619

@tienifr
Copy link
Contributor Author

tienifr commented Jan 30, 2023

Hey on DEV, I'm not getting any push notifications on iOS and Android. Asked on slack if that's just me https://expensify.slack.com/archives/C01GTK53T8Q/p1675092451431619

@rushatgabhane
Hi, I encountered the same issue as well. For now, replacing the debug urban airship config with production will make it work

Example with Android: In https://github.com/Expensify/App/blob/main/android/app/src/debug/assets/airshipconfig.properties

- appKey = uulSSfTDQJ2r0PMpjRrhmQ
- appSecret = D4Bhf0HrQEehrPua74Tyiw
+ appKey = 55vypj0ARc6cN09MX7ogtQ
+ appSecret = EsSaqbdLSvmyC6kSBFJCtQ
inProduction = false
developmentLogLevel = VERBOSE

# Notification Customization
notificationIcon = ic_notification
notificationAccentColor = #2EAAE2

Same thing goes for IOS with this file: https://github.com/Expensify/App/blob/main/ios/AirshipConfig.plist

@mountiny mountiny removed their request for review January 30, 2023 17:15
@mountiny
Copy link
Contributor

Removing my review request here since Jules is back

Copy link
Member

@rushatgabhane rushatgabhane left a comment

Choose a reason for hiding this comment

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

@Julesssss LGTM!

@tienifr Thanks for the speedy help on getting the notification sorted ⚡

Copy link
Contributor

@mountiny mountiny left a comment

Choose a reason for hiding this comment

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

👍 all yours @Julesssss

@Julesssss Julesssss merged commit 804a97c into Expensify:main Jan 31, 2023
@OSBotify
Copy link
Contributor

✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

@github-actions
Copy link
Contributor

Performance Comparison Report 📊

Significant Changes To Duration

There are no entries

Meaningless Changes To Duration

Show entries
Name Duration
App start TTI 696.053 ms → 720.892 ms (+24.839 ms, +3.6%)
App start runJsBundle 194.656 ms → 199.094 ms (+4.438 ms, +2.3%)
App start nativeLaunch 19.419 ms → 20.065 ms (+0.645 ms, +3.3%)
App start regularAppStart 0.015 ms → 0.015 ms (+0.001 ms, +4.7%)
Open Search Page TTI 608.914 ms → 606.286 ms (-2.629 ms, ±0.0%)
Show details
Name Duration
App start TTI Baseline
Mean: 696.053 ms
Stdev: 22.838 ms (3.3%)
Runs: 655.4639479999896 655.8092179999221 657.0042010000907 657.9950260000769 664.9525140000042 672.3273130001035 674.014761999948 675.4776149999816 680.680323000066 683.3099819999188 683.9932140000165 689.5586570000742 691.7072209999897 694.2576619999018 697.598224000074 702.4657399998978 702.805488999933 703.9673689999618 706.280391999986 707.123147000093 708.1091950000264 708.5409500000533 710.3502780001145 710.3993780000601 713.3978740000166 714.3655709999148 714.5500700001139 714.861727999989 719.3603189999703 731.2503740000539 732.1501120000612 739.5813420000486

Current
Mean: 720.892 ms
Stdev: 28.765 ms (4.0%)
Runs: 682.3264339999296 684.1174989999272 684.8505929999519 690.2728180000558 691.6299290000461 696.1147080000956 697.0124170000199 697.9546749999281 698.2627499999944 698.267891000025 699.7641280000098 701.2775189999957 707.9622810001019 709.7196780000813 710.7668010001071 713.0905520000961 714.4251600001007 715.1109829999041 717.1764930000063 734.0213460000232 734.3027850000653 734.7404199999291 737.7165500000119 737.7516669998877 739.1932310000993 747.1238319999538 748.6480759999249 749.1598050000612 752.0054560001008 765.9600959999952 773.4499999999534 804.3804619999137
App start runJsBundle Baseline
Mean: 194.656 ms
Stdev: 17.818 ms (9.2%)
Runs: 160 168 169 171 173 175 176 176 180 184 188 189 189 191 192 194 196 199 199 200 203 203 205 206 207 213 215 218 220 221 222 227

Current
Mean: 199.094 ms
Stdev: 19.244 ms (9.7%)
Runs: 170 178 180 182 184 184 185 185 186 186 187 187 189 190 191 192 193 194 194 194 199 204 210 211 215 216 220 221 222 225 239 258
App start nativeLaunch Baseline
Mean: 19.419 ms
Stdev: 1.602 ms (8.2%)
Runs: 17 17 18 18 18 18 18 18 18 18 18 19 19 19 19 19 19 19 20 20 20 20 20 20 20 22 22 22 22 22 23

Current
Mean: 20.065 ms
Stdev: 1.585 ms (7.9%)
Runs: 17 17 18 18 18 18 19 19 19 19 19 19 20 20 20 20 21 21 21 21 21 21 21 21 21 22 22 22 22 22 23
App start regularAppStart Baseline
Mean: 0.015 ms
Stdev: 0.001 ms (5.9%)
Runs: 0.013427000027149916 0.013469000114127994 0.013794000027701259 0.013794000027701259 0.01395700010471046 0.013996999943628907 0.014037999790161848 0.014118999941274524 0.014119999948889017 0.014282000018283725 0.01432300009764731 0.01432300009764731 0.014444999862462282 0.014444999862462282 0.014484999934211373 0.014485999941825867 0.014527000021189451 0.014607999939471483 0.014648000011220574 0.014648000011220574 0.014811000088229775 0.015178000088781118 0.01521800016053021 0.015420999843627214 0.015461999922990799 0.01582799991592765 0.015868999995291233 0.015868999995291233 0.016032000072300434 0.016195000149309635 0.016316999914124608 0.016844999976456165

Current
Mean: 0.015 ms
Stdev: 0.001 ms (5.2%)
Runs: 0.013752999948337674 0.0139979999512434 0.014119000174105167 0.014321999857202172 0.014689000090584159 0.0147299999371171 0.014730000169947743 0.015015000011771917 0.015015000011771917 0.015054999850690365 0.015055000083521008 0.015176999848335981 0.015339999925345182 0.015340000158175826 0.015381000004708767 0.015462000155821443 0.015543999848887324 0.015625 0.015666000079363585 0.015746999997645617 0.01582799991592765 0.01582799991592765 0.015868999995291233 0.01595000014640391 0.016112999990582466 0.016234999988228083 0.016276000067591667 0.016315999906510115 0.016399000072851777 0.01656000013463199 0.016641999827697873 0.01721199997700751
Open Search Page TTI Baseline
Mean: 608.914 ms
Stdev: 18.985 ms (3.1%)
Runs: 579.8081869999878 580.1313889999874 580.1862790000159 581.5957039999776 583.1160489998292 588.8809819999151 589.614299000008 590.8593339999206 594.871541999979 595.4509679998737 597.8605150000658 602.4982099998742 606.256510999985 606.8387050000019 606.909139999887 607.916993000079 608.2520349998958 609.2269699999597 609.5364999999292 610.5809329999611 615.1587730001193 615.2574460001197 619.4960529999807 621.5943199999165 621.934162999969 623.1929929999169 623.7266029999591 627.052328000078 628.0155849999283 632.0765390000306 637.8791509999428 643.7170009999536 654.6818039999343

Current
Mean: 606.286 ms
Stdev: 19.022 ms (3.1%)
Runs: 566.1495769999456 579.2832849998958 579.5991210001521 583.272135999985 584.0090739999432 588.0669360000174 591.9658610001206 592.803222999908 597.1060790000483 597.2316890000366 598.180623000022 598.6451419999357 599.2054850000422 600.3400069999043 603.1686199998949 603.3292639998253 604.4183349998202 605.6694340000395 606.1249190000817 606.7465829998255 606.9485269999132 611.3999840000179 615.4034430000465 618.2229420000222 618.925904000178 627.9551600001287 628.0138759999536 634.4449060000479 636.1254070000723 636.3937579998747 637.1194660000037 644.8707279998343

@Julesssss
Copy link
Contributor

There's a new warning showing on iOS against these changes. I don't think this is a regression, but it would be great to clear this up:

Simulator Screen Shot - iPhone 14 Pro Max - 2023-01-31 at 23 00 57
Simulator Screen Shot - iPhone 14 Pro Max - 2023-01-31 at 23 00 45

@Julesssss
Copy link
Contributor

actually, I’ll just fix this quickly

@rushatgabhane
Copy link
Member

rushatgabhane commented Jan 31, 2023

thanks @Julesssss, please tag me for a review since i missed it

@OSBotify
Copy link
Contributor

🚀 Deployed to staging by https://github.com/Julesssss in version: 1.2.63-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@OSBotify
Copy link
Contributor

OSBotify commented Feb 1, 2023

🚀 Deployed to production by https://github.com/thienlnam in version: 1.2.63-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants