Dissemble the app_mode_loader.

Previously the app_mode_loader was packaged into a .app bundle. But
because the Info.plist is modified as part of creating app shim
shortcuts, only the executable was code signed. This left the Info.plist
as an un-sealed resource. Under stricter code signing verification rules
required for macOS notarization, an .app bundle cannot have an un-sealed
Info.plist.

To work around this, place the un-bundled executable in the Framework's
Helpers directory and store the Info.plist file under Resources. When
building app shims at runtime, the .app bundle structure will be created
manually (rather than copying the whole pre-built bundle).

Created app shims will still not be validly signed .app bundles, but the
components carried within Chrome will pass validation.

Test: Browser menu > More tools > Create shortcut creates an app
      shortcut that launches.

Bug: 960886, 850199
Change-Id: Ia4521ee436bc3288084004e247fd9765fb93816a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1609886
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#659223}
6 files changed