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

Issue 846456 link

Starred by 3 users

Issue metadata

Status: Available
Owner:
Last visit > 30 days ago
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocked on:
issue 646094

Blocking:
issue 560466



Sign in to add a comment

Remove all calls to Context.getApplicationContext()

Project Member Reported by estevenson@chromium.org, May 24 2018

Issue description

We removed them all in  issue 646094  but it looks like more uses have snuck in since then:

https://cs.chromium.org/search/?q=file:chrome+-ContextUtils.getapplicationcontext++getapplicationcontext+lang:java+-file:test&sq=package:chromium&type=cs

Also see  issue 560466  for more context and why we want to do this.

Steps to finish this:
1. Remove all existing usages of Context.getApplicationContext()
2. Add a presubmit check that blocks new usages of Context.getApplicationContext()

For 2. we probably don't want to use PRESUBMIT.py since it's only pretty much a text file checker. An errorprone plugin might be a good fit; we could add one here: https://cs.chromium.org/chromium/src/tools/android/errorprone_plugin/BUILD.gn?l=7. 
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 11 2018

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

commit e579d84a3db55a9201314de74510d4ff6afcdb92
Author: Tiger Oakes <tigero@google.com>
Date: Mon Jun 11 20:45:52 2018

Removed context#getApplicationContext calls from /chrome/android/java/src/org/chromium/chrome/browser/infobar

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=mdjones@chromium.org

Bug: 846456
Change-Id: Ib931abc02afda7f872911982a7052e8e03da7d57
Reviewed-on: https://chromium-review.googlesource.com/1095995
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#566138}
[modify] https://crrev.com/e579d84a3db55a9201314de74510d4ff6afcdb92/chrome/android/java/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfoBarDelegate.java

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 11 2018

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

commit 328be671bf4e38da373632538958b8362be07fd3
Author: Tiger Oakes <tigero@google.com>
Date: Mon Jun 11 21:40:16 2018

Removed context#getApplicationContext calls from /components/background_task_scheduler

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=fgorski@chromium.org

Bug: 846456
Change-Id: I4216bdbe285d37033a51133fa4c1680aa67f97ce
Reviewed-on: https://chromium-review.googlesource.com/1096001
Reviewed-by: Filip Gorski <fgorski@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#566154}
[modify] https://crrev.com/328be671bf4e38da373632538958b8362be07fd3/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskJobService.java

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 12 2018

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

commit fd11856e06e727c141dee6cf3731b0d66f6b91b9
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jun 12 13:38:01 2018

Removed context#getApplicationContext calls from /chrome/android/java/src/org/chromium/chrome/browser/media

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=mlamouri@chromium.org

Bug: 846456
Change-Id: Ie0c0102c78325c15650ffc577b48cf77981a01ac
Reviewed-on: https://chromium-review.googlesource.com/1096007
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#566396}
[modify] https://crrev.com/fd11856e06e727c141dee6cf3731b0d66f6b91b9/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 12 2018

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

commit 0352377ab4f7acb083ae5685b07df057829a2388
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jun 12 13:38:05 2018

Removed context#getApplicationContext calls from /chrome/android/java/src/org/chromium/chrome/browser/firstrun

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=bsazonov@chromium.org

Bug: 846456
Change-Id: Iabb1d50cbdce25c3b4c96c749d8853c48da619f2
Reviewed-on: https://chromium-review.googlesource.com/1095992
Reviewed-by: Boris Sazonov <bsazonov@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#566397}
[modify] https://crrev.com/0352377ab4f7acb083ae5685b07df057829a2388/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 12 2018

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

commit 421558d466ccf05d835a954b53218fc8c8da6a69
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jun 12 13:39:05 2018

Removed context#getApplicationContext calls from /components/gcm_driver

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=jianli@chromium.org

Bug: 846456
Change-Id: Ife19a981980ee18798721000d8d12d8730231e12
Reviewed-on: https://chromium-review.googlesource.com/1095991
Reviewed-by: Jian Li <jianli@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#566398}
[modify] https://crrev.com/421558d466ccf05d835a954b53218fc8c8da6a69/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
[modify] https://crrev.com/421558d466ccf05d835a954b53218fc8c8da6a69/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 12 2018

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

commit 0048930924b7ada8f4b5e3346cba6243a3fef0a5
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jun 12 16:00:07 2018

Removed context#getApplicationContext calls from /ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=finnur@chromium.org

Bug: 846456
Change-Id: Ia29ebde737d615d85e294d6aa90bcb85d833b244
Reviewed-on: https://chromium-review.googlesource.com/1095993
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#566445}
[modify] https://crrev.com/0048930924b7ada8f4b5e3346cba6243a3fef0a5/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 20 2018

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

