| Index: chrome/browser/ui/views/passwords/credentials_item_view.cc
|
| diff --git a/chrome/browser/ui/views/passwords/credentials_item_view.cc b/chrome/browser/ui/views/passwords/credentials_item_view.cc
|
| index 8057c5bac23aa02f96d46a19d6a4c1728fc0dc59..5aaacc5ca504f4e932ee068a753d530a8b3f96ad 100644
|
| --- a/chrome/browser/ui/views/passwords/credentials_item_view.cc
|
| +++ b/chrome/browser/ui/views/passwords/credentials_item_view.cc
|
| @@ -4,20 +4,17 @@
|
|
|
| #include "chrome/browser/ui/views/passwords/credentials_item_view.h"
|
|
|
| -#include "chrome/browser/bitmap_fetcher/bitmap_fetcher.h"
|
| +#include "chrome/browser/ui/passwords/manage_passwords_view_utils.h"
|
| #include "grit/theme_resources.h"
|
| -#include "net/base/load_flags.h"
|
| #include "ui/base/resource/resource_bundle.h"
|
| #include "ui/gfx/canvas.h"
|
| #include "ui/gfx/image/image.h"
|
| -#include "ui/gfx/image/image_skia_operations.h"
|
| #include "ui/gfx/path.h"
|
| #include "ui/views/border.h"
|
| #include "ui/views/controls/image_view.h"
|
| #include "ui/views/controls/label.h"
|
|
|
| namespace {
|
| -const int kIconSize = 50;
|
| // The default spacing between the icon and text.
|
| const int kSpacing = 5;
|
|
|
| @@ -30,21 +27,6 @@ gfx::Size GetTextLabelsSize(const views::Label* full_name_label,
|
| full_name.height() + username.height());
|
| }
|
|
|
| -// Crops and scales |image| to kIconSize
|
| -gfx::ImageSkia ScaleImage(gfx::ImageSkia skia_image) {
|
| - gfx::Size size = skia_image.size();
|
| - if (size.height() != size.width()) {
|
| - gfx::Rect target(size);
|
| - int side = std::min(size.height(), size.width());
|
| - target.ClampToCenteredSize(gfx::Size(side, side));
|
| - skia_image = gfx::ImageSkiaOperations::ExtractSubset(skia_image, target);
|
| - }
|
| - return gfx::ImageSkiaOperations::CreateResizedImage(
|
| - skia_image,
|
| - skia::ImageOperations::RESIZE_BEST,
|
| - gfx::Size(kIconSize, kIconSize));
|
| -}
|
| -
|
| class CircularImageView : public views::ImageView {
|
| public:
|
| CircularImageView() = default;
|
| @@ -70,54 +52,6 @@ void CircularImageView::OnPaint(gfx::Canvas* canvas) {
|
|
|
| } // namespace
|
|
|
| -// Helper class to download the avatar. It deletes itself once the request is
|
| -// done.
|
| -class CredentialsItemView::AvatarFetcher
|
| - : public chrome::BitmapFetcherDelegate {
|
| - public:
|
| - AvatarFetcher(const GURL& url,
|
| - const base::WeakPtr<CredentialsItemView>& delegate);
|
| -
|
| - void Start(net::URLRequestContextGetter* request_context);
|
| -
|
| - private:
|
| - ~AvatarFetcher() override;
|
| -
|
| - // chrome::BitmapFetcherDelegate:
|
| - void OnFetchComplete(const GURL url, const SkBitmap* bitmap) override;
|
| -
|
| - chrome::BitmapFetcher fetcher_;
|
| - base::WeakPtr<CredentialsItemView> delegate_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(AvatarFetcher);
|
| -};
|
| -
|
| -CredentialsItemView::AvatarFetcher::AvatarFetcher(
|
| - const GURL& url,
|
| - const base::WeakPtr<CredentialsItemView>& delegate)
|
| - : fetcher_(url, this),
|
| - delegate_(delegate) {
|
| -}
|
| -
|
| -CredentialsItemView::AvatarFetcher::~AvatarFetcher() = default;
|
| -
|
| -void CredentialsItemView::AvatarFetcher::Start(
|
| - net::URLRequestContextGetter* request_context) {
|
| - fetcher_.Start(request_context, std::string(),
|
| - net::URLRequest::NEVER_CLEAR_REFERRER,
|
| - net::LOAD_DO_NOT_SEND_COOKIES |
|
| - net::LOAD_DO_NOT_SAVE_COOKIES |
|
| - net::LOAD_MAYBE_USER_GESTURE);
|
| -}
|
| -
|
| -void CredentialsItemView::AvatarFetcher::OnFetchComplete(
|
| - const GURL /*url*/, const SkBitmap* bitmap) {
|
| - if (bitmap && delegate_)
|
| - delegate_->UpdateAvatar(gfx::ImageSkia::CreateFrom1xBitmap(*bitmap));
|
| -
|
| - delete this;
|
| -}
|
| -
|
| CredentialsItemView::CredentialsItemView(
|
| views::ButtonListener* button_listener,
|
| const autofill::PasswordForm& form,
|
| @@ -134,12 +68,13 @@ CredentialsItemView::CredentialsItemView(
|
| image_view_->set_interactive(false);
|
| gfx::Image image = ResourceBundle::GetSharedInstance().GetImageNamed(
|
| IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE);
|
| - DCHECK(image.Width() >= kIconSize && image.Height() >= kIconSize);
|
| + DCHECK(image.Width() >= kAvatarImageSize &&
|
| + image.Height() >= kAvatarImageSize);
|
| UpdateAvatar(image.AsImageSkia());
|
| if (form_.avatar_url.is_valid()) {
|
| // Fetch the actual avatar.
|
| - AvatarFetcher* fetcher = new AvatarFetcher(form_.avatar_url,
|
| - weak_ptr_factory_.GetWeakPtr());
|
| + AccountAvatarFetcher* fetcher = new AccountAvatarFetcher(
|
| + form_.avatar_url, weak_ptr_factory_.GetWeakPtr());
|
| fetcher->Start(request_context);
|
| }
|
| AddChildView(image_view_);
|
| @@ -166,8 +101,8 @@ CredentialsItemView::~CredentialsItemView() = default;
|
|
|
| gfx::Size CredentialsItemView::GetPreferredSize() const {
|
| gfx::Size labels_size = GetTextLabelsSize(full_name_label_, username_label_);
|
| - gfx::Size size = gfx::Size(kIconSize + labels_size.width(),
|
| - std::max(kIconSize, labels_size.height()));
|
| + gfx::Size size = gfx::Size(kAvatarImageSize + labels_size.width(),
|
| + std::max(kAvatarImageSize, labels_size.height()));
|
| const gfx::Insets insets(GetInsets());
|
| size.Enlarge(insets.width(), insets.height());
|
| size.Enlarge(kSpacing, 0);
|
| @@ -206,5 +141,5 @@ void CredentialsItemView::Layout() {
|
| }
|
|
|
| void CredentialsItemView::UpdateAvatar(const gfx::ImageSkia& image) {
|
| - image_view_->SetImage(ScaleImage(image));
|
| + image_view_->SetImage(ScaleImageForAccountAvatar(image));
|
| }
|
|
|