Null check the shopping service on the internals page for iOS

It appears to be possible to navigate to the commerce internals page
before the shopping service is available on iOS. This patch adds a
check in the internals constructor to avoid bad access. The page won't
function correctly, but it also won't crash.

Bug: 1511579
Change-Id: I22b4b3581b6b0134fdb0496bcc90b817a0d21bc0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5132436
Reviewed-by: David Maunder <davidjm@chromium.org>
Commit-Queue: Matthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1243498}
diff --git a/components/commerce/core/internals/commerce_internals_handler.cc b/components/commerce/core/internals/commerce_internals_handler.cc
index b5919cf..9d5ea4d 100644
--- a/components/commerce/core/internals/commerce_internals_handler.cc
+++ b/components/commerce/core/internals/commerce_internals_handler.cc
@@ -19,6 +19,9 @@
     : page_(std::move(page)),
       receiver_(this, std::move(receiver)),
       shopping_service_(shopping_service) {
+  if (!shopping_service_) {
+    return;
+  }
   shopping_service_->WaitForReady(base::BindOnce(
       [](base::WeakPtr<CommerceInternalsHandler> handler,
          ShoppingService* service) {