commit 6220ec58bec8e4f1bd563f4f751e95f60fe9f9a9
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jun 20 12:52:54 2018

Removed context#getApplicationContext calls from /chrome/android/java/src/org/chromium/chrome/browser/services/gcm

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=peter@chromium.org

Bug: 846456
Change-Id: If4634124016982063b17725552585ef08d333a94
Reviewed-on: https://chromium-review.googlesource.com/1095914
Commit-Queue: Peter Beverloo <peter@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568805}
[modify] https://crrev.com/6220ec58bec8e4f1bd563f4f751e95f60fe9f9a9/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java
[modify] https://crrev.com/6220ec58bec8e4f1bd563f4f751e95f60fe9f9a9/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 26 2018

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

commit 96b6933e0de33b17c0b5841e95259d85233f80a6
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jun 26 18:18:15 2018

Removed context#getApplicationContext calls for AndroidSyncSettings

Also edited places
where methods from AndroidSyncSettings are called. This blocks some other
related CLs which do more clean up in other classes.

Continuation of work in  bug 646094 .

See https://chromium-review.googlesource.com/c/chromium/src/+/1082667 for the
original CL that the others were split from.

Bug: 846456
Change-Id: Ic0e080faccc662bee72d1cddc420a9474031b700
Reviewed-on: https://chromium-review.googlesource.com/1097474
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Marc Treib <treib@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570467}
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsController.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/preferences/SignInPreference.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncedAccountPreference.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/PasswordEntryEditor.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasic.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/signin/SyncPromoView.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncController.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/SyncCustomizationFragment.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterTest.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationServiceTest.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PasswordViewingTypeTest.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasicTest.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncCustomizationFragmentTest.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTest.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationClientService.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java
[modify] https://crrev.com/96b6933e0de33b17c0b5841e95259d85233f80a6/components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 26 2018

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

commit d83565ccb3c0860f3d42fcfc9d8cd9c9a9772772
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jun 26 21:25:55 2018

Removed context#getApplicationContext calls from /components/invalidation

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=pavely@chromium.org

Bug: 846456
Change-Id: I2d3ca825f9e312a9b4bb5c0addda69a1159b8de6
Reviewed-on: https://chromium-review.googlesource.com/1095990
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Pavel Yatsuk <pavely@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570535}
[modify] https://crrev.com/d83565ccb3c0860f3d42fcfc9d8cd9c9a9772772/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationClientService.java

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 27 2018

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

commit 4cbf02bf0f76beddd8c2f7fa8b8421f8fa734b9b
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jun 27 17:32:59 2018

Removed context#getApplicationContext calls from /content/public/android

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=dtrainor@chromium.org

Bug: 846456
Change-Id: Ied7851bf95858ac7c9580c028cb11cf2b8290374
Reviewed-on: https://chromium-review.googlesource.com/1095984
Reviewed-by: Simeon Anfinrud <sanfin@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#570827}
[modify] https://crrev.com/4cbf02bf0f76beddd8c2f7fa8b8421f8fa734b9b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
[modify] https://crrev.com/4cbf02bf0f76beddd8c2f7fa8b8421f8fa734b9b/chromecast/browser/android/apk/src/org/chromium/chromecast/shell/CastBrowserHelper.java
[modify] https://crrev.com/4cbf02bf0f76beddd8c2f7fa8b8421f8fa734b9b/content/public/android/java/src/org/chromium/content/browser/BrowserStartupControllerImpl.java
[modify] https://crrev.com/4cbf02bf0f76beddd8c2f7fa8b8421f8fa734b9b/content/public/android/java/src/org/chromium/content/browser/DeviceUtilsImpl.java
[modify] https://crrev.com/4cbf02bf0f76beddd8c2f7fa8b8421f8fa734b9b/content/public/android/java/src/org/chromium/content_public/browser/DeviceUtils.java
[modify] https://crrev.com/4cbf02bf0f76beddd8c2f7fa8b8421f8fa734b9b/content/shell/android/shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 28 2018

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

commit 911a50e4ec17d02fb3a4b7a430b207b86cc9ba54
Author: Tiger Oakes <tigero@google.com>
Date: Thu Jun 28 21:28:02 2018

Removed context#getApplicationContext calls from /chrome/android/java/src/org/chromium/chrome/browser/share

Continuation of work in  bug 646094 .

This CL was uploaded by git cl split.

R=dtrainor@chromium.org

