Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Unified Diff: Source/WebCore/ChangeLog

Side-by-side diff isn't available for this file because of its large size.
Issue 11644013: Merge 137964 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1312/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: Source/WebCore/ChangeLog
===================================================================
--- Source/WebCore/ChangeLog (revision 138104)
+++ Source/WebCore/ChangeLog (working copy)
@@ -1,3 +1,12770 @@
+2012-12-17 Matthew Dempsky <mdempsky@google.com>
+
+ Regression causing DOM objects to have unstable NPObject* references with v8 bindings
+ https://bugs.webkit.org/show_bug.cgi?id=104921
+
+ Reviewed by Kentaro Hara.
+
+ Fix regression introduced by changeset 135804 resulting in
+ unstable NPObject* references for v8 objects. In the iter !=
+ v8NPObjectMap->end() code path, objectVector was left unassigned
+ if the for loop terminated without returning.
+
+ Also, V8Object::GetIdentityHash() is documented as not being guaranteed
+ as unique. As such, don't ASSERT() that two objects with the same hash
+ must therefor be the same object.
+
+ Tests: plugins/npruntime/embed-property-iframe-equality.html
+
+ * bindings/v8/NPV8Object.cpp:
+ (WebCore::npCreateV8ScriptObject): Fix.
+
+2012-12-17 Chris Fleizach <cfleizach@apple.com>
+
+ Seamless iframe should not announce a new browsing context
+ https://bugs.webkit.org/show_bug.cgi?id=86317
+
+ Reviewed by Eric Seidel.
+
+ Introduce a new role for seamless frames so that the platforms can decide what to do
+ with this kind of object. For the mac, it's exposed as a group.
+
+ Test: platform/mac/accessibility/seamless-iframe.html
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore):
+ * accessibility/AccessibilityNodeObject.h:
+ (AccessibilityNodeObject):
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::isWebArea):
+ (WebCore::AccessibilityObject::isSeamlessWebArea):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::parentObjectIfExists):
+ (WebCore::AccessibilityRenderObject::parentObject):
+ (WebCore::AccessibilityRenderObject::boundingBoxRect):
+ (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
+ (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+ * accessibility/mac/WebAccessibilityObjectWrapper.mm:
+ (createAccessibilityRoleMap):
+
+2012-12-17 KyungTae Kim <ktf.kim@samsung.com>
+
+ Percentage width replaced element incorrectly rendered when intrinsic size changed
+ https://bugs.webkit.org/show_bug.cgi?id=102784
+
+ Reviewed by Tony Chang.
+
+ To make relayout when the image dimension is changed,
+ and if the logical width is percent type and the containing block fits to it.
+ In this case, the containing block's width need to be updated first,
+ because the 'newWidth' was calculated from the 'old containing block width'.
+
+ Test: fast/css/percent-width-img-src-change.html
+
+ * rendering/RenderImage.cpp:
+ (WebCore::RenderImage::imageDimensionsChanged):
+
+2012-12-17 Beth Dakin <bdakin@apple.com>
+
+ DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since
+ that varies
+ https://bugs.webkit.org/show_bug.cgi?id=105116
+ -and corresponding-
+ <rdar://problem/12889449>
+
+ Reviewed by Geoff Garen.
+
+ DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since that
+ varies depending on window size. This can lead to a huge amount of variability in
+ the heuristic which is not desired. Instead, we should use a hard-coded rect.
+ * page/Page.cpp:
+ (WebCore::relevantViewRect):
+ (WebCore):
+ (WebCore::Page::addRelevantRepaintedObject):
+ (WebCore::Page::addRelevantUnpaintedObject):
+
+2012-12-17 Simon Fraser <simon.fraser@apple.com>
+
+ Fix repositioning of fixed elements on zooming
+ https://bugs.webkit.org/show_bug.cgi?id=105223
+
+ Reviewed by Beth Dakin.
+
+ When zoomed, scrolling would move the layers of fixed-position
+ elements oddly. This happened because on the scrolling thread we
+ passed a scale of 1, rather than the actual page scale to
+ scrollOffsetForFixedPosition().
+
+ Fix by plumbing the page scale through the scrolling state node
+ to the scrolling node.
+
+ Test: platform/mac/tiled-drawing/fixed/four-bars-zoomed.html
+
+ * page/scrolling/ScrollingStateScrollingNode.cpp:
+ (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
+ (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
+ (WebCore::ScrollingStateScrollingNode::dumpProperties):
+ * page/scrolling/ScrollingStateScrollingNode.h:
+ (WebCore::ScrollingStateScrollingNode::frameScaleFactor):
+ (ScrollingStateScrollingNode):
+ * page/scrolling/ScrollingTreeScrollingNode.cpp:
+ (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
+ (WebCore::ScrollingTreeScrollingNode::update):
+ * page/scrolling/ScrollingTreeScrollingNode.h:
+ (WebCore::ScrollingTreeScrollingNode::frameScaleFactor):
+ (ScrollingTreeScrollingNode):
+ * page/scrolling/mac/ScrollingCoordinatorMac.h:
+ (ScrollParameters):
+ * page/scrolling/mac/ScrollingCoordinatorMac.mm:
+ (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
+ (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
+ * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
+ (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
+
+2012-12-17 Dima Gorbik <dgorbik@apple.com>
+
+ Implement matching cue by the class name with ::cue pseudo element
+ https://bugs.webkit.org/show_bug.cgi?id=104191
+
+ Reviewed by Antti Koivisto.
+
+ Implemented the ::cue() pseudo-element with an argument that may hold a simple selector list.
+ This enables matching cue objects by the class name.
+
+ Test: media/track/track-css-matching.html
+
+ * css/CSSGrammar.y.in: support parsing the ::cue() with an argument.
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::detectFunctionTypeToken): tokenize the 'cue'.
+ (WebCore::CSSParser::updateSpecifiersWithElementName): do not set the tag for the cue pseudo-element because
+ the ::cue may match elements with different tags.
+ (WebCore::CSSParser::updateSpecifiers): the behavior for the PseudoCue selector should be same as for
+ unknown pseudo elements - the pseudo-element should stay on top of the selector chain.
+ * css/CSSSelector.cpp: added the type detection for the new selector.
+ (WebCore::CSSSelector::pseudoId):
+ (WebCore::nameToPseudoTypeMap):
+ (WebCore::CSSSelector::extractPseudoType):
+ * css/CSSSelector.h:
+ * css/RuleSet.cpp: add a new list to hold all the rulesets for the new pseudo element.
+ (WebCore::RuleSet::reportMemoryUsage):
+ (WebCore::RuleSet::addRule):
+ (WebCore::RuleSet::shrinkToFit):
+ * css/RuleSet.h:
+ (RuleSet):
+ (WebCore::RuleSet::cuePseudoRules):
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::checkOneSelector):
+ * css/SelectorChecker.h:
+ (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::collectMatchingRules):
+ * dom/Element.cpp: an addition to the rare data to be able to find out if the node is a webvtt node.
+ (WebCore):
+ (WebCore::Element::isWebVTTNode):
+ (WebCore::Element::setIsWebVTTNode):
+ (WebCore::Element::cloneDataFromElement):
+ * dom/Element.h:
+ (Element):
+ * dom/ElementRareData.h:
+ (ElementRareData):
+ * dom/NodeRareData.h:
+ (WebCore::NodeRareData::NodeRareData):
+ (NodeRareData):
+ (WebCore::NodeRareData::isWebVTTNode):
+ (WebCore::NodeRareData::setIsWebVTTNode):
+ * html/track/TextTrackCue.cpp:
+ (WebCore::TextTrackCue::markNodesAsWebVTTNodes): mark the cloned nodes as WebVTT nodes.
+ (WebCore):
+ (WebCore::TextTrackCue::getCueAsHTML):
+ * html/track/TextTrackCue.h:
+ (TextTrackCue):
+ * html/track/WebVTTParser.cpp:
+ (WebCore::WebVTTParser::constructTreeFromToken):
+ * rendering/style/RenderStyleConstants.h:
+
+2012-12-17 Michael Pruett <michael@68k.org>
+
+ IndexedDB: Don't use strings to represent serialized values
+ https://bugs.webkit.org/show_bug.cgi?id=104354
+
+ Reviewed by Kentaro Hara.
+
+ Use Vector<uint8_t> rather than String to represent serialized values
+ in IndexedDB. This change is necessary to implement IndexedDB for JSC.
+
+ Tests: storage/indexeddb/*
+
+ * Modules/indexeddb/IDBBackingStore.cpp:
+ (WebCore::IDBBackingStore::getRecord):
+ (WebCore::IDBBackingStore::putRecord):
+ (WebCore::ObjectStoreKeyCursorImpl::value):
+ (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
+ (WebCore::ObjectStoreCursorImpl::value):
+ (ObjectStoreCursorImpl):
+ (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
+ (WebCore::IndexKeyCursorImpl::value):
+ (WebCore::IndexCursorImpl::value):
+ (WebCore::IndexCursorImpl::IndexCursorImpl):
+ (IndexCursorImpl):
+ (WebCore::IndexCursorImpl::loadCurrentRow):
+ * Modules/indexeddb/IDBBackingStore.h:
+ (IDBBackingStore):
+ (Cursor):
+ * Modules/indexeddb/IDBCursorBackendImpl.cpp:
+ (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
+ * Modules/indexeddb/IDBCursorBackendImpl.h:
+ (WebCore::IDBCursorBackendImpl::value):
+ * Modules/indexeddb/IDBIndexBackendImpl.cpp:
+ (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
+ * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
+ (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
+ (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
+ * bindings/js/SerializedScriptValue.cpp:
+ (WebCore::SerializedScriptValue::SerializedScriptValue):
+ (WebCore):
+ * bindings/js/SerializedScriptValue.h:
+ * bindings/v8/SerializedScriptValue.cpp:
+ (WebCore::SerializedScriptValue::createFromWireBytes):
+ (WebCore):
+ (WebCore::SerializedScriptValue::toWireBytes):
+ * bindings/v8/SerializedScriptValue.h:
+ (SerializedScriptValue):
+
+2012-12-17 Jaehun Lim <ljaehun.lim@samsung.com>
+
+ Change SET_VAR, SET_BORDERVALUE_COLOR macro to require semicolon(;) at the end of the line
+ https://bugs.webkit.org/show_bug.cgi?id=104774
+
+ Reviewed by Eric Seidel.
+
+ Remove the last ; in SET_VAR, SET_BORDERVALUE_COLOR macro definition.
+ Add the omitted ; in RenderStyle.h | .cpp
+
+ No new tests, just style change.
+
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::setColor):
+ (WebCore::RenderStyle::setVisitedLinkColor):
+ (WebCore::RenderStyle::setHorizontalBorderSpacing):
+ (WebCore::RenderStyle::setVerticalBorderSpacing):
+ * rendering/style/RenderStyle.h:
+
+2012-12-17 Yong Li <yoli@rim.com>
+
+ [BlackBerry] Deadlock caused by PluginViewPrivate::destroyBuffers()
+ https://bugs.webkit.org/show_bug.cgi?id=105215
+
+ Reviewed by Rob Buis.
+ Also internally reviewed by George Staikos.
+
+ PR# 266443
+ It should release mutexes before sending sync message.
+
+ * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
+ (WebCore::PluginViewPrivate::destroyBuffers):
+
+2012-12-17 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137198.
+ http://trac.webkit.org/changeset/137198
+ https://bugs.webkit.org/show_bug.cgi?id=105212
+
+ This patch is causing API behavior compatibility problems
+ (Requested by zdobersek on #webkit).
+
+ * platform/network/soup/ResourceRequestSoup.cpp:
+ (WebCore::ResourceRequest::updateFromSoupMessage):
+
+2012-12-17 Dominic Mazzoni <dmazzoni@google.com>
+
+ AX: textUnderElement should consider alt text, but skip links and controls
+ https://bugs.webkit.org/show_bug.cgi?id=101650
+
+ Reviewed by Chris Fleizach.
+
+ Getting inner text from an element now ignores focusable descendants
+ and containers, but uses alternative text. The computation of
+ textUnderElement is now recursive and doesn't depend on text
+ iterators, which might not do the right thing for accessibility
+ anyways.
+
+ For GTK, the old behavior is retained so that support for
+ the object replacement character is still there. Filed a new
+ bug (105214) for GTK folks to look at this.
+
+ Test: accessibility/button-title-uses-inner-img-alt.html
+ Test: accessibility/focusable-div.html
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore):
+ (WebCore::shouldUseAccessiblityObjectInnerText):
+ (WebCore::AccessibilityNodeObject::textUnderElement):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::textUnderElement):
+
+2012-12-17 Otto Derek Cheung <otcheung@rim.com>
+
+ [BlackBerry] Prevent CookieManager from blocking the WKT thread
+ https://bugs.webkit.org/show_bug.cgi?id=105111
+
+ Prevent CookieManager from blocking the WKT Thread.
+
+ PR 265603
+
+ Reviewed by Rob Buis.
+
+ Adding some guards to CookieManager so it will return immedately
+ if getCookie functions are called when the database isn't loaded yet.
+
+ setCookie functions will be redispatched until the database is ready.
+
+ * platform/blackberry/CookieManager.cpp:
+ (WebCore::CookieManager::CookieManager):
+ (WebCore::CookieManager::setCookies):
+ (WebCore::CookieManager::getCookie):
+ (WebCore::CookieManager::generateHtmlFragmentForCookies):
+ (WebCore::CookieManager::getRawCookies):
+ (WebCore::CookieManager::removeAllCookies):
+ (WebCore::CookieManager::getBackingStoreCookies):
+ (WebCore::CookieManager::setPrivateMode):
+ (WebCore::CookieManager::removeCookieWithName):
+ * platform/blackberry/CookieManager.h:
+
+2012-12-17 Levi Weintraub <leviw@chromium.org>
+
+ Add support for tracking hit test rectangles to enable fast event rejection in the compositor
+ https://bugs.webkit.org/show_bug.cgi?id=103914
+
+ Reviewed by James Robinson.
+
+ Adding support for tracking hit test target regions for the purpose of performing initial hit testing
+ in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
+ aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
+ thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
+ region. This patch includes the implementation to turn this on in Chromium.
+
+ To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
+ instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
+ when new touch event handlers are registered or removed, or after layout much like how
+ nonFastScrollableRegions are currently tracked.
+
+ This implementation will not properly update the hit test rects when the renderers are inside a sub-
+ tree that scrolls.
+
+ This change was initially rolled out due to stale Node pointers in Document's touchEventTargets. This
+ patch adds a callback to remove the Node from that structure to Node's destructor. This is covered
+ by the touch-target-removed-crash.html test case which is also added.
+
+ Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
+ platform/chromium/fast/events/touch/touch-target-removed-crash.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
+ are stored as the Document they point to.
+ (WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
+ to update the ScrollingCoordinator with the change.
+ (WebCore::Document::didRemoveTouchEventHandler): Ditto.
+ * dom/Document.h:
+ (WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
+ expose whether there are any or not.
+ (WebCore::Document::touchEventTargets):
+ * dom/Node.cpp:
+ (WebCore::Node::didMoveToNewDocument):
+ (WebCore::tryAddEventListener):
+ (WebCore::tryRemoveEventListener):
+ * history/CachedFrame.cpp:
+ (WebCore::CachedFrameBase::restore):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::~HTMLInputElement):
+ (WebCore::HTMLInputElement::updateType):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
+ (WebCore::DOMWindow::removeEventListener):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleTouchEvent):
+ * page/Frame.cpp:
+ (WebCore::Frame::setDocument):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
+ nodes and generate the absolute hit testing rects.
+ * page/scrolling/ScrollingCoordinator.h:
+ (WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
+ the scrolling tree/compositor.
+ (ScrollingCoordinator):
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
+ (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
+ (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
+ (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
+ (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
+ (ScrollingCoordinatorChromium):
+ * testing/Internals.cpp:
+ (WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
+ it's no longer stored as an int in Document.
+ (WebCore::Internals::touchEventTargetClientRects):
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
+2012-12-17 Avi Drissman <avi@chromium.org>
+
+ Dragging a .jpg to Finder saves it as .jpeg
+ https://bugs.webkit.org/show_bug.cgi?id=105140
+ https://code.google.com/p/chromium/issues/detail?id=35811
+
+ Reviewed by Tony Chang.
+
+ If the filename's extension is already valid for the MIME type, we don't
+ need to rewrite it to the preferred extension.
+
+ No layout tests because it involves dragging items to the desktop.
+
+ * platform/chromium/ClipboardChromium.cpp:
+ (WebCore::writeImageToDataObject):
+
+2012-12-17 Bem Jones-Bey <bjonesbe@adobe.com>
+
+ [CSS Exclusions] shape-outside on floats for rectangle shapes height/width
+ https://bugs.webkit.org/show_bug.cgi?id=100398
+
+ Reviewed by Julien Chaffraix.
+
+ Implement shape outside for floats changing only the height and width
+ as a simple starting point.
+
+ This implementation changes floats to use the bounding box of the
+ shape outside instead of the margin box for layout. The content box of
+ the float is unchanged. This patch does not support positioning the
+ shape outside box, so the x and y parameters are currently ignored in
+ the specified shape. This will be fixed in a patch for bug 100399.
+
+ Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-margin-is-ignored.html
+ fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-horizontal-multiple.html
+ fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-percentage.html
+ fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle.html
+
+ * CMakeLists.txt: Add ExclusionShapeOutsideInfo.{cpp,h}.
+ * GNUmakefile.list.am: Add ExclusionShapeOutsideInfo.{cpp,h}.
+ * Target.pri: Add ExclusionShapeOutsideInfo.{cpp,h}.
+ * WebCore.gypi: Add ExclusionShapeOutsideInfo.{cpp,h}.
+ * WebCore.vcproj/WebCore.vcproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
+ * WebCore.xcodeproj/project.pbxproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
+ * rendering/ExclusionShapeOutsideInfo.cpp: Added. Associates the
+ ExclusionShape object for shape outside with a RenderBox. Analagous to
+ ExclusionShapeInsideInfo.
+ (WebCore::exclusionShapeOutsideInfoMap):
+ (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
+ (WebCore::ExclusionShapeOutsideInfo::~ExclusionShapeOutsideInfo):
+ (WebCore::ExclusionShapeOutsideInfo::ensureInfoForRenderBox):
+ (WebCore::ExclusionShapeOutsideInfo::infoForRenderBox):
+ (WebCore::ExclusionShapeOutsideInfo::isInfoEnabledForRenderBox):
+ (WebCore::ExclusionShapeOutsideInfo::removeInfoForRenderBox):
+ (WebCore::ExclusionShapeOutsideInfo::computedShape):
+ * rendering/ExclusionShapeOutsideInfo.h: Added. Associates the
+ ExclusionShape object for shape outside with a RenderBox. Analagous to
+ ExclusionShapeInsideInfo.
+ (ExclusionShapeOutsideInfo):
+ (WebCore::ExclusionShapeOutsideInfo::create):
+ (WebCore::ExclusionShapeOutsideInfo::shapeLogicalLeft):
+ (WebCore::ExclusionShapeOutsideInfo::shapeLogicalRight):
+ (WebCore::ExclusionShapeOutsideInfo::shapeLogicalTop):
+ (WebCore::ExclusionShapeOutsideInfo::shapeLogicalBottom):
+ (WebCore::ExclusionShapeOutsideInfo::shapeLogicalWidth):
+ (WebCore::ExclusionShapeOutsideInfo::shapeLogicalHeight):
+ (WebCore::ExclusionShapeOutsideInfo::setShapeSize):
+ (WebCore::ExclusionShapeOutsideInfo::dirtyShapeSize):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::insertFloatingObject): Use the shape outside's bounding box to set the width that is
+ used for inline layout for the float and it's siblings.
+ (WebCore::RenderBlock::positionNewFloats): Use the shape outside's bounding box to set the height that
+ is used for inline layout for the float and it's siblings. Ignore margins when positioning if the float
+ has shape outside, per the exclusions spec.
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::willBeDestroyed): Clean up associated ExclusionShape.
+ (WebCore::RenderBox::styleDidChange): Handle style change for shape outside.
+ (WebCore::RenderBox::updateExclusionShapeOutsideInfoAfterStyleChange): Handle style change for shape outside.
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::exclusionShapeOutsideInfo): Get the ExclusionShapeOutsideInfo associated with this
+ RenderBox.
+
+2012-12-17 John J. Barton <johnjbarton@chromium.org>
+
+ Web Inspector: Search by selection
+ https://bugs.webkit.org/show_bug.cgi?id=104970
+
+ Reviewed by Vsevolod Vlasov.
+
+ Upon activation of the search control, conditionally set input.value to window.getSelection().
+ For both single file (SearchController) and multifile (AdvancedSearchController).
+
+ Test: inspector/editor/text-editor-selection-to-search.html
+
+ * inspector/front-end/AdvancedSearchController.js:
+ (WebInspector.AdvancedSearchController.prototype.show):
+ (WebInspector.SearchView.prototype.syncToSelection):
+ * inspector/front-end/SearchController.js:
+ (WebInspector.SearchController.prototype.showSearchField):
+
+2012-12-17 Eduardo Lima Mitev <elima@igalia.com>
+
+ [GStreamer] Use gst_element_link_pads_full() with CHECK_NOTHING for speed and sanity
+ https://bugs.webkit.org/show_bug.cgi?id=105181
+
+ Reviewed by Philippe Normand.
+
+ Replace some calls to gst_pad_link() on request pads, by
+ gst_element_link_pads_full() with CHECK_NOTHING flag, removing
+ unnecessary pad compatibility checks and simplifying code.
+
+ * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
+ (webKitWebAudioSrcConstructed): Links audioconvert source with a
+ requested interleave sink using gst_element_link_pads_full().
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Links a
+ requested source pad from videoTee with the queue sink.
+
+2012-12-17 Emil A Eklund <eae@chromium.org>
+
+ Clamp values in LayoutUnit::operator/ when SATURATED_LAYOUT_ARITHMETIC is enabled
+ https://bugs.webkit.org/show_bug.cgi?id=104955
+
+ Reviewed by Julien Chaffraix.
+
+ LayoutUnit::operator/ currently does not clamp values and
+ instead overflows when given a value greater than INT_MAX or
+ less than INT_MIN.
+
+ Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
+
+ * platform/LayoutUnit.h:
+ (WebCore::operator/):
+ Clamp value if SATURATED_LAYOUT_ARITHMETIC is enabled.
+
+2012-12-17 Simon Fraser <simon.fraser@apple.com>
+
+ Don't allow edge TileCache tiles to be larger than necessary
+ https://bugs.webkit.org/show_bug.cgi?id=105195
+
+ Reviewed by Anders Carlsson.
+
+ The TileCache would allow edge tiles to be larger than the required size, with the assumption
+ that the extra space would never be visible. However, for content tiled layers, it can be,
+ and it doesn't get correctly cleared. So always keep the edge tiles at the specified size.
+
+ * platform/graphics/ca/mac/TileCache.mm:
+ (WebCore::TileCache::revalidateTiles):
+
+2012-12-17 Bem Jones-Bey <bjonesbe@adobe.com>
+
+ [CSS Exclusions] Floats should respect shape-inside on exclusions
+ https://bugs.webkit.org/show_bug.cgi?id=89261
+
+ Reviewed by David Hyatt.
+
+ Position floats properly with respect to an exclusion shape. Note that
+ this will not attempt to position floats in a polygon that has
+ multiple segments. In the multiple segment case, the floats will be
+ positioned as if the exclusion did not exist.
+
+ Updated an existing test case to test for this.
+ Test: fast/exclusions/shape-inside/shape-inside-floats-simple.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::computeLogicalLocationForFloat): Adjust the
+ right and left offsets to take into account the right and left offset
+ contributed by the exclusion shape.
+
+2012-12-17 Antoine Quint <graouts@apple.com>
+
+ GraphicsLayer's repaint count should update even when debugging option to show it is off
+ https://bugs.webkit.org/show_bug.cgi?id=105178
+
+ Reviewed by Simon Fraser.
+
+ Update the repain count even if the debug option to show them is turned off.
+ This allows the count to be accurate in between toggles of the debug option
+ and to allow the InspectorLayerTreeAgent to get accurate results any time
+ the layer tree is requested (see webkit.org/b/105024).
+
+ * platform/graphics/mac/WebLayer.mm:
+ (drawLayerContents):
+
+2012-12-17 Hans Muller <hmuller@adobe.com>
+
+ [CSS Exclusions] Add helper functions for converting floats to LayoutUnits
+ https://bugs.webkit.org/show_bug.cgi?id=103450
+
+ Reviewed by Dirk Schulze.
+
+ When a float logicalTop value is converted to a LayoutUnit it's necessary to
+ use LayoutUnit::fromFloatCeil() to ensure that we're snapping to a value that's
+ inside the ExclusionShape. Similarly, to convert a logicalBottom value from
+ float to LayoutUnit we use LayoutUnit::fromFloatFloor(). Added a pair of private
+ ExlcusionShapeInsideInfo methods that do the conversions and refactored existing
+ code to use them.
+
+ This is just a cleanup. No new tests are needed, the existing tests cover
+ these changes.
+
+ * rendering/ExclusionShapeInsideInfo.cpp:
+ (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Use the new floatLogicalTopToLayoutUnit() method.
+ * rendering/ExclusionShapeInsideInfo.h:
+ (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Use the new floatLogicalTopToLayoutUnit() method.
+ (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom): Use the new floatLogicalBottomToLayoutUnit() method.
+ (ExclusionShapeInsideInfo):
+ (WebCore::ExclusionShapeInsideInfo::floatLogicalTopToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatCeil().
+ (WebCore::ExclusionShapeInsideInfo::floatLogicalBottomToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatFloor().
+
+2012-12-17 Antoine Quint <graouts@apple.com>
+
+ Web Inspector: Provide the paint count of layers through the LayerTreeAgent
+ https://bugs.webkit.org/show_bug.cgi?id=105024
+
+ Reviewed by Pavel Feldman.
+
+ We add a new optional .paintCount property to the Layer object, passing through the
+ relevant information from GraphicsLayer.
+
+ * inspector/Inspector.json:
+ * inspector/InspectorLayerTreeAgent.cpp:
+ (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
+
+2012-12-17 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: [chromium] make toolbar render with Mountain Lion-friendly colors
+ https://bugs.webkit.org/show_bug.cgi?id=105177
+
+ Reviewed by Vsevolod Vlasov.
+
+ * inspector/front-end/UIUtils.js:
+ (WebInspector.platformFlavor):
+ * inspector/front-end/inspector.css:
+ (#toolbar):
+ (body.dock-to-bottom #toolbar):
+ (.toolbar-item):
+
+2012-12-17 Andreas Kling <akling@apple.com>
+
+ Attribute: Remove unused constructor and isNull().
+ <http://webkit.org/b/105179>
+
+ Reviewed by Antti Koivisto.
+
+ Removed the Attribute constructor that takes a localName rather than a full QualifiedName as that was never used.
+ Also removed Attribute::isNull(), since that was only called in one place where isNull() will never be true.
+
+ * dom/Attribute.h:
+ * html/HTMLIFrameElement.cpp:
+ (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
+
+2012-12-17 Anthony Scian <ascian@rim.com>
+
+ [Blackberry] Static code analysis warning fixes
+ https://bugs.webkit.org/show_bug.cgi?id=105129
+
+ Reviewed by Rob Buis.
+
+ - alloca can return NULL, recoded to just use a temp var
+
+ * plugins/blackberry/PluginViewBlackBerry.cpp:
+ (WebCore::PluginView::updateBuffer):
+
+2012-12-17 Eugene Klyuchnikov <eustas@chromium.org>
+
+ Web Inspector: Make popover content accessible for clicks.
+ https://bugs.webkit.org/show_bug.cgi?id=105167
+
+ Reviewed by Vsevolod Vlasov.
+
+ Currently it is very hard to move mouse pointer inside of popover area.
+ The only maneuver is to precisely jerk the mouse in direction of popover.
+
+ This path makes anchor and popover "active" areas overlap, so it becomes
+ possible to smoothly move mouse to popover interior.
+
+ * inspector/front-end/Popover.js:
+ (WebInspector.Popover.prototype._innerShow): Make popover "outer" border
+ an be "active" area.
+ * inspector/front-end/popover.css: Allow popover "outer" border receive
+ mouse events.
+
+2012-12-17 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: Persist Audit selections across sessions
+ https://bugs.webkit.org/show_bug.cgi?id=103944
+
+ Reviewed by Alexander Pavlov.
+
+ Make selected audit categories a persistent setting, to simplify life for those
+ repeatedly running same set of categories.
+
+ * inspector/front-end/AuditLauncherView.js:
+ (WebInspector.AuditLauncherView):
+ (WebInspector.AuditLauncherView.prototype.addCategory.get var):
+ (WebInspector.AuditLauncherView.prototype.addCategory):
+ (WebInspector.AuditLauncherView.prototype._selectAllClicked):
+ (WebInspector.AuditLauncherView.prototype._categoryClicked):
+ (WebInspector.AuditLauncherView.prototype._createCategoryElement):
+
+2012-12-17 Zeno Albisser <zeno@webkit.org>
+
+ [Texmap] Drawing of ARB textures broken after r137498.
+ https://bugs.webkit.org/show_bug.cgi?id=105165
+
+ Disable antialiasing for ARB textures after unifying
+ code paths. We are currently missing a fragment shader
+ to do antialiasing with ARB textures.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * platform/graphics/texmap/TextureMapperGL.cpp:
+ (WebCore::TextureMapperGL::drawTexture):
+
+2012-12-17 Eugene Klyuchnikov <eustas@chromium.org>
+
+ Web Inspector: Popup flickers when cursor moves between elements with same anchor.
+ https://bugs.webkit.org/show_bug.cgi?id=104992
+
+ Reviewed by Pavel Feldman.
+
+ Popup disappears and then appears again when mouse pointer traverses
+ between sub-elements of anchor element.
+
+ * inspector/front-end/Popover.js: Split method "_mouseOut".
+ (WebInspector.PopoverHelper.prototype._popoverMouseOut):
+ Handler for Popover.
+ (WebInspector.PopoverHelper.prototype._mouseOut):
+ Handler for PopoverHelper.
+
+2012-12-12 Andrey Kosyakov <caseq@chromium.org>
+
+ [Chromium] Remove support for TRACE_EVENT_IF_LONGER_THANx macros
+ https://bugs.webkit.org/show_bug.cgi?id=104784
+
+ Reviewed by Pavel Feldman.
+
+ - removed TRACE_EVENT_IF_LONGER_THANx macros;
+ - changed addTraceEvent() to return void, as we no longer need the index of added event.
+
+ * platform/EventTracer.h:
+ (EventTracer):
+ * platform/chromium/EventTracerChromium.cpp:
+ (WebCore::EventTracer::addTraceEvent):
+ * platform/chromium/TraceEvent.h:
+ (TraceEvent):
+ (WebCore::TraceEvent::addTraceEvent):
+ (WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
+ (Data):
+
+2012-12-17 Kentaro Hara <haraken@chromium.org>
+
+ Unreviewed, rolling out r136794.
+ http://trac.webkit.org/changeset/136794
+ https://bugs.webkit.org/show_bug.cgi?id=104203
+
+ The GC change can leak memory
+
+ * bindings/v8/V8GCController.cpp:
+ (WebCore):
+ (WebCore::addImplicitReferencesForNodeWithEventListeners):
+
+2012-12-17 Gabor Rapcsanyi <rgabor@webkit.org>
+
+ Reduce the code size of ARM SIMD in GraphicsContext3D
+ https://bugs.webkit.org/show_bug.cgi?id=105086
+
+ Reviewed by Zoltan Herczeg.
+
+ Reduce the code size of ARM SIMD in GraphicsContext3D and change the ARM
+ namespace to SIMD.
+
+ * platform/graphics/GraphicsContext3D.cpp:
+ (WebCore):
+ * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
+ (WebCore::SIMD::unpackOneRowOfRGBA4444ToRGBA8):
+ (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort4444):
+ (WebCore::SIMD::unpackOneRowOfRGBA5551ToRGBA8):
+ (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort5551):
+ (WebCore::SIMD::unpackOneRowOfRGB565ToRGBA8):
+ (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort565):
+
+2012-12-16 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: frame bars on timeline do not react on hover and double click
+ https://bugs.webkit.org/show_bug.cgi?id=105153
+
+ Reviewed by Alexander Pavlov.
+
+ Remove z-index: -100 from #timeline-grid-header, as it prevents mouse events from
+ reaching frame strip. Use pointer-events: none on frame dividers instead.
+
+ * inspector/front-end/timelinePanel.css:
+ (.timeline .resources-event-divider.timeline-frame-divider):
+ (#timeline-grid-header):
+
+2012-12-16 Kentaro Hara <haraken@chromium.org>
+
+ [V8] Improve performance of a conversion from WebKit strings to V8 strings
+ https://bugs.webkit.org/show_bug.cgi?id=105150
+
+ Reviewed by Eric Seidel.
+
+ V8 provides v8::Weak(isolate) and v8::Local::New(isolate, ...),
+ which are much faster than v8::Weak() and v8::Local::New().
+ By using the faster APIs, we can improve performance of a conversion
+ from a WebKit string to a V8 string. This improves performance of
+ div.id, div.className, ...and a lot of DOM attributes that return
+ strings.
+
+ [Dromaeo/dom-attr]
+ 120 runs/sec, 120 runs/sec, 118 runs/sec => 125 runs/sec, 123 run/sec, 125 runs/sec (+4.1%)
+
+ [Dromaeo/dom-traverse]
+ 94 runs/sec, 94 runs/sec, 96 runs/sec => 107 runs/sec, 105 runs/sec, 107 runs/sec (+12.3%)
+
+ [Bindings/id-getter]
+ 356 runs/sec, 356 runs/sec, 341 runs/sec => 423 runs/sec, 424 runs/sec, 424 runs/sec (+20.7%)
+
+ No tests. No change in behavior.
+
+ * bindings/v8/V8ValueCache.h:
+ (WebCore::StringCache::v8ExternalString):
+
+2012-12-16 Arvid Nilsson <anilsson@rim.com>
+
+ [BlackBerry] Adapt to new BlackBerry::Platform::TouchPoint API
+ https://bugs.webkit.org/show_bug.cgi?id=105143
+ RIM PR 171941
+
+ Reviewed by Rob Buis.
+ Internally reviewed by George Staikos.
+
+ TouchPoint instances now provide document coordinates for the viewport
+ and content position of the touch event. The pixel coordinates stored
+ in the TouchPoint should no longer be needed in WebKit.
+
+ Also adapt to new method names and encapsulation of TouchPoint data
+ members.
+
+ No change in behavior, no new tests.
+
+ * platform/blackberry/PlatformTouchPointBlackBerry.cpp:
+ (WebCore::PlatformTouchPoint::PlatformTouchPoint):
+
+2012-12-16 Eugene Klyuchnikov <eustas@chromium.org>
+
+ Web Inspector: Fix JS compiler warning.
+ https://bugs.webkit.org/show_bug.cgi?id=105032
+
+ Reviewed by Pavel Feldman.
+
+ Problem: event handler parameter has actial parameter
+ type KeyboardEvent, but ".addEventListener" refuses listeners with such
+ signature.
+
+ Solution: explicitly upcast argument type.
+
+ * inspector/front-end/ElementsTreeOutline.js: Update JsDocs.
+
+2012-12-16 Tim Horton <timothy_horton@apple.com>
+
+ PDFPlugin: The "Open in Preview" HUD button should work
+ https://bugs.webkit.org/show_bug.cgi?id=102448
+ <rdar://problem/12695729>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Expose createCanonicalUUIDString and UUID.h.
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-12-16 Seokju Kwon <seokju.kwon@gmail.com>
+
+ Fix unused parameter compile warnings
+ https://bugs.webkit.org/show_bug.cgi?id=105089
+
+ Reviewed by Kentaro Hara.
+
+ Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
+
+ No new tests, no behavior change.
+
+ * bindings/js/JSDOMWindowBase.cpp:
+ (WebCore::JSDOMWindowBase::supportsProfiling):
+ (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
+
+2012-12-16 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/12886898> Bundle uploads don't work
+ https://bugs.webkit.org/show_bug.cgi?id=105149
+
+ Reviewed by Sam Weinig.
+
+ * WebCore.exp.in: Exported FormData::removeGeneratedFilesIfNeeded().
+
+ * platform/network/FormData.cpp:
+ (WebCore::encodeElement):
+ (WebCore::decodeElement):
+ Encode generated file name for archive, too. I'm not entirely sure how this affects other uses
+ of FormData serialization, but it seems logical that if we encode m_hasGeneratedFiles, we
+ should also encode their names.
+
+2012-12-16 Hayato Ito <hayato@chromium.org>
+
+ [Shadow DOM] Kill ShadowRoot constructor
+ https://bugs.webkit.org/show_bug.cgi?id=102913
+
+ Reviewed by Dimitri Glazkov.
+
+ Re-landing r137408 which breaks browser tests on chromium. I've
+ updated the browser tests on chromium so that they do not use
+ WebKitShadowRoot constructor.
+
+ No new tests. Updating existing layout tests.
+
+ * dom/ShadowRoot.idl:
+ * page/DOMWindow.idl:
+
+2012-12-16 Jon Lee <jonlee@apple.com>
+
+ Allow built-in PDF plugin and plugin documents to auto-start
+ https://bugs.webkit.org/show_bug.cgi?id=105000
+ <rdar://problem/12633351>
+
+ Reviewed by Sam Weinig.
+
+ Plug-ins in plug-in documents that are in the main frame should always auto-start.
+
+ Add a virtual function that returns whether the PluginViewBase should auto-start its plug-in.
+ Add a callback that gives the HTML plug-in element an opportunity to set the display state
+ based on the widget.
+
+ * plugins/PluginViewBase.h:
+ (WebCore::PluginViewBase::shouldAlwaysAutoStart): Added. By default returns false.
+
+ * html/HTMLPlugInImageElement.cpp:
+ (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Renamed from
+ subframeLoaderWillLoadPlugIn() for consistency. This call will also be made a little later
+ in the subframe loader. Adds a check to see if the plug-in is inside a plug-in document
+ of the main frame. If so, auto-start.
+ (WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Given the widget created,
+ check to see if it should always auto-start. If so, set the display state to Playing. Otherwise
+ leave the display state alone.
+ * html/HTMLPlugInImageElement.h:
+
+ * loader/SubframeLoader.cpp:
+ (WebCore::SubframeLoader::requestPlugin): Move the will-load-plug-in call into loadPlugin().
+ (WebCore::SubframeLoader::loadPlugin): Immediately prior to the plug-in's creation, make the
+ will-create call. If a plug-in was made, make the did-create call. The did-create call should
+ be made before setWidget() since that might initialize the plug-in, which could take the display
+ state into account if being initialized synchronously.
+
+2012-12-16 Huang Dongsung <luxtella@company100.net>
+
+ [TexMap] Perform the layer-tree traversal in GraphicsLayerTextureMapper.
+ https://bugs.webkit.org/show_bug.cgi?id=103366
+
+ Reviewed by Noam Rosenthal.
+
+ Currently, Texture Mapper performs the layer-tree traversal in
+ TextureMapperLayer, while Coordinated Graphics performs the traversal in
+ CoordinatedGraphicsLayer. This patch makes Texture Mapper perform the
+ traversal in GraphicsLayerTextureMapper.
+
+ Also removed the SyncOptions enum, which is redundant since no client
+ calls it with ComputationsOnly.
+
+ This is in preparation for refactoring TextureMapper to work in an actor
+ model (http://webkit.org/b/103854).
+
+ No new tests. Covered by existing tests.
+
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
+ (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
+ (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ (GraphicsLayerTextureMapper):
+ * platform/graphics/texmap/TextureMapperLayer.cpp:
+ (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
+ * platform/graphics/texmap/TextureMapperLayer.h:
+ (TextureMapperLayer):
+
+2012-12-16 Levi Weintraub <leviw@chromium.org>
+
+ Push pixel snapping logic into TransformState
+ https://bugs.webkit.org/show_bug.cgi?id=101779
+
+ Reviewed by Simon Fraser.
+
+ The old SnapOffsetForTransforms behavior fell apart when there was content nested in
+ multiple levels of containers with sub-pixel offsets. The point of this flag was to
+ mirror the pixel snapping that occurs in paint, where offsets are accumulated bottom-
+ up through the render tree and snapped at the end. This change eliminates this flag
+ and pushes pixel snapping logic down into TransformState.
+
+ TransformState now tracks a LayoutSize accumulated offset when there's no transform
+ or we're just translating. We then snap and apply this offset before accumulating
+ values into a transform, and when returning planar coordinates to callers.
+
+ Test: fast/sub-pixel/transformed-iframe-copy-on-scroll.html added,
+ fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html modified to also catch this bug.
+
+ * platform/graphics/transforms/TransformState.cpp:
+ (WebCore::TransformState::operator=): Pass accumulated offset.
+ (WebCore::TransformState::translateTransform): Extracted this functionality for
+ re-use when applying the accumulated offset, or accumulating from a call to move.
+ (WebCore::TransformState::translateMappedCoordinates): Same as above when we're not
+ acculating into a transform.
+ (WebCore::TransformState::move): Changed to accumulate into m_accumulatedOffset when
+ not accumulating into a transform.
+ (WebCore::TransformState::applyAccumulatedOffset):
+ (WebCore::TransformState::applyTransform): Applies the accumulated offset before the
+ transform.
+ (WebCore::TransformState::flatten): Ditto for flattening.
+ (WebCore::TransformState::mappedPoint): Translates by the accumulated offset before
+ returning.
+ (WebCore::TransformState::mappedQuad): Ditto.
+ * platform/graphics/transforms/TransformState.h:
+ (TransformState): Added m_accumulatedOffset.
+ * rendering/RenderGeometryMap.cpp:
+ (WebCore::RenderGeometryMap::mapToContainer): When not using a transform, we still need
+ to snap our offset before applying to our float result. Also, flatten when we have a
+ non-uniform step.
+ * rendering/RenderGeometryMap.h:
+ (RenderGeometryMap): Remove use of SnapOffsetForTransforms.
+
+ Everything below simply drops the use of SnapOffsetForTransforms:
+
+ * dom/ContainerNode.cpp:
+ (WebCore::ContainerNode::getUpperLeftCorner):
+ * dom/MouseRelatedEvent.cpp:
+ (WebCore::MouseRelatedEvent::computeRelativePosition):
+ * editing/FrameSelection.cpp:
+ (WebCore::CaretBase::absoluteBoundsForLocalRect):
+ * editing/RenderedPosition.cpp:
+ (WebCore::RenderedPosition::absoluteRect):
+ * editing/VisiblePosition.cpp:
+ (WebCore::VisiblePosition::absoluteCaretBounds):
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
+ * html/shadow/SliderThumbElement.cpp:
+ (WebCore::SliderThumbElement::setPositionFromPoint):
+ * html/shadow/SpinButtonElement.cpp:
+ (WebCore::SpinButtonElement::defaultEventHandler):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::convertFromRenderer):
+ (WebCore::FrameView::convertToRenderer):
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::paintDocumentMarker):
+ (WebCore::InlineTextBox::paintTextMatchMarker):
+ (WebCore::InlineTextBox::computeRectForReplacementMarker):
+ * rendering/LayoutState.cpp:
+ (WebCore::LayoutState::LayoutState):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::mapLocalToContainer):
+ (WebCore::RenderBox::pushMappingToContainer):
+ * rendering/RenderBox.h:
+ (RenderBox):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
+ * rendering/RenderEmbeddedObject.cpp:
+ (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
+ * rendering/RenderFrameSet.cpp:
+ (WebCore::RenderFrameSet::userResize):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::mapLocalToContainer):
+ (WebCore::RenderInline::pushMappingToContainer):
+ * rendering/RenderInline.h:
+ (RenderInline):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::absoluteToContents):
+ (WebCore::RenderLayer::scrollTo):
+ (WebCore::RenderLayer::childrenClipRect):
+ (WebCore::RenderLayer::selfClipRect):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::contentsVisible):
+ * rendering/RenderMediaControls.cpp:
+ (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::showPopup):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::absoluteFocusRingQuads):
+ * rendering/RenderObject.h:
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::absoluteRectsForRange):
+ (WebCore::RenderText::absoluteQuads):
+ (WebCore::RenderText::absoluteQuadsForRange):
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::selectionBounds):
+ * rendering/RenderView.h:
+ (RenderView):
+ * rendering/RenderWidget.cpp:
+ (WebCore::RenderWidget::updateWidgetGeometry):
+ * rendering/svg/RenderSVGForeignObject.cpp:
+ (WebCore::RenderSVGForeignObject::mapLocalToContainer):
+ * rendering/svg/RenderSVGForeignObject.h:
+ (RenderSVGForeignObject):
+ * rendering/svg/RenderSVGInline.cpp:
+ (WebCore::RenderSVGInline::mapLocalToContainer):
+ * rendering/svg/RenderSVGInline.h:
+ (RenderSVGInline):
+ * rendering/svg/RenderSVGModelObject.cpp:
+ (WebCore::RenderSVGModelObject::mapLocalToContainer):
+ * rendering/svg/RenderSVGModelObject.h:
+ (RenderSVGModelObject):
+ * rendering/svg/RenderSVGRoot.h:
+ (RenderSVGRoot):
+ * rendering/svg/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::mapLocalToContainer):
+ * rendering/svg/RenderSVGText.h:
+ (RenderSVGText):
+ * rendering/svg/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::mapLocalToContainer):
+ * rendering/svg/SVGRenderSupport.h:
+ (SVGRenderSupport):
+
+2012-12-15 Anders Carlsson <andersca@apple.com>
+
+ Rename FrameLoaderClient::download to convertMainResourceLoadToDownload
+ https://bugs.webkit.org/show_bug.cgi?id=105122
+
+ Reviewed by Andreas Kling.
+
+ Rename FrameLoaderClient::download to convertMainResourceLoadToDownload and change it to take a MainResourceLoader instead
+ of a ResourceHandle, since resource handles may not exist when loading isn't done in the web process.
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * loader/EmptyClients.h:
+ * loader/FrameLoaderClient.h:
+ (WebCore):
+ (FrameLoaderClient):
+ * loader/MainResourceLoader.cpp:
+ (WebCore::MainResourceLoader::continueAfterContentPolicy):
+
+2012-12-16 Eric Carlson <eric.carlson@apple.com>
+
+ Remove in-band text tracks when media element's src changes
+ https://bugs.webkit.org/show_bug.cgi?id=105081
+
+ Reviewed by Sam Weinig.
+
+ No new tests, media/track/track-in-band.html was updated to test this change.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): Move some code into removeTrack.
+ (WebCore::HTMLMediaElement::removeTrack): New, remove a track and all of its cues.
+ (WebCore::HTMLMediaElement::removeAllInbandTracks): New, remove all in-band tracks.
+ (WebCore::HTMLMediaElement::clearMediaPlayer): Call removeAllInbandTracks.
+ * html/HTMLMediaElement.h:
+
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Call clearTextTracks.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::clearTextTracks): Remove all tracks from client.
+
+2012-12-16 Simon Fraser <simon.fraser@apple.com>
+
+ Fix assertions when doing a full repaint of compositing layers
+ https://bugs.webkit.org/show_bug.cgi?id=105128
+
+ Reviewed by Dan Bernstein.
+
+ In r137811 I added code to repaint all compositing layers when FrameView::layout()
+ is doing a full repaint. However, this code needs to avoid calling setContentsNeedDisplay()
+ on layers that don't actually draw their own content: those that draw into an ancestor,
+ and those that draw into a window.
+
+ Fixes assertions in existing tests.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateAfterLayout):
+
+2012-12-16 ChangSeok Oh <shivamidow@gmail.com>
+
+ [GTK][AC] Build failure with an option --with-acceleration-backend=clutter
+ https://bugs.webkit.org/show_bug.cgi?id=105027
+
+ Reviewed by Gustavo Noronha Silva.
+
+ GLContext.* and RedirectedXCompositeWindow.* are meaningful only if opengl is
+ a backend for the AC. So I wrap them in USE_OPENGL.
+
+ No new tests. This patch fixes a build fauilure, not adding new features.
+
+ * GNUmakefile.list.am:
+
+2012-12-16 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ [GStreamer] create playbin in ::load(), not in player constructor
+ https://bugs.webkit.org/show_bug.cgi?id=103898
+
+ Reviewed by Philippe Normand.
+
+ This patch moves the instantiation of the playbin pipeline into the
+ WebCore::MediaPlayerPrivateGStreamer::load() method, so the pipeline
+ layout can reflect other predefined settings such as audio pitch
+ preservation in variable playback rate scenarios
+
+ No new tests. Covered by existing tests.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
+ (WebCore::MediaPlayerPrivateGStreamer::load):
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ (MediaPlayerPrivateGStreamer):
+
+2012-12-16 Mihnea Ovidenie <mihnea@adobe.com>
+
+ [CSSRegions] Pseudo-elements should not be directly collected into a named flow
+ https://bugs.webkit.org/show_bug.cgi?id=105046
+
+ Reviewed by Abhishek Arya.
+
+ Prevent pseudo-elements to be collected into a named-flow by bailing out early in the collecting stage.
+ Following the CSSRegions spec, http://dev.w3.org/csswg/css3-regions/#flow-into, the pseudo-elements
+ like ::before/::after/::first-letter/::first-line are not allowed to become content nodes, being directly
+ collected into a flow thread.
+
+ Tests: fast/regions/pseudo-after-content-node.html
+ fast/regions/pseudo-before-content-node.html
+ fast/regions/pseudo-first-letter-content-node.html
+ fast/regions/pseudo-first-line-content-node.html
+
+ * dom/NodeRenderingContext.cpp:
+ (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
+
+2012-12-16 Mihai Maerean <mmaerean@adobe.com>
+
+ [CSS Regions] broken feature detection: body.webkitRegionOverset and body.webkitGetRegionFlowRanges shouldn't succeed when disabled at runtime
+ https://bugs.webkit.org/show_bug.cgi?id=99707
+
+ Reviewed by Hajime Morita.
+
+ The bug is that the CSS Regions feature leaks information at run-time. There are JS properties that exist even
+ if the feature is disabled at run-time (document.webkitGetNamedFlows, document.body.webkitRegionOverset,
+ document.body.webkitGetRegionFlowRanges and window.WebKitCSSRegionRule).
+
+ The fix is to add V8EnabledAtRuntime=cssRegions in the IDL files to the properties that leak information and to
+ the interfaces that are the type of those properties.
+
+ Test: fast/regions/region-leak-js-information-when-disabled-at-runtime.html
+
+ * css/WebKitCSSRegionRule.idl:
+ added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule interface.
+ * dom/DOMNamedFlowCollection.idl:
+ added V8EnabledAtRuntime=cssRegions for the DOMNamedFlowCollection interface.
+ * dom/Document.idl:
+ added V8EnabledAtRuntime=cssRegions for the webkitGetNamedFlows method.
+ * dom/Element.idl:
+ added V8EnabledAtRuntime=cssRegions for the webkitRegionOverset attribute.
+ added V8EnabledAtRuntime=cssRegions for the webkitGetRegionFlowRanges method.
+ * page/DOMWindow.idl:
+ added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule attribute.
+
+2012-12-15 Ian Vollick <vollick@chromium.org>
+
+ [chromium] Automatically use composited scrolling
+ https://bugs.webkit.org/show_bug.cgi?id=94743
+
+ Reviewed by Adrienne Walker.
+
+ We currently use the composited scrolling facilities provided by
+ wkb.ug/91117 if the overflow scroll block element is styled with
+ -webkit-overflow-scrolling: touch. Ideally, we could automatically
+ opt into composited scrolling if it is safe to do so. This can affect
+ antialiasing, so it is important that automatically opting in is only
+ enabled via a setting.
+
+ The way I determine if it is safe is by checking that z-ordering will
+ not be affected if the overflow scrollable element were promoted to a
+ stacking context (details below), and that clipping our scrolling
+ descendants will not affect rendering.
+
+ To check the first condition (that z-ordering will not be affected).
+ I ensure that the candidate element and all its descendants appear as a
+ contiguous block in the candidate's stacking context. That is, if no
+ other elements are 'between' any of the candidates descendants when we
+ sort in paint order, then we're safe. This is overly conservative,
+ however. We could, in future, only consider stacking problems between
+ elements that actually overlap.
+
+ To ensure that clipping will not cause a rendering change, I ensure
+ that the layer has no out of flow positioned descendant whose
+ containing block is not also a descendant of ours.
+
+ Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html
+
+ (WebCore):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::RenderLayer):
+ (WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
+ (WebCore):
+ (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
+ (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
+ (WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
+ (WebCore::RenderLayer::canSafelyEstablishAStackingContext):
+ Returns true if the RenderLayer could become a stacking context without
+ affecting the stacking order.
+ (WebCore::RenderLayer::updateDescendantDependentFlags):
+ We now need to keep track of out of flow positioned descendants.
+ (WebCore::RenderLayer::addChild):
+ (WebCore::RenderLayer::removeChild):
+ (WebCore::RenderLayer::usesCompositedScrolling):
+ Returns true if the layer actually is using composited scrolling.
+ This function may return false, even when needsCompositedScrolling
+ returns true.
+ (WebCore::RenderLayer::needsCompositedScrolling):
+ This function returns true if we would like to use composited
+ scrolling and it is safe to turn it on.
+ (WebCore::RenderLayer::updateNeedsCompositedScrolling):
+ (WebCore::RenderLayer::scrollTo):
+ (WebCore::RenderLayer::dirtyZOrderLists):
+ (WebCore::RenderLayer::dirtyNormalFlowList):
+ Since these could affect opting into composited scrolling, we must
+ request that the RenderLayerCompositor reevaluate compositing.
+ (WebCore::RenderLayer::updateLayerListsIfNeeded):
+ We call updateCanSafelyEstablishStackingContext here, if necessary.
+ (WebCore::RenderLayer::shouldBeNormalFlowOnly):
+ (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
+ usesCompositedScrolling -> needsCompositedScrolling
+ (WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
+ (WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
+ (WebCore::RenderLayer::updateOutOfFlowPositioned):
+ Dirties and sets the out of flow positioned descendant state.
+ (WebCore::RenderLayer::styleChanged):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+ (WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ (WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
+ (WebCore):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
+ (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
+ * rendering/RenderLayerCompositor.h:
+ (WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
+ * testing/InternalSettings.cpp:
+ (WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
+ Allows enabling the setting in layout tests.
+ (WebCore):
+ * testing/InternalSettings.h:
+ (InternalSettings):
+ * testing/InternalSettings.idl:
+
+2012-12-15 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix make distcheck.
+
+ * bindings/gobject/GNUmakefile.am: Do not dist generated DOM
+ bindings headers.
+ * platform/ScrollAnimatorNone.cpp: Include PlatformGestureEvent.h
+ only if gesture events are enabled.
+
+2012-12-15 Alexey Proskuryakov <ap@apple.com>
+
+ Build fix.
+
+ * platform/network/FormData.cpp:
+ (WebCore::encodeElement):
+ (WebCore::decodeElement):
+ (WebCore::FormData::encode):
+ (WebCore::FormData::decode):
+ Disambiguated encode/decode functions. I'm not quite sure why the compiler was
+ confused, but distinct names should make the code more readable anyway.
+
+2012-12-15 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/12886312> Cannot upload patches to Bugzilla (<input type=file> doesn't work)
+ https://bugs.webkit.org/show_bug.cgi?id=105120
+
+ Reviewed by Sam Weinig.
+
+ * WebCore.exp.in:
+ * history/HistoryItem.cpp:
+ * platform/network/FormData.h:
+ Renamed encodeForBackForward and decodeForBackForward to encode and decode, respectively.
+ I couldn't find anything in these that would limit them to this use, and data encoded
+ for b/f has to be good enough to re-create a request anyway.
+
+ * platform/network/FormData.cpp: (WebCore::decode): Fixed file data decoder to not
+ bail out in the general case of posting a complete file.
+
+2012-12-15 Nima Ghanavatian <nghanavatian@rim.com>
+
+ [BlackBerry] Pass key modifiers with touch and mouse events
+ https://bugs.webkit.org/show_bug.cgi?id=105108
+
+ Reviewed by Rob Buis.
+
+ Call Screen to retrieve current key modifiers.
+
+ Internally reviewed by Gen Mak.
+
+ * platform/PlatformMouseEvent.h:
+ (PlatformMouseEvent):
+ * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
+ (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
+ * platform/blackberry/PlatformMouseEventBlackBerry.cpp:
+ (WebCore::PlatformMouseEvent::PlatformMouseEvent):
+ * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
+ (WebCore::PlatformTouchEvent::PlatformTouchEvent):
+
+2012-12-15 Otto Derek Cheung <otcheung@rim.com>
+
+ [BlackBerry] Prevent CookieManager from blocking the WKT thread
+ https://bugs.webkit.org/show_bug.cgi?id=105111
+
+ PR 265603
+
+ Reviewed by Rob Buis.
+ Internally reviewed by Konrad Piascik.
+
+ The getBackingStoreCookies in WKT is blocking the thread because it has to wait for
+ the db to be opened before it can call on it.
+
+ The fix is to make CookieDatabaseBackingStore in the cookie_db thread dispatch
+ a getBackingStoreCookies call on WKT after invokeOpen is finished.
+
+ Tested loading the browser. Cookies are being loaded into memory on start up.
+
+ * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
+ (WebCore::CookieDatabaseBackingStore::invokeOpen):
+ * platform/blackberry/CookieManager.cpp:
+ (WebCore::cookieManager):
+ * platform/blackberry/CookieManager.h:
+
+2012-12-15 Simon Fraser <simon.fraser@apple.com>
+
+ Fix repaint issues when resizing a window with centered content, for platforms with a tile cache
+ https://bugs.webkit.org/show_bug.cgi?id=105073
+
+ Reviewed by Dan Bernstein.
+
+ There were several issues with the "do full repaint" code path in
+ FrameView::layout(). These caused repaint issues when resizing the web view,
+ especially for platforms that use a tile cache.
+
+ First, the m_doFullRepaint flag wold get clobbered on resize-layouts, because
+ the call to adjustViewSize() re-enters layout(), and resets the m_doFullRepaint member
+ variable to false, even if the outer call had previously set it to true. This would
+ cause us to lose track of whether we needed to do a full repaint. The patch fixes
+ this by restoring m_doFullRepaint to the value it had before the call to adjustViewSize().
+
+ The second problem was that full repaints would not propagate to compositing
+ layers. They only repainted the RenderView, and on platforms that use a tile cache,
+ this only repaints the top portion of that tile cache. This was fixed by sending
+ a NeedsFullRepaintInBacking flag down into RenderLayer::updateLayerPositions(),
+ and using that to do a full repaint on all compositing layers.
+
+ Sending this new flag down into updateAfterLayout() prompted some boolean/flags
+ cleanup with propagated into several files. This also allowed me to no longer
+ include RenderLayerBacking.h in RenderLayerCompositor.h, but that required
+ header cleanup in several files.
+
+ Automated testing is not possible because WebKitTestRunner resizes the window
+ asynchronously (bug 105101). Added manual test.
+
+ * page/FrameView.cpp:
+ (WebCore::updateLayerPositionFlags):
+ (WebCore::FrameView::layout):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ * page/scrolling/mac/ScrollingCoordinatorMac.mm:
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateLayerPositions):
+ (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateAfterLayout):
+ (WebCore::RenderLayerBacking::contentChanged):
+ * rendering/RenderLayerBacking.h:
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
+ * rendering/RenderLayerCompositor.h:
+ * rendering/RenderObject.cpp:
+ * rendering/RenderView.cpp:
+
+2012-12-15 Anders Carlsson <andersca@apple.com>
+
+ Fix build.
+
+ * platform/graphics/ca/GraphicsLayerCA.h:
+ Remove an unused member variable.
+
+2012-12-15 Simon Fraser <simon.fraser@apple.com>
+
+ REGRESSION (r137006): TileCache flashes to linen, rather than the background color, when scrolling fast
+ https://bugs.webkit.org/show_bug.cgi?id=104746
+
+ Reviewed by Darin Adler.
+
+ Make RenderLayerBacking::updateBackgroundColor() responsible for setting the background
+ color of the main frame's root layer to the document background color (rather than doing
+ it in code related to overlay scrollbars, which was crazy). This is only done for platforms
+ that use a TiledBacking (currently, just Mac).
+
+ Also fix updateBackgroundColor() to not call m_graphicsLayer->setContentsToBackgroundColor()
+ and then call clearBackgroundColor() right away if the color was transparent.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::recalculateScrollbarOverlayStyle): Remove code that calls documentBackgroundColorDidChange().
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::clipBox): Remove blank linke.
+ (WebCore::RenderLayerBacking::updateBackgroundColor):
+ * rendering/RenderLayerCompositor.cpp:
+ * rendering/RenderLayerCompositor.h:
+ (RenderLayerCompositor):
+
+2012-12-15 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Disambiguate "background color" and "contents as solid color" on GraphicsLayer
+ https://bugs.webkit.org/show_bug.cgi?id=104842
+
+ Reviewed by Simon Fraser.
+
+ Rename overloads in GraphicsLayerTextureMapper and GraphicsLayerChromium to account for the rename in GraphicsLayer.
+
+ Covered by existing tests.
+
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ (GraphicsLayerTextureMapper):
+ (WebCore::GraphicsLayerTextureMapper::solidColor):
+ * platform/graphics/texmap/TextureMapperLayer.cpp:
+ (WebCore::TextureMapperLayer::paintSelf):
+ (WebCore::TextureMapperLayer::flushCompositingStateSelf):
+ * platform/graphics/texmap/TextureMapperLayer.h:
+ (State):
+
+2012-12-13 Simon Fraser <simon.fraser@apple.com>
+
+ Disambiguate "background color" and "contents as solid color" on GraphicsLayer
+ https://bugs.webkit.org/show_bug.cgi?id=104842
+
+ Reviewed by Dean Jackson.
+
+ GraphicsLayer failed to be clear about the distinction between
+ the layer background color, and setting the layer contents
+ to a color. This caused some recently added tests to fail,
+ and required some special-casing for the TileCache in
+ GraphicsLayerCA.
+
+ Separate these two concepts on GraphicsLayer. setBackgroundColor()
+ now sets the background color on the entire layer, which will only
+ be used in special cases like the TileCache.
+
+ The existing setContentsToBackgroundColor() is renamed to
+ setContentsToSolidColor(), and is an explicit request to create
+ a contents layer for the purpose of displaying a simple color.
+
+ In both cases, 'clear' methods are not necessary; calling
+ the setter with an invalid color clears the color.
+
+ Covered by existing tests.
+
+ * WebCore.exp.in: Remove GraphicsLayer::clearBackgroundColor().
+ * platform/graphics/GraphicsLayer.cpp:
+ (WebCore::GraphicsLayer::GraphicsLayer):
+ (WebCore::GraphicsLayer::setBackgroundColor):
+ (WebCore::GraphicsLayer::dumpProperties):
+ * platform/graphics/GraphicsLayer.h:
+ (GraphicsLayer): Remove m_backgroundColorSet; we just check whether
+ the color is a valid color now.
+ (WebCore::GraphicsLayer::setContentsToSolidColor):
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::GraphicsLayerCA):
+ (WebCore::GraphicsLayerCA::setBackgroundColor):
+ (WebCore::GraphicsLayerCA::setContentsToSolidColor):
+ (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
+ (WebCore::GraphicsLayerCA::updateBackgroundColor):
+ (WebCore::GraphicsLayerCA::updateContentsColorLayer):
+ (WebCore):
+ * platform/graphics/ca/GraphicsLayerCA.h:
+ (GraphicsLayerCA):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): We have
+ to call updateBackgroundColor(), because the 'is simple compositing layer'
+ state may change in this code path.
+ (WebCore::RenderLayerBacking::updateBackgroundColor): Don't initialize
+ the Color to transparent (it will be invalid initially), and always
+ call setContentsToSolidColor() which will either set or remove the color.
+
+2012-12-15 Mark Lam <mark.lam@apple.com>
+
+ Re-landing patch for "Introducing the DatabaseStrategy and database servers".
+ https://bugs.webkit.org/show_bug.cgi?id=104934.
+
+ Not reviewed.
+
+ Merged from r137767. Previously reviewed by Sam Weinig.
+ Also added __ZTVN7WebCore16DatabaseStrategyE to WebCore.exp.in.
+
+ No new tests.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Modules/webdatabase/AbstractDatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabaseServer.h.
+ * Modules/webdatabase/DBBackendServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
+ * Modules/webdatabase/DatabaseManager.cpp:
+ (WebCore::DatabaseManager::DatabaseManager):
+ * Modules/webdatabase/DatabaseManager.h:
+ (DatabaseManager):
+ * Target.pri:
+ * WebCore.exp.in:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/DatabaseStrategy.cpp: Copied from Source/WebCore/platform/DatabaseStrategy.cpp.
+ * platform/DatabaseStrategy.h: Copied from Source/WebCore/platform/DatabaseStrategy.h.
+ * platform/PlatformStrategies.h:
+ (WebCore::PlatformStrategies::databaseStrategy):
+ (PlatformStrategies):
+ (WebCore::PlatformStrategies::PlatformStrategies):
+
+2012-12-14 Yuki Sekiguchi <yuki.sekiguchi@access-company.com>
+
+ Emphasis mark is printed after inline-block with justify
+ https://bugs.webkit.org/show_bug.cgi?id=104631
+
+ Reviewed by Dean Jackson.
+
+ Do not print an emphasis mark after an inline-block when justified.
+
+ If an inline-block is expanded, it has a space appended to it.
+ This space should not have any emphasis marks drawn.
+
+ Test: fast/inline/justify-emphasis-inline-box.html
+
+ * platform/graphics/SimpleFontData.h:
+ (WebCore::SimpleFontData::zeroWidthSpaceGlyph): Add getter method to get zero width space glyph.
+ * platform/graphics/WidthIterator.cpp:
+ (WebCore::WidthIterator::advanceInternal): We use zero width space for the extra space not to draw emphasis marks.
+
+2012-12-14 Jer Noble <jer.noble@apple.com>
+
+ Unreviewed bug fix after r137782.
+
+ Add new source file TextTrackRepresentation.cpp to CMakeLists.txt.
+
+ * CMakeLists.txt:
+
+2012-12-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137767.
+ http://trac.webkit.org/changeset/137767
+ https://bugs.webkit.org/show_bug.cgi?id=105062
+
+ Broke Mac builds. (Requested by mlam on #webkit).
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Modules/webdatabase/AbstractDatabaseServer.h: Removed.
+ * Modules/webdatabase/DBBackendServer.h: Removed.
+ * Modules/webdatabase/DatabaseManager.cpp:
+ (WebCore::DatabaseManager::DatabaseManager):
+ * Modules/webdatabase/DatabaseManager.h:
+ * Target.pri:
+ * WebCore.exp.in:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/DatabaseStrategy.cpp: Removed.
+ * platform/DatabaseStrategy.h: Removed.
+ * platform/PlatformStrategies.h:
+ (WebCore):
+ (WebCore::PlatformStrategies::PlatformStrategies):
+ (PlatformStrategies):
+
+2012-12-14 Jer Noble <jer.noble@apple.com>
+
+ Allow the text track contents to be displayed externally to WebCore.
+ https://bugs.webkit.org/show_bug.cgi?id=105052
+
+ Reviewed by Eric Carlson.
+
+ Support scenarios where the text track contents must be rendered outside of WebCore, such as to an external
+ display or window. Add an abstract base class which encapsulates the external representation to which the
+ text tracks will be rendered.
+
+ Add a new abstract base class and client to wrap the external rendering of a TextTrack.
+ * platform/graphics/TextTrackRepresentation.h: Added.
+ (WebCore::TextTrackRepresentationClient::~TextTrackRepresentationClient):
+ (WebCore::TextTrackRepresentation::~TextTrackRepresentation):
+
+ Add an empty concrete implementation for those ports who do not yet support external display of subtitles.
+ * platform/graphics/TextTrackRepresentation.cpp: Added.
+ (NullTextTrackRepresentation):
+ (WebCore::NullTextTrackRepresentation::~NullTextTrackRepresentation):
+ (WebCore::NullTextTrackRepresentation::update):
+ (WebCore::NullTextTrackRepresentation::platformLayer):
+ (WebCore::NullTextTrackRepresentation::setContentScale):
+ (WebCore::NullTextTrackRepresentation::bounds):
+ (WebCore::TextTrackRepresentation::create):
+
+ Add methods to MediaPlayerPrivateIOS to handle the TextTrackRepresentation.
+ * platform/graphics/ios/MediaPlayerPrivateIOS.h:
+ * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
+ (WebCore::MediaPlayerPrivateIOS::deliverNotification): Remove the representation when exiting full screen.
+ (WebCore::MediaPlayerPrivateIOS::requiresTextTrackRepresentation): Return YES if in full screen mode.
+ (WebCore::MediaPlayerPrivateIOS::setTextTrackRepresentation): Pass the representation's layer to the player plug-in.
+
+ Expose those methods via HTMLMediaElement:
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::requiresTextTrackRepresentation):
+ (WebCore::HTMLMediaElement::setTextTrackRepresentation):
+ * html/HTMLMediaElement.h:
+ * platform/graphics/MediaPlayer.cpp:
+ (WebCore::MediaPlayer::requiresTextTrackRepresentation):
+ (WebCore::MediaPlayer::setTextTrackRepresentation):
+ * platform/graphics/MediaPlayer.h:
+ (WebCore::MediaPlayerClient::textTrackRepresentationBoundsChanged):
+ (WebCore::MediaPlayerClient::paintTextTrackRepresentation):
+ * platform/graphics/MediaPlayerPrivate.h:
+ (WebCore::MediaPlayerPrivateInterface::requiresTextTrackRepresentation):
+ (WebCore::MediaPlayerPrivateInterface::setTextTrackRepresentation):
+
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Create the representation, if necessary.
+ (WebCore::MediaControlTextTrackContainerElement::updateSizes): Use the representation to determine the font size.
+ (WebCore::MediaControlTextTrackContainerElement::paintTextTrackRepresentation): Added. Paint the TextTrack into the provided graphics context.
+ (WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged): Added. Call updateSizes().
+ * html/shadow/MediaControlElements.h:
+
+ Add the new files to the project.
+ * WebCore.xcodeproj/project.pbxproj:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+
+2012-12-14 Fady Samuel <fsamuel@chromium.org>
+
+ Allow embedder to observe changes to frame names
+ https://bugs.webkit.org/show_bug.cgi?id=104404
+
+ Reviewed by Darin Fisher.
+
+ * loader/FrameLoaderClient.h:
+ (WebCore::FrameLoaderClient::didChangeName):
+ (FrameLoaderClient):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::setName):
+
+2012-12-14 James Simonsen <simonjam@chromium.org>
+
+ [Resource Timing] Properly report reused connections
+ https://bugs.webkit.org/show_bug.cgi?id=104986
+
+ Reviewed by Tony Gentilcore.
+
+ Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_connection_reuse.html
+
+ * page/PerformanceResourceTiming.cpp:
+ (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
+ (WebCore::PerformanceResourceTiming::connectStart):
+ (WebCore::PerformanceResourceTiming::connectEnd):
+ * page/PerformanceResourceTiming.h:
+ (PerformanceResourceTiming):
+
+2012-12-14 Roger Fong <roger_fong@apple.com>
+
+ Enable video caption controls on Windows.
+ https://bugs.webkit.org/show_bug.cgi?id=105045.
+
+ Reviewed by Eric Carlson.
+
+ Now that video tracks have been enabled on Windows, enable controls as well.
+
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
+ (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
+ * html/shadow/MediaControlElements.h:
+ * rendering/RenderThemeWin.h:
+
+2012-12-14 Mark Lam <mark.lam@apple.com>
+
+ Introducing the DatabaseStrategy and database servers.
+ https://bugs.webkit.org/show_bug.cgi?id=104934.
+
+ Reviewed by Sam Weinig.
+
+ The database server is currently a placeholder that does nothing.
+
+ No new tests.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Modules/webdatabase/AbstractDatabaseServer.h: Added.
+ (WebCore):
+ (AbstractDatabaseServer):
+ (WebCore::AbstractDatabaseServer::AbstractDatabaseServer):
+ (WebCore::AbstractDatabaseServer::~AbstractDatabaseServer):
+ * Modules/webdatabase/DBBackendServer.h: Added.
+ (DBBackend):
+ * Modules/webdatabase/DatabaseManager.cpp:
+ (WebCore::DatabaseManager::DatabaseManager):
+ * Modules/webdatabase/DatabaseManager.h:
+ (WebCore):
+ (DatabaseManager):
+ * Target.pri:
+ * WebCore.exp.in:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/DatabaseStrategy.cpp: Added.
+ (WebCore):
+ (WebCore::DatabaseStrategy::getDatabaseServer):
+ * platform/DatabaseStrategy.h: Added.
+ (WebCore):
+ (DatabaseStrategy):
+ (WebCore::DatabaseStrategy::~DatabaseStrategy):
+ * platform/PlatformStrategies.h:
+ (WebCore):
+ (WebCore::PlatformStrategies::databaseStrategy):
+ (PlatformStrategies):
+ (WebCore::PlatformStrategies::PlatformStrategies):
+
+2012-12-14 Anton Vayvod <avayvod@chromium.org>
+
+ Text Autosizing: Consider inline-block and inline-table elements to be autosizing clusters.
+ https://bugs.webkit.org/show_bug.cgi?id=104702
+
+ Reviewed by Julien Chaffraix.
+
+ A common pattern for creating adjacent columns in CSS is to set each of the columns to
+ display:inline-block, display:inline-table or alike WebKit-specific styles. Whenever columns
+ are used, Text Autosizing needs to assign each of the columns to different clusters (since
+ the user can zoom in such that a column fills the width of the screen, so text within a column
+ should have a smaller multiplier than it's wider enclosing cluster would have needed).
+
+ This patch causes display:inline-block, display:inline-table and alike styles to trigger new clusters.
+
+ Test: fast/text-autosizing/cluster-inline-block-or-table.html
+ Test: fast/text-autosizing/cluster-inline-grid-flex-box.html
+
+ * rendering/TextAutosizer.cpp:
+ (WebCore::TextAutosizer::isAutosizingContainer):
+ (WebCore::TextAutosizer::isAutosizingCluster):
+ Consider display:inline-block, inline-table and alike elements to be autosizing containers and clusters.
+
+2012-12-14 Anders Carlsson <andersca@apple.com>
+
+ REGRESSION (r137607): Cannot download files, stuck in "Preparing to download"
+ https://bugs.webkit.org/show_bug.cgi?id=105044
+ <rdar://problem/12879657>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Make ResourceHandle::cancel return early if the handle has been converted to a download.
+
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::cancel):
+
+2012-12-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137570.
+ http://trac.webkit.org/changeset/137570
+ https://bugs.webkit.org/show_bug.cgi?id=105048
+
+ Stale nodes in the touchEventTarget HashCountedSet are
+ triggering crashes. Rolling out while I find the root cause.
+ (Requested by leviw on #webkit).
+
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::didAddTouchEventHandler):
+ (WebCore::Document::didRemoveTouchEventHandler):
+ * dom/Document.h:
+ (WebCore::Document::touchEventHandlerCount):
+ (Document):
+ * dom/Node.cpp:
+ (WebCore::Node::didMoveToNewDocument):
+ (WebCore::tryAddEventListener):
+ (WebCore::tryRemoveEventListener):
+ * history/CachedFrame.cpp:
+ (WebCore::CachedFrameBase::restore):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::~HTMLInputElement):
+ (WebCore::HTMLInputElement::updateType):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::addEventListener):
+ (WebCore::DOMWindow::removeEventListener):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleTouchEvent):
+ * page/Frame.cpp:
+ (WebCore::Frame::setDocument):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ * page/scrolling/ScrollingCoordinator.h:
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
+ (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
+ (ScrollingCoordinatorChromium):
+ * testing/Internals.cpp:
+ (WebCore::Internals::touchEventHandlerCount):
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
+2012-12-14 Michelangelo De Simone <michelangelo@webkit.org>
+
+ [CSS Shaders] Remove code for the other mesh box types (border-box | padding-box | content-box)
+ https://bugs.webkit.org/show_bug.cgi?id=103776
+
+ Reviewed by Dean Jackson.
+
+ The MeshBoxType has been removed and the code has been refactored. The specs will be updated shortly
+ and therefore this feature - even though it was not fully implemented yet - shall not be used anymore.
+
+ In this patch we remove everything but the parsing code, which shall be addressed in a different patch
+ (see: https://bugs.webkit.org/show_bug.cgi?id=103778).
+
+ Specification to be updated: http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#ltboxgt
+
+ Existing tests have been updated and new parsing legacy cases have been added.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::valueForFilter):
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseCustomFilter):
+ * css/CSSPrimitiveValueMappings.h:
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::createCustomFilterOperation):
+ * platform/graphics/filters/CustomFilterConstants.h:
+ * platform/graphics/filters/CustomFilterOperation.cpp:
+ (WebCore::CustomFilterOperation::CustomFilterOperation):
+ (WebCore::CustomFilterOperation::blend):
+ * platform/graphics/filters/CustomFilterOperation.h:
+ (WebCore::CustomFilterOperation::create):
+ (CustomFilterOperation):
+ (WebCore::CustomFilterOperation::operator==):
+ * platform/graphics/filters/CustomFilterRenderer.cpp:
+ (WebCore::CustomFilterRenderer::create):
+ (WebCore::CustomFilterRenderer::CustomFilterRenderer):
+ * platform/graphics/filters/CustomFilterRenderer.h:
+ (CustomFilterRenderer):
+ * platform/graphics/filters/FECustomFilter.cpp:
+ (WebCore::FECustomFilter::FECustomFilter):
+ (WebCore::FECustomFilter::create):
+ * platform/graphics/filters/FECustomFilter.h:
+ (FECustomFilter):
+ * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
+ (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
+ * platform/graphics/filters/ValidatedCustomFilterOperation.h:
+ (WebCore::ValidatedCustomFilterOperation::create):
+ (WebCore::ValidatedCustomFilterOperation::operator==):
+ (ValidatedCustomFilterOperation):
+ * rendering/FilterEffectRenderer.cpp:
+ (WebCore::createCustomFilterEffect):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::computeFilterOperations):
+ * platform/graphics/texmap/TextureMapperGL.cpp:
+ (WebCore::TextureMapperGL::drawUsingCustomFilter):
+
+2012-12-14 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: optional parameters of protocol commands should go after required ones
+ https://bugs.webkit.org/show_bug.cgi?id=105019
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/Inspector.json: Moved required x and y parameters declaration before
+ optional ones.
+ * inspector/InspectorInputAgent.cpp:
+ (WebCore::InspectorInputAgent::dispatchMouseEvent):
+ * inspector/InspectorInputAgent.h:
+ (InspectorInputAgent):
+
+2012-12-14 Jessie Berlin <jberlin@apple.com>
+
+ Mac build fix after r137724.
+
+ * platform/graphics/MediaPlayer.h:
+ (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
+ Comment out the names of the unused parameters so they don't trigger unused parameter
+ warnings.
+ (WebCore::MediaPlayerClient::mediaPlayerKeyError):
+ Ditto.
+ (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
+ Ditto.
+ (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
+ Ditto.
+
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest):
+ Pass an empty URL for the new defaultURL parameter in the keyMessage call.
+
+2012-12-14 Alberto Garcia <agarcia@igalia.com>
+
+ [GTK] When in private mode WebKitGTK+ should not save HTTP authentication credentials to the persistent storage
+ https://bugs.webkit.org/show_bug.cgi?id=104910
+
+ Reviewed by Martin Robinson.
+
+ Add new parameter to GtkAuthenticationDialog to select whether we
+ allow persistent storage of credential information or not. In the
+ latter case, the "Remember password" check button is not shown and
+ the credentials are always stored in the session.
+
+ * platform/gtk/GtkAuthenticationDialog.cpp:
+ (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog):
+ (WebCore::GtkAuthenticationDialog::createContentsInContainer):
+ (WebCore::GtkAuthenticationDialog::buttonClickedCallback):
+ * platform/gtk/GtkAuthenticationDialog.h:
+ (GtkAuthenticationDialog):
+
+2012-12-14 Andrey Kosyakov <caseq@chromium.org>
+
+ Unreviewed, rolling out r129633 and r129757.
+ http://trac.webkit.org/changeset/129633
+ http://trac.webkit.org/changeset/129757
+ https://bugs.webkit.org/show_bug.cgi?id=97659
+
+ Causes performance regression whn inspector overlay is
+ displayed
+
+ * inspector/InspectorOverlay.cpp:
+ (WebCore::InspectorOverlay::paint):
+
+2012-12-14 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: add data grid for exploring native heap graph
+ https://bugs.webkit.org/show_bug.cgi?id=105012
+
+ Reviewed by Pavel Feldman.
+
+ Added a view for displaying native heap graph nodes.
+
+ * inspector/HeapGraphSerializer.cpp:
+ (WebCore::HeapGraphSerializer::reportEdge):
+ * inspector/front-end/NativeMemorySnapshotView.js:
+ (WebInspector.NativeMemorySnapshotView):
+ (WebInspector.NativeMemorySnapshotView.prototype._onSelectedViewChanged):
+ (WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
+ (WebInspector.NativeHeapGraphNode):
+ (WebInspector.NativeHeapGraphNode.prototype.id):
+ (WebInspector.NativeHeapGraphNode.prototype.type):
+ (WebInspector.NativeHeapGraphNode.prototype.size):
+ (WebInspector.NativeHeapGraphNode.prototype.className):
+ (WebInspector.NativeHeapGraphNode.prototype.name):
+ (WebInspector.NativeHeapGraphNode.prototype.hasReferencedNodes):
+ (WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
+ (WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
+ (WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
+ (WebInspector.NativeHeapGraphNode.prototype._getStringField):
+ (WebInspector.NativeHeapGraph):
+ (WebInspector.NativeHeapGraph.prototype.rootNodes):
+ (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
+ (WebInspector.NativeHeapGraphDataGrid):
+ (WebInspector.NativeHeapGraphDataGridRoot):
+ (WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
+ (WebInspector.NativeHeapGraphDataGridNode):
+ (WebInspector.NativeHeapGraphDataGridNode.prototype._populate):
+ (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
+ (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
+
+2012-12-14 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Native Memory Instrumentation: do not validate InlineFlowBox objects against tcmalloc data.
+ https://bugs.webkit.org/show_bug.cgi?id=105001
+
+ Reviewed by Yury Semikhatsky.
+
+ This is a follow-up change for r137589.
+
+ * rendering/InlineFlowBox.cpp:
+ (WebCore::InlineFlowBox::reportMemoryUsage):
+ (WebCore):
+ * rendering/InlineFlowBox.h:
+ (InlineFlowBox):
+
+2012-12-14 Kentaro Hara <haraken@chromium.org>
+
+ ChildNodesLazySnapshot::nextNode() can crash in Debug builds
+ https://bugs.webkit.org/show_bug.cgi?id=104982
+
+ Reviewed by Ryosuke Niwa.
+
+ The original fix in r137702 was not enough. r137702 fixed a crash
+ in Release builds but didn't fix a crash in Debug builds.
+ We have to also change a return type of ChildNodesLazySnapshot::nextNode()
+ from a raw pointer to a RefPtr.
+
+ Test: fast/dom/insertedIntoDocument-no-crash.html
+ (Confirm that this test does not crash in Debug builds.)
+
+ * dom/ContainerNode.h:
+ (WebCore::ChildNodesLazySnapshot::nextNode):
+ * dom/ContainerNodeAlgorithms.cpp:
+ (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
+ (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
+
+2012-12-14 John Mellor <johnme@chromium.org>
+
+ Text Autosizing: Don't autosize unwrappable blocks
+ https://bugs.webkit.org/show_bug.cgi?id=104925
+
+ Reviewed by Julien Chaffraix.
+
+ If we autosize an unwrappable block (white-space:nowrap/pre), it'll
+ expand sideways. This doesn't actually improve its legibility, and it
+ can often severely break web page layouts. This patch prevents us from
+ autosizing unwrappable blocks. A follow-up patch will address the more
+ complex issue of unwrappable inline elements.
+
+ Tests: fast/text-autosizing/unwrappable-blocks.html
+ fast/text-autosizing/unwrappable-inlines.html
+
+ * rendering/TextAutosizer.cpp:
+ (WebCore::TextAutosizer::processContainer):
+ Use containerShouldbeAutosized instead of contentHeightIsConstrained.
+ (WebCore::contentHeightIsConstrained):
+ Unchanged, just moved lower down the file.
+ (WebCore::TextAutosizer::containerShouldbeAutosized):
+ Checks that the block is wrappable, and also that contentHeightIsConstrained is false.
+ (WebCore::TextAutosizer::measureDescendantTextWidth):
+ Use containerShouldbeAutosized instead of contentHeightIsConstrained.
+ * rendering/TextAutosizer.h:
+ Declared containerShouldbeAutosized.
+
+2012-12-14 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Duplicate scripts appear in workspace when script was referenced by url with a fragment part.
+ https://bugs.webkit.org/show_bug.cgi?id=105004
+
+ Reviewed by Alexander Pavlov.
+
+ * inspector/front-end/NetworkUISourceCodeProvider.js:
+ (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
+
+2012-12-14 Kunihiko Sakamoto <ksakamoto@chromium.org>
+
+ Hours field of date/time input UI should respect step attribute
+ https://bugs.webkit.org/show_bug.cgi?id=104993
+
+ Reviewed by Kent Tamura.
+
+ This patch makes step-up/-down UI of the hours field respect step attribute when possible.
+
+ Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
+
+ * html/shadow/DateTimeEditElement.cpp:
+ (WebCore::DateTimeEditBuilder::visitField): Pass step parameters to the hour field constructor.
+ * html/shadow/DateTimeFieldElements.cpp:
+ (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Add Parameters argument.
+ (WebCore::DateTimeHourFieldElement::create): Ditto.
+ * html/shadow/DateTimeFieldElements.h:
+ (DateTimeHourFieldElement): Ditto.
+
+2012-12-14 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Windows compilation fix after r137728.
+
+ * inspector/InspectorAllInOne.cpp:
+
+2012-12-14 Shinya Kawanaka <shinyak@chromium.org>
+
+ [Shadow DOM] ShadowRoot.getElementById() should work outside document.
+ https://bugs.webkit.org/show_bug.cgi?id=87815
+
+ Reviewed by Hajime Morita.
+
+ ShadowRoot.getElementById() didn't work if ShadowRoot is outside document. We need to update id when an element
+ is in ShadowTree event if it is not in document.
+
+ For performance reason, we introduce IsInShadowTree flag, which enables us to check isInTreeScope() fast.
+ This is maintained in Element::insertedInto and removedFrom. Here, we're anxious about performance regression,
+ however our benchmark result shows this doesn't regress the performance.
+
+ I've measured Dromaeo/dom-modify.html and Parser/html5-full-render.html 2 times.
+
+ Dromaeo/dom-modify.html
+ 35.21, 35.27 [runs/s] ---> 35.76, 35.56 [runs/s]
+ Parser/html5-full-render.html
+ 4328.51, 4254.94 [ms] ---> 4277.14, 4222.43 [ms]
+
+ Test: fast/dom/shadow/getelementbyid-in-orphan.html
+
+ * dom/Element.cpp:
+ (WebCore::Element::insertedInto):
+ * dom/Element.h:
+ (WebCore::Element::updateId):
+ * dom/Node.cpp:
+ (WebCore::Node::insertedInto): If the parent node is in shadow tree, this node should be also in the same shadow tree.
+ Since this node is inserted, parentOrHostNode() will not be null.
+ (WebCore::Node::removedFrom): When node is removed from ShadowTree, its treeScope() should not be ShadowRoot.
+ * dom/Node.h:
+ (Node):
+ (WebCore::Node::isInShadowTree):
+ (WebCore::Node::isInTreeScope):
+
+2012-12-14 Antoine Quint <graouts@apple.com>
+
+ LayerTreeAgent should only be enabled upon restore if it was previously in the enabled state
+ https://bugs.webkit.org/show_bug.cgi?id=104887
+
+ Reviewed by Pavel Feldman.
+
+ Check that we were previously in the enabled state before re-enabling the agent upon restore,
+ as suggested by Pavel Feldman in follow-up discussion to https://bugs.webkit.org/show_bug.cgi?id=103513.
+
+ * inspector/InspectorLayerTreeAgent.cpp:
+ (WebCore::InspectorLayerTreeAgent::restore):
+
+2012-12-14 Eugene Klyuchnikov <eustas@chromium.org>
+
+ Web Inspector: CPU Profile: Search in "heavy" mode is very slow.
+ https://bugs.webkit.org/show_bug.cgi?id=103682
+
+ Reviewed by Pavel Feldman.
+
+ In "heavy" mode the searchable tree is much larger than original tree.
+ That is why search can cause watchdog timer fired.
+
+ Simple optimization makes search much faster.
+
+ * inspector/front-end/CPUProfileView.js:
+ (WebInspector.CPUProfileView.prototype.searchCanceled):
+ Fix cleanup.
+ (WebInspector.CPUProfileView.prototype.matchesQuery):
+ Precompute regexp.
+ (WebInspector.CPUProfileView.prototype.performSearch):
+ Use precomputed regexp instead of generating one on each iteration.
+
+2012-12-13 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: collect native heap graph and report it to the front-end
+ https://bugs.webkit.org/show_bug.cgi?id=104888
+
+ Reviewed by Pavel Feldman.
+
+ Added an option to serialize native heap graph in a format similar to that
+ of JS heap profiler and send it in reply to getProcessMemoryDistribution
+ command. This is a first attempt and we likely change the report mechanism to
+ use a stream instread of sending whole graph at once.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/HeapGraphSerializer.cpp: Added.
+ (WebCore):
+ (HeapGraphNode):
+ (WebCore::HeapGraphNode::HeapGraphNode):
+ (HeapGraphEdge):
+ (WebCore::HeapGraphEdge::HeapGraphEdge):
+ (WebCore::HeapGraphSerializer::HeapGraphSerializer):
+ (WebCore::HeapGraphSerializer::~HeapGraphSerializer):
+ (WebCore::HeapGraphSerializer::serialize):
+ (WebCore::HeapGraphSerializer::reportNode):
+ (WebCore::HeapGraphSerializer::reportEdge):
+ (WebCore::HeapGraphSerializer::reportLeaf):
+ (WebCore::HeapGraphSerializer::reportBaseAddress):
+ (WebCore::HeapGraphSerializer::adjutEdgeTargets):
+ (WebCore::HeapGraphSerializer::addString):
+ * inspector/HeapGraphSerializer.h: Copied from Source/WebCore/inspector/InspectorMemoryAgent.h.
+ (WebCore):
+ (HeapGraphSerializer):
+ * inspector/Inspector.json:
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
+ * inspector/InspectorMemoryAgent.h:
+ (InspectorMemoryAgent):
+ * inspector/MemoryInstrumentationImpl.cpp:
+ (WebCore::MemoryInstrumentationClientImpl::reportNode):
+ (WebCore):
+ (WebCore::MemoryInstrumentationClientImpl::reportEdge):
+ (WebCore::MemoryInstrumentationClientImpl::reportLeaf):
+ (WebCore::MemoryInstrumentationClientImpl::reportBaseAddress):
+ * inspector/MemoryInstrumentationImpl.h:
+ (WebCore):
+ (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
+ (MemoryInstrumentationClientImpl):
+
+2012-12-14 Yoshifumi Inoue <yosin@chromium.org>
+
+ Handling autoscroll in EventHandler should be re-factor
+ https://bugs.webkit.org/show_bug.cgi?id=104764
+
+ Reviewed by Hajime Morita.
+
+ This patch introduces new class AutoscrollController for moving autoscroll
+ and panscroll from EventHandler class for ease of maintenance of
+ EventHandler and ease of adding autoscroll related features, e.g. autoscroll
+ during drag-and-drop, autoscoll by gesture.
+
+ No new tests. This patch doesn't change behavior.
+
+ * CMakeLists.txt: Changed to add page/AutoscrollController.cpp
+ * GNUmakefile.list.am: Changed to add page/AutoscrollController.{cpp,h}
+ * Target.pri: Changed to add page/AutoscrollController.cpp
+ * WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
+ * WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
+ * WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
+ * page/AutoscrollController.cpp: Added.
+ (WebCore::getMainFrame): Helper function.
+ (WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
+ (WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
+ (WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
+ (WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
+ (WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
+ (WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
+ (WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
+ (WebCore::AutoscrollController::didPanScrollStop): ditto
+ (WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
+ (WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
+ (WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
+ (WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
+ (WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
+ (WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
+ * page/AutoscrollController.h: Added.
+ (AutoscrollController):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
+ (WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
+ (WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
+ (WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
+ (WebCore::EventHandler::didPanScrollStop): ditto
+ (WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
+ (WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
+ (WebCore::EventHandler::updateAutoscrollRenderer): ditto
+ (WebCore::EventHandler::autoscrollInProgress): ditto
+ (WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
+ (WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
+ (WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
+ (WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
+ (WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
+ * page/EventHandler.h:
+ (WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
+ (WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
+ (WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
+ * rendering/RenderBox.h:
+ (RenderBox): Added new functions canAutoscroll() and findAutoscrollable().
+
+2012-12-14 David Dorwin <ddorwin@chromium.org>
+
+ EME v0.1: Report defaultURL in KeyMessage.
+ https://bugs.webkit.org/show_bug.cgi?id=104284
+
+ Reviewed by Darin Fisher.
+
+ Passes defaultURL down from the media engine to HTMLMediaElement.
+ Only Valid URLs will be passed.
+
+ No test because Clear Key does not provide a defaultURL (in v0.1).
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::mediaPlayerKeyMessage):
+ * html/HTMLMediaElement.h:
+ (HTMLMediaElement):
+ * platform/graphics/MediaPlayer.cpp:
+ (WebCore::MediaPlayer::keyMessage):
+ * platform/graphics/MediaPlayer.h:
+ (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
+ (WebCore::MediaPlayerClient::mediaPlayerKeyError):
+ (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
+ (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
+ (MediaPlayer):
+
+2012-12-13 Hajime Morrita <morrita@google.com>
+
+ ContentDistributor and ShadowRootContentDistributionData should use RefPtr to hold elements.
+ https://bugs.webkit.org/show_bug.cgi?id=104918
+
+ Reviewed by Kentaro Hara.
+
+ This change turns some raw pointers to RefPtrs.
+
+ No new tests. Hard to write reliable fast tests since the error
+ reproduction needs GC to run in certain timing. Although original
+ report has a repdocution, it takes a few seconds before crash and
+ isn't suited for a layout test.
+
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::insertionPointList):
+ * dom/ShadowRoot.h:
+ (ShadowRoot):
+ * html/shadow/ContentDistributor.cpp:
+ (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
+ (WebCore::ContentDistributor::findInsertionPointFor):
+ (WebCore::ContentDistributor::distribute):
+ (WebCore::ContentDistributor::invalidate):
+ * html/shadow/ContentDistributor.h:
+ (ShadowRootContentDistributionData):
+ (ContentDistributor):
+
+2012-12-13 Hajime Morrita <morrita@google.com>
+
+ NodeRenderingContext is slow due to ComposedShadowTreeWalker
+ https://bugs.webkit.org/show_bug.cgi?id=104332
+
+ Reviewed by Dimitri Glazkov.
+
+ NodeRenderingContext has some slowness due to the complexity of
+ ComposedShadowTreeWalker that NRC relies on. This change
+ creates some fast paths to address such slowness.
+
+ = NodeRenderingTraversal module:
+
+ This change introduces NodeRenderingTraversal namespace, a sister
+ of NodeTraversal. NRT consists of a set of tree traversal
+ functions that is responsible for traversal in NRC. Before this
+ change, NRC directly used CSTW. This NRT module hides and narrows
+ the usage of CSTW.
+
+ - Traversals provided by NRT have fast paths. In many case, such traversals
+ don't need to use CSTW and just goes to neighboring nodes in a plain DOM way.
+ - It also handles NRC specific traversal concerns like pseudo elements.
+ CSTW::pseudoAwareNextSibling() and CSTW::pseudoAwarePreviousSibling() are
+ merged into this module.
+ - CSTW::ParentTraversalDetails is moved and renamed to
+ NRT::ParentDetails with small modification. This is a pure
+ refactoring: As the name implies, This class is used only by NRC
+ and used during a traversal there.
+
+ NodeRenderingTraversal is an isolation layer between generic DOM and CSTW. This hides CSTW
+ behind the wall and will help further reduction of its usage.
+
+ = Node::NeedsShadowTreeWalkerFlag flag:
+
+ NRT fast path is enabled by newly introduced NeedsShadowTreeWalker
+ node flag. Each DOM node is now markd as NeedsShadowTreeWalker if
+ it requires non-trivial traversal in NRT which uses CSTW. This
+ means that each node can go fast path unless it is marked with this flag.
+
+ A node is marked as it NeedsShadowTreeWalker if:
+
+ - The node is a shadow boundary like InsertionPoint or ShadowRoot,
+ - The node has pseudo elements like generated content or
+ - The node is a pseudo element.
+
+ This criteria is defined in Node::needsShadowTreeWalkerSlow(). The node actually needs
+ the walker if the node or its parent is marked with this flag.
+
+ The original idea of this change was demonstrated by Antti Koivisto on bug 103208 and bug 104507.
+ This chagne has 2-3% speedup on Dromaeo/dom-modify/innerHTML on Apple Mac.
+
+ No new tests. Covered by existing tests.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/ComposedShadowTreeWalker.cpp:
+ * dom/ComposedShadowTreeWalker.h:
+ (ComposedShadowTreeWalker): Move some part to NodeRenderingTraversal
+ * dom/ContainerNode.h:
+ (WebCore::Node::needsShadowTreeWalker): Added. This is located here since it refers ContainerNode definition.
+ (WebCore):
+ * dom/DOMAllInOne.cpp:
+ * dom/Element.cpp:
+ (WebCore::Element::updatePseudoElement): Refactored.
+ (WebCore::Element::hasPseudoElements): Ditto.
+ (WebCore::Element::pseudoElement): Ditto.
+ (WebCore::Element::setPseudoElement): Refactored and added a flag update logic.
+ (WebCore):
+ * dom/Element.h:
+ (Element):
+ (WebCore::Element::beforePseudoElement): Refactored.
+ (WebCore::Element::afterPseudoElement): Refactored.
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::hasPseudoElements): Factored out.
+ * dom/ElementShadow.cpp:
+ (WebCore::ElementShadow::addShadowRoot): Added a flag update logic.
+ * dom/Node.cpp:
+ (WebCore::Node::needsShadowTreeWalkerSlow): Added.
+ * dom/Node.h:
+ (WebCore::Node::isInsertionPointNode): Added.
+ (Node):
+ (WebCore::Node::isInsertionPoint): Changed to use NeedsShadowTreeWalkerFlag.
+ (WebCore::Node::setNeedsShadowTreeWalker):
+ (WebCore::Node::resetNeedsShadowTreeWalker):
+ * dom/NodeRenderingContext.cpp: Adopted NodeRenderingTraversal.
+ (WebCore::NodeRenderingContext::NodeRenderingContext):
+ (WebCore::NodeRenderingContext::nextRenderer):
+ (WebCore::NodeRenderingContext::previousRenderer):
+ (WebCore::NodeRenderingContext::parentRenderer):
+ (WebCore::NodeRenderingContext::shouldCreateRenderer):
+ * dom/NodeRenderingContext.h: Ditto.
+ (NodeRenderingContext):
+ (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
+ * dom/NodeRenderingTraversal.cpp: Added.
+ (WebCore):
+ (NodeRenderingTraversal):
+ (WebCore::NodeRenderingTraversal::ParentDetails::didTraverseInsertionPoint): Moved from ComposedShadowTreeWalker
+ (WebCore::NodeRenderingTraversal::ParentDetails::didTraverseShadowRoot): Ditto.
+ (WebCore::NodeRenderingTraversal::parentSlow): Ditto.
+ (WebCore::NodeRenderingTraversal::nextSiblingSlow): Ditto. The original was pseudoAwareNextSibling.
+ (WebCore::NodeRenderingTraversal::previousSiblingSlow): Ditto. The original was pseudoAwarePreviousSibling.
+ * dom/NodeRenderingTraversal.h: Added.
+ (WebCore):
+ (NodeRenderingTraversal):
+ (ParentDetails): Moved from ComposedShadowTreeWalker.
+ (WebCore::NodeRenderingTraversal::ParentDetails::ParentDetails):
+ (WebCore::NodeRenderingTraversal::ParentDetails::insertionPoint):
+ (WebCore::NodeRenderingTraversal::ParentDetails::resetStyleInheritance):
+ (WebCore::NodeRenderingTraversal::ParentDetails::outOfComposition):
+ (WebCore::NodeRenderingTraversal::ParentDetails::childWasOutOfComposition):
+ (WebCore::NodeRenderingTraversal::ParentDetails::operator==):
+ (WebCore::NodeRenderingTraversal::parent):
+ (WebCore::NodeRenderingTraversal::nextSibling):
+ (WebCore::NodeRenderingTraversal::previousSibling):
+ * dom/PseudoElement.cpp:
+ (WebCore::PseudoElement::PseudoElement): Added an assertion.
+ * dom/Text.cpp:
+ * html/HTMLOptGroupElement.cpp: Added a #include which revealed by a chagne on NodeRenderingContext.h
+ * html/HTMLOptionElement.cpp: Ditto.
+ * html/HTMLProgressElement.cpp: Dito.
+ * html/shadow/InsertionPoint.h: Added an override of isInsertionPointNode().
+
+2012-12-13 Kent Tamura <tkent@chromium.org>
+
+ Refactoring: Fix indentation of ChromeClient.h
+ https://bugs.webkit.org/show_bug.cgi?id=104989
+
+ Reviewed by Kentaro Hara.
+
+ The contents of an outermost namespace block should not be indented.
+ http://www.webkit.org/coding/coding-style.html#indentation-namespace
+
+ No behavior change.
+
+ * page/ChromeClient.h:
+
+2012-12-13 Kunihiko Sakamoto <ksakamoto@chromium.org>
+
+ Seconds/Minutes field of date/time input UI should respect step attribute
+ https://bugs.webkit.org/show_bug.cgi?id=104985
+
+ Reviewed by Kent Tamura.
+
+ This patch makes step-up/-down UI of the seconds and minutes fields respect
+ step attribute when possible.
+
+ Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
+
+ * html/shadow/DateTimeEditElement.cpp:
+ (DateTimeEditBuilder):
+ (WebCore::DateTimeEditBuilder::visitField): Compute step parameters for seconds and minutes fields, and pass it to the field element constructors.
+ (WebCore::DateTimeEditBuilder::createNumericFieldParameters): Added.
+ * html/shadow/DateTimeFieldElements.cpp:
+ (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
+ (WebCore::DateTimeMillisecondFieldElement::create): Ditto.
+ (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): Add Parameters argument.
+ (WebCore::DateTimeMinuteFieldElement::create): Ditto.
+ (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): Ditto.
+ (WebCore::DateTimeSecondFieldElement::create): Ditto.
+ * html/shadow/DateTimeFieldElements.h:
+ (DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
+ (DateTimeMinuteFieldElement): Add Parameters argument.
+ (DateTimeSecondFieldElement): Ditto.
+ * html/shadow/DateTimeNumericFieldElement.cpp:
+ (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Use Parameters instead of step and stepBase.
+ * html/shadow/DateTimeNumericFieldElement.h:
+ (DateTimeNumericFieldElement):
+ (WebCore::DateTimeNumericFieldElement::Parameters::Parameters):
+ (Parameters): Added.
+
+2012-12-13 Filip Pizlo <fpizlo@apple.com>
+
+ Attempt to rationalize and simplify WTF::binarySearch
+ https://bugs.webkit.org/show_bug.cgi?id=104890
+
+ Reviewed by Maciej Stachowiak.
+
+ Switch to using the new binarySearch() API. No change in behavior, so no new tests.
+
+ * svg/animation/SVGSMILElement.cpp:
+ (WebCore::SVGSMILElement::findInstanceTime):
+
+2012-12-13 Takashi Sakamoto <tasak@google.com>
+
+ [Shadow DOM]: scoped styles are not applied in the cascade order.
+ https://bugs.webkit.org/show_bug.cgi?id=103239
+
+ Reviewed by Dimitri Glazkov.
+
+ If the scoping elements of two declarations have an ancestor/
+ descendant relationship, the declaration whose scoping element is
+ the descendant should win.
+ c.f. http://dev.w3.org/csswg/css3-cascade/#cascade
+
+ Test: fast/css/style-scoped/style-scoped-nested.html
+ fast/css/style-scoped/style-scoped-with-important-rule.html
+
+ * css/RuleSet.cpp:
+ (WebCore::RuleSet::addRule):
+ Removed specificity for @host @-rules. Now @host @-rules use the
+ cascading order instead.
+ * css/RuleSet.h:
+ Removed increaseSpecificity. The method is used by only @host @-rules.
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::matchScopedAuthorRules):
+ (WebCore::StyleResolver::matchHostRules):
+ (WebCore::StyleResolver::matchAuthorRules):
+ Modified to invoke sortAndTransferMatchedRules per scoping element.
+ The order of "matchXXXRules" must be the same as the cascading order.
+ So matchHostRules was invoked after collecting all scoped author rules.
+ * css/StyleScopeResolver.cpp:
+ (WebCore::StyleScopeResolver::addHostRule):
+ Removed RuleIsHostRule. We don't need the flag.
+ * html/HTMLStyleElement.cpp:
+ (WebCore::HTMLStyleElement::registerWithScopingNode):
+ Needs to pass the last test case of style-scoped-nested.html.
+ When appending some style element to a shadow root, we should recalc
+ styles of all elements in the shadow dom tree. And if the style
+ element has @host @-rules, we have to update the host's style.
+
+2012-12-13 Filip Pizlo <fpizlo@apple.com>
+
+ MediaPlayerPrivateAVFoundation::m_inbandTrackConfigurationPending is unused except when HAVE(AVFOUNDATION_TEXT_TRACK_SUPPORT)
+ https://bugs.webkit.org/show_bug.cgi?id=104987
+
+ Rubber stamped by Michael Saboff.
+
+ No change in behavior so no new tests.
+
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
+ (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
+ (MediaPlayerPrivateAVFoundation):
+
+2012-12-13 Kentaro Hara <haraken@chromium.org>
+
+ Unreviewed. Rebaselined run-bindings-tests results.
+
+ * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
+ (JSTestCustomNamedGetter):
+ * bindings/scripts/test/JS/JSTestEventTarget.h:
+ (JSTestEventTarget):
+
+2012-12-13 Yoshifumi Inoue <yosin@chromium.org>
+
+ Unreviewed, rolling out r137691.
+ http://trac.webkit.org/changeset/137691
+ https://bugs.webkit.org/show_bug.cgi?id=104764
+
+ panscroll test on AppleWin failed
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * page/AutoscrollController.cpp: Removed.
+ * page/AutoscrollController.h: Removed.
+ * page/EventHandler.cpp:
+ (WebCore):
+ (WebCore::EventHandler::EventHandler):
+ (WebCore::canAutoscroll):
+ (WebCore::EventHandler::handleMouseDraggedEvent):
+ (WebCore::EventHandler::handleMouseReleaseEvent):
+ (WebCore::EventHandler::handleAutoscroll):
+ (WebCore::EventHandler::autoscrollTimerFired):
+ (WebCore::EventHandler::startPanScrolling):
+ (WebCore::EventHandler::updatePanScrollState):
+ (WebCore::EventHandler::autoscrollRenderer):
+ (WebCore::EventHandler::updateAutoscrollRenderer):
+ (WebCore::EventHandler::setAutoscrollRenderer):
+ (WebCore::EventHandler::startAutoscrollTimer):
+ (WebCore::EventHandler::stopAutoscrollTimer):
+ (WebCore::EventHandler::selectCursor):
+ (WebCore::EventHandler::handleMousePressEvent):
+ (WebCore::EventHandler::keyEvent):
+ * page/EventHandler.h:
+ (EventHandler):
+ (WebCore::EventHandler::autoscrollInProgress):
+ * rendering/RenderBox.cpp:
+ * rendering/RenderBox.h:
+ (RenderBox):
+
+2012-12-13 Kentaro Hara <haraken@chromium.org>
+
+ ChildNodesLazySnapshot::nextNode() can crash
+ https://bugs.webkit.org/show_bug.cgi?id=104982
+
+ Reviewed by Hajime Morita.
+
+ ChildNodesLazySnapshot::nextNode() can crash for
+ fast/dom/insertedIntoDocument-no-crash.html.
+ The root cause is that ChildNodesLazySnapshot::m_currentNode
+ was not a RefPtr. This patch changes it to a RefPtr.
+
+ Test: fast/dom/insertedIntoDocument-no-crash.html
+
+ * dom/ContainerNode.h:
+ (WebCore::ChildNodesLazySnapshot::nextNode):
+ (WebCore::ChildNodesLazySnapshot::takeSnapshot):
+ (ChildNodesLazySnapshot):
+
+2012-12-13 Philip Rogers <pdr@google.com>
+
+ Clear m_timeContainer on SVGSMILElement removal.
+ https://bugs.webkit.org/show_bug.cgi?id=104972
+
+ Reviewed by Abhishek Arya.
+
+ This patch fixes a regression introduced by r137509 where we did not clear
+ m_timeContainer in SVGSMILElement::removedFrom.
+
+ Test: svg/custom/removed-from-animation-crash.html
+
+ * svg/animation/SVGSMILElement.cpp:
+ (WebCore::SVGSMILElement::removedFrom):
+
+2012-12-13 Filip Pizlo <fpizlo@apple.com>
+
+ Named lookups on HTML documents produce inconsistent results in JavaScriptCore bindings
+ https://bugs.webkit.org/show_bug.cgi?id=104623
+
+ Reviewed by Geoffrey Garen.
+
+ All DOM objects that have named getters or directly override getOwnPropertySlot are now marked as
+ HasImpureGetOwnPropertySlot.
+
+ Tests: fast/js/prototype-chain-caching-with-impure-get-own-property-slot-traps
+ fast/js/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateHeader):
+
+2012-12-13 Xianzhu Wang <wangxianzhu@chromium.org>
+
+ Out-of-view check of fixed position element in frame is incorrect when page is scaled
+ https://bugs.webkit.org/show_bug.cgi?id=104943
+
+ Reviewed by Simon Fraser.
+
+ Use frameScaleFactor instead of pageScaleFactor to scale the layer bounds.
+
+ Tests: compositing/layer-creation/fixed-position-out-of-view-scaled-iframe-scroll.html
+ compositing/layer-creation/fixed-position-out-of-view-scaled-iframe.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
+
+2012-12-13 Bear Travis <betravis@adobe.com>
+
+ Positioned replaced elements should resolve vertical margins against their containing
+ block's logical width
+ https://bugs.webkit.org/show_bug.cgi?id=103579
+
+ Reviewed by Emil A Eklund.
+
+ According to the CSS box model & writing modes specifications, percentage margin
+ & padding values, including top & bottom, should be resolved based on the
+ containing block's logical width (logical with respect to the containing block's
+ writing mode).
+ http://www.w3.org/TR/CSS2/box.html#margin-properties
+ http://dev.w3.org/csswg/css3-writing-modes/#dimension-mapping
+
+ Previously, a positioned replaced element resolved margin before/after relative to
+ its inline direction (containerLogicalHeight), and margin start/end relative to
+ its block direction (containerLogicalWidth). This patch measures the container's
+ logical width in its own inline direction (containerRelativeLogicalWidth) to
+ resolve all margin percentage values.
+
+ Test: fast/writing-mode/percentage-margins-absolute-replaced.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computePositionedLogicalWidthReplaced): Calculate the logical
+ width of the container, and use it to calculate margins.
+ (WebCore::RenderBox::computePositionedLogicalHeightReplaced): Ditto.
+
+2012-12-13 Yoshifumi Inoue <yosin@chromium.org>
+
+ Handling autoscroll in EventHandler should be re-factor
+ https://bugs.webkit.org/show_bug.cgi?id=104764
+
+ Reviewed by Hajime Morita.
+
+ This patch introduces new class AutoscrollController for moving autoscroll
+ and panscroll from EventHandler class for ease of maintenance of
+ EventHandler and ease of adding autoscroll related features, e.g. autoscroll
+ during drag-and-drop, autoscoll by gesture.
+
+ No new tests. This patch doesn't change behavior.
+
+ * CMakeLists.txt: Changed to add page/AutoscrollController.cpp
+ * GNUmakefile.list.am: Changed to add page/AutoscrollController.{cpp,h}
+ * Target.pri: Changed to add page/AutoscrollController.cpp
+ * WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
+ * WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
+ * WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
+ * page/AutoscrollController.cpp: Added.
+ (WebCore::getMainFrame): Helper function.
+ (WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
+ (WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
+ (WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
+ (WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
+ (WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
+ (WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
+ (WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
+ (WebCore::AutoscrollController::didPanScrollStop): ditto
+ (WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
+ (WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
+ (WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
+ (WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
+ (WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
+ (WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
+ * page/AutoscrollController.h: Added.
+ (AutoscrollController):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
+ (WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
+ (WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
+ (WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
+ (WebCore::EventHandler::didPanScrollStop): ditto
+ (WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
+ (WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
+ (WebCore::EventHandler::updateAutoscrollRenderer): ditto
+ (WebCore::EventHandler::autoscrollInProgress): ditto
+ (WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
+ (WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
+ (WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
+ (WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
+ (WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
+ * page/EventHandler.h:
+ (WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
+ (WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
+ (WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
+ * rendering/RenderBox.h:
+ (RenderBox): Added new functions canAutoscroll() and findAutoscrollable().
+
+2012-12-13 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=102599
+ ASSERT loading Acid3 test in run-safari --debug (r135050)
+
+ Reviewed by Simon Fraser.
+
+ New flag IncludeCompositedDescendants will always calculate the layer bounds for
+ descendants, even when the are composited.
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::calculateLayerBounds):
+ * rendering/RenderLayer.h:
+
+ calculateCompositedBounds() should not include this new flag, so instead of
+ calling that, call calculateLayerBounds() directly with the
+ IncludeCompositedDescendants flag. This will get us the information we need
+ upfront and avoid the toggling later on.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
+
+2012-12-13 Tien-Ren Chen <trchen@chromium.org>
+
+ Don't consider container nodes of other disambiguated nodes
+ https://bugs.webkit.org/show_bug.cgi?id=104619
+
+ Reviewed by Eric Seidel.
+
+ It is not uncommon to have a clickable <div> that contains other clickable objects.
+ This heuristic avoids excessive disambiguation in that case.
+
+ New unit test: WebFrameTest.DisambiguationPopupNoContainer
+
+ * page/TouchDisambiguation.cpp:
+ (WebCore::findGoodTouchTargets):
+
+2012-12-13 Adrienne Walker <enne@chromium.org>
+
+ Unreviewed, rolling out r137645, r137646, and r137667.
+ http://trac.webkit.org/changeset/137645
+ http://trac.webkit.org/changeset/137646
+ http://trac.webkit.org/changeset/137667
+ https://bugs.webkit.org/show_bug.cgi?id=104911
+
+ Breaks some overflow layout tests
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::RenderLayer):
+ (WebCore::RenderLayer::updateDescendantDependentFlags):
+ (WebCore::RenderLayer::addChild):
+ (WebCore::RenderLayer::removeChild):
+ (WebCore::RenderLayer::usesCompositedScrolling):
+ (WebCore::RenderLayer::scrollTo):
+ (WebCore::RenderLayer::dirtyZOrderLists):
+ (WebCore::RenderLayer::dirtyNormalFlowList):
+ (WebCore::RenderLayer::updateLayerListsIfNeeded):
+ (WebCore::RenderLayer::shouldBeNormalFlowOnly):
+ (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
+ (WebCore::RenderLayer::styleChanged):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+ (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
+ * rendering/RenderLayerCompositor.h:
+ (RenderLayerCompositor):
+ * testing/InternalSettings.cpp:
+ * testing/InternalSettings.h:
+ (InternalSettings):
+ * testing/InternalSettings.idl:
+
+2012-12-13 Andreas Kling <akling@apple.com>
+
+ Event dispatch: Avoid heap allocations in ensureEventAncestors() typical case.
+ <http://webkit.org/b/104938>
+
+ Reviewed by Anders Carlsson.
+
+ Give the EventTarget and EventContext vectors an inline capacity of 32 (no science here, just a
+ non-zero number.) As these vectors are created on the stack already, this is merely using a bit
+ more stack space to avoid malloc()ing all the gosh-darn time.
+
+ Looks like ~6% improvement on Dromaeo/jslib-event-prototype.
+
+ * dom/EventDispatcher.cpp:
+ (WebCore::EventRelatedTargetAdjuster::adjust):
+ (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
+ (WebCore::EventDispatcher::ensureEventAncestors):
+ * dom/EventDispatcher.h:
+ (EventRelatedTargetAdjuster):
+ (EventDispatcher):
+
+2012-12-13 James Simonsen <simonjam@chromium.org>
+
+ [Resource Timing] Don't report resources with data: urls
+ https://bugs.webkit.org/show_bug.cgi?id=104868
+
+ Reviewed by Tony Gentilcore.
+
+ Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_data_url.html
+
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::loadDone):
+
+2012-12-13 Ian Vollick <vollick@chromium.org>
+
+ Add a missing nullity check in RenderObject::containingBlock
+ https://bugs.webkit.org/show_bug.cgi?id=104961
+
+ Reviewed by Adrienne Walker.
+
+ Adds a missing nullity check in an assert.
+
+ No new tests, no change in functionality.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::containingBlock):
+
+2012-12-13 Tab Atkins <tabatkins@google.com>
+
+ Switch the gradient drawing code to use bearing angles
+ https://bugs.webkit.org/show_bug.cgi?id=104616
+
+ Reviewed by Dean Jackson.
+
+ Switch the gradient math from polar-coordinate angles to bearing angles.
+ To make this possible without behavior changes,
+ switch the m_deprecatedType boolean to an m_gradientType enum,
+ and fix all usages accordingly.
+
+ No new tests, as this is a refactoring and should have no behavior changes. Existing tests suffice.
+
+ * css/CSSGradientValue.cpp:
+ (WebCore::endPointsFromAngle):
+ This is the only mechanical change. The rest are just fixing the plumbing around the boolean->enum change.
+
+ * css/CSSGradientValue.cpp:
+ (WebCore::CSSGradientValue::sortStopsIfNeeded):
+ (WebCore::CSSGradientValue::addStops):
+ (WebCore::CSSLinearGradientValue::customCssText):
+ (WebCore::CSSLinearGradientValue::createGradient):
+ (WebCore::CSSRadialGradientValue::customCssText):
+ * css/CSSGradientValue.h:
+ (WebCore::CSSGradientValue::gradientType):
+ (WebCore::CSSGradientValue::CSSGradientValue):
+ (WebCore::CSSLinearGradientValue::create):
+ (WebCore::CSSLinearGradientValue::CSSLinearGradientValue):
+ (WebCore::CSSRadialGradientValue::create):
+ (WebCore::CSSRadialGradientValue::CSSRadialGradientValue):
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseDeprecatedGradient):
+ (WebCore::CSSParser::parseDeprecatedLinearGradient):
+ (WebCore::CSSParser::parseDeprecatedRadialGradient):
+
+2012-12-13 Ian Vollick <vollick@chromium.org>
+
+ [chromium] Automatically use composited scrolling
+ https://bugs.webkit.org/show_bug.cgi?id=94743
+
+ Reviewed by Adrienne Walker.
+
+ We currently use the composited scrolling facilities provided by
+ wkb.ug/91117 if the overflow scroll block element is styled with
+ -webkit-overflow-scrolling: touch. Ideally, we could automatically
+ opt into composited scrolling if it is safe to do so. This can affect
+ antialiasing, so it is important that automatically opting in is only
+ enabled via a setting.
+
+ The way I determine if it is safe is by checking that z-ordering will
+ not be affected if the overflow scrollable element were promoted to a
+ stacking context (details below), and that clipping our scrolling
+ descendants will not affect rendering.
+
+ To check the first condition (that z-ordering will not be affected).
+ I ensure that the candidate element and all its descendants appear as a
+ continuous block in the candidate's stacking context. That is, if no
+ other elements are 'between' any of the candidates descendants when we
+ sort in paint order, then we're safe. This is overly conservative,
+ however. We could, in future, only consider stacking problems between
+ elements that actually overlap.
+
+ To ensure that clipping will not cause a rendering change, I ensure
+ that the layer has no out of flow positioned descendant whose
+ containing block is not also a descendant of ours.
+
+ Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html
+
+ (WebCore):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::RenderLayer):
+ (WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
+ (WebCore):
+ (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
+ (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
+ (WebCore::RenderLayer::positionOverflowControlsAfterPromotionToCompositedScrolling):
+ (WebCore::RenderLayer::canSafelyEstablishAStackingContext):
+ Returns true if the RenderLayer could become a stacking context without
+ affecting the stacking order.
+ (WebCore::RenderLayer::updateDescendantDependentFlags):
+ We now need to keep track of out of flow positioned descendants.
+ (WebCore::RenderLayer::addChild):
+ (WebCore::RenderLayer::removeChild):
+ (WebCore::RenderLayer::usesCompositedScrolling):
+ Has been updated to return true if it can safely establish a stacking
+ context, and the setting is turned on.
+ (WebCore::RenderLayer::needsCompositedScrolling):
+ This function returns true if we would like to use composited
+ scrolling.
+ (WebCore::RenderLayer::updateNeedsCompositedScrolling):
+ (WebCore::RenderLayer::scrollTo):
+ (WebCore::RenderLayer::dirtyZOrderLists):
+ (WebCore::RenderLayer::dirtyNormalFlowList):
+ Since these could affect opting into composited scrolling, we must
+ request that the RenderLayerCompositor reevaluate compositing.
+ (WebCore::RenderLayer::updateLayerListsIfNeeded):
+ We call updateCanSafelyEstablishStackingContext here, if necessary.
+ (WebCore::RenderLayer::shouldBeNormalFlowOnly):
+ (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
+ usesCompositedScrolling -> needsCompositedScrolling
+ (WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
+ (WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
+ (WebCore::RenderLayer::updateOutOfFlowPositioned):
+ Dirties and sets the out of flow positioned descendant state.
+ (WebCore::RenderLayer::styleChanged):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+ (WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ (WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
+ (WebCore):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+ We now ensure that newly created overflow scroll controls get
+ positioned.
+ (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
+ * rendering/RenderLayerCompositor.h:
+ (WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
+ * testing/InternalSettings.cpp:
+ (WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
+ Allows enabling the setting in layout tests.
+ (WebCore):
+ * testing/InternalSettings.h:
+ (InternalSettings):
+ * testing/InternalSettings.idl:
+
+2012-12-13 Ryosuke Niwa <rniwa@webkit.org>
+
+ REGRESSION(r137406): NodeTraversal changes causing large renderer crash
+ https://bugs.webkit.org/show_bug.cgi?id=104937
+
+ Reviewed by Antti Koivisto.
+
+ Add a null pointer check to exit early since ElementTraversal::next assumes a non-null pointer.
+
+ No new tests since I don't think this function is ever exposed to any ES5 bindings.
+
+ * editing/FrameSelection.cpp:
+ (WebCore::scanForForm):
+
+2012-12-13 David Grogan <dgrogan@chromium.org>
+
+ IndexedDB: Improve error messages
+ https://bugs.webkit.org/show_bug.cgi?id=104624
+
+ Reviewed by Tony Chang.
+
+ Add detail to error messages so that they are more helpful and can be
+ traced back to a specific line of code.
+
+ Updated test: transaction-error.html
+
+ * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+ (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
+ (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
+ (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
+ (WebCore::IDBDatabaseBackendImpl::openConnection):
+ (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
+ (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
+ (WebCore::IDBDatabaseBackendImpl::close):
+ * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
+ (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
+ (WebCore::IDBFactoryBackendImpl::deleteDatabase):
+ (WebCore::IDBFactoryBackendImpl::open):
+ * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
+ (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
+ (WebCore::IDBObjectStoreBackendImpl::createIndex):
+ (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
+ * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
+ (WebCore::IDBTransactionBackendImpl::abort):
+ (WebCore::IDBTransactionBackendImpl::commit):
+
+2012-12-13 Claudio Saavedra <csaavedra@igalia.com>
+
+ [GTK] Safeguard against possible NULL-dereference
+ https://bugs.webkit.org/show_bug.cgi?id=104931
+
+ Reviewed by Chris Fleizach.
+
+ This was spotted by Coverity. See bug 104114.
+
+ * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+ (webkitAccessibleGetIndexInParent): If parent is NULL
+ bail out early.
+
+2012-12-13 David Barton <dbarton@mathscribe.com>
+
+ Heap-use-after-free in WebCore::RenderBlock::finishDelayUpdateScrollInfo
+ https://bugs.webkit.org/show_bug.cgi?id=103750
+
+ Reviewed by Tony Chang.
+
+ MathML sometimes creates and destroys renderers for descendants during layout (or even to calculate
+ preferred logical widths), e.g. for operator stretching. RenderBlock::finishDelayUpdateScrollInfo
+ must therefore leave gDelayedUpdateScrollInfoSet intact as it iterates over it, so
+ RenderBlock::willBeDestroyed can call gDelayedUpdateScrollInfoSet->remove(this) effectively if needed.
+ This also prevents duplicate entries from being added to gDelayedUpdateScrollInfoSet.
+
+ Test: mathml/mo-stretch-crash.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::startDelayUpdateScrollInfo):
+ - Allow gDelayedUpdateScrollInfoSet to be non-null when gDelayUpdateScrollInfo is 0 during
+ RenderBlock::finishDelayUpdateScrollInfo.
+ (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
+ - Remove blocks from gDelayedUpdateScrollInfoSet one at a time, waiting for each block until it is
+ about to be updated.
+
+2012-12-13 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/12838354> Per-Tab WebProcess: DOM cookie access functions should respect private browsing
+ https://bugs.webkit.org/show_bug.cgi?id=104691
+
+ Reviewed by Sam Weinig.
+
+ * platform/network/NetworkingContext.h: Added a function that returns current
+ context type. Ideally, we would track contexts across processes in a generic manner,
+ but we only have two now, and don't need such complications.
+
+2012-12-13 Alexey Proskuryakov <ap@apple.com>
+
+ ResourceLoader::didReceiveAuthenticationChallenge uses a wrong client
+ https://bugs.webkit.org/show_bug.cgi?id=104935
+ <rdar://problem/12870361>
+
+ Reviewed by Anders Carlsson.
+
+ * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
+ The handle is null when NetworkProcess is used. In any case, it should be correct
+ to use the client carried within AuthenticationChallenge.
+
+2012-12-13 Stephen White <senorblanco@chromium.org>
+
+ CanvasRenderingContext2D::setFont() is slow.
+ https://bugs.webkit.org/show_bug.cgi?id=104923
+
+ Reviewed by James Robinson.
+
+ This spends most of its time in the CSS parser. As a first step,
+ early-out if the new value is the same as unparsed string for the current font.
+ See also http://code.google.com/p/chromium/issues/detail?id=164016.
+
+ Covered by existing tests in canvas/ and fast/canvas, and ManualTests/canvas-font-speed.html.
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::setFont):
+
+2012-12-13 Parth Patel <parpatel@rim.com>, Max Feil <mfeil@rim.com>
+
+ Allow plugins to be disabled by shared library filename
+ https://bugs.webkit.org/show_bug.cgi?id=101274
+
+ Reviewed by Antonio Gomes.
+
+ This fix makes PluginDatabase changes general so that other ports
+ can use this mechanism if they wish.
+
+ Layout test not included with this patch because there
+ is currently no framework within LayoutTests to allow calls
+ from an external application via platform API code (such as the
+ WebView API).
+
+ * plugins/PluginDatabase.cpp:
+ (WebCore::PluginDatabase::fileExistsAndIsNotDisabled):
+ (WebCore):
+ (WebCore::PluginDatabase::getDeletedPlugins):
+ (WebCore::PluginDatabase::removeDisabledPluginFile):
+ (WebCore::PluginDatabase::addDisabledPluginFile):
+ (WebCore::PluginDatabase::getPluginPathsInDirectories):
+ * plugins/PluginDatabase.h:
+ (PluginDatabase):
+
+2012-12-13 Yongjun Zhang <yongjun_zhang@apple.com>
+
+ Document will never be released when an Image is created inside unload event listener
+ https://bugs.webkit.org/show_bug.cgi?id=104830
+
+ Reviewed by Darin Adler.
+
+ When setting src attribute to an Image object inside unload event listener, ImageLoader will
+ mark it as load failure (by setting m_hasPendingErrorEvent to true) and the following call
+ to updatedHasPendingEvent will ref the element but won't be deref-ed since the Document is
+ being dismissed. This was introduced in r131670. To match pre r131670 behavior, we shouldn't
+ trigger error event for image loading when the page is being dismissed.
+
+ No new tests, there is no visual change. Manually tested to verify documents are released by
+ using heap in Mac OS X.
+
+ * loader/ImageLoader.cpp:
+ (WebCore::pageIsBeingDismissed): add a helper function to test whether the page is being dismissed.
+ (WebCore::ImageLoader::updateFromElement): don't trigger error event if the page is being dismissed.
+
+2012-12-13 Claudio Saavedra <csaavedra@igalia.com>
+
+ [GTK] Add missing breaks in switch-case statements
+ https://bugs.webkit.org/show_bug.cgi?id=104929
+
+ Reviewed by Martin Robinson.
+
+ * platform/gtk/ClipboardGtk.cpp:
+ (WebCore::ClipboardGtk::clearData): Add missing breaks.
+
+2012-12-13 Nate Chapin <japhet@chromium.org>
+
+ Route main resource loads through the memory cache.
+ https://bugs.webkit.org/show_bug.cgi?id=49246
+
+ Reviewed by Alexey Proskuryakov.
+
+ Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
+ The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
+ In several places, the MainResourceLoader's SubresourceLoader is treated as special.
+
+ No new tests, as this is primarily a refactor. A couple of expected results changed slightly.
+
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::setRequest):
+ (WebCore::DocumentLoader::subresource):
+ (WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
+ needs special handling in certain cases, track it separately from the real SubresourceLoaders.
+ (WebCore::DocumentLoader::removeSubresourceLoader):
+ (WebCore::DocumentLoader::startLoadingMainResource):
+ * loader/MainResourceLoader.cpp:
+ (WebCore::MainResourceLoader::MainResourceLoader):
+ (WebCore::MainResourceLoader::receivedError):
+ (WebCore::MainResourceLoader::cancel):
+ (WebCore::MainResourceLoader::clearResource):
+ (WebCore):
+ (WebCore::MainResourceLoader::frameLoader):
+ (WebCore::MainResourceLoader::request):
+ (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
+ (WebCore::MainResourceLoader::resourceData):
+ (WebCore::MainResourceLoader::redirectReceived):
+ (WebCore::MainResourceLoader::willSendRequest):
+ (WebCore::MainResourceLoader::continueAfterContentPolicy):
+ (WebCore::MainResourceLoader::responseReceived):
+ (WebCore::MainResourceLoader::dataReceived):
+ (WebCore::MainResourceLoader::didFinishLoading):
+ (WebCore::MainResourceLoader::notifyFinished):
+ (WebCore::MainResourceLoader::reportMemoryUsage):
+ (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
+ (WebCore::MainResourceLoader::load):
+ (WebCore::MainResourceLoader::setDefersLoading):
+ (WebCore::MainResourceLoader::defersLoading):
+ (WebCore::MainResourceLoader::setShouldBufferData):
+ (WebCore::MainResourceLoader::loader):
+ (WebCore::MainResourceLoader::identifier):
+ * loader/MainResourceLoader.h:
+ (MainResourceLoader):
+ (WebCore::MainResourceLoader::documentLoader):
+ * loader/ResourceLoader.cpp:
+ (WebCore::ResourceLoader::willSendRequest):
+ * loader/ResourceLoader.h:
+ (WebCore::ResourceLoader::defersLoading):
+ (WebCore::ResourceLoader::cancelled):
+ * loader/appcache/ApplicationCacheHost.cpp:
+ (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
+ (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
+ * loader/mac/DocumentLoaderMac.cpp:
+ (WebCore::DocumentLoader::schedule):
+ (WebCore::DocumentLoader::unschedule):
+
+2012-12-13 Pratik Solanki <psolanki@apple.com>
+
+ Duplicate code in GraphicsContext3D::validateAttributes() and GraphicsContext3D::validateDepthStencil()
+ https://bugs.webkit.org/show_bug.cgi?id=97275
+
+ Reviewed by Dean Jackson.
+
+ Remove duplicate code in validateAttributes(). validateAttributes() calls
+ validateDepthStencil() which has the exact same code.
+
+ No new tests because no change in functionality.
+
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+ (WebCore::GraphicsContext3D::validateAttributes):
+
+2012-12-13 Nate Chapin <japhet@chromium.org>
+
+ CachedResources should hang on to stripped fragment identifiers
+ https://bugs.webkit.org/show_bug.cgi?id=104721
+
+ Reviewed by Maciej Stachowiak.
+
+ No new tests, this will be unused until bug
+ https://bugs.webkit.org/show_bug.cgi?id=49246 re-lands. Then, it will
+ allow http/tests/inspector/resource-parameters.html to continue passing.
+
+ * loader/cache/CachedResource.cpp:
+ (WebCore::CachedResource::CachedResource):
+ (WebCore::CachedResource::load):
+ * loader/cache/CachedResource.h:
+ (CachedResource):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::requestResource): We override the request's url with the
+ local variable "url" here. The only difference between url and request.url() is that url
+ has had any fragment identifier removed. Do this work later (in the CachedResource constructor)
+ so that the CachedResource can save the fragment for later.
+
+2012-12-13 Claudio Saavedra <csaavedra@igalia.com>
+
+ [GTK] Remove deprecated API usage
+ https://bugs.webkit.org/show_bug.cgi?id=104894
+
+ Reviewed by Martin Robinson.
+
+ Remove deprecated GTK+ API usage.
+
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::spinButtonArrowSize): Do not use deprecated
+ gtk_style_context_get_font().
+
+2012-12-13 Zeno Albisser <zeno@webkit.org>
+
+ [Qt] Remove temporary workaround from GraphicsSurfaceGLX constructor.
+ https://bugs.webkit.org/show_bug.cgi?id=104904
+
+ QXcbNativeInterface::nativeResourceForContext() is now
+ available in Qt5. Therefore the temporary workaround
+ in GraphicsSurfaceGLX can be removed.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
+ (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
+
+2012-12-13 Joanmarie Diggs <jdiggs@igalia.com>
+
+ [GTK] Expose ARIA roles for tab, tabpanel and tablist
+ https://bugs.webkit.org/show_bug.cgi?id=84043
+
+ Reviewed by Martin Robinson.
+
+ Mapped the ARIA roles to their corresponding ATK roles.
+
+ No new tests; instead unskipped the associated test.
+
+ * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+ (atkRole): Mapped the ARIA roles to their corresponding ATK roles
+
+2012-12-13 Vivek Galatage <vivek.vg@samsung.com>
+
+ Web Inspector: "Add Attribute" context menu on closing tag should apply on the opening tag on Elements Panel
+ https://bugs.webkit.org/show_bug.cgi?id=104902
+
+ Reviewed by Alexander Pavlov.
+
+ The context menu action on the closing tag scrolls to the opening tag for adding the attribute.
+
+ No new tests as this is a UI change.
+
+ * inspector/front-end/ElementsTreeOutline.js:
+ (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
+ (WebInspector.ElementsTreeElement.prototype._addNewAttribute):
+
+2012-12-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137512.
+ http://trac.webkit.org/changeset/137512
+ https://bugs.webkit.org/show_bug.cgi?id=104912
+
+ The entire GTK+ layout test step has been failing for hours
+ (Requested by mrobinson on #webkit).
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::textUnderElement):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::textUnderElement):
+
+2012-12-13 Tamas Czene <tczene@inf.u-szeged.hu>
+
+ OpenCL version of FEColorMatrix.
+ https://bugs.webkit.org/show_bug.cgi?id=103398
+
+ Reviewed by Zoltan Herczeg.
+
+ ~3x speed-up (depending on hardware configuration)
+
+ * Target.pri: Added a new file to the build system.
+ * platform/graphics/filters/FEColorMatrix.cpp: calculateSaturateComponents and calculateHueRotateComponents methodes are moved to the header, since they are used by OpenCL as well
+ (WebCore::effectType):
+ * platform/graphics/filters/FEColorMatrix.h:
+ (FEColorMatrix):
+ (WebCore::FEColorMatrix::calculateSaturateComponents):
+ (WebCore):
+ (WebCore::FEColorMatrix::calculateHueRotateComponents):
+ * platform/graphics/gpu/opencl/FilterContextOpenCL.h: Required fields for the ColorMatrix kernels were added
+ (WebCore::FilterContextOpenCL::FilterContextOpenCL):
+ (FilterContextOpenCL):
+ * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp: the core implementation goes here
+ (WebCore):
+ (WebCore::FilterContextOpenCL::compileFEColorMatrix):
+ (WebCore::FilterContextOpenCL::applyFEColorMatrix):
+ (WebCore::FEColorMatrix::platformApplyOpenCL):
+
+2012-12-13 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Native Memory Instrumentation: do not validate pointers to objects in RenderArena agains tcmalloc data.
+ https://bugs.webkit.org/show_bug.cgi?id=104903
+
+ Reviewed by Yury Semikhatsky.
+
+ This is a simplest approach to do that with zero performance overhead.
+
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::InspectorResourceAgent::reportMemoryUsage):
+ * rendering/InlineBox.cpp:
+ (WebCore::InlineBox::reportMemoryUsage):
+ (WebCore):
+ * rendering/InlineBox.h:
+ (InlineBox):
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::reportMemoryUsage):
+ (WebCore):
+ * rendering/InlineTextBox.h:
+ (InlineTextBox):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::reportMemoryUsage):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::reportMemoryUsage):
+
+2012-12-13 Alberto Garcia <agarcia@igalia.com>
+
+ [GTK] Don't leak GStaticRecMutex
+ https://bugs.webkit.org/show_bug.cgi?id=104901
+
+ Reviewed by Martin Robinson.
+
+ The mutex in WebKitWebAudioSourceGStreamer is allocated using
+ g_new(), but that memory is not freed when the object is
+ destroyed.
+
+ This patch replaces that pointer with the structure itself, which
+ is faster and doesn't need to be explicitly freed.
+
+ * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
+ (_WebKitWebAudioSourcePrivate):
+ (webkit_web_audio_src_init):
+ (webKitWebAudioSrcFinalize):
+
+2012-12-13 Eugene Klyuchnikov <eustas@chromium.org>
+
+ Web Inspector: Network: Sorting cookies by size is broken.
+ https://bugs.webkit.org/show_bug.cgi?id=104893
+
+ Reviewed by Alexander Pavlov.
+
+ Problem: cookie "size" is not a field now; its value is accessible
+ through getter method.
+
+ Solution: make cookie fields uniformly accessible (add getters for name,
+ type and value).
+
+ * inspector/front-end/CookieItemsView.js: Adopt changes.
+ * inspector/front-end/CookieParser.js:
+ (WebInspector.Cookie): Refine JsDoc.
+ (WebInspector.Cookie.prototype.name): Added getter.
+ (WebInspector.Cookie.prototype.value): Ditto.
+ (WebInspector.Cookie.prototype.type): Ditto.
+ (WebInspector.Cookies.buildCookiesFromString): Adopt changes.
+ (WebInspector.Cookies.buildCookieProtocolObject): Ditto.
+ * inspector/front-end/CookiesTable.js:
+ (WebInspector.CookiesTable): Remove unused parameter.
+ (WebInspector.CookiesTable.prototype._sortCookies):
+ Use getters instead of field names.
+ (WebInspector.CookiesTable.prototype._createGridNode): Adopt changes.
+ * inspector/front-end/HAREntry.js: Ditto.
+ * inspector/front-end/RequestCookiesView.js: Ditto.
+
+2012-12-13 Kentaro Hara <haraken@chromium.org>
+
+ Unreviewed, rolling out r137569.
+ http://trac.webkit.org/changeset/137569
+ https://bugs.webkit.org/show_bug.cgi?id=104876
+
+ A bunch of CSS tests hit ASSERTs
+
+ * css/CSSProperty.h:
+ (WebCore::CSSProperty::CSSProperty):
+
+2012-12-13 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL] Remove redundant pipe write to prevent pipe buffer full.
+ https://bugs.webkit.org/show_bug.cgi?id=101135
+
+ Reviewed by Gyuyoung Kim.
+
+ To prevent a source of a deadlock, remove the redundant pipe write
+ in wakeUp() function.
+
+ EFL uses ecore_pipe_write() to wake up main run loop, and the function
+ uses POSIX pipe write with O_NONBLOCK disabled.
+ With O_NONBLOCK disabled, when written data is more than PIPE_BUF,
+ pipe write will be blocked until it can be written.
+
+ Currently, every wakeUp() function calls ecore_pipe_write() to invoke
+ wakeUpEvent() callback. And this can make pipe buffer full status
+ which is the one reason of the lockup problem described in Bug 99494.
+
+ * platform/RunLoop.h:
+ (RunLoop):
+ * platform/efl/RunLoopEfl.cpp:
+ (WebCore::RunLoop::RunLoop):
+ (WebCore::RunLoop::wakeUpEvent):
+ (WebCore::RunLoop::wakeUp):
+
+2012-12-13 Antti Harju <antti.harju@ixonos.com>
+
+ [Qt] Fix deleteAllCookies() invalid SQL statement
+ https://bugs.webkit.org/show_bug.cgi?id=101580
+
+ Reviewed by Jocelyn Turcotte.
+
+ * platform/network/qt/CookieJarQt.cpp:
+ (WebCore::SharedCookieJarQt::deleteAllCookies):
+
+2012-12-13 Ryosuke Niwa <rniwa@webkit.org>
+
+ Safari spends a lot of time in WebCore::findSimpleWordBoundary while selecting text on large scrabutility.com page
+ https://bugs.webkit.org/show_bug.cgi?id=104884
+
+ Reviewed by Hajime Morita.
+
+ We don't need to do anything in AlternativeTextController if selection is already outside of the editable region.
+
+ No new tests are added since this is only a performance improvement, and doesn't change any asymptotic behavior.
+
+ * editing/AlternativeTextController.cpp:
+ (WebCore::AlternativeTextController::respondToChangedSelection):
+
+2012-12-12 Jon Lee <jonlee@apple.com>
+
+ Crash in PlugInOriginHash with empty MIME type (104882)
+ https://bugs.webkit.org/show_bug.cgi?id=104882
+ <rdar://problem/12872298>
+
+ Reviewed by Filip Pizlo.
+
+ The crash occurs because the strings might be null. Add a check for it, but also try to infer a MIME type
+ in case the markup does not include a type attribute, but we can find it from the extension in the URL.
+
+ * platform/KURL.cpp: Add a new function mimeTypeFromURL() which tries to return the implied MIME type
+ based on the URL provided. If nothing was found, return a null string.
+ (WebCore::mimeTypeFromURL): Factored out from FrameLoader::defaultObjectContentType().
+ * platform/KURL.h:
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::defaultObjectContentType): Refactor to use mimeTypeFromURL().
+ * plugins/PlugInOriginHash.cpp:
+ (WebCore::addCaseFoldedCharacters): Add a check for an empty string.
+ (WebCore::PlugInOriginHash::hash): If the service type is empty, try to infer the MIME type.
+
+2012-12-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ Regression(r137486): Broke EFL build
+ https://bugs.webkit.org/show_bug.cgi?id=104883
+
+ Unreviewed EFL build fix.
+
+ Fix EFL build break after r137486 due to missing WebCore::
+ namespace.
+
+ No new tests, no behavior change for layout tests.
+
+ * platform/NotImplemented.h:
+
+2012-12-07 Levi Weintraub <leviw@chromium.org>
+
+ Add support for tracking hit test rectangles to enable fast event rejection in the compositor
+ https://bugs.webkit.org/show_bug.cgi?id=103914
+
+ Reviewed by Simon Fraser.
+
+ Adding support for tracking hit test target regions for the purpose of performing initial hit testing
+ in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
+ aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
+ thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
+ region. This patch includes the implementation to turn this on in Chromium.
+
+ To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
+ instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
+ when new touch event handlers are registered or removed, or after layout much like how
+ nonFastScrollableRegions are currently tracked.
+
+ This implementation will not properly update the hit test rects when the renderers are inside a sub-
+ tree that scrolls.
+
+ Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
+ are stored as the Document they point to.
+ (WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
+ to update the ScrollingCoordinator with the change.
+ (WebCore::Document::didRemoveTouchEventHandler): Ditto.
+ * dom/Document.h:
+ (WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
+ expose whether there are any or not.
+ (WebCore::Document::touchEventTargets):
+ * dom/Node.cpp:
+ (WebCore::Node::didMoveToNewDocument):
+ (WebCore::tryAddEventListener):
+ (WebCore::tryRemoveEventListener):
+ * history/CachedFrame.cpp:
+ (WebCore::CachedFrameBase::restore):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::~HTMLInputElement):
+ (WebCore::HTMLInputElement::updateType):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
+ (WebCore::DOMWindow::removeEventListener):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleTouchEvent):
+ * page/Frame.cpp:
+ (WebCore::Frame::setDocument):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
+ nodes and generate the absolute hit testing rects.
+ * page/scrolling/ScrollingCoordinator.h:
+ (WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
+ the scrolling tree/compositor.
+ (ScrollingCoordinator):
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
+ (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
+ (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
+ (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
+ (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
+ * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
+ (ScrollingCoordinatorChromium):
+ * testing/Internals.cpp:
+ (WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
+ it's no longer stored as an int in Document.
+ (WebCore::Internals::touchEventTargetClientRects):
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
+2012-12-12 Luke Macpherson <macpherson@chromium.org>
+
+ Add ASSERTions to ensure that CSSPropertys that are variables only ever refer to CSSValues that are variables.
+ https://bugs.webkit.org/show_bug.cgi?id=104876
+
+ Reviewed by Steve Block.
+
+ Add assertions to CSSProperty constructors to make that if it is initialized with CSSPropertyVariable that
+ the value type associated with it is also a variable. This is already asserted at read time, but ASSERTing
+ here will produce a more useful backtrace.
+
+ No new tests as functionality unchanged.
+
+ * css/CSSProperty.h:
+ (WebCore::CSSProperty::CSSProperty):
+
+2012-12-12 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ NetworkInfoController needs to support destructor
+ https://bugs.webkit.org/show_bug.cgi?id=104642
+
+ Reviewed by Kentaro Hara.
+
+ Though NetworkInfoController can be referenced by each port in order to update network status change,
+ there is no virtual interface to destroy it. Beside each port client also needs to be destroyed when
+ controller is destroyed.
+
+ * Modules/networkinfo/NetworkInfoClient.h:
+ (NetworkInfoClient):
+ * Modules/networkinfo/NetworkInfoConnection.h:
+ (WebCore::NetworkInfoConnection::networkInfoControllerDestroyed):
+ * Modules/networkinfo/NetworkInfoController.cpp:
+ (WebCore::NetworkInfoController::~NetworkInfoController):
+
+2012-12-12 Kent Tamura <tkent@chromium.org>
+
+ Validity of a radio button is not updated correctly when it is detached from an invalid radio group
+ https://bugs.webkit.org/show_bug.cgi?id=104873
+
+ Reviewed by Kentaro Hara.
+
+ When a radio button is detached from an invalid radio group,
+ A) we should update button's validity, and
+ B) it should be valid.
+
+ A is handled by the following code in RadioButtonGroup::remove.
+ if (!wasValid) {
+ // A radio button not in a group is always valid. We need to make it
+ // valid only if the group was invalid.
+ button->setNeedsValidityCheck();
+
+ B was incomplete.
+ bool RadioInputType::valueMissing(const String&) const
+ {
+ return element()->isInRequiredRadioButtonGroup() && !element()->checkedRadioButtonForGroup();
+ isInRequiredRadioButtonGroup checked required state of a group with the
+ name attribute value even if the radio button was already detached from
+ the group. isInRequiredRadioButtonGroup should check membership of the
+ radio button precisely.
+
+ Tests: Update fast/forms/radio/radio-live-validation-style.html
+
+ * dom/CheckedRadioButtons.cpp:
+ (RadioButtonGroup): Declare contains.
+ (WebCore::RadioButtonGroup::contains): Added.
+ (WebCore::CheckedRadioButtons::isInRequiredGroup): Renamed from
+ isRequiredGroup. This function takes HTMLInputElement* argument.
+ * dom/CheckedRadioButtons.h:
+ (CheckedRadioButtons): Rename isRequiredGroup to isInRequiredGroup.
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
+ Make this non-const becaues RadioButtonGroup::m_members needs non-const
+ pointers. Use CheckedRadioButtons::isInRequiredGroup.
+ * html/HTMLInputElement.h:
+ (HTMLInputElement): Make isInRequiredRadioButtonGroup non-const.
+
+2012-12-12 Shinya Kawanaka <shinyak@chromium.org>
+
+ ContainerNodeAlgorithm::notifyInsertedIntoDocument is not used
+ https://bugs.webkit.org/show_bug.cgi?id=104874
+
+ Reviewed by Hajime Morita.
+
+ ContainerNodeAlgorithm::notifyInsertedIntoDocument() is not used by anyone. We can remove it safely.
+
+ No new tests, no change in behavior.
+
+ * dom/ContainerNodeAlgorithms.h:
+
+2012-12-12 Kunihiko Sakamoto <ksakamoto@chromium.org>
+
+ Milliseconds field of date/time input UI should respect step attribute
+ https://bugs.webkit.org/show_bug.cgi?id=104628
+
+ Reviewed by Kent Tamura.
+
+ This patch makes step-up/-down UI of the milliseconds fields respect step attribute
+ in a special case when the step is divisible by 1000 milliseconds.
+
+ Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
+
+ * html/shadow/DateTimeEditElement.cpp:
+ (WebCore::DateTimeEditBuilder::visitField):
+ If step of the element (in milliseconds) is divisible by 1000, use it as the step of the milliseconds field. Otherwise, the millisecond field has step 1.
+ * html/shadow/DateTimeFieldElements.cpp:
+ (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Add step and stepBase arguments.
+ (WebCore::DateTimeMillisecondFieldElement::create): Ditto.
+ * html/shadow/DateTimeFieldElements.h:
+ (DateTimeMillisecondFieldElement): Ditto.
+ * html/shadow/DateTimeNumericFieldElement.cpp:
+ (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Ditto.
+ (WebCore::DateTimeNumericFieldElement::stepDown): Changed to compute next allowed value using roundDown().
+ (WebCore::DateTimeNumericFieldElement::stepUp): Changed to compute next allowed value using roundUp().
+ (WebCore::DateTimeNumericFieldElement::roundDown): Added.
+ (WebCore::DateTimeNumericFieldElement::roundUp): Added.
+ * html/shadow/DateTimeNumericFieldElement.h:
+ (DateTimeNumericFieldElement): Add m_step and m_stepBase fields.
+
+2012-12-12 Julien Chaffraix <jchaffraix@webkit.org>
+
+ [CSS Grid Layout] Include paddings and borders into the grid element's logical height / width
+ https://bugs.webkit.org/show_bug.cgi?id=104818
+
+ Reviewed by Tony Chang.
+
+ This change makes RenderGrid add the borders and paddings in the right direction during layout
+ so that the grid element's size accounts them like any other renderer.
+
+ Test: fast/css-grid-layout/grid-element-padding-margin.html
+
+ * rendering/RenderGrid.cpp:
+ (WebCore::RenderGrid::computePreferredLogicalWidths):
+ (WebCore::RenderGrid::layoutGridItems):
+
+2012-12-12 Roger Fong <roger_fong@apple.com>
+
+ Include Apple Windows in GraphicsLayer::supportsBackgroundColorContent().
+ https://bugs.webkit.org/show_bug.cgi?id=104852.
+
+ Reviewed by Simon Fraser.
+
+ * platform/graphics/GraphicsLayer.h:
+ (WebCore::GraphicsLayer::supportsBackgroundColorContent):
+
+2012-12-12 KyungTae Kim <ktf.kim@samsung.com>
+
+ Unused parameters on TextureMapperImageBuffer.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=104857
+
+ Reviewed by Kentaro Hara.
+
+ The updateContents has unused parameter 'textureMapper',
+ remove the parameter name to fix 'unused parameter' build warning.
+
+ * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
+ (WebCore::BitmapTextureImageBuffer::updateContents):
+
+2012-12-12 Shinya Kawanaka <shinyak@chromium.org>
+
+ [Shadow] HTMLContentElement::getDistributedNodes() doesn't work correctly if not in document tree.
+ https://bugs.webkit.org/show_bug.cgi?id=104345
+
+ Reviewed by Hajime Morita.
+
+ Since document->updateLayout() does affect nodes in Document, distribution will not occur in
+ InsertionPoints out of Document. We have to find the element in document tree scope, and start distribution from it.
+
+ Test: fast/dom/shadow/get-distributed-nodes-orphan.html
+
+ * html/shadow/InsertionPoint.cpp:
+ (WebCore::InsertionPoint::getDistributedNodes):
+
+2012-12-12 Patrick Gansterer <paroga@webkit.org>
+
+ [WIN] Implement WebCore::fileSystemRepresentation() for !USE(CF)
+ https://bugs.webkit.org/show_bug.cgi?id=104456
+
+ Reviewed by Brent Fulgham.
+
+ Convert the UTF-16 path to the system default Windows ANSI code page (usually Windows Latin1).
+
+ * platform/win/FileSystemWin.cpp:
+ (WebCore::fileSystemRepresentation):
+
+2012-12-12 No'am Rosenthal <noam@webkit.org>
+
+ [Texmap] Remove lowp/highp indicators as they're not needed with ANGLE.
+ https://bugs.webkit.org/show_bug.cgi?id=104707
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ lowp/highp indicator were needed for GLES2, but ANGLE does not require them.
+
+ Covered by existing tests.
+
+ * platform/graphics/texmap/TextureMapperShaderManager.cpp:
+ (WebCore::getShaderSpec):
+
+2012-12-12 Andy Estes <aestes@apple.com>
+
+ Don't dispatch fake mousemove events when we don't know where the cursor is
+ https://bugs.webkit.org/show_bug.cgi?id=104861
+
+ Reviewed by Sam Weinig.
+
+ When EventHandler is instantiated or cleared, it sets the current mouse
+ position to (0, 0), even though this is probably not where the mouse
+ cursor really is (and we won't know until the mouse moves into the WebView).
+ If a fake mousemove event fires and the page has an element at (0, 0)
+ that responds to mousemove, we might end up changing the cursor or
+ displaying a tooltip at the current mouse position, even if it is
+ outside the WebView.
+
+ Fake mousemove events are dispatched in order to update a cursor that
+ is already over the WebView. Don't dispatch the event if we don't know
+ this to be true.
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::EventHandler): Instantiate m_mousePositionIsUnknown to true.
+ (WebCore::EventHandler::clear): Reset m_mousePositionIsUnknown to true.
+ (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Return early if the mouse position is unknown.
+ (WebCore::EventHandler::setLastKnownMousePosition): Set the mouse position from the PlatformMouseEvent and set m_mousePositionIsUnknown to false.
+ (WebCore::EventHandler::handleMousePressEvent): Call setLastKnownMousePosition() instead of setting the position directly.
+ (WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
+ (WebCore::EventHandler::handleMouseMoveEvent): Ditto.
+ (WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
+ (WebCore::EventHandler::updateSelectionForMouseDrag): Rename currentMouse(Global)Position to lastKnownMouse(Global)Position.
+ (WebCore::EventHandler::handleAutoscroll): Ditto.
+ (WebCore::EventHandler::updatePanScrollState): Ditto.
+ (WebCore::EventHandler::lastKnownMousePosition): Ditto.
+ (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad): Ditto.
+ (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Ditto.
+ (WebCore::EventHandler::hoverTimerFired): Ditto.
+ * page/FrameView.cpp:
+ (WebCore::FrameView::lastKnownMousePosition): Ditto.
+ * platform/ScrollableArea.h:
+ (WebCore::ScrollableArea::lastKnownMousePosition): Ditto.
+ * platform/mac/ScrollAnimatorMac.mm:
+ (-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]): Ditto.
+ (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]): Ditto.
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::panScrollFromPoint): Ditto.
+ (WebCore::RenderLayer::autoscroll): Ditto.
+ (WebCore::RenderLayer::lastKnownMousePosition): Ditto.
+ * rendering/RenderListBox.cpp:
+ (WebCore::RenderListBox::panScroll): Ditto.
+ (WebCore::RenderListBox::autoscroll): Ditto.
+ (WebCore::RenderListBox::lastKnownMousePosition): Ditto.
+
+2012-12-12 Martin Robinson <mrobinson@igalia.com>
+
+ Try to fix the GTK+ debug bulid
+
+ Logging.h is no longer included in headers, so we need to include it manually in
+ files that require logging macros.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Include Logging.h.
+
+2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137524.
+ http://trac.webkit.org/changeset/137524
+ https://bugs.webkit.org/show_bug.cgi?id=104859
+
+ Causes m_deletionHasBegun assertion failures in
+ MutationObserver tests (Requested by aklein on #webkit).
+
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::~Document):
+ (WebCore::Document::suggestedMIMEType):
+ * dom/Document.h:
+ (WebCore::Node::isDocumentNode):
+ (WebCore):
+ (WebCore::Node::treeScope):
+ (WebCore::Node::Node):
+ * dom/Element.cpp:
+ (WebCore::Element::createRareData):
+ * dom/ElementRareData.h:
+ (ElementRareData):
+ (WebCore::ElementRareData::ElementRareData):
+ * dom/Node.cpp:
+ (WebCore::Node::~Node):
+ (WebCore::Node::setDocument):
+ (WebCore):
+ (WebCore::Node::setTreeScope):
+ (WebCore::Node::createRareData):
+ (WebCore::Node::attach):
+ (WebCore::Node::reportMemoryUsage):
+ * dom/Node.h:
+ (WebCore):
+ (WebCore::NodeRareDataBase::treeScope):
+ (WebCore::NodeRareDataBase::setTreeScope):
+ (NodeRareDataBase):
+ (WebCore::NodeRareDataBase::NodeRareDataBase):
+ (Node):
+ (WebCore::Node::inDocument):
+ (WebCore::Node::documentInternal):
+ * dom/NodeRareData.cpp:
+ (SameSizeAsNodeRareData):
+ (WebCore::NodeRareData::reportMemoryUsage):
+ * dom/NodeRareData.h:
+ (WebCore::NodeRareData::NodeRareData):
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::ShadowRoot):
+ * dom/TreeScope.cpp:
+ (SameSizeAsTreeScope):
+ (WebCore::TreeScope::TreeScope):
+ (WebCore::TreeScope::setParentTreeScope):
+ * dom/TreeScope.h:
+ (WebCore):
+ (TreeScope):
+ * dom/TreeScopeAdopter.cpp:
+ (WebCore::TreeScopeAdopter::moveTreeToNewScope):
+ (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
+
+2012-12-12 Seokju Kwon <seokju.kwon@gmail.com>
+
+ Fix build warning when ENABLE_INSPECTOR is disabled
+ https://bugs.webkit.org/show_bug.cgi?id=104757
+
+ Reviewed by Kentaro Hara.
+
+ Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
+
+ No new tests, no behavior change.
+
+ * inspector/InspectorCanvasInstrumentation.h:
+ (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
+ (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
+ * inspector/InspectorConsoleInstrumentation.h:
+ (WebCore::InspectorInstrumentation::addMessageToConsole):
+ (WebCore::InspectorInstrumentation::consoleCount):
+ (WebCore::InspectorInstrumentation::startConsoleTiming):
+ (WebCore::InspectorInstrumentation::stopConsoleTiming):
+ (WebCore::InspectorInstrumentation::consoleTimeStamp):
+ (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
+ (WebCore::InspectorInstrumentation::addProfile):
+ (WebCore::InspectorInstrumentation::profilerEnabled):
+ (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
+ * inspector/InspectorCounters.h:
+ (WebCore::InspectorCounters::incrementCounter):
+ (WebCore::InspectorCounters::decrementCounter):
+ * inspector/InspectorDatabaseInstrumentation.h:
+ (WebCore::InspectorInstrumentation::didOpenDatabase):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
+ (WebCore::InspectorInstrumentation::isDebuggerPaused):
+ (WebCore::InspectorInstrumentation::willInsertDOMNode):
+ (WebCore::InspectorInstrumentation::didInsertDOMNode):
+ (WebCore::InspectorInstrumentation::willRemoveDOMNode):
+ (WebCore::InspectorInstrumentation::willModifyDOMAttr):
+ (WebCore::InspectorInstrumentation::didModifyDOMAttr):
+ (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
+ (WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
+ (WebCore::InspectorInstrumentation::frameWindowDiscarded):
+ (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
+ (WebCore::InspectorInstrumentation::didPushShadowRoot):
+ (WebCore::InspectorInstrumentation::willPopShadowRoot):
+ (WebCore::InspectorInstrumentation::didCreateNamedFlow):
+ (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
+ (WebCore::InspectorInstrumentation::didUpdateRegionLayout):
+ (WebCore::InspectorInstrumentation::mouseDidMoveOverElement):
+ (WebCore::InspectorInstrumentation::handleTouchEvent):
+ (WebCore::InspectorInstrumentation::handleMousePress):
+ (WebCore::InspectorInstrumentation::forcePseudoState):
+ (WebCore::InspectorInstrumentation::characterDataModified):
+ (WebCore::InspectorInstrumentation::willSendXMLHttpRequest):
+ (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
+ (WebCore::InspectorInstrumentation::didInstallTimer):
+ (WebCore::InspectorInstrumentation::didRemoveTimer):
+ (WebCore::InspectorInstrumentation::willCallFunction):
+ (WebCore::InspectorInstrumentation::didCallFunction):
+ (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEvent):
+ (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
+ (WebCore::InspectorInstrumentation::willDispatchEvent):
+ (WebCore::InspectorInstrumentation::didDispatchEvent):
+ (WebCore::InspectorInstrumentation::willHandleEvent):
+ (WebCore::InspectorInstrumentation::didHandleEvent):
+ (WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
+ (WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
+ (WebCore::InspectorInstrumentation::willEvaluateScript):
+ (WebCore::InspectorInstrumentation::didEvaluateScript):
+ (WebCore::InspectorInstrumentation::didCreateIsolatedContext):
+ (WebCore::InspectorInstrumentation::willFireTimer):
+ (WebCore::InspectorInstrumentation::didFireTimer):
+ (WebCore::InspectorInstrumentation::didBeginFrame):
+ (WebCore::InspectorInstrumentation::didCancelFrame):
+ (WebCore::InspectorInstrumentation::didInvalidateLayout):
+ (WebCore::InspectorInstrumentation::willLayout):
+ (WebCore::InspectorInstrumentation::didLayout):
+ (WebCore::InspectorInstrumentation::didScroll):
+ (WebCore::InspectorInstrumentation::willDispatchXHRLoadEvent):
+ (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
+ (WebCore::InspectorInstrumentation::willPaint):
+ (WebCore::InspectorInstrumentation::didPaint):
+ (WebCore::InspectorInstrumentation::willScrollLayer):
+ (WebCore::InspectorInstrumentation::didScrollLayer):
+ (WebCore::InspectorInstrumentation::willComposite):
+ (WebCore::InspectorInstrumentation::didComposite):
+ (WebCore::InspectorInstrumentation::willRecalculateStyle):
+ (WebCore::InspectorInstrumentation::didRecalculateStyle):
+ (WebCore::InspectorInstrumentation::didScheduleStyleRecalculation):
+ (WebCore::InspectorInstrumentation::willMatchRule):
+ (WebCore::InspectorInstrumentation::didMatchRule):
+ (WebCore::InspectorInstrumentation::willProcessRule):
+ (WebCore::InspectorInstrumentation::didProcessRule):
+ (WebCore::InspectorInstrumentation::applyUserAgentOverride):
+ (WebCore::InspectorInstrumentation::applyScreenWidthOverride):
+ (WebCore::InspectorInstrumentation::applyScreenHeightOverride):
+ (WebCore::InspectorInstrumentation::shouldApplyScreenWidthOverride):
+ (WebCore::InspectorInstrumentation::applyEmulatedMedia):
+ (WebCore::InspectorInstrumentation::shouldApplyScreenHeightOverride):
+ (WebCore::InspectorInstrumentation::willSendRequest):
+ (WebCore::InspectorInstrumentation::continueAfterPingLoader):
+ (WebCore::InspectorInstrumentation::markResourceAsCached):
+ (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
+ (WebCore::InspectorInstrumentation::willReceiveResourceData):
+ (WebCore::InspectorInstrumentation::didReceiveResourceData):
+ (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
+ (WebCore::InspectorInstrumentation::didReceiveResourceResponse):
+ (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
+ (WebCore::InspectorInstrumentation::continueWithPolicyDownload):
+ (WebCore::InspectorInstrumentation::continueWithPolicyIgnore):
+ (WebCore::InspectorInstrumentation::didReceiveData):
+ (WebCore::InspectorInstrumentation::didFinishLoading):
+ (WebCore::InspectorInstrumentation::didFailLoading):
+ (WebCore::InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient):
+ (WebCore::InspectorInstrumentation::willLoadXHR):
+ (WebCore::InspectorInstrumentation::didFailXHRLoading):
+ (WebCore::InspectorInstrumentation::didFinishXHRLoading):
+ (WebCore::InspectorInstrumentation::didReceiveXHRResponse):
+ (WebCore::InspectorInstrumentation::willLoadXHRSynchronously):
+ (WebCore::InspectorInstrumentation::didLoadXHRSynchronously):
+ (WebCore::InspectorInstrumentation::scriptImported):
+ (WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSP):
+ (WebCore::InspectorInstrumentation::didReceiveScriptResponse):
+ (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
+ (WebCore::InspectorInstrumentation::loadEventFired):
+ (WebCore::InspectorInstrumentation::frameDetachedFromParent):
+ (WebCore::InspectorInstrumentation::didCommitLoad):
+ (WebCore::InspectorInstrumentation::loaderDetachedFromFrame):
+ (WebCore::InspectorInstrumentation::willDestroyCachedResource):
+ (WebCore::InspectorInstrumentation::willWriteHTML):
+ (WebCore::InspectorInstrumentation::didWriteHTML):
+ (WebCore::InspectorInstrumentation::didUseDOMStorage):
+ (WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
+ (WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart):
+ (WebCore::InspectorInstrumentation::didStartWorkerContext):
+ (WebCore::InspectorInstrumentation::workerContextTerminated):
+ (WebCore::InspectorInstrumentation::didCreateWebSocket):
+ (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
+ (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
+ (WebCore::InspectorInstrumentation::didCloseWebSocket):
+ (WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
+ (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
+ (WebCore::InspectorInstrumentation::didSendWebSocketFrame):
+ (WebCore::InspectorInstrumentation::networkStateChanged):
+ (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
+ (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
+ (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
+ (WebCore::InspectorInstrumentation::willFireAnimationFrame):
+ (WebCore::InspectorInstrumentation::didFireAnimationFrame):
+ (WebCore::InspectorInstrumentation::overrideGeolocationPosition):
+ (WebCore::InspectorInstrumentation::overrideDeviceOrientation):
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ (WebCore::ApplicationCacheGroup::didFinishLoading):
+ (WebCore::ApplicationCacheGroup::didFail):
+
+2012-12-12 Dean Jackson <dino@apple.com>
+
+ Reinstate CIFilter code for Lion
+ https://bugs.webkit.org/show_bug.cgi?id=104847
+
+ Reviewed by Simon Fraser.
+
+ This basically reverts r137500 for Lion, because some
+ CAFilter types are not available there.
+
+ Covered by existing tests, with the warning that Lion
+ baselines will need updating.
+
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (PlatformCALayer::setFilters): Put an ugly #if in to
+ detect OS X 10.7, and rename caFilter variable to
+ filter.
+
+2012-12-12 Seokju Kwon <seokju.kwon@gmail.com>
+
+ [EFL] Refactor duplicate code into EflInspectorUtilities
+ https://bugs.webkit.org/show_bug.cgi?id=104329
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Move duplicate work into EflInspectorUtilities.
+
+ No new tests, refactoring.
+
+ * PlatformEfl.cmake:
+ * platform/efl/EflInspectorUtilities.cpp: Added.
+ (WebCore):
+ (WebCore::inspectorResourcePath):
+ * platform/efl/EflInspectorUtilities.h: Added.
+ (WebCore):
+
+2012-12-12 Mark Lam <mark.lam@apple.com>
+
+ Fixing a chromium build breakage due to r137520.
+ https://bugs.webkit.org/show_bug.cgi?id=104741.
+
+ Not reviewed.
+
+ Added #ifdef !PLATFORM(CHROMIUM) for one function chromium doesn't use.
+
+ No new tests.
+
+ * Modules/webdatabase/DatabaseManager.cpp:
+ (WebCore::DatabaseManager::initialize):
+ * Modules/webdatabase/DatabaseTracker.h:
+ (DatabaseTracker):
+
+2012-12-11 Emil A Eklund <eae@chromium.org>
+
+ REGRESSION (Subpixel layout): Gray vertical lines appear when moving insertion point to right on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=102402
+
+ Reviewed by Simon Fraser.
+
+ Round paintOffset in CaretBase::paintCaret to ensure that caret is painted at an integer pixel boundary.
+
+ Test: fast/sub-pixel/input-caret-on-subpixel-bound.html
+
+ * editing/FrameSelection.cpp:
+ (WebCore::CaretBase::paintCaret): Round paintOffset to ensure it is on a pixel boundary.
+
+2012-12-12 Elliott Sprehn <esprehn@gmail.com>
+
+ REGRESSION(137336): Generated run-ins are not placed correctly
+ https://bugs.webkit.org/show_bug.cgi?id=104840
+
+ Reviewed by Abhishek Arya.
+
+ Now that :before and :after are not anonymous we no longer need special
+ handling for run-ins. Currently placeRunInIfNeeded will only place
+ a generated content run-in if a special flag is passed, but I removed
+ the call with the flag as it wasn't needed in r137336. This patch just
+ removes all special handling for generated content run-ins.
+
+ Test: fast/css-generated-content/generated-runin.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
+ (WebCore::RenderBlock::placeRunInIfNeeded):
+ (WebCore::RenderBlock::createReplacementRunIn):
+ Lots of simplfication since there's no more anonymous run-ins.
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderObject.h:
+
+2012-12-12 Simon Fraser <simon.fraser@apple.com>
+
+ Don't unconditionally repaint compositing layers when their size changes
+ https://bugs.webkit.org/show_bug.cgi?id=104461
+
+ Reviewed by James Robinson.
+
+ In r137215 I attempted to avoid excessive repainting when compositing layers
+ change size. This caused stretched layers when layer size changed as a result
+ of bounds constraining in updateCompositedBounds(), so was conditionalized
+ based on whether constraining happend, in r137248.
+
+ However, the TileCache layer was affected by constraining, erroneously:
+ shouldClipCompositedBounds() returned true of the tile cache layer. This
+ is pointless, because we only constrain to the document bounds (or enclosing
+ overflow), and the tile cache is already the size of the document bounds.
+
+ So, disable size constraining for the tile cache layer, and fix
+ a confusing comment in updateCompositedBounds() that refers to the
+ view's bounds, rather than the document's bounds.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
+ (WebCore::RenderLayerBacking::updateCompositedBounds):
+
+2012-12-12 Elliott Sprehn <esprehn@gmail.com>
+
+ [Refactoring] Replace Node's Document pointer with a TreeScope pointer
+ https://bugs.webkit.org/show_bug.cgi?id=59816
+
+ Reviewed by Ryosuke Niwa.
+
+ Instead of giving every node in a shadow a rare data, which can be quite
+ large, we replace the Document pointer in Node with a TreeScope pointer
+ and we give TreeScope a pointer to it's document scope.
+
+ This introduces no branches in document() because in the common
+ case document() becomes equivalent to m_treeScope->m_documentScope where
+ the documentScope is actually m_treeScope so this shouldn't introduce a
+ perf regression.
+
+ Note also that TreeScope can never be null after r136328, and the document
+ pointer is only null for DocumentType nodes so we can use a special
+ no-document TreeScope for this case that always returns null from
+ documentScope().
+
+ No new tests, no change in behavior.
+
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::~Document):
+ (WebCore::Document::suggestedMIMEType):
+ * dom/Document.h:
+ (WebCore::Node::isDocumentNode):
+ (WebCore::Node::Node):
+ * dom/Element.cpp:
+ (WebCore::Element::createRareData):
+ * dom/ElementRareData.h:
+ (ElementRareData):
+ (WebCore::ElementRareData::ElementRareData):
+ * dom/Node.cpp:
+ (WebCore::Node::~Node):
+ (WebCore::Node::createRareData):
+ (WebCore::Node::attach):
+ (WebCore::Node::reportMemoryUsage):
+ * dom/Node.h:
+ (WebCore):
+ (WebCore::NodeRareDataBase::NodeRareDataBase):
+ (NodeRareDataBase):
+ (WebCore::Node::treeScope):
+ (WebCore::Node::inDocument):
+ (WebCore::Node::documentInternal):
+ (WebCore::Node::setTreeScope):
+ (Node):
+ * dom/NodeRareData.cpp:
+ (WebCore::NodeRareData::reportMemoryUsage):
+ * dom/NodeRareData.h:
+ (WebCore::NodeRareData::NodeRareData):
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::ShadowRoot):
+ * dom/TreeScope.cpp:
+ (SameSizeAsTreeScope):
+ (WebCore::TreeScope::TreeScope):
+ (WebCore::TreeScope::setParentTreeScope):
+ * dom/TreeScope.h:
+ (WebCore):
+ (TreeScope):
+ (WebCore::TreeScope::documentScope):
+ (WebCore::TreeScope::noDocumentInstance):
+ Returns a special tree scope that has no document for use with
+ DocumentType nodes.
+ (WebCore::TreeScope::setDocumentScope):
+ * dom/TreeScopeAdopter.cpp:
+ (WebCore::TreeScopeAdopter::moveTreeToNewScope):
+ (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
+ (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
+
+2012-12-12 Mark Lam <mark.lam@apple.com>
+
+ Encapsulate externally used webdatabase APIs in DatabaseManager.
+ https://bugs.webkit.org/show_bug.cgi?id=104741.
+
+ Reviewed by Sam Weinig.
+
+ Use DatabaseManager instead of accessing DatabaseTracker, AbstractDatabase,
+ and DatabaseContext directly. This is to prepare for upcoming webkit2
+ refactoring.
+
+ No new tests.
+
+ * CMakeLists.txt:
+ * Modules/webdatabase/DatabaseManager.cpp: Added.
+ (WebCore::DatabaseManager::manager):
+ (WebCore::DatabaseManager::DatabaseManager):
+ (WebCore::DatabaseManager::initialize):
+ (WebCore::DatabaseManager::setClient):
+ (WebCore::DatabaseManager::isAvailable):
+ (WebCore::DatabaseManager::setIsAvailable):
+ (WebCore::DatabaseManager::hasOpenDatabases):
+ (WebCore::DatabaseManager::stopDatabases):
+ (WebCore::DatabaseManager::fullPathForDatabase):
+ (WebCore::DatabaseManager::databaseDirectoryPath):
+ (WebCore::DatabaseManager::setDatabaseDirectoryPath):
+ (WebCore::DatabaseManager::hasEntryForOrigin):
+ (WebCore::DatabaseManager::origins):
+ (WebCore::DatabaseManager::databaseNamesForOrigin):
+ (WebCore::DatabaseManager::detailsForNameAndOrigin):
+ (WebCore::DatabaseManager::usageForOrigin):
+ (WebCore::DatabaseManager::quotaForOrigin):
+ (WebCore::DatabaseManager::setQuota):
+ (WebCore::DatabaseManager::deleteAllDatabases):
+ (WebCore::DatabaseManager::deleteOrigin):
+ (WebCore::DatabaseManager::deleteDatabase):
+ (WebCore::DatabaseManager::closeDatabasesImmediately):
+ (WebCore::DatabaseManager::interruptAllDatabasesForContext):
+ * Modules/webdatabase/DatabaseManager.h: Added.
+ (DatabaseManager):
+ (WebCore::DatabaseManager::~DatabaseManager):
+ * Modules/webdatabase/DatabaseManagerClient.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseTrackerClient.h.
+ (WebCore::DatabaseManagerClient::~DatabaseManagerClient):
+ * Modules/webdatabase/DatabaseTracker.cpp:
+ (WebCore::DatabaseTracker::setClient):
+ * Modules/webdatabase/DatabaseTracker.h:
+ (DatabaseTracker):
+ * Modules/webdatabase/DatabaseTrackerClient.h: Removed.
+ * Target.pri:
+ * WebCore.exp.in:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.order:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ (WebCore::RuntimeEnabledFeatures::openDatabaseEnabled):
+ (WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled):
+ * history/PageCache.cpp:
+ (WebCore::logCanCacheFrameDecision):
+ (WebCore::PageCache::canCachePageContainingThisFrame):
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::stopLoading):
+ * page/DOMWindow.cpp:
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThreadShutdownStartTask::performTask):
+ (WebCore::WorkerThread::stop):
+
+2012-12-12 Tony Chang <tony@chromium.org>
+
+ [chromium] don't write additional idl files to a gyp temp file
+ https://bugs.webkit.org/show_bug.cgi?id=104831
+
+ Reviewed by Kentaro Hara.
+
+ The <|( command doesn't work for files like <(PRODUCT_DIR) or <(SHARED_INTERMEDIATE_DIR).
+ For additional_idl_files, pass it as a parameter instead of a file listing the filenames.
+ There are currently only 3 files in this variable. This shouldn't overflow the command
+ line since the limit on Windows is 8k and with this change, we're still only around 4.5k.
+ Also, the longest part of the command line is the list of defines. If needed, we could put
+ that in a file instead.
+
+ No new tests, this is a refactoring of the build files.
+
+ * WebCore.gyp/WebCore.gyp: Don't use <|( for additional_idl_files.
+ * bindings/scripts/generate-bindings.pl: Change --additionalIdlFilesList to
+ --additionalIdlFiles, which is a shell argument containing the filenames.
+
+2012-12-12 Chris Rogers <crogers@google.com>
+
+ Implement OfflineAudioContext constructor
+ https://bugs.webkit.org/show_bug.cgi?id=104188
+
+ Reviewed by Kentaro Hara.
+
+ The Web Audio layout tests have relied on an undocumented way (in the specification) to render
+ audio faster than realtime using an OfflineAudioContext. We want to expose a proper OfflineAudioContext
+ object and constructor instead of piggybacking off of the normal AudioContext.
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Modules/webaudio/AudioContext.cpp:
+ (WebCore::AudioContext::isSampleRateRangeGood):
+ * Modules/webaudio/AudioContext.h:
+ (AudioContext):
+ * Modules/webaudio/DOMWindowWebAudio.idl:
+ * Modules/webaudio/OfflineAudioContext.cpp: Added.
+ (WebCore):
+ (WebCore::OfflineAudioContext::create):
+ (WebCore::OfflineAudioContext::OfflineAudioContext):
+ (WebCore::OfflineAudioContext::~OfflineAudioContext):
+ * Modules/webaudio/OfflineAudioContext.h: Added.
+ (WebCore):
+ (OfflineAudioContext):
+ * Modules/webaudio/OfflineAudioContext.idl: Added.
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/generic/RuntimeEnabledFeatures.h:
+ (WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
+ * bindings/js/JSAudioContextCustom.cpp:
+ (WebCore::JSAudioContextConstructor::constructJSAudioContext):
+ * bindings/v8/custom/V8AudioContextCustom.cpp:
+ (WebCore::V8AudioContext::constructorCallbackCustom):
+
+2012-12-12 John Griggs <jgriggs@rim.com>
+
+ 2012-12-12 John Griggs <jgriggs@rim.com>
+
+ [BlackBerry] Update Media Controls for BlackBerry Platform
+ https://bugs.webkit.org/show_bug.cgi?id=104443
+ https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=204748
+
+ Reviewed by Rob Buis.
+
+ Update Media Controls for BlackBerry platform to allow audio, embedded video and fullscreen video controls to be positioned and styled differently.
+
+ BlackBerry-specific update to Media Controls - No new tests required.
+
+ * PlatformBlackBerry.cmake:
+ * css/mediaControlsBlackBerry.css:
+ (audio):
+ (audio::-webkit-media-controls-embedded-panel, video::-webkit-media-controls-embedded-panel):
+ (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
+ (video::-webkit-media-controls-button-group-container, audio::-webkit-media-controls-button-group-container):
+ (video::-webkit-media-controls-fullscreen-time-display-container, audio::-webkit-media-controls-fullscreen-time-display-container):
+ (video::-webkit-media-controls-time-display-container, audio::-webkit-media-controls-time-display-container):
+ (video::-webkit-media-controls-fullscreen-play-button, audio::-webkit-media-controls-fullscreen-play-button):
+ (video::-webkit-media-controls-play-button, audio::-webkit-media-controls-play-button):
+ (audio::-webkit-media-controls-fullscreen-timeline-container, video::-webkit-media-controls-fullscreen-timeline-container):
+ (video::-webkit-media-controls-timeline-container, audio::-webkit-media-controls-timeline-container):
+ (audio::-webkit-media-controls-fullscreen-current-time-display, video::-webkit-media-controls-fullscreen-current-time-display):
+ (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
+ (video::-webkit-media-controls-fullscreen-time-remaining-display, audio::-webkit-media-controls-fullscreen-time-remaining-display):
+ (video::-webkit-media-controls-time-remaining-display, audio::-webkit-media-controls-time-remaining-display):
+ (audio::-webkit-media-controls-fullscreen-timeline, video::-webkit-media-controls-fullscreen-timeline):
+ (video::-webkit-media-controls-fullscreen-fullscreen-button, audio::-webkit-media-controls-fullscreen-fullscreen-button):
+ (video::-webkit-media-controls-fullscreen-button):
+ (audio::-webkit-media-controls-fullscreen-button):
+ (audio::-webkit-media-controls-audio-mute-button):
+ (video::-webkit-media-controls-audio-mute-button):
+ (audio::-webkit-media-controls-volume-slider-container):
+ (video::-webkit-media-controls-volume-slider-container):
+ (audio::-webkit-media-controls-volume-slider):
+ (video::-webkit-media-controls-volume-slider):
+ (video::-webkit-media-controls-fullscreen-button-divider, audio::-webkit-media-controls-fullscreen-button-divider):
+ (video::-webkit-media-controls-fullscreen-button-container, video::-webkit-media-controls-play-button-container, audio::-webkit-media-controls-fullscreen-button-container, audio::-webkit-media-controls-play-button-container):
+ * css/mediaControlsBlackBerryFullscreen.css: Added.
+ (body:-webkit-full-page-media):
+ (video:-webkit-full-screen::-webkit-media-controls-embedded-panel):
+ (video:-webkit-full-screen::-webkit-media-controls-panel):
+ (video:-webkit-full-screen::-webkit-media-controls-button-group-container):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
+ (video:-webkit-full-screen::-webkit-media-controls-time-display-container):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-play-button):
+ (video:-webkit-full-screen::-webkit-media-controls-play-button):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
+ (video:-webkit-full-screen::-webkit-media-controls-timeline-container):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
+ (video:-webkit-full-screen::-webkit-media-controls-current-time-display):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
+ (video:-webkit-full-screen::-webkit-media-controls-time-remaining-display):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline):
+ (video:-webkit-full-screen::-webkit-media-controls-timeline):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-fullscreen-button):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button):
+ (video:-webkit-full-screen::-webkit-media-controls-audio-mute-button):
+ (video:-webkit-full-screen::-webkit-media-controls-volume-slider-container):
+ (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-divider):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
+ (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container):
+ (video:-webkit-full-screen::-webkit-media-controls-play-button-container):
+ (video:-webkit-full-screen::-webkit-media-controls-placeholder):
+ * html/shadow/MediaControlsBlackBerry.cpp: Added.
+ (WebCore):
+ (WebCore::MediaControlButtonGroupContainerElement::MediaControlButtonGroupContainerElement):
+ (WebCore::MediaControlButtonGroupContainerElement::create):
+ (WebCore::MediaControlButtonGroupContainerElement::shadowPseudoId):
+ (WebCore::MediaControlTimeDisplayContainerElement::MediaControlTimeDisplayContainerElement):
+ (WebCore::MediaControlTimeDisplayContainerElement::create):
+ (WebCore::MediaControlTimeDisplayContainerElement::shadowPseudoId):
+ (WebCore::MediaControlEmbeddedPanelElement::MediaControlEmbeddedPanelElement):
+ (WebCore::MediaControlEmbeddedPanelElement::create):
+ (WebCore::MediaControlEmbeddedPanelElement::shadowPseudoId):
+ (WebCore::MediaControlEmbeddedPanelElement::startDrag):
+ (WebCore::MediaControlEmbeddedPanelElement::continueDrag):
+ (WebCore::MediaControlEmbeddedPanelElement::endDrag):
+ (WebCore::MediaControlEmbeddedPanelElement::startTimer):
+ (WebCore::MediaControlEmbeddedPanelElement::stopTimer):
+ (WebCore::MediaControlEmbeddedPanelElement::transitionTimerFired):
+ (WebCore::MediaControlEmbeddedPanelElement::setPosition):
+ (WebCore::MediaControlEmbeddedPanelElement::resetPosition):
+ (WebCore::MediaControlEmbeddedPanelElement::makeOpaque):
+ (WebCore::MediaControlEmbeddedPanelElement::makeTransparent):
+ (WebCore::MediaControlEmbeddedPanelElement::defaultEventHandler):
+ (WebCore::MediaControlEmbeddedPanelElement::setCanBeDragged):
+ (WebCore::MediaControlEmbeddedPanelElement::setIsDisplayed):
+ (WebCore::MediaControlFullscreenTimeDisplayContainerElement::MediaControlFullscreenTimeDisplayContainerElement):
+ (WebCore::MediaControlFullscreenTimeDisplayContainerElement::create):
+ (WebCore::MediaControlFullscreenTimeDisplayContainerElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenButtonContainerElement::MediaControlFullscreenButtonContainerElement):
+ (WebCore::MediaControlFullscreenButtonContainerElement::create):
+ (WebCore::MediaControlFullscreenButtonContainerElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenButtonDividerElement::MediaControlFullscreenButtonDividerElement):
+ (WebCore::MediaControlFullscreenButtonDividerElement::create):
+ (WebCore::MediaControlFullscreenButtonDividerElement::shadowPseudoId):
+ (WebCore::MediaControlPlayButtonContainerElement::MediaControlPlayButtonContainerElement):
+ (WebCore::MediaControlPlayButtonContainerElement::create):
+ (WebCore::MediaControlPlayButtonContainerElement::shadowPseudoId):
+ (WebCore::MediaControlPlaceholderElement::MediaControlPlaceholderElement):
+ (WebCore::MediaControlPlaceholderElement::create):
+ (WebCore::MediaControlPlaceholderElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenPlayButtonElement::MediaControlFullscreenPlayButtonElement):
+ (WebCore::MediaControlFullscreenPlayButtonElement::create):
+ (WebCore::MediaControlFullscreenPlayButtonElement::defaultEventHandler):
+ (WebCore::MediaControlFullscreenPlayButtonElement::updateDisplayType):
+ (WebCore::MediaControlFullscreenPlayButtonElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenFullscreenButtonElement::MediaControlFullscreenFullscreenButtonElement):
+ (WebCore::MediaControlFullscreenFullscreenButtonElement::create):
+ (WebCore::MediaControlFullscreenFullscreenButtonElement::defaultEventHandler):
+ (WebCore::MediaControlFullscreenFullscreenButtonElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenFullscreenButtonElement::setIsFullscreen):
+ (WebCore::MediaControlFullscreenTimelineContainerElement::MediaControlFullscreenTimelineContainerElement):
+ (WebCore::MediaControlFullscreenTimelineContainerElement::create):
+ (WebCore::MediaControlFullscreenTimelineContainerElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenTimelineElement::MediaControlFullscreenTimelineElement):
+ (WebCore::MediaControlFullscreenTimelineElement::create):
+ (WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
+ (WebCore::MediaControlFullscreenTimelineElement::willRespondToMouseClickEvents):
+ (WebCore::MediaControlFullscreenTimelineElement::setPosition):
+ (WebCore::MediaControlFullscreenTimelineElement::setDuration):
+ (WebCore::MediaControlFullscreenTimelineElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::create):
+ (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::MediaControlFullscreenTimeRemainingDisplayElement):
+ (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::shadowPseudoId):
+ (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::create):
+ (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::MediaControlFullscreenCurrentTimeDisplayElement):
+ (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::shadowPseudoId):
+ (WebCore::MediaControlAudioMuteButtonElement::MediaControlAudioMuteButtonElement):
+ (WebCore::MediaControlAudioMuteButtonElement::create):
+ (WebCore::MediaControlAudioMuteButtonElement::defaultEventHandler):
+ (WebCore::MediaControlAudioMuteButtonElement::shadowPseudoId):
+ (WebCore::MediaControlsBlackBerry::MediaControlsBlackBerry):
+ (WebCore::MediaControls::create):
+ (WebCore::MediaControlsBlackBerry::createControls):
+ (WebCore::MediaControlsBlackBerry::setMediaController):
+ (WebCore::MediaControlsBlackBerry::show):
+ (WebCore::MediaControlsBlackBerry::hide):
+ (WebCore::MediaControlsBlackBerry::makeOpaque):
+ (WebCore::MediaControlsBlackBerry::makeTransparent):
+ (WebCore::MediaControlsBlackBerry::reset):
+ (WebCore::MediaControlsBlackBerry::bufferingProgressed):
+ (WebCore::MediaControlsBlackBerry::playbackStarted):
+ (WebCore::MediaControlsBlackBerry::playbackProgressed):
+ (WebCore::MediaControlsBlackBerry::playbackStopped):
+ (WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
+ (WebCore::MediaControlsBlackBerry::reportedError):
+ (WebCore::MediaControlsBlackBerry::changedMute):
+ (WebCore::MediaControlsBlackBerry::enteredFullscreen):
+ (WebCore::MediaControlsBlackBerry::exitedFullscreen):
+ (WebCore::MediaControlsBlackBerry::showVolumeSlider):
+ (WebCore::MediaControlsBlackBerry::toggleVolumeSlider):
+ (WebCore::MediaControlsBlackBerry::shouldHideControls):
+ * html/shadow/MediaControlsBlackBerry.h: Added.
+ (WebCore):
+ (MediaControlButtonGroupContainerElement):
+ (MediaControlTimeDisplayContainerElement):
+ (MediaControlEmbeddedPanelElement):
+ (MediaControlFullscreenTimeDisplayContainerElement):
+ (MediaControlFullscreenButtonContainerElement):
+ (MediaControlFullscreenButtonDividerElement):
+ (MediaControlPlayButtonContainerElement):
+ (MediaControlPlaceholderElement):
+ (MediaControlFullscreenPlayButtonElement):
+ (MediaControlFullscreenFullscreenButtonElement):
+ (MediaControlFullscreenTimelineContainerElement):
+ (MediaControlFullscreenTimelineElement):
+ (MediaControlFullscreenTimeRemainingDisplayElement):
+ (MediaControlFullscreenCurrentTimeDisplayElement):
+ (MediaControlAudioMuteButtonElement):
+ (MediaControlsBlackBerry):
+ * platform/blackberry/RenderThemeBlackBerry.cpp:
+ (WebCore):
+ (WebCore::RenderThemeBlackBerry::extraFullScreenStyleSheet):
+ (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
+ (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
+ (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
+ (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
+ (WebCore::RenderThemeBlackBerry::paintMediaRewindButton):
+ (WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
+ (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
+ (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
+ (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
+ (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
+ (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
+ * platform/blackberry/RenderThemeBlackBerry.h:
+ (WebCore::RenderThemeBlackBerry::usesVerticalVolumeSlider):
+ (RenderThemeBlackBerry):
+
+2012-12-12 Dominic Mazzoni <dmazzoni@google.com>
+
+ AX: textUnderElement should consider alt text, but skip links and controls
+ https://bugs.webkit.org/show_bug.cgi?id=101650
+
+ Reviewed by Chris Fleizach.
+
+ Getting inner text from an element now ignores focusable descendants and
+ containers, but uses alternative text.
+
+ The computation of textUnderElement is now recursive. This caused a crash
+ if it was called by accessibilityIsIgnored during object destruction,
+ so I simplified accessibilityIsIgnored to not actually call textUnderElement,
+ without affecting test results, which should actually be a decent speedup.
+
+ Test: accessibility/button-title-uses-inner-img-alt.html
+ Test: accessibility/focusable-div.html
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore):
+ (WebCore::shouldUseAccessiblityObjectInnerText):
+ (WebCore::AccessibilityNodeObject::textUnderElement):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::textUnderElement):
+
+2012-12-12 Eberhard Graether <egraether@google.com>
+
+ Web Inspector: follow up to r136974: handle visibility shortcut in keydown event of ElementsTreeOutline.element
+ https://bugs.webkit.org/show_bug.cgi?id=104694
+
+ Reviewed by Pavel Feldman.
+
+ Typing H in the StylesSidebarPane caused toggling of the selected elements visibility. This change only handles
+ the H keydown when the ElementsPanel is focused.
+
+ No new tests.
+
+ * inspector/front-end/ElementsTreeOutline.js:
+ (WebInspector.ElementsTreeOutline):
+ (WebInspector.ElementsTreeOutline.prototype._onkeydown):
+ (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
+ * inspector/front-end/KeyboardShortcut.js:
+ (WebInspector.KeyboardShortcut.hasNoModifiers):
+
+2012-12-12 Philip Rogers <pdr@google.com>
+
+ Fix target element handling in SVGSMILElement.
+ https://bugs.webkit.org/show_bug.cgi?id=104495
+
+ Reviewed by Abhishek Arya.
+
+ This patch fixes two bugs that led to stale target elements in SVGSMILElement.
+
+ r122449 changed the <use> code to call removeAllElementReferencesForTarget to rebuild
+ dependent <use> trees. This contained a bug where element references would be incorrectly
+ removed. removeAllElementReferencesForTarget calls svgAttributeChanged(href) on all
+ references, which can then re-add the references back. The bug is that
+ removeAllElementReferencesForTarget removes a newly-added reference as the last step.
+
+ r136906 changed targetElement() to no longer be lazily resolved so any changes to an
+ animation's href attribute needed to be tracked. r136906 refactored the code but did not
+ fix a bug where animation elements not in the document would not react to
+ svgAttributeChanged(href).
+
+ The combination of these two bugs allowed stale targetElement references to exist. A
+ target element could be removed from the document without dependent animation elements
+ receiving a notification (bug 1) and not reacting to notifications they received (bug 2).
+
+ This patch updates SVGUseElement::buildInstanceTree to only rebuild (not remove) the
+ elements referencing the target by adding rebuildAllElementReferencesForTarget. This patch
+ also updates SVGSMILElement to correctly react to svgAttributeChanged() notifications
+ for href changes even when not in the document.
+
+ Test: svg/animations/target-condition-crash.html
+
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget):
+ (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
+
+ Refactored so that we can notify element references to update without removing
+ references.
+
+ * svg/SVGDocumentExtensions.h:
+ (SVGDocumentExtensions):
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::~SVGElement):
+ (WebCore::SVGElement::removedFrom):
+
+ Similar to SVGUseElement::buildShadowAndInstanceTree, this callsite was updated to
+ only rebuild references instead of removing them.
+
+ (WebCore::SVGElement::attributeChanged):
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::buildShadowAndInstanceTree):
+
+ The comment indicates we just want to rebuild (not remove). This callsite has been
+ updated to use the new rebuildAllElementReferencesForTarget function.
+
+ (WebCore::SVGUseElement::buildInstanceTree):
+ * svg/animation/SVGSMILElement.cpp:
+ (WebCore::SVGSMILElement::buildPendingResource):
+ (WebCore::SVGSMILElement::removedFrom):
+
+ Previously, if an SVGSMILElement was not in the document, only clearResourceReferences
+ would be called when the target changed. This has been refactored to reset the
+ targetElement if the element needs to build resources but is not in the document.
+
+ I looked at moving this into clearResourceReferences (since the target element might
+ be considered a reference) but we run into issues calling pure virtual functions in
+ the destructor. The current implementation seemed the cleanest.
+
+ SVGSMILElement::removedFrom was cleaned up to match the rest of the code. The comment
+ in removedFrom appears to be stale since disconnectConditions does not kill the element.
+
+ (WebCore::SVGSMILElement::svgAttributeChanged):
+
+ Removed the bad !inDocument() checks that broke href change notifications.
+
+ (WebCore::SVGSMILElement::setTargetElement):
+
+2012-12-12 Alpha Lam <hclam@chromium.org>
+
+ [chromium] Minimize memcpy for encoded image data in ImageFrameGenerator
+ https://bugs.webkit.org/show_bug.cgi?id=103797
+
+ Reviewed by Stephen White.
+
+ Added a new class ThreadSafeDataTransport to help transporting data in
+ SharedBuffer from one thread to another. This class is designed to minimize
+ thread contention and memory copy.
+
+ It is implemented using a data queue. New data segments are copied into
+ this queue. The queue is then consolidated with existing data when user
+ requests access to the final SharedBuffer.
+
+ Memory is copied into and out of the queue but this approach avoid
+ copying the entire SharedBuffer.
+
+ ImageFrameGenerator is now using this class for data transport between
+ threads.
+
+ Unit tests in ThreadSafeDataTransportTest. Also existing ImageFrameGeneratorTest passes.
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/ImageFrameGenerator.cpp:
+ (WebCore::ImageFrameGenerator::ImageFrameGenerator):
+ (WebCore::ImageFrameGenerator::setData):
+ (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
+ Added logic to skip decoding if there's no new data.
+ (WebCore::ImageFrameGenerator::decode):
+ * platform/graphics/chromium/ImageFrameGenerator.h:
+ (ImageFrameGenerator):
+ * platform/graphics/chromium/ThreadSafeDataTransport.cpp: Added.
+ (WebCore):
+ (WebCore::ThreadSafeDataTransport::ThreadSafeDataTransport):
+ (WebCore::ThreadSafeDataTransport::~ThreadSafeDataTransport):
+ (WebCore::ThreadSafeDataTransport::setData):
+ (WebCore::ThreadSafeDataTransport::data):
+ (WebCore::ThreadSafeDataTransport::hasNewData):
+ * platform/graphics/chromium/ThreadSafeDataTransport.h: Added.
+ (WebCore):
+ (ThreadSafeDataTransport):
+
+2012-12-12 Roger Fong <roger_fong@apple.com>
+
+ Enable VIDEO_TRACK on Windows.
+ https://bugs.webkit.org/show_bug.cgi?id=104706.
+
+ Reviewed by Timothy Horton.
+
+ Enable VIDEO_TRACK on Windows and update project property files.
+
+ * DerivedSources.cpp:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.vcproj/WebCoreCommon.vsprops:
+ * WebCore.vcproj/copyForwardingHeaders.cmd:
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ (WebCore):
+ * html/HTMLElementsAllInOne.cpp:
+ * rendering/RenderingAllInOne.cpp:
+
+2012-12-12 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ REGRESSION: r137481 caused a build failure with GTK
+ https://bugs.webkit.org/show_bug.cgi?id=104826
+
+ Unreviewed build fix.
+
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
+ Brought back #if PLATFORM(QT) to surround the dynamic_cast call.
+
+2012-12-12 Dean Jackson <dino@apple.com>
+
+ Use CAFilter rather than CIFilter
+ https://bugs.webkit.org/show_bug.cgi?id=104759
+
+ Reviewed by Tim Horton.
+
+ In order to get better performance in the simple CSS filter
+ cases, use CAFilter rather than CIFilter. This involved
+ defining some platform-specific values inside
+ PlatformCALayerMac to expose CAFilter.
+
+ The great side-effect is that this brings our hardware
+ output much closer to our software filters. For example,
+ on a random location in the hue-rotate test.
+
+ Software: rgb(255, 148, 16)
+ Hardware before: rgb(255, 204, 50)
+ Hardware after: rgb(255, 165, 33)
+
+ Still some improvement needed, but better.
+
+ Covered by existing tests.
+
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (CAColorMatrix): New structure to hold 5x4 matrix representing a color operation.
+ (PlatformCALayer::setFilters): Use CAFilter objects rather than CIFilter.
+
+2012-12-12 No'am Rosenthal <noam@webkit.org>
+
+ [Texmap] Consolidate redundant code for ARB_RECT texture
+ https://bugs.webkit.org/show_bug.cgi?id=104705
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Instead of having a whole different function for RECT textures,
+ keep the existing functions and pass a flag that tells
+ TextureMapperGL to use the non-normalized coordinates and the
+ RECT shaders.
+
+ No new tests, refactor only. Tested to not break WebGL on
+ Qt-Mac.
+
+ * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
+ * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
+ (WebCore::GraphicsSurface::platformPaintToTextureMapper):
+ * platform/graphics/texmap/TextureMapperGL.cpp:
+ (WebCore::TextureMapperGL::drawQuad):
+ Compensate for rect textures in drawQuad.
+
+ (WebCore::TextureMapperGL::drawBorder):
+ (WebCore::TextureMapperGL::drawTexture):
+ (WebCore::TextureMapperGL::drawSolidColor):
+ (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
+ (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
+ Pass flags to TextureMapperGL::drawQuad instead of a bool.
+
+ * platform/graphics/texmap/TextureMapperGL.h:
+ (TextureMapperGL):
+ * platform/graphics/texmap/TextureMapperShaderManager.cpp:
+ (WebCore::getShaderSpec):
+ * platform/graphics/texmap/TextureMapperShaderManager.h:
+ (TextureMapperShaderProgram):
+ Compensate for the texture-size in the vertex
+ shader instead of in the fragment shader.
+
+2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137491.
+ http://trac.webkit.org/changeset/137491
+ https://bugs.webkit.org/show_bug.cgi?id=104828
+
+ broke the builtd (Requested by rfong on #webkit).
+
+ * DerivedSources.cpp:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.vcproj/WebCoreCommon.vsprops:
+ * WebCore.vcproj/copyForwardingHeaders.cmd:
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ (WebCore):
+ * html/HTMLElementsAllInOne.cpp:
+ * platform/NotImplemented.cpp:
+ (WebCore):
+ (WebCore::notImplementedLoggingChannel):
+ * rendering/RenderingAllInOne.cpp:
+
+2012-12-12 John J. Barton <johnjbarton@chromium.org>
+
+ Web Inspector: remove protocol-externs.js temp file after compile-front-end.py
+ https://bugs.webkit.org/show_bug.cgi?id=98799
+
+ Reviewed by Vsevolod Vlasov.
+
+ Add os.system rm for protocol-externs.js to the end of the compile script
+
+ * inspector/compile-front-end.py:
+
+2012-12-12 Robert Hogan <robert@webkit.org>
+
+ White space between inline blocks should be affected by word-spacing property
+ https://bugs.webkit.org/show_bug.cgi?id=69072
+
+ Reviewed by Levi Weintraub.
+
+ Allow word-spacing to get added to the spaces between inline blocks in placeBoxesInInlineDirection by setting
+ needsWordSpacing to true each time an inline block is encountered. This ensures that the next space encountered
+ in a text run will be treated as a space between two words and will get word-spacing added to it if it is present
+ in the style.
+
+ Tests: fast/css/word-spacing-between-blocks.html
+ fast/css/word-spacing-between-inlines.html
+
+ * rendering/InlineFlowBox.cpp:
+ (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
+
+2012-12-12 Xianzhu Wang <wangxianzhu@chromium.org>
+
+ Pre-painting should not paint out-of-view fixed position elements
+ https://bugs.webkit.org/show_bug.cgi?id=104724
+
+ Reviewed by James Robinson.
+
+ Test: ManualTests/compositing/fixed-position-out-of-view-scroll-prepaint.html
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paintLayer): Don't paint out-of-view fixed position elements.
+
+2012-12-11 Roger Fong <roger_fong@apple.com>
+
+ Enable VIDEO_TRACK on Windows.
+ https://bugs.webkit.org/show_bug.cgi?id=104706.
+
+ Reviewed by Timothy Horton.
+
+ Enable VIDEO_TRACK on Windows and update project property files.
+
+ * DerivedSources.cpp:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.vcproj/WebCoreCommon.vsprops:
+ * WebCore.vcproj/copyForwardingHeaders.cmd:
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ (WebCore):
+ * html/HTMLElementsAllInOne.cpp:
+ * rendering/RenderingAllInOne.cpp:
+
+2012-12-12 James Simonsen <simonjam@chromium.org>
+
+ [Resource Timing] Failed resources shouldn't be recorded in the buffer
+ https://bugs.webkit.org/show_bug.cgi?id=104762
+
+ Reviewed by Tony Gentilcore.
+
+ Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_failures.html
+
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::loadDone):
+
+2012-12-12 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Add authentication support to DRT and fix exposed issues in the libsoup backend
+ https://bugs.webkit.org/show_bug.cgi?id=104285
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Fix issues in the libsoup networking backend that were causing test
+ failures.
+
+ No new tests. This patch unskips authentication tests.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::isAuthenticationFailureStatusCode): Added this helper to catch authentication status codes
+ and use it everywhere.
+ (WebCore::applyAuthenticationToRequest): Use an early return instead of an if-statement
+ and instead of always using manually specified credentials, apply those found in the session
+ storage as well. Instead of applying the credentials to firstRequest always, accept the request
+ as a parameter, so this method can be properly used with redirects.
+ (WebCore::restartedCallback): Instead of creating the KURL directly from soup_uri_to_string
+ use soupURIToKURL, which preserves the password from the SoupURI. soup_uri_to_string doesn't
+ include the password. When calling applyAuthenticationToRequest update the new request. Before
+ applyAuthenticationToRequest always updated the firstRequest. Do not call willSendRequest for
+ instances when this method is called for authentication handling. willSendRequest should only
+ be called for server-side redirects.
+ (WebCore::createSoupRequestAndMessageForHandle): Use soup_requester_request_uri instead of
+ soup_requester_request. Request::soupURI properly creates a SoupURI with non-null empty strings
+ when either the username and password are empty. A null username or password does not trigger
+ the URI-embedded credential override in SoupAuthenticationManager within libsoup. This is important
+ because sometimes either the username or password might empty for a request, but the other
+ part of the credential should still override the per-session credential storage.
+ (WebCore::ResourceHandle::start): We don't need to clear the username and password from the
+ internal data structure any longer. These need to be cleared in the CFNetwork backend because
+ it prevents the same failed per-request credentials from being used over and over again. In our
+ case we don't use these members during didReceiveAuthenticationChallenge, so this isn't an issue.
+ (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Don't look at the per-request
+ m_user/m_pass pair here any longer. We use these when initially creating a request, so we don't
+ want to re-use them if they fail.
+ * platform/network/soup/ResourceRequest.h:
+ (ResourceRequest): Rename urlStringForSoup to soupURI.
+ * platform/network/soup/ResourceRequestSoup.cpp:
+ (WebCore::ResourceRequest::soupURI): Instead of returning a string for the soup-bound URL
+ return a SoupURI that properly embeds empty usernames and passwords.
+
+2012-12-12 Alexey Proskuryakov <ap@apple.com>
+
+ Make LOG() work in WebProcess and NetworkProcess
+ https://bugs.webkit.org/show_bug.cgi?id=104718
+
+ Reviewed by Tim Horton.
+
+ Split initialization function into a new InitializeLogging.h file, because it's
+ needed in WebKit, but cannot be included along with WebKit version of this file.
+ We'd have a confilct between LOG_CHANNEL_PREFIX definitions if we tried.
+
+ * WebCore.xcodeproj/project.pbxproj: Make Logging.h a project header, and
+ InitializeLogging.h a private one.
+
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * platform/InitializeLogging.h: Added.
+ * platform/Logging.h:
+
+ * platform/blackberry/LoggingBlackBerry.cpp:
+ * platform/efl/LoggingEfl.cpp:
+ * platform/gtk/LoggingGtk.cpp:
+ * platform/mac/LoggingMac.mm:
+ * platform/qt/LoggingQt.cpp:
+ * platform/win/LoggingWin.cpp:
+ * platform/wx/LoggingWx.cpp:
+ Include InitializeLogging.h where this function is implemented.
+
+ * platform/NotImplemented.h:
+ * platform/NotImplemented.cpp: Added.
+ Changed to not include WebCore's Logging.h in the header, because NotImplemented.h
+ is used in WebKits, which have incompatibe logging headers.
+
+2012-12-12 Chris Fleizach <cfleizach@apple.com>
+
+ AX: aria-busy should be exposed everywhere, not just on live regions
+ https://bugs.webkit.org/show_bug.cgi?id=104814
+
+ Reviewed by Anders Carlsson.
+
+ The aria-busy attribute should be exposed on all elements.
+ This isn't entirely clear in the ARIA spec, but that will be fixed with
+ ARIA1.1 (ISSUE-538).
+
+ Existing tests that dump attributes cover this new behavior.
+
+ * accessibility/mac/WebAccessibilityObjectWrapper.mm:
+ (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
+
+2012-12-12 Gavin Peters <gavinp@chromium.org>
+
+ [chromium] Add destructor to WebPrerender
+ https://bugs.webkit.org/show_bug.cgi?id=104820
+
+ Reviewed by James Robinson.
+
+ When making WebPrerender default constructible and assignable, the destructor should have been moved out of WEBKIT_IMPLEMENTATION.
+
+ Existing WebKit unit tests should test this, as do chromium browser tests.
+
+ * platform/chromium/support/WebPrerender.cpp:
+ (WebKit::WebPrerender::toPrerender):
+ (WebKit::WebPrerender::reset):
+
+2012-12-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
+ [Qt] Animation fails on large layers
+ https://bugs.webkit.org/show_bug.cgi?id=104538
+
+ Reviewed by Noam Rosenthal.
+
+ The backing tiles had no upper limit defined for the non-GL backend, which could cause them
+ to allocate pixmaps widier or higher than what the underlying graphics systems can handle.
+
+ On top of that GraphicsLayerTextureMapper::prepareBackingStore() would allocate an intermediate
+ pixmap the size of the dirty rect, which would at least on the first paint be the size of the
+ entire layer, again causing allocation of pixmaps with dimensions outside of platform bounds.
+
+ This patch introduces a limit to the size of image buffer tiles, and adds an alternative path
+ for painting where the GraphicsLayer paints directly to the tile instead of over an intermediate
+ pixmap. This alternative path can also be useful later to minimize the amount of pixel copying
+ happening in full repaints.
+
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ (GraphicsLayerTextureMapper):
+ * platform/graphics/texmap/TextureMapper.cpp:
+ (WebCore::BitmapTexture::updateContents):
+ * platform/graphics/texmap/TextureMapper.h:
+ (BitmapTexture):
+ (TextureMapper):
+ * platform/graphics/texmap/TextureMapperBackingStore.cpp:
+ (WebCore::TextureMapperTile::updateContents):
+ (WebCore::TextureMapperTiledBackingStore::updateContents):
+ * platform/graphics/texmap/TextureMapperBackingStore.h:
+ (TextureMapperTile):
+ (TextureMapperTiledBackingStore):
+ * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
+ (WebCore::BitmapTextureImageBuffer::updateContents):
+ (WebCore::TextureMapperImageBuffer::maxTextureSize):
+ * platform/graphics/texmap/TextureMapperImageBuffer.h:
+ (BitmapTextureImageBuffer):
+
+2012-12-12 Aaron Colwell <acolwell@chromium.org>
+
+ Remove MediaSource 'ended' to 'open' transition when seeking.
+ https://bugs.webkit.org/show_bug.cgi?id=104583
+
+ Reviewed by Eric Carlson.
+
+ Remove the 'ended' to 'open' transition on a seek.
+
+ No new tests. The following tests were updated to reflect the new behavior.
+ http/tests/media/media-source/video-media-source-seek.html
+ http/tests/media/media-source/video-media-source-state-changes.html
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::seek):
+
+2012-12-12 Julien Chaffraix <jchaffraix@webkit.org>
+
+ [CSS Grid Layout] Implement CSS parsing and handling for min-content and max-content
+ https://bugs.webkit.org/show_bug.cgi?id=104747
+
+ Reviewed by Alexis Menard.
+
+ This change adds -webkit-min-content and -webkit-max-content to our <track-breadth> parsing.
+ The rendering is not plugged in and will probably depend on bug 103311.
+
+ Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
+ fast/css-grid-layout/grid-columns-rows-get-set.html:
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseGridBreadth):
+ * css/StyleResolver.cpp:
+ (WebCore::createGridTrackBreadth):
+ Straight-forward extension of the new code. We were already serializing back properly
+ so no need to touch CSSComputedStyleDeclaration.
+
+2012-12-12 Ryosuke Niwa <rniwa@webkit.org>
+
+ Copying text with ruby inserts new lines around rt elements
+ https://bugs.webkit.org/show_bug.cgi?id=104765
+
+ Reviewed by Dan Bernstein.
+
+ Don't emit new lines before and after rt.
+
+ Test: editing/pasteboard/copy-paste-ruby-text.html
+
+ * editing/TextIterator.cpp:
+ (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
+
+2012-12-12 Krzysztof Czech <k.czech@samsung.com>
+
+ [EFL] Possibility to turn off accessibility feature for WebKit-EFL.
+ https://bugs.webkit.org/show_bug.cgi?id=103036
+
+ Reviewed by Laszlo Gombos.
+
+ Guard dependencies for accessibility (ATK), so that they can be turned off.
+
+ No new tests as there is no new functionality.
+
+ * PlatformEfl.cmake:
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::AccessibilityObject):
+ * accessibility/AccessibilityObject.h:
+ (AccessibilityObject):
+
+2012-12-12 Justin Novosad <junov@google.com>
+
+ Use render box background over border draw strategy in cases with background-image
+ https://bugs.webkit.org/show_bug.cgi?id=103409
+
+ Reviewed by Simon Fraser.
+
+ The BackgroundOverBorderBleedAvoidance mode was not being used in
+ cases where the background is an opaque image. It was also not
+ being used in cases with multiple layers. The multiple layer
+ case is now safe with respect to color bleeding if the top layer
+ is opaque, thank to the recent addition of layer occlusion culling
+ in r135629.
+
+ No new tests. Testing already covered by the following tests:
+ fast/backgrounds/background-opaque-images-over-color.html
+ fast/backgrounds/gradient-background-leakage-2.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::determineBackgroundBleedAvoidance):
+ (WebCore::RenderBox::backgroundHasOpaqueTopLayer):
+ * rendering/RenderBox.h:
+ (RenderBox):
+
+2012-12-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: instrument static parts of RenderBlock and RenderBox
+ https://bugs.webkit.org/show_bug.cgi?id=104660
+
+ Reviewed by Yury Semikhatsky.
+
+ Plain vanilla instrumentation.
+
+ * dom/WebCoreMemoryInstrumentation.cpp:
+ (WebCore):
+ (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
+ * dom/WebCoreMemoryInstrumentation.h:
+ (WebCoreMemoryTypes):
+ (WebCoreMemoryInstrumentation):
+ (WebCore):
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::reportStaticMembersMemoryUsage):
+ (WebCore):
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::reportStaticMembersMemoryUsage):
+ (WebCore):
+ * rendering/RenderBox.h:
+ (RenderBox):
+
+2012-12-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.
+ https://bugs.webkit.org/show_bug.cgi?id=104796
+
+ Reviewed by Yury Semikhatsky.
+
+ It was not a good idea to introduce a fake root MemoryObjectInfo.
+ It makes a problem when we visit an object without its own MemoryObjectType.
+
+ Example: RenderBox has a global pointer to a hash map.
+ HashMap doesn't have its own object type because it is a generic container.
+ It will inherit object type from the fake root memory object info.
+ The same could happen for another container in another class with other MemoryObjectType.
+
+ This fact forces me to create custom process method for root objects
+ because they need to have their own MemoryObjectInfo with customisable memory object type.
+
+ Drive by fix: InstrumentedPointer* was replaced with Wrapper* because actually it is using
+ for instrumented and not instrumented object classes.
+
+ * inspector/MemoryInstrumentationImpl.cpp:
+ (WebCore::MemoryInstrumentationImpl::processDeferredObjects):
+ (WebCore::MemoryInstrumentationImpl::deferObject):
+ (WebCore::MemoryInstrumentationImpl::reportMemoryUsage):
+ * inspector/MemoryInstrumentationImpl.h:
+ (MemoryInstrumentationImpl):
+
+2012-12-12 Kondapally Kalyan <kalyan.kondapally@intel.com>
+
+ [EFL [WebGL] [Wk2] Resizing the canvas breaks WebGL.
+ https://bugs.webkit.org/show_bug.cgi?id=104535.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ GraphicsContext3DEfl does not re-create the surface on canvas resize, this
+ conflicted with the logic in coordinated graphics Layer.
+ CoordinatedGraphicsLayer checks for GraphicsSurfaceToken to decide if the surface
+ in UI-Process should be recreated or not. With this
+ patch we also check for size of the platform Layer.
+
+ * platform/graphics/efl/GraphicsContext3DEfl.cpp:
+ (WebCore::GraphicsContext3D::createGraphicsSurfaces):
+ * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
+ (GraphicsContext3DPrivate::didResizeCanvas):
+ (GraphicsContext3DPrivate::platformLayerSize):
+ * platform/graphics/efl/GraphicsContext3DPrivate.h:
+ (GraphicsContext3DPrivate):
+
+2012-12-12 Antoine Quint <graouts@apple.com>
+
+ Web Inspector: Crash in InspectorDOMAgent::pushNodePathToFrontend when inspecting document with CSS generated content
+ https://bugs.webkit.org/show_bug.cgi?id=104780
+
+ Reviewed by Pavel Feldman.
+
+ The pushNodePathForRenderLayerToFrontend() method added to InspectorDOMAgent naively assumed
+ that all RenderLayers have a Node associated to them. However, in the case of CSS generated
+ content, that will not be the case and we would call into pushNodePathToFrontend() with a 0
+ parameter that would hit the first ASSERT in this method. We're now checking that we indeed
+ have an associated node for the provided RenderLayer and return 0 in case we don't, without
+ calling into pushNodePathToFrontend().
+
+ Test: inspector-protocol/layer-tree-generated-content.html
+
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend):
+
+2012-12-12 Alexander Pavlov <apavlov@chromium.org>
+
+ Web Inspector: [Crash] Clear cached stylesheet rules in InspectorStyleSheet::deleteRule()
+ https://bugs.webkit.org/show_bug.cgi?id=104806
+
+ Reviewed by Vsevolod Vlasov.
+
+ Cached rules (m_flatRules) should get cleared whenever a rule is deleted.
+
+ Test: inspector/styles/undo-add-rule-crash.html
+
+ * inspector/InspectorStyleSheet.cpp:
+ (WebCore::InspectorStyleSheet::deleteRule):
+
+2012-12-12 Stephen White <senorblanco@chromium.org>
+
+ Unreviewed, rolling out r136975.
+ http://trac.webkit.org/changeset/136975
+ https://bugs.webkit.org/show_bug.cgi?id=90405
+
+ Correctness issues.
+
+ * dom/Element.cpp:
+ * dom/Element.h:
+ (Element):
+ * dom/ElementRareData.h:
+ (ElementRareData):
+ (WebCore::ElementRareData::ElementRareData):
+ * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
+ (WebCore::BitmapTextureImageBuffer::applyFilters):
+ * rendering/FilterEffectRenderer.cpp:
+ (WebCore::createCustomFilterEffect):
+ (WebCore::FilterEffectRenderer::buildReferenceFilter):
+ (WebCore::FilterEffectRenderer::build):
+ * rendering/FilterEffectRenderer.h:
+ (FilterEffectRenderer):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::willBeDestroyed):
+ * rendering/svg/RenderSVGResourceContainer.cpp:
+ (WebCore::RenderSVGResourceContainer::registerResource):
+ * rendering/svg/SVGResources.cpp:
+ (WebCore::SVGResources::buildCachedResources):
+ * rendering/svg/SVGResourcesCache.cpp:
+ (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
+ (WebCore::SVGResourcesCache::clientStyleChanged):
+ (WebCore::SVGResourcesCache::resourceDestroyed):
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::addPendingResource):
+ (WebCore::SVGDocumentExtensions::isElementPendingResources):
+ (WebCore::SVGDocumentExtensions::isElementPendingResource):
+ (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
+ (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
+ * svg/SVGDocumentExtensions.h:
+ (WebCore):
+ (SVGDocumentExtensions):
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::hasPendingResources):
+ (WebCore):
+ (WebCore::SVGElement::setHasPendingResources):
+ (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
+ * svg/SVGElement.h:
+ (SVGElement):
+ (WebCore::SVGElement::buildPendingResource):
+ * svg/SVGElementRareData.h:
+ (WebCore::SVGElementRareData::SVGElementRareData):
+ (WebCore::SVGElementRareData::hasPendingResources):
+ (WebCore::SVGElementRareData::setHasPendingResources):
+ (SVGElementRareData):
+ * svg/SVGStyledElement.cpp:
+ (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
+
+2012-12-12 Stephen White <senorblanco@chromium.org>
+
+ Unreviewed, rolling out r137022.
+ http://trac.webkit.org/changeset/137022
+
+ Precursor to rollout of 136975.
+
+ * rendering/svg/SVGResources.cpp:
+ (WebCore::SVGResources::buildCachedResources):
+
+2012-12-12 Stephen White <senorblanco@chromium.org>
+
+ Unreviewed, rolling out r137027.
+ http://trac.webkit.org/changeset/137027
+
+ Precursor to rollout of 136975.
+
+ * dom/ElementRareData.h:
+ (ElementRareData):
+
+2012-12-12 Alexei Filippov <alph@chromium.org>
+
+ Web Inspector: add memory used by memory allocator itself to NMI
+ https://bugs.webkit.org/show_bug.cgi?id=93372
+
+ Make native memory instrumentation report memory retained
+ for the memory allocator internal purposes.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/NativeMemorySnapshotView.js:
+ (WebInspector.MemoryBlockViewProperties._initialize):
+ * platform/chromium/MemoryUsageSupportChromium.cpp:
+ (WebCore::MemoryUsageSupport::memoryUsageByComponents):
+
+2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137438.
+ http://trac.webkit.org/changeset/137438
+ https://bugs.webkit.org/show_bug.cgi?id=104798
+
+ assertion reached when removing tile (Requested by tmpsantos
+ on #webkit).
+
+ * page/Frame.cpp:
+ (WebCore::Frame::setTiledBackingStoreEnabled):
+ * platform/graphics/TiledBackingStore.cpp:
+ (WebCore::TiledBackingStore::TiledBackingStore):
+ (WebCore::TiledBackingStore::setTileCreationDelay):
+ (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
+ (WebCore::TiledBackingStore::updateTileBuffers):
+ (WebCore::TiledBackingStore::createTiles):
+ (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
+ (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
+ (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
+ (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
+ (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
+ * platform/graphics/TiledBackingStore.h:
+ (TiledBackingStore):
+ (WebCore::TiledBackingStore::tileCreationDelay):
+ * platform/graphics/TiledBackingStoreClient.h:
+ (WebCore::TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed):
+
+2012-12-12 Csaba Osztrogonác <ossy@webkit.org>
+
+ [Qt] Unreviewed typo fix after r137446.
+
+ * WebCore.pri:
+
+2012-12-12 Zan Dobersek <zandobersek@gmail.com>
+
+ [GTK] Remove the last of unnecessary configuration options in configure.ac
+ https://bugs.webkit.org/show_bug.cgi?id=104793
+
+ Reviewed by Martin Robinson.
+
+ Remove the feature define overriding that's based on the automake variables which are
+ not set anymore due to the corresponding configuration options being removed.
+
+ No new tests - no new functionality.
+
+ * GNUmakefile.am:
+
+2012-12-12 Simon Hausmann <simon.hausmann@digia.com>
+
+ [Qt] Fix build on Mac
+
+ Reviewed by Csaba Osztrogonác.
+
+ On Mac OS X we have sqlite as a system library available.
+
+ * WebCore.pri:
+
+2012-12-12 Simon Hausmann <simon.hausmann@digia.com>
+
+ [Qt] Fix linkage against SQLite
+ https://bugs.webkit.org/show_bug.cgi?id=104781
+
+ Reviewed by Csaba Osztrogonác.
+
+ Detect SQLite either through pkg-config, from the SQLITE3SRCDIR
+ environment variable or from qtbase via a qt5.git build. Bail out early
+ with an error message if neither option applies.
+
+ This removes the usage of $$QT.core.sources and the dependency on Qt's
+ system-sqlite configure setting. We should always favour a system
+ library over a copy in Qt.
+
+ * Target.pri:
+ * WebCore.pri:
+
+2012-12-12 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
+ [TexMap] Uninitialized m_context pointer in TextureMapper
+ https://bugs.webkit.org/show_bug.cgi?id=104785
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * platform/graphics/texmap/TextureMapper.cpp:
+ (WebCore::TextureMapper::TextureMapper):
+ * platform/graphics/texmap/TextureMapperGL.cpp:
+ (WebCore::TextureMapperGL::TextureMapperGL):
+
+2012-12-12 Tommy Widenflycht <tommyw@google.com>
+
+ MediaStream API: Change the data channel descriptor pattern to a handler pattern
+ https://bugs.webkit.org/show_bug.cgi?id=104543
+
+ Reviewed by Kent Tamura.
+
+ In short the code is refactured to use the Handler/Client pattern (see RTCPeerConnectionHandler)
+ instead of the Descriptor pattern.
+ This will fix lifetime/memory/code structure issues in the chromium port.
+
+ Existing tests cover this patch.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Modules/mediastream/RTCDataChannel.cpp:
+ (WebCore::RTCDataChannel::create):
+ (WebCore::RTCDataChannel::RTCDataChannel):
+ (WebCore::RTCDataChannel::~RTCDataChannel):
+ (WebCore::RTCDataChannel::label):
+ (WebCore::RTCDataChannel::reliable):
+ (WebCore::RTCDataChannel::readyState):
+ (WebCore::RTCDataChannel::bufferedAmount):
+ (WebCore::RTCDataChannel::send):
+ (WebCore::RTCDataChannel::close):
+ (WebCore::RTCDataChannel::didChangeReadyState):
+ (WebCore::RTCDataChannel::didReceiveStringData):
+ (WebCore::RTCDataChannel::didReceiveRawData):
+ (WebCore::RTCDataChannel::didDetectError):
+ (WebCore::RTCDataChannel::stop):
+ * Modules/mediastream/RTCDataChannel.h:
+ (WebCore):
+ (RTCDataChannel):
+ * Modules/mediastream/RTCPeerConnection.cpp:
+ (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
+ * Modules/mediastream/RTCPeerConnection.h:
+ (RTCPeerConnection):
+ * WebCore.gypi:
+ * platform/chromium/support/WebRTCDataChannel.cpp: Removed.
+ * platform/mediastream/RTCDataChannelDescriptor.h: Removed.
+ * platform/mediastream/RTCDataChannelHandler.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
+ (WebCore):
+ (RTCDataChannelHandler):
+ (WebCore::RTCDataChannelHandler::~RTCDataChannelHandler):
+ * platform/mediastream/RTCDataChannelHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
+ (WebCore):
+ (RTCDataChannelHandlerClient):
+ (WebCore::RTCDataChannelHandlerClient::~RTCDataChannelHandlerClient):
+ * platform/mediastream/RTCPeerConnectionHandler.cpp:
+ (WebCore):
+ (WebCore::RTCPeerConnectionHandler::create):
+ * platform/mediastream/RTCPeerConnectionHandler.h:
+ (WebCore):
+ (RTCPeerConnectionHandler):
+ * platform/mediastream/RTCPeerConnectionHandlerClient.h:
+ (WebCore):
+ (RTCPeerConnectionHandlerClient):
+ * platform/mediastream/chromium/RTCDataChannelHandlerChromium.cpp: Added.
+ (WebCore):
+ (WebCore::RTCDataChannelHandlerChromium::create):
+ (WebCore::RTCDataChannelHandlerChromium::RTCDataChannelHandlerChromium):
+ (WebCore::RTCDataChannelHandlerChromium::~RTCDataChannelHandlerChromium):
+ (WebCore::RTCDataChannelHandlerChromium::setClient):
+ (WebCore::RTCDataChannelHandlerChromium::label):
+ (WebCore::RTCDataChannelHandlerChromium::isReliable):
+ (WebCore::RTCDataChannelHandlerChromium::bufferedAmount):
+ (WebCore::RTCDataChannelHandlerChromium::sendStringData):
+ (WebCore::RTCDataChannelHandlerChromium::sendRawData):
+ (WebCore::RTCDataChannelHandlerChromium::close):
+ (WebCore::RTCDataChannelHandlerChromium::didChangeReadyState):
+ (WebCore::RTCDataChannelHandlerChromium::didReceiveStringData):
+ (WebCore::RTCDataChannelHandlerChromium::didReceiveRawData):
+ (WebCore::RTCDataChannelHandlerChromium::didDetectError):
+ * platform/mediastream/chromium/RTCDataChannelHandlerChromium.h: Added.
+ (WebCore):
+ (RTCDataChannelHandlerChromium):
+ * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
+ (WebCore::RTCPeerConnectionHandlerChromium::createDataChannel):
+ (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
+ * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
+ (WebCore):
+ (RTCPeerConnectionHandlerChromium):
+
+2012-12-12 Huang Dongsung <luxtella@company100.net>
+
+ Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
+ https://bugs.webkit.org/show_bug.cgi?id=103959
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop() is used when class
+ methods cannot be called asynchronously by client. Updates of tiles are
+ committed as soon as all the events in event queue have been processed.
+ After this patch Frame sets m_commitTileUpdatesOnIdleEventLoop to true.
+
+ In addition, remove TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed()
+ which was introduced for Coordinated Graphics.
+
+ Refactoring covered by existing tests.
+
+ * page/Frame.cpp:
+ (WebCore::Frame::setTiledBackingStoreEnabled):
+ * platform/graphics/TiledBackingStore.cpp:
+ (WebCore::TiledBackingStore::TiledBackingStore):
+ (WebCore::TiledBackingStore::setTrajectoryVector):
+ Separate setting a trajectory vector from coverWithTilesIfNeeded().
+ (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
+ (WebCore::TiledBackingStore::updateTileBuffers):
+ (WebCore::TiledBackingStore::createTiles):
+ (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
+ (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
+ (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
+ (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
+ (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
+ * platform/graphics/TiledBackingStore.h:
+ (TiledBackingStore):
+ (WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop):
+ * platform/graphics/TiledBackingStoreClient.h:
+ (WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
+ If TiledBackingStore does not create all tiles, TiledBackingStore
+ notifies a client of needing to create tiles more, when
+ m_commitTileUpdatesOnIdleEventLoop is false.
+
+2012-12-11 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Fix the inspector not showing up on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=104677
+
+ Reviewed by Simon Hausmann.
+
+ * Target.pri:
+
+2012-11-29 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: Heap snapshot crashes on any page in MacOS Canary
+ https://bugs.webkit.org/show_bug.cgi?id=103076
+
+ Reviewed by Adam Barth.
+
+ Provide global object name resolver to the heap profiler. The callback allows
+ to safely retrieve document URL to be used as a label for corresponding global
+ object in the heap snapshot.
+
+ Test: inspector-protocol/take-heap-snapshot.html
+
+ * bindings/v8/ScriptProfiler.cpp:
+ (WebCore):
+ (WebCore::ScriptProfiler::takeHeapSnapshot):
+
+2012-12-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137428.
+ http://trac.webkit.org/changeset/137428
+ https://bugs.webkit.org/show_bug.cgi?id=104776
+
+ It broke the build everywhere (Requested by Ossy on #webkit).
+
+ * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
+ (WebCore::GraphicsSurface::platformPaintToTextureMapper):
+ * platform/graphics/texmap/TextureMapperGL.cpp:
+ (WebCore::TextureMapperGL::drawQuad):
+ (WebCore::TextureMapperGL::drawBorder):
+ (WebCore::TextureMapperGL::drawTexture):
+ (WebCore):
+ (WebCore::TextureMapperGL::drawTextureRectangleARB):
+ (WebCore::TextureMapperGL::drawSolidColor):
+ (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
+ (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
+ * platform/graphics/texmap/TextureMapperGL.h:
+ (TextureMapperGL):
+ * platform/graphics/texmap/TextureMapperShaderManager.cpp:
+ (WebCore::getShaderSpec):
+ * platform/graphics/texmap/TextureMapperShaderManager.h:
+ (TextureMapperShaderProgram):
+
+2012-12-12 Martin Robinson <mrobinson@igalia.com>
+
+ Web inspector prints a warning about "Debug" not being localized
+ https://bugs.webkit.org/show_bug.cgi?id=104679
+
+ Reviewed by Vsevolod Vlasov.
+
+ Add a missing localization entry for the "Debug" string which is used in the web
+ inspector front-end. This prevents warnings about a missing localized version
+ of the word "Debug" and allows it to be properly localized.
+
+ * English.lproj/localizedStrings.js: Add "Debug"
+
+2012-12-12 Shinya Kawanaka <shinyak@chromium.org>
+
+ [Shadow DOM] Implement HTMLShadowElement::olderShadowRoot
+ https://bugs.webkit.org/show_bug.cgi?id=104218
+
+ Reviewed by Hajime Morita.
+
+ Implements HTMLShadowElement::olderShadowRoot, which returns the ShadowRoot the HTMLShadowElement is assigned to.
+ When such ShadowRoot does not exist, 0 is returned.
+
+ Test: fast/dom/shadow/olderShadowRoot-in-shadowelement.html
+
+ * dom/ElementShadow.cpp:
+ (WebCore::ElementShadow::ensureDistributionFromDocument): Ensures distribution of this ElementShadow and
+ all of the parent TreeScope distribution. This function will be shared for Bug 104345.
+ (WebCore):
+ * dom/ElementShadow.h:
+ (ElementShadow):
+ * html/shadow/HTMLShadowElement.cpp:
+ (WebCore::HTMLShadowElement::olderShadowRoot):
+ (WebCore):
+ * html/shadow/HTMLShadowElement.h:
+ * html/shadow/HTMLShadowElement.idl:
+
+2012-12-12 No'am Rosenthal <noam@webkit.org>
+
+ [Texmap] Consolidate redundant code for ARB_RECT texture
+ https://bugs.webkit.org/show_bug.cgi?id=104705
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Instead of having a whole different function for RECT textures,
+ keep the existing functions and pass a flag that tells
+ TextureMapperGL to use the non-normalized coordinates and the
+ RECT shaders.
+
+ No new tests, refactor only. Tested to not break WebGL on
+ Qt-Mac.
+
+ * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
+ (WebCore::GraphicsSurface::platformPaintToTextureMapper):
+ * platform/graphics/texmap/TextureMapperGL.cpp:
+ (WebCore::TextureMapperGL::drawQuad):
+ Compensate for rect textures in drawQuad.
+
+ (WebCore::TextureMapperGL::drawBorder):
+ (WebCore::TextureMapperGL::drawTexture):
+ (WebCore::TextureMapperGL::drawSolidColor):
+ (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
+ (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
+ Pass flags to TextureMapperGL::drawQuad instead of a bool.
+
+ * platform/graphics/texmap/TextureMapperGL.h:
+ (TextureMapperGL):
+ * platform/graphics/texmap/TextureMapperShaderManager.cpp:
+ (WebCore::getShaderSpec):
+ * platform/graphics/texmap/TextureMapperShaderManager.h:
+ (TextureMapperShaderProgram):
+ Compensate for the texture-size in the vertex
+ shader instead of in the fragment shader.
+
+2012-12-11 Hayato Ito <hayato@chromium.org>
+
+ REGRESSION(r137408): breaks chromium's browser tests which use WebKitShadowRoot (Requested by hayato on #webkit).
+ https://bugs.webkit.org/show_bug.cgi?id=104770
+
+ Unreviewed, build fix.
+
+ * dom/ShadowRoot.idl:
+ * page/DOMWindow.idl:
+
+2012-12-11 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137333, r137344, r137364, and
+ r137377.
+ http://trac.webkit.org/changeset/137333
+ http://trac.webkit.org/changeset/137344
+ http://trac.webkit.org/changeset/137364
+ http://trac.webkit.org/changeset/137377
+ https://bugs.webkit.org/show_bug.cgi?id=104771
+
+ Caused a raft of browser_test failures in Chromium (Requested
+ by aklein on #webkit).
+
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::setRequest):
+ (WebCore::DocumentLoader::subresource):
+ (WebCore::DocumentLoader::addSubresourceLoader):
+ (WebCore::DocumentLoader::removeSubresourceLoader):
+ (WebCore::DocumentLoader::startLoadingMainResource):
+ * loader/MainResourceLoader.cpp:
+ (WebCore::MainResourceLoader::MainResourceLoader):
+ (WebCore::MainResourceLoader::~MainResourceLoader):
+ (WebCore::MainResourceLoader::receivedError):
+ (WebCore::MainResourceLoader::willCancel):
+ (WebCore::MainResourceLoader::didCancel):
+ (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
+ (WebCore::MainResourceLoader::addData):
+ (WebCore::MainResourceLoader::willSendRequest):
+ (WebCore::MainResourceLoader::continueAfterContentPolicy):
+ (WebCore::MainResourceLoader::didReceiveResponse):
+ (WebCore::MainResourceLoader::didReceiveData):
+ (WebCore::MainResourceLoader::didFinishLoading):
+ (WebCore::MainResourceLoader::didFail):
+ (WebCore::MainResourceLoader::reportMemoryUsage):
+ (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
+ (WebCore::MainResourceLoader::loadNow):
+ (WebCore):
+ (WebCore::MainResourceLoader::load):
+ (WebCore::MainResourceLoader::setDefersLoading):
+ * loader/MainResourceLoader.h:
+ (MainResourceLoader):
+ * loader/ResourceLoader.cpp:
+ (WebCore::ResourceLoader::willSendRequest):
+ * loader/ResourceLoader.h:
+ (ResourceLoader):
+ (WebCore::ResourceLoader::defersLoading):
+ * loader/SubresourceLoader.cpp:
+ (WebCore::SubresourceLoader::willSendRequest):
+ * loader/appcache/ApplicationCacheHost.cpp:
+ (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
+ (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
+ * loader/cache/CachedRawResource.cpp:
+ (WebCore::CachedRawResource::willSendRequest):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::loadDone):
+ * loader/mac/DocumentLoaderMac.cpp:
+ (WebCore::DocumentLoader::schedule):
+ (WebCore::DocumentLoader::unschedule):
+
+2012-12-11 Kentaro Hara <haraken@chromium.org>
+
+ Unreviewed, rolling out r137398.
+ http://trac.webkit.org/changeset/137398
+ https://bugs.webkit.org/show_bug.cgi?id=104188
+
+ A bunch of webaudio tests hit ASSERTs
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Modules/webaudio/AudioContext.cpp:
+ (WebCore::AudioContext::createOfflineContext):
+ (WebCore):
+ * Modules/webaudio/AudioContext.h:
+ (AudioContext):
+ * Modules/webaudio/DOMWindowWebAudio.idl:
+ * Modules/webaudio/OfflineAudioContext.cpp: Removed.
+ * Modules/webaudio/OfflineAudioContext.h: Removed.
+ * Modules/webaudio/OfflineAudioContext.idl: Removed.
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/generic/RuntimeEnabledFeatures.h:
+ * bindings/js/JSAudioContextCustom.cpp:
+ (WebCore::JSAudioContextConstructor::constructJSAudioContext):
+ * bindings/v8/custom/V8AudioContextCustom.cpp:
+ (WebCore::V8AudioContext::constructorCallbackCustom):
+
+2012-12-11 Shinya Kawanaka <shinyak@chromium.org>
+
+ [Shadow DOM] registering InsertionPoints to ShadowRoot should work out of a document.
+ https://bugs.webkit.org/show_bug.cgi?id=104346
+
+ Reviewed by Hajime Morita.
+
+ We need to register InsertionPoints even if ShadowRoot is out of Document, since distribution should work
+ out of Document, too.
+
+ Instead of checking isInDocument(), we have to make sure InsertionPoint and an element which InsertionPoint
+ inserted into have the same treescope.
+
+ Tests: fast/dom/shadow/has-content-elements.html
+ fast/dom/shadow/has-shadow-insertion-point.html
+
+ * html/shadow/InsertionPoint.cpp:
+ (WebCore::InsertionPoint::insertedInto):
+ (WebCore::InsertionPoint::removedFrom):
+
+2012-12-11 Takashi Sakamoto <tasak@google.com>
+
+ Text nodes in shadow roots don't inherit style properly
+ https://bugs.webkit.org/show_bug.cgi?id=101116
+
+ Reviewed by Hajime Morita.
+
+ Use NodeRenderingContext to resolve styles of text nodes.
+ If text nodes are direct children of shadow roots, the text nodes
+ should be inherited styles from their shadow hosts.
+ But if reset-style-inheritance flag is true, the text nodes should
+ not be inherited. And if text nodes are distributed nodes,
+ we have to check whether their insertion point's
+ reset-style-inheritance.
+ c.f. shadow dom spec is:
+ http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
+
+ Test: fast/dom/shadow/text-node-in-shadow.html
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::styleForElement):
+ Modified to use defaultStyleForElement if the given element has
+ no parent style.
+ (WebCore::StyleResolver::initForStyleResolve):
+ Removed shouldResetStyleInheritance, because now NodeRenderingContext
+ resetStyleInheritance() takes care of reset-style-inheritance of
+ both shadow roots and insertion points.
+ (WebCore::StyleResolver::defaultStyleForElement):
+ Added to create a default style for elements.
+ (WebCore):
+ (WebCore::StyleResolver::styleForText):
+ Use NodeRenderingContext to find the parent node for style from the
+ given text node. If no parent node is found or reset-style-inheritance
+ is true, returns a default style (i.e. empty render style).
+ Otherwise, just returns the found node's style.
+ * css/StyleResolver.h:
+ (StyleResolver):
+ * dom/ComposedShadowTreeWalker.cpp:
+ (WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::didTraverseInsertionPoint):
+ Modify to consider insertion point's resetStyleInheritance.
+ * dom/NodeRenderingContext.cpp:
+ (WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
+ Since NodeRenderingContext has already found a parent node for
+ rendering and style and a parentRenderer is just the found node's
+ renderer, we have to only check reset-style-inheritance.
+ If reset, use default style. Otherwise, the parentRenderer's style.
+ * dom/Text.cpp:
+ (WebCore::Text::recalcTextStyle):
+ Use styleForText instead of parentRenderer's styles if the given text
+ node is a direct child of a shadow root or a direct child of a shadow
+ host.
+
+2012-12-11 Takashi Sakamoto <tasak@google.com>
+
+ Hide HOST_RULE behind SHADOW_DOM flag.
+ https://bugs.webkit.org/show_bug.cgi?id=102321
+
+ Reviewed by Dimitri Glazkov.
+
+ @host @-rules are only available when the rules are declared in styles
+ in shadow dom trees. So if SHADOW_DOM is disabled, we don't need
+ @host @-rules.
+
+ No new tests. Just hide HOST_RULE behind SHADOW_DOM flag.
+
+ * css/StyleResolver.h:
+ Hide "class ShadowRuleHost".
+ * css/StyleRule.cpp:
+ (WebCore::StyleRuleBase::reportMemoryUsage):
+ (WebCore::StyleRuleBase::destroy):
+ (WebCore::StyleRuleBase::copy):
+ (WebCore::StyleRuleBase::createCSSOMWrapper):
+ * css/StyleRule.h:
+ (StyleRuleBase):
+ Hide "Host" type and isHostRule.
+ (StyleRuleHost):
+ Hide "class StyleRuleHost".
+ * css/StyleSheetContents.cpp:
+ (WebCore::childRulesHaveFailedOrCanceledSubresources):
+
+2012-12-11 Dominic Mazzoni <dmazzoni@google.com>
+
+ AX: accessibilityIsIgnored should avoid computing textUnderElement
+ https://bugs.webkit.org/show_bug.cgi?id=104688
+
+ Reviewed by Chris Fleizach.
+
+ Simplify the logic in accessibilityIsIgnored without affecting
+ the results of any tests. In particular, avoid expensive calls to
+ textUnderElement.
+
+ Covered by existing tests.
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::isGenericFocusableElement):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
+
+2012-12-11 Kentaro Hara <haraken@chromium.org>
+
+ [V8] Reachable event listeners on image elements can be collected in a minor DOM GC
+ https://bugs.webkit.org/show_bug.cgi?id=104734
+
+ Reviewed by Kenneth Russell.
+
+ A major DOM GC treats image elements specially. In
+ V8GCController::opaqueRootForGC(), a major DOM GC puts image elements
+ that have pending activities into the same object group of their document.
+ This guarantees that image elements that have pending activities
+ are not garbage collected in the major DOM GC.
+
+ This patch adds the same special handling to a minor DOM GC to guarantee
+ the same thing in the minor DOM GC too.
+
+ In long-term, we might want to remove the special handling by making
+ image elements active DOM nodes.
+
+ Test: Manually confirmed that all characters in
+ http://alteredqualia.com/three/examples/webgl_animation_skinning_tf2.html
+ are rendered correctly.
+
+ * bindings/v8/V8GCController.cpp:
+ (WebCore::V8GCController::opaqueRootForGC):
+ (WebCore::gcTree):
+
+2012-12-11 Dominic Mazzoni <dmazzoni@google.com>
+
+ AX: Make isActionSupported cross-platform.
+ https://bugs.webkit.org/show_bug.cgi?id=104681
+
+ Reviewed by Chris Fleizach.
+
+ Add UserGestureIndicator to increment() and decrement()
+ so that all accessibility actions are treated as
+ user actions, not scripted actions.
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::increment):
+ (WebCore::AccessibilityNodeObject::decrement):
+
+2012-12-11 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
+
+ Remove conversion to/from float and float division from ImageFrame::setRGBA
+ https://bugs.webkit.org/show_bug.cgi?id=103693
+
+ Reviewed by Brent Fulgham.
+
+ Replace floating point operations used for alpha premultiply with fixed point arithmetic
+ which is basically integer operations. Allows to shave extra couple percent from decoding
+ images with transparency.
+
+ Covered by existing tests.
+
+ * platform/image-decoders/ImageDecoder.h:
+ (ImageFrame):
+ (WebCore::ImageFrame::fixPointUnsignedMultiply):
+ (WebCore::ImageFrame::setRGBA):
+
+2012-12-11 Kihong Kwon <kihong.kwon@samsung.com>
+
+ Vibration API: IDL type doesn't match implementation type
+ https://bugs.webkit.org/show_bug.cgi?id=103899
+
+ Reviewed by Kentaro Hara.
+
+ According to WebIDL, "unsigned long" corresponds to "unsigned" in the platform.
+ Therefore unsigned long need to be changed to unsigned for the Vibration API.
+ - Change a parameter type of vibrate function from unsigned long to unsigned.
+
+ No new tests, it is covered by exist test.
+
+ * Modules/vibration/NavigatorVibration.cpp:
+ (WebCore::NavigatorVibration::vibrate):
+ * Modules/vibration/NavigatorVibration.h:
+ (NavigatorVibration):
+ * Modules/vibration/Vibration.cpp:
+ (WebCore::Vibration::vibrate):
+ * Modules/vibration/Vibration.h:
+ (Vibration):
+ * Modules/vibration/VibrationClient.h:
+ (VibrationClient):
+ * bindings/js/JSDOMBinding.h:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ Remove workaround codes for the Vibration API which is mapped from unsigned long to unsigned long.
+ It should be mapped from unsigned long to unsigned by WebIDL spec.
+ (GetNativeVectorInnerType):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
+
+2012-12-11 Xinazhu Wang <wangxianzhu@chromium.org>
+
+ ScrollingCoordinator::hasVisibleSlowRepaintFixedObject() should exclude out-of-view fixed position elements
+ https://bugs.webkit.org/show_bug.cgi?id=102543
+
+ Let RenderLayerCompositor manage the reasons that fixed position elements are not composited.
+ Check the reason in ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects(), don't let fixed position layer not composited with explicit reasons cause slow scrolling.
+
+ Reviewed by James Robinson.
+
+ Test: compositing/layer-creation/fixed-position-out-of-view-scroll-reason.html
+
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects): Exclude fixed position elements that are not composited for explicit reasons.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::computeCompositingRequirements): Manages m_fixedPositionLayerNotCompositedReasonMap.
+ (WebCore::RenderLayerCompositor::needsToBeComposited):
+ (WebCore::RenderLayerCompositor::requiresCompositingLayer):
+ (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
+ * rendering/RenderLayerCompositor.h:
+ (WebCore::RenderLayerCompositor::fixedPositionLayerNotCompositedReason): Now outputs fixedPositionLayerNotCompositedreason.
+ (RenderLayerCompositor):
+
+2012-12-11 Hayato Ito <hayato@chromium.org>
+
+ [Shadow DOM] Kill ShadowRoot constructor
+ https://bugs.webkit.org/show_bug.cgi?id=102913
+
+ Reviewed by Dimitri Glazkov.
+
+ Remove ShadowRoot constructor in favor of Element.webkitCreateShadowRoot().
+
+ No new tests. Update existing tests.
+
+ * dom/ShadowRoot.idl:
+ * page/DOMWindow.idl:
+ * testing/Internals.cpp:
+ (WebCore::Internals::createShadowRoot):
+ (WebCore):
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
+2012-12-11 Antti Koivisto <antti@apple.com>
+
+ Add Element-specific traversal functions
+ https://bugs.webkit.org/show_bug.cgi?id=104685
+
+ Reviewed by Ryosuke Niwa.
+
+ In many cases where we use NodeTraversal we really only want Elements. By having
+ Element specific iteration functions we can tighten the code and make it faster too.
+
+ This patch adds ElementTraversal namespace, similar to NodeTraversal. It also switches
+ bunch of NodeTraversal call sites that obviously only care about elements to using
+ the new interface.
+
+ This should be a speedup too as we avoid number of branches by not having to look
+ for children of non-ContainerNodes and by allowing use of ContainerNode specific
+ accessors.
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::addImageMapChildren):
+ * css/SelectorChecker.cpp:
+ (WebCore::linkAttribute):
+ (WebCore::SelectorChecker::allVisitedStateChanged):
+ (WebCore::SelectorChecker::visitedStateChanged):
+ * css/StyleInvalidationAnalysis.cpp:
+ (WebCore::elementMatchesSelectorScopes):
+ (WebCore::StyleInvalidationAnalysis::invalidateStyle):
+ * dom/ContainerNodeAlgorithms.h:
+ (WebCore::ChildFrameDisconnector::collectDescendant):
+ * dom/Document.cpp:
+ (WebCore::Document::buildAccessKeyMap):
+ (WebCore::Document::updateBaseURL):
+ (WebCore::Document::processBaseElement):
+ * dom/DocumentOrderedMap.cpp:
+ (WebCore::DocumentOrderedMap::get):
+ * dom/Element.cpp:
+ (WebCore::Element::firstElementChild):
+ * dom/Element.h:
+ (WebCore):
+ * dom/ElementShadow.cpp:
+ (WebCore::ElementShadow::collectSelectFeatureSetFrom):
+ * dom/NodeTraversal.h:
+ (ElementTraversal):
+ (WebCore):
+ (WebCore::ElementTraversal::traverseNextElementTemplate):
+ (WebCore::ElementTraversal::next):
+ (WebCore::ElementTraversal::firstWithin):
+ (WebCore::ElementTraversal::traverseNextElementSkippingChildrenTemplate):
+ (WebCore::ElementTraversal::nextSkippingChildren):
+ (NodeTraversal):
+ * dom/TreeScope.cpp:
+ (WebCore::TreeScope::labelElementForId):
+ (WebCore::TreeScope::findAnchor):
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
+ * editing/DeleteSelectionCommand.cpp:
+ (WebCore::DeleteSelectionCommand::handleGeneralDelete):
+ * editing/FrameSelection.cpp:
+ (WebCore::scanForForm):
+ * editing/markup.cpp:
+ (WebCore::completeURLs):
+ * html/HTMLFieldSetElement.cpp:
+ (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
+ (WebCore::HTMLFieldSetElement::childrenChanged):
+ (WebCore::HTMLFieldSetElement::legend):
+ (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::formElementIndex):
+ * html/HTMLLabelElement.cpp:
+ (WebCore::HTMLLabelElement::control):
+ * html/HTMLLegendElement.cpp:
+ (WebCore::HTMLLegendElement::associatedControl):
+ * html/HTMLMapElement.cpp:
+ (WebCore::HTMLMapElement::mapMouseEvent):
+ * html/HTMLNameCollection.cpp:
+ (WebCore::HTMLNameCollection::virtualItemAfter):
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::containsJavaApplet):
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::recalcListItems):
+ * html/shadow/ContentDistributor.cpp:
+ (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):