In MR1, the ephemeral application was launched via the supervisor.
In O, the ephemeral application is installed on the system as a
proper application and runs natively.
Bug: 30204367
Test: build & install the framework and run 'adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://www.tripadvisor.com/Tourism-g33020-San_Jose_California-Vacations.html"'
Change-Id: Iea496862aeb72c6bfde439620950ba951d859cc7
The system should never be extending Uri permission grants from
itself, since it automatically holds all the permissions. Instead,
the system should always be a mediator between two specific app, and
it should be using startActivityAsCaller() if it needs to extend
permissions.
Blocking at this level fixes an entire class of confused deputy
security issues.
Test: builds, normal intent resolution UI works
Bug: 33019296
Change-Id: Iaa57c393a386d8068e807d0dd0caccc89d8a11db
We want to create the classloader for the WebView in advance in the
zygote so that it can preload Java and native code for its children, but
the zygote can't talk to the package manager (so doesn't have a
PackageInfo for the APK) and also doesn't have an ActivityThread, so
constructing a LoadedApk is difficult.
Instead, we use the fact that ApplicationLoaders contains a
process-global cache of classloaders for APKs, and prepopulate a cache
entry without constructing a LoadedApk. This requires making
ApplicationLoaders public. To calculate the correct library paths from
the information the zygote has, we reuse the logic in LoadedApk (which
is already public, and just needs a small change to allow a null
ActivityThread when checking for instrumentation).
The other parameters for classloader creation (target SDK, bundled app,
etc) are hardcoded to usable values for the WebView's case. WebView
never needs to use any system libraries that aren't public so claiming
it's not bundled is fine even when that isn't actually true, and WebView
will always target the current platform API level.
Once the classloader is created, look up the factory class and call
preloadInZygote on it to give it a chance to preload the native library
and do other shared initialisation.
Bug: 21643067
Test: enable multiprocess WebView, examine librank output to see sharing
Change-Id: I696ead637e3f7382bcc58cfaf61eac5921862015
This rename is part of the update of Collections.java to OpenJDK8u60.
This is compatible change because generic type argument names affect
neither compile time nor runtime compatibility.
The build system (incorrectly) flags this as a change to a released
API. Removing or changing released public APIs is infeasible on AOSP.
Therefore this change will remain restricted to internal branches
until the API is released.
Bug: 31902309
Test: make
Change-Id: I54bc3d6321429ff18c6057332b469286e8b1d42d