Bug: 846456
Change-Id: Ib4c6260e49b28bc78ec06059d3a15a2937d2f313
Reviewed-on: https://chromium-review.googlesource.com/1096008
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#571266}
[modify] https://crrev.com/911a50e4ec17d02fb3a4b7a430b207b86cc9ba54/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 17

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

commit deca77f189278cb9aa9da6befe6e0b624f77ef3c
Author: Tiger Oakes <tigero@google.com>
Date: Tue Jul 17 20:18:17 2018

Remove getApplicationContext calls from /content/public/

Continuation of work in  bug 646094 .

Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

Bug: 846456
Change-Id: I059c13769179010146530e75b554acc29260abaa
Reviewed-on: https://chromium-review.googlesource.com/1140511
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#575752}
[modify] https://crrev.com/deca77f189278cb9aa9da6befe6e0b624f77ef3c/content/public/android/java/src/org/chromium/content/browser/accessibility/LollipopWebContentsAccessibility.java
[modify] https://crrev.com/deca77f189278cb9aa9da6befe6e0b624f77ef3c/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
[modify] https://crrev.com/deca77f189278cb9aa9da6befe6e0b624f77ef3c/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/CaptioningBridgeFactory.java
[modify] https://crrev.com/deca77f189278cb9aa9da6befe6e0b624f77ef3c/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/CaptioningController.java
[modify] https://crrev.com/deca77f189278cb9aa9da6befe6e0b624f77ef3c/content/public/android/java/src/org/chromium/content/browser/accessibility/captioning/KitKatCaptioningBridge.java

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 18

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

commit b644b96d5341d71f216f1ae6e551589903106aec
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 18 14:24:09 2018

Remove getApplicationContext calls from /ui/android/

Continuation of work in  bug 646094 .

Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

Bug: 846456
Change-Id: I23cfa6b2d02b77f056d16ea447b6a6528c2143ce
Reviewed-on: https://chromium-review.googlesource.com/1096005
Reviewed-by: Theresa <twellington@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#576041}
[modify] https://crrev.com/b644b96d5341d71f216f1ae6e551589903106aec/chrome/android/java/src/org/chromium/chrome/browser/vr/VrWindowAndroid.java
[modify] https://crrev.com/b644b96d5341d71f216f1ae6e551589903106aec/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java
[modify] https://crrev.com/b644b96d5341d71f216f1ae6e551589903106aec/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 18

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

commit f2c48e220dfd9ad7e37757dfe2001ccc873c4d48
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 18 17:34:18 2018

Remove getApplicationContext calls from customtabs

Continuation of work in  bug 646094 .

Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

Bug: 846456
Change-Id: Icfc48871f853797a15de7c50f247dc5400eab77f
Reviewed-on: https://chromium-review.googlesource.com/1095985
Commit-Queue: Tiger Oakes <tigero@google.com>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576118}
[modify] https://crrev.com/f2c48e220dfd9ad7e37757dfe2001ccc873c4d48/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
[modify] https://crrev.com/f2c48e220dfd9ad7e37757dfe2001ccc873c4d48/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
[modify] https://crrev.com/f2c48e220dfd9ad7e37757dfe2001ccc873c4d48/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabBottomBarDelegate.java
[modify] https://crrev.com/f2c48e220dfd9ad7e37757dfe2001ccc873c4d48/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
[modify] https://crrev.com/f2c48e220dfd9ad7e37757dfe2001ccc873c4d48/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java
[modify] https://crrev.com/f2c48e220dfd9ad7e37757dfe2001ccc873c4d48/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java

Project Member

Comment 15 by bugdroid1@chromium.org, Jul 18

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

commit 70f315a4a33b537fbaf215ea52e63e963ee16be2
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 18 23:03:15 2018

Remove getApplicationContext calls from browserservices

Continuation of work in  bug 646094 .

Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

This CL replaces two others:
https://chromium-review.googlesource.com/c/chromium/src/+/1095986
https://chromium-review.googlesource.com/c/chromium/src/+/1095999

Bug: 846456
Change-Id: Id7ed38c318d97b7370938d32677bcf73b85c3314
Reviewed-on: https://chromium-review.googlesource.com/1141933
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#576242}
[modify] https://crrev.com/70f315a4a33b537fbaf215ea52e63e963ee16be2/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
[modify] https://crrev.com/70f315a4a33b537fbaf215ea52e63e963ee16be2/chrome/android/java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClient.java
[modify] https://crrev.com/70f315a4a33b537fbaf215ea52e63e963ee16be2/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
[modify] https://crrev.com/70f315a4a33b537fbaf215ea52e63e963ee16be2/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java
[modify] https://crrev.com/70f315a4a33b537fbaf215ea52e63e963ee16be2/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClientTest.java

