| OLD | NEW |
| 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 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 prompt:(const ExtensionInstallPrompt::Prompt&)prompt { | 183 prompt:(const ExtensionInstallPrompt::Prompt&)prompt { |
| 184 // We use a different XIB in the case of bundle installs, installs with | 184 // We use a different XIB in the case of bundle installs, installs with |
| 185 // webstore data, or no permission warnings. These are laid out nicely for | 185 // webstore data, or no permission warnings. These are laid out nicely for |
| 186 // the data they display. | 186 // the data they display. |
| 187 NSString* nibName = nil; | 187 NSString* nibName = nil; |
| 188 if (prompt.type() == ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT) { | 188 if (prompt.type() == ExtensionInstallPrompt::BUNDLE_INSTALL_PROMPT) { |
| 189 nibName = @"ExtensionInstallPromptBundle"; | 189 nibName = @"ExtensionInstallPromptBundle"; |
| 190 } else if (prompt.has_webstore_data()) { | 190 } else if (prompt.has_webstore_data()) { |
| 191 nibName = @"ExtensionInstallPromptWebstoreData"; | 191 nibName = @"ExtensionInstallPromptWebstoreData"; |
| 192 } else if (!prompt.ShouldShowPermissions() && | 192 } else if (!prompt.ShouldShowPermissions() && |
| 193 prompt.GetOAuthIssueCount() == 0 && | |
| 194 prompt.GetRetainedFileCount() == 0) { | 193 prompt.GetRetainedFileCount() == 0) { |
| 195 nibName = @"ExtensionInstallPromptNoWarnings"; | 194 nibName = @"ExtensionInstallPromptNoWarnings"; |
| 196 } else { | 195 } else { |
| 197 nibName = @"ExtensionInstallPrompt"; | 196 nibName = @"ExtensionInstallPrompt"; |
| 198 } | 197 } |
| 199 | 198 |
| 200 if ((self = [super initWithNibName:nibName | 199 if ((self = [super initWithNibName:nibName |
| 201 bundle:base::mac::FrameworkBundle()])) { | 200 bundle:base::mac::FrameworkBundle()])) { |
| 202 navigator_ = navigator; | 201 navigator_ = navigator; |
| 203 delegate_ = delegate; | 202 delegate_ = delegate; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 [joinedItems appendString:@"\n"]; | 300 [joinedItems appendString:@"\n"]; |
| 302 [joinedItems appendString:base::SysUTF16ToNSString( | 301 [joinedItems appendString:base::SysUTF16ToNSString( |
| 303 items[i].GetNameForDisplay())]; | 302 items[i].GetNameForDisplay())]; |
| 304 } | 303 } |
| 305 [itemsField_ setStringValue:joinedItems]; | 304 [itemsField_ setStringValue:joinedItems]; |
| 306 | 305 |
| 307 // Adjust the controls to fit the list of extensions. | 306 // Adjust the controls to fit the list of extensions. |
| 308 OffsetControlVerticallyToFitContent(itemsField_, &totalOffset); | 307 OffsetControlVerticallyToFitContent(itemsField_, &totalOffset); |
| 309 } | 308 } |
| 310 | 309 |
| 311 // If there are any warnings or OAuth issues, then we have to do some special | 310 // If there are any warnings or retained files, then we have to do |
| 312 // layout. | 311 // some special layout. |
| 313 if (prompt_->ShouldShowPermissions() || prompt_->GetOAuthIssueCount() > 0 || | 312 if (prompt_->ShouldShowPermissions() || prompt_->GetRetainedFileCount() > 0) { |
| 314 prompt_->GetRetainedFileCount() > 0) { | |
| 315 NSSize spacing = [outlineView_ intercellSpacing]; | 313 NSSize spacing = [outlineView_ intercellSpacing]; |
| 316 spacing.width += 2; | 314 spacing.width += 2; |
| 317 spacing.height += 2; | 315 spacing.height += 2; |
| 318 [outlineView_ setIntercellSpacing:spacing]; | 316 [outlineView_ setIntercellSpacing:spacing]; |
| 319 [[[[outlineView_ tableColumns] objectAtIndex:0] dataCell] setWraps:YES]; | 317 [[[[outlineView_ tableColumns] objectAtIndex:0] dataCell] setWraps:YES]; |
| 320 for (id item in warnings_.get()) | 318 for (id item in warnings_.get()) |
| 321 [self expandItemAndChildren:item]; | 319 [self expandItemAndChildren:item]; |
| 322 | 320 |
| 323 // Adjust the outline view to fit the warnings. | 321 // Adjust the outline view to fit the warnings. |
| 324 OffsetOutlineViewVerticallyToFitContent(outlineView_, &totalOffset); | 322 OffsetOutlineViewVerticallyToFitContent(outlineView_, &totalOffset); |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 children:nil]]; | 630 children:nil]]; |
| 633 heading = @""; | 631 heading = @""; |
| 634 } | 632 } |
| 635 | 633 |
| 636 [warnings addObject:[self | 634 [warnings addObject:[self |
| 637 buildItemWithTitle:heading | 635 buildItemWithTitle:heading |
| 638 cellAttributes:kBoldText | kAutoExpandCell | kNoExpandMarker | 636 cellAttributes:kBoldText | kAutoExpandCell | kNoExpandMarker |
| 639 children:children]]; | 637 children:children]]; |
| 640 } | 638 } |
| 641 | 639 |
| 642 if (prompt.GetOAuthIssueCount() > 0) { | |
| 643 type = ExtensionInstallPrompt::OAUTH_DETAILS; | |
| 644 | |
| 645 NSMutableArray* children = [NSMutableArray array]; | |
| 646 | |
| 647 for (size_t i = 0; i < prompt.GetOAuthIssueCount(); ++i) { | |
| 648 NSMutableArray* details = [NSMutableArray array]; | |
| 649 const IssueAdviceInfoEntry& issue = prompt.GetOAuthIssue(i); | |
| 650 if (!issue.details.empty() && prompt.GetIsShowingDetails(type, i)) { | |
| 651 for (size_t j = 0; j < issue.details.size(); ++j) { | |
| 652 [details addObject: | |
| 653 [self buildItemWithTitle:SysUTF16ToNSString(issue.details[j]) | |
| 654 cellAttributes:kNoExpandMarker | |
| 655 children:nil]]; | |
| 656 } | |
| 657 } | |
| 658 | |
| 659 [children addObject: | |
| 660 [self buildItemWithTitle:SysUTF16ToNSString(issue.description) | |
| 661 cellAttributes:kUseBullet | kAutoExpandCell | |
| 662 children:details]]; | |
| 663 | |
| 664 if (!issue.details.empty()) { | |
| 665 // Add a row for the link. | |
| 666 [children addObject: | |
| 667 [self buildDetailToggleItem:type permissionsDetailIndex:i]]; | |
| 668 } | |
| 669 } | |
| 670 | |
| 671 [warnings addObject: | |
| 672 [self buildItemWithTitle:SysUTF16ToNSString(prompt.GetOAuthHeading()) | |
| 673 cellAttributes:kBoldText | kAutoExpandCell| kNoExpandMarker | |
| 674 children:children]]; | |
| 675 } | |
| 676 | |
| 677 if (prompt.GetRetainedFileCount() > 0) { | 640 if (prompt.GetRetainedFileCount() > 0) { |
| 678 type = ExtensionInstallPrompt::RETAINED_FILES_DETAILS; | 641 type = ExtensionInstallPrompt::RETAINED_FILES_DETAILS; |
| 679 | 642 |
| 680 NSMutableArray* children = [NSMutableArray array]; | 643 NSMutableArray* children = [NSMutableArray array]; |
| 681 | 644 |
| 682 if (prompt.GetIsShowingDetails(type, 0)) { | 645 if (prompt.GetIsShowingDetails(type, 0)) { |
| 683 for (size_t i = 0; i < prompt.GetRetainedFileCount(); ++i) { | 646 for (size_t i = 0; i < prompt.GetRetainedFileCount(); ++i) { |
| 684 [children addObject: | 647 [children addObject: |
| 685 [self buildItemWithTitle:SysUTF16ToNSString( | 648 [self buildItemWithTitle:SysUTF16ToNSString( |
| 686 prompt.GetRetainedFile(i)) | 649 prompt.GetRetainedFile(i)) |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 } | 734 } |
| 772 | 735 |
| 773 - (void)accessibilityPerformAction:(NSString*)action { | 736 - (void)accessibilityPerformAction:(NSString*)action { |
| 774 if ([action isEqualToString:NSAccessibilityPressAction]) | 737 if ([action isEqualToString:NSAccessibilityPressAction]) |
| 775 [self handleLinkClicked]; | 738 [self handleLinkClicked]; |
| 776 else | 739 else |
| 777 [super accessibilityPerformAction:action]; | 740 [super accessibilityPerformAction:action]; |
| 778 } | 741 } |
| 779 | 742 |
| 780 @end | 743 @end |
| OLD | NEW |