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

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: Rebased to ToT. Created 6 years, 2 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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 prompt:(scoped_refptr<ExtensionInstallPrompt::Prompt>)prompt { 191 prompt:(scoped_refptr<ExtensionInstallPrompt::Prompt>)prompt {
192 // We use a different XIB in the case of bundle installs, installs with 192 // We use a different XIB in the case of bundle installs, installs with
193 // webstore data, or no permission warnings. These are laid out nicely for 193 // webstore data, or no permission warnings. These are laid out nicely for
194 // the data they display. 194 // the data they display.
195 NSString* nibName = nil; 195 NSString* nibName = nil;
196 if (prompt->type() == ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT) { 196 if (prompt->type() == ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT) {
197 nibName = @"ExtensionInstallPromptBundle"; 197 nibName = @"ExtensionInstallPromptBundle";
198 } else if (prompt->has_webstore_data()) { 198 } else if (prompt->has_webstore_data()) {
199 nibName = @"ExtensionInstallPromptWebstoreData"; 199 nibName = @"ExtensionInstallPromptWebstoreData";
200 } else if (!prompt->ShouldShowPermissions() && 200 } else if (!prompt->ShouldShowPermissions() &&
201 prompt->GetRetainedFileCount() == 0) { 201 prompt->GetRetainedFileCount() == 0 &&
202 prompt->GetRetainedDeviceCount() == 0) {
202 nibName = @"ExtensionInstallPromptNoWarnings"; 203 nibName = @"ExtensionInstallPromptNoWarnings";
203 } else { 204 } else {
204 nibName = @"ExtensionInstallPrompt"; 205 nibName = @"ExtensionInstallPrompt";
205 } 206 }
206 207
207 if ((self = [super initWithNibName:nibName 208 if ((self = [super initWithNibName:nibName
208 bundle:base::mac::FrameworkBundle()])) { 209 bundle:base::mac::FrameworkBundle()])) {
209 navigator_ = navigator; 210 navigator_ = navigator;
210 delegate_ = delegate; 211 delegate_ = delegate;
211 prompt_ = prompt; 212 prompt_ = prompt;
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 [joinedItems appendString:@"\n"]; 309 [joinedItems appendString:@"\n"];
309 [joinedItems appendString:base::SysUTF16ToNSString( 310 [joinedItems appendString:base::SysUTF16ToNSString(
310 items[i].GetNameForDisplay())]; 311 items[i].GetNameForDisplay())];
311 } 312 }
312 [itemsField_ setStringValue:joinedItems]; 313 [itemsField_ setStringValue:joinedItems];
313 314
314 // Adjust the controls to fit the list of extensions. 315 // Adjust the controls to fit the list of extensions.
315 OffsetControlVerticallyToFitContent(itemsField_, &totalOffset); 316 OffsetControlVerticallyToFitContent(itemsField_, &totalOffset);
316 } 317 }
317 318
318 // If there are any warnings or retained files, then we have to do 319 // If there are any warnings, retained devices or retained files, then we
319 // some special layout. 320 // have to do some special layout.
320 if (prompt_->ShouldShowPermissions() || prompt_->GetRetainedFileCount() > 0) { 321 if (prompt_->ShouldShowPermissions() || prompt_->GetRetainedFileCount() > 0) {
321 NSSize spacing = [outlineView_ intercellSpacing]; 322 NSSize spacing = [outlineView_ intercellSpacing];
322 spacing.width += 2; 323 spacing.width += 2;
323 spacing.height += 2; 324 spacing.height += 2;
324 [outlineView_ setIntercellSpacing:spacing]; 325 [outlineView_ setIntercellSpacing:spacing];
325 [[[[outlineView_ tableColumns] objectAtIndex:0] dataCell] setWraps:YES]; 326 [[[[outlineView_ tableColumns] objectAtIndex:0] dataCell] setWraps:YES];
326 for (id item in warnings_.get()) 327 for (id item in warnings_.get())
327 [self expandItemAndChildren:item]; 328 [self expandItemAndChildren:item];
328 329
329 // Adjust the outline view to fit the warnings. 330 // Adjust the outline view to fit the warnings.
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 kPermissionsDetailIndex : [NSNumber numberWithUnsignedInteger:index], 596 kPermissionsDetailIndex : [NSNumber numberWithUnsignedInteger:index],
596 kPermissionsDetailType : [NSNumber numberWithUnsignedInteger:type], 597 kPermissionsDetailType : [NSNumber numberWithUnsignedInteger:type],
597 }; 598 };
598 } 599 }
599 600
600 - (NSArray*)buildWarnings:(const ExtensionInstallPrompt::Prompt&)prompt { 601 - (NSArray*)buildWarnings:(const ExtensionInstallPrompt::Prompt&)prompt {
601 NSMutableArray* warnings = [NSMutableArray array]; 602 NSMutableArray* warnings = [NSMutableArray array];
602 NSString* heading = nil; 603 NSString* heading = nil;
603 NSString* withheldHeading = nil; 604 NSString* withheldHeading = nil;
604 605
605 ExtensionInstallPrompt::DetailsType type =
606 ExtensionInstallPrompt::PERMISSIONS_DETAILS;
607 bool hasPermissions = prompt.GetPermissionCount( 606 bool hasPermissions = prompt.GetPermissionCount(
608 ExtensionInstallPrompt::PermissionsType::ALL_PERMISSIONS); 607 ExtensionInstallPrompt::PermissionsType::ALL_PERMISSIONS);
609 CellAttributes warningCellAttributes = 608 CellAttributes warningCellAttributes =
610 kBoldText | kAutoExpandCell | kNoExpandMarker; 609 kBoldText | kAutoExpandCell | kNoExpandMarker;
611 if (prompt.ShouldShowPermissions()) { 610 if (prompt.ShouldShowPermissions()) {
612 NSMutableArray* children = [NSMutableArray array]; 611 NSMutableArray* children = [NSMutableArray array];
613 NSMutableArray* withheldChildren = [NSMutableArray array]; 612 NSMutableArray* withheldChildren = [NSMutableArray array];
614 613
615 heading = 614 heading =
616 [self appendPermissionsForPrompt:prompt 615 [self appendPermissionsForPrompt:prompt
(...skipping 23 matching lines...) Expand all
640 639
641 // Add withheld permissions to the prompt if they exist. 640 // Add withheld permissions to the prompt if they exist.
642 if (withheldHeading) { 641 if (withheldHeading) {
643 [warnings addObject:[self buildItemWithTitle:withheldHeading 642 [warnings addObject:[self buildItemWithTitle:withheldHeading
644 cellAttributes:warningCellAttributes 643 cellAttributes:warningCellAttributes
645 children:withheldChildren]]; 644 children:withheldChildren]];
646 } 645 }
647 } 646 }
648 647
649 if (prompt.GetRetainedFileCount() > 0) { 648 if (prompt.GetRetainedFileCount() > 0) {
650 type = ExtensionInstallPrompt::RETAINED_FILES_DETAILS; 649 const ExtensionInstallPrompt::DetailsType type =
650 ExtensionInstallPrompt::RETAINED_FILES_DETAILS;
651 651
652 NSMutableArray* children = [NSMutableArray array]; 652 NSMutableArray* children = [NSMutableArray array];
653 653
654 if (prompt.GetIsShowingDetails(type, 0)) { 654 if (prompt.GetIsShowingDetails(type, 0)) {
655 for (size_t i = 0; i < prompt.GetRetainedFileCount(); ++i) { 655 for (size_t i = 0; i < prompt.GetRetainedFileCount(); ++i) {
656 [children addObject: 656 NSString* title = SysUTF16ToNSString(prompt.GetRetainedFile(i));
657 [self buildItemWithTitle:SysUTF16ToNSString( 657 [children addObject:[self buildItemWithTitle:title
658 prompt.GetRetainedFile(i)) 658 cellAttributes:kUseBullet
659 cellAttributes:kUseBullet 659 children:nil]];
660 children:nil]];
661 } 660 }
662 } 661 }
663 662
664 [warnings 663 NSString* title = SysUTF16ToNSString(prompt.GetRetainedFilesHeading());
665 addObject:[self buildItemWithTitle:SysUTF16ToNSString( 664 [warnings addObject:[self buildItemWithTitle:title
666 prompt.GetRetainedFilesHeading()) 665 cellAttributes:warningCellAttributes
667 cellAttributes:warningCellAttributes 666 children:children]];
668 children:children]];
669 667
670 // Add a row for the link. 668 // Add a row for the link.
671 [warnings addObject: 669 [warnings addObject:
672 [self buildDetailToggleItem:type permissionsDetailIndex:0]]; 670 [self buildDetailToggleItem:type permissionsDetailIndex:0]];
673 } 671 }
674 672
673 if (prompt.GetRetainedDeviceCount() > 0) {
674 const ExtensionInstallPrompt::DetailsType type =
675 ExtensionInstallPrompt::RETAINED_DEVICES_DETAILS;
676
677 NSMutableArray* children = [NSMutableArray array];
678
679 if (prompt.GetIsShowingDetails(type, 0)) {
680 for (size_t i = 0; i < prompt.GetRetainedDeviceCount(); ++i) {
681 NSString* title =
682 SysUTF16ToNSString(prompt.GetRetainedDeviceMessageString(i));
683 [children addObject:[self buildItemWithTitle:title
684 cellAttributes:kUseBullet
685 children:nil]];
686 }
687 }
688
689 NSString* title = SysUTF16ToNSString(prompt.GetRetainedDevicesHeading());
690 [warnings addObject:[self buildItemWithTitle:title
691 cellAttributes:warningCellAttributes
692 children:children]];
693
694 // Add a row for the link.
695 [warnings
696 addObject:[self buildDetailToggleItem:type permissionsDetailIndex:0]];
697 }
698
675 return warnings; 699 return warnings;
676 } 700 }
677 701
678 - (NSString*) 702 - (NSString*)
679 appendPermissionsForPrompt:(const ExtensionInstallPrompt::Prompt&)prompt 703 appendPermissionsForPrompt:(const ExtensionInstallPrompt::Prompt&)prompt
680 withType:(ExtensionInstallPrompt::PermissionsType)type 704 withType:(ExtensionInstallPrompt::PermissionsType)type
681 children:(NSMutableArray*)children { 705 children:(NSMutableArray*)children {
682 size_t permissionsCount = prompt.GetPermissionCount(type); 706 size_t permissionsCount = prompt.GetPermissionCount(type);
683 if (permissionsCount == 0) 707 if (permissionsCount == 0)
684 return NULL; 708 return NULL;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 } 803 }
780 804
781 - (void)accessibilityPerformAction:(NSString*)action { 805 - (void)accessibilityPerformAction:(NSString*)action {
782 if ([action isEqualToString:NSAccessibilityPressAction]) 806 if ([action isEqualToString:NSAccessibilityPressAction])
783 [self handleLinkClicked]; 807 [self handleLinkClicked];
784 else 808 else
785 [super accessibilityPerformAction:action]; 809 [super accessibilityPerformAction:action];
786 } 810 }
787 811
788 @end 812 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698