[Context menu] Add null check in mOnMenuClosed
This is the second attempt at fixing the NPE.
(cherry picked from commit c58027465464256f2da6bbb1693c3073058e2753)
Bug: 1133172
Change-Id: Iabe5faf1814147d3069ae5815fe0c4f1ea441f83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2453442
Reviewed-by: Theresa <[email protected]>
Commit-Queue: Sinan Sahin <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#814459}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2468307
Reviewed-by: Sinan Sahin <[email protected]>
Cr-Commit-Position: refs/branch-heads/4280@{#330}
Cr-Branched-From: ea420fb963f9658c9969b6513c56b8f47efa1a2a-refs/heads/master@{#812852}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java
index be47d33..118284e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java
@@ -46,6 +46,7 @@
private Callback<Boolean> mOnMenuClosed;
private long mMenuShownTimeMs;
private boolean mSelectedItemBeforeDismiss;
+ private boolean mIsIncognito;
private ContextMenuHelper(long nativeContextMenuHelper, WebContents webContents) {
mNativeContextMenuHelper = nativeContextMenuHelper;
@@ -93,7 +94,7 @@
mCurrentPopulator = mPopulatorFactory.createContextMenuPopulator(
windowAndroid.getActivity().get(), params, renderFrameHost);
-
+ mIsIncognito = mCurrentPopulator.isIncognito();
mCurrentContextMenuParams = params;
mWindow = windowAndroid;
mCallback = (result) -> {
@@ -112,16 +113,16 @@
};
mOnMenuClosed = (notAbandoned) -> {
recordTimeToTakeActionHistogram(mSelectedItemBeforeDismiss || notAbandoned);
- mCurrentPopulator.onMenuClosed();
- if (LensUtils.enableShoppyImageMenuItem()
- || LensUtils.enableImageChip(mCurrentPopulator.isIncognito())) {
+ if (mCurrentPopulator != null) {
+ mCurrentPopulator.onMenuClosed();
+ mCurrentPopulator.onDestroy();
+ mCurrentPopulator = null;
+ }
+ if (LensUtils.enableShoppyImageMenuItem() || LensUtils.enableImageChip(mIsIncognito)) {
// If the image was being classified terminate the classification
// Has no effect if the classification already succeeded.
LensController.getInstance().terminateClassification();
}
- mCurrentPopulator.onDestroy();
- mCurrentPopulator = null;
-
if (mNativeContextMenuHelper == 0) return;
ContextMenuHelperJni.get().onContextMenuClosed(
mNativeContextMenuHelper, ContextMenuHelper.this);
@@ -152,7 +153,7 @@
final RevampedContextMenuCoordinator menuCoordinator = new RevampedContextMenuCoordinator(
topContentOffsetPx, () -> shareImageWithLastShareComponent());
- if (LensUtils.enableImageChip(mCurrentPopulator.isIncognito())) {
+ if (LensUtils.enableImageChip(mIsIncognito)) {
LensAsyncManager lensAsyncManager =
new LensAsyncManager(mCurrentContextMenuParams, mCurrentPopulator);
menuCoordinator.displayMenuWithLensChip(mWindow, mWebContents,