Index: content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java b/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java |
index f992a243f5afdc511bb038a0f0ce1dd264618ae7..850fc3db64ff81b904b888127e7a4823b34196ab 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java |
@@ -195,22 +195,24 @@ public class SelectionPopupController extends ActionModeCallbackHelper { |
// Just refreshes the view if it is already showing. |
if (isActionModeValid()) { |
- invalidateActionMode(); |
+ // Try/catch necessary for framework bug, crbug.com/446717. |
+ try { |
+ mActionMode.invalidate(); |
+ } catch (NullPointerException e) { |
+ Log.w(TAG, "Ignoring NPE from ActionMode.invalidate() as workaround for L", e); |
+ } |
+ hideActionMode(false); |
return true; |
} |
- |
- if (mView.getParent() != null) { |
- // On ICS, startActionMode throws an NPE when getParent() is null. |
- assert mWebContents != null; |
- ActionMode actionMode = supportsFloatingActionMode() |
- ? startFloatingActionMode() |
- : mView.startActionMode(mCallback); |
- if (actionMode != null) { |
- // This is to work around an LGE email issue. See crbug.com/651706 for more details. |
- LGEmailActionModeWorkaround.runIfNecessary(mContext, actionMode); |
- } |
- mActionMode = actionMode; |
+ assert mWebContents != null; |
+ ActionMode actionMode = supportsFloatingActionMode() |
+ ? startFloatingActionMode() |
+ : mView.startActionMode(mCallback); |
+ if (actionMode != null) { |
+ // This is to work around an LGE email issue. See crbug.com/651706 for more details. |
+ LGEmailActionModeWorkaround.runIfNecessary(mContext, actionMode); |
} |
+ mActionMode = actionMode; |
mUnselectAllOnDismiss = true; |
return isActionModeValid(); |
} |
@@ -296,27 +298,6 @@ public class SelectionPopupController extends ActionModeCallbackHelper { |
} |
/** |
- * @see ActionMode#invalidate() |
- * Note that invalidation will also reset visibility state. The caller |
- * should account for this when making subsequent visibility updates. |
- */ |
- private void invalidateActionMode() { |
- if (!isActionModeValid()) return; |
- if (mHidden) { |
- assert canHideActionMode(); |
- mHidden = false; |
- mView.removeCallbacks(mRepeatingHideRunnable); |
- } |
- |
- // Try/catch necessary for framework bug, crbug.com/446717. |
- try { |
- mActionMode.invalidate(); |
- } catch (NullPointerException e) { |
- Log.w(TAG, "Ignoring NPE from ActionMode.invalidate() as workaround for L", e); |
- } |
- } |
- |
- /** |
* @see ActionMode#invalidateContentRect() |
*/ |
public void invalidateContentRect() { |