profile/ivi/webkit-efl.git
12 years agoMissing implementation of textInputController.setComposition() causes bot redness
jonlee@apple.com [Mon, 25 Jun 2012 18:05:13 +0000 (18:05 +0000)]
Missing implementation of textInputController.setComposition() causes bot redness
https://bugs.webkit.org/show_bug.cgi?id=89845

* platform/mac/Skipped: Skip fast/forms/input-set-composition-scroll.html

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121171 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[EFL] Implement Network Information API
gyuyoung.kim@samsung.com [Mon, 25 Jun 2012 18:01:42 +0000 (18:01 +0000)]
[EFL] Implement Network Information API
https://bugs.webkit.org/show_bug.cgi?id=87067

Reviewed by Kenneth Rohde Christiansen.

.:

* Source/cmake/FindEFL.cmake: Find eeze library in build system.

Source/WebKit:

* PlatformEfl.cmake: Add dependency of eeze library.

Source/WebKit/efl:

Implement NetworkInfoClientEfl.cpp using eeze library. However, this patch only
supports this feature on ethernet interface.

* WebCoreSupport/NetworkInfoClientEfl.cpp:
(WebCore):
(WebCore::NetworkInfoClientEfl::NetworkInfoClientEfl):
(WebCore::NetworkInfoClientEfl::startUpdating):
(WebCore::NetworkInfoClientEfl::stopUpdating):
(WebCore::NetworkInfoClientEfl::bandwidth):
(WebCore::NetworkInfoClientEfl::metered):
* WebCoreSupport/NetworkInfoClientEfl.h:
(NetworkInfoClientEfl):

Tools:

* efl/jhbuild.modules: Add eeze library dependency.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121170 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[GTK] Add graphviz debug output for the gstreamer video pipeline.
commit-queue@webkit.org [Mon, 25 Jun 2012 17:47:44 +0000 (17:47 +0000)]
[GTK] Add graphviz debug output for the gstreamer video pipeline.
https://bugs.webkit.org/show_bug.cgi?id=89660

Patch by Allan Xavier <allan.xavier@undefinedltd.co.uk> on 2012-06-25
Reviewed by Martin Robinson.

Dump the current video pipeline as a graphviz DOT file when the
pipeline state changes or when an error occours.

No new tests as the change is only useful for debugging.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121169 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoASSERT(m_wheelEventHandlerCount > 0) can fire
abarth@webkit.org [Mon, 25 Jun 2012 17:39:07 +0000 (17:39 +0000)]
ASSERT(m_wheelEventHandlerCount > 0) can fire
https://bugs.webkit.org/show_bug.cgi?id=89856

Reviewed by Eric Seidel.

Source/WebCore:

When a node with a wheel or a touch event is moved from one document to
another, the didAddMumble/didRemoveMumble calls do not balance because
they're called on different documents. This patch twiddles the counts
appropriately in that case.

Test: fast/events/move-element-with-wheel-and-touch-event-listeners.html

* dom/EventNames.h:
(WebCore::EventNames::isTouchEventType):
(EventNames):
(WebCore::EventNames::touchEventNames):
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):

LayoutTests:

Test what happens when we move a node with wheel and/or touch events
from one document to another. Prior to this patch, this test triggers
ASSERT(m_wheelEventHandlerCount > 0) in Document.cpp.

* fast/events/move-element-with-wheel-and-touch-event-listeners-expected.txt: Added.
* fast/events/move-element-with-wheel-and-touch-event-listeners.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121166 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoSplit map* functions out of StyleResolver into a helper object
eric@webkit.org [Mon, 25 Jun 2012 17:36:38 +0000 (17:36 +0000)]
Split map* functions out of StyleResolver into a helper object
https://bugs.webkit.org/show_bug.cgi?id=89881

Reviewed by Daniel Bates.

These map* functions are completely independent of the rest of StyleResolver
and only exist to serve StyleBuilder.
CSSToStyleMap doesn't even want to have a StyleResolver pointer, but
currently needs one to access the resolve-lifetime caches for the
current resolve.  Once we split out that per-resolve state into
some sort of ResolveState/ResolveInfo object (akin to PaintInfo/LayoutState)
then this object will be even simpler.

No behavioral change, thus no tests.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSToStyleMap.cpp: Added.
(WebCore):
(WebCore::CSSToStyleMap::style):
(WebCore::CSSToStyleMap::rootElementStyle):
(WebCore::CSSToStyleMap::useSVGZoomRules):
(WebCore::CSSToStyleMap::styleImage):
(WebCore::CSSToStyleMap::mapFillAttachment):
(WebCore::CSSToStyleMap::mapFillClip):
(WebCore::CSSToStyleMap::mapFillComposite):
(WebCore::CSSToStyleMap::mapFillOrigin):
(WebCore::CSSToStyleMap::mapFillImage):
(WebCore::CSSToStyleMap::mapFillRepeatX):
(WebCore::CSSToStyleMap::mapFillRepeatY):
(WebCore::CSSToStyleMap::mapFillSize):
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
(WebCore::CSSToStyleMap::mapAnimationDelay):
(WebCore::CSSToStyleMap::mapAnimationDirection):
(WebCore::CSSToStyleMap::mapAnimationDuration):
(WebCore::CSSToStyleMap::mapAnimationFillMode):
(WebCore::CSSToStyleMap::mapAnimationIterationCount):
(WebCore::CSSToStyleMap::mapAnimationName):
(WebCore::CSSToStyleMap::mapAnimationPlayState):
(WebCore::CSSToStyleMap::mapAnimationProperty):
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
(WebCore::CSSToStyleMap::mapNinePieceImage):
(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):
(WebCore::CSSToStyleMap::mapNinePieceImageRepeat):
* css/CSSToStyleMap.h: Added.
(WebCore):
(CSSToStyleMap):
(WebCore::CSSToStyleMap::CSSToStyleMap):
* css/StyleBuilder.cpp:
(WebCore::ApplyPropertyFillLayer::applyValue):
(WebCore::ApplyPropertyBorderImage::applyValue):
(WebCore::ApplyPropertyBorderImageModifier::applyValue):
(WebCore):
(WebCore::ApplyPropertyAnimation::map):
(WebCore::StyleBuilder::StyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::collectMatchingRulesForList):
* css/StyleResolver.h:
(WebCore::StyleResolver::styleMap):
(StyleResolver):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121164 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[EFL] Support screenDepth() functionality.
gyuyoung.kim@samsung.com [Mon, 25 Jun 2012 17:14:41 +0000 (17:14 +0000)]
[EFL] Support screenDepth() functionality.
https://bugs.webkit.org/show_bug.cgi?id=89423

Reviewed by Kenneth Rohde Christiansen.

Support screenDepth() based on ecore_x_window_depth_get(). This functionality may be used by
both WebKit1 and WebKit2. So, concrete function is placed into EflScreenUtilities.cpp.

This patch can't support existing test cases. Because, EFL DumpRenderTree works without X11 window
by default.

* platform/efl/EflScreenUtilities.cpp:
(WebCore::getPixelDepth):
(WebCore):
* platform/efl/EflScreenUtilities.h:
(WebCore):
* platform/efl/PlatformScreenEfl.cpp:
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Shadow] Executing Italic and InsertUnorderedList in Shadow DOM causes a crash
shinyak@chromium.org [Mon, 25 Jun 2012 16:59:25 +0000 (16:59 +0000)]
[Shadow] Executing Italic and InsertUnorderedList in Shadow DOM causes a crash
https://bugs.webkit.org/show_bug.cgi?id=88495

Reviewed by Ryosuke Niwa.

Source/WebCore:

InsertionPoint::removedFrom(insertionPoint) tries to find its owner ElementShadow from
parentNode or insertionPoint. If the parent node exsits but we cannot reach ElementShadow from
the parent node, InsertionPoint::removedFrom does not try to find ElementShadow anymore.

It's OK if the ElementShadow is being destructed, but there is a case ElementShadow is not being
destructed in editing. In this case, we should try to find ElementShadow from insertionPoint.
Otherwise it will bring inconsistency to Shadow DOM, and causes a crash.

Actually checking the existence of parentNode() does not make any sense. We should get
shadowRoot() directly.

Test: editing/shadow/insertorderedlist-crash.html

* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::removedFrom):

LayoutTests:

* editing/shadow/insertorderedlist-crash-expected.txt: Added.
* editing/shadow/insertorderedlist-crash.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121162 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoRemove responseBlob field from XMLHttpResponse.idl
kinuko@chromium.org [Mon, 25 Jun 2012 16:56:21 +0000 (16:56 +0000)]
Remove responseBlob field from XMLHttpResponse.idl
https://bugs.webkit.org/show_bug.cgi?id=89859

Reviewed by Eric Seidel.

Remove XMLHttpResponse.responseBlob from XMLHttpResponse.idl, which
has only been exposed for a very limited time (since r120574) but
probably should not have been done so since XHR2 spec no longer has
the field.  A quick search also showed that no one seems to be using the field.

(More context: the field was added long time ago with a runtime guard
which had never been enabled until the guard was removed in r120574
to remove XHR_RESPONSE_BLOB on all platforms.)

No new tests as no tests use this field.

* xml/XMLHttpRequest.idl: Removed responseBlob field.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121161 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoHeap-use-after-free in WebKit::MainThreadFileSystemCallbacks
kinuko@chromium.org [Mon, 25 Jun 2012 16:30:49 +0000 (16:30 +0000)]
Heap-use-after-free in WebKit::MainThreadFileSystemCallbacks
https://bugs.webkit.org/show_bug.cgi?id=87019

Reviewed by David Levin.

Should not access the CallbacksBridge's member field after it's freed.

* src/WorkerFileSystemCallbacksBridge.cpp:
(WebKit::WorkerFileSystemCallbacksBridge::cleanUpAfterCallback):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121160 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoAdd static qualifier to GraphicsContext3D::extractImageData.
commit-queue@webkit.org [Mon, 25 Jun 2012 15:40:43 +0000 (15:40 +0000)]
Add static qualifier to GraphicsContext3D::extractImageData.
https://bugs.webkit.org/show_bug.cgi?id=89866

GraphicsContext3D::extractImageData does not use member variables.
Each platform Accelerated-compositing implementation can use this method in
order to get pixel data of an Image or ImageBuffer object.

Patch by Huang Dongsung <luxtella@company100.net> on 2012-06-25
Reviewed by Noam Rosenthal.

No new tests since there's no change on code behavior.

* platform/graphics/GraphicsContext3D.h:
(GraphicsContext3D):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121159 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[BlackBerry] Use AIR controls if client doesn't support HTML control
commit-queue@webkit.org [Mon, 25 Jun 2012 15:27:54 +0000 (15:27 +0000)]
[BlackBerry] Use AIR controls if client doesn't support HTML control
https://bugs.webkit.org/show_bug.cgi?id=89777

Patch by Crystal Zhang <haizhang@rim.com> on 2012-06-25
Reviewed by Yong Li.

Currently HTML controls depend on client implementing CreateWindow event, for those clients
that don't implement CreateWindow event, use old AIR controls so we don't break them.

PR 163818.

Internal reviewed by Mike Fenton.

* Api/WebPageClient.h:
* WebCoreSupport/ChromeClientBlackBerry.cpp:
(WebCore::ChromeClientBlackBerry::openPagePopup):
* WebCoreSupport/PagePopupBlackBerry.cpp:
(WebCore::PagePopupBlackBerry::sendCreatePopupWebViewRequest):
* WebCoreSupport/PagePopupBlackBerry.h:
(PagePopupBlackBerry):
* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::openSelectPopup):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121158 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Qt] Unskip 3D transform tests.
commit-queue@webkit.org [Mon, 25 Jun 2012 15:14:41 +0000 (15:14 +0000)]
[Qt] Unskip 3D transform tests.
https://bugs.webkit.org/show_bug.cgi?id=89878

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-06-25
Reviewed by Csaba Osztrogonác.

* platform/qt-5.0-wk2/Skipped:
* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121157 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoWeb Inspector: toggling style should not start property edit first.
pfeldman@chromium.org [Mon, 25 Jun 2012 14:36:00 +0000 (14:36 +0000)]
Web Inspector: toggling style should not start property edit first.
https://bugs.webkit.org/show_bug.cgi?id=89834

Reviewed by Yury Semikhatsky.

Source/WebCore:

Otherwise property flickers upon toggling.

* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype):

LayoutTests:

* http/tests/inspector/elements-test.js:
(initialize_ElementTest.InspectorTest.dumpSelectedElementStyles):
(initialize_ElementTest.InspectorTest.toggleStylePropertyEnabled):
* inspector/styles/styles-disable-inherited.html:
* inspector/styles/styles-disable-then-change.html:
* inspector/styles/styles-disable-then-delete.html:
* inspector/styles/styles-disable-then-enable.html:
* inspector/styles/undo-property-toggle.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121156 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[BlackBerry] Require text editable element to be enabled for VKB
rwlbuis@webkit.org [Mon, 25 Jun 2012 14:30:10 +0000 (14:30 +0000)]
[BlackBerry] Require text editable element to be enabled for VKB
https://bugs.webkit.org/show_bug.cgi?id=89876

Reviewed by Yong Li.

After bug 58837 got in, children of <fieldset> now can inherit the disabled
state of the fieldset. When trying for instance fast/forms/fieldset/fieldset-disabled.html,
it can be seen that when they are visually disabled, the input handling can still be triggered. So
add an extra check to isTextBasedContentEditableElement that the element is enabled.

Reviewed internally by Mike Fenton.

* WebKitSupport/DOMSupport.cpp:
(BlackBerry::WebKit::DOMSupport::isTextBasedContentEditableElement):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121155 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoWeb Inspector: "Emulate Touch Events" breaks selecting elements with "touchstart...
apavlov@chromium.org [Mon, 25 Jun 2012 14:26:48 +0000 (14:26 +0000)]
Web Inspector: "Emulate Touch Events" breaks selecting elements with "touchstart" event listeners for inspection.
https://bugs.webkit.org/show_bug.cgi?id=89861

Reviewed by Vsevolod Vlasov.

Upon a mousepress, Inspector should be queried for the "Inspect element" mode up-front,
before dispatching a synthetic "touchstart" event.

* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121154 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed. Update NEWS and configure.ac for 1.9.4 release
carlosgc@webkit.org [Mon, 25 Jun 2012 13:38:19 +0000 (13:38 +0000)]
Unreviewed. Update NEWS and configure.ac for 1.9.4 release

.:

* configure.ac: Bump version number.

Source/WebKit/gtk:

* NEWS: Added release notes for 1.9.4.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121152 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[WK2][Qt][EFL] Move LayerBackingStore into common directory
commit-queue@webkit.org [Mon, 25 Jun 2012 13:16:24 +0000 (13:16 +0000)]
[WK2][Qt][EFL] Move LayerBackingStore into common directory
https://bugs.webkit.org/show_bug.cgi?id=89838

Patch by YoungTaeck Song <youngtaeck.song@samsung.com> on 2012-06-25
Reviewed by Noam Rosenthal.

Move LayerBackingStore into 'Source/WebKit2/UIProcess/texmap' to be used by both Qt and Efl.

* Target.pri:
* UIProcess/texmap/LayerBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp.
(WebKit):
(WebKit::LayerBackingStoreTile::swapBuffers):
(WebKit::LayerBackingStoreTile::setBackBuffer):
(WebKit::LayerBackingStore::createTile):
(WebKit::LayerBackingStore::removeTile):
(WebKit::LayerBackingStore::updateTile):
(WebKit::LayerBackingStore::texture):
(WebKit::LayerBackingStore::paintToTextureMapper):
(WebKit::LayerBackingStore::commitTileOperations):
* UIProcess/texmap/LayerBackingStore.h: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.h.
(WebKit):
(LayerBackingStoreTile):
(WebKit::LayerBackingStoreTile::LayerBackingStoreTile):
(WebKit::LayerBackingStoreTile::scale):
(LayerBackingStore):
(WebKit::LayerBackingStore::create):
(WebKit::LayerBackingStore::LayerBackingStore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121151 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoWeb Inspector: [Styles] Cannot visually set caret before the first CSS property name...
apavlov@chromium.org [Mon, 25 Jun 2012 12:41:44 +0000 (12:41 +0000)]
Web Inspector: [Styles] Cannot visually set caret before the first CSS property name character
https://bugs.webkit.org/show_bug.cgi?id=89869

Reviewed by Vsevolod Vlasov.

The issue was due to the "editbox" SPAN having a negative margin, thus the leftmost caret position was getting clipped
by a synthetic SPAN container added by the TextPrompt.

* inspector/front-end/elementsPanel.css:
(.styles-section .properties > li.child-editing .webkit-css-property):
(.styles-section .properties li.child-editing):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121150 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoMicrodata: document.getItems(typeNames) is not returning Microdata items when typeNam...
arko@motorola.com [Mon, 25 Jun 2012 12:09:33 +0000 (12:09 +0000)]
Microdata: document.getItems(typeNames) is not returning Microdata items when typeNames argument is not specified.
https://bugs.webkit.org/show_bug.cgi?id=89757

Reviewed by Ryosuke Niwa.

With r120979 change, it creates MicroDataItemList with m_typeNames = "http://webkit.org/microdata/undefinedItemType",
when typeNames argument is not specified. Modified the check in nodeMatches() accordingly.

This fixes the following failing tests :
    fast/dom/MicroData/002.html
    fast/dom/MicroData/003.html
    fast/dom/MicroData/007.html
    fast/dom/MicroData/009.html
    fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html

* dom/Document.cpp:
(WebCore::Document::getItems): Use undefinedItemType to avoid String conversion.
* dom/MicroDataItemList.cpp:
(WebCore::MicroDataItemList::undefinedItemType): It defines "http://webkit.org/microdata/undefinedItemType"
string using DEFINE_STATIC_LOCAL to avoid String conversion.
(WebCore::MicroDataItemList::MicroDataItemList): Use document() method of DynamicNodeList to obtain
document of owner element.
(WebCore::MicroDataItemList::~MicroDataItemList): Removed originalTypeNames null check.
(WebCore::MicroDataItemList::nodeMatches): Return true if originalTypeNames is equal to undefinedItemType.
* dom/MicroDataItemList.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121149 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed. Fix make distcheck.
carlosgc@webkit.org [Mon, 25 Jun 2012 11:55:26 +0000 (11:55 +0000)]
Unreviewed. Fix make distcheck.

* GNUmakefile.list.am: Add missing header file.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Qt] Fix Win32 debug build
hausmann@webkit.org [Mon, 25 Jun 2012 11:21:06 +0000 (11:21 +0000)]
[Qt] Fix Win32 debug build

Reviewed by Tor Arne Vestbø.

Source/WebCore:

Consistently use use_all_in_one_files when requested in the configuration. The previous
Linux condition has been moved to Tools/qmake/mkspecs/features/unix/default_pre.prf

* Target.pri:

Tools:

Consolidate use_all_in_one_files into mac/unix/win32 default_pre.prf.

* qmake/mkspecs/features/unix/default_pre.prf:
* qmake/mkspecs/features/win32/default_pre.prf: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121147 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoFix rewinding of SVG animations
pdr@google.com [Mon, 25 Jun 2012 10:31:06 +0000 (10:31 +0000)]
Fix rewinding of SVG animations
https://bugs.webkit.org/show_bug.cgi?id=89846

Reviewed by Nikolas Zimmermann.

Source/WebCore:

r116451 introduced an optimization to only clear non-freeze animations when
calling setCurrentTime (via reset()). This causes fill=freeze animations to
not clear which breaks rewinding of an animation.

In the presence of multiple animations, we reset the first animation to the
base value and accumulate all results into that; this masked the problem because
2 animations were required to hit the bug (our tests primarily cover just 1).

Test: svg/animations/animate-reset-freeze.html

* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::reset):

LayoutTests:

* svg/animations/animate-reset-freeze-expected.txt: Added.
* svg/animations/animate-reset-freeze.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121146 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoChange the serialization format of form control state to make the code simple
tkent@chromium.org [Mon, 25 Jun 2012 09:43:07 +0000 (09:43 +0000)]
Change the serialization format of form control state to make the code simple
https://bugs.webkit.org/show_bug.cgi?id=89847

Reviewed by Hajime Morita.

Source/WebCore:

We used multiple strings to represent state of single form control. It
made the code complex. We change the serialization format so that one
CSV string represents state.

Examples in the old format:
    "0"
    "1", "value"
    "3", "value1", "value2,value2", "value3"

Examples in the new format:
    ""
    ",value"
    ",value1,value2\,value2,value3"

Test: fast/forms/state-restore-various-values.html

* html/FormController.cpp:
(WebCore::FormControlState::serialize):
Generate comma-separated string.
',' in a value is serialized as "\,".
We changed the signature because we don't need the out-argument.
(WebCore::FormControlState::deserialize):
Parses the input comma-separated string.
We changed the signature because we don't need multiple input strings.
(formStateSignature):
Bump up the version because of the representation change.
(WebCore::FormController::formElementsState):
The new serialized format occupies just one string for one control.
- Expected size is now 3n+1.
- Use FormControlState::serialize().
(WebCore::FormController::setStateForNewFormElements):
The new serialized format occupies just one string for one control.
So we can check the vector size before the iteration.
* html/FormController.h:
(FormControlState): Change the function signatures.

* html/shadow/CalendarPickerElement.cpp:
(WebCore::addJavaScriptString): Use StringBuilder::appendEscaped().

Source/WTF:

* wtf/text/StringBuilder.h:
(WTF::StringBuilder::appendEscaped): Added. This function adds the
escaped form of the input string. e.g. if stiring="foo,bar" escape='\'
special=',', the appended string is foo\,bar.

LayoutTests:

* fast/forms/state-restore-broken-state-expected.txt:
Apply the serialization format change.
* fast/forms/state-restore-various-values-expected.txt: Added.
* fast/forms/state-restore-various-values.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121145 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoWeb Inspector: add external resources size to the native memory diagram
yurys@chromium.org [Mon, 25 Jun 2012 09:26:50 +0000 (09:26 +0000)]
Web Inspector: add external resources size to the native memory diagram
https://bugs.webkit.org/show_bug.cgi?id=89754

Reviewed by Vsevolod Vlasov.

Size of external strings and arrays is now reported through the inspector
protocol and displayed on the native memory chart.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptProfiler.h:
(WebCore):
(WebCore::ScriptProfiler::visitJSDOMWrappers):
(WebCore::ScriptProfiler::visitExternalJSStrings):
(WebCore::ScriptProfiler::visitExternalJSArrays):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::visitJSDOMWrappers):
(WebCore::ScriptProfiler::visitExternalJSStrings):
(WebCore::ScriptProfiler::visitExternalJSArrays):
(WebCore):
* bindings/v8/ScriptProfiler.h:
(WebCore):
(ScriptProfiler):
* bindings/v8/V8Binding.cpp:
(WebCore::WebCoreStringResource::visitStrings):
(WebCore::V8BindingPerIsolateData::visitJSExternalStrings):
* bindings/v8/V8Binding.h:
(WebCore):
(V8BindingPerIsolateData):
* inspector/BindingVisitors.h: Renamed from Source/WebCore/inspector/DOMWrapperVisitor.h.
(WTF):
(WebCore):
(NodeWrapperVisitor):
(WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
(ExternalStringVisitor):
(WebCore::ExternalStringVisitor::~ExternalStringVisitor):
(ExternalArrayVisitor):
(WebCore::ExternalArrayVisitor::~ExternalArrayVisitor):
* inspector/InspectorMemoryAgent.cpp:
(MemoryBlockName):
(WebCore):
(WebCore::jsExternalResourcesInfo):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.MemoryBlockViewProperties._initialize):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121144 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[GTK] Test /webkit2/WebKitWebView/permission-requests fails due to a runtime warning
carlosgc@webkit.org [Mon, 25 Jun 2012 08:42:39 +0000 (08:42 +0000)]
[GTK] Test /webkit2/WebKitWebView/permission-requests fails due to a runtime warning
https://bugs.webkit.org/show_bug.cgi?id=89858

Reviewed by Xan Lopez.

* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewPermissionRequests): Make runtime warnings non-fatal
for test /webkit2/WebKitWebView/permission-requests.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121143 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[GTK] Remove unused code in LayerTreeHostGtk.
commit-queue@webkit.org [Mon, 25 Jun 2012 07:18:03 +0000 (07:18 +0000)]
[GTK] Remove unused code in LayerTreeHostGtk.
https://bugs.webkit.org/show_bug.cgi?id=89854

LayerTreeHostGtk::deviceScaleFactor() is unused and LayerTreeHost does not have
virtual float deviceScaleFactor() const;

Patch by Huang Dongsung <luxtella@company100.net> on 2012-06-25
Reviewed by Martin Robinson.

* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
(LayerTreeHostGtk):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121142 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Qt] Unreviewed gardening, skip new failing tests.
kkristof@inf.u-szeged.hu [Mon, 25 Jun 2012 07:02:18 +0000 (07:02 +0000)]
[Qt] Unreviewed gardening, skip new failing tests.

* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121141 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoRemove USE(CHROMIUM_NET) because it is unused
abarth@webkit.org [Mon, 25 Jun 2012 06:34:26 +0000 (06:34 +0000)]
Remove USE(CHROMIUM_NET) because it is unused
https://bugs.webkit.org/show_bug.cgi?id=89850

Reviewed by Eric Seidel.

I didn't see any mentions of CHROMIUM_NET when I grepped the Source
directory. Also, this USE macro isn't defined on OS(DARWIN) or
OS(ANDROID), which seems a bit odd given that Chromium uses the same
network stack on all platforms.

* wtf/Platform.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121140 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Qt] Unreviewed gardening, skip new failing tests.
kkristof@inf.u-szeged.hu [Mon, 25 Jun 2012 06:21:21 +0000 (06:21 +0000)]
[Qt] Unreviewed gardening, skip new failing tests.

* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121139 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoREGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveE...
kling@webkit.org [Mon, 25 Jun 2012 05:08:35 +0000 (05:08 +0000)]
REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
<rdar://problem/11686974>
<http://webkit.org/b/89659>

Unreviewed tests assertion fix, handleKeyboardEvent() should call didReceiveKeyEvent()
rather than didReceiveEvent().

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::didReceiveKeyEvent):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121138 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed compile error fix of Chromium Win Release.
ukai@chromium.org [Mon, 25 Jun 2012 04:33:02 +0000 (04:33 +0000)]
Unreviewed compile error fix of Chromium Win Release.
Touch header files for ENABLE(CSS_VARIABLES) so that
it forces to rebuild files by changing ENABLE(CSS_VARIABLES)
in Sources/WebKit/chromium/features.gypi at r121129

* css/CSSParserMode.h:
* css/CSSValue.h:
(WebCore):
* css/CSSVariableValue.h:
* page/Settings.h:
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.h:
* rendering/style/StyleVariableData.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121137 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Texmap] Minor cleanup for TextureMapper::accelerationMode()
commit-queue@webkit.org [Mon, 25 Jun 2012 03:40:09 +0000 (03:40 +0000)]
[Texmap] Minor cleanup for TextureMapper::accelerationMode()
https://bugs.webkit.org/show_bug.cgi?id=89825

Patch by Simon Hausmann <simon.hausmann@nokia.com> on 2012-06-24
Reviewed by Kenneth Rohde Christiansen.

Replace the virtual method with a simple member variable.

* platform/graphics/texmap/TextureMapper.h:
(WebCore::TextureMapper::accelerationMode):
(WebCore::TextureMapper::TextureMapper):
(TextureMapper):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::TextureMapperGL):
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperImageBuffer.h:
(WebCore::TextureMapperImageBuffer::TextureMapperImageBuffer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121136 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Qt] Enable <input type="color"> support by default
commit-queue@webkit.org [Mon, 25 Jun 2012 03:32:21 +0000 (03:32 +0000)]
[Qt] Enable <input type="color"> support by default
https://bugs.webkit.org/show_bug.cgi?id=89653

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-06-24
Reviewed by Kenneth Rohde Christiansen.

This feature is complete for Qt WebKit2. Enabling by default
will help to mature the implementation.

