Commit a084396a authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

GestureNav: Prevent crash upon release

Overscroll release without preceding pull requests causes null pointer
deference in its scene layer when attempting to obtain resource
manager instance. This CL prevents the crash by checking such incidence.

Bug: 1119713
Change-Id: I83f4376aa2672c166c8ea693a8a4057b17bb44f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2382994Reviewed-by: default avatarJinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Auto-Submit: Jinsuk Kim <jinsukkim@chromium.org>
Commit-Queue: Matthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#803105}
parent 45f44b61
......@@ -174,6 +174,27 @@ public class NavigationHandlerTest {
Assert.assertNull(mNavigationLayout.getDetachLayoutRunnable());
}
@Test
@SmallTest
public void testReleaseGlowWithoutPrecedingPullIgnored() {
mTestServer = EmbeddedTestServer.createAndStartServer(
InstrumentationRegistry.getInstrumentation().getContext());
mActivityTestRule.loadUrl(mTestServer.getURL(RENDERED_PAGE));
TestThreadUtils.runOnUiThreadBlocking(() -> {
// Right swipe on a rendered page to initiate overscroll glow.
mNavigationHandler.onDown();
mNavigationHandler.triggerUi(true, 0, 0);
// Test that a release without preceding pull requests works
// without crashes.
mNavigationHandler.release(true);
});
// Just check we're still on the same URL.
Assert.assertEquals(mTestServer.getURL(RENDERED_PAGE),
ChromeTabUtils.getUrlStringOnUiThread(currentTab()));
}
@Test
@SmallTest
public void testSwipeNavigateOnNativePage() {
......
......@@ -51,6 +51,8 @@ jboolean OverscrollSceneLayer::Update(
jfloat accumulated_overscroll_x,
jfloat delta_x) {
if (!resource_manager_) {
if (jresource_manager.is_null())
return false;
resource_manager_ =
ui::ResourceManagerImpl::FromJavaObject(jresource_manager);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment