PaymentRequest: Remove shipping_address_errors_ field

After 1280563 CL, our implementation doesn't overwrite the details
information each time. So, we can use details.shippingAddressErrors
directly instead of having a seperated field.

Bug: none
Change-Id: Ic1123fbb67a2f203b8c69c28de18ad172aed843d
Reviewed-on: https://chromium-review.googlesource.com/c/1374192
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Commit-Queue: Jinho Bang <jinho.bang@samsung.com>
Cr-Commit-Position: refs/heads/master@{#616629}
diff --git a/components/payments/content/payment_request_spec.cc b/components/payments/content/payment_request_spec.cc
index 3a75a84..c3406df 100644
--- a/components/payments/content/payment_request_spec.cc
+++ b/components/payments/content/payment_request_spec.cc
@@ -119,7 +119,7 @@
   if (!errors)
     return;
 
-  shipping_address_errors_ = std::move(errors->shipping_address);
+  details_->shipping_address_errors = std::move(errors->shipping_address);
   payer_errors_ = std::move(errors->payer);
   current_update_reason_ = UpdateReason::RETRY;
   NotifyOnSpecUpdated();
@@ -128,38 +128,39 @@
 
 base::string16 PaymentRequestSpec::GetShippingAddressError(
     autofill::ServerFieldType type) {
-  if (!shipping_address_errors_)
+  if (!details_->shipping_address_errors)
     return base::string16();
 
   if (type == autofill::ADDRESS_HOME_STREET_ADDRESS)
-    return base::UTF8ToUTF16(shipping_address_errors_->address_line);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->address_line);
 
   if (type == autofill::ADDRESS_HOME_CITY)
-    return base::UTF8ToUTF16(shipping_address_errors_->city);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->city);
 
   if (type == autofill::ADDRESS_HOME_COUNTRY)
-    return base::UTF8ToUTF16(shipping_address_errors_->country);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->country);
 
   if (type == autofill::ADDRESS_HOME_DEPENDENT_LOCALITY)
-    return base::UTF8ToUTF16(shipping_address_errors_->dependent_locality);
+    return base::UTF8ToUTF16(
+        details_->shipping_address_errors->dependent_locality);
 
   if (type == autofill::COMPANY_NAME)
-    return base::UTF8ToUTF16(shipping_address_errors_->organization);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->organization);
 
   if (type == autofill::PHONE_HOME_WHOLE_NUMBER)
-    return base::UTF8ToUTF16(shipping_address_errors_->phone);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->phone);
 
   if (type == autofill::ADDRESS_HOME_ZIP)
-    return base::UTF8ToUTF16(shipping_address_errors_->postal_code);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->postal_code);
 
   if (type == autofill::NAME_FULL)
-    return base::UTF8ToUTF16(shipping_address_errors_->recipient);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->recipient);
 
   if (type == autofill::ADDRESS_HOME_STATE)
-    return base::UTF8ToUTF16(shipping_address_errors_->region);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->region);
 
   if (type == autofill::ADDRESS_HOME_SORTING_CODE)
-    return base::UTF8ToUTF16(shipping_address_errors_->sorting_code);
+    return base::UTF8ToUTF16(details_->shipping_address_errors->sorting_code);
 
   return base::string16();
 }
@@ -182,18 +183,18 @@
 }
 
 bool PaymentRequestSpec::has_shipping_address_error() const {
-  return shipping_address_errors_ && request_shipping() &&
-         !(shipping_address_errors_->address_line.empty() &&
-           shipping_address_errors_->city.empty() &&
-           shipping_address_errors_->country.empty() &&
-           shipping_address_errors_->dependent_locality.empty() &&
-           shipping_address_errors_->organization.empty() &&
-           shipping_address_errors_->phone.empty() &&
-           shipping_address_errors_->postal_code.empty() &&
-           shipping_address_errors_->recipient.empty() &&
-           shipping_address_errors_->region.empty() &&
-           shipping_address_errors_->region_code.empty() &&
-           shipping_address_errors_->sorting_code.empty());
+  return details_->shipping_address_errors && request_shipping() &&
+         !(details_->shipping_address_errors->address_line.empty() &&
+           details_->shipping_address_errors->city.empty() &&
+           details_->shipping_address_errors->country.empty() &&
+           details_->shipping_address_errors->dependent_locality.empty() &&
+           details_->shipping_address_errors->organization.empty() &&
+           details_->shipping_address_errors->phone.empty() &&
+           details_->shipping_address_errors->postal_code.empty() &&
+           details_->shipping_address_errors->recipient.empty() &&
+           details_->shipping_address_errors->region.empty() &&
+           details_->shipping_address_errors->region_code.empty() &&
+           details_->shipping_address_errors->sorting_code.empty());
 }
 
 bool PaymentRequestSpec::has_payer_error() const {
@@ -205,10 +206,6 @@
 }
 
 void PaymentRequestSpec::RecomputeSpecForDetails() {
-  // Clear the shipping address errors when the merchant updates the price based
-  // on the shipping address that the user has newly fixed or selected.
-  shipping_address_errors_.reset();
-
   // Reparse the |details_| and update the observers.
   UpdateSelectedShippingOption(/*after_update=*/true);
 
@@ -385,10 +382,6 @@
             break;
         }
       }
-
-      // Update shipping address errors
-      if (details_->shipping_address_errors)
-        shipping_address_errors_ = std::move(details_->shipping_address_errors);
     }
     return;
   }
diff --git a/components/payments/content/payment_request_spec.h b/components/payments/content/payment_request_spec.h
index bda25ec..d1b4316 100644
--- a/components/payments/content/payment_request_spec.h
+++ b/components/payments/content/payment_request_spec.h
@@ -237,7 +237,6 @@
   // notified.
   base::ObserverList<Observer>::Unchecked observers_;
 
-  mojom::AddressErrorsPtr shipping_address_errors_;
   mojom::PayerErrorsPtr payer_errors_;
 
   DISALLOW_COPY_AND_ASSIGN(PaymentRequestSpec);