* Scripts/webkitperl/FeatureList.pm:
* qmake/mkspecs/features/features.pri:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121135 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[WK2][Qt][EFL] Modify Qt specific code to common code
commit-queue@webkit.org [Mon, 25 Jun 2012 03:28:27 +0000 (03:28 +0000)]
[WK2][Qt][EFL] Modify Qt specific code to common code
https://bugs.webkit.org/show_bug.cgi?id=89839

Patch by YoungTaeck Song <youngtaeck.song@samsung.com> on 2012-06-24
Reviewed by Noam Rosenthal.

Modify paintToGraphicsContext’s first argument QPainter to PlatformGraphicsContext to be used by both Qt and Efl.

* UIProcess/WebLayerTreeRenderer.cpp:
(WebKit::WebLayerTreeRenderer::paintToGraphicsContext):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed GTK/EFL gardening after r121121.
joone@webkit.org [Mon, 25 Jun 2012 03:25:25 +0000 (03:25 +0000)]
Unreviewed GTK/EFL gardening after r121121.
Marked fast/forms/input-set-composition-scroll.html as known failure
tracked by the bug 89845.

* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121133 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoCSS3 calc: transitions starting and ending with a calc expression move to end state
mikelawther@chromium.org [Mon, 25 Jun 2012 03:16:07 +0000 (03:16 +0000)]
CSS3 calc: transitions starting and ending with a calc expression move to end state
https://bugs.webkit.org/show_bug.cgi?id=89738

Reviewed by Tony Chang.

Source/WebCore:

The equality operator for CalculationValue was not working as expected. The
equality operator for OwnPtr is private, as OwnPtrs should always be different.
The OwnPtrs ended up getting cast to bool before being compared, and the
comparison was always returning true.

The comparison between OwnPtrs has been removed. It doesn't add value to compare
the raw pointers either, since OwnPtrs should always be unique. We cannot
ASSERT the uniqueness though, as it is legitimate to compare a CalculationValue
to itself.

Test: css3/calc/transition-start-end-with-calc.html

* platform/CalculationValue.h:
(WebCore::CalculationValue::operator==):

LayoutTests:

* css3/calc/transition-start-end-with-calc-expected.txt: Added.
* css3/calc/transition-start-end-with-calc.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121132 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoNodeRenderingContext::AttachingPhase is redundant.
morrita@google.com [Mon, 25 Jun 2012 02:25:43 +0000 (02:25 +0000)]
NodeRenderingContext::AttachingPhase is redundant.
https://bugs.webkit.org/show_bug.cgi?id=79220

Reviewed by Dimitri Glazkov.

This change removes NodeRenderingContext::AttachingPhase and
NodeRenderingContext::m_phase respectively. The state originally
represented as m_phase is naturally encoded into other member variables.

NodeRenderingContext::m_visualParentShadow is also replaced, with
a local variable parentScope.

Basically, what NodeRenderingContext wants to know is the parent of
the composed shadow tree and an optional insertion point where the
node is distributed. Once these becomes clear, m_phase is no longer required.
It was rather a historical artifact.

No new tests. No behavioral change.

* dom/NodeRenderingContext.cpp: Replaced m_phase with implicit states.
(WebCore::NodeRenderingContext::NodeRenderingContext):
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):
(WebCore::NodeRenderingContext::shouldCreateRenderer):
(WebCore::NodeRenderingContext::isOnEncapsulationBoundary):
(WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
* dom/NodeRenderingContext.h:
(NodeRenderingContext):
(WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle): Removed an assert which checks m_phase.
(WebCore::NodeRenderingContext::resetStyleInheritance): Removed an assert which checks m_phase.
* html/shadow/InsertionPoint.h:
(WebCore::isInsertionPoint): Fix null case check.
(WebCore::isLowerEncapsulationBoundary): Renamed from isShadowBoundary()

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121131 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoREGRESSION(r121124): LayoutTests/fast/block/inline-children-root-linebox-crash.html...
antti@apple.com [Mon, 25 Jun 2012 02:14:26 +0000 (02:14 +0000)]
REGRESSION(r121124): LayoutTests/fast/block/inline-children-root-linebox-crash.html asserts
https://bugs.webkit.org/show_bug.cgi?id=89844

Reviewed by Dan Bernstein.

We need to check for the flipped writing mode and take the slow path if it is used.

* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::pushMappingsToAncestor):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121130 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoAdd runtime flag to enable/disable CSS variables (in addition to existing compile...
macpherson@chromium.org [Mon, 25 Jun 2012 02:03:45 +0000 (02:03 +0000)]
Add runtime flag to enable/disable CSS variables (in addition to existing compile-time flag).
https://bugs.webkit.org/show_bug.cgi?id=89542

Reviewed by Dimitri Glazkov.

Source/WebCore:

Added fast/css/variables/build-supports-variables.html to test runtime flag in test environment.
Updated all other css variables tests to enable the runtime flag from JS.

* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::CSSParser::cssVariablesEnabled):
(WebCore):
(WebCore::CSSParser::detectDashToken):
(WebCore::CSSParser::lex):
* css/CSSParser.h:
(CSSParser):
* css/CSSParserMode.h:
(CSSParserContext):
* page/Settings.h:
(Settings):
(WebCore::Settings::setCSSVariablesEnabled):
(WebCore::Settings::cssVariablesEnabled):

Source/WebKit/chromium:

* features.gypi:
* public/WebSettings.h:
* src/WebSettingsImpl.cpp:
(WebKit::WebSettingsImpl::setExperimentalCSSVariablesEnabled):
(WebKit):
* src/WebSettingsImpl.h:
(WebSettingsImpl):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121129 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoSelected option is not restored correctly
tkent@chromium.org [Mon, 25 Jun 2012 01:47:35 +0000 (01:47 +0000)]
Selected option is not restored correctly
https://bugs.webkit.org/show_bug.cgi?id=89623

Reviewed by Hajime Morita.

Source/WebCore:

Details of the bug:
We saved a state of a <select> element as a string of which length was
the size of <select>'s children. e.g. If a <select> had five children
and the second and the fifth items were selected, the state string was:
        ".X..X"

This didn't work well if the structure of the children was updated after
parsing. For example,
1. A page has the following <select> initially:
  <select multiple>
    <option>Banana
    <option>Lemon
    <option>Orange
    <option>Strawberry
  <select>

2. For some reasons, <option>Apple</option> is prepended to the children.
3. Some items are selected.
4. The page is unloaded. Selection state is saved.
5. A user go back to the page again. A browser parses the page again.
6. Try to restore the <select> state with the saved data at 4.
  But "Apple" is missing. The <select> has wrong selections.

Solution:
We save the state as a set of selected values. If "Banana" and
"Strawberry" are selected in the above <select>, we save two strings;
"Banana" and "Strawberry", not ".X..X".

Test: fast/forms/select/select-state-restore.html

* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::saveFormControlState):
Store selected value strings to a FormControlState object.
(WebCore::HTMLSelectElement::searchOptionsForValue):
A helper function to find an <option> with the specified value.
(WebCore::HTMLSelectElement::restoreFormControlState):
Clear all of selections, then select options with saved values.
In order to avoid O(M x N) loop, we start searching at position we found
the previous value.
* html/HTMLSelectElement.h: Declare searchOptionsForValue.
* html/FormController.cpp:
(formStateSignature): Bump up the version because this is a incompatible
change.

LayoutTests:

* fast/forms/select/select-state-restore-expected.txt: Added.
* fast/forms/select/select-state-restore.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121128 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoAdd snap to css3-images image-resolution
commit-queue@webkit.org [Mon, 25 Jun 2012 01:46:14 +0000 (01:46 +0000)]
Add snap to css3-images image-resolution
https://bugs.webkit.org/show_bug.cgi?id=89745

Patch by David Barr <davidbarr@chromium.org> on 2012-06-24
Reviewed by Tony Chang.

Source/WebCore:

Due to floating point imprecision, it is difficult to be precise in dpcm.
So use PrimitiveValue::roundForImpreciseConversion rather than just floor.

No new tests; extended fast/css/image-resolution/image-resolution.html

* css/CSSParser.cpp: Accept snap identifier in image-resolution property.
(WebCore::CSSParser::parseImageResolution): Map CSSValueSnap to identifier value from cssValuePool.
* css/CSSValueKeywords.in: Add snap.
* css/StyleBuilder.cpp: Extend ApplyPropertyImageResolution to apply RenderStyle::imageResolutionSnap.
(WebCore::ApplyPropertyImageResolution::applyInheritValue): Apply RenderStyle::imageResolutionSnap.
(WebCore::ApplyPropertyImageResolution::applyInitialValue): Apply RenderStyle::imageResolutionSnap.
(WebCore::ApplyPropertyImageResolution::applyValue): Map CSSValueSnap to ImageResolutionSnapPixels.
* rendering/RenderImage.cpp: Extend conditions for recalculation of intrinsic size.
(WebCore::RenderImage::styleDidChange): Update intrinsic size if RenderStyle::imageResolutionSnap() has changed.
(WebCore::RenderImage::imageDimensionsChanged): Floor scale factor to int, round up if less than 0.01 away from ceiling.
* rendering/style/RenderStyle.cpp: Include StyleRareInheritedData::m_imageResolutionSnap in style diff.
(WebCore::RenderStyle::diff): Map change in StyleRareInheritedData::m_imageResolutionSnap to StyleDifferenceLayout.
* rendering/style/RenderStyle.h: Add RenderStyle::imageResolutionSnap, RenderStyle::setImageResolutionSnap, RenderStyle::initialImageResolutionSnap.
* rendering/style/RenderStyleConstants.h: Add enum ImageResolutionSnap.
* rendering/style/StyleRareInheritedData.cpp: Add StyleRareInheritedData::m_imageResolutionSnap.
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Add m_imageResolutionSnap to default and copy constructor.
(WebCore::StyleRareInheritedData::operator==): Include m_imageResolutionSnap in comparison.
* rendering/style/StyleRareInheritedData.h: Add StyleRareInheritedData::m_imageResolutionSnap.
(StyleRareInheritedData): Add 1-bit field StyleRareInheritedData::m_imageResolutionSnap.

LayoutTests:

* fast/css/image-resolution/image-resolution-expected.txt:
* fast/css/image-resolution/image-resolution.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121127 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed, rolling out r121106.
commit-queue@webkit.org [Mon, 25 Jun 2012 00:41:05 +0000 (00:41 +0000)]
Unreviewed, rolling out r121106.
http://trac.webkit.org/changeset/121106
https://bugs.webkit.org/show_bug.cgi?id=89841

