Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better reflect temporary unprotected status #916

Merged
merged 21 commits into from
Jul 2, 2021

Conversation

SlayterDev
Copy link
Contributor

Task/Issue URL: https://app.asana.com/0/0/1200517965702748/f
Tech Design URL:
CC: @brindy @bwaresiak

Description:
This PR better reflects unprotected status for sites on the temporary allow list. A disclaimer has been added to inform users of this state.

Steps to test this PR:

  1. Visit https://spiegel.de
  2. Open privacy dashboard
  3. Site should appear unprotected. The toggle should be hidden with a message informing the site is temporarily unprotected

Copy Testing:

  • Use of correct apostrophes in new copy, ie rather than '

Orientation Testing:

  • Portrait
  • Landscape

Device Testing:

  • iPhone SE (1st Gen)
  • iPhone 8
  • iPhone X
  • iPad

OS Testing:

  • iOS 13
  • iOS 14

Theme Testing:

  • Light theme
  • Dark theme

Internal references:

Software Engineering Expectations
Technical Design Template
When ready for review, remember to post the PR in MM

@brindy brindy self-assigned this Jul 1, 2021
Copy link
Contributor

@brindy brindy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get the following crash when opening the dashboard. This is usually caused when the storyboard has an outlet reference that has been removed from the code.

Steps:

  • Clean install
  • Visit speigel.de
  • Click on the privacy grade

Expected: dashboard shows

Actual: Crash, see below

