• Egor Pasko's avatar
    base/android: Make Linker an implementation detail of LibraryLoader · aa6a5ca9
    Egor Pasko authored
    Restrict Linker functionality to be "package private", do not expose
    the whole Linker API to clients.
    
    Reduce verbosity in code comments about the Linker, and reformulate them
    in terms of RELRO producer/consumer, rather than process type. This way
    the App Zygote can become the RELRO producer without contradicting all
    these explanations.
    
    Remove ChromiumLinkerParams. Previously I thought that in the new
    protocol it would expand, but now I realized that it is better to extend
    the messages that happen later in Linker lifetime.
    
    Extract the bundle exchange between linkers in different processes into
    LibraryLoader's inner class. This looks cleaner because it makes the
    communication protocol handled in one compact place. Before this change
    it was nontrivial to verify that communication is not racy.
    
    The plan is to add functionality to the MultiProcessMessageHandler to
    make it possible to sometimes move the RELRO FD from isolated processes
    into the browser process, without leaking a lot of knowledge about it
    outside of the package o.c.b.library_loader. With this change the
    MultiProcessMessageHandler will make sense to move to another file.
    
    Bug: 1154224
    Change-Id: I2c027961530947a93bca44ce70b8b9dcd25e1b2f
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2607931
    Commit-Queue: Egor Pasko <pasko@chromium.org>
    Reviewed-by: default avatarBo <boliu@chromium.org>
    Reviewed-by: default avatarBenoit L <lizeb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#840993}
    aa6a5ca9
BUILD.gn 35.1 KB