New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 599284 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
OOO until Feb 4th
Closed: May 2016
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug

Blocked on:
issue 552419
issue 600806

Blocking:
issue 398264



Sign in to add a comment

Switch getDefaultSharedPreferences to always use context.getApplicationContext

Project Member Reported by wnwen@chromium.org, Mar 30 2016

Issue description

Android will be causing StrictMode violations in the future for getDefaultSharedPreferences as it's now cached per-context. There is always an initial StrictMode violation that is unavoidable due to the new check for ensurePrivateDirExists.

This change needs to go into M51.

See http://b/26979210 for more context.
 

Comment 1 by wnwen@chromium.org, Mar 30 2016

Blocking: 398264

Comment 2 by wnwen@chromium.org, Apr 5 2016

Blockedon: 600806
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 7 2016

Comment 5 by wnwen@chromium.org, Apr 7 2016

Issue 601379 has been merged into this issue.
Issue 601373 has been merged into this issue.

Comment 7 by wnwen@chromium.org, Apr 11 2016

Issue 583427 has been merged into this issue.
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 18 2016

Comment 9 by wnwen@chromium.org, Apr 26 2016

Blockedon: 552419
Project Member

Comment 10 by bugdroid1@chromium.org, Apr 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1d491ec4d5956c60fbf72e8cb5d3b27c842f9e6b

commit 1d491ec4d5956c60fbf72e8cb5d3b27c842f9e6b
Author: wnwen <wnwen@chromium.org>
Date: Wed Apr 27 16:09:24 2016

Revert of 
Project Member

Comment 11 by bugdroid1@chromium.org, Apr 27 2016

Labels: merge-merged-2718
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4506e91a9fd6a207329a63678ff1dfce01941e0b

commit 4506e91a9fd6a207329a63678ff1dfce01941e0b
Author: Alex Mineer <amineer@chromium.org>
Date: Wed Apr 27 17:04:29 2016

Revert of 
Status: Started (was: Assigned)
Will also add presubmit to prevent misusing PreferenceManager.getDefaultSharedPreferences.
Project Member

Comment 13 by bugdroid1@chromium.org, May 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d287cf0ce7e5393d5f2d7a826c5b285768e1192

commit 2d287cf0ce7e5393d5f2d7a826c5b285768e1192
Author: wnwen <wnwen@chromium.org>
Date: Mon May 09 17:46:30 2016

Migrate app shared preferences to ContextUtils.

Calls to PreferenceManager.getDefaultSharedPreferences will start to
cause disk I/O in android N if called with different context objects,
even if the context objects (activity, service, application) are all
part of Chrome, which results in the same SharedPreferences object.

Unifying these callers to use ContextUtils.getAppSharedPreferences
makes it clear that the intention is to get the application-wide
shared preferences. This will be the de facto way of accessing shared
preferences in the future.

BUG= 599284 

Review-Url: https://codereview.chromium.org/1874423002
Cr-Commit-Position: refs/heads/master@{#392355}

[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/base/android/java/src/org/chromium/base/ContextUtils.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/base/android/java/src/org/chromium/base/ResourceExtractor.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/accessibility/FontSizePrefs.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSearchView.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadCallable.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/datausage/DataUseTabUIManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiver.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsController.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/metrics/StartupMetrics.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationSnackbarController.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivity.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWeb.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebUma.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/precache/PrecacheController.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/preferences/DocumentModeManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoScreen.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/OtherFormsOfHistoryDialogFragment.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/rlz/RevenueStats.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/signin/OAuth2TokenService.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/tab/TabIdManager.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/java/src/org/chromium/chrome/browser/toolbar/TabSwitcherCallout.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/accessibility/FontSizePrefsTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageIntegrationTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/ListUrlsActivityTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/precache/PrecacheControllerTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerNativeTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabIdManagerTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassinTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/signin/SigninTestUtil.java
[modify] https://crrev.com/2d287cf0ce7e5393d5f2d7a826c5b285768e1192/components/invalidation/impl/android/javatests/src/org/chromium/components/invalidation/InvalidationClientServiceTest.java

Project Member

Comment 14 by bugdroid1@chromium.org, May 10 2016

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/22b01606e1949fedd4c985ffae716d58dc1f74b6

commit 22b01606e1949fedd4c985ffae716d58dc1f74b6
Author: Peter Wen <wnwen@google.com>
Date: Tue May 10 14:27:54 2016

Issue 601386 has been merged into this issue.
Project Member

Comment 16 by bugdroid1@chromium.org, May 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/320db57a6fbcde9610944375d677d9b848c60d5f

commit 320db57a6fbcde9610944375d677d9b848c60d5f
Author: wnwen <wnwen@chromium.org>
Date: Wed May 18 13:51:53 2016

Migrate more shared preferences to ContextUtils.

First CL for chrome/: https://codereview.chromium.org/1874423002/

This way of accessing app-wide shared preferences will be required
in a follow-up presubmit CL.

BUG= 599284 

Review-Url: https://codereview.chromium.org/1965093002
Cr-Commit-Position: refs/heads/master@{#394408}

[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/blimp/client/app/android/java/src/org/chromium/blimp/BlimpApplication.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/blimp/client/app/android/java/src/org/chromium/blimp/auth/TokenSourceImpl.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/blimp/client/app/android/java/src/org/chromium/blimp/preferences/PreferencesUtil.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/chrome/android/junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationClientService.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationService.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/components/invalidation/impl/android/javatests/src/org/chromium/components/invalidation/InvalidationClientServiceTest.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/components/policy/android/java/src/org/chromium/policy/AbstractAppRestrictionsProvider.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/components/policy/android/junit/src/org/chromium/policy/AbstractAppRestrictionsProviderTest.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/sync/android/java/src/org/chromium/sync/notifier/InvalidationPreferences.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/sync/android/java/src/org/chromium/sync/signin/ChromeSigninController.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/sync/android/javatests/src/org/chromium/sync/notifier/InvalidationPreferencesTest.java
[modify] https://crrev.com/320db57a6fbcde9610944375d677d9b848c60d5f/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java

Comment 18 by wnwen@chromium.org, May 25 2016

Status: Fixed (was: Started)

Sign in to add a comment