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

[feature/sync-ng] Sync NG #76

Closed
wants to merge 220 commits into from
Closed

[feature/sync-ng] Sync NG #76

wants to merge 220 commits into from

Commits on Oct 1, 2019

  1. - NSString+OCPath: properties for

    	- recognizing normalized paths
    	- recognizing unnormalized / malformed paths
    - OCCore
    	- absence of parent items is now used as indication that a sub item of the absent parent item does not exist
    	- [OCCore trackItemAtPath:trackingHandler:] now returns OCErrorUnnormalizedPath when passing unnormalized paths (containing f.ex. "//", "." or "..")
    - new tests covering the new & improved functionality
    felix-schwarz committed Oct 1, 2019
    Configuration menu
    Copy the full SHA
    10bb534 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2019

  1. Configuration menu
    Copy the full SHA
    153658e View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2019

  1. OAuth2/OIDC improvements:

    - adds additional parameters to token request to ensure the retrieval of a refresh_token in case the OIDC provider isn't configured to this by default
    - improve URL construction for absolute URLs (avoid leading double-slash)
    - add new -[OCAuthenticationMethodOAuth2 retrieveEndpointInformationForConnection:] method to dynamically retrieve endpoints if needed (like for OIDC)
    felix-schwarz committed Oct 9, 2019
    Configuration menu
    Copy the full SHA
    f9e5ac8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    315f8ac View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2019

  1. Configuration menu
    Copy the full SHA
    fc9b110 View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2019

  1. Configuration menu
    Copy the full SHA
    aee34ef View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1342ed9 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2019

  1. - reduce amount logged for OCSQLiteDB background tasks

    - add additional details to OCHTTPPipeline logging
    - remove unused source code (OCWaitConditionPendingRequest)
    felix-schwarz committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    ac41108 View commit details
    Browse the repository at this point in the history
  2. OCConnection:

    - disabling background NSURLSession usage for apps running under iOS 13.1+ and having a FileProvider
    - add auto-resume flag when downloading files
    
    OCHTTPPipeline:
    - add support for auto-resume of downloads
    felix-schwarz committed Oct 21, 2019
    Configuration menu
    Copy the full SHA
    5996863 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2019

  1. Configuration menu
    Copy the full SHA
    44df508 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2019

  1. Fix typo

    felix-schwarz committed Oct 29, 2019
    Configuration menu
    Copy the full SHA
    494224c View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2019

  1. Support for customizing the User-Agent via MDM, new default User-Agent:

    - updated `CONFIGURATION.md` to document the change
    - OCAppIdentity: added appVersion and appBuildNumber properties
    - UIDevice+ModelID: category allowing to retrieve the device's model identifier
    - OCHTTPPipeline:
    	- OCHTTPPipeline.userAgent builds, caches and returns the User-Agent
    	- injects User-Agent into requests before sending them out
    	- new OCClassSettingsIdentifierHTTP and OCHTTPPipelineSettingUserAgent
    - OCDatabase: removed leftover debug message
    felix-schwarz committed Nov 11, 2019
    Configuration menu
    Copy the full SHA
    51b2524 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2019

  1. Configuration menu
    Copy the full SHA
    9f0a8c1 View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2019

  1. OCKeyValueStorage:

    - add ability to register classes for keys globally (use this sparingly)
    - avoid unneeded deserializations when notifying observers of new values: if there's no observer for a key, there's no need to deserialize it
    
    OCProcessManager:
    - make property-like method sharedProcessManager an actual property
    felix-schwarz committed Nov 28, 2019
    Configuration menu
    Copy the full SHA
    0042ecc View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2019

  1. - Introducing new OCFeatureAvailability.h file to manage feature avai…

    …lability across supported platforms
    
    	- Adapt code to compile File Provider support code only on iOS and Mac Catalyst
    felix-schwarz committed Dec 2, 2019
    Configuration menu
    Copy the full SHA
    39e20c8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8240f5f View commit details
    Browse the repository at this point in the history
  3. - added pluggable OCAuthenticationMethodOAuth2.browserSessionClass th…

    …at's used in startAuthenticationSession
    
    	- added new OCAuthenticationBrowserSession class to allow plugging in alternative OAuth2 session providers
    		- added OCAuthenticationBrowserSessionUIWebView as an implementation based on UIWebView, available right in the SDK as an option to work around issues in certain MDM software
    	- added new OCClassSettings parameter "oa2-browser-session-class" to specify a class to use as alternative OAuth2 session providers
    		- use "oc:authentication-oauth2.oa2-browser-session-class=string:UIWebView" as environment variable to use the OCAuthenticationBrowserSessionUIWebView class for OAuth2
    	- added OC_FEATURE_AVAILABLE_AUTHENTICATION_SESSION availability macro
    
    - add tvOS target and devices to ownCloudSDK target
    	- fix dependencies and availability issues
    felix-schwarz committed Dec 2, 2019
    Configuration menu
    Copy the full SHA
    edd0eab View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2019

  1. - Change openssl.framework build option to require that only extensio…

    …n-compatible APIs may be used (which silences a warning about this not being the case in a version of ownCloudApp with OCLicense*)
    felix-schwarz committed Dec 3, 2019
    Configuration menu
    Copy the full SHA
    052c13e View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2019

  1. OCCore improvements:

    - SyncEngine: add preflight completion handler support
    - LocalImport: make sure the placeholder completion handler is only called *after* the placeholder item is also in the database (fixes owncloud/enterprise#3642)
    - CreateFolder: make sure the placeholder completion handler is only called *after* the placeholder item is also in the database (for future-proofing / consistency)
    felix-schwarz committed Dec 10, 2019
    Configuration menu
    Copy the full SHA
    f01008e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    97ea487 View commit details
    Browse the repository at this point in the history
  3. - OCCore+Sharing: fixing infinite loop for share query polling

    - OCItem: add -syncActivityDescription to provide a description of the OCItem sync activity contents
    felix-schwarz committed Dec 10, 2019
    Configuration menu
    Copy the full SHA
    74d04b4 View commit details
    Browse the repository at this point in the history
  4. OCSyncAction:

    - adding .latestVersionOfLocalItem convenience attribute that retrieves (and caches) the latest version of an item
    
    OCSyncActionUpload:
    - use .latestVersionOfLocalItem instead of .localItem to fix an issue where a file was added offline, then updated offline, so that the activeSyncRecords of the OCItem got inconsistent:
    	- upload file -> item has activeSyncRecord A
    	- update file -> item has activeSyncRecords A, B
    	- A: actually upload file -> item has no activeSyncRecords
    	- B: actually update file -> item has activeSyncRecords A, spinning forever
    - fix related issue that preflight could add a placeholder item to the database more than once, by only adding the placeholder as a new item if it has no databaseID yet
    felix-schwarz committed Dec 10, 2019
    Configuration menu
    Copy the full SHA
    9d6a879 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2019

  1. Add Private Link resolution support:

    - OCConnection
    	- new method to retrieve the path for a private link
    - OCError
    	- two new error codes indicating private link formatting or resolution errors
    - OCCore
    	- new method to retrieve the OCItem for a private link
    	- make trackItem method more robust when targeting directories with non-OCPath-conforming paths (missing a trailing "/")
    - OCItem+OCXMLObjectCreation
    	- add support for extracting resolved private link paths
    - Unit Tests
    	- 4 new unit tests for the new OCConnection and OCCore methods
    felix-schwarz committed Dec 17, 2019
    Configuration menu
    Copy the full SHA
    e78a831 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2019

  1. - make OCActivityIdentifier an enum

    - expose background change scan activity via OCActivityIdentifierPendingServerScanJobsSummary activity identifier
    felix-schwarz committed Dec 19, 2019
    Configuration menu
    Copy the full SHA
    57669c1 View commit details
    Browse the repository at this point in the history

Commits on Jan 15, 2020

  1. OCBookmark/OCBookmarkManager:

    - new OCBookmarkUserInfoKey type for OCBookmark.userInfo keys
    - new OCBookmarkUserInfoKeyStatusInfo key holding the status.php contents of the last valid & non-maintenance connection to a server
    - replace left-over usage of NSUUID* with OCBookmarkUUID in OCBookmarkManager
    
    OCConnection:
    - update OCBookmark.userInfo[OCBookmarkUserInfoKeyStatusInfo] on every successful connect
    felix-schwarz committed Jan 15, 2020
    Configuration menu
    Copy the full SHA
    c8fdc79 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2020

  1. Configuration menu
    Copy the full SHA
    6276ab7 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2020

  1. OCAuthenticationMethodOpenIDConnect:

    - add "email" to scope
    - make scope configurable via ClassSettings
    - document `oidc-scope` in CONFIGURATION.md
    felix-schwarz committed Feb 7, 2020
    Configuration menu
    Copy the full SHA
    ff824a4 View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2020

  1. Configuration menu
    Copy the full SHA
    bd3fb97 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2020

  1. Configuration menu
    Copy the full SHA
    9561dd0 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2020

  1. - NSError+OCNetworkFailure:

    	- NSError category to simplify detecting NSErrors representing a network error/network failure
    - OCConnection:
    	- new OCConnection.authSignals that authentication methods can use to schedule their requests - allows the core to define conditions for these
    - OCAuthenticationMethodOAuth2:
    	- change token refresh to wait for network availability before sending token requests
    	- taking advantage of new OCConnection.authSignals
    	- fixing an unnecessary scheduling loop when no network connection is available and the token needs to be refreshed
    - OCCore:
    	- add new ready state (OCCoreStateReady) that is reached after setting up the infrastructure but before contacting the server
    	- work around compiler bug in -[OCCore stopQuery:] that could crash the app
    - OCCore+ConnectionStatus:
    	- add new network available signal (OCConnectionSignalIDNetworkAvailable)
    	- (re)starts background update checks and item task list scheduling when the connection is coming online
    - OCCoreServerStatusSignalProvider:
    	- allow providing the exact error when reporting that the connection was refused
    	- uses the localizedDescription of the error as .shortDescription, if available
    - OCCore+ItemList:
    	- faster duplicate scheduled task detection
    	- ensure OCQuerys are updated promptly even if there's already an item list task for the same path, resulting in queueing
    	- fix bug that could permanently halt the item list task scheduling queue when offline
    	- re-attempt update of item list tasks that failed and were put back in "new" state
    	- ensure thread-safe use of _itemListTasksByPath
    	- fix bug that led to deletion of scheduled background scans when offline
    	- ensure scheduled background scans only take place when network is available (utilizing new OCConnectionSignalIDNetworkAvailable)
    	- detect and avoid duplicate scheduling of jobs
    - OCCoreItemListTask:
    	- add new updateIfNew method to update only those sets whose state is "new"
    	- add support for injecting required signal options depending on whether a PROPFIND is scheduled for a query or background scan
    felix-schwarz committed Feb 24, 2020
    Configuration menu
    Copy the full SHA
    d8d62a6 View commit details
    Browse the repository at this point in the history
  2. - OCCore+ItemList: instead of reusing an existing item list task's ca…

    …che results, fetch new results in the event of a duplicate request, to ensure result consistency
    felix-schwarz committed Feb 24, 2020
    Configuration menu
    Copy the full SHA
    8ac7d53 View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2020

  1. - OCWaitConditionMetaDataRefresh: a new wait condition that pauses a …

    …sync action until the metadata of an item changes or the item becomes unavailable
    
    - OCEvent: new wakeup event (OCEventTypeWakeupSyncRecord) for use in wait conditions to wake up the Sync Engine
    - OCCore+SyncEngine: new convenience method to create and send a wakeup event
    - OCSyncActionDownload: improved handling of error 412
    	- triggers a rescan of the enclosing directory to get up-to-date metadata to base future download retries on
    	- adds a metadata refresh wait condition to pause the download until the metadata is up-to-date again
    	- checks for versions of the item to download newer than the archived version the download was scheduled with - and updates itself if necessary
    	- uses timeouts and a retry counter to avoid infinite retries in environments with frequent updates
    	- provide an improved error message to the user if the error can't be resolved internally
    felix-schwarz committed Feb 25, 2020
    Configuration menu
    Copy the full SHA
    39aa5b8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9794e10 View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2020

  1. - Fix shutdown-blocking retain loop for -[OCCore reloadShareQuery:] a…

    …nd -[OCCore _pollForSharesWithScope:item:completionHandler:]
    felix-schwarz committed Feb 26, 2020
    Configuration menu
    Copy the full SHA
    262fcb7 View commit details
    Browse the repository at this point in the history
  2. - OCConnection+Sharing: replace raw HTTP status codes with respective…

    … enums
    
    - OCConnection: provide better error message for HTTP status code 403 (DAV error message + fallback message)
    felix-schwarz committed Feb 26, 2020
    Configuration menu
    Copy the full SHA
    32aa32b View commit details
    Browse the repository at this point in the history
  3. - ensure OCConnectionSignalIDNetworkAvailable is initially set after …

    …starting the core, ensuring that OAuth2 token refresh is carried out if the OCCore is started with an expired OAuth2 token
    felix-schwarz committed Feb 26, 2020
    Configuration menu
    Copy the full SHA
    fc04176 View commit details
    Browse the repository at this point in the history
  4. - OCSyncActionDownload:

    	- descheduling now uses the latest version of the local item to remove its ID and download status (fixing a possible status corruption issue)
    	- descheduling now replaces the latest version of the local item with a newer remote version if one exists
    	- correct handling of items removed, changed, moved and renamed between initiating the download and starting it (better error 412 handling)
    - OCSyncActionUpload:
    	- now uses LocalID-based -latestVersionOfLocalItem instead of path-based -retrieveLatestVersionOfItem:withError:
    - OCWaitConditionMetaDataRefresh
    	- add support for detecting path and name changes
    	- fix OCCore retain cycle in tracking block
    - OCCore: fix possible retain cycle in -trackItem: (occurred when timed extremely badly)
    felix-schwarz committed Feb 26, 2020
    Configuration menu
    Copy the full SHA
    fcfb0aa View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2020

  1. - ensure sync records are updated in the database if wait conditions …

    …return a "Wait" state (ensuring important context info in OCWaitConditionSyncIssue is stored/preserved), fixing finding (3) in ownloud/ios-app#632
    felix-schwarz committed Mar 3, 2020
    Configuration menu
    Copy the full SHA
    f65de37 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    df6b27e View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2020

  1. Configuration menu
    Copy the full SHA
    37219c6 View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2020

  1. - OCClaim

    	- introduce concept of OCClaimLockTypes to express intent and more fine-grained control of *how* to hold onto a file
    - OCCore
    	- -registerUsageOfItem:completionHandler: changes:
    		- attempt to retrieve the latest version of an item from the cache before updating .lastUsed
    		- do not update item.lastUsed date unless the lastUsed date is older than 5 seconds to reduce load on the Sync Engine
    - OCCore+ItemUpdates
    	- implement support for different OCClaimLockTypes
    	- take advantage of now available in-place updates via download
    	- more readable/clearer log messages when local copies get removed due to newer copies on the server
    - OCSyncActionDownload
    	- add support for in-place updates of a file by downloading a newer version
    	- preserve, not overwrite claims stored in item.fileClaim
    - OCCore+SyncEngine
    	- add new method -[OCCore retrieveLatestVersionForLocalIDOfItem:error:] to synchronously retrieve an item by local ID
    - OCSyncActionUpdate
    	- switch to using -[OCCore retrieveLatestVersionForLocalIDOfItem:error:]
    felix-schwarz committed Mar 21, 2020
    Configuration menu
    Copy the full SHA
    01819fd View commit details
    Browse the repository at this point in the history
  2. - fixing typo

    felix-schwarz committed Mar 21, 2020
    Configuration menu
    Copy the full SHA
    31b0e12 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2020

  1. - OCCore: fix missing -endActivity in -registerUsageOfItem: while als…

    …o simplifying code
    
    - OCSyncActionUpload: remove redundant code (same operation performed by prepareToReplace: a few lines down)
    - OCSyncActionDownload: add additional debug output and fetch latest version of item by localID rather than path
    felix-schwarz committed Mar 22, 2020
    Configuration menu
    Copy the full SHA
    5e00f5f View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2020

  1. - move code to delete or refresh outdated local copies from OCCore+It…

    …emUpdates to a proper policy: OCItemPolicyProcessorVersionUpdates
    
    - update unit tests for new OCClaimLockType API
    - update demo-cert-new.cer and CertificateTests.m to make the certificate unit tests pass again
    - note: unit tests couldn't all be run at this time as demo.owncloud.org seems to only return internal server errors at the time of testing
    felix-schwarz committed Mar 23, 2020
    Configuration menu
    Copy the full SHA
    a433249 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2020

  1. Configuration menu
    Copy the full SHA
    429d01b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cf0897c View commit details
    Browse the repository at this point in the history
  3. - rewrote and moved concept from OCMessageQueue.h to doc/concepts/Mes…

    …sageQueue.md
    
    - make OCMessageQueue.enqueue synchronous
    felix-schwarz committed Mar 25, 2020
    Configuration menu
    Copy the full SHA
    bdb3a96 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2020

  1. - OCMessageQueue

    	- add support for OCMessageAutoResolver to allow automatic message resolution
    		- OCCore+MessageAutoresolver provides support for auto-resolving past auth errors
    		- update MessageQueue.md with updated thoughts
    	- fix lockingProcess validation bug
    - OCProcessManager
    	- add log tags and debug output for process-ping-pong
    	- bugfix: the directory where process state tracking files were placed was not created
    	- bugfix: OCProcessPing wasn't sending out a ping notification
    - OCKeyValueStore: add missing IPC updateNotification handling
    - Add "timestamp" support
    	- OCHTTPResponse.date now contains the date a response was received
    	- OCHTTPPipelineTaskMetrics.responseStartDate stores the date a response started to be received
    	- OCHTTPPipelineTask: use OCHTTPPipelineTaskMetrics.responseStartDate if available to accurately determine OCHTTPResponse.date
    	- OCHTTPPipeline: add response.date to debug output for responses
    	- NSError+OCError: add support for an "NSError.errorDate"; provide macros and methods to easily add errorDate information to NSErrors; formally clean up OCError*Key types
    	- OCConnection: use OCHTTPResponse.date where possible to provide errorDates for NSErrors
    	- OCAuthenticationMethod: provide NSError.errorDate wherever possible
    felix-schwarz committed Mar 27, 2020
    Configuration menu
    Copy the full SHA
    05c9fbf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e2c2838 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2020

  1. - OCKeyValueStore: fix cross-process change notification (previously …

    …defunct)
    
    - OCProcessManager
    	- fix ping/pong mechanism to detect if another process is still running
    	- fix creation of directory for process tracking files
    felix-schwarz committed Mar 28, 2020
    Configuration menu
    Copy the full SHA
    bd08bca View commit details
    Browse the repository at this point in the history
  2. OCAuthenticationMethodOpenIDConnect: add profile to list of scopes …

    …requested by the auth method, for ocis-oidc compatibility
    felix-schwarz committed Mar 28, 2020
    Configuration menu
    Copy the full SHA
    6a6ef91 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    309b1f1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2f7613e View commit details
    Browse the repository at this point in the history
  5. - OCCore: explicitely copy queued block in queueBlock: to make sure i…

    …ts properly retained
    
    - OCCore+SyncEngine: add detection of missing and defunct remote cores (in other processes) that could previously lead to sync records not getting processed as one process expected another process to process the record, while it wasn't really clear the other process was even listening for the event at this point
    - OCProcessManager: remove redundant code
    felix-schwarz committed Mar 28, 2020
    Configuration menu
    Copy the full SHA
    a9d3df3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    91670ca View commit details
    Browse the repository at this point in the history
  7. - SyncEngine: add -renewActiveProcessCoreRegistration and make sure a…

    …ctive process core registrations are re-added if one was erroneously removed previously
    felix-schwarz committed Mar 28, 2020
    Configuration menu
    Copy the full SHA
    8a8b1b3 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2020

  1. - OCSyncIssueTemplate

    	- new template mechanism for sync issues
    	- provides metadata to allow f.ex. issue grouping and user notification actions
    	- global registration and lookup
    - OCSyncIssue
    	- add methods to add autoChoiceErrors to choices generated from templates
    - OCSyncAction
    	- make .identifier a class-level property
    	- add APIs to support OCSyncIssueTemplate
    		- actionIssueTemplates: action-specific issue templates
    		- issueTemplates: combines auto-generated issue templates and action-specific issue templates
    	- migrated -_addIssueForCancellationAndDeschedulingToContext:title:description:impact: from OCCore to OCSyncAction, utilizing auto-generated issue templates
    	- OCSYNCACTION_REGISTER_ISSUETEMPLATES macro to register issue templates at SDK load time
    - OCSyncActionCopyMove
    	- split up into OCSyncActionCopy and OCSyncActionMove to have unique classes for both action identifiers
    - all OCSyncActions: switch creation of OCSyncIssues to using templates
    - OCMessage
    	- new properties for categories and threads
    - OCMessageQueue
    	- new method to retrieve message by UUID
    felix-schwarz committed Mar 30, 2020
    Configuration menu
    Copy the full SHA
    e77ca64 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2020

  1. - MessageQueue.md: updated with latest additions

    - OCSyncActionUpload: add missing identifier values
    - OCMessage
    	- added .removed property to allow keeping messages around until they can be removed from storage
    	- added presentation* properties to support the delivery of end notifications
    - OCMessageQueue
    	- added support for end notifications
    	- added new method to manually present a message through a presenter
    	- added OCMessageRemovedNotification notification that's broadcasted on all running processes whenever a message is removed from the queue
    	- added tracking of active presentations
    - OCMessagePresenter
    	- new OCMessagePresentationResult result for the completion of a presentation to indicate requirements for calls to -endPresentationOfMessage:
    	- refactor and add -endPresentationOfMessage: method
    - OCWaitConditionIssue: removed old issue handling code (which was already commented out)
    - code cleanup
    felix-schwarz committed Mar 31, 2020
    Configuration menu
    Copy the full SHA
    a592c18 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2020

  1. - OCRunLoopThread

    	- better handling of situations where there's more than one NSThread object for a thread
    	- new method to determine if a runloop thread is the current thread
    - OCDatabase
    	- added additional logging
    	- fixed crash in event queuing if an insert fails
    - OCSQLiteDB
    	- use OCRunLoopThread.isCurrentThread to determine if the current thread is the SQLite thread
    felix-schwarz committed Apr 3, 2020
    Configuration menu
    Copy the full SHA
    9ba0409 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5eb8ee8 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2020

  1. Configuration menu
    Copy the full SHA
    6f2aaf2 View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2020

  1. Configuration menu
    Copy the full SHA
    a932d94 View commit details
    Browse the repository at this point in the history
  2. OCAuthenticationMethod: fix potential undefined behaviour in updating…

    … _cachedAuthenticationSecret if updates happen in quick succession
    felix-schwarz committed Apr 8, 2020
    Configuration menu
    Copy the full SHA
    e2ea856 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2020

  1. - OCAuthenticationMethod: add additional logging around local and rem…

    …ote auth secret change notifications and clarify method names
    
    - OCAuthenticationMethodOAuth2: add additional logging around authentication data updates following token refreshes
    - OCBookmarkManager:
    	- add support for IPC list change notifications
    	- add new -updateBookmark: method to allow clients to signal updates of bookmarks to the bookmark manager (triggers notifications and saving)
    felix-schwarz committed Apr 14, 2020
    Configuration menu
    Copy the full SHA
    22ddbea View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2020

  1. Configuration menu
    Copy the full SHA
    cb9cc58 View commit details
    Browse the repository at this point in the history
  2. - OCBookmark: flush locally cached copy of .authenticationData if it …

    …is changed on another process (via IPC notification)
    felix-schwarz committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    9948749 View commit details
    Browse the repository at this point in the history
  3. - OCBookmark: extend authentication data flushing to app / extension …

    …resigning active status for improved security (free local copy in memory) and consistency (IPC notifications might not be delivered while app is in background)
    felix-schwarz committed Apr 15, 2020
    Configuration menu
    Copy the full SHA
    e8890f1 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2020

  1. - remove OCBookmarkManager.updatedBookmark; please use OCBookmarkMana…

    …ger.updateBookmark with additional safeguarding instead
    felix-schwarz committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    69f742a View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2020

  1. - OCTypes

    	- OCFileIDUniquePrefix is a new type representing the unique fileID prefix of an item on the server. Background is that OC 10 FileIDs are composed of an 8-digit (%08ld) number and the server's ID (apparently identical across files). That number is unique for every file and also used as the number component in OC10 private links. By using a prefix here, it's possible to support both OC10-style fileID prefixes as well as future full-length fileIDs for searching for items.
    and FileIDUnique.
    - NSURL+OCPrivateLink
    	- extracts private link FileIDs from private link URLs
    	- extracts and converts private link FileIDs to a OCFileIDUniquePrefix, which can be used to retrieve an item from the cache
    - OCCore+Sharing
    	- support for local retrieval/lookup of the item for a private link using the OCFileIDUniquePrefix returned for the private link
    	- additional debug logging
    - OCConnection+Sharing: added PROPFIND to determine type (file / folder) of resolved resource
    - OCCoreItemListTask: added additional debug logging
    - OCDatabase: new -retrieveCacheItemForFileIDUniquePrefix:includingRemoved:completionHandler: method to retrieve an item from the cache using an OCFileIDUniquePrefix
    felix-schwarz committed Apr 22, 2020
    Configuration menu
    Copy the full SHA
    12a0d85 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2020

  1. Configuration menu
    Copy the full SHA
    35ed062 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a428130 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2020

  1. Configuration menu
    Copy the full SHA
    5976f0a View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2020

  1. - OCBookmark: add bookmark-specific IPC notification when authenticat…

    …ion data is changed
    
    - OCCore: listen for bookmark-authdata-chnaged notifications (both local & IPC) and reattempt authentication or connection if a change occurs
    felix-schwarz committed Apr 26, 2020
    Configuration menu
    Copy the full SHA
    28dff54 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2020

  1. - add support for OCCoreOptionLastModifiedDate option for [OCCore imp…

    …ortFileNamed:…] and [OCCore reportLocalModificationOfItem:…], allowing to specify a custom NSDate as last modified date to use during upload
    felix-schwarz committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    8f61065 View commit details
    Browse the repository at this point in the history
  2. - OCRunLoopThread: add .uuid property and new property .isCurrentThre…

    …ad based on UUIDs rather than the NSThread pointer
    
    - OCSQLiteDB: use OCRunLoopThread.isCurrentThread for OCSQLiteDB.isOnSQLiteThread
    - OCDatabase: add additional error logging
    felix-schwarz committed Apr 27, 2020
    Configuration menu
    Copy the full SHA
    2efe9bf View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2020

  1. Configuration menu
    Copy the full SHA
    6c137c7 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2020

  1. - OCAuthenticationMethod: add new .authenticationDataKnownInvalidDate…

    … property to indicate when authentication has last failed using the current .authenticationData
    
    	- OCAuthenticationMethodBasicAuth: add support for .authenticationDataKnownInvalidDate
    	- OCAuthenticationMethodOAuth2: adopt .authenticationDataKnownInvalidDate property to avoid unnecessary token refreshes
    	- OCCore: throttle connection attempts to at most once every three seconds if invalid authentication data is to be expected
    - OCCore+ConnectionStatus: add new OCCoreConnectionStatusSignalConnecting and OCCoreConnectionStatusConnecting
    	- OCCoreConnectionStatusConnecting indicates the OCCore is in the process of connecting
    	- improved status change debug log messages
    - NSError+OCDAVError: avoid "(null)" in error descriptions
    felix-schwarz committed May 5, 2020
    Configuration menu
    Copy the full SHA
    ab36c5e View commit details
    Browse the repository at this point in the history

Commits on May 7, 2020

  1. - OCCoreItemListTask: fix issue where new OCItems that were not previ…

    …ously in the cache but are targeted directly by an OCQuery regardless could be returned with a nil .parentLocalID
    
    - OCCore+Sharing: move "else" into its own line
    felix-schwarz committed May 7, 2020
    Configuration menu
    Copy the full SHA
    97ce64b View commit details
    Browse the repository at this point in the history
  2. - add support for translation of "Sabre\DAV\Exception\NotFound" error…

    …s into OCDAVErrorNotFound error code
    felix-schwarz committed May 7, 2020
    Configuration menu
    Copy the full SHA
    513c4e4 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2020

  1. Logging improvements:

    - OCLogger:
    	- support for "force" logging, that is, to log a message even if its logLevel would normally exclude it from logging
    	- new logging methods, keeping "old" methods for compatibility with existing app sources
    	- major macro consolidation / cleanup of existing macros
    	- addition of new parametrized forced logging macros
    	- addition of new OCLoggingEnabled() macro
    - OCHTTPPipeline
    	- HTTP requests and responses are now force-logged if HTTP request/response logging is enabled
    felix-schwarz committed May 20, 2020
    Configuration menu
    Copy the full SHA
    c450ffc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8ec80c8 View commit details
    Browse the repository at this point in the history
  3. Adding cellular access options:

    - OCHTTPRequest: new .avoidCellular property controlling whether a request should not be sent over cellular (utilizing NSURLRequest.allowsCellularAccess)
    - OCConnection: new OCConnectionOptionAllowCellularKey option for up- and downloads to control cellular usage for these
    - OCCore: new OCCoreOptionAllowCellular option for up- and downloads to control cellular usage for these, to be passed to the import/localModification/download methods via the dictionary passed to the options parameter
    felix-schwarz committed May 20, 2020
    Configuration menu
    Copy the full SHA
    5827e54 View commit details
    Browse the repository at this point in the history
  4. - Adding support for cellular configuration

    	- OCCellularSwitch
    		- represents features, areas and/or categories of transfer types
    		- provides localizedName for rich representation
    		- transparently stores/retrieves settings in/from user defaults
    		- supports providing a maximum transfer size for each switch
    	- OCCellularManager
    		- provides convenient access to switches and helps determine if a transfer of a certain size is allowed for a switch
    		- adds master switch to turns off all switches and/or set a maximum transfer size for all switches
    	- OCItemPolicyProcessorAvailableOffline
    		- adds support for new OCCellularSwitchIdentifierAvailableOffline cellular switch
    felix-schwarz committed May 20, 2020
    Configuration menu
    Copy the full SHA
    92634c4 View commit details
    Browse the repository at this point in the history
  5. - OCCore: add OCCoreOptionDependsOnCellularSwitch option to make an u…

    …p-/download's usage of cellular data conditional on the status of a particular cellular switch at the time of scheduling
    
    - OCItemPolicyProcessorAvailableOffline: adopt OCCoreOptionDependsOnCellularSwitch
    - OCSyncActionDownload + OCSyncActionUpload: add support for OCCoreOptionDependsOnCellularSwitch and default to OCCellularSwitchIdentifierMaster if none is provided, fall back on OCCoreOptionAllowCellular instead if it is provided and no OCCoreOptionDependsOnCellularSwitch is provided
    - OCHTTPRequest: add additional logging to indicate when a request has been set to avoid cellular transfer
    felix-schwarz committed May 20, 2020
    Configuration menu
    Copy the full SHA
    e18c10f View commit details
    Browse the repository at this point in the history
  6. - OCCellularManager: add support for nil identifier in -cellularAcces…

    …sAllowedFor:transferSize: (falls back to master switch in that case)
    
    - OCCore:
    	- new sync action categories for wifi-only and wifi-and-cellular uploads and downloads respectively
    	- adapted concurrency budgets based on new wifi-only and wifi-and-cellular categories to ensure at least one cellular up- and download can run respectively
    felix-schwarz committed May 20, 2020
    Configuration menu
    Copy the full SHA
    2a2e8ab View commit details
    Browse the repository at this point in the history

Commits on May 22, 2020

  1. - OCLogger: add new option log.log-single-lined that breaks up mult…

    …i-lined log messages into single lines (on by default)
    
    - OCHTTP: add new option `http.prefixed-http-logging` that prefixes each line of the different parts of a HTTP request with `[info]`, `[head]` or `[body]` (on by default)
    - adjust tests to use extended request/response composition methods
    felix-schwarz committed May 22, 2020
    Configuration menu
    Copy the full SHA
    11f418c View commit details
    Browse the repository at this point in the history

Commits on May 23, 2020

  1. - OCHTTP

    	- remove `http.prefixed-http-logging` option and control that behaviour via `log.log-single-lined` instead
    	- log `[header]` instead of `[head]` to allow for easier human "parsing"
    - OCLogger
    	- add new `log.log-maximum-message-size` option to limit the size of a log message to a maximum size (off by default)
    	- OCLogWriter
    		- new OCLogLineFlags: provide additional contextual information so writers can better present multi-line log messages saved as single line log messages
    		- replace the separator with box drawing characters to visually group split multi line log messages
    felix-schwarz committed May 23, 2020
    Configuration menu
    Copy the full SHA
    c44aa8f View commit details
    Browse the repository at this point in the history

Commits on May 25, 2020

  1. Configuration menu
    Copy the full SHA
    ea47342 View commit details
    Browse the repository at this point in the history

Commits on May 26, 2020

  1. - Add new variant of -[OCCore createFolder:…] with added placeholderC…

    …ompletionHandler parameter
    
    - fix typo in code comment
    felix-schwarz committed May 26, 2020
    Configuration menu
    Copy the full SHA
    04ffe84 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    67c6aca View commit details
    Browse the repository at this point in the history

Commits on May 27, 2020

  1. - disable OC_FEATURE_AVAILABLE_UIWEBVIEW_BROWSER_SESSION by default t…

    …o remove UIWebView from standard versions
    
    - add documentation to doc/CONFIGURATION.md on how to re-enable UIWebView support via preprocessor flags
    felix-schwarz committed May 27, 2020
    Configuration menu
    Copy the full SHA
    1d41764 View commit details
    Browse the repository at this point in the history
  2. - add initial parsing support for Tus HTTP Headers and compact storag…

    …e in OCItem as UInt64 bitfield
    felix-schwarz committed May 27, 2020
    Configuration menu
    Copy the full SHA
    3be9efb View commit details
    Browse the repository at this point in the history
  3. - Add initial TUS support

    	- NSString+TUSMetadata: conversion from dictionary to Upload-Metadata - and back
    	- OCTUSHeader: new class to simplify parsing, building and conversion of TUS-related headers
    	- OCTUSJob: new class to manage the current status of a TUS upload
    	- OCTUSJobSegment: new class to abstract away file segmentation details for TUS uploads
    - OCConnection:
    	- add new OCConnectionDelegate method to inject/modify TUS capabilities / settings
    	- add new OCConnectionOptionTemporarySegmentFolderURLKey option key to provide a temporary folder to store file segments in when performing uploads via TUS
    	- add code to upload files via TUS where available
    - OCSyncActionUpload: add OCConnectionOptionTemporarySegmentFolderURLKey option to ensure persistence of temporary segment files
    - OCEvent:
    	- add OCTUSHeader, OCTUSJob and OCTUSJobSegment to .safeClasses
    	- modernize initWithCoder
    - OCHTTP:
    	- add OCHTTPStaticHeaderFields type and switch OCHTTPResponse over
    	- add OCHTTPMethodPATCH method
    felix-schwarz committed May 27, 2020
    Configuration menu
    Copy the full SHA
    d232e71 View commit details
    Browse the repository at this point in the history
  4. - OCCapabilities

    	- add support for TUS capabilities information provided via the capabilities endpoint
    - OCConnection
    	- apply OCCapabilities.tusMaxChunkSize to TUS uploads if available
    - OCTUSHeader
    	- clarify .maximumSize is the maximum file size and add new .maximumChunkSize to supply a maximum chunk size
    	- add new OCTUSCapabilityKey and OCTUSCapability types as needed by OCCapabilities
    felix-schwarz committed May 27, 2020
    Configuration menu
    Copy the full SHA
    2e5ac07 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7f7fb1b View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2020

  1. OCLogger:

    - add new logging format option
    - implement new json and json-composed formats
    - update documentation and available Xcode env vars
    felix-schwarz committed Jun 2, 2020
    Configuration menu
    Copy the full SHA
    df06ffe View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2020

  1. OCHTTP:

    - stricter MIMEType checks for content to print as text (previously also matched some xml document formats)
    felix-schwarz committed Jun 8, 2020
    Configuration menu
    Copy the full SHA
    1ea2c7c View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2020

  1. Configuration menu
    Copy the full SHA
    605348f View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2020

  1. OCConnection:

    - move upload code to OCConnection+Upload (Upload category)
    - extend TUS support with:
    	- support for creation-with-upload
    	- (currently disabled) differentiation between "small" and "large" files (OCConnection.tusSmallFileThreshold) where small files (below the threshold) are uploaded with creation-with-upload, while files above the threshold are uploaded with creation + PATCH
    	- improved log messages showing upload progress by including file size in addition to upload offset
    felix-schwarz committed Jun 10, 2020
    Configuration menu
    Copy the full SHA
    3c14568 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2020

  1. Configuration menu
    Copy the full SHA
    c0cd3b7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    901be75 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    515c800 View commit details
    Browse the repository at this point in the history
  4. - OCCore: fix issue of infinite connection retries when hitting a cer…

    …tificate or redirection error
    
    	- add new -sendError:issue: method to centralize dispatch of errors and issues to the core delegate
    	- keep track of OCIssues sent out to delegates and filter out repeat issues if the identical issue before it has yet to be acted upon
    	- integration with "connecting" and "reachable" connection status providers to keep the status in "connecting" until issues have been acted upon, or switch to "offline" if issues are rejected by the user
    - OCIssue: add new .signature property that's guaranteed to be identical for two identical issues
    felix-schwarz committed Jun 11, 2020
    Configuration menu
    Copy the full SHA
    8bb142c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    33e574b View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2020

  1. MessageQueue improvements:

    - OCIssue+SyncIssue: remove unused code
    - OCMessageChoice: new class (and new superclass for OCSyncIssueChoice)
    - OCSyncIssueTemplate: refactor as OCMessageTemplate for general purpose usage; move from sync issues to messages
    - extended OCEvent.safeClasses with OCMessage and OCMessageChoice
    - OCMessage advanceds:
    	- new originIdentifier property: allow handlers to easier determine if a message belongs to them
    	- new representedObject property: allow custom senders of messages to attach an object or tracking info to a message that they need for handling later
    	- rename .handled to .resolved for increased clarity
    	- new autoRemove property: allow indication of auto-removal once .resolved, so dummy response handlers just to remove one-off messages are not needed.
    	- new .localizedTitle, .localizedDescription and .choices methods that either use internally stored values or bridge to .syncIssue
    	- additional initializers for non-sync-issue OCMessage creation
    - OCMessageQueue: override auto-created Swift choices for add/remove methods to avoid name conflicts going forward
    felix-schwarz committed Jun 14, 2020
    Configuration menu
    Copy the full SHA
    c67224c View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2020

  1. - OCConnection: add new connection.force-background-url-sessions sett…

    …ing to force-enable background sessions in the app
    
    - in code, change all instances of the usage of the term "master" to "main"
    felix-schwarz committed Jun 17, 2020
    Configuration menu
    Copy the full SHA
    0b18289 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    883e9df View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    db140dc View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cf05e36 View commit details
    Browse the repository at this point in the history
  5. - Remove unused code

    felix-schwarz committed Jun 17, 2020
    Configuration menu
    Copy the full SHA
    9b2527e View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2020

  1. Configuration menu
    Copy the full SHA
    e615809 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2020

  1. Configuration menu
    Copy the full SHA
    d2e6d6a View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2020

  1. - removal of iOS 11 support (including SFAuthenticationSession) and u…

    …pdating to iOS 12+ APIs, adaption of docs where needed
    
    - migration from MobileCoreServices to CoreServices
    - new OCNetworkMonitor class to provide centralized monitoring of the network status, incl. cellular and general availability
    	- refactor OCCoreNetworkPathMonitorSignalProvider into OCCoreNetworkMonitorSignalProvider to use OCNetworkMonitor instead
    - Cellular Switches improvements
    	- broadcasting / cross-process propagation of cellular switch changes
    	- assessment of current "live" connectivity situation to allow determining when connectivity is allowed, and if it should be flagged as WiFi-only or not
    	- integration with MDM setting for cellular usage
    - HTTP Pipeline advances
    	- support for cellular switches at HTTP Request level via new OCHTTPRequest.requiredCellularSwitch property
    		- uses OCCellularManager to determine when and how to schedule requests with the NSURLSession
    	- integration with OCNetworkMonitor and OCCellularManager to run scheduling whenever the connection or a switch changes status
    - OCConnection
    	- add new OCConnectionOptionRequiredCellularSwitchKey option for up- and downloads
    	- consolidation of cellular options - and OCConnection.allowCellular in particular
    - OCCore
    	- up- and download actions use OCConnectionOptionRequiredCellularSwitchKey to pass OCCoreOptionDependsOnCellularSwitch on to the connection layer
    	- consolidation of available cellular options
    	- status signal provider now provides more nuanced error descriptions, incl. for Network Unavailability
    - various small code improvements
    felix-schwarz committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    aaa955f View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2020

  1. - construct .well-known endpoint URLs relative to the root directory …

    …of the OC instance (as per owncloud/appliance#81) rather than the absolute root (/) URL
    felix-schwarz committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    fc43fe0 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2020

  1. - OCSyncRecordActivity:

    	- add additional "waiting for user" status message and update status also if there are wait conditions
    - merge remote-tracking branch 'origin/develop' into feature/message-queue
    felix-schwarz committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    b33a045 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2020

  1. Configuration menu
    Copy the full SHA
    ad8509a View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2020

  1. Configuration menu
    Copy the full SHA
    735339b View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2020

  1. added tvOS deployment target

    hosy committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    117537a View commit details
    Browse the repository at this point in the history
  2. - remove commented out, dead code

    - add OCCoreSyncInstructionStopAndSideline to OCCore to allow making waiting for user interaction budget-neutral
    - consider localID in addition to fileID when trying to identify a removed file in an existing list
    felix-schwarz committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    084648c View commit details
    Browse the repository at this point in the history
  3. - OCConnection+Upload: return correct error code if there's no suffic…

    …ient storage (previously returned "item already exists")
    felix-schwarz committed Jul 8, 2020
    Configuration menu
    Copy the full SHA
    67cc87c View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2020

  1. Configuration menu
    Copy the full SHA
    12911b0 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2020

  1. - make number of background folder scan PROPFIND requests configurabl…

    …e (and increase from 1 to 2)
    felix-schwarz committed Jul 11, 2020
    Configuration menu
    Copy the full SHA
    86e1300 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    093bb1e View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2020

  1. Configuration menu
    Copy the full SHA
    2b42d74 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c2730cd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    157c5b5 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2020

  1. Configuration menu
    Copy the full SHA
    a106e25 View commit details
    Browse the repository at this point in the history
  2. OCQuery/OCCore:

    - fix incorrect OCQueryStateTargetRemoved query state assignment
    - fix item-based queries state initialization (+ continuous updates)
    - OCQuery.description now provides a summary of item- and path-based OCQueries
    felix-schwarz committed Jul 14, 2020
    Configuration menu
    Copy the full SHA
    4219d19 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8d0d663 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2020

  1. OCCore/OCQuery: additional checks and improved handling of queries ta…

    …rgeting folders that don't exist any longer
    felix-schwarz committed Jul 15, 2020
    Configuration menu
    Copy the full SHA
    1a93f7e View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2020

  1. Configuration menu
    Copy the full SHA
    24b91e8 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2020

  1. Configuration menu
    Copy the full SHA
    78f0b22 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2020

  1. - OCBookmark: add .certificateUserApprovalUpdateNotificationName and …

    …-postCertificateUserApprovalUpdateNotification to signal and observe changes to certificate approvals by the user that are relevant to the bookmark
    
    - OCConnection
    	- replace delegate calls originating from certificate check issues with observing .certificateUserApprovalUpdateNotificationName notifications calling the respective OCConnectionDelegate method
    	- move certificate check code to OCHTTPPolicyBookmark
    - OCSyncActionDownload: explicitly enable file protection / encryption for temporary and vault item directories
    - OCEvent: add OCHTTPPolicy to safeClasses
    - OCHTTPPipeline:
    	- factoring out certificate validation delegate method into a separate OCHTTPPipelinePolicyHandler protocol
    	- extend OCHTTPPipelinePartitionHandler protocol with additional instruction parameter for post processing
    	- explicitly enable file protection / encryption for partition and temporary response directories
    - OCVault: new .httpPipelineRootURL property for better abstraction
    - OCHTTPPipelineManager
    	- .backendURL now uses OCVault.httpPipelineRootURL
    - OCHTTPPolicy
    	- encapsulate HTTP security policies, starting with certificate validation
    	- identifier makes policies identifiable (important for storage / management)
    	- can be used independently from OCConnection and OCCore, allowing more HTTP handling without either and addresses an issue where badly timed OCCore shutdowns could cause a false negative certificate check result
    	- implements the OCHTTPPipelinePolicyHandler protocol
    - OCHTTPPolicyBookmark
    	- implements an OCBookmarks HTTP policies (can also be derived from and track an OCConnection's bookmark)
    - OCHTTPPolicyManager
    	- keeps track of global pre- and post-processing HTTP policies that can be used to establish HTTP security policies for all requests
    	- allows persisting and managing policies
    	- ensures policies stay in sync across processes (via OCKeyValueStore)
    	- can compile applicable policies based on OCHTTPPipelinePartitionID
    felix-schwarz committed Jul 21, 2020
    Configuration menu
    Copy the full SHA
    3ffb50b View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2020

  1. - OCHTTPPipeline

    	- detect if an HTTP response likely doesn't need to be delivered on the same process and waiting for that just delays dependant other parts
    	- special OCHTTPPipelineTaskAnyBundleID bundle ID to allow scheduling a HTTP request/deliver a response on any process
    - OCBackgroundManager
    	- fix "leak" of OCBackgroundTask objects on processes without UIApplication instances / foreground/background concept
    	- perform submitted blocks immediately on processes without UIApplication instances / foreground/background concept
    felix-schwarz committed Jul 23, 2020
    Configuration menu
    Copy the full SHA
    a3c4855 View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2020

  1. Configuration menu
    Copy the full SHA
    1e2e353 View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2020

  1. Configuration menu
    Copy the full SHA
    26108a9 View commit details
    Browse the repository at this point in the history
  2. Reduce memory usage:

    - avoid unintended capture of surrounding objects in OCHTTPPipeline, OCKeyvalueStore and OCSQLiteDB OCBackgroundTask.expirationHandlers
    - nilify OCBackgroundTask.expirationHandlers in app extensions to avoid unnecessary memory waste
    - use weak self reference in OCBackgroundTask.endWhenDeallocating() to allow disposal of OCBackgroundTask as soon as possible
    felix-schwarz committed Aug 3, 2020
    Configuration menu
    Copy the full SHA
    b1140d5 View commit details
    Browse the repository at this point in the history
  3. Further reduction of peak memory usage

    - NSArray+OCSegmentedProcessing:
    	- allows transformations and processing of an array of objects in chunks
    - OCUser:
    	- improved hash and isEqual implementations, now also taking emailAddress and forceIsRemote into account
    - OCDatabase:
    	- take advantage of NSArray+OCSegmentedProcessing to process item additions, changes or deletions in segments and reduce peak memory consumption
    	- retrieval of items from the database maintains a cache of OCUser instances assigned to OCItem.owner and reuses identical instances, reducing peak memory consumption
    felix-schwarz committed Aug 3, 2020
    Configuration menu
    Copy the full SHA
    5b96922 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2020

  1. - Project: use compiler default as language standard (not gnu++14 and…

    … gnu11)
    
    - OCHTTPPipeline: clarify optionality of instructionForFinishedTask in OCHTTPPipelinePartitionHandler
    - OCUser: refine hash value
    - OCCache: add clearCache method and switch memory warning handling over to it
    - OCSQLite:
    	- add statement caching to memory and CPU consumption, using a claim/dropClaim method duo in OCSQLiteStatement and caching in OCSQLiteDB
    	- add memory statistics logging method for debugging purposes
    	- add missing copyright notice
    	- add debug description to OCSQLiteStatement
    	- add method to flush transaction cache to disk
    	- add OCSQLiteQueryString type for better source readability
    - OCDatabase: add cache flushing and memory statistics logging to [add|update|remove]CacheItems methods to limit SQLite memory usage in the File Provider
    - Unit tests:
    	- fix HTTPPipelineTests outdated delegate definition usage
    felix-schwarz committed Aug 6, 2020
    Configuration menu
    Copy the full SHA
    bf98db8 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2020

  1. - fix super-rare OCProcessManager.sharedProcessManager dispatch_once …

    …concurrency bug
    
    - OCCore+CommandLocalImport: properly handle OCCoreDuplicateNameStyleNone name style
    - OCSQLite: reset cached OCSQLiteStatements at the earliest possible time, to avoid file locks being held for an unnecessarily long time and avoid other processes running into busy timeouts
    felix-schwarz committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    0b60dbd View commit details
    Browse the repository at this point in the history
  2. [feature/diagnostic] Diagnostic support (#68)

    * - OCDatabase: fix for OCEvent retrieval: no longer ignore OCProcessSession
    - OCDiagnostic subsystem
    	- OCDiagnosticContext provides necessary objects / context for diagnostic collection
    	- OCDiagnosticSource defines a protocol that objects capable of providing diagnostic information should follow
    		- implement support for OCSyncAction and OCSyncRecord
    	- OCDiagnosticNode encapsulates diagnostic info as
    		- info: label + content
    		- action: label + a block
    		- group: label + child nodes
    	- built-in support to turn group nodes into Markdown/HTML
    - NSArray+OCNullable: remove NSNull entries from an array
    
    * - OCSyncIssue + OCSyncIssueChoice: now return meaningful .descriptions
    - OCSyncRecord+Diagnostic: add actions to
    	- trigger a Sync Engine run
    	- reschedule a sync record
    	- deschedule (remove) a sync record
    - OCWaitCondition: add support for OCDiagnosticSource
    - OCHTTPPipeline: add support for OCDiagnosticSource
    - OCHTTPPipelineTask: add support for OCDiagnosticSource
    - OCDiagnosticNode: add context option to OCDiagnosticNodeAction block type
    - OCCore: remove commented out, obsolete code
    
    * - OCDiagnosticNode: optimize markdown/HTML layout for better legibility, as a true hierarchy
    - OCSyncRecord+Diagnostic: change labels to better accomodate the new hierarchical markdown/HTML layout
    
    * - add OCDiagnosticNode.identifier to "tag" nodes for later retrieval
    - add OCDiagnosticSource support for OCDatabase
    
    * - add new OCScanJobActivity class to make scan status details accessible as properties
    - OCCore+ItemList:
    	- issue and update OCScanJobActivity instead of plain OCActivity
    	- change label from "Scanning server for updates…" to "Fetching updates…" and remove scan progress counts
    - OCDatabase+Diagnostic: add scheduled folder scan count to diagnostic output
    felix-schwarz committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    07e7eb2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    edd2bcc View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2020

  1. - do not count root folder in folder diagnostic counter

    - added localization for diagnostic strings
    hosy committed Aug 12, 2020
    Configuration menu
    Copy the full SHA
    6092316 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fa38a86 View commit details
    Browse the repository at this point in the history
  3. fixed localized string

    hosy committed Aug 12, 2020
    Configuration menu
    Copy the full SHA
    18d8fa7 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2020

  1. - Add OCBookmark diagnostics support

    - fix bug where OCCoreItemLists would remain in "New" state indefinitely if scheduled while the connection is unavailable
    felix-schwarz committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    c176228 View commit details
    Browse the repository at this point in the history
  2. - start implementation of cookie persistence support

    - remove default cookie filtering
    felix-schwarz committed Aug 14, 2020
    Configuration menu
    Copy the full SHA
    c85d1bf View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2020

  1. Configuration menu
    Copy the full SHA
    5ad9e5f View commit details
    Browse the repository at this point in the history
  2. added missing localized string

    hosy committed Aug 17, 2020
    Configuration menu
    Copy the full SHA
    4116ecc View commit details
    Browse the repository at this point in the history
  3. fixed localization string

    hosy committed Aug 17, 2020
    Configuration menu
    Copy the full SHA
    3eb8213 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5c37da2 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2020

  1. Configuration menu
    Copy the full SHA
    164fbef View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2020

  1. Configuration menu
    Copy the full SHA
    e5fe132 View commit details
    Browse the repository at this point in the history
  2. OCConnection:

    - add option "connection.transparent-temporary-redirect", on by default,
    - add support for transparently resending requests with the new destination in response to 307 status responses pointing to the same host
    - fix rescheduling bug in OCHTTPPipeline
    - implement redirection test bed / unit tests in CoreRedirectTests
    felix-schwarz committed Aug 19, 2020
    Configuration menu
    Copy the full SHA
    1ad79e7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f8405c5 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2020

  1. - make OCHTTPRequest.effectiveURL reset part of the scrubbing for res…

    …cheduling, so that this internal handling of the value doesn't leak to other components
    felix-schwarz committed Aug 20, 2020
    Configuration menu
    Copy the full SHA
    7e469d2 View commit details
    Browse the repository at this point in the history
  2. ownCloudMocking:

    - factor out cookie redirect simulator from CoreRedirectTests into OCHostSimulator+CookieRedirect category, so it can be used in the app, too
    - add nullability annotations for OCHostSimulator
    
    ownCloudSDK:
    - OCHTTPRequest: add support for OCHTTPRequestRedirectPolicy to allow per-request control over how redirects should be handled
    - OCConnection+Authentication and OCAuthenticationMethodOpenIDConnect: adopt new OCHTTPRequestRedirectPolicy
    - extend transparent redirection handling to requests returning 302 (previously only 307)
    
    ownCloudSDKTests:
    - fix CertificateTests by updating demo-cert-new.cer
    - replace customized OCHostSimulator in CoreRedirectTests with OCHostSimulator+CookieRedirect and slim down implementation
    - add new testConnectionSetupCookieRedirect test covering setup of a new bookmark with active "cookie redirect"
    felix-schwarz committed Aug 20, 2020
    Configuration menu
    Copy the full SHA
    1ca6eea View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2020

  1. - add additional "verbose" log level and move the most notorious debu…

    …g log statements that fit the category to the verbose level
    felix-schwarz committed Aug 28, 2020
    Configuration menu
    Copy the full SHA
    987ab71 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2020

  1. - OCDatabase: add new .thumbnailDatabaseURL property to retrieve the …

    …URL of the thumbnail database after a successful open
    
    - OCDatabase+Diagnostic:
    	- add information on database sizes
    	- add option on a manual VACUUM of both the main and thumbnail database
    felix-schwarz committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    7a826ff View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2020

  1. - OCConnection: ensure HTTP requests that are rescheduled due to redi…

    …rections use different X-Request-IDs
    
    - OCCore: additional debug message if cookie support is enabled, identifying the type of cookie storage
    - OCClassSettings
    	- OCClassSettingsSupport: new optional method +publicClassSettingsIdentifiers to identify which settings should be considered public information
    	- OCClassSettingsSource:
    		- new settingsSourceIdentifier to identify sources other than by class name
    		- implementation in subclasses of OCClassSettingsFlatSource
    	- new -settingsSnapshotForClasses and -settingsSummaryForClasses methods to retrieve a snapshot of settings as structured data, or as printable summary, including all values provided by sources as well as the computed value
    - project: assign test to SDK framework
    felix-schwarz committed Sep 4, 2020
    Configuration menu
    Copy the full SHA
    e47944f View commit details
    Browse the repository at this point in the history
  2. - OCConnection+Upload: add force replace option

    - OCSyncActionUpload:
    	- add "Replace existing" option
    	- implement "Replace existing" option by cancelling the existing action and scheduling a new action
    	- remove previous, commented-out implementation
    	- add check for pre-existing item in scheduling
    	- improve error handling when internal item copying fails
    	- add missing localizations
    felix-schwarz committed Sep 4, 2020
    Configuration menu
    Copy the full SHA
    91dc343 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2020

  1. - fix uninitialized partitionHandler pointer and resulting possible l…

    …ack of policyHandlers when setting up a new connection
    felix-schwarz committed Sep 9, 2020
    Configuration menu
    Copy the full SHA
    77af6b3 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2020

  1. - OCClassSettings

    	- new method to insert additional class settings sources relative to other sources based on their OCClassSettingsSourceIdentifier
    	- provider proper OCClassSettingsSourceIdentifier for OCClassSettingsFlatSourceEnvironment, OCClassSettingsFlatSourceManagedConfiguration and OCClassSettingsUserPreferences
    felix-schwarz committed Sep 11, 2020
    Configuration menu
    Copy the full SHA
    38e556c View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2020

  1. - added class settings support for root OCAuthenticationMethod class

    - moved browser session related setting from OCAuthenticationMethodOAuth2/oa2-browser-session-class to OCAuthenticationMethod/browser-session-class
    - added new browser-session-prefers-ephermal setting
    - updated MDM documentation and fixed a confusing typo
    - include OCAuthenticationMethod class settings in class settings overview at the start of the log
    felix-schwarz committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    01a687e View commit details
    Browse the repository at this point in the history
  2. - Fix typo

    felix-schwarz committed Sep 22, 2020
    Configuration menu
    Copy the full SHA
    f868051 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2020

  1. - fix issue where the first HTTP request sent by the app did not incl…

    …ude the desired User-Agent header
    felix-schwarz committed Sep 24, 2020
    Configuration menu
    Copy the full SHA
    6c22500 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2ad19b9 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2020

  1. Configuration menu
    Copy the full SHA
    d2e4c6e View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2020

  1. Configuration menu
    Copy the full SHA
    745fd40 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2020

  1. Configuration menu
    Copy the full SHA
    c8fa288 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7d92331 View commit details
    Browse the repository at this point in the history
  3. - OCCore SyncEngine:

    	- add initial support for OCSignalManager, OCSignal and OCSignalProvider
    	- re-route resultHandlers over OCSignalManager
    - OCSignalManager:
    	- remove index parameter for block
    	- fix serialization error
    felix-schwarz committed Sep 29, 2020
    Configuration menu
    Copy the full SHA
    cca351e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cb707e6 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2020

  1. - extend account diagnostic action "Invalidate Login Data" with the c…

    …apability to invalidate OAuth2/OIDC tokens
    felix-schwarz committed Oct 3, 2020
    Configuration menu
    Copy the full SHA
    3bec119 View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2020

  1. - OCLogger:

    	- add forceSyncWrite option to force immediate writing of a log file entry
    	- add new macro variants for forceSyncWrite
    	- OCLogFileWriter: make LogIntro forced and use forceSyncWrite to exclude chances of rerouting
    felix-schwarz committed Oct 5, 2020
    Configuration menu
    Copy the full SHA
    a1c0b60 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b6ebb06 View commit details
    Browse the repository at this point in the history
  3. - address issue of (empty) log files being created even if logging is…

    … turned off, leading to empty log files and a missing LogIntro header when subsequently turning on logging
    
    	- OCLogger: only open all log writers if logging is actually enabled
    	- OCLogFileWriter: only reopen log file after rotation if logging is actually enabled
    	- log files are now only written once logging is turned on and the first log message hits the file
    felix-schwarz committed Oct 5, 2020
    Configuration menu
    Copy the full SHA
    3885a92 View commit details
    Browse the repository at this point in the history
  4. - OCClassSettingsUserPreferences

    	- new versioned, atomic migration mechanism to perform migration tasks, aimed primarily to support atomic, safe migration from user defaults to OCClassSettingsUserPreferences, but can also be used for other purposes
    - OCLogger:
    	- adopt OCClassSettingsUserPreferencesSupport and handle log level setting from shared user defaults to class settings
    	- use new OCClassSettingsUserPreferences versioned migration mechanism to safely migrate the setting storage
    felix-schwarz committed Oct 5, 2020
    Configuration menu
    Copy the full SHA
    7499823 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2020

  1. - OCHTTPPipeline: add line "Req signals" with required signals to HTT…

    …P request and response log output
    felix-schwarz committed Oct 7, 2020
    Configuration menu
    Copy the full SHA
    a51631d View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2020

  1. - Host Simulator improvements

    	- move OCHostSimulator from ownCloudMocking to ownCloudSDK
    	- add OCHostSimulatorManager to manage host simulators added via OCExtensions
    	- implement Host Simulator extensions for general 404 and download 500 responses
    	- allow configuration of host simulators via class settings
    - Bookmark improvements
    	- store metadata on when and with which app version a bookmark was created
    - Connection improvements
    	- NSError+OCDAVError: add support for sabre/DAV messages of "s:header" type; add new OCDAVErrorItemDoesNotExist error code
    	- download: improve handling of 404 and 412 errors (including 412-specific differentiation between different versions and lack of file)
    	- add new test for 412+ special error message handling
    - Message Queue improvements
    	- add support for muted messages, which are queued but not individually presented
    - Core / Sync Engine improvements
    	- built-in support for OCHostSimulatorManager
    	- improved handling of action cancellation (closing gaps)
    	- add sync record processing trigger as wait condition hit timeouts provided through a new nextRetryDate accessor
    	- provide "Retry" and "Cancel" options as default for failed downloads
    	- improved behaviour for automatically triggered downloads
    		- silently remove if file no longer exists
    		- retry 3 times for most HTTP errors before emitting a message
    		- emitted messages are queued muted, so they don't interfere with the user's work, but are visible and actionable
    	- sync actions: add internalsDescription accessor to allow addition of internal information to the description without having to entirely rewrite it
    	- add mute support to sync issues
    - OCExtensions
    	- add extensionMetadata dictionary with standardized keys for name, description, version, copyright
    - Diagnostic improvements
    	- replace <> with {} for markdown output so repeated copy & paste won't lead to unwanted tags
    felix-schwarz committed Oct 14, 2020
    Configuration menu
    Copy the full SHA
    be30922 View commit details
    Browse the repository at this point in the history
  2. - download: improve behaviour around deleted files targeted for downl…

    …oad by marking them as deleted in the local database as well
    felix-schwarz committed Oct 14, 2020
    Configuration menu
    Copy the full SHA
    d02aa45 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2020

  1. - fix issue where updates to different OCBookmark instances would not…

    … trigger a connection retry - even if they shared the same UUID
    felix-schwarz committed Oct 19, 2020
    Configuration menu
    Copy the full SHA
    3fcbbe5 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2020

  1. - add metadata support to OCClassSettings

    	- add class settings metadata to
    		- OCAuthenticationMethod (including dynamic compilation of authentication methods and auto completion)
    		- OCAuthenticationMethodOAuth2
    		- OCAuthenticationMethodOpenIDConnect
    		- OCConnection
    		- OCCore
    		- OCHTTPPipeline
    		- OCItemPolicyProcessorDownloadExpiration
    		- OCItemPolicyProcessorVacuum
    		- OCLogger (including dynamic compilation of valid log options and auto completion)
    	- fill documentation gaps in the process
    	- externalize long documentation to new doc/class-settings-sdk folder
    	- switch OCAuthenticationMethodOpenIDConnect to  -registerOCClassSettingsDefaults:metadata: and extend OAuthenticationMethod auto registration macros as needed
    	- add support for registering additional metadata alongside additional defaults
    	- preparation for supporting dynamic metadata changes and metadata caching in a next step
    	- new test case SettingsTests.testMetadataAvailability that fails if metadata is missing and outputs a list of OCClassSettingsFlatIdentifiers for which the metadata is missing
    - add validation support to OCClassSettings
    	- using new OCClassSettingsErrorDomain error domain and OCClassSettingsErrorCode codes
    	- checks type and value checks against checks, logging errors where they are encountered
    	- converts types where possible (f.ex. "1" to 1)
    	- supports custom validation mechanisms
    	- caches results to keep overhead as low as possible
    - add convenience NSString category to compose/split new OCClassSettingsFlatIdentifier strings (like f.ex. "connection.allow-plain-http" <-> "connection" + "allow-plain-http")
    - fix format string in OCSyncActionUpdate issue description
    - switch OCCore+Thumbnails OCClassSettings key access to more modern API
    - OCAuthenticationMethod+UIAppExtension: replace with NSClassFromString() to allow compilation as module and fix other Xcode 12 warnings
    - fix (most) Xcode 12 warnings
    felix-schwarz committed Oct 25, 2020
    Configuration menu
    Copy the full SHA
    dcb885d View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2020

  1. - OCHostSimulator: add "five-seconds-of-404" simulator extension that…

    … returns 404 to all requests for five seconds
    
    - OCCore: handle HTTP status >= 400 as "connection refused"-type errors, including retries and automated handling rather than bringing up issues
    felix-schwarz committed Oct 26, 2020
    Configuration menu
    Copy the full SHA
    60096a6 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2020

  1. - OCWaitCondition: add support for localized description for what is …

    …being waited for
    
    - OCSyncRecordActivity: add support for new localized description of wait conditions, use where available
    - OCSyncActionDownload: provide localized description for wait conditions on retries of available offline downloads and metadata refresh waits
    felix-schwarz committed Oct 27, 2020
    Configuration menu
    Copy the full SHA
    084c48b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fd60067 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2020

  1. - add auto-generated CONFIGURATION.json to doc directory

    - NSArray+ObjCRuntime: convenience method retrieving all classes implementing an ObjC protocol from the ObjC runtime
    - OCClassSettings+Documentation: utility methods to retrieve, compose and prepare metadata for use in documentation, including conversion from JSON-unsafe types to JSON-safe types
    - OCClassSettings+Metadata:
    	- introducing additional keys for flat identifier, class identifier, class name
    	- -keysForClass: now checks for an actual implementation (to avoid exceptions in case of NSProxy subclasses)
    - SettingsTest: new "testUpdateConfigurationJSONFromMetadata" unit test updating the CONFIGURATION.json file automatically
    felix-schwarz committed Oct 30, 2020
    Configuration menu
    Copy the full SHA
    867f23b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    051e807 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2020

  1. - project: Xcode update, increase deployment target to iOS and tvOS 12.0

    - OCHTTPPipeline:
    	- perform signal check delegation even if no signals are provided for a request (to perform other checks)
    - OCConnection:
    	- add enforcement of OCConnectionAllowedAuthenticationMethodIDs / "connection-allowed-authentication-methods"
    	- return OCErrorAuthorizationMethodNotAllowed in case an OCBookmark is based on an authentication method that is not allowed
    - OCCore:
    	- add handling for OCErrorAuthorizationMethodNotAllowed that effectively puts the core offline, preventing any communication with the server
    felix-schwarz committed Nov 2, 2020
    Configuration menu
    Copy the full SHA
    ae87864 View commit details
    Browse the repository at this point in the history
  2. - OCAuthenticationMethodOpenIDConnect: use defaults registration to a…

    …dd auth method settings
    
    - OCAuthenticationMethodOAuth2:
    	- add request to token endpoint to detect availability
    	- if response is a redirection or 404, consider OAuth2 to be unavailable
    felix-schwarz committed Nov 2, 2020
    Configuration menu
    Copy the full SHA
    4854f1c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8e6c8ea View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    727654f View commit details
    Browse the repository at this point in the history
  5. - add class settings metadata support to OCHostSimulatorManager

    - add missing OCExtensionMetadataKey symbols/values
    felix-schwarz committed Nov 2, 2020
    Configuration menu
    Copy the full SHA
    1257d92 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2020

  1. Configuration menu
    Copy the full SHA
    a8ff02e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    22b700d View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2020

  1. - OCClassSettings metadata and documentation improvements

    	- add option to sort possible values
    	- add option to expand possible values (so they're uniform and easier to process by other tools)
    	- sort doc dictionary arrays by flat identifier for a deterministic order
    	- remove duplicate entries produced by class inheritance
    - update CONFIGURATION.json from unit test, using improvements
    felix-schwarz committed Nov 9, 2020
    Configuration menu
    Copy the full SHA
    49323be View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2020

  1. - OCClassSettings:

    	- implement OCClassSettingsFlag support including caching
    		- implement OCClassSettingsFlagIsPrivate support as fallback if publicClassSettingsIdentifiers is not implemented by a class
    		- implement OCClassSettingsFlagAllowUserPreferences and OCClassSettingsFlagDenyUserPreferences support if allowUserPreferenceForClassSettingsKey is not implemented by a class
    	- improved logging with tags
    	- properly fall back to previous value instead of default value when validation fails for a value provided by one amongst several sources
    	- fix deadlock bug related to logging settings
    	- allow validation without caching result
    	- OCClassSettingsFlatSource and subclasses: use OCClassSettingsFlatIdentifier instead of NSString in the respective method definitions
    	- implement unit tests
    - OCConnection:
    	- replace "connection" string with OCClassSettingsIdentifierConnection
    	- replace allowUserPreferenceForClassSettingsKey method with class settings metadata flags
    - OCLogger:
    	- replace allowUserPreferenceForClassSettingsKey method with class settings metadata flags
    	- fix potential dead-lock when retrieving toggles to compile metadata dynamically
    felix-schwarz committed Nov 13, 2020
    Configuration menu
    Copy the full SHA
    8250d7e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1b8ba79 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2020

  1. Configuration menu
    Copy the full SHA
    732c63e View commit details
    Browse the repository at this point in the history
  2. Added wipe function allowing deleting all keychain items (#73)

    Co-authored-by: Michael Neuwert <mn@neuwert-media.com>
    mneuwert and Michael Neuwert committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    3c40553 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2020

  1. - OCClassSetting:

    	- new API for observing updates to a class setting or select attributes
    	- long-term goal: unified, simplified interface to OCClassSettings
    - OCClassSettings:
    	- OCClassSettingsChangedNotification: posted with object=nil if any value could have changed, posted with the flat identifier if a specific setting has changed
    	- provides a standard way to notify interested parties about changes
    	- posts OCClassSettingsChangedNotification whenever sources are added or removed
    - OCClassSettingsUserPreferences
    	- adds new APIs to check if users are allowed to change a setting via OCClassSettingsUserPreferences methods
    	- adds new MDM options to allow or disallow users to change specific settings
    	- posts OCClassSettingsChangedNotification whenever a value is changed by the user
    - OCClassSettingsFlatSourceManagedConfiguration:
    	- posts OCClassSettingsChangedNotification whenever new values are pushed via MDM
    - OCKeychain:
    	- return an NSError for -wipe instead of a BOOL
    felix-schwarz committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    a8682ec View commit details
    Browse the repository at this point in the history
  2. - OCConnection, OCLogger: add missing OCClassSettingsFlagDenyUserPref…

    …erences flags
    
    - OCClassSetting:
    	- fix enumeration error
    	- add unit tests
    	- make include public
    felix-schwarz committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    5da545d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    71d5378 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2020

  1. Configuration menu
    Copy the full SHA
    14c5728 View commit details
    Browse the repository at this point in the history
  2. - OCHTTP:

    	- clarify and extend redirection policies:
    		- "forbidden" becomes "handle locally"
    		- "validate connection" - triggering the connection validator - becomes the new default
    	- extended redirection support in OCHTTPRequest:
    		- new maximumRedirectionDepth property to indicate maximum number of redirections to follow
    		- new redirectionHistory property keeping track of NSURLs queried as part of redirection handling
    - OCConnection:
    	- new status validation method +validateStatus:; replace all instances of checks for maintenance mode with it
    	- add Connection Validator that kicks in if a HTTP Request with "ValidateConnection" redirection policy receives a redirection response
    	- demote OCConnectionTransparentTemporaryRedirect option from "advanced" to "debug", turn off by default
    - OCHostSimulator
    	- move OCHostSimulator+CookieRedirect from ownCloudMocking to ownCloudSDK/OCHostSimulator+BuiltIn
    	- add new "simple-apm" cookie redirection simulating APM Host Simulator Extension and rebuild documentation
    - OCCore:
    	- enable cookie support by default
    felix-schwarz committed Nov 20, 2020
    Configuration menu
    Copy the full SHA
    a2638ec View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2020

  1. - OCAuthenticationMethod:

    	- switch from detection URLs to detection requests
    	- use Detection ID to consolidate requests prior to performing them
    	- authentication methods now perform a PROPFIND rather than a GET request on the WebDAV endpoint
    	- when contacting the bare WebDAV endpoint, the URL is now slash-terminated
    - Connection Validator
    	- new error code for failed validation
    	- preparations for second stage of validation if first stage fails (but commented out for now as it's not clear that's needed and would complicate the implementation by multiplying the possible outcomes)
    	- code comment describing how the Connection Validator works
    	- handle failed validation like maintenance mode, but with custom error in status line
    - add "recovering-apm" Host Simulator that makes bogus redirects for the first 30 seconds, then becomes a "simple-apm" that wants to set cookies
    felix-schwarz committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    2ef20d3 View commit details
    Browse the repository at this point in the history
  2. - OCConnection: make Connection Validator more thread-safe, add rate …

    …limiter to avoid excessive retries
    felix-schwarz committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    55cd256 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2020

  1. Configuration menu
    Copy the full SHA
    a03eac1 View commit details
    Browse the repository at this point in the history
  2. - OCBookmark:

    	- allow setting the internally tracked _lastUsername with new method
    
    - OCAuthenticationMethodOAuth2 + OCAuthenticationMethodOpenIDConnect:
    	- add headers to prefill user name where available and supported by the server
    	- comment out support for OAuth2 due to crashes in the web view in Simulator and on device
    felix-schwarz committed Nov 27, 2020
    Configuration menu
    Copy the full SHA
    f18262e View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2020

  1. Configuration menu
    Copy the full SHA
    0753a70 View commit details
    Browse the repository at this point in the history
  2. - OCConnection:

    	- implement Connection Validator II - following the latest flow diagram
    	- update code comments explaining the structure
    	- factor out the Connection Validator to its own method
    felix-schwarz committed Nov 30, 2020
    Configuration menu
    Copy the full SHA
    1d1b4fb View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2020

  1. Configuration menu
    Copy the full SHA
    c1bb0b1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d96c8a3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4fc9525 View commit details
    Browse the repository at this point in the history

Commits on Dec 18, 2020

  1. - OCConnection + OCHTTPPipeline: add debug output for cancellation of…

    … non-critical requests
    
    - OCProcessManager: add additional observation and debug output for tracking app/extension state
    felix-schwarz committed Dec 18, 2020
    Configuration menu
    Copy the full SHA
    68f0b64 View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2020

  1. Configuration menu
    Copy the full SHA
    67b4e67 View commit details
    Browse the repository at this point in the history

Commits on Dec 23, 2020

  1. - OCHTTP improvements

    	- centralize management of X-Request-ID header in OCHTTPRequest
    	- replace all header field strings with OCHTTPHeaderFieldNames
    	- extended and more uniform log messages to make following a request through the OCHTTPPipeline much easier
    	- move the majority of debug messages to the verbose level
    	- log old and new X-Request-ID when recreating it, to allow connecting the dots
    	- avoid requesting the full header dictionary when just interested in a single one
    	- log type (Bearer, Basic, …) from Authorization header and only replace the actually confidential part with "[redacted]"
    	- add debugging description to OCHTTPRequest
    - OCHTTP bugfixes
    	- ensure that only one representation (object or data) is kept in an OCHTTPPipelineTask at a time, to avoid inconsistencies
    	- drop request data if requestID is changed
    - OCLogger
    	- migrate privacy mask and log level to OCClassSetting + observation
    	- fix bug where log level changes didn't propagate across processes
    - OCClassSettings
    	- fix bugs related to change notifications timing
    	- implement cross-process notifications for user settings
    - General
    	- move frequently logged debug messages that are very specific and aren't needed 98% of the time to the verbose logging level
    felix-schwarz committed Dec 23, 2020
    Configuration menu
    Copy the full SHA
    e079850 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d91cfbc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c559ae7 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2020

  1. Configuration menu
    Copy the full SHA
    cf2172c View commit details
    Browse the repository at this point in the history