Caused 85% performance regressions on Dromaeo/jslib-modify-
jquery.html (Requested by rniwa on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-24

* dom/Document.cpp:
(WebCore::Document::clearNodeListCaches):
* dom/Document.h:
(Document):
* dom/DynamicNodeList.cpp:
(WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
* dom/DynamicNodeList.h:
(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
* dom/Node.cpp:
(WebCore::Node::clearRareData):
(WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
(WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::radioNodeList):
(WebCore::NodeListsNodeData::invalidateCaches):
(WebCore):
(WebCore::NodeRareData::createNodeLists):
* dom/NodeRareData.h:
(NodeListsNodeData):
(WebCore::NodeListsNodeData::adoptTreeScope):
(WebCore::NodeRareData::ensureNodeLists):
(NodeRareData):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
* dom/TreeScope.h:
(WebCore::TreeScope::addNodeListCache):
(WebCore::TreeScope::removeNodeListCache):
(WebCore::TreeScope::hasNodeListCaches):
(TreeScope):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
(WebCore::LabelsNodeList::~LabelsNodeList):
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
(WebCore::RadioNodeList::~RadioNodeList):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121126 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoChange the type of the second argument of FrameSelection::revealSelection to use...
abarth@webkit.org [Mon, 25 Jun 2012 00:29:03 +0000 (00:29 +0000)]
Change the type of the second argument of FrameSelection::revealSelection to use RevealExtentOption
https://bugs.webkit.org/show_bug.cgi?id=89833

Reviewed by Ryosuke Niwa.

As requested by Ryosuke Niwa.  Rare boolean parameters are hard to read.

* WebCore.exp.in:
* editing/Editor.cpp:
(WebCore::Editor::revealSelectionAfterEditingOperation):
* editing/Editor.h:
(Editor):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::revealSelection):
* editing/FrameSelection.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121125 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoOptimize RenderGeometryMap mappings gathering
antti@apple.com [Mon, 25 Jun 2012 00:14:23 +0000 (00:14 +0000)]
Optimize RenderGeometryMap mappings gathering
https://bugs.webkit.org/show_bug.cgi?id=89828

Reviewed by Simon Fraser.

RenderGeometryMap currently gathers mappings by climbing the rendering tree. This is slow and can produce
large number of mapping steps. In the common case we already have the child layer coordinates available in
the layer tree and we can just use that.

The combination of faster mappings gathering and fewer number of applying steps reduces time spent under
RenderLayerCompositor::computeCompositingRequirements to less than half when scrolling the mobile version
of twitter.com.

* rendering/RenderGeometryMap.cpp:
(WebCore):
(WebCore::RenderGeometryMap::pushMappingsToAncestor):

    Use pre-computed mapping from the layer tree when possible.

(WebCore::RenderGeometryMap::popMappingsToAncestor):
* rendering/RenderGeometryMap.h:

    Add some inline capacity.

(WebCore):
(RenderGeometryMap):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::canUseConvertToLayerCoords):
(RenderLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121124 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoRename isPositioned to isOutOfFlowPositioned for clarity
simon.fraser@apple.com [Mon, 25 Jun 2012 00:11:30 +0000 (00:11 +0000)]
Rename isPositioned to isOutOfFlowPositioned for clarity
https://bugs.webkit.org/show_bug.cgi?id=89836

Reviewed by Antti Koivisto.

RenderObject and RenderStyle had an isPositioned() method that was
confusing, because it excluded relative positioning. Rename to
isOutOfFlowPositioned(), which makes it clearer that it only applies
to absolute and fixed positioning.

Simple rename; no behavior change.

Source/WebCore:

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::getPositionOffsetValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList):
* dom/Text.cpp:
(WebCore::Text::rendererIsNeeded):
* editing/DeleteButtonController.cpp:
(WebCore::isDeletableElement):
* editing/TextIterator.cpp:
(WebCore::shouldEmitNewlinesBeforeAndAfterNode):
* rendering/AutoTableLayout.cpp:
(WebCore::shouldScaleColumns):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::addToLine):
(WebCore::InlineFlowBox::placeBoxesInInlineDirection):
(WebCore::InlineFlowBox::requiresIdeographicBaseline):
(WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
(WebCore::InlineFlowBox::flipLinesInBlockDirection):
(WebCore::InlineFlowBox::computeOverflow):
(WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
(WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
* rendering/InlineIterator.h:
(WebCore::isIteratorTarget):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::MarginInfo::MarginInfo):
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::addChildToContinuation):
(WebCore::RenderBlock::addChildToAnonymousColumnBlocks):
(WebCore::RenderBlock::containingColumnsBlock):
(WebCore::RenderBlock::columnsBlockForSpanningElement):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::getInlineRun):
(WebCore::RenderBlock::isSelfCollapsingBlock):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::addOverflowFromBlockChildren):
(WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
(WebCore::RenderBlock::handlePositionedChild):
(WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
(WebCore::RenderBlock::isSelectionRoot):
(WebCore::RenderBlock::blockSelectionGaps):
(WebCore::RenderBlock::clearFloats):
(WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
(WebCore::RenderBlock::markSiblingsWithFloatsForLayout):
(WebCore::isChildHitTestCandidate):
(WebCore::InlineMinMaxIterator::next):
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
(WebCore::RenderBlock::firstLineBoxBaseline):
(WebCore::RenderBlock::lastLineBoxBaseline):
(WebCore::RenderBlock::updateFirstLetter):
(WebCore::shouldCheckLines):
(WebCore::getHeightForLineCount):
(WebCore::RenderBlock::adjustForBorderFit):
(WebCore::inNormalFlow):
(WebCore::RenderBlock::adjustLinePositionForPagination):
(WebCore::RenderBlock::adjustBlockChildForPagination):
(WebCore::RenderBlock::renderName):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::shouldSkipCreatingRunsForObject):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::setMarginsForRubyRun):
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlock::computeBlockDirectionPositionsForLine):
(WebCore::RenderBlock::layoutInlineChildren):
(WebCore::requiresLineBox):
(WebCore::RenderBlock::LineBreaker::skipTrailingWhitespace):
(WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
(WebCore::RenderBlock::LineBreaker::nextLineBreak):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
(WebCore::RenderBox::styleWillChange):
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::updateBoxModelInfoFromStyle):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::positionLineBox):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::renderBoxRegionInfo):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::percentageLogicalHeightIsResolvable):
* rendering/RenderBox.h:
(WebCore::RenderBox::stretchesToViewport):
(WebCore::RenderBox::isDeprecatedFlexItem):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::requiresLayer):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::childDoesNotAffectWidthOrFlexing):
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::renderName):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::findLegend):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
(WebCore::RenderFlexibleBox::autoMarginOffsetInMainAxis):
(WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
(WebCore::RenderFlexibleBox::computeNextFlexLine):
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
(WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::RenderFlexibleBox::adjustAlignmentForChild):
(WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::renderName):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::computeIntrinsicRatioInformation):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::addChildToContinuation):
(WebCore::RenderInline::generateCulledLineBoxRects):
(WebCore):
(WebCore::RenderInline::culledInlineFirstLineBox):
(WebCore::RenderInline::culledInlineLastLineBox):
(WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
(WebCore::RenderInline::computeRectForRepaint):
(WebCore::RenderInline::dirtyLineBoxes):
* rendering/RenderLayer.cpp:
(WebCore::checkContainingBlockChainForPagination):
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::isPositionedContainer):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
* rendering/RenderListItem.cpp:
(WebCore::getParentOfFirstLineBox):
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::renderName):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::markContainingBlocksForLayout):
(WebCore::RenderObject::setPreferredLogicalWidthsDirty):
(WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::offsetParent):
* rendering/RenderObject.h:
(WebCore::RenderObject::isOutOfFlowPositioned):
(WebCore::RenderObject::isInFlowPositioned):
(WebCore::RenderObject::hasClip):
(WebCore::RenderObject::isFloatingOrOutOfFlowPositioned):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
* rendering/RenderReplaced.cpp:
(WebCore::hasAutoHeightOrContainingBlockWithAutoHeight):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::rubyText):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
(WebCore::RenderTable::computeLogicalWidth):
(WebCore::RenderTable::layout):
* rendering/style/RenderStyle.h:

Source/WebKit/blackberry:

* Api/WebPage.cpp:
(BlackBerry::WebKit::isPositionedContainer):
(BlackBerry::WebKit::isNonRenderViewFixedPositionedContainer):
(BlackBerry::WebKit::isFixedPositionedContainer):

Source/WebKit2:

* WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
(WebKit::updateOffsetFromViewportForSelf):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121123 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoMade debug-{minibrowser,safari,test-runner} work with LLDB.
mitz@apple.com [Sun, 24 Jun 2012 23:07:31 +0000 (23:07 +0000)]
Made debug-{minibrowser,safari,test-runner} work with LLDB.

Reviewed by Sam Weinig.

* Scripts/debug-minibrowser: Pass INCLUDE_OPTIONS_FOR_DEBUGGING to
printHelpAndExitForRunAndDebugWebKitAppIfNeeded().
* Scripts/debug-safari: Ditto.
* Scripts/debug-test-runner: Ditto.
* Scripts/webkitdirs.pm:
(debugger): Added. Calls determineDebugger() if needed and returns the chosen debugger.
(determineDebugger): Added. Sets the debugger to "lldb" if the --use-lldb switch is present,
and to "gdb" otherwise.
(printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Changed to print help for the
--target-web-process and --use-lldb switches if passed INCLUDE_OPTIONS_FOR_DEBUGGING.
(execMacWebKitAppForDebugging): Changed to use the chosen debugger.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121122 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoAfter Editor::setComposition is called, input should scroll to the end of the composi...
commit-queue@webkit.org [Sun, 24 Jun 2012 21:44:47 +0000 (21:44 +0000)]
After Editor::setComposition is called, input should scroll to the end of the composition.
https://bugs.webkit.org/show_bug.cgi?id=88999

Patch by Oli Lan <olilan@chromium.org> on 2012-06-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

This fixes an issue where after a call to setComposition, the start of the composition is revealed
(scrolled to) instead of the end (where the caret/editing point should be).

The change is to allow revealSelectionAfterEditingOperation to take a revealExtent parameter,
and to pass that parameter as true when calling from setIgnoreCompositionSelectionChange, which is
called at the end of setComposition.

Test: fast/forms/input-set-composition-scroll.html

* editing/Editor.cpp:
(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::setIgnoreCompositionSelectionChange):
* editing/Editor.h:
(Editor):

LayoutTests:

This tests that after setComposition is called, the input scrolls to the end of the composition
(i.e. that the end of the selection/composition is revealed).

* fast/forms/input-set-composition-scroll-expected.txt: Added.
* fast/forms/input-set-composition-scroll.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121121 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoThe comment in test_expectations_android.txt is unclear as to the purpose of this...
abarth@webkit.org [Sun, 24 Jun 2012 18:44:02 +0000 (18:44 +0000)]
The comment in test_expectations_android.txt is unclear as to the purpose of this file.
https://bugs.webkit.org/show_bug.cgi?id=89832

Reviewed by Ojan Vafai.

This patch attempts to clarify the purpose of this file and what will
happen to it in the future.

* platform/chromium/test_expectations_android.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121120 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[EFL] Skip fast/text/hyphen-min-preferred-width.html
commit-queue@webkit.org [Sun, 24 Jun 2012 17:25:50 +0000 (17:25 +0000)]
[EFL] Skip fast/text/hyphen-min-preferred-width.html
https://bugs.webkit.org/show_bug.cgi?id=89831

Unreviewed EFL gardening. Skip the auto-hyphenation added
in r121102 as the EFL port does not support the feature.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-06-24

* platform/efl/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121119 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Chromium] Release media resources after each LayoutTest on Android
abarth@webkit.org [Sun, 24 Jun 2012 16:29:27 +0000 (16:29 +0000)]
[Chromium] Release media resources after each LayoutTest on Android
https://bugs.webkit.org/show_bug.cgi?id=89720

Reviewed by Eric Carlson.

The LayoutTests can hang when run on Android because we sometimes run
out of media resources. This patch causes us to release our media
resources after each test in order to avoid running out of this
resource. In production, there are other mechanisms that manage this
resource.

* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::resetTestController):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121118 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoWeb Inspector: Simplify InspectorIndexedDBAgent to use IDB metadata API
jsbell@chromium.org [Sun, 24 Jun 2012 15:06:53 +0000 (15:06 +0000)]
Web Inspector: Simplify InspectorIndexedDBAgent to use IDB metadata API
https://bugs.webkit.org/show_bug.cgi?id=89495

Reviewed by Vsevolod Vlasov.

No new tests - no functional changes.

* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121117 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed EFL gardening, generating baselines required after r121085.
joone@webkit.org [Sun, 24 Jun 2012 15:02:59 +0000 (15:02 +0000)]
Unreviewed EFL gardening, generating baselines required after r121085.

* platform/efl/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
* platform/efl/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
* platform/efl/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
* platform/efl/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
* platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt: Added.
* platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt: Added.
* platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt: Added.
* platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121116 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed GTK gardening, generating baselines required after r121085.
zandobersek@gmail.com [Sun, 24 Jun 2012 11:30:25 +0000 (11:30 +0000)]
Unreviewed GTK gardening, generating baselines required after r121085.

* platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
* platform/gtk/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt: Added.
* platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121115 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed GTK gardening, move some flaky tests under the
zandobersek@gmail.com [Sun, 24 Jun 2012 11:26:09 +0000 (11:26 +0000)]
Unreviewed GTK gardening, move some flaky tests under the
proper section in the TestExpectations file and narrow down
test expectations for failures that were shown not to be flaky.

* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121114 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoREGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveE...
kling@webkit.org [Sun, 24 Jun 2012 08:15:08 +0000 (08:15 +0000)]
REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
<rdar://problem/11686974>
<http://webkit.org/b/89659>

Reviewed by Sam Weinig.

Instead of sending DidReceiveEvent for key events as DispatchMessageEvenWhenWaitingForSyncReply,
use proper synchronous messages. This makes the WebProcess block while the UIProcess handles
the event but prevents a weird race condition where DidReceiveEvent gets dispatched just before
a synchronous DecidePolicyForNavigationAction and something happens below DidReceiveEvent that
invalidates the frame ID passed to DecidePolicyForNavigationAction.

This is a speculative fire-fighting fix.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveKeyEvent):
(WebKit::WebPageProxy::didReceiveEvent):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::keyEvent):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121113 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoWeb Inspector: speed up Timeline and Elements panel rendering
pfeldman@chromium.org [Sun, 24 Jun 2012 07:27:03 +0000 (07:27 +0000)]
Web Inspector: speed up Timeline and Elements panel rendering
https://bugs.webkit.org/show_bug.cgi?id=89771

Reviewed by Yury Semikhatsky.

I used timeline panel to find unnecessary style operations.

* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype.updateTitle):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._updateEventDividers):
(WebInspector.TimelinePanel.prototype._updateFrames):
(WebInspector.TimelinePanel.prototype.sidebarResized):
(WebInspector.TimelinePanel.prototype.onResize):
(WebInspector.TimelinePanel.prototype._onScroll):
(WebInspector.TimelinePanel.prototype._refresh):
(WebInspector.TimelinePanel.prototype._refreshRecords):
(WebInspector.TimelinePanel.prototype._adjustScrollPosition):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121112 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed GTK gardening, skip the auto-hyphenation test
zandobersek@gmail.com [Sun, 24 Jun 2012 05:51:40 +0000 (05:51 +0000)]
Unreviewed GTK gardening, skip the auto-hyphenation test
added in r121102 as the GTK port does not support the feature.

* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121110 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Gtk] REGRESSION(r120918): Causes flaky DND tests
zandobersek@gmail.com [Sun, 24 Jun 2012 05:32:08 +0000 (05:32 +0000)]
[Gtk] REGRESSION(r120918): Causes flaky DND tests
https://bugs.webkit.org/show_bug.cgi?id=89770

Reviewed by Martin Robinson.

Tools:

Connect to the run-file-chooser signal of the WebKitWebView and
return TRUE so no file chooser dialog is run. This prevents certain
test failures.

* DumpRenderTree/gtk/DumpRenderTree.cpp:
(webViewRunFileChooser):
(createWebView):

LayoutTests:

Remove test expectations for fast/events/domactivate-sets-underlying-click-event-as-handled.html
as the test now passes since the file chooser dialog is no longer run.

* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121109 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[chromium] Return has value, in function returning void
kseo@webkit.org [Sun, 24 Jun 2012 05:29:31 +0000 (05:29 +0000)]
[chromium] Return has value, in function returning void
https://bugs.webkit.org/show_bug.cgi?id=89822

Reviewed by Adam Barth.

A followup for r121091.

* src/WebHistoryItem.cpp:
(WebKit::WebHistoryItem::setPageScaleFactor):
* src/WebImageLayer.cpp:
(WebKit::WebImageLayer::setBitmap):
* src/WebLayer.cpp:
(WebKit::WebLayer::setMaskLayer):
* src/WebOptionElement.cpp:
(WebKit::WebOptionElement::setValue):
(WebKit::WebOptionElement::setDefaultSelected):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121108 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[chromium] Layout Test fast/text/hyphen-min-preferred-width.html is failing
kbr@google.com [Sun, 24 Jun 2012 03:47:10 +0000 (03:47 +0000)]
[chromium] Layout Test fast/text/hyphen-min-preferred-width.html is failing
https://bugs.webkit.org/show_bug.cgi?id=89820

Unreviewed gardening; marked test as known failure.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121107 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoInserting nodes is slow due to Node::notifyNodeListsAttributeChanged (20%+)
rniwa@webkit.org [Sun, 24 Jun 2012 03:13:19 +0000 (03:13 +0000)]
Inserting nodes is slow due to Node::notifyNodeListsAttributeChanged (20%+)
https://bugs.webkit.org/show_bug.cgi?id=73853

Reviewed by Anders Carlsson and Ojan Vafai.

Invalidate all node lists at document level to avoid having to walk up the DOM tree in the invalidation.
In particular, this makes appending node O(1) with respect to the depth of the tree in common cases when
we have node lists somewhere in the tree scope.

