diff --git a/SalesforceSDKCore.podspec b/SalesforceSDKCore.podspec index 55a9e7cd82..f13da7ec2e 100644 --- a/SalesforceSDKCore.podspec +++ b/SalesforceSDKCore.podspec @@ -25,7 +25,7 @@ Pod::Spec.new do |s| sdkcore.resources = ['shared/resources/SalesforceSDKAssets.xcassets'] sdkcore.source_files = 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/**/*.{h,m,swift}', 'libs/SalesforceSDKCore/SalesforceSDKCore/SalesforceSDKCore.h' # public_header_files is automatically populated by update_podspec_headers.sh which is run when building SalesforceSDKCore - sdkcore.public_header_files = 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKAILTNPublisher.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKAnalyticsPublisher.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKEventBuilderHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKSalesforceAnalyticsManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSData+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSData+SFSDKUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSDictionary+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSString+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSURL+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSURLResponse+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SalesforceSDKConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SalesforceSDKManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFFormatUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKAppConfig.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKAppFeatureMarkers.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/UIDevice+SFHardware.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/UIScreen+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Identity/SFIdentityCoordinator.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Identity/SFIdentityData.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKLoginFlowSelectionView.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUITableViewCell.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUserSelectionNavViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUserSelectionTableViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUserSelectionView.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Instrumentation/SFInstrumentation.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Instrumentation/SFMethodInterceptor.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Instrumentation/SFSDKInstrumentationHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHost.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostDelegate.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostStorage.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFLoginViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFSDKLoginViewControllerConfig.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCoordinator.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCredentials.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthInfo.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthOrgAuthConfiguration.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthSessionRefresher.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/PushNotification/SFSDKPushNotificationDecryption.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/PushNotification/SFSDKPushNotificationError.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/PushNotification/SFSDKPushNotificationFieldsConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFNetwork.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+Blocks.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+Files.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+Notifications.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+QueryBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestRequest.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKBatchRequest.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKBatchResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKCollectionResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKCompositeRequest.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKCompositeResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKPrimingRecordsResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSObjectTree.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Security/SFSDKCryptoUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/SFSDKAsyncProcessListener.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/SFSDKTestCredentialsData.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/SFSDKTestRequestListener.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/TestSetupUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFAuthErrorHandlerList.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccount.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccountConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccountIdentity.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccountManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/ViewControllers/SFDefaultUserManagementDetailViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/ViewControllers/SFDefaultUserManagementListViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/ViewControllers/SFDefaultUserManagementViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/NSURL+SFStringUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SalesforceSDKCoreDefines.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFApplicationHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFDirectoryManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFManagedPreferences.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFPreferences.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKAuthConfigUtil.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKAuthHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKCoreLogger.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuth2.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKResourceUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKSoqlBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKSoslBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKSoslReturningBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKViewControllerConfig.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKWebUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKAlertMessage.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKAlertMessageBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKDevInfoViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKNavigationController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKWindowContainer.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKWindowManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/SalesforceSDKCore.h' + sdkcore.public_header_files = 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKAILTNPublisher.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKAnalyticsPublisher.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKEventBuilderHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Analytics/SFSDKSalesforceAnalyticsManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSData+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSData+SFSDKUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSDictionary+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSString+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSURL+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/NSURLResponse+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFFormatUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKAppConfig.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKAppFeatureMarkers.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SalesforceSDKConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SalesforceSDKManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/UIDevice+SFHardware.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/UIScreen+SFAdditions.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKLoginFlowSelectionView.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUITableViewCell.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUserSelectionNavViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUserSelectionTableViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKUserSelectionView.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Identity/SFIdentityCoordinator.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Identity/SFIdentityData.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Instrumentation/SFInstrumentation.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Instrumentation/SFMethodInterceptor.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Instrumentation/SFSDKInstrumentationHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHost.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostDelegate.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostStorage.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFLoginViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFSDKLoginViewControllerConfig.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCoordinator.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCredentials.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthInfo.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthOrgAuthConfiguration.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthSessionRefresher.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/PushNotification/SFSDKPushNotificationDecryption.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/PushNotification/SFSDKPushNotificationError.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/PushNotification/SFSDKPushNotificationFieldsConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFNetwork.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+Blocks.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+Files.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+Notifications.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI+QueryBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestAPI.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFRestRequest.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKBatchRequest.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKBatchResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKCollectionResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKCompositeRequest.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKCompositeResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSDKPrimingRecordsResponse.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/RestAPI/SFSObjectTree.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Security/SFSDKCryptoUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/SFSDKAsyncProcessListener.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/SFSDKTestCredentialsData.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/SFSDKTestRequestListener.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Test/TestSetupUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFAuthErrorHandlerList.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccount.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccountConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccountIdentity.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/SFUserAccountManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/ViewControllers/SFDefaultUserManagementDetailViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/ViewControllers/SFDefaultUserManagementListViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/UserAccount/ViewControllers/SFDefaultUserManagementViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/NSURL+SFStringUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFApplicationHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFDirectoryManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFManagedPreferences.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFPreferences.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKAuthConfigUtil.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKAuthHelper.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKCoreLogger.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuth2.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKOAuthConstants.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKResourceUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKSoqlBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKSoslBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKSoslReturningBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKViewControllerConfig.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKWebUtils.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SalesforceSDKCoreDefines.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKAlertMessage.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKAlertMessageBuilder.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKDevInfoViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKNavigationController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKViewController.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKWindowContainer.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKWindowManager.h', 'libs/SalesforceSDKCore/SalesforceSDKCore/SalesforceSDKCore.h' sdkcore.requires_arc = true sdkcore.prefix_header_contents = '#import "SFSDKCoreLogger.h"', '#import "SalesforceSDKConstants.h"' diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKWebViewStateManager.h b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKWebViewStateManager.h deleted file mode 100644 index 23ed538ffd..0000000000 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKWebViewStateManager.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright (c) 2017-present, salesforce.com, inc. All rights reserved. - - Redistribution and use of this software in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, this list of conditions - and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of - conditions and the following disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of salesforce.com, inc. nor the names of its contributors may be used to - endorse or promote products derived from this software without specific prior written - permission of salesforce.com, inc. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITExD TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY - WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#import - -NS_ASSUME_NONNULL_BEGIN - -@class WKProcessPool; - -@interface SFSDKWebViewStateManager : NSObject - -/** - Remove all associated state with WKWebView e.g. Remove Cookies, reset WKProcessPool unless session cookie removal has been disabled. - */ -+ (void)removeSession; - -/** - Force removes all associated state with WKWebView e.g. Remove Cookies, reset WKProcessPool ingorns if session cookie removal has been disabled. - */ -+ (void)forceRemoveSession; - -/** - Disables the crreation/removal of session Cookies. The application can call the respective methods - */ -@property (class, nonatomic,assign,getter=isSessionCookieManagementDisabled) BOOL sessionCookieManagementDisabled; - -/** - Gets or sets an instance of WKProcessPool that will be used during instantiation of any WKWebView instances @discussion - Use the default instance or provide an instance to share state between WKWebView instances - */ -@property (class, strong, nonatomic, nullable) WKProcessPool *sharedProcessPool; - -/** - Clears session cookie data from the cookie store unless session cookie removal has been disabled. - */ -+ (void)resetSessionCookie; -@end - -NS_ASSUME_NONNULL_END diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKWebViewStateManager.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKWebViewStateManager.m deleted file mode 100644 index 1ff93f33b3..0000000000 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/SFSDKWebViewStateManager.m +++ /dev/null @@ -1,117 +0,0 @@ -/* - Copyright (c) 2017-present, salesforce.com, inc. All rights reserved. - - Redistribution and use of this software in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, this list of conditions - and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of - conditions and the following disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of salesforce.com, inc. nor the names of its contributors may be used to - endorse or promote products derived from this software without specific prior written - permission of salesforce.com, inc. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY - WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#import -#import "SFSDKWebViewStateManager.h" -#import "SFUserAccountManager.h" - -@implementation SFSDKWebViewStateManager - -static WKProcessPool *_processPool = nil; -static BOOL _sessionCookieManagementDisabled = NO; - -+ (void)removeSession { - - if (![NSThread isMainThread]) { - dispatch_sync(dispatch_get_main_queue(), ^{ - [SFSDKWebViewStateManager removeSession]; - }); - return; - } - - self.sharedProcessPool = nil; - - if (_sessionCookieManagementDisabled) { - [SFSDKCoreLogger d:self format:@"[%@ %@]: Cookie Management disabled. Will do nothing.", NSStringFromClass(self), NSStringFromSelector(_cmd)]; - return; - } - - //reset WKWebView related state if any - [self removeWKWebViewCookies]; - -} - -+ (void)forceRemoveSession { - - if (![NSThread isMainThread]) { - dispatch_sync(dispatch_get_main_queue(), ^{ - [SFSDKWebViewStateManager forceRemoveSession]; - }); - return; - } - - self.sharedProcessPool = nil; - - //reset WKWebView related state if any - [self removeWKWebViewCookies]; - -} - -+ (WKProcessPool *)sharedProcessPool { - if (!_processPool) { - [SFSDKCoreLogger i:self format:@"[%@ %@]: No process pool exists. Creating new instance.", NSStringFromClass(self), NSStringFromSelector(_cmd)]; - _processPool = [[WKProcessPool alloc] init]; - } - return _processPool; -} - -+ (void)setSharedProcessPool:(WKProcessPool *)sharedProcessPool { - if (sharedProcessPool != _processPool) { - [SFSDKCoreLogger i:self format:@"[%@ %@]: changing from process pool %@ to %@", NSStringFromClass(self), NSStringFromSelector(_cmd), _processPool, sharedProcessPool]; - _processPool = sharedProcessPool; - } -} - -+ (void)setSessionCookieManagementDisabled:(BOOL)sessionCookieManagementDisabled { - _sessionCookieManagementDisabled = sessionCookieManagementDisabled; -} - -+ (BOOL)isSessionCookieManagementDisabled { - return _sessionCookieManagementDisabled; -} - - -#pragma mark Private helper methods - -+ (void)removeWKWebViewCookies { - if (_sessionCookieManagementDisabled) { - [SFSDKCoreLogger d:self format:@"[%@ %@]: Cookie Management disabled. Will do nothing.", NSStringFromClass(self), NSStringFromSelector(_cmd)]; - return; - } - - WKWebsiteDataStore *dataStore = [WKWebsiteDataStore defaultDataStore]; - NSSet *websiteDataTypes = [NSSet setWithArray:@[ WKWebsiteDataTypeCookies]]; - [dataStore removeDataOfTypes:websiteDataTypes modifiedSince:[NSDate distantPast] completionHandler:^{ - // Intentionally blank because completion can't be nil - }]; -} - -+ (void)resetSessionCookie { - if (_sessionCookieManagementDisabled) { - [SFSDKCoreLogger d:self format:@"[%@ %@]: Cookie Management disabled. Will do nothing.", NSStringFromClass(self), NSStringFromSelector(_cmd)]; - return; - } - [self removeWKWebViewCookies]; -} - -@end diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/WebViewStateManager.swift b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/WebViewStateManager.swift index 053047d263..cb64f64556 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/WebViewStateManager.swift +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Common/WebViewStateManager.swift @@ -24,7 +24,6 @@ import Foundation import WebKit public class SFSDKWebViewStateManager: NSObject { - private static var processPool: WKProcessPool? private static var managementDisabled = false @objc @@ -40,8 +39,6 @@ public class SFSDKWebViewStateManager: NSObject { @objc @MainActor public static func removeSession() { - sharedProcessPool = nil - if sessionCookieManagementDisabled { SFSDKCoreLogger.d(SFSDKWebViewStateManager.self, message: "[\(Self.self) removeSession]: Cookie Management disabled. Will do nothing.") return @@ -68,26 +65,20 @@ public class SFSDKWebViewStateManager: NSObject { @objc @MainActor public static func removeSessionForcefully() async { - sharedProcessPool = nil await removeWKWebViewCookies() } + @available(*, deprecated, message: "Deprecated in Salesforce Mobile SDK 13.1 and will be removed in Salesforce Mobile SDK 14.0. WKProcessPool creation has no effect on iOS 15+ and this property will be removed.") @objc @MainActor public static var sharedProcessPool: WKProcessPool? { get { - if processPool == nil { - SFSDKCoreLogger.i(SFSDKWebViewStateManager.self, message: "[\(Self.self) sharedProcessPool]: No process pool exists. Creating new instance.") - processPool = WKProcessPool() - } - return processPool + // WKProcessPool creation is deprecated since iOS 15 and has no effect. + return nil } set { - if newValue !== processPool { - SFSDKCoreLogger.i(SFSDKWebViewStateManager.self, message: "[\(Self.self) setSharedProcessPool]: Changing from \(String(describing: processPool)) to \(String(describing: newValue))") - processPool = newValue - } + // Do nothing } } diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCoordinator.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCoordinator.m index 414bf87152..87b9581569 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCoordinator.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/OAuth/SFOAuthCoordinator.m @@ -330,7 +330,6 @@ - (BOOL)handleWebServerResponse:(NSURL *)appUrlResponse { - (WKWebView *)view { if (_view == nil) { WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; - config.processPool = SFSDKWebViewStateManager.sharedProcessPool; UIWindowScene *scene = (UIWindowScene *)self.authSession.oauthRequest.scene; CGRect bounds = scene.coordinateSpace.bounds; #if !TARGET_OS_VISION diff --git a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SalesforceSDKManagerTests.m b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SalesforceSDKManagerTests.m index b4caa208f5..6cac184e9e 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SalesforceSDKManagerTests.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/SalesforceSDKManagerTests.m @@ -45,7 +45,6 @@ @interface SalesforceSDKManagerTests : XCTestCase id _origSdkManagerFlow; SFTestSDKManagerFlow *_currentSdkManagerFlow; NSString *_origAppName; - WKProcessPool *_origProcessPool; NSString *_origBrandLoginPath; } @@ -315,23 +314,10 @@ - (void)testNativeLoginManager #pragma mark - Process Pool Tests -- (void)testDefaultProcessPoolIsNotNil +- (void)testProcessPoolIsNil { - XCTAssertNotNil(SFSDKWebViewStateManager.sharedProcessPool); -} - -- (void)testProcessPoolCannotBeNil -{ - XCTAssertNotNil(SFSDKWebViewStateManager.sharedProcessPool); - SFSDKWebViewStateManager.sharedProcessPool = nil; - XCTAssertNotNil(SFSDKWebViewStateManager.sharedProcessPool); -} - -- (void)testProcessPoolIsAssignable -{ - WKProcessPool *newPool = [[WKProcessPool alloc] init]; - SFSDKWebViewStateManager.sharedProcessPool = newPool; - XCTAssertEqualObjects(newPool, SFSDKWebViewStateManager.sharedProcessPool); + // TODO remove this test in 14.0 when we remove sharedProcessPool from SFSDKWebViewStateManager + XCTAssertNil(SFSDKWebViewStateManager.sharedProcessPool); } - (void)testBrandedLoginPath @@ -462,7 +448,6 @@ - (void)setupSdkManagerState _origCurrentUser = [SFUserAccountManager sharedInstance].currentUser; [[SFUserAccountManager sharedInstance] setCurrentUserInternal:nil]; _origAppName = SalesforceSDKManager.ailtnAppName; - _origProcessPool = SFSDKWebViewStateManager.sharedProcessPool; _origBrandLoginPath = [SalesforceSDKManager sharedManager].brandLoginPath; } @@ -475,7 +460,6 @@ - (void)restoreOrigSdkManagerState [SalesforceSDKManager sharedManager].appConfig.shouldAuthenticate = _origAuthenticateAtLaunch; [[SFUserAccountManager sharedInstance] setCurrentUserInternal:_origCurrentUser]; SalesforceSDKManager.ailtnAppName = _origAppName; - SFSDKWebViewStateManager.sharedProcessPool = _origProcessPool; [SalesforceSDKManager sharedManager].brandLoginPath = _origBrandLoginPath; } diff --git a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/WebViewStateManagerTests.swift b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/WebViewStateManagerTests.swift index a01547338c..cfbf1d9a24 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCoreTests/WebViewStateManagerTests.swift +++ b/libs/SalesforceSDKCore/SalesforceSDKCoreTests/WebViewStateManagerTests.swift @@ -14,30 +14,15 @@ final class WebViewStateManagerTests: XCTestCase { } @MainActor - func testSharedProcessPoolIsCreated() { - let pool = SFSDKWebViewStateManager.sharedProcessPool - XCTAssertNotNil(pool) - XCTAssertEqual(pool, SFSDKWebViewStateManager.sharedProcessPool) - } - - @MainActor - func testSetSharedProcessPoolUpdatesPool() { - let customPool = WKProcessPool() - SFSDKWebViewStateManager.sharedProcessPool = customPool - XCTAssertEqual(SFSDKWebViewStateManager.sharedProcessPool, customPool) + func testProcessPoolIsNil() { + // TODO remove this test in 14.0 when we remove sharedProcessPool from SFSDKWebViewStateManager + XCTAssertNil(SFSDKWebViewStateManager.sharedProcessPool) } @MainActor func testRemoveSessionForcefullyCallsCompletion() async { - // Set a custom pool to verify it's cleared - SFSDKWebViewStateManager.sharedProcessPool = WKProcessPool() - await SFSDKWebViewStateManager.removeSessionForcefully() - // Check that shared process pool is cleared (should not match the one we just set) - let currentPool = SFSDKWebViewStateManager.sharedProcessPool - XCTAssertNotNil(currentPool) - // Check that cookies were cleared let records = await WKWebsiteDataStore.default().dataRecords(ofTypes: [WKWebsiteDataTypeCookies]) XCTAssertTrue(records.isEmpty, "Expected cookies to be cleared")