2021-07-01 12:20:38.766368+0100 DuckDuckGo[87881:17843030] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<DuckDuckGo.PrivacyProtectionOverviewController 0x7fe40f0a6000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key privacyProtectionLabel.'
*** First throw call stack:
(
	0   CoreFoundation                      0x000000010c5c6fba __exceptionPreprocess + 242
	1   libobjc.A.dylib                     0x000000010be02ff5 objc_exception_throw + 48
	2   CoreFoundation                      0x000000010c5c6c5b -[NSException init] + 0
	3   Foundation                          0x000000010b8da46c -[NSObject(NSKeyValueCoding) setValue:forKey:] + 331
	4   UIKitCore                           0x000000011e86eac4 -[UIViewController setValue:forKey:] + 74
	5   UIKitCore                           0x000000011ebadc0b -[UIRuntimeOutletConnection connect] + 109
	6   CoreFoundation                      0x000000010c5b06e6 -[NSArray makeObjectsPerformSelector:] + 228
	7   UIKitCore                           0x000000011eba9e70 -[UINib instantiateWithOwner:options:] + 2175
	8   UIKitCore                           0x000000011e876921 -[UIViewController loadView] + 668
	9   UIKitCore                           0x000000011e86567b -[UITableViewController loadView] + 83
	10  UIKitCore                           0x000000011e876cbc -[UIViewController loadViewIfRequired] + 172
	11  UIKitCore                           0x000000011e7ac03a -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 162
	12  UIKitCore                           0x000000011e7ac326 -[UINavigationController _startTransition:fromViewController:toViewController:] + 154
	13  UIKitCore                           0x000000011e7ad3b8 -[UINavigationController _startDeferredTransitionIfNeeded:] + 876
	14  UIKitCore                           0x000000011e7ae734 -[UINavigationController __viewWillLayoutSubviews] + 150
	15  UIKitCore                           0x000000011e78f04c -[UILayoutContainerView layoutSubviews] + 217
	16  UIKitCore                           0x000000011f50ac90 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2946
	17  QuartzCore                          0x000000010d8535b8 -[CALayer layoutSublayers] + 258
	18  QuartzCore                          0x000000010d859e3f _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 611
	19  UIKitCore                           0x000000011f4f6b4f -[UIView(Hierarchy) layoutBelowIfNeeded] + 1238
	20  UIKitCore                           0x000000011e7665b8 -[_UISheetPresentationController _sheetLayoutInfoLayout:] + 48
	21  UIKitCore                           0x000000011e762591 -[_UISheetLayoutInfo _layout] + 360
	22  UIKitCore                           0x000000011e768435 __54-[_UISheetPresentationController transitionWillBegin:]_block_invoke_2 + 52
	23  UIKitCore                           0x000000011f4fdbb9 +[UIView(Animation) performWithoutAnimation:] + 84
	24  UIKitCore                           0x000000011e768372 __54-[_UISheetPresentationController transitionWillBegin:]_block_invoke.362 + 120
	25  UIKitCore                           0x000000011e8a649c -[_UIViewControllerTransitionCoordinator _applyBlocks:releaseBlocks:] + 294
	26  UIKitCore                           0x000000011e8a2950 -[_UIViewControllerTransitionContext __runAlongsideAnimations] + 260
	27  UIKitCore                           0x000000011f4fd9e2 __63+[UIView(Animation) _setAlongsideAnimations:toRunByEndOfBlock:]_block_invoke + 16
	28  UIKitCore                           0x000000011f4cf0cf -[UIViewAnimationState _runAlongsideAnimations] + 24
	29  UIKitCore                           0x000000011f4cdec3 -[UIViewAnimationState pop] + 37
	30  UIKitCore                           0x000000011f4cb302 +[UIViewAnimationState popAnimationState] + 62
	31  UIKitCore                           0x000000011f4ff423 +[UIView _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 696
	32  UIKitCore                           0x000000011f4ff714 +[UIView(UIViewAnimationWithBlocks) animateWithDuration:delay:options:animations:completion:] + 31
	33  UIKitCore                           0x000000011f4ffada +[UIView(UIViewAnimationWithBlocks) conditionallyAnimate:withAnimation:layout:completion:] + 76
	34  UIKitCore                           0x000000011f4c657a -[UITransitionView _startTransition:withDuration:] + 664
	35  UIKitCore                           0x000000011f4c6087 -[UITransitionView transition:fromView:toView:removeFromView:] + 2890
	36  UIKitCore                           0x000000011e89e2ca -[UIViewControllerBuiltinTransitionViewAnimator animateTransition:] + 1200
	37  UIKitCore                           0x000000011e8a6ff4 ___UIViewControllerTransitioningRunCustomTransition_block_invoke_2 + 59
	38  UIKitCore                           0x000000011e9e31e9 +[UIInputResponderController _pinInputViewsForInputResponderController:onBehalfOfResponder:duringBlock:] + 99
	39  UIKitCore                           0x000000011e8a6f83 ___UIViewControllerTransitioningRunCustomTransition_block_invoke.641 + 180
	40  UIKitCore                           0x000000011f4fd8f3 +[UIView(Animation) _setAlongsideAnimations:toRunByEndOfBlock:] + 175
	41  UIKitCore                           0x000000011e8a6e1a _UIViewControllerTransitioningRunCustomTransition + 574
	42  UIKitCore                           0x000000011e752aac __56-[UIPresentationController runTransitionForCurrentState]_block_invoke.466 + 2511
	43  UIKitCore                           0x000000011f4a3e36 -[_UIAfterCACommitBlock run] + 54
	44  UIKitCore                           0x000000011efc21f8 _runAfterCACommitDeferredBlocks + 333
	45  UIKitCore                           0x000000011efb21e4 _cleanUpAfterCAFlushAndRunDeferredBlocks + 221
	46  UIKitCore                           0x000000011efe3a36 _afterCACommitHandler + 85
	47  CoreFoundation                      0x000000010c533d31 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
	48  CoreFoundation                      0x000000010c52e542 __CFRunLoopDoObservers + 541
	49  CoreFoundation                      0x000000010c52eaf5 __CFRunLoopRun + 1129
	50  CoreFoundation                      0x000000010c52e1a7 CFRunLoopRunSpecific + 567
	51  GraphicsServices                    0x000000011a0d8d85 GSEventRunModal + 139
	52  UIKitCore                           0x000000011efb34df -[UIApplication _run] + 912
	53  UIKitCore                           0x000000011efb839c UIApplicationMain + 101
	54  DuckDuckGo                          0x0000000109ed7ecb main + 75
	55  libdyld.dylib                       0x00000001151d1bbd start + 1
)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<DuckDuckGo.PrivacyProtectionOverviewController 0x7fe40f0a6000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key privacyProtectionLabel.'
CoreSimulator 772.1 - Device: iPhone 12 Pro (46CC274F-3D58-4F8E-BCE3-FDE18E699929) - Runtime: iOS 14.5 (18E182) - DeviceType: iPhone 12 Pro
terminating with uncaught exception of type NSException
(lldb) 

@SlayterDev
Copy link
Contributor Author

Storyboards, am I right?

@brindy
Copy link
Contributor

brindy commented Jul 1, 2021

Was small screen size considered here? It should probably expand to accommodate the text rather than truncate.

Simulator Screen Shot - iPhone SE (1st generation) - 2021-07-01 at 16 14 50

@brindy
Copy link
Contributor

brindy commented Jul 1, 2021

Likewise in the popover on iPad:

Simulator Screen Shot - iPad Pro (12 9-inch) (5th generation) - 2021-07-01 at 16 19 44

@brindy
Copy link
Contributor

brindy commented Jul 1, 2021

Alternative to expanding to fit text is to reduce the font size a little automatically (should be doable in the Storyboard, but might want to check that with a designer first).

Otherwise, looks good. I can re-check first thing in the morning.

Copy link
Contributor

@brindy brindy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - feel free to merge once the product review has been signed off.

@SlayterDev SlayterDev merged commit e715d89 into develop Jul 2, 2021
@SlayterDev SlayterDev deleted the feature/brad/get-top-level-fix branch July 2, 2021 16:10
samsymons added a commit that referenced this pull request Jul 5, 2021
# By Christopher Brind (2) and others
# Via GitHub
* develop:
  Better reflect temporary unprotected status (#916)
  Fix build settings resolution for external developers (#880)
  add cookie debug screen, diagnostic report generation and optimise cookie deletion (#913)
  Update STYLEGUIDE.md (#917)
  Privacy reference unit tests for content blocker rules (#909)

# Conflicts:
#	DuckDuckGo.xcodeproj/project.pbxproj
#	DuckDuckGo/Debug.storyboard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants