diff options
author | Arthur Hung <arthurhung@google.com> | 2019-02-19 11:31:44 +0800 |
---|---|---|
committer | Arthur Hung <arthurhung@google.com> | 2019-02-22 12:43:55 +0800 |
commit | a4c520694fee942a6a166bbb6687dcd0ea0e3509 (patch) | |
tree | a7b0f0a0b91fb99cb596510a558558c16cf5b806 /services/art-profile | |
parent | ddc0fa515588f6545f7ffbc4e9d03b55565020f8 (diff) |
Fix View#performHapticFeedback() can block UI thread
Currently, IWindowSession#performHapticFeedback() would first lookup
the WindowState via IWindow token. That would also hold the WMS lock,
so if some function like relayout window is still hold WMS lock,
it may block the function.
Use uid and package name from Session that they already restored.
Bug: 62330939
Test: Open app with autofill edit, type with IME.
Change-Id: I359c106d213b87aa8afee48b0f1ad70011970eab
Diffstat (limited to 'services/art-profile')
-rw-r--r-- | services/art-profile | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/services/art-profile b/services/art-profile index e7503806edfe..7892fcb79822 100644 --- a/services/art-profile +++ b/services/art-profile @@ -2942,7 +2942,7 @@ HSPLcom/android/server/policy/WindowManagerPolicy;->onConfigurationChanged()V HSPLcom/android/server/policy/WindowManagerPolicy;->onKeyguardOccludedChangedLw(Z)V HSPLcom/android/server/policy/WindowManagerPolicy;->onLockTaskStateChangedLw(I)V HSPLcom/android/server/policy/WindowManagerPolicy;->onSystemUiStarted()V -HSPLcom/android/server/policy/WindowManagerPolicy;->performHapticFeedbackLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;IZ)Z +HSPLcom/android/server/policy/WindowManagerPolicy;->performHapticFeedback(ILjava/lang/String;IZ)Z HSPLcom/android/server/policy/WindowManagerPolicy;->prepareAddWindowLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;Landroid/view/WindowManager$LayoutParams;)I HSPLcom/android/server/policy/WindowManagerPolicy;->registerShortcutKey(JLcom/android/internal/policy/IShortcutService;)V HSPLcom/android/server/policy/WindowManagerPolicy;->removeWindowLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)V @@ -15736,7 +15736,7 @@ PLcom/android/server/policy/PhoneWindowManager;->onConfigurationChanged()V PLcom/android/server/policy/PhoneWindowManager;->onKeyguardOccludedChangedLw(Z)V PLcom/android/server/policy/PhoneWindowManager;->onOverlayChangedLw()V PLcom/android/server/policy/PhoneWindowManager;->onSystemUiStarted()V -PLcom/android/server/policy/PhoneWindowManager;->performHapticFeedbackLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;IZ)Z +PLcom/android/server/policy/PhoneWindowManager;->performHapticFeedback(ILjava/lang/String;IZ)Z PLcom/android/server/policy/PhoneWindowManager;->powerPress(JZI)V PLcom/android/server/policy/PhoneWindowManager;->prepareAddWindowLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;Landroid/view/WindowManager$LayoutParams;)I PLcom/android/server/policy/PhoneWindowManager;->readCameraLensCoverState()V @@ -18331,7 +18331,7 @@ PLcom/android/server/wm/Session;->getWindowId(Landroid/os/IBinder;)Landroid/view PLcom/android/server/wm/Session;->killSessionLocked()V PLcom/android/server/wm/Session;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V PLcom/android/server/wm/Session;->onWindowSurfaceVisibilityChanged(Lcom/android/server/wm/WindowSurfaceController;ZI)V -PLcom/android/server/wm/Session;->performHapticFeedback(Landroid/view/IWindow;IZ)Z +PLcom/android/server/wm/Session;->performHapticFeedback(IZ)Z PLcom/android/server/wm/Session;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/Surface;)I PLcom/android/server/wm/Session;->remove(Landroid/view/IWindow;)V PLcom/android/server/wm/Session;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle; |