Card Art Image Fetching Refactor for M2-specific use cases

This CL refactors the GetCreditCardArtImageForUrl function for M2-specific use-cases. In M2 we can have 3 possible cases for card art image fetching for the card we want to enroll into VCN:

Case I: We can retrieve the card art image from the local cache after the Save Card Response. This CL does not change the functionality of this situation.
Case II & Case III: We try to retrieve the card art image from the local cache after the Save Card Response, but fail to do so. Thus we will send a server call to fetch the image. Right before showing the VirtualCardEnrollmentBubble, no matter if we are able to retrieve the card art image from the local cache (Case II) or not (Case III), this CL will save a fetch server call, as at this point we only need to try to retrieve the card art image from the local cache by calling GetCachedCardArtImageForUrl() or else we will be double fetching.

For all other use cases where we fetch after trying to retrieve card art images from the local cache, this CL will not alter functionality.

DD: https://docs.google.com/document/d/1nxpjPQEtYhgdMfEarIaYHXhxNcYyQ3NgDGPvA_1OjwA/edit#heading=h.bat9awopsp53

Change-Id: I0bc1dfc80473ffab0d4baaf7aaadc9adc127873a
Bug: 1281695
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3360062
Reviewed-by: Siyu An <siyua@chromium.org>
Reviewed-by: Jared Saul <jsaul@google.com>
Reviewed-by: Matthias Körber <koerber@google.com>
Commit-Queue: Vinny Persky <vinnypersky@google.com>
Cr-Commit-Position: refs/heads/main@{#957683}
3 files changed
tree: a9649560a18a100e8d4971fdbb1613c8569a8063
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. cloud_print/
  13. codelabs/
  14. components/
  15. content/
  16. courgette/
  17. crypto/
  18. dbus/
  19. device/
  20. docs/
  21. extensions/
  22. fuchsia/
  23. gin/
  24. google_apis/
  25. google_update/
  26. gpu/
  27. headless/
  28. infra/
  29. ios/
  30. ipc/
  31. jingle/
  32. media/
  33. mojo/
  34. native_client_sdk/
  35. net/
  36. pdf/
  37. ppapi/
  38. printing/
  39. remoting/
  40. rlz/
  41. sandbox/
  42. services/
  43. skia/
  44. sql/
  45. storage/
  46. styleguide/
  47. testing/
  48. third_party/
  49. tools/
  50. ui/
  51. url/
  52. weblayer/
  53. .clang-format
  54. .clang-tidy
  55. .eslintrc.js
  56. .git-blame-ignore-revs
  57. .gitattributes
  58. .gitignore
  59. .gn
  60. .mailmap
  61. .rustfmt.toml
  62. .vpython
  63. .vpython3
  64. .yapfignore
  65. AUTHORS
  66. BUILD.gn
  67. CODE_OF_CONDUCT.md
  68. codereview.settings
  69. DEPS
  70. DIR_METADATA
  71. ENG_REVIEW_OWNERS
  72. LICENSE
  73. LICENSE.chromium_os
  74. OWNERS
  75. PRESUBMIT.py
  76. PRESUBMIT_test.py
  77. PRESUBMIT_test_mocks.py
  78. README.md
  79. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.