Used in whyIsNotSynchronizedWithServer to collect information about synchronous timers
Data structure returned is of the form:
[
{ "timerId": timerId, "callback": callbackFnString }, ...
]
Parameters:
timers
Return:
Object - array of timer records that are synchronous
whyIsNotSynchronizedWithServer
public Object whyIsNotSynchronizedWithServer(Object config)
This is called by isSynchronizedWithServer() so that the logic only exists in one place.
We want this method per ADFPage instance, so this method cannot be static
Parameters:
config
-
object containing all relevant information needed to check for ADF page synchronization
Key | Meaning
automationEnabled | If automation is enabled or not
dts | Data transfer service object
phase | Current phase of ADF page
eventQueueLength | Length of event queue
isAttachmentMode | If ADF page is in attachment mode or not
initializationComplete | If ADF page initialization is complete or not
partialTargets | If ADF page has any partial targets or not
startADSClientIdCount | ADS client Id count
windowEventHeaderMap | Window header map
inHandleRichResponse | If ADF page is handling rich response or not
partialRequestRedirect | If ADF page is handling partial redirect request
inDeliverQueuedServerEvents | If ADF page has queued server events
inDeliverQueuedEvents | If ADF page has queued events
waitingForDocumentUnload | If ADF page is waiting for document unload
areComponentsLoaded | If all components in ADF page are loaded
waitingForDescendantResize | If ADF page is waiting for resize
waitingForIncompleteImages | If ADF page is waiting for any images to download
hasEventsToDeliver | If ADF page is delivering queued events
waitingForAnimation | If ADF page is waiting for animation to complete
areSynchronousTimersCleared | If ADF page is running any synchronous timers
inGetRequestNavigation | If ADF page is doing any get request navigation
restDataService | AdfRestDataService object
timers | Handle to the timers set on ADF page
Return:
Object - null if ADF page is synced
else an object of the form:
{
"reason": reason,
"message": humanReadableMessageForReason,
"details": [arrayContainingOptionalDetails] (if any),
"nested": (if any) (typically returns busy status of dialog's ADF page)
}