This change adds parsing, encoding, and validating of odm and oem
overlayable policies to aapt2, libandroidfw, and idmap2.
Bug: 121033532
Test: aapt2_tests, idmap2_tests
Change-Id: Ifc0d4b6c9f9c37e06b2988abade69dbb277c50c2
Since idmap1 can't enforce policy restrictions, we can't allow it
to generate an idmap that might get used.
Migrating to idmap2 is too difficult for now as it requires a lot
of PackageManager infrastructure to validate policies, and none of
that is available during manifest parsing, which is where idmap1
is currently used.
Bug: b/130260055
Test: manual test BT issue from b/130260055
Test: manual test app with test overlay toggling Activity enabled
Change-Id: I5e7e321d27aab9be360a5e8be77d804ad3f66336
Bug: 128805564
Test: Manual + systrace; hwui_unit_tests; CtsUiRenderingTestCases
Only update a VectorDrawable's cache if it is onscreen. This fixes a
Twitter use case where the app has a ProgressBar that is exactly one
pixel offscreen. Prior to this CL, we repeatedly drew the ProgressBar's
AVD to a GPU surface, even though we clip it out later and never draw
that GPU surface. Now, we recognize that the AVD is outside of the
bounds of the screen, so we never draw to the GPU surface.
TreeInfo:
- store the size of the screen, retrieved from
CanvasContext::getNextFrameSize.
SkiaDisplayList:
- Store the matrix at the time of recording a VectorDrawable. Concat
that with the current matrix to determine whether the VD is on screen,
based on the TreeInfo. If it is offscreen, do not add it to the list
of AVDs that need to be updated ahead of rendering.
- In addition, if it is offscreen (or not dirty), do not call
setPropertyChangeWillBeConsumed(true). This prevents triggering
dispatchFrameCallbacks to update on the RenderThread when there is no
need to. This also mimics what would happen if the View/RenderNode had
been completely offscreen.
- Add a method to append an AVD to mVectorDrawables. Now that the vector
is of Pairs, this simplifies the call sites. Add a second helper to
just add an AVD without a matrix, for use in tests.
SkiaRecordingCanvas:
- get the current matrix and store it in the display list along with the
AVD.
CanvasContext:
- add getNextFrameSize, for reporting the size of the next frame without
dequeuing it
VectorDrawable.cpp:
- call quickReject to potentially short circuit drawing. This is for a
hypothetical use case (verified in a test app) where the containing
RenderNode is partially onscreen, but the AVD itself is not. Even
without the change to VectorDrawable.cpp, we skip uploading to the GPU
cache, the SkiaDisplayList still attempts to draw it. This change
keeps us from drawing it at all.
SkiaDisplayListTests.cpp:
- Now that I've hidden mVectorDrawables, call the new public APIs.
- prepareListAndChildren test
- for the clean VD, assert that getPropertyChangeWillBeConsumed
returns FALSE. This is due to the behavior change that we do not
set it unless the VD is dirty.
- set the bounds, so our onscreen check works.
- Add another test for prepareListAndChildren, which puts VDs offscreen.
Change-Id: Iae0a07adcf58e7884e0854720de644e7b2faf2bf
Bug: 129355537
Test: I9e004fbb7c966bb58ae374087fecd66a1bb72346
android_view_ThreadedRenderer_createHardwareBitmapFromRenderNode in
SkiaGL could create an android::Bitmap without an SkColorSpace. Treat
HAL_DATASPACE_UNKNOWN as sRGB, as this is how we treat it internally.
Change-Id: Iad7f7d7cafce0a8759a84a4296ae5c3ce86dff4c
(cherry picked from commit 7fb4c9e4bb)
Merged-In: Iad7f7d7cafce0a8759a84a4296ae5c3ce86dff4c
This reverts commit 162305aace.
Adjusted tests to ensure they pass on cf_x86
Bug: 129250875
Test: this on cf_x86 & blueline
Change-Id: Ic3245ec8db784ae356b7fa66dda9a2fc91c622ea
This reverts commit 5ff61f32a7.
Reason for revert: causes global presubmit to be very flaky, see b/130081457
Fixes: b/130081457
Change-Id: I93aa5d6686cd6b5bf831766c9e47c291749526a9
* changes:
Make libplatformprotos-static, which is safe to use when you don't have shared libraries.
Add additional system properties that can disable the face debugging codepath
Fix mMaxOffset not initialized.
Hard-coded values in styles can be copied between AssetManagers even if
the source package is not present in the destination AssetManager. Only
references and strings should be prevented from being copied over
because they would be invalid in the destination AssetManager.
Bug:126400561
Test: manual
Change-Id: I970a3e961763b2c003c15b950d864a9a0b615022
Currently only supported in the EGL path.
Vulkan support Coming Soon
Bug: 127822449
Test: trace of hwuimacro
Change-Id: Iac2b039e11d964aab5b8ca1bdf2a5430b187e2ea
EGL driver is preloaded only if HWUI renders with GL.
Test: Ran several apps, passed CtsGraphics and CtsUiRendering
Change-Id: Ib38d6f51a19a2ee3631c7d9c99283286c389e476
* changes:
Revert ContextImpl LoadedApk packageInfo caching workaround
Fix AssetManager2 isUpToDate check
Diff resource dirs when checking LoadedApk packageInfo cache in ActivityThread
Diff overlays between PackageManagerService and OverlayManagerService
Propagate base code path and split dir changes to Resources objects
This logic was lost in the AssetManager1 -> 2 migration.
The old AM1 checked the last modification time of the file
and compared it to a previously stored value. This re-adds the
logic to ApkAssets and fixes the checks in the JNI/Java layer.
Unfortunately I couldn't find a failing/practical case where
this check mattered. It only came up when diagnosing an issue
which ended up being unrelated.
Test: manually ran with other overlay changes
Change-Id: I758e4af1d32a9c03b2204a8a3a26e82b7e83feda
HWUI uses SkPaintFilterCanvas to apply View alpha in nested draw
calls. This conflicts with new SkDrawable::snapGpuDrawHandler
API used by Vulkan WebView. The new API works only with GPU
device (see SkGpuDevice::drawDrawable), which SkPaintFilterCanvas
does not have (it uses SkNoPixelsDevice instead).
This CL uses new Skia API to find wrapped GPU canvas and
draw SkDrawable on it.
Improve SKP capture for Vulkan WebView to match GL.
Test: Ran Fandango app with Vulkan. Captured a SKP.
Bug: 128792554
Change-Id: I27040347dc25c799b4e75f50526f426e9e33b663
When we had to make a copy SkBitmap for an unsupported format, we
were dropping the color space information.
Added a null check in terminate.
Test: manual build and running on blueline
Change-Id: I3cf386231e76b7505a691d006585918d343f6c96
Anytime dequeueNativeBuffer fails, it sets mDequeuedIndex to -1.
This is causing a crash latter, when getCurrentSkSurface tries
to index mNativeBuffers[mDequeuedIndex].
This CL removes mDequeuedIndex and improves Vulkan swapchain
error handling.
Test: Ran Camera app
Bug: 129024275
Change-Id: Ieeb685c3a1b33f23ce2334d286199a44ace53165
Webview no longer needs this.
Bug: 124123583
Test: comppiles and vulkan webview in layer keeps working
Change-Id: Ib54e33649eb027a03184c5d7588cfd9568c90a6c