== WebKit Contributor Meeting 2012 - LayoutTestController Functions That We Want to Move to Internals == Guidelines:[[BR]] - Everything that makes many ports skip tests should be considered.[[BR]] - Functions that use internal WebKit methods whose only purpose is to support DRT (as opposed as providing public API) should be strongly considered.[[BR]] - Functions that rely upon a significant amount of WebKit code may be best to remain in LayoutTestController, so that this code would be tested. [[BR]][[BR]] 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. * setPluginsEnabled - This method just enables/disables via setting method of core page. ---- * 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 ---- (kphanee) * 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. ----