wiki:Internals_Hackathon

Version 26 (modified by tomz@codeaurora.org, 12 years ago) (diff)

--

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.


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

The following methods are not implemented in all ports and should be considered for move to Internals:

  • computedStyleIncludingVisitedInfo
  • dispatchPendingLoadRequests
  • displayInvalidatedRegion

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

  • allowRoundingHacks

The following methods are specific to Chromium port only and have independent implementation of WorkQueue* in chromium/LayoutTestController.cpp

  • queueBackNavigation
  • queueForwardNavigation
  • queueLoad
  • queueLoadHTMLString
  • queueLoadingScript
  • queueNonLoadingScript
  • queueReload