We now invalidate more node lists than we used to but it shouldn't matter much in practice because
most websites don't add or remove nodes or modify relevant attributes while iterating through node lists.
The change would also register each node list to document thereby consuming one extra pointer, however,
this should not have a significant memory impact given we used to do it unintentionally until I fixed it in
r110797 three months ago.

Also, RadioNodeList and LabelsNodeList had always been invalidated at document level so this refactoring
also allows us to move calls to registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList in
those node lists to DynamicSubtreeNodeList, and even delete NodeListsNodeData::invalidateCaches().

In addition, removed m_numNodeListCaches from TreeScope since it was only used to avoid walking up
the ancestors in invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged
but we don't walk up the ancestors any more. Also note that m_listsInvalidatedAtDocument tells us exactly
how many node lists are present for each document.

* dom/Document.cpp:
(WebCore::Document::clearNodeListCaches): Optionally takes a qualified attribute name so that we don't
have to invalidate tag node lists when only attributes are modified.
* dom/Document.h:
(Document):
* dom/DynamicNodeList.cpp:
(WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList): Calls unregisterDynamicSubtreeNodeList.
* dom/DynamicNodeList.h:
(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Calls registerDynamicSubtreeNodeList.
* dom/Node.cpp:
(WebCore::Node::clearRareData):
(WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): No longer walks up the tree to invalidate
node list caches. All invalidations are done in Document::clearNodeListCaches.
(WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Ditto.
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::radioNodeList):
(WebCore):
(WebCore::NodeRareData::createNodeLists):
* dom/NodeRareData.h:
(NodeListsNodeData):
(WebCore::NodeListsNodeData::adoptTreeScope): Invalidate node list caches while registering and
unregistering node lists from old and new documents respectively now that invalidateCaches() has been
(WebCore::NodeRareData::ensureNodeLists):
(NodeRareData):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
* dom/TreeScope.h:
(TreeScope):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
(WebCore::LabelsNodeList::~LabelsNodeList):
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
(WebCore::RadioNodeList::~RadioNodeList):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121106 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoClang and cl.exe build fix after r121103. Don't inherit from WTF::PairHash<unsigned...
rniwa@webkit.org [Sat, 23 Jun 2012 23:00:53 +0000 (23:00 +0000)]
Clang and cl.exe build fix after r121103. Don't inherit from WTF::PairHash<unsigned char, StringType>.

* dom/NodeRareData.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121105 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agodebug-{minibrowser,safari,test-runner} fail when gdb is not installed in /usr/bin.
mitz@apple.com [Sat, 23 Jun 2012 21:34:00 +0000 (21:34 +0000)]
debug-{minibrowser,safari,test-runner} fail when gdb is not installed in /usr/bin.

Reviewed by Sam Weinig.

* Scripts/webkitdirs.pm:
(execMacWebKitAppForDebugging): Use xcrun to locate gdb.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121104 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoREGRESSION(r120979): getElementsByTagName is 12% slower
rniwa@webkit.org [Sat, 23 Jun 2012 21:30:30 +0000 (21:30 +0000)]
REGRESSION(r120979): getElementsByTagName is 12% slower
https://bugs.webkit.org/show_bug.cgi?id=89783

Reviewed by Darin Adler.

The problem is that hashing std::pair<unsigned short, AtomicString> is very slow compared to just hashing AtomicString,
which internally holds a hash already. Fixed the regression by replacing the default hash function by the one that
computes AtomicString's hash + list type. This is okay because we only have 7 node list types at the moment.

* dom/NodeRareData.h:
(NodeListsNodeData):
(WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::hash):
(NodeListCacheMapEntryHash):
(WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal):
(WebCore::NodeListsNodeData::namedNodeListKey):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121103 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoRenderText’s minimum preferred width is incorrect automatic hyphenation is used
mitz@apple.com [Sat, 23 Jun 2012 21:23:12 +0000 (21:23 +0000)]
RenderText’s minimum preferred width is incorrect automatic hyphenation is used
https://bugs.webkit.org/show_bug.cgi?id=89814

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/text/hyphen-min-preferred-width.html

* rendering/RenderText.cpp:
(WebCore::maxWordFragmentWidth): Added this helper function. It returns the width of the
widest hyphenated fragment of the word (except for the suffix after the last hyphen) and
the offset of the last hyphenation opportunity.
(WebCore::RenderText::computePreferredLogicalWidths): Changed this function to consider the
widths of hyphenated word fragments rather than entire words when computing the minimum
width. Because hyphenating and measuring all fragments is expensive, hyphenation is only
attempted if the unhyphenated word is wider than the current minimum width.

LayoutTests:

* fast/text/hyphen-min-preferred-width-expected.html: Added.
* fast/text/hyphen-min-preferred-width.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121102 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed Chromium gardening. Marked tests flaky per bugs 89812
kbr@google.com [Sat, 23 Jun 2012 19:28:27 +0000 (19:28 +0000)]
Unreviewed Chromium gardening. Marked tests flaky per bugs 89812
and 89813.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121101 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed GTK gardening, adding test expectations for two
zandobersek@gmail.com [Sat, 23 Jun 2012 15:36:28 +0000 (15:36 +0000)]
Unreviewed GTK gardening, adding test expectations for two
flaky media tests.

* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121100 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed. Skip GTK+ unit test /webkit2/WebKitFindController/hide.
carlosgc@webkit.org [Sat, 23 Jun 2012 13:43:35 +0000 (13:43 +0000)]
Unreviewed. Skip GTK+ unit test /webkit2/WebKitFindController/hide.

It fails always when running it in Xvfb.

* gtk/run-api-tests:
(TestRunner):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121099 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed, rolling out r121058.
zandobersek@gmail.com [Sat, 23 Jun 2012 13:41:40 +0000 (13:41 +0000)]
Unreviewed, rolling out r121058.
http://trac.webkit.org/changeset/121058
https://bugs.webkit.org/show_bug.cgi?id=89809

Patch causes plugins tests to crash in GTK debug builds
(Requested by zdobersek on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-23

Source/JavaScriptCore:

* API/APIShims.h:
(JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock):
(JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock):
(APIEntryShimWithoutLock):
(JSC::APIEntryShim::APIEntryShim):
(APIEntryShim):
(JSC::APICallbackShim::~APICallbackShim):
* API/JSContextRef.cpp:
(JSGlobalContextCreate):
(JSGlobalContextCreateInGroup):
(JSGlobalContextRelease):
(JSContextCreateBacktrace):
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* heap/CopiedSpace.cpp:
(JSC::CopiedSpace::tryAllocateSlowCase):
* heap/Heap.cpp:
(JSC::Heap::protect):
(JSC::Heap::unprotect):
(JSC::Heap::collect):
(JSC::Heap::setActivityCallback):
(JSC::Heap::activityCallback):
(JSC::Heap::sweeper):
* heap/Heap.h:
(Heap):
* heap/HeapTimer.cpp:
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::invalidate):
(JSC::HeapTimer::timerDidFire):
(JSC):
* heap/HeapTimer.h:
(HeapTimer):
* heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::doWork):
(JSC::IncrementalSweeper::create):
* heap/IncrementalSweeper.h:
(IncrementalSweeper):
* heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::allocateSlowCase):
* heap/WeakBlock.cpp:
(JSC::WeakBlock::reap):
* jsc.cpp:
(functionGC):
(functionReleaseExecutableMemory):
(jscmain):
* runtime/Completion.cpp:
(JSC::checkSyntax):
(JSC::evaluate):
* runtime/GCActivityCallback.h:
(DefaultGCActivityCallback):
(JSC::DefaultGCActivityCallback::create):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::~JSGlobalData):
(JSC::JSGlobalData::sharedInstance):
(JSC::JSGlobalData::sharedInstanceInternal):
* runtime/JSGlobalData.h:
(JSGlobalData):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::~JSGlobalObject):
(JSC::JSGlobalObject::init):
* runtime/JSLock.cpp:
(JSC):
(JSC::createJSLockCount):
(JSC::JSLock::lockCount):
(JSC::setLockCount):
(JSC::JSLock::JSLock):
(JSC::JSLock::lock):
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):
* runtime/JSLock.h:
(JSC):
(JSLock):
(JSC::JSLock::JSLock):
(JSC::JSLock::~JSLock):
(DropAllLocks):
* runtime/WeakGCMap.h:
(JSC::WeakGCMap::set):
* testRegExp.cpp:
(realMain):

Source/WebCore:

* bindings/js/GCController.cpp:
(WebCore::collect):
(WebCore::GCController::garbageCollectSoon):
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::discardAllCompiledCode):
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
(WebCore::JSSQLStatementErrorCallback::handleEvent):
* bindings/js/JSCustomVoidCallback.cpp:
(WebCore::JSCustomVoidCallback::handleEvent):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::nodeAsScriptValue):
(WebCore::JSInjectedScriptHost::inspectedObject):
* bindings/js/JSInjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createInjectedScript):
(WebCore::InjectedScriptManager::canAccessInspectedWindow):
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction):
* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::evaluate):
* bindings/js/JSMutationCallbackCustom.cpp:
(WebCore::JSMutationCallback::handleEvent):
* bindings/js/JSNodeFilterCondition.cpp:
(WebCore::JSNodeFilterCondition::acceptNode):
* bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
(WebCore::JSRequestAnimationFrameCallback::handleEvent):
* bindings/js/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::evaluate):
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
(WebCore::ScriptCachedFrameData::clear):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::initScript):
(WebCore::ScriptController::updateDocument):
(WebCore::ScriptController::cacheableBindingRootObject):
(WebCore::ScriptController::bindingRootObject):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::jsObjectForPluginElement):
(WebCore::ScriptController::clearScriptObjects):
* bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::windowScriptObject):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidPause):
* bindings/js/ScriptEventListener.cpp:
(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandlerLocation):
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptCallArgumentHandler::appendArgument):
(WebCore::ScriptFunctionCall::call):
(WebCore::ScriptFunctionCall::construct):
(WebCore::ScriptCallback::call):
* bindings/js/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
(WebCore::ScriptGlobalObject::get):
(WebCore::ScriptGlobalObject::remove):
* bindings/js/ScriptValue.cpp:
(WebCore::ScriptValue::getString):
(WebCore::ScriptValue::toInspectorValue):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::disableEval):
* bindings/objc/WebScriptObject.mm:
(_didExecute):
(-[WebScriptObject _setImp:originRootObject:rootObject:]):
(-[WebScriptObject _setOriginRootObject:andRootObject:]):
(-[WebScriptObject dealloc]):
(-[WebScriptObject finalize]):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject removeWebScriptKey:]):
(-[WebScriptObject hasWebScriptKey:]):
(-[WebScriptObject stringRepresentation]):
(-[WebScriptObject webScriptValueAtIndex:]):
(-[WebScriptObject setWebScriptValueAtIndex:value:]):
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackImplementation):
* bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::callbackWithNoParam):
(WebCore::JSTestCallback::callbackWithClass1Param):
(WebCore::JSTestCallback::callbackWithClass2Param):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackWithBoolean):
(WebCore::JSTestCallback::callbackRequiresThisToPass):
* bridge/NP_jsobject.cpp:
(_NPN_InvokeDefault):
(_NPN_Invoke):
(_NPN_Evaluate):
(_NPN_GetProperty):
(_NPN_SetProperty):
(_NPN_RemoveProperty):
(_NPN_HasProperty):
(_NPN_HasMethod):
(_NPN_Enumerate):
(_NPN_Construct):
* bridge/c/c_class.cpp:
(JSC::Bindings::CClass::~CClass):
(JSC::Bindings::CClass::methodsNamed):
(JSC::Bindings::CClass::fieldNamed):
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(JSC::Bindings::CInstance::invokeConstruct):
(JSC::Bindings::CInstance::getPropertyNames):
* bridge/c/c_runtime.cpp:
(JSC::Bindings::CField::valueFromInstance):
(JSC::Bindings::CField::setValueToInstance):
* bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
(JSC::Bindings::convertNPVariantToValue):
* bridge/jni/jni_jsobject.mm:
(JavaJSObject::call):
(JavaJSObject::eval):
(JavaJSObject::getMember):
(JavaJSObject::setMember):
(JavaJSObject::removeMember):
(JavaJSObject::getSlot):
(JavaJSObject::setSlot):
(JavaJSObject::toString):
(JavaJSObject::convertValueToJObject):
(JavaJSObject::convertJObjectToValue):
* bridge/jni/jni_objc.mm:
(JSC::Bindings::dispatchJNICall):
* bridge/jni/jsc/JNIUtilityPrivate.cpp:
(JSC::Bindings::convertValueToJValue):
* bridge/jni/jsc/JavaClassJSC.cpp:
(JavaClass::JavaClass):
(JavaClass::~JavaClass):
* bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaInstance::stringValue):
* bridge/jni/jsc/JavaMethodJSC.cpp:
(appendClassName):
(JavaMethod::signature):
* bridge/jni/jsc/JavaStringJSC.h:
(JSC::Bindings::JavaString::JavaString):
(JSC::Bindings::JavaString::~JavaString):
(JSC::Bindings::JavaString::utf8):
(JSC::Bindings::JavaString::init):
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::createRuntimeObject):
(JSC::Bindings::Instance::newRuntimeObject):
* bridge/objc/objc_instance.mm:
(ObjcInstance::moveGlobalExceptionToExecState):
(ObjcInstance::invokeObjcMethod):
(ObjcInstance::invokeDefaultMethod):
(ObjcInstance::setValueOfUndefinedField):
(ObjcInstance::getValueOfUndefinedField):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcField::valueFromInstance):
(JSC::Bindings::ObjcField::setValueToInstance):
* bridge/objc/objc_utility.mm:
(JSC::Bindings::convertValueToObjcValue):
(JSC::Bindings::convertNSStringToString):
(JSC::Bindings::convertObjcValueToValue):
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::~QtInstance):
(JSC::Bindings::QtInstance::getQtInstance):
(JSC::Bindings::QtInstance::newRuntimeObject):
* bridge/qt/qt_pixmapruntime.cpp:
(JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
* bridge/qt/qt_runtime_qt4.cpp:
(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
* plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::stop):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::npObject):
(WebCore::PluginView::privateBrowsingStateChanged):
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::getWindowInfo):
* plugins/efl/PluginViewEfl.cpp:
(WebCore::PluginView::dispatchNPEvent):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
* plugins/mac/PluginViewMac.mm:
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::dispatchNPEvent):
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowRect):
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::injectInternalsObject):
(WebCoreTestSupport::resetInternalsObject):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::dropProtection):

