[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,