Bug 207079 - Pass a hint from the extension to decidePolicyForSOAuthorizationLoadWithCurrentPolicy
Summary: Pass a hint from the extension to decidePolicyForSOAuthorizationLoadWithCurre...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Jiewen Tan
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-01-31 15:45 PST by Jiewen Tan
Modified: 2020-02-03 21:31 PST (History)
5 users (show)

See Also:


Attachments
Patch (72.99 KB, patch)
2020-01-31 15:55 PST, Jiewen Tan
no flags Details | Formatted Diff | Diff
Patch (74.50 KB, patch)
2020-01-31 16:06 PST, Jiewen Tan
no flags Details | Formatted Diff | Diff
Patch (74.65 KB, patch)
2020-01-31 22:16 PST, Jiewen Tan
no flags Details | Formatted Diff | Diff
Patch (74.47 KB, patch)
2020-02-01 19:13 PST, Jiewen Tan
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jiewen Tan 2020-01-31 15:45:54 PST
Pass a hint from the extension to decidePolicyForSOAuthorizationLoadWithCurrentPolicy.
Comment 1 Jiewen Tan 2020-01-31 15:46:09 PST
<rdar://problem/48290464>
Comment 2 Jiewen Tan 2020-01-31 15:55:16 PST
Created attachment 389433 [details]
Patch
Comment 3 Jiewen Tan 2020-01-31 16:06:08 PST
Created attachment 389435 [details]
Patch
Comment 4 Brent Fulgham 2020-01-31 16:48:52 PST
Looks like you have an iOS build failure. Otherwise looks good:

CompileC /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource36-mm.o /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource36-mm.mm normal arm64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Volumes/Data/worker/iOS-13-Build-EWS/build/Source/WebKit
    export LANG=en_US.US-ASCII
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -target arm64-apple-ios13.2 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++1z -stdlib=libc++ -fobjc-weak -gmodules -Wno-trigraphs -fno-exceptions -fno-rtti -fno-sanitize=vptr -fpascal-strings -Os -fno-common -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wunreachable-code -Wno-implicit-atomic-properties -Wno-objc-interface-ivars -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -DNDEBUG -DENABLE_3D_TRANSFORMS -DENABLE_APPLE_PAY -DENABLE_APPLE_PAY_SESSION_V3 -DENABLE_APPLE_PAY_SESSION_V4 -DENABLE_APPLICATION_MANIFEST -DENABLE_ATTACHMENT_ELEMENT -DENABLE_AVF_CAPTIONS -DENABLE_CACHE_PARTITIONING -DENABLE_CHANNEL_MESSAGING -DENABLE_CONTENT_FILTERING -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_COMPOSITING -DENABLE_CSS_CONIC_GRADIENTS -DENABLE_CSS_PAINTING_API -DENABLE_CSS_SCROLL_SNAP -DENABLE_CSS_SELECTORS_LEVEL4 -DENABLE_CSS_TRAILING_WORD -DENABLE_CSS_TYPED_OM -DENABLE_CURSOR_VISIBILITY -DENABLE_DARK_MODE_CSS -DENABLE_DATACUE_VALUE -DENABLE_DATALIST_ELEMENT -DENABLE_DATA_INTERACTION -DENABLE_DEVICE_ORIENTATION -DENABLE_DRAG_SUPPORT -DENABLE_ENCRYPTED_MEDIA -DENABLE_EXPERIMENTAL_FEATURES -DENABLE_FILTERS_LEVEL_2 -DENABLE_FTL_JIT -DENABLE_FULLSCREEN_API -DENABLE_PICTURE_IN_PICTURE_API -DENABLE_GAMEPAD -DENABLE_GEOLOCATION -DENABLE_GPU_PROCESS -DENABLE_INDEXED_DATABASE -DENABLE_INDEXED_DATABASE_IN_WORKERS -DENABLE_INPUT_TYPE_COLOR -DENABLE_INPUT_TYPE_DATE -DENABLE_INPUT_TYPE_DATETIMELOCAL -DENABLE_INPUT_TYPE_MONTH -DENABLE_INPUT_TYPE_TIME -DENABLE_INPUT_TYPE_WEEK -DENABLE_INSPECTOR_ALTERNATE_DISPATCHERS -DENABLE_INSPECTOR_TELEMETRY -DENABLE_INTERSECTION_OBSERVER -DENABLE_INTL -DENABLE_LAYOUT_FORMATTING_CONTEXT -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER -DENABLE_LEGACY_ENCRYPTED_MEDIA -DENABLE_LETTERPRESS -DENABLE_MATHML -DENABLE_MEDIA_CAPTURE -DENABLE_MEDIA_CONTROLS_SCRIPT -DENABLE_MEDIA_STREAM -DENABLE_MEMORY_SAMPLER -DENABLE_METER_ELEMENT -DENABLE_NAVIGATOR_STANDALONE -DENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION -DENABLE_NETWORK_CACHE_STALE_WHILE_REVALIDATE -DENABLE_OVERFLOW_SCROLLING_TOUCH -DENABLE_PAYMENT_REQUEST -DENABLE_POINTER_EVENTS -DENABLE_PUBLIC_SUFFIX_LIST -DENABLE_REMOTE_INSPECTOR -DENABLE_RESIZE_OBSERVER -DENABLE_RESOURCE_LOAD_STATISTICS -DENABLE_RESOURCE_USAGE -DENABLE_SANDBOX_EXTENSIONS -DENABLE_SERVER_PRECONNECT -DENABLE_SERVICE_WORKER -DENABLE_SHAREABLE_RESOURCE -DENABLE_SPEECH_SYNTHESIS -DENABLE_STREAMS_API -DENABLE_SVG_FONTS -DENABLE_TELEPHONE_NUMBER_DETECTION -DENABLE_TEXT_AUTOSIZING -DENABLE_USERSELECT_ALL -DENABLE_USER_MESSAGE_HANDLERS -DENABLE_VARIATION_FONTS -DENABLE_VIDEO -DENABLE_VIDEO_PRESENTATION_MODE -DENABLE_VIDEO_TRACK -DENABLE_WEBDRIVER_KEYBOARD_INTERACTIONS -DENABLE_WEBDRIVER_TOUCH_INTERACTIONS -DENABLE_WEBGL -DENABLE_WEBGL2 -DENABLE_WEBGPU -DENABLE_WEB_AUDIO -DENABLE_WEB_AUTHN -DENABLE_WEB_CRYPTO -DENABLE_WEB_RTC -DENABLE_WIRELESS_PLAYBACK_TARGET -DENABLE_XSLT -DHAVE_CORE_PREDICTION -DU_HIDE_DEPRECATED_API -DU_DISABLE_RENAMING=1 -DU_SHOW_CPLUSPLUS_API=0 -DFRAMEWORK_NAME=WebKit -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -g -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -iquote /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-generated-files.hmap -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-own-target-headers.hmap -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-all-target-headers.hmap -iquote /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/WebKit-project-headers.hmap -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/include -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/usr/local/include -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2 -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/usr/local/include/WebKitAdditions -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/local/include/WebKitAdditions -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/usr/local/include/webrtc -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/local/include/webrtc -I/Volumes/Data/worker/iOS-13-Build-EWS/build/Source/WebKit -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/DerivedSources-normal/arm64 -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/DerivedSources/arm64 -I/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/DerivedSources -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wconditional-uninitialized -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -F/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos -F/Volumes/Data/worker/iOS-13-Build-EWS/build/Source/WebKit/../../WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13 -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/PrivateFrameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/PrivateFrameworks -isystem /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/System.framework/PrivateHeaders -include /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/PrecompiledHeaders/WebKit2Prefix-gvqcbjjmpdxaschbrgxmqbsmhhof/WebKit2Prefix.h -MMD -MT dependencies -MF /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource36-mm.d --serialize-diagnostics /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource36-mm.dia -c /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource36-mm.mm -o /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/WebKit.build/Release-iphoneos/WebKit.build/Objects-normal/arm64/UnifiedSource36-mm.o
In file included from /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource36-mm.mm:1:
In file included from /Volumes/Data/worker/iOS-13-Build-EWS/build/Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:27:
In file included from /Volumes/Data/worker/iOS-13-Build-EWS/build/Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h:30:
/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/usr/local/include/pal/spi/cocoa/AppSSOSPI.h:83:109: error: unknown type name 'SOAuthorizationHints'; did you mean 'SOAuthorization'?
- (void)getAuthorizationHintsWithURL:(NSURL *)url responseCode:(NSInteger)responseCode completion:(void (^)(SOAuthorizationHints * _Nullable authorizationHints, NSError * _Nullable error))completion;
                                                                                                            ^~~~~~~~~~~~~~~~~~~~
                                                                                                            SOAuthorization
/Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/usr/local/include/pal/spi/cocoa/AppSSOSPI.h:78:12: note: 'SOAuthorization' declared here
@interface SOAuthorization : NSObject
           ^
In file included from /Volumes/Data/worker/iOS-13-Build-EWS/build/WebKitBuild/Release-iphoneos/DerivedSources/WebKit2/unified-sources/UnifiedSource36-mm.mm:1:
/Volumes/Data/worker/iOS-13-Build-EWS/build/Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:134:115: error: cannot initialize a parameter of type 'void (^ _Nonnull)(SOAuthorization * _Nullable, NSError * _Nullable)' with an rvalue of type 'WTF::BlockPtr<void (SOAuthorizationHints *, NSError *)>::BlockType' (aka 'void (^)(SOAuthorizationHints *, NSError *)')
Comment 5 Jiewen Tan 2020-01-31 22:16:59 PST
Created attachment 389455 [details]
Patch
Comment 6 Jiewen Tan 2020-02-01 19:13:02 PST
Created attachment 389467 [details]
Patch
Comment 7 Jiewen Tan 2020-02-01 22:26:28 PST
The API test failures don't seem to be related.
Comment 8 Brent Fulgham 2020-02-03 19:10:12 PST
Comment on attachment 389467 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=389467&action=review

> Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:172
> +    // FIXME: <rdar://problem/48909336> Replace the below with AppSSO constants.

It might be nice to resolve this one, soon!
Comment 9 Jiewen Tan 2020-02-03 20:58:58 PST
Comment on attachment 389467 [details]
Patch

Thanks Brent for r+ this patch.
Comment 10 WebKit Commit Bot 2020-02-03 21:29:56 PST
Comment on attachment 389467 [details]
Patch

Clearing flags on attachment: 389467

Committed r255660: <https://trac.webkit.org/changeset/255660>
Comment 11 WebKit Commit Bot 2020-02-03 21:29:58 PST
All reviewed patches have been landed.  Closing bug.
Comment 12 Jiewen Tan 2020-02-03 21:31:56 PST
(In reply to Brent Fulgham from comment #8)
> Comment on attachment 389467 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=389467&action=review
> 
> > Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:172
> > +    // FIXME: <rdar://problem/48909336> Replace the below with AppSSO constants.
> 
> It might be nice to resolve this one, soon!

Sure thing.