[PRImpl] UIsManager accesses CPRImpl through PRImpl
Diagnosis for crbug.com/1123083: It crashed when UIsManager tried to access CPRImpl#mClient which is null after CPRImpl has closed. Since CPRImpl is not supposed to be used after closed, UIsManager should not use PaymentUIsObserver (implemented by CPRImpl) after CPRImpl is closed. However, the original didn't allow CPRImpl to inform UIsManager of CPRImpl's closing, nor should it because UIsManager is responsible for PaymentUIsObserver not CPRImpl. Change: UIsManager no longer accesses CPRImpl directly. Instead, PRImpl is used as middle man to handle it. The reason is that since CPRImpl, PRImpl, UIsManager are structured in layers (low to high), CPRImpl and UIsManager should not be aware of each other. Acronyms: CPRImpl = ComponentPaymentRequestImpl UIsManager = PaymentUIsManager Bug: 1123083 Change-Id: Iaafd1827691031c55f30731f1ac7f6bec8ddbe9e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2392757Reviewed-by:Rouslan Solomakhin <rouslan@chromium.org> Commit-Queue: Liquan (Max) Gu <maxlg@chromium.org> Cr-Commit-Position: refs/heads/master@{#804364}
Showing
Please register or sign in to comment