Ensure low-memory renderers retry failed loads correctly.
commit1f11873066a51ebe84e302128957ddc5ee594065
authorsimonb <simonb@chromium.org>
Thu, 17 Sep 2015 14:58:20 +0000 (17 07:58 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 17 Sep 2015 14:58:57 +0000 (17 14:58 +0000)
treef805b17ffdcb437efc869a137f40087109fd4a5f
parente8b2e7dee39f272747554f0b26451d15b786e06d
Ensure low-memory renderers retry failed loads correctly.

LibraryLoader uses isUsingBrowserSharedRelros() to decide whether to retry
a fixed address load for the browser. On a low-memory target, this function
will currently return true for both browser and renderer processes. This
means that any renderer fixed load retry for low-memory will also occur in
LibraryLoader, rather than in ChildProcessService.

This works, but a side effect is that UMA statistics for failed renderer
fixed address load are not updated correctly by ChildProcessService (such
an event will however not register as a failed browser load either,
because the function to push UMA values on browser load is not called for
a child process).

Fixed by making isUsingBrowserSharedRelros() return false if not in the
browser process, regardless of any low-memory/normal-memory setting.

Additionally, make ...ForTesting functions final, and clean up a few
portions of testing code for tighter operation.

BUG=460499

Review URL: https://codereview.chromium.org/1349673003

Cr-Commit-Position: refs/heads/master@{#349420}
base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java
base/android/java/src/org/chromium/base/library_loader/Linker.java