Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Side by Side Diff: chrome/browser/ui/cocoa/extensions/extension_install_view_controller.mm

Issue 580363002: Update app info and install prompt UI to show retained devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed feedback from Avi and tapted. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h" 5 #import "chrome/browser/ui/cocoa/extensions/extension_install_view_controller.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/i18n/rtl.h" 8 #include "base/i18n/rtl.h"
9 #include "base/mac/bundle_locations.h" 9 #include "base/mac/bundle_locations.h"
10 #include "base/mac/mac_util.h" 10 #include "base/mac/mac_util.h"
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 prompt:(scoped_refptr<ExtensionInstallPrompt::Prompt>)prompt { 184 prompt:(scoped_refptr<ExtensionInstallPrompt::Prompt>)prompt {
185 // We use a different XIB in the case of bundle installs, installs with 185 // We use a different XIB in the case of bundle installs, installs with
186 // webstore data, or no permission warnings. These are laid out nicely for 186 // webstore data, or no permission warnings. These are laid out nicely for
187 // the data they display. 187 // the data they display.
188 NSString* nibName = nil; 188 NSString* nibName = nil;
189 if (prompt->type() == ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT) { 189 if (prompt->type() == ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT) {
190 nibName = @"ExtensionInstallPromptBundle"; 190 nibName = @"ExtensionInstallPromptBundle";
191 } else if (prompt->has_webstore_data()) { 191 } else if (prompt->has_webstore_data()) {
192 nibName = @"ExtensionInstallPromptWebstoreData"; 192 nibName = @"ExtensionInstallPromptWebstoreData";
193 } else if (!prompt->ShouldShowPermissions() && 193 } else if (!prompt->ShouldShowPermissions() &&
194 prompt->GetRetainedFileCount() == 0) { 194 prompt->GetRetainedFileCount() == 0 &&
195 prompt->GetRetainedDeviceCount() == 0) {
195 nibName = @"ExtensionInstallPromptNoWarnings"; 196 nibName = @"ExtensionInstallPromptNoWarnings";
196 } else { 197 } else {
197 nibName = @"ExtensionInstallPrompt"; 198 nibName = @"ExtensionInstallPrompt";
198 } 199 }
199 200
200 if ((self = [super initWithNibName:nibName 201 if ((self = [super initWithNibName:nibName
201 bundle:base::mac::FrameworkBundle()])) { 202 bundle:base::mac::FrameworkBundle()])) {
202 navigator_ = navigator; 203 navigator_ = navigator;
203 delegate_ = delegate; 204 delegate_ = delegate;
204 prompt_ = prompt; 205 prompt_ = prompt;
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 [joinedItems appendString:@"\n"]; 302 [joinedItems appendString:@"\n"];
302 [joinedItems appendString:base::SysUTF16ToNSString( 303 [joinedItems appendString:base::SysUTF16ToNSString(
303 items[i].GetNameForDisplay())]; 304 items[i].GetNameForDisplay())];
304 } 305 }
305 [itemsField_ setStringValue:joinedItems]; 306 [itemsField_ setStringValue:joinedItems];
306 307
307 // Adjust the controls to fit the list of extensions. 308 // Adjust the controls to fit the list of extensions.
308 OffsetControlVerticallyToFitContent(itemsField_, &totalOffset); 309 OffsetControlVerticallyToFitContent(itemsField_, &totalOffset);
309 } 310 }
310 311
311 // If there are any warnings or retained files, then we have to do 312 // If there are any warnings, retained devices or retained files, then we
312 // some special layout. 313 // have to do some special layout.
313 if (prompt_->ShouldShowPermissions() || prompt_->GetRetainedFileCount() > 0) { 314 if (prompt_->ShouldShowPermissions() || prompt_->GetRetainedFileCount() > 0) {
314 NSSize spacing = [outlineView_ intercellSpacing]; 315 NSSize spacing = [outlineView_ intercellSpacing];
315 spacing.width += 2; 316 spacing.width += 2;
316 spacing.height += 2; 317 spacing.height += 2;
317 [outlineView_ setIntercellSpacing:spacing]; 318 [outlineView_ setIntercellSpacing:spacing];
318 [[[[outlineView_ tableColumns] objectAtIndex:0] dataCell] setWraps:YES]; 319 [[[[outlineView_ tableColumns] objectAtIndex:0] dataCell] setWraps:YES];
319 for (id item in warnings_.get()) 320 for (id item in warnings_.get())
320 [self expandItemAndChildren:item]; 321 [self expandItemAndChildren:item];
321 322
322 // Adjust the outline view to fit the warnings. 323 // Adjust the outline view to fit the warnings.
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 children:children]]; 639 children:children]];
639 } 640 }
640 641
641 if (prompt.GetRetainedFileCount() > 0) { 642 if (prompt.GetRetainedFileCount() > 0) {
642 type = ExtensionInstallPrompt::RETAINED_FILES_DETAILS; 643 type = ExtensionInstallPrompt::RETAINED_FILES_DETAILS;
643 644
644 NSMutableArray* children = [NSMutableArray array]; 645 NSMutableArray* children = [NSMutableArray array];
645 646
646 if (prompt.GetIsShowingDetails(type, 0)) { 647 if (prompt.GetIsShowingDetails(type, 0)) {
647 for (size_t i = 0; i < prompt.GetRetainedFileCount(); ++i) { 648 for (size_t i = 0; i < prompt.GetRetainedFileCount(); ++i) {
648 [children addObject: 649 NSString* title = SysUTF16ToNSString(prompt.GetRetainedFile(i));
649 [self buildItemWithTitle:SysUTF16ToNSString( 650 [children addObject:[self buildItemWithTitle:title
650 prompt.GetRetainedFile(i)) 651 cellAttributes:kUseBullet
651 cellAttributes:kUseBullet 652 children:nil]];
652 children:nil]];
653 } 653 }
654 } 654 }
655 655
656 [warnings addObject: 656 NSString* title = SysUTF16ToNSString(prompt.GetRetainedFilesHeading());
657 [self buildItemWithTitle:SysUTF16ToNSString( 657 [warnings addObject:[self buildItemWithTitle:title
658 prompt.GetRetainedFilesHeading()) 658 cellAttributes:kBoldText | kAutoExpandCell |
659 cellAttributes:kBoldText | kAutoExpandCell | kNoExpandMarker 659 kNoExpandMarker
660 children:children]]; 660 children:children]];
661 661
662 // Add a row for the link. 662 // Add a row for the link.
663 [warnings addObject: 663 [warnings addObject:
664 [self buildDetailToggleItem:type permissionsDetailIndex:0]]; 664 [self buildDetailToggleItem:type permissionsDetailIndex:0]];
665 } 665 }
666 666
667 if (prompt.GetRetainedDeviceCount() > 0) {
668 type = ExtensionInstallPrompt::RETAINED_DEVICES_DETAILS;
669
670 NSMutableArray* children = [NSMutableArray array];
671
672 if (prompt.GetIsShowingDetails(type, 0)) {
673 for (size_t i = 0; i < prompt.GetRetainedDeviceCount(); ++i) {
674 NSString* title =
675 SysUTF16ToNSString(prompt.GetRetainedDeviceMessageString(i));
676 [children addObject:[self buildItemWithTitle:title
677 cellAttributes:kUseBullet
678 children:nil]];
679 }
680 }
681
682 NSString* title = SysUTF16ToNSString(prompt.GetRetainedDevicesHeading());
683 [warnings addObject:[self buildItemWithTitle:title
684 cellAttributes:kBoldText | kAutoExpandCell |
685 kNoExpandMarker
686 children:children]];
687
688 // Add a row for the link.
689 [warnings
690 addObject:[self buildDetailToggleItem:type permissionsDetailIndex:0]];
691 }
692
667 return warnings; 693 return warnings;
668 } 694 }
669 695
670 - (void)updateViewFrame:(NSRect)frame { 696 - (void)updateViewFrame:(NSRect)frame {
671 NSWindow* window = [[self view] window]; 697 NSWindow* window = [[self view] window];
672 [window setFrame:[window frameRectForContentRect:frame] display:YES]; 698 [window setFrame:[window frameRectForContentRect:frame] display:YES];
673 [[self view] setFrame:frame]; 699 [[self view] setFrame:frame];
674 } 700 }
675 701
676 @end 702 @end
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
735 } 761 }
736 762
737 - (void)accessibilityPerformAction:(NSString*)action { 763 - (void)accessibilityPerformAction:(NSString*)action {
738 if ([action isEqualToString:NSAccessibilityPressAction]) 764 if ([action isEqualToString:NSAccessibilityPressAction])
739 [self handleLinkClicked]; 765 [self handleLinkClicked];
740 else 766 else
741 [super accessibilityPerformAction:action]; 767 [super accessibilityPerformAction:action];
742 } 768 }
743 769
744 @end 770 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698