Source/WebKit/blackberry:

* Api/BlackBerryGlobal.cpp:
(BlackBerry::WebKit::clearMemoryCaches):
* WebCoreSupport/ClientExtension.cpp:
* WebCoreSupport/PagePopupBlackBerry.cpp:
(WebCore::PagePopupBlackBerry::installDomFunction):
* WebKitSupport/DumpRenderTreeSupport.cpp:
(DumpRenderTreeSupport::computedStyleIncludingVisitedInfo):

Source/WebKit/efl:

* ewk/ewk_frame.cpp:
(ewk_frame_script_execute):
* ewk/ewk_view.cpp:
(ewk_view_js_object_add):

Source/WebKit/gtk:

* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
(DumpRenderTreeSupportGtk::gcCountJavascriptObjects):

Source/WebKit/mac:

* DOM/WebDOMOperations.mm:
(JSC):
* Misc/WebCoreStatistics.mm:
(+[WebCoreStatistics javaScriptObjectsCount]):
(+[WebCoreStatistics javaScriptGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]):
(+[WebCoreStatistics javaScriptObjectTypeCounts]):
(+[WebCoreStatistics shouldPrintExceptions]):
(+[WebCoreStatistics setShouldPrintExceptions:]):
(+[WebCoreStatistics memoryStatistics]):
(+[WebCoreStatistics javaScriptReferencedObjectsCount]):
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::evaluate):
(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):
(WebKit::NetscapePluginInstanceProxy::getProperty):
(WebKit::NetscapePluginInstanceProxy::setProperty):
(WebKit::NetscapePluginInstanceProxy::removeProperty):
(WebKit::NetscapePluginInstanceProxy::hasMethod):
(WebKit::NetscapePluginInstanceProxy::enumerate):
(WebKit::NetscapePluginInstanceProxy::addValueToArray):
(WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):
* Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::wantsAllStreams):
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView sendEvent:isDrawRect:]):
(-[WebNetscapePluginView privateBrowsingModeDidChange]):
(-[WebNetscapePluginView setWindowIfNecessary]):
(-[WebNetscapePluginView createPluginScriptableObject]):
(-[WebNetscapePluginView getFormValue:]):
(-[WebNetscapePluginView evaluateJavaScriptPluginRequest:]):
(-[WebNetscapePluginView webFrame:didFinishLoadWithReason:]):
(-[WebNetscapePluginView loadPluginRequest:]):
(-[WebNetscapePluginView _printedPluginBitmap]):
* Plugins/WebPluginController.mm:
(+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
(-[WebPluginController stopOnePlugin:]):
(-[WebPluginController destroyOnePlugin:]):
(-[WebPluginController startAllPlugins]):
(-[WebPluginController addPlugin:]):
* WebView/WebFrame.mm:
(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFrame scopeChain]):
(-[WebScriptCallFrame evaluateWebScript:]):
* WebView/WebView.mm:
(+[WebView _reportException:inContext:]):
(-[WebView aeDescByEvaluatingJavaScriptFromString:]):
(-[WebView _computedStyleIncludingVisitedInfo:forElement:]):

Source/WebKit/qt:

* Api/qwebframe.cpp:
(QWebFramePrivate::addQtSenderToGlobalObject):
(QWebFrame::addToJavaScriptWindowObject):
* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::injectInternalsObject):
(DumpRenderTreeSupportQt::resetInternalsObject):

Source/WebKit/win:

* WebCoreStatistics.cpp:
(WebCoreStatistics::javaScriptObjectsCount):
(WebCoreStatistics::javaScriptGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectsCount):
(WebCoreStatistics::javaScriptProtectedGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectTypeCounts):
* WebFrame.cpp:
(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):
* WebJavaScriptCollector.cpp:
(WebJavaScriptCollector::objectCount):
* WebView.cpp:
(WebView::stringByEvaluatingJavaScriptFromString):
(WebView::reportException):
(WebView::elementFromJS):

Source/WebKit2:

* Shared/mac/WebMemorySampler.mac.mm:
(WebKit::WebMemorySampler::sampleWebKit):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::javaScriptObjectsCount):
(WebKit::InjectedBundle::reportException):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::hasMethod):
(WebKit::NPJSObject::invoke):
(WebKit::NPJSObject::invokeDefault):
(WebKit::NPJSObject::hasProperty):
(WebKit::NPJSObject::getProperty):
(WebKit::NPJSObject::setProperty):
(WebKit::NPJSObject::removeProperty):
(WebKit::NPJSObject::enumerate):
(WebKit::NPJSObject::construct):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
(WebKit::NPRuntimeObjectMap::evaluate):
(WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::jsWrapperForWorld):
(WebKit::WebFrame::computedStyleIncludingVisitedInfo):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInMainFrame):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getWebCoreStatistics):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121098 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed build fix for GTK's WebKit2 build after r121093.
zandobersek@gmail.com [Sat, 23 Jun 2012 12:31:07 +0000 (12:31 +0000)]
Unreviewed build fix for GTK's WebKit2 build after r121093.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewPopulateContextMenu):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121097 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoStore hit-test rect in HitTestPoint as Rect.
commit-queue@webkit.org [Sat, 23 Jun 2012 12:21:28 +0000 (12:21 +0000)]
Store hit-test rect in HitTestPoint as Rect.
https://bugs.webkit.org/show_bug.cgi?id=89454

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-06-23
Reviewed by Darin Adler.

Calculate the rectangle early and store that instead of padding
to avoid recalculating the rectangle for every single element
hit tested.

No change in functionality. No new tests.

* page/EventHandler.cpp:
(WebCore::EventHandler::bestClickableNodeForTouchPoint):
(WebCore::EventHandler::bestZoomableAreaForTouchPoint):
* rendering/HitTestResult.cpp:
(WebCore::HitTestPoint::HitTestPoint):
(WebCore::HitTestPoint::operator=):
(WebCore::HitTestPoint::setPoint):
(WebCore::hitTestPointIntersects):
(WebCore::HitTestPoint::intersects):
(WebCore::HitTestResult::addNodeToRectBasedTestResult):
* rendering/HitTestResult.h:
(HitTestPoint):
(WebCore::HitTestPoint::boundingBox):
(WebCore::HitTestPoint::topPadding):
(WebCore::HitTestPoint::rightPadding):
(WebCore::HitTestPoint::bottomPadding):
(WebCore::HitTestPoint::leftPadding):
(HitTestResult):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::hitTestColumns):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::nodeAtPoint):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121096 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[GTK][WK2]Mis-spelt defaultWindowTitle
commit-queue@webkit.org [Sat, 23 Jun 2012 12:13:36 +0000 (12:13 +0000)]
[GTK][WK2]Mis-spelt defaultWindowTitle
https://bugs.webkit.org/show_bug.cgi?id=89808

Patch by Wajahat Siddiqui <mdwajahatali.siddiqui@motorola.com> on 2012-06-23
Reviewed by Carlos Garcia Campos.

* MiniBrowser/gtk/BrowserWindow.c:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121095 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed. Fix several GTK+ unit tests.
carlosgc@webkit.org [Sat, 23 Jun 2012 11:29:20 +0000 (11:29 +0000)]
Unreviewed. Fix several GTK+ unit tests.

GTK+ unit tests using WebViewTest::wait() started to fail due to a
bug introduced in r121093.

* UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::wait): Use this instead of m_mainLoop as user data
for the idle callback.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121094 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[GTK] Add ContextMenu API to WebKit2 GTK+ API
carlosgc@webkit.org [Sat, 23 Jun 2012 10:55:05 +0000 (10:55 +0000)]
[GTK] Add ContextMenu API to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=81011

Reviewed by Martin Robinson.

Add WebKitWebView::context-menu signal and WebKitContextMenu and
WebKitContextMenuItem objects to customize the default menu or
buils new menus.

* GNUmakefile.list.am: Add new files to destination.
* UIProcess/API/gtk/WebKitContextMenu.cpp: Added.
(webkitContextMenuFinalize):
(webkit_context_menu_init):
(webkit_context_menu_class_init):
(webkitContextMenuPopulate): Populate the given vector of
ContextMenuItems with the WebKitContextMenu items releasing the
items added to the vector.
(webkitContextMenuCreate): Create a new WebKitContextMenu for the
given WKArrayRef of WKContextMenuItemRef.
(webkitContextMenuSetParentItem): Set the parent menu item of the
menu. Used when a menu is added as a submenu of a menu item.
(webkitContextMenuGetParentItem): Return the parent menu item of
the menu.
(webkit_context_menu_new): Create a new WebKitContextMenu.
(webkit_context_menu_new_with_items): Create a new
WebKitContextMenu using the given list of WebKitContextMenuItem.
(webkit_context_menu_prepend): Add item at the beginning.
(webkit_context_menu_append): Add item at the end.
(webkit_context_menu_insert): Insert item at a random position.
(webkit_context_menu_move_item): Move an existing item to a new
position.
(webkit_context_menu_get_items): Get the list of items.
(webkit_context_menu_get_n_items): Get the number of items.
(webkit_context_menu_first): Get the first item.
(webkit_context_menu_last): Get the last item.
(webkit_context_menu_get_item_at_position): Get the item at the
given position.
(webkit_context_menu_remove): Remove the given item.
(webkit_context_menu_remove_all): Remove all items.
* UIProcess/API/gtk/WebKitContextMenu.h: Added.
* UIProcess/API/gtk/WebKitContextMenuActions.cpp: Added.
(webkitContextMenuActionIsCheckable): Check if the given stock
action is a toggle action.
(webkitContextMenuActionGetActionTag): Get the WebCore
ContextMenuAction corresponding to the given stock action.
(webkitContextMenuActionGetForContextMenuItem): Get the stock
action corresponding to the given WebCore ContextMenuAction.
(webkitContextMenuActionGetLabel): Get the label string of the
given stock action.
* UIProcess/API/gtk/WebKitContextMenuActions.h: Added.
* UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h: Added.
* UIProcess/API/gtk/WebKitContextMenuItem.cpp: Added.
(webkitContextMenuItemFinalize):
(webkit_context_menu_item_init):
(webkit_context_menu_item_class_init):
(checkAndWarnIfMenuHasParentItem): Check whether the given menu
is already inside another menu showing a warning in such case.
(webkitContextMenuItemSetSubMenu): Set the submenu of a menu item,
checking that the menu is not part of another menu and setting the
item as the parent of the submenu.
(webkitContextMenuItemCreate): Create a new WebKitContextMenuItem
for the given WKContextMenuItemRef.
(webkitContextMenuItemCreateForGtkItem): Create a new
WebKitContextMenuItem using the given GtkMenuItem.
(webkitContextMenuItemSetSubMenuFromGtkMenu): Set the given
GtkMenu as submenu of the item. This is used only to add Input
Methods submenu that is created by GTK.
(webkitContextMenuItemRelease): Release the WebCore
ContextMenuItem associated to the item.
(webkit_context_menu_item_new): Create a new WebKitContextMenuItem
for the given GtkAction.
(webkit_context_menu_item_new_from_stock_action): Create a new
WebKitContextMenuItem for a stock action.
(webkit_context_menu_item_new_from_stock_action_with_label):
Create a new WebKitContextMenuItem for a stock action using a
custom label.
(webkit_context_menu_item_new_with_submenu): Create a new
WebKitContextMenuItem with a submenu.
(webkit_context_menu_item_new_separator): Create a new separator
menu item.
(webkit_context_menu_item_get_action): Get the GtkAction of the item.
(webkit_context_menu_item_get_stock_action): Get the stock action
of the item.
(webkit_context_menu_item_is_separator): Whether item is a separator.
(webkit_context_menu_item_set_submenu): Set or replace the
submenu of the item.
(webkit_context_menu_item_get_submenu): Get the submenu of the item.
* UIProcess/API/gtk/WebKitContextMenuItem.h: Added.
* UIProcess/API/gtk/WebKitContextMenuItemPrivate.h: Added.
* UIProcess/API/gtk/WebKitContextMenuPrivate.h: Added.
* UIProcess/API/gtk/WebKitDefines.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_class_init): Add WebKitWebView::context-menu signal.
(getUnicodeMenuItemPosition): Helper function that returns the
position of the unicode menu item in the proposed context menu.
(webkitWebViewCreateAndAppendInputMethodsMenuItem): Use
WebKitContextMenu API to add the input methods submenu to the
default context menu.
(webkitWebViewPopulateContextMenu): Create a WebKitContextMenu for
the default context menu and emit WebKitWebView::context-menu
signal. Then populate the context menu proxy with the resulting
WebKitContextMenu.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseButtonPressEvent): In case of right click save
the event to be used by context menu signal.
(webkitWebViewBaseTakeContextMenuEvent): Return and release the
saved button event.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add sections for
WebKitContextMenu and WebKitContextMenuItem.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
* UIProcess/API/gtk/docs/webkit2gtk.types: Add
webkit_context_menu_get_type and webkit_context_menu_item_get_type.
* UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for context menu.
* UIProcess/API/gtk/tests/TestContextMenu.cpp: Added.
(testContextMenuDefaultMenu):
(testContextMenuPopulateMenu):
(testContextMenuCustomMenu):
(testContextMenuDisableMenu):
(testContextMenuSubMenu):
(beforeAll):
(afterAll):
* UIProcess/API/gtk/tests/TestMain.h:
(Test::addLogFatalFlag): Add a log level flag to the mask of flags
causing the program to abort.
(Test::removeLogFatalFlag): Remove a log level flag to the mask of
flags causing the program to abort.
* UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::quitMainLoop): Finish the main loop.
(WebViewTest::quitMainLoopAfterProcessingPendingEvents): Finish
the main loop when all pending events have been processed.
(quitMainLoopIdleCallback):
(WebViewTest::wait):
* UIProcess/API/gtk/tests/WebViewTest.h:
* UIProcess/API/gtk/webkit2.h: Include WebKitContextMenu.h,
WebKitContextMenuItem.h and WebKitContextMenuActions.h.
* UIProcess/API/gtk/webkit2marshal.list:
* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::WebContextMenuProxyGtk::showContextMenu): Attach the
popup menu to the view widget before showing it.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121093 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed. Fix chromium test expectations
ukai@chromium.org [Sat, 23 Jun 2012 10:50:10 +0000 (10:50 +0000)]
Unreviewed. Fix chromium test expectations

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121092 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[chromium] Return has value, in function returning void
commit-queue@webkit.org [Sat, 23 Jun 2012 09:50:59 +0000 (09:50 +0000)]
[chromium] Return has value, in function returning void
https://bugs.webkit.org/show_bug.cgi?id=89805