Project Member

Comment 16 by bugdroid1@chromium.org, Jul 20

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

commit a7af95d5f66e63749d02d81a1845d588aad622e3
Author: Tiger Oakes <tigero@google.com>
Date: Fri Jul 20 13:56:16 2018

Remove getApplicationContext calls from download

Continuation of work in  bug 646094 .

Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

Bug: 846456
Change-Id: Id9b03bc842f60c805b59c2a9eade386e1a55bcf8
Reviewed-on: https://chromium-review.googlesource.com/1095989
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: Min Qin <qinmin@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#576848}
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManager.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadResumptionBackgroundTask.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadResumptionScheduler.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier2.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadTestRule.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java
[modify] https://crrev.com/a7af95d5f66e63749d02d81a1845d588aad622e3/chrome/android/junit/src/org/chromium/chrome/browser/download/DownloadResumptionSchedulerTest.java

Project Member

Comment 17 by bugdroid1@chromium.org, Jul 20

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

commit 776c30a4d16528a174ca447dc277a5b98bbd75e8
Author: Tiger Oakes <tigero@google.com>
Date: Fri Jul 20 16:14:53 2018

Remove getApplicationContext calls from invalidation

Continuation of work in  bug 646094 .
Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

Bug: 846456
Change-Id: Id41629487bc76880136d8e33529dd37ca3c4e34e
Reviewed-on: https://chromium-review.googlesource.com/1095955
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Commit-Queue: Yaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576888}
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/PowerBroadcastReceiver.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapter.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterService.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsController.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncController.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/SyncCustomizationFragment.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterTest.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java
[modify] https://crrev.com/776c30a4d16528a174ca447dc277a5b98bbd75e8/chrome/android/junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 23

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

commit f7eff90dac71a5bf957a58f5332f44c6fd7b2198
Author: Tiger Oakes <tigero@google.com>
Date: Mon Jul 23 12:44:11 2018

Added errorprone check to flag context#getApplicationContext calls.

The overall goal is to prevent storing the result of calls to
context#getApplicationContext. We previously removed them all, but more have
snuck in since.

Bug: 846456
Change-Id: I6ff008b75a3980cc2db770ea42a18b9ee3669cae
Reviewed-on: https://chromium-review.googlesource.com/1082666
Reviewed-by: Peter Wen <wnwen@chromium.org>
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Commit-Queue: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577154}
[modify] https://crrev.com/f7eff90dac71a5bf957a58f5332f44c6fd7b2198/tools/android/errorprone_plugin/BUILD.gn
[add] https://crrev.com/f7eff90dac71a5bf957a58f5332f44c6fd7b2198/tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoContextGetApplicationContext.java

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 23

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

commit f255f21a73dbf5a2750452fe01f6657052ed7a4c
Author: Tiger Oakes <tigero@google.com>
Date: Mon Jul 23 17:56:58 2018

Remove getApplicationContext from contextualsearch

Continuation of work in  bug 646094 .
Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

Bug: 846456
Change-Id: I2c3efdf6c0de690ee8a9a06a523c773722c07196
Reviewed-on: https://chromium-review.googlesource.com/1095997
Reviewed-by: Theresa <twellington@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#577202}
[modify] https://crrev.com/f255f21a73dbf5a2750452fe01f6657052ed7a4c/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
[modify] https://crrev.com/f255f21a73dbf5a2750452fe01f6657052ed7a4c/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTranslateController.java
[modify] https://crrev.com/f255f21a73dbf5a2750452fe01f6657052ed7a4c/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapEventTest.java

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 25

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

commit 96d865d94d43b92506100b7c6d72e755c382d666
Author: Tiger Oakes <tigero@google.com>
Date: Wed Jul 25 15:05:46 2018

Remove getApplicationContext calls from sync

Continuation of work in  bug 646094 .
Preparing to activate an errorprone check to flag
context#getApplicationContext calls. The goal is to prevent storing the
resulting context as a class property, and instead use ContextUtils.

