Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6bf1d7b authored by Paul Miller's avatar Paul Miller
Browse files

Fix crash on pasting text in a WebView

WindowDecorActionBar and Chrome's ContentViewCore each have their own ActionMode
reference. ActionModeImpl.finish() nulls WindowDecorActionBar's reference and
calls mCallback.onDestroyActionMode() to null ContentViewCore's reference. But
if the callback is deferred, there is a period when the ActionMode is finished
(and mCallback is null), but ContentViewCore doesn't know. ContentViewCore may
try to invalidate() the ActionMode, which will crash on the null mCallback.

Make ActionModeImpl more permissive so that calling invalidate() during this
period does nothing.

BUG:18758329
Change-Id: I407fa0e0cd3cffa217e165caed83130d44760316
parent 45c6ae56
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -993,6 +993,13 @@ public class WindowDecorActionBar extends ActionBar implements

        @Override
        public void invalidate() {
            if (mActionMode != this) {
                // Not the active action mode - no-op. It's possible we are
                // currently deferring onDestroy, so the app doesn't yet know we
                // are going away and is trying to use us. That's also a no-op.
                return;
            }

            mMenu.stopDispatchingItemsChanged();
            try {
                mCallback.onPrepareActionMode(this, mMenu);