|
|
Created:
3 years, 8 months ago by anthonyvd Modified:
3 years, 8 months ago Reviewers:
Mathieu CC:
chromium-reviews, gogerald+paymentswatch_chromium.org, mahmadi+paymentswatch_chromium.org, rouslan+payments_chromium.org, sebsg+paymentswatch_chromium.org, tfarina Target Ref:
refs/heads/master Project:
chromium Visibility:
Public. |
Description[Web Payments] Prettify the payment sheet rows in some states.
BUG=710977
TBR=bauerb@chromium.org,blundell@chromium.org
(android_chrome_strings.grd, components_strings.grd)
Review-Url: https://codereview.chromium.org/2814173002
Cr-Commit-Position: refs/heads/master@{#464644}
Committed: https://chromium.googlesource.com/chromium/src/+/6f91eb9692b1fbb8839a0dbf9b0f3c5b10117b62
Patch Set 1 #
Total comments: 23
Patch Set 2 : Address comments. #Patch Set 3 : Fix some tests and add another case. #Patch Set 4 : Add formatter_data="android_java" #Patch Set 5 : Rebase #Messages
Total messages: 42 (29 generated)
The CQ bit was checked by anthonyvd@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
anthonyvd@chromium.org changed reviewers: + mathp@chromium.org
Hi Math, PTAL!
Very cool, few comments. Also I know it's not typical browsertest stuff but it would be great to have some tests in payment_sheet_view_controller_browsertest that assert that the UI is like we want it to be, and that the buttons say the right things. It will be easy to catch regressions this way. https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... File chrome/browser/ui/views/payments/payment_request_row_view.cc (right): https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_request_row_view.cc:18: SetEnabled(false); SetEnabled(clickable_) ? https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... File chrome/browser/ui/views/payments/payment_request_row_view.h (right): https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_request_row_view.h:17: explicit PaymentRequestRowView(views::ButtonListener* listener, no explicit https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_request_row_view.h:17: explicit PaymentRequestRowView(views::ButtonListener* listener, let's add a comment on the constructor which explains the parameters https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... File chrome/browser/ui/views/payments/payment_sheet_view_controller.cc (right): https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:157: std::unique_ptr<views::Button> CreatePaymentSheetRowWithButton( would be great to have some ASCII here too https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:174: /* clickable= */ false, name_column_width); very nit: I prefer /*clickable=*/false because then it stays one item once formatting is done (although it's possible git cl format does the right thing too) https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:192: int name_column_width) { could we also accept the section_tag and section_id here? https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:454: CreateShippingSectionContent(), std::unique_ptr<views::View>(nullptr), I'm curious, we're the only ones that do std::unique_ptr<views::View>(nullptr) in the codebase. I see a lot more of base::MakeUnique<...>(nullptr), can we do that? https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:471: static_cast<int>(DialogViewID::PAYMENT_SHEET_SHIPPING_ADDRESS_SECTION), I think we should create a different DialogViewID for buttons, so that we can test the proper interactions https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:482: // | John Smith | VISA | > | update comment to mention button https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:602: if (spec()->details().shipping_options.size()) { if (!... or .empty() https://codereview.chromium.org/2814173002/diff/1/components/payments_strings... File components/payments_strings.grdp (right): https://codereview.chromium.org/2814173002/diff/1/components/payments_strings... components/payments_strings.grdp:210: <message name="IDS_PAYMENT_REQUEST_ADD_SECTION_BUTTON" desc="The string on the section button in the Payment Sheet when the section has no available elements to select"> let's use IDS_ADD from components_strings.grd https://codereview.chromium.org/2814173002/diff/1/components/payments_strings... components/payments_strings.grdp:213: <message name="IDS_PAYMENT_REQUEST_CHOOSE_SECTION_BUTTON" desc="The string on the section button in the Payment Sheet when the section has available elements to select but none is selected."> can you move IDS_CHOOSE from android to components_strings.grd and use that?
The CQ bit was checked by anthonyvd@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
Addressed comments, PTAL! https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... File chrome/browser/ui/views/payments/payment_request_row_view.cc (right): https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_request_row_view.cc:18: SetEnabled(false); On 2017/04/13 at 00:12:44, Mathieu wrote: > SetEnabled(clickable_) ? Done. https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... File chrome/browser/ui/views/payments/payment_request_row_view.h (right): https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_request_row_view.h:17: explicit PaymentRequestRowView(views::ButtonListener* listener, On 2017/04/13 at 00:12:45, Mathieu wrote: > no explicit Done https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... File chrome/browser/ui/views/payments/payment_sheet_view_controller.cc (right): https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:157: std::unique_ptr<views::Button> CreatePaymentSheetRowWithButton( On 2017/04/13 at 00:12:45, Mathieu wrote: > would be great to have some ASCII here too Done. https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:174: /* clickable= */ false, name_column_width); On 2017/04/13 at 00:12:45, Mathieu wrote: > very nit: I prefer /*clickable=*/false because then it stays one item once formatting is done (although it's possible git cl format does the right thing too) Done. https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:192: int name_column_width) { On 2017/04/13 at 00:12:45, Mathieu wrote: > could we also accept the section_tag and section_id here? Done. https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:454: CreateShippingSectionContent(), std::unique_ptr<views::View>(nullptr), On 2017/04/13 at 00:12:45, Mathieu wrote: > I'm curious, we're the only ones that do std::unique_ptr<views::View>(nullptr) in the codebase. I see a lot more of base::MakeUnique<...>(nullptr), can we do that? I think just nullptr is fine and we have that in other places. Let's go with that everywhere since it's the shorter form (and nullptr doesn't change ownership so the semantics of unique_ptr are irrelevant). https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:471: static_cast<int>(DialogViewID::PAYMENT_SHEET_SHIPPING_ADDRESS_SECTION), On 2017/04/13 at 00:12:45, Mathieu wrote: > I think we should create a different DialogViewID for buttons, so that we can test the proper interactions Done. https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:482: // | John Smith | VISA | > | On 2017/04/13 at 00:12:45, Mathieu wrote: > update comment to mention button Done. https://codereview.chromium.org/2814173002/diff/1/chrome/browser/ui/views/pay... chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:602: if (spec()->details().shipping_options.size()) { On 2017/04/13 at 00:12:45, Mathieu wrote: > if (!... or .empty() Done. https://codereview.chromium.org/2814173002/diff/1/components/payments_strings... File components/payments_strings.grdp (right): https://codereview.chromium.org/2814173002/diff/1/components/payments_strings... components/payments_strings.grdp:210: <message name="IDS_PAYMENT_REQUEST_ADD_SECTION_BUTTON" desc="The string on the section button in the Payment Sheet when the section has no available elements to select"> On 2017/04/13 at 00:12:45, Mathieu wrote: > let's use IDS_ADD from components_strings.grd Done. https://codereview.chromium.org/2814173002/diff/1/components/payments_strings... components/payments_strings.grdp:213: <message name="IDS_PAYMENT_REQUEST_CHOOSE_SECTION_BUTTON" desc="The string on the section button in the Payment Sheet when the section has available elements to select but none is selected."> On 2017/04/13 at 00:12:45, Mathieu wrote: > can you move IDS_CHOOSE from android to components_strings.grd and use that? Done.
thanks, lgtm
The CQ bit was checked by anthonyvd@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
Description was changed from ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 ========== to ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 TBR=bauerb@chromium.org,blundell@chromium.org (for chrome/android/java/strings/android_chrome_strings.grd and components/components_strings.grd) ==========
The CQ bit was checked by anthonyvd@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 TBR=bauerb@chromium.org,blundell@chromium.org (for chrome/android/java/strings/android_chrome_strings.grd and components/components_strings.grd) ========== to ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 ==========
The CQ bit was unchecked by anthonyvd@chromium.org
The CQ bit was checked by anthonyvd@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by anthonyvd@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from mathp@chromium.org Link to the patchset: https://codereview.chromium.org/2814173002/#ps60001 (title: "Add formatter_data="android_java"")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
Description was changed from ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 ========== to ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 TBR=bauerb@chromium.org,blundell@chromium.org (android_chrome_strings.grd, components_strings.grd) ==========
The CQ bit was checked by anthonyvd@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Failed to apply patch for chrome/browser/ui/views/payments/payment_sheet_view_controller.cc: While running git apply --index -3 -p1; error: patch failed: chrome/browser/ui/views/payments/payment_sheet_view_controller.cc:501 Falling back to three-way merge... Applied patch to 'chrome/browser/ui/views/payments/payment_sheet_view_controller.cc' with conflicts. U chrome/browser/ui/views/payments/payment_sheet_view_controller.cc Patch: chrome/browser/ui/views/payments/payment_sheet_view_controller.cc Index: chrome/browser/ui/views/payments/payment_sheet_view_controller.cc diff --git a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc index c7706ff744650a9127975665bf5f521cf2748418..235b5b0838c4fea35e128edac32a416dacb9cd55 100644 --- a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc +++ b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc @@ -87,24 +87,16 @@ int ComputeWidestNameColumnViewWidth() { return widest_column_width; } -// Creates a clickable row to be displayed in the Payment Sheet. It contains -// a section name and some content, followed by a chevron as a clickability -// affordance. Both, either, or none of |content_view| and |extra_content_view| -// may be present, the difference between the two being that content is pinned -// to the left and extra_content is pinned to the right. -// The row also displays a light gray horizontal ruler on its lower boundary. -// The name column has a fixed width equal to |name_column_width|. -// +----------------------------+ -// | Name | Content | Extra | > | -// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ <-- ruler std::unique_ptr<views::Button> CreatePaymentSheetRow( views::ButtonListener* listener, const base::string16& section_name, std::unique_ptr<views::View> content_view, std::unique_ptr<views::View> extra_content_view, + std::unique_ptr<views::View> trailing_button, + bool clickable, int name_column_width) { std::unique_ptr<PaymentRequestRowView> row = - base::MakeUnique<PaymentRequestRowView>(listener); + base::MakeUnique<PaymentRequestRowView>(listener, clickable); views::GridLayout* layout = new views::GridLayout(row.get()); // The rows have extra inset compared to the header so that their right edge @@ -135,7 +127,7 @@ std::unique_ptr<views::Button> CreatePaymentSheetRow( 0, views::GridLayout::USE_PREF, 0, 0); columns->AddPaddingColumn(0, kPaddingColumnsWidth); - // A column for the chevron. + // A column for the trailing_button. columns->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER, 0, views::GridLayout::USE_PREF, 0, 0); @@ -157,14 +149,68 @@ std::unique_ptr<views::Button> CreatePaymentSheetRow( layout->SkipColumns(1); } - views::ImageView* chevron = new views::ImageView(); + layout->AddView(trailing_button.release()); + + return std::move(row); +} + +// Creates a row with a button in place of the chevron. +// +------------------------------------------+ +// | Name | truncated_content | button_string | +// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ +std::unique_ptr<views::Button> CreatePaymentSheetRowWithButton( + views::ButtonListener* listener, + const base::string16& section_name, + const base::string16& truncated_content, + const base::string16& button_string, + int button_tag, + int button_id, + int name_column_width) { + std::unique_ptr<views::Button> button( + views::MdTextButton::CreateSecondaryUiBlueButton(listener, + button_string)); + button->set_tag(button_tag); + button->set_id(button_id); + std::unique_ptr<views::Label> content_view = + base::MakeUnique<views::Label>(truncated_content); + return CreatePaymentSheetRow(listener, section_name, std::move(content_view), + nullptr, std::move(button), + /*clickable=*/false, name_column_width); +} + +// Creates a clickable row to be displayed in the Payment Sheet. It contains +// a section name and some content, followed by a chevron as a clickability +// affordance. Both, either, or none of |content_view| and |extra_content_view| +// may be present, the difference between the two being that content is pinned +// to the left and extra_content is pinned to the right. +// The row also displays a light gray horizontal ruler on its lower boundary. +// The name column has a fixed width equal to |name_column_width|. +// +----------------------------+ +// | Name | Content | Extra | > | +// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ <-- ruler +std::unique_ptr<views::Button> CreatePaymentSheetRowWithChevron( + views::ButtonListener* listener, + const base::string16& section_name, + std::unique_ptr<views::View> content_view, + std::unique_ptr<views::View> extra_content_view, + int section_tag, + int section_id, + int name_column_width) { + std::unique_ptr<views::ImageView> chevron = + base::MakeUnique<views::ImageView>(); chevron->set_can_process_events_within_subtree(false); + std::unique_ptr<views::Label> label = + base::MakeUnique<views::Label>(section_name); chevron->SetImage(gfx::CreateVectorIcon( views::kSubmenuArrowIcon, - color_utils::DeriveDefaultIconColor(name_label->enabled_color()))); - layout->AddView(chevron); - - return std::move(row); + color_utils::DeriveDefaultIconColor(label->enabled_color()))); + std::unique_ptr<views::Button> section = + CreatePaymentSheetRow(listener, section_name, std::move(content_view), + std::move(extra_content_view), std::move(chevron), + /*clickable=*/true, name_column_width); + section->set_tag(section_tag); + section->set_id(section_id); + return section; } // Creates a GridLayout object to be used in the Order Summary section's list of @@ -380,15 +426,14 @@ PaymentSheetViewController::CreatePaymentSheetSummaryRow() { item_summaries->SetLayoutManager(item_summaries_layout.release()); item_amounts->SetLayoutManager(item_amounts_layout.release()); - std::unique_ptr<views::Button> section = CreatePaymentSheetRow( + std::unique_ptr<views::Button> section = CreatePaymentSheetRowWithChevron( this, l10n_util::GetStringUTF16(IDS_PAYMENT_REQUEST_ORDER_SUMMARY_SECTION_NAME), std::move(item_summaries), std::move(item_amounts), + static_cast<int>( + PaymentSheetViewControllerTags::SHOW_ORDER_SUMMARY_BUTTON), + static_cast<int>(DialogViewID::PAYMENT_SHEET_SUMMARY_SECTION), widest_name_column_view_width_); - section->set_tag(static_cast<int>( - PaymentSheetViewControllerTags::SHOW_ORDER_SUMMARY_BUTTON)); - section->set_id( - static_cast<int>(DialogViewID::PAYMENT_SHEET_SUMMARY_SECTION)); return section; } @@ -410,19 +455,35 @@ PaymentSheetViewController::CreateShippingSectionContent() { // | 1800MYPOTUS | // +----------------------------------------------+ std::unique_ptr<views::Button> PaymentSheetViewController::CreateShippingRow() { - std::unique_ptr<views::Button> section = CreatePaymentSheetRow( - this, GetShippingAddressSectionString(spec()->shipping_type()), - CreateShippingSectionContent(), std::unique_ptr<views::View>(nullptr), - widest_name_column_view_width_); - section->set_tag( - static_cast<int>(PaymentSheetViewControllerTags::SHOW_SHIPPING_BUTTON)); - section->set_id( - static_cast<int>(DialogViewID::PAYMENT_SHEET_SHIPPING_ADDRESS_SECTION)); + std::unique_ptr<views::Button> section; + if (state()->selected_shipping_profile()) { + section = CreatePaymentSheetRowWithChevron( + this, GetShippingAddressSectionString(spec()->shipping_type()), + CreateShippingSectionContent(), nullptr, + static_cast<int>(PaymentSheetViewControllerTags::SHOW_SHIPPING_BUTTON), + static_cast<int>(DialogViewID::PAYMENT_SHEET_SHIPPING_ADDRESS_SECTION), + widest_name_column_view_width_); + } else { + base::string16 button_string = state()->shipping_profiles().size() + ? l10n_util::GetStringUTF16(IDS_CHOOSE) + : l10n_util::GetStringUTF16(IDS_ADD); + + section = CreatePaymentSheetRowWithButton( + this, GetShippingAddressSectionString(spec()->shipping_type()), + base::ASCIIToUTF16(""), button_string, + static_cast<int>(PaymentSheetViewControllerTags::SHOW_SHIPPING_BUTTON), + static_cast<int>( + DialogViewID::PAYMENT_SHEET_SHIPPING_ADDRESS_SECTION_BUTTON), + widest_name_column_view_width_); + } + return section; } // Creates the Payment Method row, which contains a "Payment" label, the user's // masked Credit Card details, the icon for the selected card, and a chevron. +// If no option is selected or none is available, the Chevron and icon are +// replaced with a button // +----------------------------------------------+ // | Payment Visa ****0000 | // | John Smith | VISA | > | @@ -434,6 +495,7 @@ PaymentSheetViewController::CreatePaymentMethodRow() { std::unique_ptr<views::View> content_view; std::unique_ptr<views::ImageView> card_icon_view; + std::unique_ptr<views::Button> section; if (selected_instrument) { content_view = base::MakeUnique<views::View>(); @@ -451,19 +513,33 @@ PaymentSheetViewController::CreatePaymentMethodRow() { card_icon_view = CreateInstrumentIconView( selected_instrument->icon_resource_id(), selected_instrument->label()); card_icon_view->SetImageSize(gfx::Size(32, 20)); + + section = CreatePaymentSheetRowWithChevron( + this, + l10n_util::GetStringUTF16( + IDS_PAYMENT_REQUEST_PAYMENT_METHOD_SECTION_NAME), … (message too large)
The CQ bit was checked by anthonyvd@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from mathp@chromium.org Link to the patchset: https://codereview.chromium.org/2814173002/#ps80001 (title: "Rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 80001, "attempt_start_ts": 1492129843960070, "parent_rev": "94cfa88dd9922d14e7b08544b3b9710fc53ea94c", "commit_rev": "6f91eb9692b1fbb8839a0dbf9b0f3c5b10117b62"}
Message was sent while issue was closed.
Description was changed from ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 TBR=bauerb@chromium.org,blundell@chromium.org (android_chrome_strings.grd, components_strings.grd) ========== to ========== [Web Payments] Prettify the payment sheet rows in some states. BUG=710977 TBR=bauerb@chromium.org,blundell@chromium.org (android_chrome_strings.grd, components_strings.grd) Review-Url: https://codereview.chromium.org/2814173002 Cr-Commit-Position: refs/heads/master@{#464644} Committed: https://chromium.googlesource.com/chromium/src/+/6f91eb9692b1fbb8839a0dbf9b0f... ==========
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as https://chromium.googlesource.com/chromium/src/+/6f91eb9692b1fbb8839a0dbf9b0f... |