Patch by Kwang Yul Seo <skyul@company100.net> on 2012-06-23
Reviewed by Adam Barth.

Make WebFrameImpl::replaceSelection not return a value because it is a function returning void.

* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::replaceSelection):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121091 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed GTK gardening after 121063, adding IMAGE test expectation
zandobersek@gmail.com [Sat, 23 Jun 2012 08:26:27 +0000 (08:26 +0000)]
Unreviewed GTK gardening after 121063, adding IMAGE test expectation
for tests in fast/css-grid-layout now that some reftests are working
properly and causing failures for platforms that don't support the
feature yet.

* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121090 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[GTK] Add a new webkit2 tests slave bot
sergio@webkit.org [Sat, 23 Jun 2012 07:49:49 +0000 (07:49 +0000)]
[GTK] Add a new webkit2 tests slave bot
https://bugs.webkit.org/show_bug.cgi?id=89336

Reviewed by Csaba Osztrogonác.

Slave configuration for a new GTK 64 bit release bot that will run
WebKit2 tests.

Also BuildAndTest now accepts the "triggers" parametter,
this means that apart from building and testing it can trigger
some other build/test sequences in other slaves.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(BuildAndTestFactory.__init__):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121089 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed. Update my email.
kseo@webkit.org [Sat, 23 Jun 2012 07:18:00 +0000 (07:18 +0000)]
Unreviewed. Update my email.

* Scripts/webkitpy/common/config/committers.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121088 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed. Rolled DEPS.
commit-queue@webkit.org [Sat, 23 Jun 2012 05:55:05 +0000 (05:55 +0000)]
Unreviewed.  Rolled DEPS.

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-22

* DEPS:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Chromium] DumpRenderTree on Android needs to configure fonts for testing
abarth@webkit.org [Sat, 23 Jun 2012 02:32:51 +0000 (02:32 +0000)]
[Chromium] DumpRenderTree on Android needs to configure fonts for testing
https://bugs.webkit.org/show_bug.cgi?id=89721

Reviewed by Nate Chapin.

This patch teaches DumpRenderTree to configure Skia to use the fallback
fonts that the LayoutTests assume. This patch reduces the number result
differences between chromium-android and chromium-linux.

* DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
* DumpRenderTree/chromium/TestShellAndroid.cpp:
(platformInit):
* DumpRenderTree/chromium/android_fallback_fonts.xml: Added.
* DumpRenderTree/chromium/android_main_fonts.xml: Added.
* Scripts/webkitpy/layout_tests/port/chromium_android.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121086 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoText with text-overflow:ellipsis and text-align:right is left aligned
benjamin@webkit.org [Sat, 23 Jun 2012 02:02:28 +0000 (02:02 +0000)]
Text with text-overflow:ellipsis and text-align:right is left aligned
https://bugs.webkit.org/show_bug.cgi?id=88705

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-06-22
Reviewed by Dan Bernstein.

Source/WebCore:

When building the line of a text with overflow, we do not know if we can place
an ellipsis and where it should be. Because of that, text is laid out as if it does
not have text-overflow: ellipsis.

This causes problems with text-alignement right in LTR and left in RTL. The shortened text
did not follow the allignment.

This patch changes the position of lines with ellipsis after layout to follow the allignment.
In RenderBlock::checkLinesForTextOverflow(), the call to RootInlineBox::placeEllipsis() now
also gives the width of the truncated text. We use this width to re-compute the alignement and
shift the box if necessary.

In RenderBlock::deleteEllipsisLineBoxes() we revert the text to the position computed with the
total width. This way all layout computation is done as usual.

Tests: fast/css/text-overflow-ellipsis-text-align-left.html
       fast/css/text-overflow-ellipsis-text-align-right.html

* rendering/InlineBox.cpp:
(WebCore::InlineBox::canAccommodateEllipsis): Make the method const for readability, truncating is
done later in placeEllipsisBox().
(WebCore::InlineBox::placeEllipsisBox): Add an output argument, truncatedWidth, giving the width
of the text + ellipsis after truncation (if any truncation can be done).
* rendering/InlineBox.h:
(InlineBox):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineBox::adjustLogicalPosition): adjustPosition() logical coordinates.
(WebCore::InlineFlowBox::canAccommodateEllipsis):
(WebCore::InlineFlowBox::placeEllipsisBox):
* rendering/InlineFlowBox.h:
(InlineFlowBox):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::placeEllipsisBox):
* rendering/InlineTextBox.h:
(InlineTextBox):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::deleteEllipsisLineBoxes): In addition to removing the truncation, we
need to revert the shift introduced by checkLinesForTextOverflow(). This restore the lines
to its original, untruncated position in order to layout the block correctly in RenderBlock::layoutInlineChildren().
(WebCore::RenderBlock::checkLinesForTextOverflow): After we truncate the text, we now recompute the shift we need
for alignment, and move the line accordingly.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::placeEllipsis): Return the width of the truncated text + the width of the ellipsis.
(WebCore::RootInlineBox::placeEllipsisBox):
(WebCore::RootInlineBox::adjustPosition):
* rendering/RootInlineBox.h:
(RootInlineBox):

LayoutTests:

* fast/css/text-overflow-ellipsis-text-align-center.html: Added.
* fast/css/text-overflow-ellipsis-text-align-justify.html: Added.
* fast/css/text-overflow-ellipsis-text-align-left.html: Added.
* fast/css/text-overflow-ellipsis-text-align-right.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-center.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-justify.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-left.html: Added.
* fast/css/vertical-text-overflow-ellipsis-text-align-right.html: Added.
The vertical-text tests are incorrect due to other bugs. Add they to track regressions/progressions
going forward.

* platform/chromium/TestExpectations: The tests need platform specific results.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
* platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121085 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoWeb Inspector: Fix negative time interval on zoom-in
caseq@chromium.org [Sat, 23 Jun 2012 01:35:16 +0000 (01:35 +0000)]
Web Inspector: Fix negative time interval on zoom-in
https://bugs.webkit.org/show_bug.cgi?id=89798

Patch by Eugene Klyuchnikov <eustas.big@gmail.com> on 2012-06-22
Reviewed by Pavel Feldman.

Steps to reproduce:
1) Record timeline
2) Select small range with left tick close to zero
3) Move pointer to the right end of the ruler
4) Zoom-in with mouse-wheel

Result: right tick goes below the zero.

* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewWindow.prototype._zoom):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121084 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac
achicu@adobe.com [Sat, 23 Jun 2012 01:23:48 +0000 (01:23 +0000)]
[CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac
https://bugs.webkit.org/show_bug.cgi?id=89781

Reviewed by Dean Jackson.

Source/JavaScriptCore:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

No new tests, just re-enabled existing tests.

* css/CSSValueKeywords.in: Added empty line to force a rebuild of the file on the EWS.
* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

* Configurations/FeatureDefines.xcconfig:

Tools:

Added CSS Shaders as enabled by default on Safari for Mac.

* Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Renabled CSS Shaders tests on Safari for Mac.

* platform/mac/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121083 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoIndexedDB: Avoid infinite loop if we try to encode -1 for leveldb
dgrogan@chromium.org [Sat, 23 Jun 2012 01:16:20 +0000 (01:16 +0000)]
IndexedDB: Avoid infinite loop if we try to encode -1 for leveldb
https://bugs.webkit.org/show_bug.cgi?id=89625

Source/WebCore:

It gets worse, memory is allocated inside the loop so the process is
eventually killed by the OS.

Reviewed by Tony Chang.

Added tests to Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp

* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeInt):
(WebCore::IDBLevelDBCoding::encodeVarInt):

Source/WebKit/chromium:

Reviewed by Tony Chang.

* tests/IDBLevelDBCodingTest.cpp:
(IDBLevelDBCoding::TEST):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121082 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed Chromium gardening. Marked test as needing rebaseline
kbr@google.com [Sat, 23 Jun 2012 00:36:27 +0000 (00:36 +0000)]
Unreviewed Chromium gardening. Marked test as needing rebaseline
after http://trac.webkit.org/changeset/121076 per jamesr.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121080 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[Shadow] ShadowRoot.activeElement should use the result of re-targeting algorithm.
hayato@chromium.org [Sat, 23 Jun 2012 00:31:02 +0000 (00:31 +0000)]
[Shadow] ShadowRoot.activeElement should use the result of re-targeting algorithm.
https://bugs.webkit.org/show_bug.cgi?id=89763

Reviewed by Dimitri Glazkov.

Source/WebCore:

Use the result of the re-targeting algorithm in calculating
shadow root's activeElement so that ShadowRoot.activeElement returns
a focused distributed node correctly as the algorithm says.

The spec is:
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#active-element

Tests: fast/dom/shadow/shadow-root-activeElement.html

* dom/EventDispatcher.cpp:
(WebCore):
(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::ensureEventAncestors):
* dom/TreeScope.cpp:
(WebCore::TreeScope::focusedNode):
* html/shadow/InsertionPoint.h:
(WebCore::InsertionPoint::contains):

LayoutTests:

* fast/dom/shadow/shadow-root-activeElement-expected.txt:
* fast/dom/shadow/shadow-root-activeElement.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121079 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[chromium] WebKit API plumbing for applicationCache.abort()
michaeln@google.com [Sat, 23 Jun 2012 00:23:58 +0000 (00:23 +0000)]
[chromium] WebKit API plumbing for applicationCache.abort()
https://bugs.webkit.org/show_bug.cgi?id=89792

Reviewed by Darin Fisher.

* public/WebApplicationCacheHost.h:
(WebKit::WebApplicationCacheHost::abort):
* src/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::abort):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121078 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed Chromium gardening. Suppressed additional test failures
kbr@google.com [Sat, 23 Jun 2012 00:03:16 +0000 (00:03 +0000)]
Unreviewed Chromium gardening. Suppressed additional test failures
tracked in bugs 73692 and 89789.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121077 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[chromium] LayerRendererChromium is not getting visibility messages in single threade...
jamesr@google.com [Fri, 22 Jun 2012 23:57:43 +0000 (23:57 +0000)]
[chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=89045

Reviewed by Adrienne Walker.

Based on patch by Michal Mocny <mmocny@google.com>.

Source/WebCore:

Invariants:

1.) We never commit (paint, animate, any of it) when not visible on the main thread -except- for
compositeAndReadback, regardless of threaded vs non-threaded mode
2.) CCLayerTreeHost::m_contentsTextureManager's memory budget is only set by updateLayers() when we are going to
make a frame and is always set to a non-zero value
3.) Zero-sized allocations from the GPU process are always serviced immediately on the impl thread.  Non-zero
allocations are met in the next frame, whenever we would produce that frame according to our usual frame
scheduling logic.
4.) The impl thread always knows the set of currently-allocated managed texture IDs and can delete them all
whenever it likes without needing the main thread to be responsive.

Details:

There are two main changes - tweaking how the contents texture manager's budget is handled and tweaking frame
scheduling for the !visible case.

The scheduling change is a bit more subtle but it unifies the single and multi threaded paths and is really
important.  Except for compositeAndReadback (which I'll talk about below), we simply won't produce frames when
not visible.  This already happens in the single threaded path thanks to render_widget so the only change is to
the threaded path.  The difficulty here is we might post a beginFrame task from the impl thread and then get a
setVisible(false) call on the main thread before the beginFrame task runs.  Since I'm making the setVisible()
call a blocking call from main thread -> impl thread, when the beginFrame task eventually does run on the main
thread we can know that the impl thread's notion of visibility is in sync with the main threads.  Thus I'm
planning to simply abort the frame before doing any processing on the main thread.  The scheduler will know if
it gets a beginFrameAborted and COMMIT_STATE_IDLE.

compositeAndReadback is special - this call currently does come in when we aren't visible (in single and
threaded mode) and we need to service it.  In particular, we need to send a beginFrame over and have it
not be ignored on the main thread.  For this I'm thinking of having the proxy keep track of whether it's
servicing a compositeAndReadback() and use that bit on the main thread to know to process the beginFrame
normally.  On the impl side, we need a few changes.  First, we have to allocate a default framebuffer
(ensureFramebufferCHROMIUM) even if we've dropped it previously and remember to discard it after the
readPixels().  Second, we have to provide a non-zero contents texture allocation on the beginFrame message, and
again remember to delete the textures after the readPixels().  Third, we have to know that the beginFrame is a
forced frame so when we get the beginFrameComplete we go ahead with the rest of the frame.  For this, I think
I'll have to add ACTION_BEGIN_FORCED_FRAME and a corresponding COMMIT_STATE_FORCED_FRAME_IN_PROGRESS so the
scheduler can keep track of the magicness of this frame, and then add some logic after the readpixels call to
drop resources after the readback.  It's probably a good time to stop swapping on readbacks too....

The contents texture manager's budget is only relevant when we want to make a frame, so it's now passed in on
the updateLayers().  Since we only make frames when we are visible and we never have a zero allocation when
visible (thanks to the frame scheduling changes above), this value is always non-zero.  The other thing the
texture manager needs to know about is if we've killed all of the underlying textures from the impl thread -
this bit is passed in by the proxy before the updateLayers() call.  This means if we're running while visible
and the manager wants to decrease our budget to something other than zero, we'll get a new (non-zero) allocation
on the impl thread, schedule a frame, then when it's time to make the frame pass the new lower limit in to
updateLayers(), then have the contents texture manager evict down to our new limit and make a frame with the new
budget.  When the commit completes we'll get notified on the impl thread of which textures the contents texture
manager decided to evict and issue the deleteTexture() calls on them.

