wiki:Internals_Hackathon

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


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:


  • 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.

Last modified 12 years ago Last modified on May 23, 2012 12:20:03 PM