зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1358805 - part 5: Update the dynamic toolbar animator to gracefully handle toolbar snapshot generation failure r=kats
MozReview-Commit-ID: B3t6l5ZqhC5
This commit is contained in:
Родитель
b1e89ec4b1
Коммит
c82d528d56
|
@ -278,6 +278,10 @@ AndroidDynamicToolbarAnimator::ToolbarAnimatorMessageFromUI(int32_t aMessage)
|
|||
case REQUEST_HIDE_TOOLBAR_ANIMATED:
|
||||
NotifyControllerPendingAnimation(MOVE_TOOLBAR_UP, eAnimate);
|
||||
break;
|
||||
case TOOLBAR_SNAPSHOT_FAILED:
|
||||
mToolbarState = eToolbarVisible;
|
||||
NotifyControllerSnapshotFailed();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -893,5 +897,18 @@ AndroidDynamicToolbarAnimator::GetFixedLayerMarginsBottom()
|
|||
return mCompositorToolbarHeight - (mCompositorSurfaceHeight - mCompositorCompositionSize.height);
|
||||
}
|
||||
|
||||
void
|
||||
AndroidDynamicToolbarAnimator::NotifyControllerSnapshotFailed()
|
||||
{
|
||||
if (!APZThreadUtils::IsControllerThread()) {
|
||||
APZThreadUtils::RunOnControllerThread(NewRunnableMethod(this, &AndroidDynamicToolbarAnimator::NotifyControllerSnapshotFailed));
|
||||
return;
|
||||
}
|
||||
|
||||
mControllerToolbarHeight = 0;
|
||||
mControllerState = eNothingPending;
|
||||
UpdateCompositorToolbarHeight(mControllerToolbarHeight);
|
||||
}
|
||||
|
||||
} // namespace layers
|
||||
} // namespace mozilla
|
||||
|
|
|
@ -149,6 +149,7 @@ protected:
|
|||
void ShowToolbarIfNotVisible(StaticToolbarState aCurrentToolbarState);
|
||||
void TranslateTouchEvent(MultiTouchInput& aTouchEvent);
|
||||
ScreenIntCoord GetFixedLayerMarginsBottom();
|
||||
void NotifyControllerSnapshotFailed();
|
||||
|
||||
// Read only Compositor and Controller threads after Initialize()
|
||||
uint64_t mRootLayerTreeId;
|
||||
|
|
|
@ -208,6 +208,7 @@ public class LayerView extends FrameLayout {
|
|||
// Send updated toolbar image to compositor.
|
||||
Bitmap bm = mToolbarAnimator.getBitmapOfToolbarChrome();
|
||||
if (bm == null) {
|
||||
postCompositorMessage(TOOLBAR_SNAPSHOT_FAILED);
|
||||
break;
|
||||
}
|
||||
final int width = bm.getWidth();
|
||||
|
|
Загрузка…
Ссылка в новой задаче