Bug: 846456
Change-Id: I0739a803ff80c38df73632f62298f83bb90d28f8
Reviewed-on: https://chromium-review.googlesource.com/1095974
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Commit-Queue: Tiger Oakes <tigero@google.com>
Cr-Commit-Position: refs/heads/master@{#577890}
[modify] https://crrev.com/96d865d94d43b92506100b7c6d72e755c382d666/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncController.java
[modify] https://crrev.com/96d865d94d43b92506100b7c6d72e755c382d666/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
[modify] https://crrev.com/96d865d94d43b92506100b7c6d72e755c382d666/chrome/android/java/src/org/chromium/chrome/browser/sync/ui/PassphraseActivity.java

Owner: smaier@chromium.org
Tiger's finished his internship, so hoping that smaier (or wnwen?) can take this to the finish line. The remaining work should be captured in his unsubmitted reviews:
https://chromium-review.googlesource.com/dashboard/tigero

Plus actually enabling the errorprone check.
According to Android Studio, we currently have 191 usages of Context.getApplicationContext(). Given the amount of smart refactoring that has to be done at each site (knowing when to get rid of stored Context variables, fixing all usages of an unnecessary Context params in a function), it seems too big for me to work on right now. If people have ideas on a subset of these that matter more, or a way of doing this more automatically, I'd consider picking it back up.
Owner: ----
Status: Available (was: Assigned)
This is certainly not high priority, but I think we're pretty close to the finish line.

Code search shows only ~30 files left (at least upstream, excluding tests):
https://cs.chromium.org/search/?q=%5C.getapplicationcontext+-ContextUtils.getApplicationContext+lang:java+-file:third_party+-file:test&sq=package:chromium&type=cs

Probably be fine to make the errorprone check ignore paths with "test" in it.
Owner: abenner@google.com
Project Member

Comment 26 by bugdroid1@chromium.org, Sep 25

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

commit d5d958682502871a0b73f87e079adde8cce3ecd0
Author: Boris Sazonov <bsazonov@chromium.org>
Date: Tue Sep 25 14:14:24 2018

[Android] Remove getApplicationContext calls from signin

Based on https://crrev.com/c/1095996. This CL removes redundant Context
parameters from a bunch of sign-in classes without any changes to the
behavior.

Bug: 846456
Change-Id: Iba38d3a40b09ef6f7faa2fa4c80a97909d3e2f75
Reviewed-on: https://chromium-review.googlesource.com/1242462
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Commit-Queue: Boris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593919}
[modify] https://crrev.com/d5d958682502871a0b73f87e079adde8cce3ecd0/chrome/android/java/src/org/chromium/chrome/browser/services/AccountsChangedReceiver.java
[modify] https://crrev.com/d5d958682502871a0b73f87e079adde8cce3ecd0/chrome/android/java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java
[modify] https://crrev.com/d5d958682502871a0b73f87e079adde8cce3ecd0/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
[modify] https://crrev.com/d5d958682502871a0b73f87e079adde8cce3ecd0/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninHelperTest.java
[modify] https://crrev.com/d5d958682502871a0b73f87e079adde8cce3ecd0/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTest.java

Project Member

Comment 27 by bugdroid1@chromium.org, Nov 16

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

commit 6b499335075aafc8202a4d66096ec24156924413
Author: Aiden Benner <abenner@google.com>
Date: Fri Nov 16 17:45:16 2018

Suppress WebView context#applicationGetContext warnings

In preparation for enabling an errorprone check that would
prohibit context#getApplicationContext in favour of
ContextUtils#getApplicationContext this CL suppresses
existing usages in WebView.

See https://bugs.chromium.org/p/chromium/issues/detail?id=560466
for context.

Bug: 846456
Change-Id: I9f046f1fa64d562cc9efb7d66a65bfe793b04bfb
Reviewed-on: https://chromium-review.googlesource.com/c/1340375
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Commit-Queue: Aiden Benner <abenner@google.com>
Cr-Commit-Position: refs/heads/master@{#608843}
[modify] https://crrev.com/6b499335075aafc8202a4d66096ec24156924413/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
[modify] https://crrev.com/6b499335075aafc8202a4d66096ec24156924413/android_webview/java/src/org/chromium/android_webview/AwContentsStatics.java
[modify] https://crrev.com/6b499335075aafc8202a4d66096ec24156924413/android_webview/java/src/org/chromium/android_webview/ResourcesContextWrapperFactory.java
[modify] https://crrev.com/6b499335075aafc8202a4d66096ec24156924413/android_webview/java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java
[modify] https://crrev.com/6b499335075aafc8202a4d66096ec24156924413/android_webview/java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java
[modify] https://crrev.com/6b499335075aafc8202a4d66096ec24156924413/android_webview/java/src/org/chromium/android_webview/services/CrashReceiverService.java
[modify] https://crrev.com/6b499335075aafc8202a4d66096ec24156924413/android_webview/java/src/org/chromium/android_webview/services/VariationsSeedServer.java

Project Member

Comment 28 by bugdroid1@chromium.org, Nov 16

Sign in to add a comment