| Index: chrome/browser/ui/views/elevation_icon_setter.cc
|
| diff --git a/chrome/browser/ui/views/elevation_icon_setter.cc b/chrome/browser/ui/views/elevation_icon_setter.cc
|
| index ccffcbe689cba7373154f52e96654470267f9b5a..aeacb9820cf4bd25a6ff4f7d6eca1d36d50d9685 100644
|
| --- a/chrome/browser/ui/views/elevation_icon_setter.cc
|
| +++ b/chrome/browser/ui/views/elevation_icon_setter.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/ui/views/elevation_icon_setter.h"
|
|
|
| +#include "base/callback.h"
|
| #include "base/task_runner_util.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "ui/views/controls/button/label_button.h"
|
| @@ -56,7 +57,8 @@ scoped_ptr<SkBitmap> GetElevationIcon() {
|
|
|
| // ElevationIconSetter --------------------------------------------------------
|
|
|
| -ElevationIconSetter::ElevationIconSetter(views::LabelButton* button)
|
| +ElevationIconSetter::ElevationIconSetter(views::LabelButton* button,
|
| + const base::Closure& done_callback)
|
| : button_(button),
|
| weak_factory_(this) {
|
| base::PostTaskAndReplyWithResult(
|
| @@ -64,13 +66,15 @@ ElevationIconSetter::ElevationIconSetter(views::LabelButton* button)
|
| FROM_HERE,
|
| base::Bind(&GetElevationIcon),
|
| base::Bind(&ElevationIconSetter::SetButtonIcon,
|
| - weak_factory_.GetWeakPtr()));
|
| + weak_factory_.GetWeakPtr(),
|
| + done_callback));
|
| }
|
|
|
| ElevationIconSetter::~ElevationIconSetter() {
|
| }
|
|
|
| -void ElevationIconSetter::SetButtonIcon(scoped_ptr<SkBitmap> icon) {
|
| +void ElevationIconSetter::SetButtonIcon(const base::Closure& done_callback,
|
| + scoped_ptr<SkBitmap> icon) {
|
| if (icon) {
|
| float device_scale_factor = 1.0f;
|
| #if defined(OS_WIN)
|
| @@ -84,5 +88,7 @@ void ElevationIconSetter::SetButtonIcon(scoped_ptr<SkBitmap> icon) {
|
| button_->SizeToPreferredSize();
|
| if (button_->parent())
|
| button_->parent()->Layout();
|
| + if (!done_callback.is_null())
|
| + done_callback.Run();
|
| }
|
| }
|
|
|