Fix SKStoreProductViewController dismissal in StoreKitCoordinator.

Do not call -dismissViewControllerAnimated:completion: on
|self.baseViewController|, since the receiver of the method can be
dismissed if there is no presented view controller. On iOS 12
SKStoreProductViewControllerDelegate is responsible for dismissing
SKStoreProductViewController. On iOS 13.0 OS dismisses
SKStoreProductViewController after calling -productViewControllerDidFinish:
On iOS 13.2 OS dismisses SKStoreProductViewController before calling
-productViewControllerDidFinish: Calling
-dismissViewControllerAnimated:completion: on |self.baseViewController| on
iOS 13.2 will dismiss base view controller and break the application UI.
According to SKStoreProductViewController documentation the delegate is
responsible for calling deprecated dismissModalViewControllerAnimated: so
the documentation is clearly outdated and this code should be resilient to
different SKStoreProductViewController behavior without relying on iOS
version check (see crbug.com/1027058).

Bug: 1027058
Change-Id: Ib3918930b9950e79b088f14b3d0424e42d7b5c58
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1928590
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Mohammad Refaat <mrefaat@chromium.org>
Reviewed-by: edchin <edchin@chromium.org>
Auto-Submit: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720711}
2 files changed