| Index: chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc
 | 
| diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc
 | 
| index 8c9a9d7cb9127b0e80a15d1f9eb11d346c2845f0..bd957e187886a72489c197725f3ddd064652cdd1 100644
 | 
| --- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc
 | 
| +++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc
 | 
| @@ -8,14 +8,17 @@
 | 
|  
 | 
|  #include "base/callback_forward.h"
 | 
|  #include "base/command_line.h"
 | 
| +#include "base/file_util.h"
 | 
|  #include "base/i18n/time_formatting.h"
 | 
|  #include "base/logging.h"
 | 
|  #include "base/strings/utf_string_conversions.h"
 | 
| +#include "base/task_runner_util.h"
 | 
|  #include "chrome/browser/extensions/extension_service.h"
 | 
|  #include "chrome/browser/extensions/launch_util.h"
 | 
|  #include "chrome/browser/profiles/profile.h"
 | 
|  #include "chrome/common/chrome_switches.h"
 | 
|  #include "chrome/common/extensions/extension_constants.h"
 | 
| +#include "content/public/browser/browser_thread.h"
 | 
|  #include "extensions/browser/extension_prefs.h"
 | 
|  #include "extensions/browser/extension_system.h"
 | 
|  #include "extensions/common/extension.h"
 | 
| @@ -23,6 +26,7 @@
 | 
|  #include "grit/generated_resources.h"
 | 
|  #include "ui/base/l10n/l10n_util.h"
 | 
|  #include "ui/base/models/combobox_model.h"
 | 
| +#include "ui/base/text/bytes_formatting.h"
 | 
|  #include "ui/views/controls/combobox/combobox.h"
 | 
|  #include "ui/views/controls/label.h"
 | 
|  #include "ui/views/layout/box_layout.h"
 | 
| @@ -130,13 +134,16 @@ AppInfoSummaryPanel::AppInfoSummaryPanel(Profile* profile,
 | 
|        description_heading_(NULL),
 | 
|        description_label_(NULL),
 | 
|        details_heading_(NULL),
 | 
| +      size_title_(NULL),
 | 
| +      size_value_(NULL),
 | 
|        version_title_(NULL),
 | 
|        version_value_(NULL),
 | 
|        installed_time_title_(NULL),
 | 
|        installed_time_value_(NULL),
 | 
|        last_run_time_title_(NULL),
 | 
|        last_run_time_value_(NULL),
 | 
| -      launch_options_combobox_(NULL) {
 | 
| +      launch_options_combobox_(NULL),
 | 
| +      weak_ptr_factory_(this) {
 | 
|    // Create UI elements.
 | 
|    CreateDescriptionControl();
 | 
|    CreateDetailsControl();
 | 
| @@ -180,6 +187,19 @@ void AppInfoSummaryPanel::CreateDescriptionControl() {
 | 
|  }
 | 
|  
 | 
|  void AppInfoSummaryPanel::CreateDetailsControl() {
 | 
| +  // The size doesn't make sense for component apps.
 | 
| +  if (app_->location() != extensions::Manifest::COMPONENT) {
 | 
| +    size_title_ = new views::Label(
 | 
| +        l10n_util::GetStringUTF16(IDS_APPLICATION_INFO_SIZE_LABEL));
 | 
| +    size_title_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
 | 
| +
 | 
| +    size_value_ = new views::Label(
 | 
| +        l10n_util::GetStringUTF16(IDS_APPLICATION_INFO_SIZE_LOADING_LABEL));
 | 
| +    size_value_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
 | 
| +
 | 
| +    StartCalculatingAppSize();
 | 
| +  }
 | 
| +
 | 
|    // The version doesn't make sense for bookmark apps.
 | 
|    if (!app_->from_bookmark()) {
 | 
|      // Display 'Version: Built-in' for component apps.
 | 
| @@ -275,6 +295,11 @@ void AppInfoSummaryPanel::LayoutDetailsControl() {
 | 
|            CreateKeyValueField(last_run_time_title_, last_run_time_value_));
 | 
|      }
 | 
|  
 | 
| +    if (size_title_ && size_value_) {
 | 
| +      details_stack->AddChildView(
 | 
| +          CreateKeyValueField(size_title_, size_value_));
 | 
| +    }
 | 
| +
 | 
|      views::View* vertical_stack = CreateVerticalStack();
 | 
|      vertical_stack->AddChildView(details_heading_);
 | 
|      vertical_stack->AddChildView(details_stack);
 | 
| @@ -291,6 +316,18 @@ void AppInfoSummaryPanel::OnPerformAction(views::Combobox* combobox) {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +void AppInfoSummaryPanel::StartCalculatingAppSize() {
 | 
| +  base::PostTaskAndReplyWithResult(
 | 
| +      content::BrowserThread::GetBlockingPool(),
 | 
| +      FROM_HERE,
 | 
| +      base::Bind(&base::ComputeDirectorySize, app_->path()),
 | 
| +      base::Bind(&AppInfoSummaryPanel::OnAppSizeCalculated, AsWeakPtr()));
 | 
| +}
 | 
| +
 | 
| +void AppInfoSummaryPanel::OnAppSizeCalculated(int64 app_size_in_bytes) {
 | 
| +  size_value_->SetText(ui::FormatBytes(app_size_in_bytes));
 | 
| +}
 | 
| +
 | 
|  base::Time AppInfoSummaryPanel::GetInstalledTime() const {
 | 
|    return extensions::ExtensionPrefs::Get(profile_)->GetInstallTime(app_->id());
 | 
|  }
 | 
| 
 |