WebKit Contributor Meeting 2012 - LayoutTestController Functions That We Want to Move to Internals
Guidelines:
- Everything that makes many ports skip tests should be considered.
- Functions that use internal WebKit methods whose only purpose is to support DRT (as opposed as providing public API) should be strongly considered.
- Functions that rely upon a significant amount of WebKit code may be best to remain in LayoutTestController, so that this code would be tested.
We'll file bugs in Tools/Tests component as we go, too.
Meta bug for tracking the ongoing work: http://wkb.ug/87284
- counterValueForElementById http://wkb.ug/84406
- encodedAudioData
Mac DRT has a StorageTrackerDelegate to test WebStorageManager, but no other port seems to have this. Related LayoutTestController functions that are implemented in Mac only are:
- deleteAllLocalStorage
- syncLocalStorage
- observeStorageTrackerNotifications
- deleteLocalStorageForOrigin
- localStorageDiskUsageForOrigin
- originsWithLocalStorage
(morrita: This set of APIs looks a part of real Mac WebKit API. See: http://wkb.ug/51878)
Animation Controller DRT APIs that can be ported to internals as these APIs depend on core frame pointer. Currently implemented for - Chromium, Gtk, Efl, Qt, Mac, Win
- pauseAnimationAtTimeOnElementWithId
- pauseTransitionAtTimeOnElementWithId
- numberOfActiveAnimations
- suspendAnimations
- resumeAnimations
- setTextDirection - calls a WebKit API on Mac and Chromium, but it seems that other than passing it through to WebCore, it doesn't do much else http://wkb.ug/84509
The following methods are not implemented in all ports and should be considered for move to Internals:
- computedStyleIncludingVisitedInfo
- dispatchPendingLoadRequests
- displayInvalidatedRegion
- disableAutoResizeMode, enableAutoResizeMode (from http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp)
- printToPDF - No Implementation, no usage, No Testcase.
(ap) I think that it's implemented in Mac DRT, and it was used when originally added in r35078, but printing/media-queries-print.html test appears to be using another method now.
- addDisallowedURL - not implemented consistently, and webcore (not browser/app) specific
- addURLToRedirect
- addUserScript
- addUserStyleSheet
- callShouldCloseOnWebView
- apiTestNewWindowDataLoadBaseURL - remove? unused.
- apiTestGoToCurrentBackForwardItem - remove? unused.
- setCloseRemainingWindowWhenComplete - Any ports doesn't implement this function.
- setDefersLoading - This method is implemented by QT, EFL ports. And also, this API depends on core page setting method.
- setEditingBehavior - implemented by almost ports. However, this methods just set a setEditingBehaviorType() method of setting in core page.
- setFrameFlatteningEnabled - This method just enables a frame flattening option via setting method of core page. (http://wkb.ug/87149)
- setPrivateBrowsingEnabled - This method just enables/disables via setting method of core page. (http://wkb.ug/87278)
- setPluginsEnabled - This method just enables/disables via setting method of core page. (http://wkb.ug/87296)
- allowRoundingHacks
The following methods are specific to Chromium port only and have independent implementation of WorkQueue* in chromium/LayoutTestController.cpp AFAIK These APIs are added to test the queueing of Chromium's UI thread and Worker thread. In each API, WorkQueue is creating a test_shell to execute a task typically by adding to WorkQueue.
- queueBackNavigation
- queueForwardNavigation
- queueLoad
- queueLoadHTMLString
- queueLoadingScript
- queueNonLoadingScript
- queueReload
- testOnscreen - no port is using it?
- testRepaint - only Chromium uses it
- setCacheModel: Implemented only by GTK which is internally calling WebCore/MemoryCache & WebCore/PageCache API. Rest all port not implemented. Can be considered for moving to Internals.
- setAutoFilled: Blackberry, GTK, QT, Win & Chromium ports used WebKit interface to set the value finally in HTMLInputElement. Rest port don't implement. Strongly can be considered for moving to Internals.
- setAuthorAndUserStyleEnabled: EFL, GTK, Blackberry and WX don't implement. QT uses WebKit interface to set the value in WebCore settings object. Chromium & Win set it to their preferences object which sets all preferences in one call. Can be checked for moving to Internals but some reservations because of Win & Chromium ports.
- setApplicationCacheOriginQuota: Only QT implements it in WebKit interface layer. Rest all port don't have implementation. Strongly can be considered for moving to Internals.
- setAppCacheMaxSize: Chromium, Win, Blackberrym, Wx has no implementation. GTK, Efl & QT has implementation through WebKit interface layer which hooks into WebCore API. Can be moved to Internals.