Chromium Code Reviews| Index: chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
| diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
| index df708813c6d13897c38c52112c02c69dcc13e9be..819f11d5003c54c6c6677ca8731c6f9bec7c597f 100644 |
| --- a/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
| +++ b/chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm |
| @@ -190,7 +190,8 @@ bool HasAttribute(id item, CellAttributesMask attributeMask) { |
| } else if (prompt->has_webstore_data()) { |
| nibName = @"ExtensionInstallPromptWebstoreData"; |
| } else if (!prompt->ShouldShowPermissions() && |
| - prompt->GetRetainedFileCount() == 0) { |
| + prompt->GetRetainedFileCount() == 0 && |
| + prompt->GetRetainedDeviceCount() == 0) { |
| nibName = @"ExtensionInstallPromptNoWarnings"; |
| } else { |
| nibName = @"ExtensionInstallPrompt"; |
| @@ -307,8 +308,8 @@ bool HasAttribute(id item, CellAttributesMask attributeMask) { |
| OffsetControlVerticallyToFitContent(itemsField_, &totalOffset); |
| } |
| - // If there are any warnings or retained files, then we have to do |
| - // some special layout. |
| + // If there are any warnings, retained devices or retained files, then we |
| + // have to do some special layout. |
| if (prompt_->ShouldShowPermissions() || prompt_->GetRetainedFileCount() > 0) { |
| NSSize spacing = [outlineView_ intercellSpacing]; |
| spacing.width += 2; |
| @@ -663,6 +664,35 @@ bool HasAttribute(id item, CellAttributesMask attributeMask) { |
| [self buildDetailToggleItem:type permissionsDetailIndex:0]]; |
| } |
| + if (prompt.GetRetainedDeviceCount() > 0) { |
| + type = ExtensionInstallPrompt::RETAINED_DEVICES_DETAILS; |
|
tapted
2014/09/19 04:09:09
What happens if an extension has both retained dev
Reilly Grant (use Gerrit)
2014/09/19 19:30:09
You get two lists and the button says "Revoke File
tapted
2014/09/22 01:04:36
Ah - cool. On the cocoa side it looked like `type`
|
| + |
| + NSMutableArray* children = [NSMutableArray array]; |
| + |
| + if (prompt.GetIsShowingDetails(type, 0)) { |
| + for (size_t i = 0; i < prompt.GetRetainedDeviceCount(); ++i) { |
| + [children |
|
tapted
2014/09/19 04:09:09
nit: a temporary `title` var will probably make th
Reilly Grant (use Gerrit)
2014/09/19 19:30:09
Done.
|
| + addObject:[self buildItemWithTitle: |
| + SysUTF16ToNSString( |
| + prompt.GetRetainedDeviceMessageString(i)) |
| + cellAttributes:kUseBullet |
| + children:nil]]; |
| + } |
| + } |
| + |
| + [warnings |
|
tapted
2014/09/19 04:09:09
same here, clang-format will probably do something
|
| + addObject:[self |
| + buildItemWithTitle:SysUTF16ToNSString( |
| + prompt.GetRetainedDevicesHeading()) |
| + cellAttributes:kBoldText | kAutoExpandCell | |
| + kNoExpandMarker |
| + children:children]]; |
| + |
| + // Add a row for the link. |
| + [warnings |
| + addObject:[self buildDetailToggleItem:type permissionsDetailIndex:0]]; |
| + } |
| + |
| return warnings; |
| } |