The texture budget we pass in will be based on the most recent non-zero memory allocation we received from the
GPU memory manager, or some default value I'll pull out my ass if we haven't heard anything yet.  On compositor
initialization, we can't afford to wait for a round-trip through the GPU process to get a budget for the first
frame.  I don't think handling a decrease to a non-zero budget on a visible tab needs to be terribly urgent - we
can get to it when we get to making the next frame.  If we wanted to satisfy reduced texture budgets directly
from the impl thread, we could keep a priority-list ordered set of textures once we have priorities and delete
based on that.  Let's worry about that later.

* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::setVisible):
(WebCore::LayerRendererChromium::setGpuMemoryAllocation):
(WebCore):
(WebCore::LayerRendererChromium::swapBuffers):
(WebCore::LayerRendererChromium::getFramebufferPixels):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore):
(LayerRendererChromium):
* platform/graphics/chromium/TextureManager.cpp:
(WebCore::TextureManager::evictAndRemoveAllDeletedTextures):
(WebCore):
* platform/graphics/chromium/TextureManager.h:
(TextureAllocator):
(TextureManager):
* platform/graphics/chromium/TrackingTextureAllocator.cpp:
(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):
(WebCore):
(WebCore::TrackingTextureAllocator::deleteAllTextures):
* platform/graphics/chromium/TrackingTextureAllocator.h:
(TrackingTextureAllocator):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initializeLayerRenderer):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
(WebCore::CCLayerTreeHost::setVisible):
(WebCore::CCLayerTreeHost::evictAllContentTextures):
(WebCore::CCLayerTreeHost::updateLayers):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(CCLayerTreeHost):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::commitComplete):
(WebCore::CCLayerTreeHostImpl::canDraw):
(WebCore::CCLayerTreeHostImpl::context):
(WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
(WebCore):
(WebCore::CCLayerTreeHostImpl::setMemoryAllocationLimitBytes):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(CCLayerTreeHostImplClient):
(WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastCommit):
(WebCore::CCLayerTreeHostImpl::memoryAllocationLimitBytes):
(CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCProxy.h:
(CCProxy):
* platform/graphics/chromium/cc/CCRenderer.h:
(CCRendererClient):
* platform/graphics/chromium/cc/CCScheduler.cpp:
(WebCore::CCScheduler::beginFrameComplete):
(WebCore::CCScheduler::beginFrameAborted):
(WebCore):
(WebCore::CCScheduler::didSwapBuffersComplete):
(WebCore::CCScheduler::didLoseContext):
(WebCore::CCScheduler::didRecreateContext):
(WebCore::CCScheduler::vsyncTick):
* platform/graphics/chromium/cc/CCScheduler.h:
(CCScheduler):
* platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
(WebCore::CCSchedulerStateMachine::beginFrameAborted):
(WebCore):
* platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setVisible):
(WebCore):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::commitAndComposite):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(CCSingleThreadProxy):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::setVisible):
(WebCore):
(WebCore::CCThreadProxy::setVisibleOnImplThread):
(WebCore::CCThreadProxy::scheduledActionBeginFrame):
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::beginFrameAbortedOnImplThread):
(WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
(WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):
(BeginFrameAndCommitState):
* platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
(WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
(WebCore::CCVideoLayerImpl::willDraw):
(WebCore::CCVideoLayerImpl::willDrawInternal):
(WebCore::CCVideoLayerImpl::FramePlane::allocateData):
(WebCore::CCVideoLayerImpl::FramePlane::freeData):
(WebCore::CCVideoLayerImpl::allocatePlaneData):
(WebCore::CCVideoLayerImpl::freePlaneData):
(WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
(WebCore::CCVideoLayerImpl::didLoseContext):
* platform/graphics/chromium/cc/CCVideoLayerImpl.h:
(FramePlane):

Source/WebKit/chromium:

Update various test fixtures and tests to cover scheduling, visibility, and resource allocation changes.

* tests/CCLayerTreeHostImplTest.cpp:
* tests/CCLayerTreeHostTest.cpp:
(CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::beginTest):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::afterTest):
(WTF):
(WTF::TEST_F):
(WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
(WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):
* tests/CCSchedulerStateMachineTest.cpp:
(WebCore::TEST):
* tests/CCTiledLayerTestCommon.h:
* tests/FakeWebGraphicsContext3D.h:
(WebKit::FakeWebGraphicsContext3D::FakeWebGraphicsContext3D):
(FakeWebGraphicsContext3D):
(WebKit::FakeWebGraphicsContext3D::createTexture):
* tests/LayerRendererChromiumTest.cpp:
(TEST_F):
* tests/TiledLayerChromiumTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121076 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoLayout test fast/regions/get-regions-by-content-node2.html crashing intermittently
kbr@google.com [Fri, 22 Jun 2012 23:41:50 +0000 (23:41 +0000)]
Layout test fast/regions/get-regions-by-content-node2.html crashing intermittently
https://bugs.webkit.org/show_bug.cgi?id=89794

Unreviewed; suppressed test failure.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121075 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoAdd support for test_expectations_android.txt for overriding test expecations on...
abarth@webkit.org [Fri, 22 Jun 2012 23:40:26 +0000 (23:40 +0000)]
Add support for test_expectations_android.txt for overriding test expecations on the chromium-android branch
https://bugs.webkit.org/show_bug.cgi?id=89791

Reviewed by Dirk Pranke.

Downstream, the chromium-android port maintains a test expectations
file to keep track of which tests pass or fail. That causes them to
keep a patch in chromium_android.py in their branch.

This patch teaches chromium_android.py to use test_expectations_android.txt.
We don't intend to use this file upstream, but having this code patch
upstream lets us unfork webkitpy.

* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidPort.expectations_files):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121074 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoDFG tier-up should happen in prologues, not epilogues
fpizlo@apple.com [Fri, 22 Jun 2012 23:32:59 +0000 (23:32 +0000)]
DFG tier-up should happen in prologues, not epilogues
https://bugs.webkit.org/show_bug.cgi?id=89752

Reviewed by Geoffrey Garen.

This change has two outcomes:

1) Slightly reduces the likelihood that a function will be optimized both
standalone and via inlining.  Previously, if you had a call sequence like foo()
calls bar() exactly once, and nobody else calls bar(), then bar() would get
optimized first (because it returns first) and then foo() gets optimized.  If foo()
can inline bar() then that means that bar() gets optimized twice.  But now, if we
optimize in prologues, then foo() will be optimized first.  If it inlines bar(),
that means that there will no longer be any calls to bar().

2) It lets us kill some code in JITStubs.  Epilogue tier-up was very different from
loop tier-up, since epilogue tier-up should not attempt OSR.  But prologue tier-up
requires OSR (albeit really easy OSR since it's the top of the compilation unit),
so it becomes just like loop tier-up.  As a result, we now have one optimization
hook (cti_optimize) instead of two (cti_optimize_from_loop and
cti_optimize_from_ret).

As a consequence of not having an optimization check in epilogues, the OSR exit
code must now trigger reoptimization itself instead of just signaling the epilogue
check to fire.

This also adds the ability to count the number of DFG compilations, which was
useful for debugging this patch and might be useful for other things in the future.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::reoptimize):
(JSC):
* bytecode/CodeBlock.h:
(CodeBlock):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseCodeBlock):
* dfg/DFGDriver.cpp:
(DFG):
(JSC::DFG::getNumCompilations):
(JSC::DFG::compile):
* dfg/DFGDriver.h:
(DFG):
* dfg/DFGOSRExitCompiler.cpp:
(JSC::DFG::OSRExitCompiler::handleExitCounts):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* jit/JIT.cpp:
(JSC::JIT::emitOptimizationCheck):
* jit/JIT.h:
* jit/JITCall32_64.cpp:
(JSC::JIT::emit_op_ret):
(JSC::JIT::emit_op_ret_object_or_this):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_ret):
(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::emit_op_enter):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_enter):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* jit/JITStubs.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121073 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoREGRESSION(r116446): Crash in RenderBoxModelObject::adjustedPositionRelativeToOffsetP...
jchaffraix@webkit.org [Fri, 22 Jun 2012 23:29:30 +0000 (23:29 +0000)]
REGRESSION(r116446): Crash in RenderBoxModelObject::adjustedPositionRelativeToOffsetParent
https://bugs.webkit.org/show_bug.cgi?id=89785

Reviewed by Abhishek Arya.

Source/WebCore:

Test: fullscreen/full-screen-crash-offsetLeft.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
Added a NULL-check for parent() as it can be NULL in fullscreen mode. Also updated a stale
comment while touching the code.

LayoutTests:

* fullscreen/full-screen-crash-offsetLeft-expected.html: Added.
* fullscreen/full-screen-crash-offsetLeft.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121072 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoMake SvgCubics performance test more consistent
pdr@google.com [Fri, 22 Jun 2012 23:26:12 +0000 (23:26 +0000)]
Make SvgCubics performance test more consistent
https://bugs.webkit.org/show_bug.cgi?id=89778

Reviewed by Ryosuke Niwa.

Previously this test ran twice for each iteration, but this led to inconsistent repaints.
This change updates the test to only run once per iteration, and adds even more cubics
so that the test runs consistently in the 80ms range on my Linux desktop.

Performance results on my desktop:
    RESULT SVG: SvgCubics= 80.5 ms
    median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms

    RESULT SVG: SvgCubics= 80.1 ms
    median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms

    RESULT SVG: SvgCubics= 81.45 ms
    median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms

    RESULT SVG: SvgCubics= 78.9 ms
    median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms

* SVG/SvgCubics.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121071 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[chromium] Notify the document if a plugin accepts touch input events
commit-queue@webkit.org [Fri, 22 Jun 2012 23:24:56 +0000 (23:24 +0000)]
[chromium] Notify the document if a plugin accepts touch input events
https://bugs.webkit.org/show_bug.cgi?id=89769

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2012-06-22
Reviewed by Adam Barth.

The browser sends touch events to webkit only if webkit has any touch-event handlers. So it is
necessary to notify the document when a plugin starts accepting touch-events so that it can in
turn tell the browser to send it touch events.

* public/WebPluginContainer.h:
(WebPluginContainer):
* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::setIsAcceptingTouchEvents):
(WebKit):
(WebKit::WebPluginContainerImpl::WebPluginContainerImpl):
(WebKit::WebPluginContainerImpl::~WebPluginContainerImpl):
* src/WebPluginContainerImpl.h:
(WebPluginContainerImpl):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121070 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoUnreviewed, rolling out r121064.
kbr@google.com [Fri, 22 Jun 2012 23:16:51 +0000 (23:16 +0000)]
Unreviewed, rolling out r121064.
http://trac.webkit.org/changeset/121064
https://bugs.webkit.org/show_bug.cgi?id=88268

Broke Chromium Mac build.

Source/Platform:

* Platform.gypi:
* chromium/public/WebLayerTreeView.h:
(WebKit):
(WebLayerTreeView):
* chromium/public/WebRenderingStats.h: Removed.

Source/WebCore:

* WebCore.gypi:
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::updateAnimations):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(WebCore):
(WebCore::CCLayerTreeHost::frameNumber):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::drawLayers):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(WebCore::CCLayerTreeHostImpl::frameNumber):
(CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCProxy.h:
(WebCore):
(CCProxy):
* platform/graphics/chromium/cc/CCRenderingStats.h: Removed.
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):

Source/WebKit/chromium:

* public/WebView.h:
(WebKit):
(WebView):
* src/WebLayerTreeView.cpp:
* src/WebViewImpl.cpp:
* src/WebViewImpl.h:
(WebViewImpl):
* tests/CCLayerTreeHostTest.cpp:
(WTF::CCLayerTreeHostTestScrollSimple::layout):
(WTF::CCLayerTreeHostTestScrollMultipleRedraw::drawLayersOnCCThread):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommitAndDrawFrame):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommit):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121069 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years ago[EFL][WK2] Support keyboard event
ryuan.choi@samsung.com [Fri, 22 Jun 2012 23:13:42 +0000 (23:13 +0000)]
[EFL][WK2] Support keyboard event
https://bugs.webkit.org/show_bug.cgi?id=89268

Reviewed by Chang Shu.

Source/WebCore:

Extract keyDownCommandsMap and keyPressCommandsMap to share WebKit1/Efl and WebKit2/Efl.

* platform/efl/EflKeyboardUtilities.cpp:
(WebCore):
(WebCore::keyDownCommandsMap):
(WebCore::keyPressCommandsMap):
(KeyDownEntry):
(KeyPressEntry):
(WebCore::createKeyDownCommandMap):
(WebCore::createKeyPressCommandMap):
(WebCore::getKeyDownCommandName):
(WebCore::getKeyPressCommandName):
* platform/efl/EflKeyboardUtilities.h:
(WebCore):

Source/WebKit/efl:

Extract keyDownCommandsMap and keyPressCommandsMap to share WebKit1/Efl and WebKit2/Efl.

* WebCoreSupport/EditorClientEfl.cpp:
(WebCore::EditorClientEfl::interpretKeyEvent):

Source/WebKit2:

* WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
(WebKit::WebEditorClient::handleKeyboardEvent): Implemented default behavior.
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::interpretKeyEvent): Implemented like WebKit1/Efl did.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121068 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoSkipping this test because it's failing most of the time since
bdakin@apple.com [Fri, 22 Jun 2012 23:09:43 +0000 (23:09 +0000)]
Skipping this test because it's failing most of the time since
recent modifications.
https://bugs.webkit.org/show_bug.cgi?id=89790 will be used to
track fixing the real issue.

* platform/mac/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121067 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 years agoIndexedDB: refactor index-writing to be more self-contained
commit-queue@webkit.org [Fri, 22 Jun 2012 23:06:18 +0000 (23:06 +0000)]
IndexedDB: refactor index-writing to be more self-contained
https://bugs.webkit.org/show_bug.cgi?id=89607

Patch by Alec Flett <alecflett@chromium.org> on 2012-06-22
Reviewed by Tony Chang.

Refactor index-writing into the IndexWriter class. Does not change
existing behavior but begins migrating index-writing logic into a
self-contained class that can eventually be used in the
frontend (renderer) side of IndexedDB.

No new tests, behavior is unchanged.

* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::populateIndex):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121066 268f45cc-cd09-0410-ab3c-d52691b4dbfc