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

Remote frame is set on ephemeral-storage should-not-keep-alive test; should be empty #15646

Closed
stephendonner opened this issue May 5, 2021 · 6 comments · Fixed by brave/brave-core#8804

Comments

@stephendonner
Copy link

stephendonner commented May 5, 2021

Test Cases:

Note: You'll need to do the following before running through the ephemeral-storage checks:

  • launch Brave and check brave://version/?show-variations-cmd (you'll be missing the needed seed)
  • relaunch Brave again and check brave://version/?show-variations-cmd (you should have the needed seed)

Once you pull the needed seed from griffin, you'll be able to run through the passes.

Description

Remote frame is set on ephemeral-storage should-not-keep-alive test; should be empty.

Found while testing #15415 as a follow-up to desktop, where it works fine.

Steps to reproduce

  1. new profile
  2. load brave://flags and enable Enable Ephemeral Storage and disable Ephemeral Storage Keep Alive if it's available in the release
  3. restart / relaunch Brave
  4. load https://dev-pages.brave.software/storage/keep-alive.html
  5. click on the Start test button beneath the Should "Keep Alive" Test
  6. wait for the test to finish and return you to the original page
  7. SHOULD NOT MATCH EXPECTED RESULTS. Instead, under Current storage state, the results for This frame and Local frame read set, and Remote frame should read empty

Actual result

Remote frame reads set

example example
Screenshot_20210505-142817 Screenshot_20210505-142805

Expected result

Remote frame reads empty

Issue reproduces how often

100%

Device details

  • Install type (ARM, x86): arm64
  • Device type (Phone, Tablet, Phablet): Google Pixel
  • Android version: 9.0

Brave version

1.25.51, Chromium 90.0.4430.93

/cc @pes10k and @bridiver

@stephendonner stephendonner added the OS/Android Fixes related to Android browser functionality label May 5, 2021
@bridiver
Copy link
Contributor

bridiver commented May 6, 2021

I'm pretty confident this is a general issue and not specific to keepalive. Can you run through the non-keepalive ephemeral storage tests?

@bridiver
Copy link
Contributor

bridiver commented May 6, 2021

@stephendonner have you checked the non-keepalive tests with keepalive disabled? I don't think this is a keepalive issue, I think it's a regression on android

@stephendonner
Copy link
Author

stephendonner commented May 11, 2021

@stephendonner have you checked the non-keepalive tests with keepalive disabled? I don't think this is a keepalive issue, I think it's a regression on android

Sorry for the delay in responding.

Using nightly build 1.26.7, Chromium 90.0.4430.93 with Enable Ephemeral Storage set to Enabled and Ephemeral Storage Keep Alive set to Disabled, I see steps 2-6 all look identical to step 2.

feature flags steps 2-6 results
Screenshot_20210511-154634 Screenshot_20210511-153503

@bridiver
Copy link
Contributor

bridiver commented May 14, 2021

To provide a little more detail on this, the issue is not related to keep alive. The problem is that the session storage used for ephemeral local storage remained cached in the renderer even after the namespace was deleted in the browser process. It stayed cached across different domains and links and was only purged when typing a url into the urlbar, but only within the same tab which is why https://dev-pages.brave.software/storage/ephemeral-storage.html had the correct results

@bridiver
Copy link
Contributor

also this issue exists in current release 1.24.x

@srirambv
Copy link
Contributor

srirambv commented May 20, 2021

Verification passed on Samsung Tab A with Android 10 running 1.24.86 x64 build

Verified steps from test case mentioned in issue description
Step 1 Step 2 Step 3 Step 4 Step 5 Step 6
image image image image image image

Verification passed on OnePlus 6T with Android 10 running 1.24.86 x64 build

Verified steps from test case mentioned in issue description
Step 1 Step 2 Step 3 Step 4 Step 5 Step 6
image image image image image image

Verification passed on Asus Zenfone (x86) with Android 6 running 1.24.86:

Verified the six test configurations from https://dev-pages.brave.software/storage/ephemeral-storage.html:

  • Confirmed all 6 tables were as expected for the Ephemeral Storage Enabled + Cross-site cookies blocked case
  • Confirmed all 6 tables were as expected for the Ephemeral Storage Enabled + Cookies blocked case
  • Confirmed all 6 tables were as expected for the Ephemeral Storage Enabled + All cookies allowed case
  • Confirmed all 6 tables were as expected for the Ephemeral Storage Disabled + Cross-site cookies blocked case
  • Confirmed all 6 tables were as expected for the Ephemeral Storage Disabled + Cookies blocked case
  • Confirmed all 6 tables were as expected for the Ephemeral Storage Disabled + All cookies allowed case

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment