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):
+ * page/FocusController.cpp:
+ (WebCore::FocusController::findFocusCandidateInContainer):
+ * rendering/RenderCounter.cpp:
+ (WebCore::nextInPreOrder):
+ * svg/SVGSVGElement.cpp:
+ (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
+ * svg/SVGStyledElement.cpp:
+ (WebCore::SVGStyledElement::title):
+ * svg/SVGUseElement.cpp:
+ (WebCore::removeDisallowedElementsFromSubtree):
+ * svg/animation/SMILTimeContainer.cpp:
+ (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
+
+2012-12-11 KyungTae Kim <ktf.kim@samsung.com>
+
+ [soup] Unused parameter in ResourceHandleSoup.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=104728
+
+ Reviewed by Kentaro Hara.
+
+ The soupLogPrinter has unused parameter 'logger',
+ remove the parameter name to fix 'unused parameter' build warning.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::soupLogPrinter):
+
+2012-12-11 Xianzhu Wang <wangxianzhu@chromium.org>
+
+ Fixed position out-of-view check is incorrect when page is scaled
+ https://bugs.webkit.org/show_bug.cgi?id=104303
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Test: compositing/layer-creation/fixed-position-out-of-view-scaled.html
+ compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForPosition): Scale the content rect of the fixed position layer before checking out-of-view.
+
+2012-12-11 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-11 Jun Jiang <jun.a.jiang@intel.com>
+
+ WebGL: Avoid unnecessary memory copy or conversion in texImage2D and texSubImage2D for HTMLVideoElement
+ https://bugs.webkit.org/show_bug.cgi?id=102161
+
+ Reviewed by Kenneth Russell.
+
+ There are several memory copy or conversions in the texImage2D and texSubImage2D for HTMLVideoElement which may be avoided. This patch removes the redundant BackingStore copy if the corresponding Graphics port supports the DontCopyBackingStore behavior. Moreover, it optimizes the AlphaOp if the Image source is from HTMLVideoElement to avoid unnecessary Unmultiply or Premultiply operation in unpack/pack.
+
+ Already covered by current tests.
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore):
+ (WebCore::WebGLRenderingContext::texImage2DImpl):
+ (WebCore::WebGLRenderingContext::texImage2D):
+ (WebCore::WebGLRenderingContext::videoFrameToImage): add a parameter to choose BackingStore copy behavior.
+ (WebCore::WebGLRenderingContext::texSubImage2DImpl):
+ (WebCore::WebGLRenderingContext::texSubImage2D):
+ * html/canvas/WebGLRenderingContext.h:
+ (WebGLRenderingContext):
+ * platform/graphics/GraphicsContext3D.cpp:
+ (WebCore::GraphicsContext3D::ImageExtractor::ImageExtractor):
+ * platform/graphics/GraphicsContext3D.h:
+ (ImageExtractor):
+ (WebCore::GraphicsContext3D::ImageExtractor::imageSourceUnpackAlignment):
+ (WebCore::GraphicsContext3D::ImageExtractor::imageHtmlDomSource):
+ * platform/graphics/ImageBuffer.h:
+ (ImageBuffer):
+ * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
+ (WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
+ * platform/graphics/cairo/ImageBufferCairo.cpp:
+ (WebCore::ImageBuffer::fastCopyImageMode):
+ (WebCore):
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ (WebCore::ImageBuffer::fastCopyImageMode):
+ (WebCore):
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::fastCopyImageMode):
+ (WebCore):
+ * platform/graphics/skia/GraphicsContext3DSkia.cpp:
+ (WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::ImageBuffer::fastCopyImageMode):
+ (WebCore):
+ * platform/graphics/wince/ImageBufferWinCE.cpp:
+ (WebCore::ImageBuffer::fastCopyImageMode):
+ (WebCore):
+ * platform/graphics/wx/ImageBufferWx.cpp:
+ (WebCore::ImageBuffer::fastCopyImageMode):
+ (WebCore):
+
+2012-12-11 Viatcheslav Ostapenko <v.ostapenko@samsung.com>
+
+ [EFL] Missing implementation of GraphicsContext3DPrivate::platformLayerSize()
+ https://bugs.webkit.org/show_bug.cgi?id=104726
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add common implementation of GraphicsContext3DPrivate::platformLayerSize() similar
+ to Qt version. There is nothing platform specific in Qt version.
+
+ Covered by existing tests.
+
+ * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
+ (GraphicsContext3DPrivate::platformLayerSize):
+ * platform/graphics/efl/GraphicsContext3DPrivate.h:
+ (GraphicsContext3DPrivate):
+
+2012-12-11 No'am Rosenthal <noam@webkit.org>
+
+ [Texmap] Slightly improve readability of the antialias shader
+ https://bugs.webkit.org/show_bug.cgi?id=104708
+
+ Reviewed by Martin Robinson.
+
+ Modify the antialiasing shader to include separate function that perform
+ discrete operations, rather than one big function that repeats the same
+ operations.
+
+ No new tests, readability fix.
+
+ * platform/graphics/texmap/TextureMapperShaderManager.cpp:
+ (WebCore::getShaderSpec):
+
+2012-12-11 Tim Horton <timothy_horton@apple.com>
+
+ -webkit-svg-shadow radius changes don't cause children's boundaries to be recomputed
+ https://bugs.webkit.org/show_bug.cgi?id=104722
+ <rdar://problem/12821080>
+
+ Reviewed by Simon Fraser.
+
+ Changes to -webkit-svg-shadow currently cause a relayout of the directly affected renderer
+ and its parents, but not its children. However, children have the shadow radius
+ baked into their cached boundaries, so these need to be invalidated.
+
+ Test: svg/repaint/repaint-webkit-svg-shadow-container.html
+
+ * rendering/RenderObject.h: Expose needsBoundariesUpdate().
+ * rendering/svg/RenderSVGContainer.h: Expose needsBoundariesUpdate().
+ * rendering/svg/RenderSVGImage.h: Expose needsBoundariesUpdate().
+ * rendering/svg/RenderSVGRoot.h: Expose needsBoundariesUpdate().
+ * rendering/svg/RenderSVGShape.h: Expose needsBoundariesUpdate().
+ * rendering/svg/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::layoutChildren): If the renderer has a shadow and
+ is in needs of a boundaries update, mark children as needing boundaries updates too.
+
+2012-12-11 Xianzhu Wang <wangxianzhu@chromium.org>
+
+ Add window.internals.mainThreadScrollReasonsAsText for testing slow scrolling
+ https://bugs.webkit.org/show_bug.cgi?id=104714
+
+ Reviewed by Eric Seidel.
+
+ No new tests. Adds test api for bug 102543 and other bugs.
+
+ * WebCore.exp.in:
+ * page/Page.cpp:
+ (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText): Extracted from ScrollingStateScrollingNode::dumpProperties for layout tests.
+ (WebCore):
+ * page/Page.h:
+ (Page):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
+ (WebCore):
+ * page/scrolling/ScrollingCoordinator.h:
+ (ScrollingCoordinator):
+ * page/scrolling/ScrollingStateScrollingNode.cpp:
+ (WebCore::ScrollingStateScrollingNode::dumpProperties): Moved code for mainThreadScrollingReasons to ScrollingCoordinator.cpp.
+ * testing/Internals.cpp:
+ (WebCore::Internals::mainThreadScrollingReasons):
+ (WebCore):
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
+2012-12-11 Simon Fraser <simon.fraser@apple.com>
+
+ Enhance the TileCache to cache more tiles
+ https://bugs.webkit.org/show_bug.cgi?id=104612
+
+ Reviewed by Tim Horton.
+
+ Add smarts to the TileCache so that it keeps some tiles around
+ for longer and can prepopulate tiles in to-be-scrolled-to regions.
+
+ The new tile management is as follows:
+ * As before, we expand the visible rect to create a "tile coverage rect"
+ which is twice the width, and three times the height of the visible rect.
+ * At the edges, this coverage rect is constrained by them, rather than being
+ truncated as before (leading to larger initial tile coverage).
+ * When tiles leave the coverage rect, we keep them around but track
+ them in cohorts (where a cohort is a set of tiles that left the coverage rect
+ at the same time).
+ * If a repaint comes in for a "secondary" tile, we don't paint it, but mark
+ the tile as being stale. It will get repainted (in full) if it moves back inside
+ the coverage rect.
+ * Cohorts are kept around for 2 seconds after they were created. A repeating
+ 1-second timer clears tiles in old cohorts.
+ * Secondary tiles are pruned if the visible rect changes, or if zooming happens.
+ * TiledBacking exposes a way to prepopulate a rect with tiles; this is called
+ when scrolling (e.g. via Home/End keys). Tiles created this way (if outside
+ the coverage rect) go into a cohort.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::requestScrollPositionUpdate): Tell the TiledBacking
+ to prepopulate some tiles.
+ * platform/graphics/TiledBacking.h:
+ (TiledBacking): Add prepopulateRect().
+ * platform/graphics/ca/mac/TileCache.h:
+ (TileInfo): The TileMap contains TileInfos, which contain a pointer
+ to the layer, their cohort, and a 'stale content' flag.
+ (WebCore::TileCache::TileInfo::TileInfo):
+ (TileCache):
+ (TileCohortInfo):
+ (WebCore::TileCache::TileCohortInfo::TileCohortInfo):
+ * platform/graphics/ca/mac/TileCache.mm:
+ (WebCore::TileCache::TileCache):
+ (WebCore::TileCache::~TileCache):
+ (WebCore::TileCache::setNeedsDisplay):
+ (WebCore::TileCache::setNeedsDisplayInRect):
+ (WebCore::TileCache::setTileNeedsDisplayInRect):
+ (WebCore::TileCache::setScale):
+ (WebCore::TileCache::setAcceleratesDrawing):
+ (WebCore::TileCache::setTilesOpaque):
+ (WebCore::TileCache::prepopulateRect):
+ (WebCore::TileCache::setTileDebugBorderWidth):
+ (WebCore::TileCache::setTileDebugBorderColor):
+ (WebCore::TileCache::computeTileCoverageRect):
+ (WebCore::TileCache::tileSizeForCoverageRect):
+ (WebCore::TileCache::tileRevalidationTimerFired):
+ (WebCore::TileCache::blankPixelCount):
+ (WebCore::queueTileForRemoval):
+ (WebCore::TileCache::removeAllTiles):
+ (WebCore::TileCache::removeAllSecondaryTiles):
+ (WebCore::TileCache::removeTilesInCohort):
+ (WebCore::TileCache::revalidateTiles):
+ (WebCore::TileCache::nextTileCohort):
+ (WebCore::TileCache::startedNewCohort):
+ (WebCore::TileCache::newestTileCohort):
+ (WebCore::TileCache::oldestTileCohort):
+ (WebCore::TileCache::scheduleCohortRemoval):
+ (WebCore::TileCache::cohortRemovalTimerFired):
+ (WebCore::TileCache::ensureTilesForRect):
+ (WebCore::TileCache::tileGridExtent):
+ (WebCore::TileCache::tileCoverageRect):
+ (WebCore::TileCache::tileLayerAtIndex):
+ (WebCore::TileCache::drawTileMapContents):
+
+2012-12-11 Simon Fraser <simon.fraser@apple.com>
+
+ Remove redundant AffineTransform in RenderSVGShape::fillAndStrokeShape()
+ https://bugs.webkit.org/show_bug.cgi?id=104736
+
+ Reviewed by Dean Jackson.
+
+ RenderSVGShape::fillAndStrokeShape() allocated a AffineTransform on
+ the stack which was shadowed by another one in narrower scope. It
+ can be removed.
+
+ * rendering/svg/RenderSVGShape.cpp:
+ (WebCore::RenderSVGShape::fillAndStrokeShape):
+
+2012-12-11 Seokju Kwon <seokju.kwon@gmail.com>
+
+ [EFL] Remove unused headers
+ https://bugs.webkit.org/show_bug.cgi?id=104661
+
+ Reviewed by Ryosuke Niwa.
+
+ Header inclusion cleanup.
+ Remove "NotImplemented.h".
+
+ No new tests, no behavior change.
+
+ * platform/efl/CursorEfl.cpp:
+ * platform/efl/FileSystemEfl.cpp:
+ * platform/efl/ScrollViewEfl.cpp:
+ * platform/efl/ScrollbarThemeEfl.cpp:
+ * platform/efl/SoundEfl.cpp:
+
+2012-12-11 Alec Flett <alecflett@chromium.org>
+
+ IndexedDB: Stub out data operations on IDBDatabaseBackendInterface
+ https://bugs.webkit.org/show_bug.cgi?id=104592
+
+ Reviewed by Dimitri Glazkov.
+
+ In preparation for removing objectStore/index backend
+ interfaces, stub out the basic data operations around
+ get, put, cursors, etc. on IDBDatabaseBackendInterface.
+
+ No new tests, this is just preparation for refactoring.
+
+ * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+ (WebCore::IDBDatabaseBackendImpl::get):
+ (WebCore):
+ (WebCore::IDBDatabaseBackendImpl::put):
+ (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
+ (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
+ (WebCore::IDBDatabaseBackendImpl::openCursor):
+ (WebCore::IDBDatabaseBackendImpl::count):
+ (WebCore::IDBDatabaseBackendImpl::deleteRange):
+ (WebCore::IDBDatabaseBackendImpl::clear):
+ * Modules/indexeddb/IDBDatabaseBackendImpl.h:
+ (IDBDatabaseBackendImpl):
+ * Modules/indexeddb/IDBDatabaseBackendInterface.h:
+ (WebCore):
+ (IDBDatabaseBackendInterface):
+
+2012-12-11 Roger Fong <roger_fong@apple.com>
+
+ Make Video Track compile on Windows in debug mode.
+ https://bugs.webkit.org/show_bug.cgi?id=104720.
+
+ Reviewed by Alexey Proskuryakov.
+
+ urlForLogging method was defined in both HTMLMediaElement.cpp and HTMLTrackElement.cpp.
+ On Windows all the HTMLElements sources are included in an AllInOne source file,
+ so the definitions conflicted. Fixed by renaming the definition in each source file.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::urlForLoggingMedia):
+ (WebCore::HTMLMediaElement::loadResource):
+ (WebCore::HTMLMediaElement::isSafeToLoadURL):
+ (WebCore::HTMLMediaElement::didRemoveTrack):
+ (WebCore::HTMLMediaElement::selectNextSourceChild):
+ (WebCore::HTMLMediaElement::sourceWasAdded):
+ (WebCore::HTMLMediaElement::sourceWasRemoved):
+ * html/HTMLTrackElement.cpp:
+ (WebCore::urlForLoggingTrack):
+ (WebCore::HTMLTrackElement::canLoadUrl):
+
+2012-12-11 Ryosuke Niwa <rniwa@webkit.org>
+
+ Mail hangs when resizing the font size of a large RTL text
+ https://bugs.webkit.org/show_bug.cgi?id=104643
+
+ Reviewed by Enrica Casucci.
+
+ The bug was caused by ApplyStyleCommand::applyInlineStyleToNodeRange obtaining computed styles while
+ removing and adding nodes. Fixed the slowness by breaking it into three phases:
+ 1. Split the range into contiguous inline runs, and determine whether styles need to be removed or applied.
+ 2. Remove any conflicting styles, and insert dummy elements at positions where inline styles ought to be
+ computed as needed.
+ 3. Remove the dummy elements and apply ilnine styles as needed.
+
+ No new tests are added since there is no behavior change. This is just a performance improvement.
+
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::InlineRunToApplyStyle::InlineRunToApplyStyle):
+ (WebCore::InlineRunToApplyStyle::startAndEndAreStillInDocument):
+ (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
+ (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
+ (WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
+ (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
+ (WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange):
+ (WebCore::ApplyStyleCommand::applyInlineStyleChange):
+ * editing/ApplyStyleCommand.h:
+ * editing/EditingStyle.h:
+ (WebCore::StyleChange::StyleChange):
+
+2012-12-11 Xianzhu Wang <wangxianzhu@chromium.org>
+
+ Incorrect position of layers for fixed position elements when page is scaled smaller than viewport
+ https://bugs.webkit.org/show_bug.cgi?id=104294
+
+ Reviewed by James Robinson.
+
+ Fixed issue in scrollOffsetForFixedPosition when contentRect is smaller than visibleContentRect.
+ This happens when a page originally bigger than viewport is scaled down to smaller than the viewport.
+
+ Test: compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html
+
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::fixedPositionScrollOffset): Moved common code in scrollOffsetForFixedPosition here. Fixed issue when contentsSize < visibleContentSize.
+ (WebCore::scrollOffsetForFixedPosition):
+
+2012-12-11 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=104725
+ Crash in EventHandler::selectCursor() on Mac bots running
+ fast/events/mouse-cursor-image-set.html
+
+ Reviewed by Tim Horton.
+
+ https://bugs.webkit.org/show_bug.cgi?id=99493 enabled image-set for
+ the CSS cursor property. Most of the change is guarded behind #if
+ ENABLE(MOUSE_CURSOR_SCALE). However, image-set was still allowed to
+ parse for the cursor property as long as image-set is enabled
+ (which is the current state on the Mac). This would lead to an
+ inconsistent state where style information would reflect a world
+ where mouse cursor scaling is enabled even though nothing else on
+ the Mac would.
+
+ The parsing should also be guarded by the cursor scaling flag.
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+
+2012-12-11 Emil A Eklund <eae@chromium.org>
+
+ Clamp out-of-range numbers in CSS
+ https://bugs.webkit.org/show_bug.cgi?id=102735
+
+ Reviewed by Simon Fraser.
+
+ Currently when a large number (outside of the supported range)
+ is applied from a style rule or set from javascript using
+ Element.style we check if it is within the supported range and
+ set it to zero if it is not. This is incorrect and confusing.
+
+ Change it to clamp values to the supported range. This matches
+ the behavior in Gecko.
+
+ Test: fast/css/large-numbers.html
+
+ * css/CSSPrimitiveValue.cpp:
+ (WebCore::CSSPrimitiveValue::computeLength):
+ Change to clamp out-of-range values instead of interpreting them
+ as zero.
+
+2012-12-11 Nate Chapin <japhet@chromium.org>
+
+ Ensure ResourceRequests for main resources include fragment indentifiers when necessary,
+ regressed by r137333.
+ https://bugs.webkit.org/show_bug.cgi?id=104721
+
+ Rubber-stamped by Dimitri Glazkov.
+
+ No new tests.
+
+ * loader/SubresourceLoader.cpp:
+ (WebCore::SubresourceLoader::willSendRequest):
+
+2012-12-11 Huang Dongsung <luxtella@company100.net>
+
+ [GTK] REGRESSION(r135620): Accelerated Compositing does not draw some pages.
+ https://bugs.webkit.org/show_bug.cgi?id=104640
+
+ Reviewed by Noam Rosenthal.
+
+ After r135620, Accelerated Compositing does not draw some pages, because
+ r135620 changes the tree-traversal behavior. Before r135620, we
+ returned early if TextureMapperLayer can not get TextureMapper from the
+ root layer. However, after r135620, we run the tree-traversal even if
+ TextureMapperLayer can not get TextureMapper. This patch makes
+ TextureMapperLayer return early like code before r135620.
+
+ Covered by existing tests.
+
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
+
+2012-12-11 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/12771885> Support ruby-position: {before, after}
+ https://bugs.webkit.org/show_bug.cgi?id=103569
+
+ Reviewed by Anders Carlsson.
+
+ Specified in <http://www.w3.org/TR/2011/WD-css3-ruby-20110630/#rubypos>, the ruby-position
+ property takes four values: before, after, inter-character, and inline. This change adds
+ support for the values before and after.
+
+ Test: fast/ruby/position-after.html
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle ruby-position.
+ * css/CSSParser.cpp:
+ (WebCore::isValidKeywordPropertyAndValue): Accept before and after as valid values for
+ ruby-position.
+ (WebCore::isKeywordPropertyID): Added ruby-position to the list of properties with keyword
+ values.
+ (WebCore::CSSParser::parseValue): Added ruby-position to the switch statement.
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from RubyPosition.
+ (WebCore::CSSPrimitiveValue::operator RubyPosition): Added mapping from CSSPrimitiveValue.
+ * css/CSSProperty.cpp:
+ (WebCore::CSSProperty::isInheritedProperty): Added ruby-position as an inherited property.
+ * css/CSSPropertyNames.in: Added -webkit-ruby-position.
+ * css/CSSValueKeywords.in: Added after and before.
+ * css/StyleBuilder.cpp:
+ (WebCore::StyleBuilder::StyleBuilder): Added a handler for ruby-position.
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::applyProperty): Added ruby-position.
+ * rendering/InlineFlowBox.cpp:
+ (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Changed to choose which of
+ hasAnnotationsBefore and hasAnnotationsAfter to set based on ruby position.
+ (WebCore::InlineFlowBox::computeOverAnnotationAdjustment): Changed to adjust only for
+ ruby positioned before the base.
+ (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment): Added adjustment for ruby
+ positioned after the base.
+ * rendering/RenderRubyRun.cpp:
+ (WebCore::RenderRubyRun::layout): Account for ruby-position when positioning the ruby text
+ relative to the base.
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::diff): Made a ruby-position difference a layout difference.
+ * rendering/style/RenderStyle.h: Added rubyPosition(), setRubyPosition(), and
+ initialRubyPosition().
+ * rendering/style/RenderStyleConstants.h: Added the RubyPosition enum.
+ * rendering/style/StyleRareInheritedData.cpp:
+ (WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialized for
+ m_rubyPosition. Added copying the value of this member to the copy constructor.
+ (WebCore::StyleRareInheritedData::operator==): Added comparison of m_rubyPosition.
+ * rendering/style/StyleRareInheritedData.h:
+ (StyleRareInheritedData): Added m_rubyPosition member variable.
+
+2012-12-11 Michael Pruett <michael@68k.org>
+
+ [JSC] Add tests for explicit serialization values
+ https://bugs.webkit.org/show_bug.cgi?id=104423
+
+ Reviewed by Oliver Hunt.
+
+ Add tests for serialization and deserialization mechanisms of
+ the JSC implementation of SerializedScriptValue. Similar tests
+ already exist for the V8 implementation.
+
+ Test: platform/jsc/fast/storage/serialized-script-value.html
+
+ * WebCore.exp.in:
+ * testing/Internals.cpp:
+ (WebCore::Internals::serializeObject):
+ (WebCore::Internals::deserializeBuffer):
+
+2012-12-11 Alexis Menard <alexis@webkit.org>
+
+ Cleanup: Use consistent naming in CSSParser when dealing with the forward slash operator.
+ https://bugs.webkit.org/show_bug.cgi?id=104699
+
+ Reviewed by Daniel Bates.
+
+ http://trac.webkit.org/changeset/136525 added an helper function to
+ check if a CSSParserValue is a forward slash operator.
+ BorderImageParseContext is also dealing with the forward slash operator
+ but its naming is inconsistent with isForwardSlashOperator(). This is
+ fixed with this patch where BorderImageParseContext::{allowSlash,
+ commitSlash}() is now replaced by BorderImageParseContext::{allowForwardSlashOperator,
+ commitForwardSlashOperator}().
+
+ No new tests : just a renaming, covered by existing tests..
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseFillPosition): A little fixup on the way, use
+ isForwardSlashOperator() instead of the current code here.
+ (WebCore::BorderImageParseContext::BorderImageParseContext):
+ (WebCore::BorderImageParseContext::allowForwardSlashOperator):
+ (WebCore::BorderImageParseContext::commitImage):
+ (WebCore::BorderImageParseContext::commitImageSlice):
+ (WebCore::BorderImageParseContext::commitForwardSlashOperator):
+ (WebCore::BorderImageParseContext::commitBorderWidth):
+ (WebCore::BorderImageParseContext::commitBorderOutset):
+ (WebCore::BorderImageParseContext::commitRepeat):
+ (BorderImageParseContext):
+ (WebCore::CSSParser::parseBorderImage):
+
+2012-12-11 Nate Chapin <japhet@chromium.org>
+
+ cr-linux valgrind is showing leaks due to r137333.
+
+ Rubber-stamped by Antti Koivisto.
+
+ MainResourceLoader's destructor should call m_resource->removeClient(this) is m_resource is still non-null.
+ The missing removeClient() call will leak the CachedResource.
+
+ No new tests, should shut valgrind up.
+
+ * loader/MainResourceLoader.cpp:
+ (WebCore::MainResourceLoader::~MainResourceLoader):
+
+2012-12-11 Andreas Kling <akling@apple.com>
+
+ REGRESSION(r133492): Heap-use-after-free in WebCore::Element::normalizeAttributes
+ <http://webkit.org/b/104488>
+
+ Reviewed by Antti Koivisto.
+
+ Don't cache the AttrNodeList* in a local when iterating over an Element's Attr nodes since
+ that pointer may go stale if JS runs in response to a DOMSubtreeModified event below Node::normalize().
+
+ Test: fast/dom/normalize-attributes-mutation-event-crash.html
+
+ * dom/Element.cpp:
+ (WebCore::Element::normalizeAttributes):
+
+2012-12-11 Jonathon Jongsma <jonathon.jongsma@collabora.co.uk>
+
+ [GTK] Soup network logs are frequently interrupted by other logging messages
+ https://bugs.webkit.org/show_bug.cgi?id=104668
+
+ Reviewed by Martin Robinson.
+
+ Set an external soup log printer that uses the WebKit logging
+ infrastructure so that log messages are properly synchronized.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::soupLogPrinter):
+ (WebCore):
+ (WebCore::ensureSessionIsInitialized):
+
+2012-12-11 Elliott Sprehn <esprehn@chromium.org>
+
+ Switch to new PseudoElement based :before and :after
+ https://bugs.webkit.org/show_bug.cgi?id=104462
+
+ Reviewed by Antti Koivisto.
+
+ Switch to the new PseudoElement based generated content implementation
+ that moves :before and :after into the DOM. This also switches to using
+ the ComposedShadowTreeWalker for determining the siblings of PseudoElement's
+ making the new generated content implementation support adding :before
+ and :after into <input> elements.
+
+ Tests: fast/css-generated-content/block-inside-inline.html
+ fast/css-generated-content/box-orient.html
+
+ * dom/ComposedShadowTreeWalker.cpp:
+ (WebCore::ComposedShadowTreeWalker::pseudoAwareNextSibling):
+ (WebCore):
+ (WebCore::ComposedShadowTreeWalker::pseudoAwarePreviousSibling):
+ (WebCore::ComposedShadowTreeWalker::traverseParent):
+ * dom/ComposedShadowTreeWalker.h:
+ (ComposedShadowTreeWalker):
+ * dom/Element.cpp:
+ (WebCore::Element::attach):
+ (WebCore::Element::recalcStyle):
+ * dom/Node.cpp:
+ * dom/Node.h:
+ (Node):
+ * dom/NodeRenderingContext.cpp:
+ (WebCore::NodeRenderingContext::nextRenderer):
+ (WebCore::NodeRenderingContext::previousRenderer):
+ (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
+ * dom/Position.cpp:
+ (WebCore::Position::Position):
+ (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
+ * editing/visible_units.cpp:
+ (WebCore::logicallyPreviousBox):
+ (WebCore::logicallyNextBox):
+ (WebCore::startPositionForLine):
+ (WebCore::endPositionForLine):
+ * html/HTMLTextFormControlElement.cpp:
+ (WebCore::HTMLTextFormControlElement::childShouldCreateRenderer):
+ * page/DragController.cpp:
+ (WebCore::DragController::draggableNode):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::styleDidChange):
+ (WebCore::RenderBlock::splitBlocks):
+ (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
+ (WebCore::RenderBlock::createReplacementRunIn):
+ (WebCore::RenderBlock::isSelectionRoot):
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderButton.cpp:
+ * rendering/RenderButton.h:
+ (RenderButton):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::styleDidChange):
+ (WebCore::RenderInline::addChildIgnoringContinuation):
+ (WebCore::RenderInline::splitInlines):
+ * rendering/RenderListItem.cpp:
+ (WebCore::RenderListItem::updateMarkerLocation):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::createVisiblePosition):
+ * rendering/RenderObject.h:
+ (WebCore::RenderObject::nonPseudoNode):
+ (RenderObject):
+ (WebCore::RenderObject::clearNode):
+ (WebCore::RenderObject::generatingNode):
+ * rendering/RenderObjectChildList.cpp:
+ * rendering/RenderObjectChildList.h:
+ (RenderObjectChildList):
+ * rendering/RenderRubyText.cpp:
+ * rendering/RenderRubyText.h:
+ (RenderRubyText):
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::styleDidChange):
+ * rendering/RenderTableRow.h:
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::addChild):
+ * rendering/RenderWidget.cpp:
+ (WebCore::RenderWidget::destroy):
+
+2012-12-11 Jacky Jiang <zhajiang@rim.com>
+
+ [BlackBerry] Clean up unused defaultViewportArguments in RenderThemeBlackBerry.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=104683
+
+ Reviewed by Rob Buis.
+
+ * platform/blackberry/RenderThemeBlackBerry.cpp:
+ (WebCore::determineFullScreenMultiplier):
+
+2012-12-11 Nate Chapin <japhet@chromium.org>
+
+ Route main resource loads through the memory cache.
+ https://bugs.webkit.org/show_bug.cgi?id=49246
+
+ Reviewed by Antti Koivisto.
+
+ 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-11 Aaron Colwell <acolwell@chromium.org>
+
+ Update MediaSource to allow append() calls in "ended" state.
+ https://bugs.webkit.org/show_bug.cgi?id=104581
+
+ Reviewed by Eric Carlson.
+
+ Updated append and setTimestampOffset to allow appending in the "ended" readyState. An append() call
+ in the "ended" state now triggers a transition to the "open" state and allows the append to succeed.
+
+ Tests: http/tests/media/media-source/video-media-source-append-in-ended-state.html
+ http/tests/media/media-source/video-media-source-append-with-offset-in-ended-state.html
+ http/tests/media/media-source/video-media-source-zero-byte-append-in-ended-state.html
+
+ * Modules/mediasource/MediaSource.cpp:
+ (WebCore::MediaSource::append):
+ (WebCore::MediaSource::setTimestampOffset):
+
+2012-12-11 Robert Hogan <robert@webkit.org>
+
+ REGRESSION(r121789): Text not wrapping in presence of floating objects
+ https://bugs.webkit.org/show_bug.cgi?id=101803
+
+ Reviewed by David Hyatt.
+
+ When determining if a line needs to offset to avoid any floats use RenderBlock::lineHeight()
+ to estimate the height of the line. If the container has floats stacked up with different widths
+ that straddle the line, using a height of zero will make the first line think it has
+ more width available than it actually does and it will end up extruding from its container.
+
+ The logic for finding the offset of inline blocks and images needs to use a similar heuristic.
+ So nextLineBreak() now updates the available width if it encounters a replaced element (e.g. inline block,
+ image) at the start of a line, using the height of the element to decide which floats to avoid.
+ RenderBlock::computeInlineDirectionPositionsForLine() does the same thing when laying out the line.
+
+ Tests: fast/block/float/floats-offset-image-quirk-lineheight.html
+ fast/block/float/floats-offset-image-quirk.html
+ fast/block/float/floats-offset-image-strict-lineheight.html
+ fast/block/float/floats-offset-image-strict.html
+ fast/block/float/floats-offset-inline-block-quirk-lineheight.html
+ fast/block/float/floats-offset-inline-block-strict-lineheight.html
+ fast/block/float/floats-offset-linebox-contain-block.html
+ fast/block/float/floats-offset-linebox-contain-inline.html
+ fast/block/float/floats-wrap-inside-inline-006.html
+ fast/block/float/floats-wrap-inside-inline-007.html
+
+ * rendering/RenderBlockLineLayout.cpp:
+ (LineWidth):
+ (WebCore::logicalHeightForLine):
+ This method needs to cope with the quirk where an image alone on a line will get its descent stripped away so
+ ignore the height of the line and use the height of the image in that case.
+ (WebCore::LineWidth::updateAvailableWidth):
+ (WebCore::updateLogicalInlinePositions):
+ (WebCore):
+ (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
+ (WebCore::RenderBlock::computeInlineDirectionPositionsForSegment):
+ (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
+
+2012-12-11 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Install GObject DOM bindings headers in its own directory
+ https://bugs.webkit.org/show_bug.cgi?id=104663
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Move the headers from webkit to webkitdom directory.
+
+ * bindings/gobject/GNUmakefile.am:
+ * bindings/gobject/WebKitDOMBinding.h:
+ * bindings/gobject/WebKitDOMCustom.h:
+ * bindings/gobject/WebKitDOMEventTarget.h:
+ * bindings/gobject/WebKitDOMEventTargetPrivate.h:
+ * bindings/gobject/WebKitDOMObject.h:
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ (Generate):
+ (WriteData):
+ * bindings/scripts/gobject-generate-headers.pl:
+ * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
+ * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestException.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
+
+2012-12-11 Mark Pilgrim <pilgrim@chromium.org>
+
+ [Chromium] Clean up unused interfaces in PlatformSupport
+ https://bugs.webkit.org/show_bug.cgi?id=104674
+
+ Reviewed by Darin Fisher.
+
+ Part of a refactoring series. See tracking bug 82948. Also, there
+ were some function declarations that were supposed to be removed
+ as part of bug 102699 but got left out of the final patch.
+
+ * platform/chromium/PlatformSupport.h:
+ (WebCore):
+ (PlatformSupport):
+
+2012-12-11 Joone Hur <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com>
+
+ [GTK] Update GraphicsLayerClutter
+ https://bugs.webkit.org/show_bug.cgi?id=92045
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Add more methods to GraphicsLayerClutter in order to run CSS 3D transforms
+ by using GraphicsLayerActor.
+
+ No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
+ compositing and 3D transforms.
+
+ * platform/graphics/clutter/GraphicsLayerClutter.cpp:
+ (WebCore):
+ (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
+ (WebCore::idleDestroy):
+ (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
+ (WebCore::GraphicsLayerClutter::setName):
+ (WebCore::GraphicsLayerClutter::platformLayer): Returns the platform layer(ClutterAcotr).
+ (WebCore::GraphicsLayerClutter::setNeedsDisplay): Update the display.
+ (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect): Update part of the Display.
+ (WebCore::GraphicsLayerClutter::setAnchorPoint):
+ (WebCore::GraphicsLayerClutter::setPosition):
+ (WebCore::GraphicsLayerClutter::setSize):
+ (WebCore::GraphicsLayerClutter::setTransform):
+ (WebCore::GraphicsLayerClutter::setDrawsContent):
+ (WebCore::GraphicsLayerClutter::setParent):
+ (WebCore::GraphicsLayerClutter::setChildren):
+ (WebCore::GraphicsLayerClutter::addChild):
+ (WebCore::GraphicsLayerClutter::addChildAtIndex):
+ (WebCore::GraphicsLayerClutter::addChildBelow):
+ (WebCore::GraphicsLayerClutter::addChildAbove):
+ (WebCore::GraphicsLayerClutter::replaceChild):
+ (WebCore::GraphicsLayerClutter::removeFromParent):
+ (WebCore::GraphicsLayerClutter::platformClutterLayerPaintContents):
+ (WebCore::GraphicsLayerClutter::platformClutterLayerAnimationStarted):
+ (WebCore::GraphicsLayerClutter::repaintLayerDirtyRects):
+ (WebCore::GraphicsLayerClutter::computePositionRelativeToBase):
+ (WebCore::GraphicsLayerClutter::flushCompositingState): Synchronize the corresponding Actors with the current
+ compositing states of this GraphicsLayer and its child layers.
+ (WebCore::GraphicsLayerClutter::recursiveCommitChanges):
+ (WebCore::GraphicsLayerClutter::flushCompositingStateForThisLayerOnly): Commit batched changes non-recursively.
+ (WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers): Reset layer changes after we recurse on children.
+ (WebCore::GraphicsLayerClutter::noteSublayersChanged):
+ (WebCore::GraphicsLayerClutter::noteLayerPropertyChanged):
+ (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers): Commit layer changes before we recurse on children.
+ (WebCore::GraphicsLayerClutter::updateGeometry): Updated the position and size of the Actor.
+ (WebCore::GraphicsLayerClutter::updateSublayerList): Updated the list of child Actors.
+ (WebCore::GraphicsLayerClutter::updateLayerNames):
+ (WebCore::GraphicsLayerClutter::updateTransform):
+ (WebCore::GraphicsLayerClutter::updateLayerDrawsContent):
+ (WebCore::GraphicsLayerClutter::layerForSuperlayer):
+ * platform/graphics/clutter/GraphicsLayerClutter.h:
+ (WebCore):
+ (WebCore::GraphicsLayerClutter::primaryLayer):
+ (GraphicsLayerClutter):
+
+2012-12-11 Jessie Berlin <jberlin@apple.com>
+
+ Revert incorrect build fix.
+
+ * WebCore.exp.in:
+
+2012-12-11 Jessie Berlin <jberlin@apple.com>
+
+ Fix the Mac build after r137261
+
+ * WebCore.exp.in:
+
+2012-12-11 Joone Hur <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com>
+
+ [GTK] Add GraphicsLayerActor
+ https://bugs.webkit.org/show_bug.cgi?id=91940
+
+ Reviewed by Gustavo Noronha Silva.
+
+ GraphicsLayerActor, which is a new ClutterActor, represents a node in the GPU-renderable layer tree
+ when accelerated compositing is enabled with Clutter as acceleration backend.
+ This patch allows to support basic features of CSS 3D Transforms.
+
+ No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
+ compositing and 3D transforms.
+
+ * GNUmakefile.list.am:
+ * platform/graphics/clutter/GraphicsLayerActor.cpp: Added.
+ (_GraphicsLayerActorPrivate):
+ (graphics_layer_actor_class_init): GObject configuration of a new Clutter Actor.
+ (graphics_layer_actor_init): Initialization of the private data of this actor.
+ (graphicsLayerActorSetProperty): GObject property setter.
+ (graphicsLayerActorGetProperty): GObject property getter.
+ (graphicsLayerActorDispose): Called to drop all references to other objects.
+ (graphicsLayerActorAllocate): Called to set the coordinates of an actor.
+ (graphicsLayerActorApplyTransform): Applying the transformation to an actor before painting it.
+ (graphicsLayerActorPaint): Called to paint the actor.
+ (graphicsLayerActorDraw): Called each time a ClutterCairoTexture has been invalidated.
+ (graphicsLayerActorAdded): Called each time an actor has been added to container.
+ (graphicsLayerActorRemoved): Called each time an actor is removed from container.
+ (graphicsLayerActorNew): Create a specific layer type of GraphicsLayerActor object.
+ (graphicsLayerActorNewWithClient): Create a specific layer type of GraphicsLayerActor object with
+ its PlatformClutterClientLayer.
+ (graphicsLayerActorSetClient): Added setter to set the PlatformClutterClientLayer.
+ (graphicsLayerActorGetClient): Added getter to get the PlatformClutterClientLayer.
+ (graphicsLayerActorRemoveAll): Remove all child actors.
+ (graphicsLayerUpdateTexture): Create a ClutterCairoTexture.
+ (graphicsLayerActorGetSurface): Added setter to set a cairo_surface_t.
+ (graphicsLayerActorSetSurface): Added getter to get the cairo_surface_t.
+ (graphicsLayerActorInvalidateRectangle):
+ (graphicsLayerActorSetTransform): Set a CoglMatrix to apply matrix transform.
+ (graphicsLayerActorSetAnchorPoint):
+ (graphicsLayerActorGetAnchorPoint):
+ (graphicsLayerActorSetScrollPosition):
+ (graphicsLayerActorGetnChildren):
+ (graphicsLayerActorReplaceSublayer):
+ (graphicsLayerActorInsertSublayer):
+ (graphicsLayerActorSetSublayers):
+ (graphicsLayerActorGetLayerType):
+ (graphicsLayerActorSetLayerType):
+ (graphicsLayerActorSetTranslateX):
+ (graphicsLayerActorGetTranslateX):
+ (graphicsLayerActorSetTranslateY):
+ (graphicsLayerActorGetTranslateY):
+ (graphicsLayerActorSetDrawsContent): Added setter to paint content inside a layer.
+ (graphicsLayerActorGetDrawsContent): Added getter to get the value of the drawsContent.
+ * platform/graphics/clutter/GraphicsLayerActor.h: Added.
+ (_GraphicsLayerActor):
+ (_GraphicsLayerActorClass):
+ * platform/graphics/clutter/GraphicsLayerClutter.h:
+ (WebCore):
+
+2012-12-11 Mike West <mkwst@chromium.org>
+
+ Web Inspector: ConsoleTypes should not expose MessageType - it should be private to inspector.
+ https://bugs.webkit.org/show_bug.cgi?id=66371
+
+ Reviewed by Pavel Feldman.
+
+ We can simplify console message generation a bit, as nothing outside the
+ Console object itself will generate messages of any type other than
+ LogMessageType. This patch refactors the externally-facing API endpoints
+ on ScriptExecutionContext and Console to drop the MessageType parameter,
+ moves the MessageType enum into a new InspectorConsoleTypes.h header,
+ and updates all the call sites (and ChromeClients) to drop the parameter
+ from their interfaces.
+
+ As a temporary bandage for ports using this interface, this patch
+ includes aliases for the new methods that retain the old interface.
+ I'll remove them in a future patch.
+
+ Here, we only refactor an internal interface. No tests should break.
+
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ We added a new file! OMG!
+ * Modules/webaudio/AudioBufferSourceNode.cpp:
+ (WebCore::AudioBufferSourceNode::looping):
+ (WebCore::AudioBufferSourceNode::setLooping):
+ * Modules/webdatabase/AbstractDatabase.cpp:
+ (WebCore::AbstractDatabase::logErrorMessage):
+ * Modules/websockets/WebSocket.cpp:
+ (WebCore::WebSocket::connect):
+ (WebCore::WebSocket::send):
+ (WebCore::WebSocket::close):
+ (WebCore::WebSocket::setBinaryType):
+ * Modules/websockets/WebSocketChannel.cpp:
+ (WebCore::WebSocketChannel::fail):
+ (WebCore::WebSocketChannel::didFailSocketStream):
+ * bindings/js/JSCustomXPathNSResolver.cpp:
+ (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
+ * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
+ (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
+ * css/MediaList.cpp:
+ (WebCore::addResolutionWarningMessageToConsole):
+ * dom/Document.cpp:
+ (WebCore::Document::logExceptionToConsole):
+ (WebCore::Document::processHttpEquiv):
+ (WebCore::Document::addMessage):
+ * dom/Document.h:
+ (Document):
+ * dom/ScriptElement.cpp:
+ (WebCore::ScriptElement::notifyFinished):
+ * dom/ScriptExecutionContext.cpp:
+ (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask):
+ (WebCore::ScriptExecutionContext::addConsoleMessage):
+ * dom/ScriptExecutionContext.h:
+ (ScriptExecutionContext):
+ (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create):
+ (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
+ * dom/ViewportArguments.cpp:
+ (WebCore::reportViewportWarning):
+ * fileapi/WebKitBlobBuilder.cpp:
+ (WebCore::BlobBuilder::append):
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::shouldAutofocus):
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::validateInteractively):
+ * html/HTMLIFrameElement.cpp:
+ (WebCore::HTMLIFrameElement::parseAttribute):
+ * html/HTMLTrackElement.cpp:
+ (WebCore::HTMLTrackElement::canLoadUrl):
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::getImageData):
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore):
+ (WebCore::WebGLRenderingContext::printWarningToConsole):
+ * html/parser/XSSAuditor.cpp:
+ (WebCore::XSSAuditor::init):
+ (WebCore::XSSAuditor::filterToken):
+ * inspector/ConsoleAPITypes.h: Added.
+ (WebCore):
+ * inspector/ConsoleMessage.h:
+ * inspector/InspectorConsoleAgent.h:
+ * inspector/InspectorDebuggerAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ * inspector/InspectorInstrumentation.h:
+ * inspector/InspectorProfilerAgent.cpp:
+ * loader/EmptyClients.h:
+ (WebCore::EmptyChromeClient::addMessageToConsole):
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::reportLocalLoadFailed):
+ (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
+ * loader/ImageLoader.cpp:
+ (WebCore::ImageLoader::notifyFinished):
+ * loader/MainResourceLoader.cpp:
+ (WebCore::MainResourceLoader::didReceiveResponse):
+ * loader/MixedContentChecker.cpp:
+ (WebCore::MixedContentChecker::logWarning):
+ * loader/TextTrackLoader.cpp:
+ (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ (WebCore::ApplicationCacheGroup::abort):
+ (WebCore::ApplicationCacheGroup::didReceiveResponse):
+ (WebCore::ApplicationCacheGroup::didFinishLoading):
+ (WebCore::ApplicationCacheGroup::didFail):
+ (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
+ (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
+ (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::printAccessDeniedMessage):
+ * page/ChromeClient.h:
+ (ChromeClient):
+ Drop LogMessageType from everywhere.
+ * page/Console.cpp:
+ (WebCore::Console::addMessage):
+ (WebCore::internalAddMessage):
+ (WebCore::Console::error):
+ (WebCore::Console::log):
+ (WebCore::Console::warn):
+ (WebCore::Console::dir):
+ (WebCore::Console::dirxml):
+ (WebCore::Console::clear):
+ (WebCore::Console::trace):
+ (WebCore::Console::assertCondition):
+ * page/Console.h:
+ (Console):
+ Create a new internalAddMessage that's used for the various
+ Console message types. Everything else routes through
+ ::addMessage.
+ * page/ConsoleTypes.h:
+ Drop MessageTypes from this file, add it to ConsoleAPIType.h
+ * page/ContentSecurityPolicy.cpp:
+ (WebCore::ContentSecurityPolicy::logToConsole):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
+ (WebCore::DOMWindow::printErrorMessage):
+ * page/EventSource.cpp:
+ (WebCore::EventSource::didReceiveResponse):
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::reportMessage):
+ * workers/DefaultSharedWorkerRepository.cpp:
+ (SharedWorkerProxy):
+ (WebCore::postConsoleMessageTask):
+ (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
+ * workers/SharedWorkerContext.cpp:
+ (WebCore::SharedWorkerContext::logExceptionToConsole):
+ * workers/WorkerContext.cpp:
+ (WebCore::WorkerContext::addMessage):
+ (WebCore::WorkerContext::addMessageToWorkerConsole):
+ * workers/WorkerContext.h:
+ (WorkerContext):
+ * workers/WorkerMessagingProxy.cpp:
+ (WebCore::postConsoleMessageTask):
+ (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
+ * workers/WorkerMessagingProxy.h:
+ (WorkerMessagingProxy):
+ * workers/WorkerReportingProxy.h:
+ (WorkerReportingProxy):
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::logConsoleError):
+ (WebCore::XMLHttpRequest::send):
+ * xml/XSLTProcessorLibxslt.cpp:
+ (WebCore::XSLTProcessor::parseErrorFunc):
+ * xml/XSLTProcessorQt.cpp:
+ (WebCore::XSLTMessageHandler::handleMessage):
+ Drop LogMessageType from everywhere.
+
+2012-12-11 Simon Hausmann <simon.hausmann@digia.com>
+
+ [Qt] Unreviewed, rolling out r137313 and r137316 because they broke the system-sqlite build.
+
+ * WebCore.pri:
+
+2012-12-11 Simon Hausmann <simon.hausmann@digia.com>
+
+ Unreviewed Qt build fix: Don't error out if SQLITE3SRCDIR isn't set but
+ we have a system sqlite to use.
+
+ * WebCore.pri:
+
+2012-12-11 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
+
+ [Qt] make qtbase source requirement explicit
+
+ Reviewed by Simon Hausmann.
+
+ getting rid of QT.<module>.sources references, as they don't go well
+ with real modularization.
+
+ * WebCore.pri:
+
+2012-12-11 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
+
+ [Qt] move SQLITE3SRCDIR assignment to only use site
+
+ Reviewed by Simon Hausmann.
+
+ Target.pri includes WebCore.pri the almost first thing, so that is
+ covered as well.
+
+ * WebCore.pri:
+
+2012-12-11 Eugene Klyuchnikov <eustas@chromium.org>
+
+ Web Inspector: Timeline: rename "Parse" to "Parse HTML".
+ https://bugs.webkit.org/show_bug.cgi?id=104639
+
+ Reviewed by Yury Semikhatsky.
+
+ "Parse" sounds ambiguous, it could mean JSON.parse() or Date.parse().
+ "Parse HTML" is a much more clear record description.
+
+ * inspector/front-end/TimelinePresentationModel.js: Fix text.
+
+2012-12-11 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
+
+ [Qt] change setup of QMAKE_MOC
+
+ Reviewed by Simon Hausmann.
+
+ don't load(moc) explicitly - turns out that this breaks
+ debug_and_release builds (the feature does not like being loaded before
+ default_post has been loaded).
+ so instead just do a minimal call to find the moc executable.
+
+ as it's in fact only two files which need it, so de-centralize this call
+ for the sake of saving some cpu cycles spent in qmake.
+
+ * DerivedSources.pri:
+
+2012-12-11 Alexander Pavlov <apavlov@chromium.org>
+
+ REGRESSION(r136948): inspector/styles/import-pseudoclass-crash.html hits an assertion
+ https://bugs.webkit.org/show_bug.cgi?id=104473
+
+ Reviewed by Vsevolod Vlasov.
+
+ Avoid building full CSSOM wrappers up front during rule matching.
+ Instead, move this code down to the point where these wrappers are actually needed.
+
+ * inspector/InspectorCSSAgent.cpp:
+ (WebCore::InspectorCSSAgent::willMatchRule):
+ (WebCore::InspectorCSSAgent::willProcessRule):
+ * inspector/InspectorCSSAgent.h:
+ (WebCore):
+ (InspectorCSSAgent):
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ (WebCore::InspectorInstrumentation::willMatchRuleImpl):
+ (WebCore::InspectorInstrumentation::willProcessRuleImpl):
+
+2012-12-11 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
+
+ [GStreamer] Avoid linking to GStreamer video libraries if only using ENABLE_AUDIO
+ https://bugs.webkit.org/show_bug.cgi?id=104590
+
+ Reviewed by Philippe Normand.
+
+ Make getVideoSizeAndFormatFromCaps() only available when ENABLE_VIDEO is set.
+
+ No new tests, no change in behavior.
+
+ * platform/graphics/gstreamer/GStreamerVersioning.cpp:
+ * platform/graphics/gstreamer/GStreamerVersioning.h:
+
+2012-12-11 Zeno Albisser <zeno@webkit.org>
+
+ [Qt][Mac] Fix transparency for WebGL content.
+ https://bugs.webkit.org/show_bug.cgi?id=104659
+
+ When drawing a texture to the TextureMapper the flag SupportsBlending
+ must be passed in order to allow for transparent webgl content.
+ We are doing this for GLX already, but the flag was still missing
+ in GraphicsSurfaceMac.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
+ (WebCore::GraphicsSurface::platformPaintToTextureMapper):
+
+2012-12-11 Alexander Pavlov <apavlov@chromium.org>
+
+ Web Inspector: Duplicate emulated touch events in iframe
+ https://bugs.webkit.org/show_bug.cgi?id=104653
+
+ Reviewed by Vsevolod Vlasov.
+
+ Synthetic touch events should be dispatched only on the frame containing its target, not on its ancestor frames,
+ up to the top frame.
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
+ Do not dispatch a synthetic touch event on the current frame if its target is in a subframe.
+
+2012-12-11 Kondapally Kalyan <kalyan.kondapally@intel.com>
+
+ [EFL][WebGL] Regression(r137211) WebGL is broken with NVIDIA Drivers.
+ https://bugs.webkit.org/show_bug.cgi?id=104652.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Reverting some of the changes from r137211, as it causes regressions
+ on NVIDIA drivers.
+
+ * platform/graphics/efl/GraphicsContext3DEfl.cpp:
+ (WebCore::GraphicsContext3D::GraphicsContext3D):
+ * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
+ (GraphicsContext3DPrivate::copyToGraphicsSurface):
+ * platform/graphics/opengl/GLPlatformSurface.cpp:
+ (WebCore::GLPlatformSurface::updateContents):
+ * platform/graphics/opengl/GLPlatformSurface.h:
+ (GLPlatformSurface):
+
+2012-12-11 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: follow up to r136974: do not process shortcuts while editing
+ https://bugs.webkit.org/show_bug.cgi?id=104440
+
+ Reviewed by Alexander Pavlov.
+
+ Currently, typing H while editing node results in corresponding shortcut processing.
+
+ * inspector/front-end/ElementsTreeOutline.js:
+ (WebInspector.ElementsTreeOutline):
+ (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
+ (WebInspector.ElementsTreeElement.prototype.onenter):
+ (WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
+ (WebInspector.ElementsTreeElement.prototype.dispose):
+ (WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
+ (WebInspector.ElementsTreeElement.prototype._editingCancelled):
+
+2012-12-11 Ken Kania <kkania@chromium.org>
+
+ [Inspector] Add command for dispatching mouse events.
+ https://bugs.webkit.org/show_bug.cgi?id=104074
+
+ Reviewed by Yury Semikhatsky.
+
+ Platform mouse event coordinates are relative to the containing window,
+ but the inspector command assumes they follow standard web coordinates,
+ where the origin is at the top left of the page and y increases as you
+ go down. We convert the coordinates to the window before constructing
+ the event. This also fixes the fact that some platforms have flipped
+ coordinate systems.
+ Also, update dispatchKeyEvent test to follow simpler dispatchMouseEvent
+ test.
+
+ Test: inspector-protocol/input/dispatchMouseEvent.html
+
+ * inspector/Inspector.json:
+ * inspector/InspectorInputAgent.cpp:
+ (WebCore::InspectorInputAgent::dispatchMouseEvent):
+ (WebCore):
+ * inspector/InspectorInputAgent.h:
+ (InspectorInputAgent):
+
+2012-12-11 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: follow up to r137283: reduce inspector toolbar spacing 1px.
+
+ * inspector/front-end/inspector.css:
+ (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
+ (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
+
+2012-12-11 Kent Tamura <tkent@chromium.org>
+
+ Refactoring: Rename Element::shouldMatchReadOnlySelector and shouldMatchReadWriteSelector
+ https://bugs.webkit.org/show_bug.cgi?id=104651
+
+ Reviewed by Kentaro Hara.
+
+ ':read-only' and ':read-write' are pseudo classes. They are not
+ selectors in the context of these functions. This patch rename them so
+ that they contain 'pseudo class,' and make them match to an existing
+ function, matchesFocusPseudoClass.
+
+ No new tests. This shouldn't make behavior changes.
+
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::checkOneSelector):
+ * dom/Element.cpp:
+ (WebCore::Element::recalcStyle):
+ (WebCore::Element::matchesReadOnlyPseudoClass):
+ (WebCore::Element::matchesReadWritePseudoClass):
+ * dom/Element.h:
+ (Element):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::matchesReadOnlyPseudoClass):
+ (WebCore::HTMLInputElement::matchesReadWritePseudoClass):
+ * html/HTMLInputElement.h:
+ (HTMLInputElement):
+ * html/HTMLTextAreaElement.cpp:
+ (WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass):
+ (WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass):
+ * html/HTMLTextAreaElement.h:
+ (HTMLTextAreaElement):
+ * html/shadow/SliderThumbElement.cpp:
+ (WebCore::SliderThumbElement::matchesReadOnlyPseudoClass):
+ (WebCore::SliderThumbElement::matchesReadWritePseudoClass):
+ * html/shadow/SliderThumbElement.h:
+ (SliderThumbElement):
+ * html/shadow/SpinButtonElement.cpp:
+ (WebCore::SpinButtonElement::matchesReadOnlyPseudoClass):
+ (WebCore::SpinButtonElement::matchesReadWritePseudoClass):
+ * html/shadow/SpinButtonElement.h:
+ (SpinButtonElement):
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::isReadOnlyControl):
+
+2012-12-11 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: add more horizontal spacing for toolbar items in docked to bottom mode
+ https://bugs.webkit.org/show_bug.cgi?id=104655
+
+ Reviewed by Alexander Pavlov.
+
+ Drive-by increase height to 26px.
+
+ * inspector/front-end/inspector.css:
+ (#toolbar):
+ (body:not(.show-toolbar-icons) .toolbar-item):
+ (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
+ (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
+ (body.show-toolbar-icons.dock-to-bottom .toolbar-item.toggleable):
+ (#toolbar-dropdown-arrow):
+ (#main):
+
+2012-12-11 Keishi Hattori <keishi@webkit.org>
+
+ Use histogram enumeration in Calendar Picker so we can get stats on UI usage
+ https://bugs.webkit.org/show_bug.cgi?id=104646
+
+ Reviewed by Kent Tamura.
+
+ Use histogram support to get stats on the calendar picker so we can improve the UI.
+
+ No new tests.
+
+ * Resources/pagepopups/calendarPicker.js:
+ (CalendarPicker):
+ (CalendarPicker.prototype.recordAction): Records action to histogram.
+ (CalendarPicker.prototype.handleToday): Record action.
+ (CalendarPicker.prototype.handleClear): Ditto.
+ (YearMonthController.prototype._showPopup): Ditto.
+ (YearMonthController.prototype._handleYearMonthChange): Ditto.
+ (YearMonthController.prototype._handleButtonClick): Ditto.
+ (DaysTable.prototype._handleDayClick): Ditto.
+ * page/PagePopupController.cpp:
+ (WebCore::PagePopupController::histogramEnumeration):
+ (WebCore):
+ * page/PagePopupController.h:
+ (PagePopupController):
+ * page/PagePopupController.idl: Added histogramEnumeration.
+
+2012-12-11 Hajime Morrita <morrita@google.com>
+
+ IsActiveFlag, IsHoverFlag, InActiveChainFlag can be unified.
+ https://bugs.webkit.org/show_bug.cgi?id=103697
+
+ Reviewed by Ryosuke Niwa.
+
+ To save two more NodeFlags bits, this patch inroduces
+ UserActionElementSet to get IsLinkFlag, IsHoverFlag,
+ InActiveChainFlag together. These three old flags are replaced by
+ UserActionElementSet::ElementFlags and UserActionElementSet
+ collection which tracks elements which are flagged with one of
+ a ElementFlags.
+
+ When marking an element as active for example, WebKit sets
+ UserActionElementSet::IsActiveFlag to the element and store it
+ into corresponding element set of the document. This set maintains
+ marked elements and corresponding flags for each elements.
+
+ UserActionElementSet can be seen as a yet another rare data for
+ these flags. However, the following characteristics of these flags
+ make adding a new data structure on Document an attractive
+ alternative:
+
+ - UserActionElementSet is maintained for each Document instead of a
+ global collecton. This fits element lifetime better.
+
+ - The number of elements which have these flags is generally
+ small, and a group of elements for each flag is largely overlapped
+ due to its nature. This property keeps the set small, and lets
+ flag retrieval efficient. On majority of the elements, all these
+ flags are false thus the check is done by just checking
+ IsInUserActionFlag.
+
+ As a bonus, isFocused flag, which was on NodeRareData, is also moved to this model.
+
+ No new tests, covered by existing test.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/DOMAllInOne.cpp:
+ * dom/Document.cpp:
+ (WebCore::Document::removedLastRef):
+ (WebCore::Document::updateHoverActiveState):
+ * dom/Document.h:
+ (WebCore::Document::userActionElements): Added.
+ (Document):
+ * dom/Node.cpp:
+ (WebCore::Node::detach):
+ * dom/Node.h:
+ (WebCore):
+ (WebCore::Node::isUserActionElement): Added.
+ (WebCore::Node::setUserActionElement): Added.
+ (Node):
+ (WebCore::Node::active): Switched to UserActionElementSet.
+ (WebCore::Node::inActiveChain): Switched to UserActionElementSet.
+ (WebCore::Node::hovered): Switched to UserActionElementSet.
+ (WebCore::Node::focused): Switched to UserActionElementSet.
+ (WebCore::Node::setFocus): Switched to UserActionElementSet.
+ (WebCore::Node::setActive): Switched to UserActionElementSet.
+ (WebCore::Node::setHovered): Switched to UserActionElementSet.
+ * dom/NodeRareData.h:
+ (WebCore::NodeRareData::NodeRareData):
+ (NodeRareData):
+ * dom/UserActionElementSet.cpp: Added.
+ (WebCore):
+ (WebCore::UserActionElementSet::instanceFor):
+ (WebCore::UserActionElementSet::UserActionElementSet):
+ (WebCore::UserActionElementSet::~UserActionElementSet):
+ (WebCore::UserActionElementSet::didDetach):
+ (WebCore::UserActionElementSet::documentDidRemoveLastRef):
+ (WebCore::UserActionElementSet::hasFlags):
+ (WebCore::UserActionElementSet::setFlags):
+ (WebCore::UserActionElementSet::clearFlags):
+ * dom/UserActionElementSet.h: Added.
+ (WebCore):
+ (UserActionElementSet):
+ (WebCore::UserActionElementSet::create):
+ (WebCore::UserActionElementSet::isFocused):
+ (WebCore::UserActionElementSet::setFocused):
+ (WebCore::UserActionElementSet::isActive):
+ (WebCore::UserActionElementSet::setActive):
+ (WebCore::UserActionElementSet::isInActiveChain):
+ (WebCore::UserActionElementSet::setInActiveChain):
+ (WebCore::UserActionElementSet::isHovered):
+ (WebCore::UserActionElementSet::setHovered):
+ (WebCore::UserActionElementSet::setFlags):
+
+2012-12-11 Kent Tamura <tkent@chromium.org>
+
+ INPUT_MULTIPLE_FIELDS_UI: Disable focus navigation by right/left keys in RTL locales
+ https://bugs.webkit.org/show_bug.cgi?id=104644
+
+ Reviewed by Hajime Morita.
+
+ Pressing the left key should focus on the field at the left of the
+ current focused field, and pressing the right key should focus on the
+ field at the right of the current focused field. This works well in LTR
+ locales.
+ In RTL locale, the current code doesn't work. We disable this behavior
+ for RTL locales for now. This issue will be handled in Bug 104650.
+
+ No new tests. Update some *-multiple-fields tests for new behavior.
+
+ * html/shadow/DateTimeFieldElement.cpp:
+ (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
+ If this sub-field is in an RTL locale, we don't change focus.
+ (WebCore::DateTimeFieldElement::localeForOwner):
+ Moved from DateTimeNumericFieldElement.
+ * html/shadow/DateTimeFieldElement.h:
+ (DateTimeFieldElement): Remove isRTL, add localeForOwner.
+ * html/shadow/DateTimeNumericFieldElement.cpp: Remove localeForOwner.
+ * html/shadow/DateTimeNumericFieldElement.h:
+ (DateTimeNumericFieldElement): Ditto.
+
+2012-12-11 Pavel Podivilov <podivilov@google.com>
+
+ Remove pango files deleted at r137263 form WebCore.gypi.
+
+ Unreviewed, gardening.
+
+ * WebCore.gypi:
+
+2012-12-11 Zan Dobersek <zandobersek@gmail.com>
+
+ [GTK] Feature enabling/disabling should be possible through build-webkit
+ https://bugs.webkit.org/show_bug.cgi?id=99271
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Move the contents of GNUmakefile.features.am into GNUmakefile.features.am.in.
+ The former is then copied from the latter but then appropriately modified if
+ the build-webkit script overrides any of the default feature defines.
+
+ No new tests - no new testable functionality.
+
+ * GNUmakefile.features.am.in: Renamed from Source/WebCore/GNUmakefile.features.am.
+
+2012-12-11 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [QT][EFL][WK2] Move the GraphicsSurfaceGLX.cpp to common place
+ https://bugs.webkit.org/show_bug.cgi?id=104433
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ QT and EFL are commonly using the GraphicsSurfaceGLX.cpp and
+ it looks better to move this file to /glx directory.
+
+ * PlatformEfl.cmake:
+ * Target.pri:
+ * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp.
+ (WebCore):
+ (OffScreenRootWindow):
+ (WebCore::OffScreenRootWindow::OffScreenRootWindow):
+ (WebCore::OffScreenRootWindow::getXWindow):
+ (WebCore::OffScreenRootWindow::display):
+ (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
+ (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
+ (GraphicsSurfacePrivate):
+ (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
+ (WebCore::GraphicsSurfacePrivate::createSurface):
+ (WebCore::GraphicsSurfacePrivate::createPixmap):
+ (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
+ (WebCore::GraphicsSurfacePrivate::makeCurrent):
+ (WebCore::GraphicsSurfacePrivate::doneCurrent):
+ (WebCore::GraphicsSurfacePrivate::swapBuffers):
+ (WebCore::GraphicsSurfacePrivate::copyFromTexture):
+ (WebCore::GraphicsSurfacePrivate::display):
+ (WebCore::GraphicsSurfacePrivate::glxPixmap):
+ (WebCore::GraphicsSurfacePrivate::size):
+ (WebCore::resolveGLMethods):
+ (WebCore::GraphicsSurface::platformExport):
+ (WebCore::GraphicsSurface::platformGetTextureID):
+ (WebCore::GraphicsSurface::platformCopyToGLTexture):
+ (WebCore::GraphicsSurface::platformCopyFromTexture):
+ (WebCore::GraphicsSurface::platformPaintToTextureMapper):
+ (WebCore::GraphicsSurface::platformFrontBuffer):
+ (WebCore::GraphicsSurface::platformSwapBuffers):
+ (WebCore::GraphicsSurface::platformSize):
+ (WebCore::GraphicsSurface::platformCreate):
+ (WebCore::GraphicsSurface::platformImport):
+ (WebCore::GraphicsSurface::platformLock):
+ (WebCore::GraphicsSurface::platformUnlock):
+ (WebCore::GraphicsSurface::platformDestroy):
+ (WebCore::GraphicsSurface::platformBeginPaint):
+ (WebCore::GraphicsSurface::createReadOnlyImage):
+
+2012-12-11 Mike West <mkwst@chromium.org>
+
+ Web Inspector: Evaluate private browsing mode's effect on console messages.
+ https://bugs.webkit.org/show_bug.cgi?id=104383
+
+ Reviewed by Pavel Feldman.
+
+ Two sets of console messages are currently gated on private browsing
+ mode being inactive. This patch centralizes the private browsing checks
+ in order to apply them equally to all console messages, and changes the
+ granularity at which they act.
+
+ The current checks block the console messages entirely. This patch
+ blocks only notifications to ChromeClient and ensures that messages
+ won't be passed to printf where they might end up in system logs.
+ Notifications to InspectorInstrumentation seem safe; so far as I can
+ tell, there's no compelling reason to prevent console-based debugging
+ in private browsing mode. This patch excludes those calls from the
+ private browsing check.
+
+ Test: inspector/console/clients-ignored-in-privatebrowsing.html
+
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::printAccessDeniedMessage):
+ Drop the private browsing check.
+ * page/Console.cpp:
+ (WebCore::Console::addMessage):
+ Add private browsing checks to the two ::addMessage variants that
+ do real work. Ensure that calls to printf and notifications to
+ ChromeClients are gated on these checks, but always allow
+ notifications to InspectorInstrumentation.
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::printErrorMessage):
+ Drop the private browsing check.
+
+2012-12-10 Dan Winship <danw@gnome.org>
+
+ [Soup] Fix spelling of "initiating" in API.
+
+ Reviewed by Martin Robinson.
+
+ No new tests (just internal renaming).
+
+ * platform/network/ResourceHandle.h:
+ (ResourceHandle):
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore):
+ (WebCore::setSoupRequestInitiatingPageIDFromNetworkingContext):
+ (WebCore::ResourceHandle::start):
+ (WebCore::ResourceHandle::getSoupRequestInitiatingPageID):
+
+2012-12-10 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Remove the Pango backend
+ https://bugs.webkit.org/show_bug.cgi?id=104569
+
+ Reviewed by Daniel Bates.
+
+ Remove the Pango backend entirely. The EFL build has no support for it and it's
+ not really maintained enough for the GTK+ port, now that HarfbuzzNG shapes complex
+ text when Freetype is the active text rendering backend.
+
+ No new tests. This does not change behavior.
+
+ * GNUmakefile.am: Remove Pango backend options and move Freetype options to the common list.
+ * GNUmakefile.list.am: Ditto.
+ * platform/graphics/FontPlatformData.h:
+ * platform/graphics/pango/FontCachePango.cpp: Removed.
+ * platform/graphics/pango/FontCustomPlatformDataPango.cpp: Removed.
+ * platform/graphics/pango/FontPango.cpp: Removed.
+ * platform/graphics/pango/FontPlatformData.h: Removed.
+ * platform/graphics/pango/FontPlatformDataPango.cpp: Removed.
+ * platform/graphics/pango/GlyphPageTreeNodePango.cpp: Removed.
+ * platform/graphics/pango/PangoUtilities.cpp: Removed.
+ * platform/graphics/pango/PangoUtilities.h: Removed.
+ * platform/graphics/pango/SimpleFontDataPango.cpp: Removed.
+
+2012-12-11 Andrey Adaikin <aandrey@chromium.org>
+
+ Web Inspector: [WebGL] prevent GC from collecting WebGLObject instances currently bound to the context state
+ https://bugs.webkit.org/show_bug.cgi?id=104119
+
+ Reviewed by Pavel Feldman.
+
+ This is to prevent GC from collecting resources bound to a context (WebGL or 2D).
+ Otherwise, for example in WebGL, subsequent calls to gl.getParameter() may return a recently created
+ instance that is no longer bound to a Resource object (thus, no history to replay it later).
+
+ * inspector/InjectedScriptCanvasModuleSource.js:
+ (.):
+
+2012-12-11 Zan Dobersek <zandobersek@gmail.com>
+
+ Unreviewed build fix after r137243.
+
+ * bindings/gobject/GNUmakefile.am:
+
+2012-12-10 No'am Rosenthal <noam@webkit.org>
+
+ REGRESSION (r137006): CSS clip on solid color composited div broken
+ https://bugs.webkit.org/show_bug.cgi?id=104604
+
+ Reviewed by Simon Fraser.
+
+ Disable direct compositing of background color for clipping layers.
+
+ Test: compositing/geometry/clip-inside.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::supportsDirectBoxDecorationsComposition):
+ Never allow direct background composition if there is a clip.
+
+2012-12-10 Simon Fraser <simon.fraser@apple.com>
+
+ REGRESSION (r137215): WebKit stretches and shrinks a part of screen on scroll
+ https://bugs.webkit.org/show_bug.cgi?id=104626
+
+ Reviewed by Beth Dakin.
+
+ r137215 removed a compositing layer repaint on size changes. However, there
+ are cases where the compositing code constrains layer size by clipping
+ with the viewport and a clipping ancestor. When that happens, we must
+ invalidate the layer on a size change to avoid showing stretched or
+ shrunken content.
+
+ Test: compositing/repaint/clipped-layer-size-change.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::RenderLayerBacking):
+ (WebCore::RenderLayerBacking::updateCompositedBounds):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+
+2012-12-10 Dean Jackson <dino@apple.com>
+
+ Remove old WebKit Animation API code
+ https://bugs.webkit.org/show_bug.cgi?id=104611
+
+ Reviewed by Simon Fraser.
+
+ Remove the existing, unused animation API code. We'll look into
+ implementing the W3C Animation API if/when it is stable.
+
+ * CMakeLists.txt: Remove WebKitAnimation and WebKitAnimationList classes.
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UseJSC.cmake:
+ * UseV8.cmake:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSBindingsAllInOne.cpp: Remove includes.
+ * bindings/js/JSWebKitAnimationCustom.cpp: Removed.
+ * bindings/js/JSWebKitAnimationListCustom.cpp: Removed.
+ * dom/Element.cpp: Remove API.
+ * dom/Element.h: Ditto.
+ * dom/Element.idl: Ditto.
+ * page/DOMWindow.idl: Ditto.
+ * page/WebKitAnimation.cpp: Removed.
+ * page/WebKitAnimation.h: Removed.
+ * page/WebKitAnimation.idl: Removed.
+ * page/WebKitAnimationList.cpp: Removed.
+ * page/WebKitAnimationList.h: Removed.
+ * page/WebKitAnimationList.idl: Removed.
+ * page/animation/AnimationController.cpp: Remove API.
+ * page/animation/AnimationController.h: Ditto.
+ * page/animation/AnimationControllerPrivate.h: Ditto.
+ * page/animation/CompositeAnimation.cpp: Ditto.
+ * page/animation/CompositeAnimation.h: Ditto.
+
+2012-12-10 Jessie Berlin <jberlin@apple.com>
+
+ Fix the Mac build after r137233
+
+ * html/shadow/HTMLShadowElement.h:
+ Remove a declaration of a member variable that was moved to the InsertionPoint superclass.
+
+2012-12-10 KyungTae Kim <ktf.kim@samsung.com>
+
+ Build fix after r137221
+ https://bugs.webkit.org/show_bug.cgi?id=104617
+
+ Unreviewed build fix
+
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::nextNodeWithProperty):
+
+2012-12-10 Hajime Morrita <morrita@google.com>
+
+ [Shadow DOM][Refactoring] HTMLContentElement,HTMLShadowElement::m_registeredWithShadowRoot should be moved to InsertionPoint
+ https://bugs.webkit.org/show_bug.cgi?id=104516
+
+ Reviewed by Dimitri Glazkov.
+
+ This change pulls duplicated code in removedFrom() and
+ insertedInto() of both both HTMLShadowElement and
+ HTMLContentElement to their super class InsertionPoint.
+
+ This is a part of effor that encapsulate node distribution algorithm to
+ ContentDistributor and its family.
+
+ No new tests, no behavior change.
+
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::registerInsertionPoint): Added.
+ (WebCore::ShadowRoot::unregisterInsertionPoint): Added.
+ * dom/ShadowRoot.h:
+ (ShadowRoot):
+ * html/shadow/ContentDistributor.cpp:
+ (WebCore::ShadowRootContentDistributionData::regiterInsertionPoint): Generalized two methods for <content> and <shadow>.
+ (WebCore):
+ (WebCore::ShadowRootContentDistributionData::unregisterInsertionPoint): Ditto.
+ * html/shadow/ContentDistributor.h:
+ (ShadowRootContentDistributionData):
+ * html/shadow/HTMLContentElement.cpp:
+ (WebCore::HTMLContentElement::HTMLContentElement):
+ * html/shadow/HTMLContentElement.h:
+ * html/shadow/HTMLShadowElement.cpp:
+ (WebCore::HTMLShadowElement::HTMLShadowElement):
+ * html/shadow/HTMLShadowElement.h:
+ * html/shadow/InsertionPoint.cpp:
+ (WebCore::InsertionPoint::InsertionPoint):
+ (WebCore::InsertionPoint::insertedInto): Pulled up from subclasses
+ (WebCore::InsertionPoint::removedFrom): Pulled up from subclasses
+ * html/shadow/InsertionPoint.h:
+ (InsertionPoint):
+
+2012-12-10 Jon Lee <jonlee@apple.com>
+
+ Keep track of plug-in snapshots clicked by user
+ https://bugs.webkit.org/show_bug.cgi?id=103206
+ <rdar://problem/12746483>
+
+ Reviewed by Anders Carlsson.
+
+ * html/HTMLPlugInImageElement.cpp:
+ (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initially the hash is
+ unknown. Set to 0. Move the check for whether to snapshot the plugin into the
+ new function subframeLoaderWillLoadPlugIn.
+ (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Rename
+ setPendingClickEvent to userDidClickSnapshot. In addition to holding onto the
+ click event used to activate the plug-in, the function now also tells the plug-in
+ client to add the origin hash as an auto-start origin.
+ (WebCore::HTMLPlugInImageElement::subframeLoaderWillLoadPlugIn): Calculate the
+ hash based on the provided URL, which is the URL the plug-in will load. Extend
+ the check that used to be in the constructor to see if the plug-in should not
+ automatically load, including checking the plug-in size and whether the hash
+ is an auto-start origin.
+ * html/HTMLPlugInImageElement.h: Rename setPendingClickEvent to userDidClickSnapshot
+ and add a variable for the origin hash.
+
+ * loader/SubframeLoader.cpp:
+ (WebCore::SubframeLoader::requestPlugin): When the loader is about to load the
+ plug-in, pass the URL to the element, so that it can calculate the hash.
+
+ * page/Page.cpp:
+ (WebCore::Page::Page): Take the plugInClient from the page clients.
+ (WebCore::Page::~Page): If the client exists, tell it that the page is being
+ destroyed.
+ (WebCore::Page::PageClients::PageClients): Initialize this optional client to
+ null.
+ * page/Page.h: Add PlugInClient to page clients.
+ (PageClients): Add PlugInClient variable.
+ (WebCore::Page::plugInClient):
+ * page/PlugInClient.h: Added.
+
+ * rendering/RenderSnapshottedPlugIn.cpp:
+ (WebCore::RenderSnapshottedPlugIn::handleEvent): Call the renamed function
+ userDidClickSnapshot().
+ (WebCore::RenderSnapshottedPlugIn::layout): Move the check of the plug-in size
+ to subframeLoaderWillLoadPlugIn.
+
+ Add PlugInClient.h.
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-12-10 Antti Koivisto <antti@apple.com>
+
+ Not reviewed.
+
+ Build fix.
+
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::nextNodeWithProperty):
+ * page/TouchDisambiguation.cpp:
+ (WebCore::boundingBoxForEventNodes):
+
+2012-12-10 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=104602
+ DidHitRelevantRepaintedObjectsAreaThreshold LayoutMilestone fires too
+ early on some pages with iframes
+
+ Reviewed by Simon Fraser.
+
+ This change makes it so that any RenderObjects inside iframes are not
+ considered relevant.
+ * page/Page.cpp:
+ (WebCore::Page::addRelevantRepaintedObject):
+
+2012-12-10 David Grogan <dgrogan@chromium.org>
+
+ IndexedDB: Propagate more leveldb errors to script
+ https://bugs.webkit.org/show_bug.cgi?id=104422
+
+ Reviewed by Tony Chang.
+
+ These are the last places that ignore leveldb errors that can get the
+ usual ok/found treatment.
+
+ Nothing called getBool, so it is deleted.
+
+ * Modules/indexeddb/IDBBackingStore.cpp:
+ (WebCore):
+ (WebCore::getInt):
+ (WebCore::isSchemaKnown):
+ (WebCore::setUpMetadata):
+ (WebCore::getMaxObjectStoreId):
+ (WebCore::IDBBackingStore::open):
+ (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
+ (WebCore::getNewDatabaseId):
+ (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
+ (WebCore::setMaxObjectStoreId):
+ (WebCore::getNewVersionNumber):
+ (WebCore::IDBBackingStore::putRecord):
+ (WebCore::setMaxIndexId):
+ * Modules/indexeddb/IDBBackingStore.h:
+ (IDBBackingStore):
+ * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
+ (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
+ (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
+
+2012-12-09 Antti Koivisto <antti@apple.com>
+
+ Factor node traversal into standalone functions
+ https://bugs.webkit.org/show_bug.cgi?id=104507
+
+ Reviewed by Eric Seidel.
+
+ Node traversal functions are currently Node and ContainerNode members. Their implementations
+ are confusingly scattered over multiple header and source files. These functions have no particular
+ reason to be members as they don't require non-public access. They should be made freestanding
+ function instead and gathered together.
+
+ This patch adds NodeTraversal namespace, defined in NodeTraversal.h. It contains freestanding
+ functions for traversing Nodes. Most popular functions are inlined (as before) and
+ there are ContainerNode specific specializations (as before).
+
+ In client code
+
+ node = node->traverseNextNode();
+ node = node->traverseNextSibling();
+
+ becomes
+
+ node = NodeTraversal::next(node);
+ node = NodeTraversal::nextSkippingChildren(node);
+
+ etc.
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::addImageMapChildren):
+ * bindings/js/JSDocumentCustom.cpp:
+ (WebCore::toJS):
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::allVisitedStateChanged):
+ (WebCore::SelectorChecker::visitedStateChanged):
+ * css/StyleInvalidationAnalysis.cpp:
+ (WebCore::StyleInvalidationAnalysis::invalidateStyle):
+ * dom/ContainerNode.cpp:
+ (WebCore::dispatchChildInsertionEvents):
+ (WebCore::dispatchChildRemovalEvents):
+ * dom/ContainerNode.h:
+ (ContainerNode):
+ (WebCore):
+ * dom/ContainerNodeAlgorithms.h:
+ (WebCore::ChildFrameDisconnector::collectDescendant):
+ * dom/Document.cpp:
+ (WebCore::Document::buildAccessKeyMap):
+ (WebCore::Document::removeAllEventListeners):
+ (WebCore::Document::updateBaseURL):
+ (WebCore::Document::processBaseElement):
+ (WebCore::Document::nodeAbsIndex):
+ (WebCore::Document::nodeWithAbsIndex):
+ (WebCore::Document::getFocusableNodes):
+ * dom/DocumentMarkerController.cpp:
+ (WebCore::DocumentMarkerController::markersInRange):
+ (WebCore::DocumentMarkerController::setMarkersActive):
+ (WebCore::DocumentMarkerController::hasMarkers):
+ (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
+ * dom/DocumentOrderedMap.cpp:
+ (WebCore::DocumentOrderedMap::get):
+ * dom/ElementShadow.cpp:
+ (WebCore::ElementShadow::collectSelectFeatureSetFrom):
+ * dom/Node.cpp:
+ (WebCore::Node::normalize):
+ (WebCore::Node::lazyAttach):
+ (WebCore):
+ (WebCore::Node::detach):
+ (WebCore::traverseTreeAndMark):
+ * dom/Node.h:
+ (Node):
+ * dom/NodeIterator.cpp:
+ (WebCore::NodeIterator::NodePointer::moveToNext):
+ (WebCore::NodeIterator::NodePointer::moveToPrevious):
+ (WebCore::NodeIterator::updateForNodeRemoval):
+ * dom/NodeTraversal.h: Added.
+ (WebCore):
+ (NodeTraversal):
+ (WebCore::NodeTraversal::traverseNextNodeTemplate):
+ (WebCore::NodeTraversal::next):
+ (WebCore::NodeTraversal::traverseNextSiblingTemplate):
+ (WebCore::NodeTraversal::nextSibling):
+ * dom/Range.cpp:
+ (WebCore::Range::toString):
+ (WebCore::Range::checkDeleteExtract):
+ (WebCore::Range::firstNode):
+ (WebCore::Range::pastLastNode):
+ (WebCore::Range::textRects):
+ (WebCore::Range::textQuads):
+ (WebCore::Range::getBorderAndTextQuads):
+ * dom/TreeScope.cpp:
+ (WebCore::TreeScope::labelElementForId):
+ (WebCore::TreeScope::findAnchor):
+ * dom/TreeScopeAdopter.cpp:
+ (WebCore::TreeScopeAdopter::moveTreeToNewScope):
+ (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
+ * dom/TreeWalker.cpp:
+ (WebCore::TreeWalker::nextNode):
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
+ (WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
+ (WebCore::containsNonEditableRegion):
+ (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
+ (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle):
+ (WebCore::ApplyStyleCommand::removeInlineStyle):
+ * editing/BreakBlockquoteCommand.cpp:
+ (WebCore::BreakBlockquoteCommand::doApply):
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::CompositeEditCommand::deleteInsignificantText):
+ (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
+ * editing/DeleteSelectionCommand.cpp:
+ (WebCore::firstEditablePositionInNode):
+ (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
+ (WebCore::DeleteSelectionCommand::handleGeneralDelete):
+ * editing/EditCommand.cpp:
+ (WebCore::SimpleEditCommand::addNodeAndDescendants):
+ * editing/EditingStyle.cpp:
+ (WebCore::EditingStyle::triStateOfStyle):
+ (WebCore::EditingStyle::textDirectionForSelection):
+ * editing/Editor.cpp:
+ (WebCore::Editor::simplifyMarkup):
+ * editing/FrameSelection.cpp:
+ (WebCore::scanForForm):
+ (WebCore::FrameSelection::setSelectionFromNone):
+ * editing/InsertParagraphSeparatorCommand.cpp:
+ (WebCore::InsertParagraphSeparatorCommand::doApply):
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::ReplacementFragment::removeUnrenderedNodes):
+ (WebCore::ReplacementFragment::removeInterchangeNodes):
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
+ (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
+ (WebCore::removeHeadContents):
+ (WebCore::ReplaceSelectionCommand::handleStyleSpans):
+ * editing/ReplaceSelectionCommand.h:
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
+ * editing/SimplifyMarkupCommand.cpp:
+ (WebCore::SimplifyMarkupCommand::doApply):
+ * editing/TextIterator.cpp:
+ (WebCore::TextIterator::advance):
+ (WebCore::shouldEmitNewlineAfterNode):
+ * editing/htmlediting.cpp:
+ (WebCore::hasARenderedDescendant):
+ * editing/mac/EditorMac.mm:
+ (WebCore::Editor::fontForSelection):
+ * editing/markup.cpp:
+ (WebCore::completeURLs):
+ (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
+ (WebCore::findNodesSurroundingContext):
+ (WebCore::trimFragment):
+ * editing/visible_units.cpp:
+ (WebCore::startOfParagraph):
+ (WebCore::endOfParagraph):
+ * html/HTMLCollection.cpp:
+ (WebCore::nextNode):
+ * html/HTMLElement.cpp:
+ (WebCore::setHasDirAutoFlagRecursively):
+ (WebCore::HTMLElement::directionality):
+ (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
+ (WebCore::HTMLElement::getItemRefElements):
+ * html/HTMLFieldSetElement.cpp:
+ (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
+ (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/HTMLOptionElement.cpp:
+ (WebCore::HTMLOptionElement::collectOptionInnerText):
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::nextNodeWithProperty):
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::recalcListItems):
+ * html/HTMLTextFormControlElement.cpp:
+ (WebCore::HTMLTextFormControlElement::selection):
+ (WebCore::HTMLTextFormControlElement::innerTextValue):
+ (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
+ * html/RadioInputType.cpp:
+ (WebCore::RadioInputType::handleKeydownEvent):
+ * html/shadow/ContentDistributor.cpp:
+ (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::performSearch):
+ * inspector/InspectorMemoryAgent.cpp:
+ * page/FocusController.cpp:
+ (WebCore::FocusController::findFocusCandidateInContainer):
+ * page/Frame.cpp:
+ (WebCore::Frame::searchForLabelsAboveCell):
+ (WebCore::Frame::searchForLabelsBeforeElement):
+ * rendering/RenderNamedFlowThread.cpp:
+ (WebCore::RenderNamedFlowThread::getRanges):
+ * svg/SVGSVGElement.cpp:
+ (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
+ (WebCore::SVGSVGElement::getElementById):
+ * svg/SVGUseElement.cpp:
+ (WebCore::removeDisallowedElementsFromSubtree):
+ * svg/animation/SMILTimeContainer.cpp:
+ (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
+ * xml/XPathNodeSet.cpp:
+ (WebCore::XPath::NodeSet::traversalSort):
+ * xml/XPathStep.cpp:
+ (WebCore::XPath::Step::nodesInAxis):
+ * xml/XPathUtil.cpp:
+ (WebCore::XPath::stringValue):
+
+2012-12-10 Min Qin <qinmin@chromium.org>
+
+ Sending multi-touch events to the same Iframe
+ https://bugs.webkit.org/show_bug.cgi?id=97973
+
+ Reviewed by Dimitri Glazkov.
+
+ Multi-Touch in different iframe can give both documents access to each other.
+ This could cause cross-origin access. To solve this, all the touch events should
+ be sent to the iframe where the first touchstart happens.
+
+ Test: fast/events/touch/multi-touch-inside-iframes.html
+ fast/events/touch/multi-touch-inside-nested-iframes.html
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleTouchEvent):
+ * page/EventHandler.h:
+
+2012-12-10 KyungTae Kim <ktf.kim@samsung.com>
+
+ [soup] Fix build warning in ResourceHandleSoup.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=104605
+
+ Reviewed by Martin Robinson.
+
+ The nextMultipartResponsePartCallback has unused parameter 'source',
+ comment out it to fix 'unused parameter' build warning.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::nextMultipartResponsePartCallback):
+
+2012-12-10 Simon Fraser <simon.fraser@apple.com>
+
+ Fix frame border painting in tiled drawing mode
+ https://bugs.webkit.org/show_bug.cgi?id=104453
+ <rdar://problem/11678611>
+
+ Reviewed by Dan Bernstein.
+
+ Frame borders were not correctly invalidated when in tiled drawing mode, because
+ RenderFrameSet::layout() invalidated directly on the view, which skips the tile
+ cache.
+
+ Fix by invalidating like all other renderers, via the repaint container.
+
+ Also, the layer transform should be updated before the invalidation, and
+ we make use of RenderObject::updateLayerTransform() which has the same behavior
+ as the old code.
+
+ Attempts to make a layout test failed. Resizing composited framesets repainted
+ via layer resizing, and an attempt to make a ref test in tiled drawing mode
+ failed (the test passed without the patch).
+
+ * rendering/RenderFrameSet.cpp:
+ (WebCore::RenderFrameSet::layout):
+
+2012-12-10 Simon Fraser <simon.fraser@apple.com>
+
+ When converting a layer into a tiled layer, ensure that we update the visible rect
+ https://bugs.webkit.org/show_bug.cgi?id=104467
+
+ Reviewed by Darin Adler.
+
+ When a GraphicsLayerCA toggles to use a TileCache, we have to ensure that the
+ layer's visible rect (which is used to ensure tile coverage) is updated in
+ the same commit. Otherwise we can get blank layers until something else causes
+ the visible rect to be updated.
+
+ Test: compositing/tiling/tiled-layer-resize.html
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::dumpAdditionalProperties): With the debug flag, dump the TiledBacking
+ address for ease of debugging.
+ (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Set the VisibleRectChanged bit in
+ m_uncommittedChanges if we've just switched to a tiled layer.
+
+2012-12-10 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 Sam Weinig.
+
+ RenderLayerBacking always repainted the entire compositing layer when its size
+ changed. This was done to fix repaint issues when outline widths changes, but
+ that issue is now solved by repainting in GraphicsLayer::setOffsetFromRenderer(),
+ add in r134628. I believe this is no longer necessary.
+
+ Always repainting when the size changes is terrible for the tile cache when
+ loading large documents, as all tiles repaint every time the document gets
+ longer.
+
+ Test: compositing/repaint/resize-repaint.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+
+2012-12-10 Ojan Vafai <ojan@chromium.org>
+
+ Unreviewed, rolling out r134150.
+ http://trac.webkit.org/changeset/134150
+ https://bugs.webkit.org/show_bug.cgi?id=99940
+
+ Caused JS-based tooltips to remain during scroll on Facebook
+ and Gmail. Rollout until I have time to experiment with less
+ aggresive approaches.
+
+ * page/EventHandler.cpp:
+ (WebCore):
+ (WebCore::MaximumDurationTracker::MaximumDurationTracker):
+ (WebCore::MaximumDurationTracker::~MaximumDurationTracker):
+ (MaximumDurationTracker):
+ (WebCore::EventHandler::EventHandler):
+ (WebCore::EventHandler::clear):
+ (WebCore::EventHandler::mouseMoved):
+ (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
+ (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
+ * page/EventHandler.h:
+ (EventHandler):
+ * platform/Timer.h:
+
+2012-12-10 Yi Shen <max.hong.shen@gmail.com>
+
+ Keyboard caret movement in textarea with RTL Override Character can make tab unresponsive
+ https://bugs.webkit.org/show_bug.cgi?id=103067
+
+ Reviewed by Ryosuke Niwa.
+
+ For textarea with RTL override character, the line break could be the previous leaf InlineTextBox of
+ the InlineTextBox for the RTL override text. When overshots the left/right, make sure the
+ leftVisuallyDistinctCandidate and rightVisuallyDistinctCandidate return the visually distinct
+ left/right position by ignoring the line break.
+
+ Test: editing/selection/move-by-character-crash-test-textarea.html
+
+ * editing/VisiblePosition.cpp:
+ (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
+ (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
+
+2012-12-10 Kondapally Kalyan <kalyan.kondapally@intel.com>
+
+ [EFL][WebGL] Minor Refactoring in GraphicsContext3DEfl.
+ https://bugs.webkit.org/show_bug.cgi?id=104553.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ We use different FBO for canvas and offscreen surface of our platform layer.
+ Thus we need to manage any bound buffers while copying contents to the surface. Currently, Surface
+ always uses double buffering but in future we should be able to configure it to use either
+ double or single buffer. For these use cases, it would be handy to bind buffers directly to
+ FBO used by the surface. This patch does the needed changes in GraphicsContext3DEfl and
+ PlatformSurface. Also, removes some unused code.
+
+ Covered by existing tests.
+
+ Relevant changes in GraphicsContext3DEfl to obtain FBO id from PlatformSurface.
+ * platform/graphics/efl/GraphicsContext3DEfl.cpp:
+ (WebCore::GraphicsContext3D::GraphicsContext3D):
+ (WebCore::GraphicsContext3D::~GraphicsContext3D):
+
+ Renamed createGraphicsSurface to didResizeCanvas.
+ (WebCore::GraphicsContext3D::createGraphicsSurfaces):
+ * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
+ (GraphicsContext3DPrivate::didResizeCanvas):
+ (GraphicsContext3DPrivate::copyToGraphicsSurface):
+ * platform/graphics/efl/GraphicsContext3DPrivate.h:
+ (GraphicsContext3DPrivate):
+
+ Header cleanup.
+ * platform/graphics/opengl/GLDefs.h:
+ * platform/graphics/opengl/GLPlatformContext.cpp:
+ (WebCore::GLPlatformContext::createContext):
+ * platform/graphics/opengl/GLPlatformContext.h:
+
+ Added initialize method to expose FBO id of the surface.
+ Removed unused code.
+ * platform/graphics/opengl/GLPlatformSurface.cpp:
+ (WebCore::GLPlatformSurface::initialize):
+ (WebCore):
+ (WebCore::GLPlatformSurface::updateContents):
+ * platform/graphics/opengl/GLPlatformSurface.h:
+ (GLPlatformSurface):
+ * platform/graphics/surfaces/glx/GLXSurface.h:
+
+2012-12-07 Simon Fraser <simon.fraser@apple.com>
+
+ Tidy up the tiled scrolling indicator, fix with zooming
+ https://bugs.webkit.org/show_bug.cgi?id=104386
+
+ Reviewed by Tim Horton.
+
+ Fix the tiled scrolling indicator to not get tiny when zooming,
+ to not poke out of the bottom of the window, and to not look
+ so crappy.
+
+ * platform/graphics/ca/mac/TileCache.mm:
+ (WebCore::TileCache::updateTileCoverageMap):
+ (WebCore::TileCache::drawTileMapContents):
+
+2012-12-10 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r136817.
+ http://trac.webkit.org/changeset/136817
+ https://bugs.webkit.org/show_bug.cgi?id=104596
+
+ This patch was an unnecessarily complex solution to handling
+ conversion of union types. (Requested by mpruett on #webkit).
+
+ * bindings/js/JSDictionary.cpp:
+ (WebCore::JSDictionary::convertValue):
+ * bindings/js/JSDictionary.h:
+ (WebCore::JSDictionary::tryGetPropertyAndResult):
+
+2012-12-10 Tab Atkins <tabatkins@google.com>
+
+ Deprecate prefixed linear-gradient and radial-gradient functions
+ https://bugs.webkit.org/show_bug.cgi?id=104591
+
+ Reviewed by Dean Jackson.
+
+ Rename the old gradient parsing functions in anticipation of functions that parse the new syntax.
+
+ No new tests added - this is a rename and has no functionality change.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseDeprecatedLinearGradient):
+ (WebCore::CSSParser::parseDeprecatedRadialGradient):
+ (WebCore::CSSParser::parseGeneratedImage):
+ * css/CSSParser.h:
+
+2012-12-10 Mark Pilgrim <pilgrim@chromium.org>
+
+ [Chromium][Win] Remove theme-related functions from PlatformSupport
+ https://bugs.webkit.org/show_bug.cgi?id=102699
+
+ Reviewed by Adam Barth.
+
+ Call theme engine directly instead of going through
+ PlatformSupport. Part of a refactoring series. See tracking bug 82948.
+
+ * platform/chromium/PlatformSupport.h:
+ (PlatformSupport):
+ * platform/chromium/ScrollbarThemeChromiumWin.cpp:
+ (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
+ (WebCore::ScrollbarThemeChromiumWin::paintButton):
+ * rendering/RenderThemeChromiumWin.cpp:
+ (WebCore):
+ (WebCore::RenderThemeChromiumWin::paintButton):
+ (WebCore::RenderThemeChromiumWin::paintSliderTrack):
+ (WebCore::RenderThemeChromiumWin::paintSliderThumb):
+ (WebCore::RenderThemeChromiumWin::paintMenuList):
+ (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
+ (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
+ (WebCore::RenderThemeChromiumWin::paintProgressBar):
+
+2012-12-10 Dean Jackson <dino@apple.com>
+
+ Support for CSS widows and orphans
+ https://bugs.webkit.org/show_bug.cgi?id=9410
+
+ Reviewed by Darin Adler.
+
+ The CSS 'widow' and 'orphan' properties were supported by the parser and
+ style system, but were not actually doing anything in layout. Now they do!
+
+ In order to not break existing content, I unfortunately had to go against
+ the specification and change our default value from 2 to auto. A value of
+ auto means that widows and orphans will not cause any page/column breaks.
+
+ Supporting orphans was a small change. During line layout, if we realise
+ we need to move to a new page in a situation that would create an orphan,
+ move the entire block to the new page. There was already code to do this.
+
+ Support for widows was trickier. When we finish laying out a block, count
+ the number of hanging lines. If we've created a widow, and there are enough
+ available lines on the previous page, then steal some and remember the line
+ to break at. Trigger a relayout. Then notice the line that was marked for
+ breaking and avoid the widow. This means some blocks go through layout
+ twice, but as long as the widow value is small it shouldn't be a huge penalty.
+
+ Tests: fast/multicol/widows-and-orphans.html (new test)
+ printing/page-break-orphans.html
+ printing/page-break-orphans-and-widows.html
+ printing/page-break-widows.html
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return CSSValueAuto for widows and orphans if necessary.
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue): Support "auto" in widow and orphan property parsing.
+ * css/StyleBuilder.cpp:
+ (WebCore::StyleBuilder::StyleBuilder): Change property handler to something that supports auto.
+ * page/animation/CSSPropertyAnimation.cpp:
+ (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add widows and orphans to the animation map.
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::layoutBlockChild): Detect if we've caused a widow-fixing break, and request relayout evaluation.
+ (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): Test for a widow-fixing line.
+ (WebCore::RenderBlock::setBreakAtLineToAvoidWidow): New function to remember where we should break on next layout.
+ (WebCore::RenderBlock::adjustLinePositionForPagination): Move the entire block to a new page if this would create an orphan.
+ * rendering/RenderBlock.h:
+ (WebCore::RenderBlock::shouldBreakAtLineToAvoidWidow): New function to indicate if we are remembering a widow.
+ (WebCore::RenderBlock::clearShouldBreakAtLineToAvoidWidow): Reset the line breaks.
+ (WebCore::RenderBlock::lineBreakToAvoidWidow):
+ (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData): Add a flag for indicating if we are remembering a line, and the actual line itself.
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlock::layoutRunsAndFloatsInRange): The code to detect and fix widows. Explained above.
+ * rendering/style/RenderStyle.h: New methods for indicating if widows and orphans are non-default values.
+ * rendering/style/StyleRareInheritedData.cpp: Ditto.
+ * rendering/style/StyleRareInheritedData.h: Ditto.
+
+2012-12-10 Zan Dobersek <zandobersek@gmail.com>
+
+ REGRESSION (r118735): svg/dom/complex-svgView-specification.html, svg/dom/SVGViewSpec.html, svg/dom/viewspec-parser.html failing on GTK Linux 64-bit Release
+ https://bugs.webkit.org/show_bug.cgi?id=87734
+
+ Reviewed by Martin Robinson.
+
+ Don't modify ResourceRequest's URL to have the value of the (encoded)
+ URI of the SoupMessage. The only exception is in the case of cancelled
+ SoupMessage - the URL of the ResourceRequest should then be null.
+
+ No new tests - existing tests should show no regressions.
+
+ * platform/network/soup/ResourceRequestSoup.cpp:
+ (WebCore::ResourceRequest::updateFromSoupMessage):
+
+2012-12-10 Gustavo Noronha Silva <gns@gnome.org>
+
+ Unreviewed distcheck fix.
+
+ * GNUmakefile.list.am:
+
+2012-12-10 Eric Seidel <eric@webkit.org>
+
+ Caused crashes in v8. Rolling out until abarth can fix. See cr-issue 165136 for more info
+ https://bugs.webkit.org/show_bug.cgi?id=104575
+
+ Unreviewed, just rolling out r136559.
+
+ * bindings/v8/V8GCController.cpp:
+ * bindings/v8/V8NodeFilterCondition.cpp:
+ (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
+ (WebCore::V8NodeFilterCondition::acceptNode):
+ * bindings/v8/V8NodeFilterCondition.h:
+ (WebCore::V8NodeFilterCondition::create):
+ (V8NodeFilterCondition):
+ * dom/NodeFilter.h:
+
+2012-12-10 Eric Carlson <eric.carlson@apple.com>
+
+ Unreviewed build fix after r137167.
+
+ * WebCore.xcodeproj/project.pbxproj: Add InbandTextTrackPrivate.h to framework private
+ headers.
+
+2012-12-10 Martin Robinson <mrobinson@igalia.com>
+
+ Fix the GTK+ build after a collision of two patches.
+
+ Unreviewed build fix.
+
+ * bindings/gobject/GNUmakefile.am: The GObject DOM bindings library needs to
+ include the harfbuzz cflags when compiling.
+
+2012-12-10 Parth Patel <parpatel@rim.com>
+
+ Make hiddenPageDomTimerInterval a setting
+ https://bugs.webkit.org/show_bug.cgi?id=104555
+
+ Reviewed by Yong Li.
+
+ Make hiddenPageDomTimerInterval a setting so client can customize it.
+
+ No new tests are needed.
+
+ * page/Page.cpp:
+ (WebCore):
+ (WebCore::Page::setVisibilityState):
+ * page/Settings.cpp:
+ (WebCore):
+ (WebCore::Settings::setHiddenPageDOMTimerAlignmentInterval):
+ (WebCore::Settings::hiddenPageDOMTimerAlignmentInterval):
+ * page/Settings.h:
+ (Settings):
+
+2012-12-10 peavo@outlook.com <peavo@outlook.com>
+
+ [WinCairo] Compile fix in ImageCairoWin.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=104554
+
+ Reviewed by Brent Fulgham.
+
+ * platform/graphics/win/ImageCairoWin.cpp:
+ (WebCore::BitmapImage::getHBITMAPOfSize): Added parameter.
+ (WebCore::BitmapImage::drawFrameMatchingSourceSize): Added parameter.
+
+2012-12-10 Mike West <mkwst@chromium.org>
+
+ Log to console when script is blocked by sandbox attributes.
+ https://bugs.webkit.org/show_bug.cgi?id=104365
+
+ Reviewed by Ojan Vafai.
+
+ Adds a console message to cover script execution blocked within the
+ context of a sandboxed frame which lacks the 'allow-scripts' permission.
+
+ * bindings/ScriptControllerBase.cpp:
+ (WebCore::ScriptController::canExecuteScripts):
+ Log a warning when sandboxing flags block script execution.
+
+2012-12-10 Chris Fleizach <cfleizach@apple.com>
+
+ AX: Crash in NSAccessibilityUnignoredDescendant
+ https://bugs.webkit.org/show_bug.cgi?id=104468
+
+ Reviewed by Anders Carlsson.
+
+ This crash occurred because AccessibilityScrollView stopped retaining it's ScrollView pointer.
+
+ Unfortunately, there was still a case that didn't correctly clear that variable.
+
+ That case was when a Frame had a new FrameView associated with it. The old FrameView didn't inform the
+ accessibility object cache that it should be removed. As a result, when the FrameView deallocated and
+ did try to remove, it used the wrong AXObjectCache because it was no longer correctly hooked into the
+ document tree.
+
+ No new tests. Existing tests will stop crashing.
+
+ * page/Frame.cpp:
+ (WebCore::Frame::setView): change the name of the method that tells the FrameView to detach
+ * page/FrameView.cpp:
+ (WebCore::FrameView::~FrameView):
+ (WebCore::FrameView::removeFromAXObjectCache): add a method that can be called in multiple places
+ (WebCore::FrameView::isFrameView):
+ (WebCore::FrameView::prepareForDetach): detaches scrollbars and accessibility
+ * page/FrameView.h:
+ (FrameView):
+
+2012-12-10 Mark Pilgrim <pilgrim@chromium.org>
+
+ [Chromium] Move getPluginsList out of PlatformSupport
+ https://bugs.webkit.org/show_bug.cgi?id=96507
+
+ Reviewed by Darin Fisher.
+
+ Part of a refactoring series. See tracking bug 82948.
+
+ * WebCore.gypi:
+ * platform/chromium/PlatformSupport.h:
+ (PlatformSupport):
+ * plugins/chromium/PluginDataChromium.cpp:
+ (WebCore::PluginCache::plugins):
+ * plugins/chromium/PluginListBuilder.cpp: Added.
+ (WebKit):
+ (WebKit::PluginListBuilder::addPlugin):
+ (WebKit::PluginListBuilder::addMediaTypeToLastPlugin):
+ (WebKit::PluginListBuilder::addFileExtensionToLastMediaType):
+ * plugins/chromium/PluginListBuilder.h: Added.
+ (WebKit):
+ (PluginListBuilder):
+ (WebKit::PluginListBuilder::PluginListBuilder):
+
+2012-12-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Build GObject DOM bindings as a separate library
+ https://bugs.webkit.org/show_bug.cgi?id=104527
+
+ Reviewed by Xan Lopez.
+
+ * bindings/gobject/GNUmakefile.am: Add libWebCoreDOM library.
+ * bindings/gobject/WebKitDOMBinding.h: Define private macros.
+ * bindings/gobject/WebKitDOMCustom.h: Don't include webkit/webkitdefines.h.
+ * bindings/gobject/WebKitDOMEventTarget.h: Ditto.
+ * bindings/gobject/WebKitDOMObject.h: Ditto.
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ (Generate): Don't include webkitglobalsprivate.h.
+ (WriteData): Don't include webkit/webkitdefines.h.
+ * bindings/scripts/gobject-generate-headers.pl: Define WEBKIT_API
+ macro in webkitdomdefines.h.
+ * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestException.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
+ * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
+
+2012-12-10 Adam Klein <adamk@chromium.org>
+
+ In InbandTextTrackPrivate, return emptyAtoms instead of emptyString() by default.
+
+ Unreviewed build fix.
+
+ * platform/graphics/InbandTextTrackPrivate.h:
+ (WebCore::InbandTextTrackPrivate::label):
+ (WebCore::InbandTextTrackPrivate::language):
+
+2012-12-10 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Native Memory Instrumentation: instrument RenderBox descendants.
+ https://bugs.webkit.org/show_bug.cgi?id=104026
+
+ Reviewed by Eric Seidel.
+
+ Plain vanilla instrumentation for RenderBox descendants.
+
+ * rendering/RenderFrameSet.cpp:
+ (WebCore::RenderFrameSet::reportMemoryUsage):
+ (WebCore):
+ (WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
+ * rendering/RenderFrameSet.h:
+ (RenderFrameSet):
+ (GridAxis):
+ * rendering/RenderListMarker.cpp:
+ (WebCore::RenderListMarker::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderListMarker.h:
+ (RenderListMarker):
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderReplaced.h:
+ (RenderReplaced):
+ * rendering/RenderTableCol.cpp:
+ (WebCore::RenderTableCol::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderTableCol.h:
+ (RenderTableCol):
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderTableRow.h:
+ (RenderTableRow):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::reportMemoryUsage):
+ (WebCore):
+ (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
+ (WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
+ * rendering/RenderTableSection.h:
+ (CellStruct):
+ (RowStruct):
+
+2012-12-10 Alejandro Piñeiro <apinheiro@igalia.com>
+
+ AX: wrong Enabled states on a ListBox
+ https://bugs.webkit.org/show_bug.cgi?id=104483
+
+ Reviewed by Chris Fleizach.
+
+ Test: accessibility/listbox-enabled-states.html
+
+ * accessibility/AccessibilityListBoxOption.cpp:
+ (WebCore::AccessibilityListBoxOption::isEnabled): taking into
+ account the DISABLED attribute and the aria-disabled attribute to
+ decide if the item is enabled or not.
+
+2012-12-10 Adam Klein <adamk@chromium.org>
+
+ cr-win build fix after r137161.
+
+ Unreviewed.
+
+ * platform/graphics/MediaPlayer.h: Replace forward-decl of
+ InbandTextTrackPrivate with #include as the definition is required.
+
+2012-12-10 Alexis Menard <alexis@webkit.org>
+
+ [CSS3 Backgrounds and Borders] Remove CSS3_BACKGROUND feature flag.
+ https://bugs.webkit.org/show_bug.cgi?id=104539
+
+ Reviewed by Antonio Gomes.
+
+ As discussed on webkit-dev it is not needed to keep this feature flag
+ as support for <position> type is a small feature that is already
+ implemented by three other UAs. It was useful while landing this
+ feature as partial bits were landed one after one.
+
+ No new tests : the feature is covered by various tests and it is already enabled in many ports.
+
+ * Configurations/FeatureDefines.xcconfig:
+ * GNUmakefile.am:
+ * GNUmakefile.features.am:
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseFillPosition):
+ (WebCore::CSSParser::parseFillProperty):
+ * css/CSSParser.h:
+ * css/CSSToStyleMap.cpp:
+ (WebCore::CSSToStyleMap::mapFillXPosition):
+ (WebCore::CSSToStyleMap::mapFillYPosition):
+ * rendering/style/FillLayer.cpp:
+ (SameSizeAsFillLayer):
+ (WebCore::FillLayer::FillLayer):
+ (WebCore::FillLayer::operator=):
+ (WebCore::FillLayer::operator==):
+ (WebCore::FillLayer::fillUnsetProperties):
+ * rendering/style/FillLayer.h:
+ (WebCore::FillLayer::backgroundXOrigin):
+ (WebCore::FillLayer::backgroundYOrigin):
+ (WebCore::FillLayer::isBackgroundOriginSet):
+ (WebCore::FillLayer::clearXPosition):
+ (WebCore::FillLayer::clearYPosition):
+ (FillLayer):
+
+2012-12-10 Eric Carlson <eric.carlson@apple.com>
+
+ Add support for in-band text tracks to Mac port
+ https://bugs.webkit.org/show_bug.cgi?id=103663
+
+ Reviewed by Sam Weinig.
+
+ Test: media/track/track-in-band.html
+
+ * GNUmakefile.list.am: Move InbandTextTrackPrivate.h to platform/graphics. Add InbandTextTrackPrivateClient.h.
+ * Target.pri: Ditto.
+ * WebCore.gypi: Ditto.
+
+ * WebCore.xcodeproj/project.pbxproj: Add new files.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::setReadyState): No need to call processInbandTextTracks, in-band tracks
+ are now registered by the media engine as they are discovered.
+ (WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): New, called by the media player when a new
+ in-band track is found.
+ (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): New, called by the media player when an
+ in-band track goes away.
+ * html/HTMLMediaElement.h:
+
+ * html/track/InbandTextTrack.cpp:
+ (WebCore::InbandTextTrack::InbandTextTrack): Use m_private instead of tracksPrivate because
+ it is zeroed during assignment.
+
+ * platform/graphics/MediaPlayer.cpp:
+ (WebCore::MediaPlayer::addTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
+ to add a new in-band track.
+ (WebCore::MediaPlayer::removeTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
+ to remove a new in-band track.
+ * platform/graphics/MediaPlayer.h:
+ * platform/graphics/MediaPlayerPrivate.h:
+
+ * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Added.
+ (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF):
+ (WebCore::InbandTextTrackPrivateAVF::~InbandTextTrackPrivateAVF):
+ (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Convert an attribute string into WebVTT
+ cue setting and content strings.
+ (WebCore::InbandTextTrackPrivateAVF::processCue): Process a new cue.
+ (WebCore::InbandTextTrackPrivateAVF::disconnect): Clear member variables.
+ (WebCore::InbandTextTrackPrivateAVF::resetCueValues): Reset cue values to defaults.
+ (WebCore::InbandTextTrackPrivateAVF::setMode): Set track mode and call player's trackModeChanged.
+ * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Added.
+
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: Initialize
+ m_inbandTrackConfigurationPending.
+ (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
+ (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Flush the currently accumulating
+ cue so it doesn't get the wrong duration.
+ (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Handle InbandTracksNeedConfiguration.
+ (WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): New, pass the current cue up to the client.
+ (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Configure in-band tracks.
+ (WebCore::MediaPlayerPrivateAVFoundation::trackModeChanged): Schedule a call to configureInbandTracks.
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
+
+ * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Added.
+ * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm: Added.
+ (WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC):
+ (WebCore::InbandTextTrackPrivateAVFObjC::disconnect):
+ (WebCore::InbandTextTrackPrivateAVFObjC::kind): Return track kind.
+ (WebCore::InbandTextTrackPrivateAVFObjC::label): Return track label.
+ (WebCore::InbandTextTrackPrivateAVFObjC::language): Return track language.
+ (WebCore::InbandTextTrackPrivateAVFObjC::isDefault):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+ (MediaPlayerPrivateAVFoundationObjC):
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItem):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize m_currentTrack.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_legibleOutput.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Create and initialize m_legibleOutput.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Called when the player item's
+ "tracks" changes, add and remove in-band text tracks as necessary.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass an attributed string to the current
+ track to be processed.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Tell AVFoundation to select an in-band track.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTrack): Return the current track.
+ (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]): Legible
+ output delegate.
+
+2012-12-10 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: fix front-end compilation warnings
+ https://bugs.webkit.org/show_bug.cgi?id=104557
+
+ Reviewed by Alexander Pavlov.
+
+ Corresponding annotations added.
+
+ * inspector/Inspector.json:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::highlightNode):
+ * inspector/InspectorDOMAgent.h:
+ (InspectorDOMAgent):
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleDeclaration.prototype.):
+ (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
+ * inspector/front-end/DOMAgent.js:
+ (WebInspector.DOMAgent.prototype.highlightDOMNode):
+ * inspector/front-end/DOMPresentationUtils.js:
+ (WebInspector.DOMPresentationUtils.linkifyNodeReference):
+ * inspector/front-end/ObjectPropertiesSection.js:
+ (WebInspector.ObjectPropertyTreeElement.prototype.update):
+ * inspector/front-end/Toolbar.js:
+
+2012-12-10 Zeno Albisser <zeno@webkit.org>
+
+ [Qt] MediaPlayerQTKit broken after switching QPainter to raster engine.
+ https://bugs.webkit.org/show_bug.cgi?id=104550
+
+ With Qt5 QPainter changed to using the raster engine.
+ Therefore we no longer have an NSGraphicsContext that we can
+ use for drawing video frames.
+ With this patch we are rendering the video frame into an image buffer
+ and then paint it manually using QPainter.
+
+ Reviewed by Simon Hausmann.
+
+ * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+ (WebCore):
+ (WebCore::swapBgrToRgb):
+ Swap the color format from BGR to RGB,
+ since BGR is not supported by QImage.
+ (WebCore::MediaPlayerPrivateQTKit::paint):
+
+2012-12-10 peavo@outlook.com <peavo@outlook.com>
+
+ [WinCairo] Link fix in InspectorController.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=104556
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController): Added missing #if check.
+
+2012-12-10 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: remove the Overrides / Settings context menu from gear icon
+ https://bugs.webkit.org/show_bug.cgi?id=104546
+
+ Reviewed by Alexander Pavlov.
+
+ It sounds like too many people don't like the way it works. Bringing things back: overrides will be a tab in settings for now.
+ Moving present behavior to under experiment.
+
+ * inspector/front-end/OverridesView.js:
+ (WebInspector.OverridesView):
+ * inspector/front-end/Settings.js:
+ (WebInspector.ExperimentsSettings):
+ * inspector/front-end/SettingsScreen.js:
+ (WebInspector.OverridesSettingsTab):
+ (WebInspector.SettingsController):
+ (WebInspector.SettingsController.prototype.get statusBarItem):
+ (WebInspector.SettingsController.prototype._mouseDown.showSettings):
+ (WebInspector.SettingsController.prototype._mouseDown):
+ (WebInspector.SettingsController.prototype._mouseUp):
+ * inspector/front-end/helpScreen.css:
+ (#settings-screen .tabbed-pane-header):
+ (#settings-screen .tabbed-pane-header-tabs):
+ (#settings-screen .tabbed-pane-header-tab):
+
+2012-12-10 Kent Tamura <tkent@chromium.org>
+
+ Visual order of empty value placeholder in INPUT_MULTIPLE_FIELDS_UI is wrong in RTL
+ https://bugs.webkit.org/show_bug.cgi?id=104438
+
+ Reviewed by Hajime Morita.
+
+ No new tests. This updates datetimelocal-appearance-l10n.html for he-il
+ and ar-eg locales.
+
+ * html/shadow/DateTimeNumericFieldElement.cpp:
+ (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
+ We should not append Right-to-left-mark to each of placeholder
+ strings. It makes numeric field separators such as ':' and '/' RTL, and
+ makes a wrong visual order. We use unicode-bidi:bidi-override and
+ direction:ltr instead. It means we force LTR only to this element
+ * html/shadow/DateTimeNumericFieldElement.h:
+ Makes m_placeholder const again.
+ * html/shadow/DateTimeEditElement.cpp:
+ (WebCore::DateTimeEditBuilder::visitLiteral):
+ Explicitly set right-to-left-mark before S, WS, ON types according to
+ Unicod Bidirectional Algorithm Table 4 [1]. This is needed because we
+ don't have context like "This literal follows European/Arabic numbers"
+ in a case of showing placeholders.
+ [1] http://www.unicode.org/reports/tr9/#Bidirectional_Character_Types
+
+2012-12-09 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
+
+ [Soup] utilize multipart/x-mixed-replace support recently added to libsoup
+ https://bugs.webkit.org/show_bug.cgi?id=94515
+
+ Reviewed by Martin Robinson.
+
+ The multipart/x-mixed-replace content type is often used for providing
+ "push" server support, with each part in the multipart response
+ replacing the previous one in the rendering. Soup recently acquired
+ support for multipart/x-mixed replace, which this change utilizes.
+
+ Covered by existing multipart/x-mixed-replace tests.
+
+ * platform/network/ResourceHandleInternal.h:
+ (ResourceHandleInternal): add new member to this class, the multipart input stream
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::cleanupSoupRequestOperation): also clear the multipart input stream on
+ cleanup
+ (WebCore::nextPartCallback): callback that handles reporting the new response delivered
+ with the new part, if any; uses the factored out updateFromSoupMessageHeaders method
+ (WebCore::sendRequestCallback): handle multipart/x-mixed-replace responses by
+ requesting the next part
+ (WebCore::readCallback): when reading has finished, request the next part when
+ handling a multipart/x-mixed-replace response
+ * platform/network/soup/ResourceResponse.h:
+ (ResourceResponse): add declaration for new method
+ * platform/network/soup/ResourceResponseSoup.cpp:
+ (WebCore::ResourceResponse::updateFromSoupMessage): call new updateFromSoupMessageHeaders
+ method, instead of dealing with the message headers directly
+ (WebCore::ResourceResponse::updateFromSoupMessageHeaders): new method, factored out from
+ updateFromSoupMessage, so this same code can be reused for updating responses for
+ multipart/x-mixed-replace responses parts
+
+2012-12-10 Zoltan Nyul <zoltan.nyul@intel.com>
+
+ Implement testRunner.setViewModeMediaFeature() in WebKitTestRunner
+ https://bugs.webkit.org/show_bug.cgi?id=103886
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Export symbol for WebCore::Page::setViewMode on Mac.
+
+ No new tests, no behavior change for layout tests.
+
+ * WebCore.exp.in:
+
+2012-12-10 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Bring Harfbuzz-ng support to Gtk
+ https://bugs.webkit.org/show_bug.cgi?id=92098
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Enable HarfBuzz support by default. With the Freetype backend we no longer
+ fall back to Pango for rendering complex text.
+
+ No new tests. This is covered by existing tests.
+
+ * GNUmakefile.am: Add HarfBuzz include directories and define.
+ * GNUmakefile.list.am: Add HarfBuzz files to source list and remove
+ Pango ones.
+ * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
+ (WebCore::FontPlatformData::operator==): To properly render fallback
+ fonts via HarfBuzz , it's important that we actually ask Fontconfig
+ whether or not two patterns are the same. This ensures that when patterns
+ are just copies of one another they only take up one slot in the font cache
+ and appear to be the same font to HarfBuzzShaper.
+
+2012-12-10 Alexander Pavlov <apavlov@chromium.org>
+
+ Web Inspector: [Overrides] Unable to change values in Device Metrics override setting
+ https://bugs.webkit.org/show_bug.cgi?id=104542
+
+ Reviewed by Vsevolod Vlasov.
+
+ Remove inadvertent object property assignment.
+
+ * inspector/front-end/OverridesView.js:
+
+2012-12-10 Michael Brüning <michael.bruning@digia.com>
+
+ [Qt] Builds for Mac are tied to the OS system instead of the SDK version.
+ https://bugs.webkit.org/show_bug.cgi?id=104529
+
+ Reviewed by Simon Hausmann.
+
+ Using work by Eike Ziller <eike.ziller@digia.com>.
+
+ The build system now first tries to assign the correct system libraries
+ for the SDK being used for Mac builds. If this does not yield any
+ result, it falls back to using the Mac OS version to determine the
+ correct library.
+
+ No new tests (not applicable).
+
+ * WebCore.pri:
+
+2012-12-10 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed: touch RenderingAllInOne.cpp to fix Apple Windows builder.
+
+ * rendering/RenderingAllInOne.cpp:
+
+2012-12-10 Eugene Klyuchnikov <eustas@chromium.org>
+
+ Web Inspector: Network: newly added items are not filtered.
+ https://bugs.webkit.org/show_bug.cgi?id=104021
+
+ Reviewed by Vsevolod Vlasov.
+
+ Extracted method to higlight/hide record according to filter.
+ Used this method to process newly created records.
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkLogView.prototype._applyFilter): Extracted.
+ (WebInspector.NetworkLogView.prototype.performFilter): Refactored.
+
+2012-12-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Unreviewed: move reportMemoryUsage to public section.
+
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderBox.h:
+ (RenderBox):
+
+2012-12-08 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: adds an option to remove toolbar icons.
+ https://bugs.webkit.org/show_bug.cgi?id=95654
+
+ Reviewed by Vsevolod Vlasov.
+
+ - removes compact mode in favor or dock-to-bottom
+ - introduces setting for hiding toolbar icons
+
+ * inspector/front-end/DockController.js:
+ (WebInspector.DockController.prototype._toggleDockState):
+ * inspector/front-end/Settings.js:
+ (WebInspector.ExperimentsSettings):
+ * inspector/front-end/Toolbar.js:
+ (WebInspector.Toolbar.prototype.setDockedToBottom):
+ (WebInspector.Toolbar.prototype._toolbarDragStart):
+ (WebInspector.Toolbar.prototype._toolbarDrag):
+ * inspector/front-end/helpScreen.css:
+ (body.dock-to-bottom .help-content):
+ * inspector/front-end/inspector.css:
+ (body.dock-to-bottom #toolbar):
+ (body.no-toolbar-icons #toolbar):
+ (body.dock-to-bottom.port-qt #toolbar):
+ (body.dock-to-bottom.inactive #toolbar):
+ (body.no-toolbar-icons .toolbar-item.toggleable):
+ (body.dock-to-bottom .toolbar-item.toggleable):
+ (body.dock-to-bottom .toolbar-icon):
+ (body.no-toolbar-icons .toolbar-icon):
+ (body.no-toolbar-icons #main):
+ (body.dock-to-bottom .toolbar-icon.custom-toolbar-icon):
+ (body.dock-to-bottom .toolbar-item:active .toolbar-icon):
+ (body.dock-to-bottom .toolbar-label):
+ (body.dock-to-bottom #search-toolbar-label):
+ (body.no-toolbar-icons .toolbar-label):
+ (body.no-toolbar-icons #toolbar-dropdown):
+ (#toolbar-dropdown .scrollable-content):
+ (#toolbar-dropdown .toolbar-item.toggleable:hover):
+ (body.no-toolbar-icons #toolbar-dropdown .toolbar-label):
+ (body.no-toolbar-icons #toolbar-dropdown .toolbar-item):
+ (body.dock-to-bottom .toolbar-item.resources .toolbar-icon):
+ (body.dock-to-bottom .toolbar-item.network .toolbar-icon):
+ (body.dock-to-bottom .toolbar-item.scripts .toolbar-icon):
+ (body.dock-to-bottom .toolbar-item.timeline .toolbar-icon):
+ (body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
+ (body.dock-to-bottom .toolbar-item.audits .toolbar-icon):
+ (body.dock-to-bottom .toolbar-item.console .toolbar-icon):
+ (body.dock-to-bottom.port-qt .toolbar-item.close-left, body.dock-to-bottom.port-qt .toolbar-item.close-right):
+ (body.dock-to-bottom #main):
+
+2012-12-10 Kent Tamura <tkent@chromium.org>
+
+ Refactoring: Remove HTMLFormControlElement::autofocus
+ https://bugs.webkit.org/show_bug.cgi?id=104524
+
+ Reviewed by Kentaro Hara.
+
+ autofocus function is used only by HTMLFormControlElement itself, no
+ sub-classes override it, and it is not exposed via an IDL attribute,
+
+ No new tests. This doesn't make any behavior changes.
+
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::shouldAutofocus): Use fastHasAttribute instead of autofocus().
+ * html/HTMLFormControlElement.h: Remove autofocus().
+
+2012-12-10 Jonathan Liu <net147@gmail.com>
+
+ Fix GC3Dintptr and GC3Dsizeiptr typedefs for Win64
+ https://bugs.webkit.org/show_bug.cgi?id=104426
+
+ Reviewed by Simon Hausmann.
+
+ The GC3Dintptr and GC3Dsizeiptr typedefs are incorrect for Win64 as
+ LLP64 is used there. This would result in compile error due to
+ narrowing conversion of 64-bit pointer to signed long int which is
+ 32-bit.
+
+ * platform/graphics/GraphicsTypes3D.h:
+
+2012-12-10 Kent Tamura <tkent@chromium.org>
+
+ Refactoring: Introduce HTMLFormControlElement::isDisabledOrReadOnly
+ https://bugs.webkit.org/show_bug.cgi?id=104508
+
+ Reviewed by Kentaro Hara.
+
+ We have a lot of code like element->disabled || element->readOnly().
+ isDisabledOrReadOnly makes them simpler.
+
+ No new tests. This make no behaivor change.
+
+ * html/HTMLFormControlElement.h:
+ (WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
+ Added. Note that the implmentation of disabled() is not just "return m_disabled;".
+
+ * html/BaseChooserOnlyDateAndTimeInputType.cpp:
+ (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
+ Use isDisabledOrReadOnly.
+ * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Ditto.
+ * html/ColorInputType.cpp:
+ (WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
+ (WebCore::ColorInputType::didChooseColor): Ditto.
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::recalcWillValidate): Ditto.
+ * html/HTMLTextAreaElement.h:
+ (WebCore::HTMLTextAreaElement::valueMissing): Ditto.
+ * html/RangeInputType.cpp:
+ (WebCore::RangeInputType::handleMouseDownEvent): Ditto.
+ (WebCore::RangeInputType::handleTouchEvent): Ditto.
+ (WebCore::RangeInputType::handleKeydownEvent): Ditto.
+ * html/SearchInputType.cpp:
+ (WebCore::SearchInputType::handleKeydownEvent): Ditto.
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Ditto.
+ (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
+ * html/shadow/TextControlInnerElements.cpp:
+ (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Ditto.
+ (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Ditto.
+ (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Ditto.
+ * html/shadow/TextFieldDecorationElement.cpp:
+ (WebCore::TextFieldDecorationElement::defaultEventHandler): Ditto.
+ (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Ditto.
+ (WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents): Ditto.
+
+2012-12-10 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: console broken? - console.dirxml behaves like console.log
+ https://bugs.webkit.org/show_bug.cgi?id=104245
+
+ Reviewed by Vsevolod Vlasov.
+
+ Do not generate preview for dirxml.
+
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
+
+2012-12-10 Kent Tamura <tkent@chromium.org>
+
+ Refactoring: Remove HTMLFormControlElement::setDisabled
+ https://bugs.webkit.org/show_bug.cgi?id=104510
+
+ Reviewed by Kentaro Hara.
+
+ Remove it because the number of call sites is only one, and the
+ setDisabled implementation is equivalent to setBooleanAttribute.
+
+ No new tests. This should not make behavior changes.
+
+ * html/HTMLFormControlElement.cpp: Remove setDisabled.
+ * html/HTMLFormControlElement.h: Ditto.
+ * html/FileInputType.cpp:
+ (WebCore::FileInputType::disabledAttributeChanged):
+ Replace setDisabled with setBooleanAttribute.
+
+2012-12-10 Hajime Morrita <morrita@google.com>
+
+ [Shadow DOM][Refacdtoring] nextTo() and previousTo() can be part of ContentDistribution
+ https://bugs.webkit.org/show_bug.cgi?id=104514
+
+ Reviewed by Kentaro Hara.
+
+ InsertionPoint::nextTo() and InsertionPoint::previousTo() are an
+ query to distributed nodes, which is what ContentDistribution
+ represents. We can move them to better home.
+
+ No new tests. No behavior change.
+
+ * html/shadow/ContentDistributor.cpp:
+ (WebCore::ContentDistribution::nextTo): Moved from InsertionPoint
+ (WebCore):
+ (WebCore::ContentDistribution::previousTo): Moved from InsertionPoint
+ * html/shadow/ContentDistributor.h:
+ (ContentDistribution):
+ * html/shadow/InsertionPoint.cpp:
+ * html/shadow/InsertionPoint.h:
+ (WebCore::InsertionPoint::nextTo): Delegated to ContentDistribution
+ (WebCore::InsertionPoint::previousTo): Delegated to ContentDistribution
+
+2012-12-10 Joanmarie Diggs <jdiggs@igalia.com>
+
+ [GTK] accessibility/language-attribute.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=98369
+
+ Reviewed by Chris Fleizach.
+
+ The test is failing for two reasons: Not exposing the language
+ for accessible objects and AccessibilityUIElement::language() not
+ being implemented.
+
+ No new tests; instead, unskipped the previously-failing test.
+
+ * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
+ (getAttributeSetForAccessibilityObject): Expose the language via AtkText attribute
+
+2012-12-09 Takashi Sakamoto <tasak@google.com>
+
+ [Shadow DOM]: reset-style-inheritance doesn't work for insertion point
+ https://bugs.webkit.org/show_bug.cgi?id=103711
+
+ Reviewed by Hajime Morita.
+
+ reset-style-inheritance can be specified by using insertion points'
+ attribute, e.g. <content reset-style-inheritance>.
+ c.f. shadow dom spec:
+ https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
+
+ No new tests. Updated an existing test,
+ fast/dom/shadow/insertion-point-resetStyleInheritance.html to cover
+ this feature.
+
+ * html/HTMLAttributeNames.in:
+ Added HTMLNames::reset_style_inheritanceAttr.
+ * html/shadow/InsertionPoint.cpp:
+ (WebCore::InsertionPoint::InsertionPoint):
+ (WebCore::InsertionPoint::parseAttribute):
+ Since both shadow and content elements have to support
+ reset-style-inheritance, added InsertionPoint::parseAttribute.
+ (WebCore::InsertionPoint::resetStyleInheritance):
+ (WebCore::InsertionPoint::setResetStyleInheritance):
+ Modified to update reset-style-inheritance attribute value.
+ * html/shadow/InsertionPoint.h:
+ (InsertionPoint):
+ Removed m_shouldResetStyleInheritance. Instead, use
+ reset-style-inheritance attribute value.
+
+2012-12-09 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Native Memory Instrumentation: instrument a part of RenderObject class tree.
+ https://bugs.webkit.org/show_bug.cgi?id=103564
+
+ Reviewed by Eric Seidel.
+
+ Many RenderObject descendants have OwnPtrs and RefPtrs members.
+ Looks like we have to instrument all the RenderObject classes and visit
+ all the render objects instead of counting entire render arena memory.
+
+ * WebCore.exp.in:
+ * dom/Node.cpp:
+ (WebCore::Node::reportMemoryUsage):
+ * dom/WebCoreMemoryInstrumentation.cpp:
+ (WebCore):
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore::reportRenderTreeInfo):
+ (WebCore):
+ * platform/PlatformMemoryInstrumentation.cpp:
+ (WebCore):
+ * platform/PlatformMemoryInstrumentation.h:
+ (PlatformMemoryTypes):
+ * platform/graphics/GraphicsLayer.cpp:
+ (WebCore::GraphicsLayer::reportMemoryUsage):
+ (WebCore):
+ * platform/graphics/GraphicsLayer.h:
+ (GraphicsLayer):
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ (WebCore::GraphicsLayerChromium::reportMemoryUsage):
+ (WebCore):
+ * platform/graphics/chromium/GraphicsLayerChromium.h:
+ (GraphicsLayerChromium):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderBox.h:
+ (RenderBox):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderInline.h:
+ (RenderInline):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayerCompositor.h:
+ (RenderLayerCompositor):
+ * rendering/RenderLayerModelObject.cpp:
+ (WebCore::RenderLayerModelObject::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderLayerModelObject.h:
+ (RenderLayerModelObject):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderObject.h:
+ (RenderObject):
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderText.h:
+ (RenderText):
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::reportMemoryUsage):
+ (WebCore):
+ * rendering/RenderView.h:
+ (RenderView):
+
+2012-12-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ REGRESSION (r137003): failures in MicroData tests on EFL, GTK
+ https://bugs.webkit.org/show_bug.cgi?id=104469
+
+ Reviewed by Darin Adler.
+
+ Fix the regression by calling propertyNodeList on HTMLPropertiesCollection
+ in the named getter for HTMLCollection. It's a miracle that the old code prior to r137003
+ worked at all since the return type of namedItem was different.
+
+ Existing tests cover this.
+
+ * bindings/js/JSHTMLCollectionCustom.cpp:
+ (WebCore::JSHTMLCollection::nameGetter):
+ * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
+ (WebCore::V8HTMLCollection::namedPropertyGetter):
+
+2012-12-09 Joanmarie Diggs <jdiggs@igalia.com>
+
+ [GTK] accessibility/placeholder.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=98373
+
+ Reviewed by Martin Robinson.
+
+ The test was failing because the placeholder text was not supported and
+ AccessibilityUIElement::stringAttributeValue() was not implemented.
+
+ No new tests; instead the failing test was unskipped.
+
+ * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+ (webkitAccessibleGetAttributes): Add the placeholder text as an AtkAttribute
+ of the AtkObject, as is done in Gtk+ 3.
+
+2012-12-09 Kondapally Kalyan <kalyan.kondapally@intel.com>
+
+ [EFL] [WebGL] Path is not resized correctly.
+ https://bugs.webkit.org/show_bug.cgi?id=104458.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ In GraphicsContext3D::paintToCanvas, we flip the contents and draw on the surface.
+ The operations done to flip the image (translation and scale) are done before rectangle with correct size
+ is added to current path. This resulted in updating pixels at wrong positions.
+
+ Covered by existing tests.
+
+ * platform/graphics/efl/GraphicsContext3DEfl.cpp:
+ (WebCore::GraphicsContext3D::paintToCanvas):
+
+2012-12-09 Joone Hur <joone.hur@intel.com>
+
+ [GTK][AC] build fix after r130525 and r133332
+ https://bugs.webkit.org/show_bug.cgi?id=104491
+
+ Reviewed by Martin Robinson.
+
+ Build fix for Accelerated Compositing Clutter backend after r130525 and r133332.
+
+ * platform/graphics/clutter/GraphicsLayerClutter.cpp:
+ * platform/gtk/RedirectedXCompositeWindow.cpp:
+ * platform/gtk/RedirectedXCompositeWindow.h:
+
+2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Use GObject casts instead of C++ cast for GObjects in DOM bindings
+ https://bugs.webkit.org/show_bug.cgi?id=104492
+
+ Reviewed by Martin Robinson.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ (GenerateCFile):
+ * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
+ (WebKit::kit):
+ * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
+ (WebKit::kit):
+
+2012-12-09 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: do not treat object as equal to itself when logging to console
+ https://bugs.webkit.org/show_bug.cgi?id=104487
+
+ Reviewed by Alexander Pavlov.
+
+ Otherwise, mutating object in a loop results in the repeat count update instead of generation of the new preview.
+
+ Test: inspector/console/console-object-preview.html
+
+ * inspector/ConsoleMessage.cpp:
+ (WebCore::ConsoleMessage::isEqual):
+
+2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Remove unused code in GObject DOM bindings generator
+ https://bugs.webkit.org/show_bug.cgi?id=104490
+
+ Reviewed by Martin Robinson.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ (GenerateProperties): Remove code to install event listeners and
+ signals.
+
+2012-12-09 Zan Dobersek <zandobersek@gmail.com>
+
+ Unreviewed update for the GObject bindings after r137074 and r137078.
+
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
+ (webkit_dom_test_event_target_dispatch_event):
+ * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
+ (webkit_dom_test_interface_supplemental_method2):
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
+ (webkit_dom_test_obj_method_with_exception):
+ (webkit_dom_test_obj_with_script_state_void_exception):
+ (webkit_dom_test_obj_with_script_state_obj_exception):
+ (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
+ (webkit_dom_test_obj_strict_function):
+ (webkit_dom_test_obj_get_attr_with_getter_exception):
+ (webkit_dom_test_obj_set_attr_with_setter_exception):
+ (webkit_dom_test_obj_get_string_attr_with_getter_exception):
+ (webkit_dom_test_obj_set_string_attr_with_setter_exception):
+ (webkit_dom_test_obj_get_with_script_state_attribute_raises):
+ (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
+ (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
+
+2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Fix the GError check in GObject DOM bindings.
+
+ Reviewed by Xan Lopez.
+
+ Previous commit introduced a check to make sure the passed GError
+ is valid in all DOM methods receiving an error.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ (GetGReturnMacro): Check that the passed GError either is NULL or
+ the pointer has been initialized to NULL.
+
+2012-12-09 Leo Yang <leoyang@rim.com>
+
+ [BlackBerry] Adapt to name change of createNetworkBufferByCopyingData()
+ https://bugs.webkit.org/show_bug.cgi?id=104449
+
+ Reviewed by Rob Buis.
+
+ Name change no new tests.
+
+ * platform/network/blackberry/rss/RSSFilterStream.cpp:
+ (WebCore::RSSFilterStream::handleRSSContent):
+
+2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Clean up g_return macros usage in GObject DOM bindings
+ https://bugs.webkit.org/show_bug.cgi?id=101079
+
+ Reviewed by Xan Lopez.
+
+ Several improvements:
+
+ - Move g_return macros at the beginning of the methods.
+ - Use them only to check parameters of public API.
+ - Use GObject macros to check GObjects.
+ - Check also GError parameters.
+ - Use early returns in kit and core methods, since they should
+ work even if g_return macros are disabled handling NULL
+ gracefully.
+
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ (GetGReturnMacro):
+ (GenerateFunction):
+ (GenerateCFile):
+ (Generate):
+ * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapFloat64Array):
+ (webkit_dom_float64array_foo):
+ * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestActiveDOMObject):
+ (webkit_dom_test_active_dom_object_exciting_function):
+ (webkit_dom_test_active_dom_object_post_message):
+ (webkit_dom_test_active_dom_object_get_exciting_attr):
+ * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestCallback):
+ (webkit_dom_test_callback_callback_with_no_param):
+ (webkit_dom_test_callback_callback_with_class1param):
+ (webkit_dom_test_callback_callback_with_class2param):
+ (webkit_dom_test_callback_callback_with_non_bool_return_type):
+ (webkit_dom_test_callback_callback_with_string_list):
+ (webkit_dom_test_callback_callback_with_boolean):
+ (webkit_dom_test_callback_callback_requires_this_to_pass):
+ * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestCustomNamedGetter):
+ (webkit_dom_test_custom_named_getter_another_function):
+ * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestEventConstructor):
+ (webkit_dom_test_event_constructor_get_attr1):
+ (webkit_dom_test_event_constructor_get_attr2):
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestEventTarget):
+ (webkit_dom_test_event_target_item):
+ (webkit_dom_test_event_target_dispatch_event):
+ * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestException):
+ (webkit_dom_test_exception_get_name):
+ * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestInterface):
+ (webkit_dom_test_interface_supplemental_method1):
+ (webkit_dom_test_interface_supplemental_method2):
+ (webkit_dom_test_interface_supplemental_method4):
+ (webkit_dom_test_interface_get_supplemental_str1):
+ (webkit_dom_test_interface_get_supplemental_str2):
+ (webkit_dom_test_interface_set_supplemental_str2):
+ (webkit_dom_test_interface_get_supplemental_node):
+ (webkit_dom_test_interface_set_supplemental_node):
+ * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestMediaQueryListListener):
+ * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestNamedConstructor):
+ * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestNode):
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestObj):
+ (webkit_dom_test_obj_void_method):
+ (webkit_dom_test_obj_void_method_with_args):
+ (webkit_dom_test_obj_long_method):
+ (webkit_dom_test_obj_long_method_with_args):
+ (webkit_dom_test_obj_obj_method):
+ (webkit_dom_test_obj_obj_method_with_args):
+ (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
+ (webkit_dom_test_obj_serialized_value):
+ (webkit_dom_test_obj_idb_key):
+ (webkit_dom_test_obj_options_object):
+ (webkit_dom_test_obj_method_with_exception):
+ (webkit_dom_test_obj_with_script_state_void):
+ (webkit_dom_test_obj_with_script_state_obj):
+ (webkit_dom_test_obj_with_script_state_void_exception):
+ (webkit_dom_test_obj_with_script_state_obj_exception):
+ (webkit_dom_test_obj_with_script_execution_context):
+ (webkit_dom_test_obj_with_script_execution_context_and_script_state):
+ (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
+ (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
+ (webkit_dom_test_obj_method_with_optional_arg):
+ (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
+ (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
+ (webkit_dom_test_obj_method_with_optional_string):
+ (webkit_dom_test_obj_method_with_optional_string_is_undefined):
+ (webkit_dom_test_obj_method_with_optional_string_is_null_string):
+ (webkit_dom_test_obj_conditional_method1):
+ (webkit_dom_test_obj_conditional_method2):
+ (webkit_dom_test_obj_conditional_method3):
+ (webkit_dom_test_obj_class_method):
+ (webkit_dom_test_obj_class_method_with_optional):
+ (webkit_dom_test_obj_overloaded_method1):
+ (webkit_dom_test_obj_convert1):
+ (webkit_dom_test_obj_convert2):
+ (webkit_dom_test_obj_convert4):
+ (webkit_dom_test_obj_convert5):
+ (webkit_dom_test_obj_mutable_point_function):
+ (webkit_dom_test_obj_immutable_point_function):
+ (webkit_dom_test_obj_orange):
+ (webkit_dom_test_obj_strict_function):
+ (webkit_dom_test_obj_variadic_string_method):
+ (webkit_dom_test_obj_variadic_double_method):
+ (webkit_dom_test_obj_variadic_node_method):
+ (webkit_dom_test_obj_get_read_only_long_attr):
+ (webkit_dom_test_obj_get_read_only_string_attr):
+ (webkit_dom_test_obj_get_read_only_test_obj_attr):
+ (webkit_dom_test_obj_get_short_attr):
+ (webkit_dom_test_obj_set_short_attr):
+ (webkit_dom_test_obj_get_unsigned_short_attr):
+ (webkit_dom_test_obj_set_unsigned_short_attr):
+ (webkit_dom_test_obj_get_long_attr):
+ (webkit_dom_test_obj_set_long_attr):
+ (webkit_dom_test_obj_get_long_long_attr):
+ (webkit_dom_test_obj_set_long_long_attr):
+ (webkit_dom_test_obj_get_unsigned_long_long_attr):
+ (webkit_dom_test_obj_set_unsigned_long_long_attr):
+ (webkit_dom_test_obj_get_string_attr):
+ (webkit_dom_test_obj_set_string_attr):
+ (webkit_dom_test_obj_get_test_obj_attr):
+ (webkit_dom_test_obj_set_test_obj_attr):
+ (webkit_dom_test_obj_get_xml_obj_attr):
+ (webkit_dom_test_obj_set_xml_obj_attr):
+ (webkit_dom_test_obj_get_create):
+ (webkit_dom_test_obj_set_create):
+ (webkit_dom_test_obj_get_reflected_string_attr):
+ (webkit_dom_test_obj_set_reflected_string_attr):
+ (webkit_dom_test_obj_get_reflected_integral_attr):
+ (webkit_dom_test_obj_set_reflected_integral_attr):
+ (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
+ (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
+ (webkit_dom_test_obj_get_reflected_boolean_attr):
+ (webkit_dom_test_obj_set_reflected_boolean_attr):
+ (webkit_dom_test_obj_get_reflected_url_attr):
+ (webkit_dom_test_obj_set_reflected_url_attr):
+ (webkit_dom_test_obj_get_reflected_custom_integral_attr):
+ (webkit_dom_test_obj_set_reflected_custom_integral_attr):
+ (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
+ (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
+ (webkit_dom_test_obj_get_reflected_custom_url_attr):
+ (webkit_dom_test_obj_set_reflected_custom_url_attr):
+ (webkit_dom_test_obj_get_attr_with_getter_exception):
+ (webkit_dom_test_obj_set_attr_with_getter_exception):
+ (webkit_dom_test_obj_get_attr_with_setter_exception):
+ (webkit_dom_test_obj_set_attr_with_setter_exception):
+ (webkit_dom_test_obj_get_string_attr_with_getter_exception):
+ (webkit_dom_test_obj_set_string_attr_with_getter_exception):
+ (webkit_dom_test_obj_get_string_attr_with_setter_exception):
+ (webkit_dom_test_obj_set_string_attr_with_setter_exception):
+ (webkit_dom_test_obj_get_with_script_state_attribute):
+ (webkit_dom_test_obj_set_with_script_state_attribute):
+ (webkit_dom_test_obj_get_with_script_execution_context_attribute):
+ (webkit_dom_test_obj_set_with_script_execution_context_attribute):
+ (webkit_dom_test_obj_get_with_script_state_attribute_raises):
+ (webkit_dom_test_obj_set_with_script_state_attribute_raises):
+ (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
+ (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
+ (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
+ (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
+ (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
+ (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
+ (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
+ (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
+ (webkit_dom_test_obj_get_conditional_attr1):
+ (webkit_dom_test_obj_set_conditional_attr1):
+ (webkit_dom_test_obj_get_conditional_attr2):
+ (webkit_dom_test_obj_set_conditional_attr2):
+ (webkit_dom_test_obj_get_conditional_attr3):
+ (webkit_dom_test_obj_set_conditional_attr3):
+ (webkit_dom_test_obj_get_any_attribute):
+ (webkit_dom_test_obj_set_any_attribute):
+ (webkit_dom_test_obj_get_content_document):
+ (webkit_dom_test_obj_get_mutable_point):
+ (webkit_dom_test_obj_set_mutable_point):
+ (webkit_dom_test_obj_get_immutable_point):
+ (webkit_dom_test_obj_set_immutable_point):
+ (webkit_dom_test_obj_get_strawberry):
+ (webkit_dom_test_obj_set_strawberry):
+ (webkit_dom_test_obj_get_strict_float):
+ (webkit_dom_test_obj_set_strict_float):
+ (webkit_dom_test_obj_get_description):
+ (webkit_dom_test_obj_get_id):
+ (webkit_dom_test_obj_set_id):
+ (webkit_dom_test_obj_get_hash):
+ (webkit_dom_test_obj_get_replaceable_attribute):
+ * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestSerializedScriptValueInterface):
+ (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
+ (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
+ (webkit_dom_test_serialized_script_value_interface_get_value):
+ (webkit_dom_test_serialized_script_value_interface_set_value):
+ (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
+ (webkit_dom_test_serialized_script_value_interface_get_cached_value):
+ (webkit_dom_test_serialized_script_value_interface_set_cached_value):
+ (webkit_dom_test_serialized_script_value_interface_get_ports):
+ (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
+
+2012-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Use a private struct and placement new syntax in GObject DOM bindings
+ https://bugs.webkit.org/show_bug.cgi?id=101074
+
+ Reviewed by Xan Lopez.
+
+ It allows to use RefPtr for the wrapped object and it simplifies
+ the code. Only the classes deriving from WebKitDOMObject keep a
+ reference of the wrapped object in a private struct. The wrapped
+ object is added to the cache in GObjectClass::constructor() and
+ removed in GObjectClass::finalize().
+
+ * bindings/gobject/WebKitDOMBinding.cpp:
+ (WebKit::createWrapper):
+ (WebKit::kit):
+ (WebKit::wrapEventTarget):
+ * bindings/scripts/CodeGeneratorGObject.pm:
+ (GetParentImplClassName):
+ (GenerateProperties):
+ (GenerateCFile):
+ (Generate):
+ (WriteData):
+ * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapFloat64Array):
+ (webkit_dom_float64array_class_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
+ (_WebKitDOMTestActiveDOMObjectPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestActiveDOMObject):
+ (webkit_dom_test_active_dom_object_finalize):
+ (webkit_dom_test_active_dom_object_constructor):
+ (webkit_dom_test_active_dom_object_class_init):
+ (webkit_dom_test_active_dom_object_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
+ (_WebKitDOMTestCallbackPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestCallback):
+ (webkit_dom_test_callback_finalize):
+ (webkit_dom_test_callback_constructor):
+ (webkit_dom_test_callback_class_init):
+ (webkit_dom_test_callback_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
+ (_WebKitDOMTestCustomNamedGetterPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestCustomNamedGetter):
+ (webkit_dom_test_custom_named_getter_finalize):
+ (webkit_dom_test_custom_named_getter_constructor):
+ (webkit_dom_test_custom_named_getter_class_init):
+ (webkit_dom_test_custom_named_getter_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
+ (_WebKitDOMTestEventConstructorPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestEventConstructor):
+ (webkit_dom_test_event_constructor_finalize):
+ (webkit_dom_test_event_constructor_constructor):
+ (webkit_dom_test_event_constructor_class_init):
+ (webkit_dom_test_event_constructor_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
+ (_WebKitDOMTestEventTargetPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestEventTarget):
+ (webkit_dom_test_event_target_finalize):
+ (webkit_dom_test_event_target_constructor):
+ (webkit_dom_test_event_target_class_init):
+ (webkit_dom_test_event_target_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
+ (_WebKitDOMTestExceptionPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestException):
+ (webkit_dom_test_exception_finalize):
+ (webkit_dom_test_exception_constructor):
+ (webkit_dom_test_exception_class_init):
+ (webkit_dom_test_exception_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
+ (_WebKitDOMTestInterfacePrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestInterface):
+ (webkit_dom_test_interface_finalize):
+ (webkit_dom_test_interface_constructor):
+ (webkit_dom_test_interface_class_init):
+ (webkit_dom_test_interface_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
+ (_WebKitDOMTestMediaQueryListListenerPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestMediaQueryListListener):
+ (webkit_dom_test_media_query_list_listener_finalize):
+ (webkit_dom_test_media_query_list_listener_constructor):
+ (webkit_dom_test_media_query_list_listener_class_init):
+ (webkit_dom_test_media_query_list_listener_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
+ (_WebKitDOMTestNamedConstructorPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestNamedConstructor):
+ (webkit_dom_test_named_constructor_finalize):
+ (webkit_dom_test_named_constructor_constructor):
+ (webkit_dom_test_named_constructor_class_init):
+ (webkit_dom_test_named_constructor_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestNode):
+ (webkit_dom_test_node_class_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ (_WebKitDOMTestObjPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestObj):
+ (webkit_dom_test_obj_finalize):
+ (webkit_dom_test_obj_constructor):
+ (webkit_dom_test_obj_class_init):
+ (webkit_dom_test_obj_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
+ (_WebKitDOMTestOverloadedConstructorsPrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestOverloadedConstructors):
+ (webkit_dom_test_overloaded_constructors_finalize):
+ (webkit_dom_test_overloaded_constructors_constructor):
+ (webkit_dom_test_overloaded_constructors_class_init):
+ (webkit_dom_test_overloaded_constructors_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
+ (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
+ (WebKit::kit):
+ (WebKit::core):
+ (WebKit::wrapTestSerializedScriptValueInterface):
+ (webkit_dom_test_serialized_script_value_interface_finalize):
+ (webkit_dom_test_serialized_script_value_interface_constructor):
+ (webkit_dom_test_serialized_script_value_interface_class_init):
+ (webkit_dom_test_serialized_script_value_interface_init):
+
+2012-12-09 Jon Lee <jonlee@apple.com>
+
+ [WK2] Move button image to injected bundle
+ https://bugs.webkit.org/show_bug.cgi?id=104107
+ <rdar://problem/12813842>
+
+ Reviewed by Simon Fraser.
+
+ Update RenderSnapshottedPlugIn to retrieve the start button image from the ChromeClient. Expand the
+ kinds of images available for use as the button. Try to find the best sized button to use for the plug-in,
+ otherwise use no image at all.
+
+ * rendering/RenderSnapshottedPlugIn.h: Add an enum representing the size to use. Remove the label rect
+ variable since it is unneeded.
+ * rendering/RenderSnapshottedPlugIn.cpp:
+ (WebCore::RenderSnapshottedPlugIn::startLabelImage): Maintain a cache of the images for reuse. Index into the
+ array using the enum. If the image has been loaded, or an attempt was made, then return the result. Otherwise
+ ask the chrome client for the image.
+ (WebCore::RenderSnapshottedPlugIn::paintLabel): Determine the proper label to use, and paint if the image is
+ available.
+ (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Compare the label size with the provided content
+ box. Return a LayoutRect representing the label's placement. If it doesn't fit, return an empty rect.
+ (WebCore::RenderSnapshottedPlugIn::layout): The rect is not needed because it is all determined at paint time.
+
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::plugInStartLabelImage): Added.
+
+ * WebCore.exp.in: Expose GraphicsContext::drawNativeImage() for WKImageCG.cpp.
+ * WebCore.xcodeproj/project.pbxproj: Remove start button assets.
+ * Resources/startButton.png: Removed.
+ * Resources/startButton@2x.png: Removed.
+
+2012-12-09 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137053.
+ http://trac.webkit.org/changeset/137053
+ https://bugs.webkit.org/show_bug.cgi?id=104471
+
+ Broke PerformanceTests/Parser/html-parser.html (Requested by
+ mkwst_ on #webkit).
+
+ * bindings/ScriptControllerBase.cpp:
+ (WebCore::ScriptController::canExecuteScripts):
+
+2012-12-09 Kangil Han <kangil.han@samsung.com>
+
+ Fix unused parameter compile warnings
+ https://bugs.webkit.org/show_bug.cgi?id=104463
+
+ Reviewed by Kentaro Hara.
+
+ Remove compile warning messages by omitting parameter name.
+
+ * platform/graphics/surfaces/GraphicsSurface.cpp:
+ (WebCore::GraphicsSurface::GraphicsSurface):
+
+2012-12-08 Rakesh KN <rakeshchaitan@gmail.com>
+
+ Build break if SVG is disabled
+ https://bugs.webkit.org/show_bug.cgi?id=104452
+
+ Reviewed by Darin Adler.
+
+ Build breaking after r136975 if SVG is disabled.
+ No new tests required.
+
+ * rendering/FilterEffectRenderer.cpp:
+ (WebCore::FilterEffectRenderer::buildReferenceFilter):
+ As document is not an argument anymore, removing UNUSED_PARAM against it.
+ * rendering/FilterEffectRenderer.h:
+ Added forward declaration for RenderObject.
+
+2012-12-08 Mike West <mkwst@chromium.org>
+
+ Log to console when script is blocked by sandbox attributes.
+ https://bugs.webkit.org/show_bug.cgi?id=104365
+
+ Reviewed by Ojan Vafai.
+
+ Adds a console message to cover script execution blocked within the
+ context of a sandboxed frame which lacks the 'allow-scripts' permission.
+
+ * bindings/ScriptControllerBase.cpp:
+ (WebCore::ScriptController::canExecuteScripts):
+ Log a warning when sandboxing flags block script execution.
+
+2012-12-08 No'am Rosenthal <noam@webkit.org>
+
+ Use background color for GraphicsLayers when applicable
+ https://bugs.webkit.org/show_bug.cgi?id=103786
+
+ Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
+ 1. The layer doesn't paint its own content, other than background/decoration.
+ 2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
+ 3. The image has only a background color, and no background image.
+ 4. background-composite is set to source-over, and background-clip is anything apart from text.
+ 5. The port supports setContentsToBackgroundColor.
+
+ This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
+ for that layer, but instead draw that solid color directly.
+ In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
+ a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
+ background-clip property.
+
+ Reviewed by Simon Fraser.
+
+ Tests: compositing/background-color/background-color-alpha.html
+ compositing/background-color/background-color-change-to-text.html
+ compositing/background-color/background-color-composite.html
+ compositing/background-color/background-color-container.html
+ compositing/background-color/background-color-content-clip.html
+ compositing/background-color/background-color-padding-change.html
+ compositing/background-color/background-color-padding-clip.html
+ compositing/background-color/background-color-simple.html
+ compositing/background-color/background-color-text-change.html
+ compositing/background-color/background-color-text-clip.html
+
+ * platform/graphics/GraphicsLayer.h:
+ (WebCore::GraphicsLayer::supportsBackgroundColorContent):
+ Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
+ Currently only the MAC implementation and TextureMapper falls under that category.
+
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::paddingBoxRect):
+ Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to
+ background-clip: padding.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
+ Update the background color if needed, for every configuration change.
+ This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
+
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ Move the contentsRect logic to updateContentsRect.
+
+ (WebCore::RenderLayerBacking::updateContentsRect):
+ Use the background box when directly compositing backgrounds.
+
+ (WebCore::RenderLayerBacking::updateBackgroundColor):
+ Set the background color if applicable, otherwise set to trasnparent and clear.
+ This was not needed in the past because background colors were only used for the special case of full-screen.
+
+ (WebCore::supportsDirectBoxDecorationsComposition):
+ Helper function to determine whether a particular background can be directly composited. Right now only
+ background color can be composited, and only if the GraphicsLayer implementation supports background colors.
+ Also we don't yet support background-clip: text and any background-composite other than source-over.
+
+ (WebCore::RenderLayerBacking::paintsBoxDecorations):
+ Apply the new supportsDirectBoxDecorationsComposition logic.
+
+ (WebCore::RenderLayerBacking::contentsBox):
+ Remove unnecessary local variable.
+
+ (WebCore::backgroundRectForBox):
+ (WebCore::RenderLayerBacking::backgroundBox):
+ Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
+ The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as
+ GraphicsLayer::contentsRect expects snapped pixels.
+
+
+2012-12-08 Patrick Gansterer <paroga@webkit.org>
+
+ Build fix for WinCE after r137011.
+
+ * platform/graphics/GraphicsContext.h:
+ * platform/graphics/wince/GraphicsContextWinCE.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ (WebCore::GraphicsContext::drawBitmap):
+ * platform/graphics/wince/ImageBufferWinCE.cpp:
+ (WebCore::BufferedImage::draw):
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/wince/ImageWinCE.cpp:
+ (WebCore::BitmapImage::getHBITMAPOfSize):
+ (WebCore::BitmapImage::drawFrameMatchingSourceSize):
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/wince/SharedBitmap.cpp:
+ (WebCore::SharedBitmap::draw):
+ * platform/graphics/wince/SharedBitmap.h:
+
+2012-12-08 Gavin Peters <gavinp@chromium.org>
+
+ Add status events on <link rel=prerender> elements.
+ https://bugs.webkit.org/show_bug.cgi?id=96474
+
+ Reviewed by Adam Barth.
+
+ The new PrerenderStatusEvent is sent to link elements when
+ prerenders are started by the embedder, and also sent when they
+ are stopped. Pages using this feature can now serialize launching
+ prerenders, and track timing performance.
+
+ Tested in a new WebKitUnitTest for the chromium port.
+
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/EventNames.h:
+ (WebCore):
+ * html/HTMLLinkElement.cpp:
+ (WebCore):
+ (WebCore::HTMLLinkElement::didStartLinkPrerender):
+ (WebCore::HTMLLinkElement::didStopLinkPrerender):
+ (WebCore::HTMLLinkElement::didSendLoadForLinkPrerender):
+ (WebCore::HTMLLinkElement::didSendDOMContentLoadedForLinkPrerender):
+ * html/HTMLLinkElement.h:
+ (HTMLLinkElement):
+ * loader/LinkLoader.cpp:
+ (WebCore::LinkLoader::didStartPrerender):
+ (WebCore):
+ (WebCore::LinkLoader::didStopPrerender):
+ (WebCore::LinkLoader::didSendLoadForPrerender):
+ (WebCore::LinkLoader::didSendDOMContentLoadedForPrerender):
+ (WebCore::LinkLoader::loadLink):
+ * loader/LinkLoader.h:
+ (LinkLoader):
+ * loader/LinkLoaderClient.h:
+ (LinkLoaderClient):
+ * loader/Prerenderer.cpp:
+ (WebCore::Prerenderer::render):
+ * loader/Prerenderer.h:
+ (WebCore):
+ (Prerenderer):
+ * platform/PrerenderClient.h: Copied from Source/WebCore/loader/LinkLoaderClient.h.
+ (WebCore):
+ (PrerenderClient):
+ (WebCore::PrerenderClient::~PrerenderClient):
+ * platform/PrerenderHandle.h:
+ (WebCore):
+ (PrerenderHandle):
+ * platform/chromium/Prerender.cpp:
+ (WebCore::Prerender::Prerender):
+ (WebCore::Prerender::removeClient):
+ (WebCore):
+ (WebCore::Prerender::add):
+ (WebCore::Prerender::cancel):
+ (WebCore::Prerender::abandon):
+ (WebCore::Prerender::didStartPrerender):
+ (WebCore::Prerender::didStopPrerender):
+ (WebCore::Prerender::didSendLoadForPrerender):
+ (WebCore::Prerender::didSendDOMContentLoadedForPrerender):
+ * platform/chromium/Prerender.h:
+ (WebKit):
+ (WebCore):
+ (Prerender):
+ * platform/chromium/PrerenderHandle.cpp:
+ (WebCore::PrerenderHandle::create):
+ (WebCore::PrerenderHandle::PrerenderHandle):
+ (WebCore::PrerenderHandle::~PrerenderHandle):
+ (WebCore::PrerenderHandle::removeClient):
+ (WebCore):
+ * platform/chromium/support/WebPrerender.cpp:
+ (WebKit::WebPrerender::toPrerender):
+ (WebKit):
+ (WebKit::WebPrerender::assign):
+ (WebKit::WebPrerender::isNull):
+ (WebKit::WebPrerender::didStartPrerender):
+ (WebKit::WebPrerender::didStopPrerender):
+ (WebKit::WebPrerender::didSendLoadForPrerender):
+ (WebKit::WebPrerender::didSendDOMContentLoadedForPrerender):
+
+2012-12-08 Gustavo Noronha Silva <gns@gnome.org>
+
+ Reviewed by Martin Robinson.
+
+ Update the Chromium/Chrome version we advertise in our User-Agent
+ string to version 25, to better match our current reality.
+
+ * platform/gtk/UserAgentGtk.cpp:
+ (WebCore::standardUserAgent):
+
+2012-12-08 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r137006.
+ http://trac.webkit.org/changeset/137006
+ https://bugs.webkit.org/show_bug.cgi?id=104446
+
+ Broke plugin painting on Mac (youtube, etc.) (Requested by
+ thorton_ on #webkit).
+
+ * platform/graphics/GraphicsLayer.h:
+ (GraphicsLayer):
+ * rendering/RenderBox.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
+ (WebCore::clipBox):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ (WebCore::RenderLayerBacking::updateDrawsContent):
+ (WebCore::RenderLayerBacking::updateBackgroundColor):
+ (WebCore::RenderLayerBacking::paintsBoxDecorations):
+ (WebCore::RenderLayerBacking::contentChanged):
+ (WebCore::RenderLayerBacking::updateImageContents):
+ (WebCore::RenderLayerBacking::contentsBox):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+
+2012-12-08 Wei James <james.wei@intel.com>
+
+ Remove incorrect ASSERT for m_error in CachedResource
+ https://bugs.webkit.org/show_bug.cgi?id=104333
+
+ Reviewed by Nate Chapin.
+
+ This assertion was brought in https://bugs.webkit.org/show_bug.cgi?id=100901
+ When the request is canceled, m_error.isNull() should be true.
+
+ run webkit_unit_tests Debug build.
+
+ * loader/cache/CachedResource.cpp:
+ (WebCore::CachedResource::stopLoading):
+
+2012-12-08 Ryosuke Niwa <rniwa@webkit.org>
+
+ Qt Linux Minimal build fix after r136975.
+
+ * dom/ElementRareData.h:
+ (ElementRareData):
+
+2012-12-08 Ryosuke Niwa <rniwa@webkit.org>
+
+ Qt Linux Minimal build fix attempt after r136959.
+
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::layerTreeDidChange):
+ (WebCore::InspectorInstrumentation::renderLayerDestroyed):
+
+2012-12-08 Xan Lopez <xlopez@igalia.com>
+
+ Build fix after r137003. Wrap Microdata only sections with ENABLE(MICRODATA).
+
+ * dom/NodeRareData.h:
+ (NodeRareData):
+
+2012-12-08 Ryosuke Niwa <rniwa@webkit.org>
+
+ Build fix after r137003. Wrap NodeMutationObserverData with ENABLE(MUTATION_OBSERVERS).
+
+ * dom/NodeRareData.h:
+ (NodeRareData):
+
+2012-12-08 Patrick Gansterer <paroga@webkit.org>
+
+ Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r136975.
+
+ * rendering/svg/SVGResources.cpp:
+ (WebCore::SVGResources::buildCachedResources):
+
+2012-12-08 Adam Klein <adamk@chromium.org>
+
+ HTMLTemplateElement.innerHTML should be parsed into the template contents owner document
+ https://bugs.webkit.org/show_bug.cgi?id=104407
+
+ Reviewed by Eric Seidel.
+
+ When parsing via innerHTML, ensure that all operations (including the
+ initial fragment creation) occur in the proper document to avoid,
+ e.g., images loading while being parsed into the template contents.
+ This matches the parsing behavior during page load.
+
+ Test: fast/dom/HTMLTemplateElement/innerHTML-inert.html
+
+ * editing/markup.cpp:
+ (WebCore::createFragmentForInnerOuterHTML):
+
+2012-12-08 ChangSeok Oh <shivamidow@gmail.com>
+
+ Assertion failed at WebCore::RedirectedXCompositeWindow::context()
+ https://bugs.webkit.org/show_bug.cgi?id=104349
+
+ Reviewed by Martin Robinson.
+
+ We should return GLContext if m_needsContext is CreateGLContext. By the way
+ CreateGLContext is a enum value and its default value is 0. So checking
+ ASSERT(m_needsContext) causes a crash on debug build.
+ ASSERT(m_needsContext == CreateGLContext) is better here.
+
+ No new tests since we can verify this with already existing AC tests.
+
+ * platform/gtk/RedirectedXCompositeWindow.cpp:
+ (WebCore::RedirectedXCompositeWindow::context):
+
+2012-12-07 Rik Cabanier <cabanier@adobe.com>
+
+ Extend platform layer so it can pass blend modes to the compositing calls
+ https://bugs.webkit.org/show_bug.cgi?id=104176
+
+ Reviewed by Dirk Schulze.
+
+ Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context
+
+ No new tests, no new functionality.
+
+ * html/HTMLCanvasElement.cpp:
+ (WebCore::HTMLCanvasElement::paint):
+ * platform/graphics/BitmapImage.h:
+ * platform/graphics/CrossfadeGeneratedImage.cpp:
+ (WebCore::CrossfadeGeneratedImage::draw):
+ * platform/graphics/CrossfadeGeneratedImage.h:
+ (CrossfadeGeneratedImage):
+ * platform/graphics/GeneratedImage.h:
+ (GeneratedImage):
+ * platform/graphics/GeneratorGeneratedImage.cpp:
+ (WebCore::GeneratorGeneratedImage::draw):
+ * platform/graphics/GeneratorGeneratedImage.h:
+ (GeneratorGeneratedImage):
+ * platform/graphics/GraphicsContext.cpp:
+ (WebCore::GraphicsContext::drawImage):
+ (WebCore):
+ (WebCore::GraphicsContext::drawImageBuffer):
+ (WebCore::GraphicsContext::setCompositeOperation):
+ * platform/graphics/GraphicsContext.h:
+ (WebCore::GraphicsContextState::GraphicsContextState):
+ (GraphicsContextState):
+ (GraphicsContext):
+ * platform/graphics/Image.cpp:
+ (WebCore::Image::draw):
+ (WebCore::Image::drawTiled):
+ * platform/graphics/Image.h:
+ (Image):
+ * platform/graphics/ImageBuffer.h:
+ (ImageBuffer):
+ * platform/graphics/cairo/BitmapImageCairo.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/cairo/ImageBufferCairo.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/cg/BitmapImageCG.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::GraphicsContext::drawNativeImage):
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/cg/PDFDocumentImage.cpp:
+ (WebCore::PDFDocumentImage::draw):
+ * platform/graphics/cg/PDFDocumentImage.h:
+ (PDFDocumentImage):
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/qt/ImageQt.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/qt/StillImageQt.cpp:
+ (WebCore::StillImage::draw):
+ * platform/graphics/qt/StillImageQt.h:
+ (StillImage):
+ * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
+ (BitmapImageSingleFrameSkia):
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/skia/ImageSkia.cpp:
+ (WebCore::BitmapImage::draw):
+ (WebCore::BitmapImageSingleFrameSkia::draw):
+ * platform/graphics/win/ImageCGWin.cpp:
+ (WebCore::BitmapImage::getHBITMAPOfSize):
+ (WebCore::BitmapImage::drawFrameMatchingSourceSize):
+ * svg/graphics/SVGImage.cpp:
+ (WebCore::SVGImage::drawSVGToImageBuffer):
+ (WebCore::SVGImage::draw):
+ (WebCore::SVGImage::nativeImageForCurrentFrame):
+ * svg/graphics/SVGImage.h:
+ (SVGImage):
+
+2012-12-07 Alpha Lam <hclam@chromium.org>
+
+ [chromium] ImageDecodingStore should cache partially decoded images
+ https://bugs.webkit.org/show_bug.cgi?id=103796
+
+ Reviewed by Stephen White.
+
+ Implement caching for incomplete images, meaning the image is partially
+ decoded. The image is cached together with partially decoded ImageDecoder.
+ This allows decoding to resume in a later time.
+
+ Caching logic for incomplete images is implemented in ImageDecodingStore.
+
+ Logic for resuming image decoding is implemented in ImageFrameGenerator.
+
+ ImageDecodingStore allows storing incomplete image with the decoder.
+ The cache entry can be used in a later time to read and write (i.e. resume
+ decoding.) To avoid the same entry being written and read at the same time,
+ an incomplete entry can be used by one user only. Concurrent access to
+ an incomplete entry should never happen and is checked by an assert.
+ An entry can becomes complete when decoding is finished. In this case
+ the associated decoder is deleted. Once an entry becomes complete concurrent
+ read is allowed.
+
+ ImageFrameGenerator performs the logic to resume image decoding. It
+ performs the following operations in sequence:
+ - Try to lookup a complete image
+ - Try to perform scaling on a complete image
+ - Try to lookup an incomplete image and resume decoding & scaling
+ - Everything fails, start decoding from scratch
+ The entire sequence of operations in under a mutex, hence there will be
+ no more than 1 user of an incomplete cache entry at the same time.
+
+ New unit tests in ImageDecodingStoreTest and ImageFrameGeneratorTest.
+
+ * platform/graphics/chromium/ImageDecodingStore.cpp:
+ (WebCore::ImageDecodingStore::lockCache):
+ Change of method definition to return an image and ImageDecoder.
+ (WebCore::ImageDecodingStore::unlockCache):
+ (WebCore::ImageDecodingStore::insertAndLockCache):
+ (WebCore::ImageDecodingStore::overwriteAndLockCache):
+ New method to allow an incomplete cache entry be overwritten.
+ (WebCore):
+ * platform/graphics/chromium/ImageDecodingStore.h:
+ (ImageDecodingStore):
+ (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
+ (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
+ (WebCore::ImageDecodingStore::CacheEntry::cachedImage):
+ (WebCore::ImageDecodingStore::CacheEntry::cachedDecoder):
+ (WebCore::ImageDecodingStore::CacheEntry::releaseCachedDecoder):
+ (WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
+ New method to allow an incomplete image be overwitten.
+ (CacheEntry):
+ * platform/graphics/chromium/ImageFrameGenerator.cpp:
+ (WebCore::ImageFrameGenerator::ImageFrameGenerator):
+ (WebCore::ImageFrameGenerator::decodeAndScale):
+ (WebCore::ImageFrameGenerator::tryToLockCompleteCache):
+ (WebCore::ImageFrameGenerator::tryToScale):
+ (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
+ New method to lookup an incomplete cache entry and resume decoding.
+ (WebCore):
+ (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
+ (WebCore::ImageFrameGenerator::decoder):
+ New helper method to do decoding for a full sized image.
+ (WebCore::ImageFrameGenerator::prepareData):
+ New helper method to prepare data safely.
+ * platform/graphics/chromium/ImageFrameGenerator.h:
+ (ImageFrameGenerator):
+ * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
+ (WebCore::LazyDecodingPixelRef::onLockPixels):
+ * platform/graphics/chromium/ScaledImageFragment.h:
+ (WebCore::ScaledImageFragment::setIsComplete):
+
+2012-12-07 Alexis Menard <alexis@webkit.org>
+
+ Enable CSS3 position offset for CSS Masking.
+ https://bugs.webkit.org/show_bug.cgi?id=104252
+
+ Reviewed by Dirk Schulze.
+
+ To follow CSS3 background-position, mask-position should also support
+ the new <position> type (http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property).
+ Now the code is shared between background and mask I renamed the
+ functions used to be more generic. Note that the feature flag is not
+ meant to stay and will be removed in a following commit.
+
+ No new tests : I modified LayoutTests/fast/masking/parsing-mask.html to
+ cover the new feature.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::createPositionListForLayer):
+ * css/CSSParser.cpp:
+ (WebCore::isFillPositionKeyword):
+ (WebCore::CSSParser::parse4ValuesFillPosition):
+ (WebCore::CSSParser::parse3ValuesFillPosition):
+ (WebCore::CSSParser::isPotentialPositionValue):
+ (WebCore::CSSParser::parseFillPosition):
+ (WebCore::CSSParser::parse2ValuesFillPosition):
+ (WebCore::CSSParser::parseFillProperty):
+ (WebCore::CSSParser::parseTransformOriginShorthand):
+ (WebCore::CSSParser::parseRadialGradient):
+ (WebCore::CSSParser::parsePerspectiveOrigin):
+ * css/CSSParser.h:
+ * css/CSSToStyleMap.cpp:
+ (WebCore::CSSToStyleMap::mapFillXPosition):
+ (WebCore::CSSToStyleMap::mapFillYPosition):
+
+2012-12-07 No'am Rosenthal <noam@webkit.org>
+
+ Use background color for GraphicsLayers when applicable
+ https://bugs.webkit.org/show_bug.cgi?id=103786
+
+ Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
+ 1. The layer doesn't paint its own content, other than background/decoration.
+ 2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
+ 3. The image has only a background color, and no background image.
+ 4. background-composite is set to source-over, and background-clip is anything apart from text.
+ 5. The port supports setContentsToBackgroundColor.
+
+ This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
+ for that layer, but instead draw that solid color directly.
+ In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
+ a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
+ background-clip property.
+
+ Reviewed by Simon Fraser.
+
+ Tests: compositing/background-color/background-color-alpha.html
+ compositing/background-color/background-color-change-to-text.html
+ compositing/background-color/background-color-composite.html
+ compositing/background-color/background-color-container.html
+ compositing/background-color/background-color-content-clip.html
+ compositing/background-color/background-color-padding-change.html
+ compositing/background-color/background-color-padding-clip.html
+ compositing/background-color/background-color-simple.html
+ compositing/background-color/background-color-text-change.html
+ compositing/background-color/background-color-text-clip.html
+
+ * platform/graphics/GraphicsLayer.h:
+ (WebCore::GraphicsLayer::supportsBackgroundColorContent):
+ Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
+ Currently only the MAC implementation and TextureMapper falls under that category.
+
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::paddingBoxRect):
+ Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to
+ background-clip: padding.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
+ Update the background color if needed, for every configuration change.
+ This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
+
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ Move the contentsRect logic to updateContentsRect.
+
+ (WebCore::RenderLayerBacking::updateContentsRect):
+ Use the background box when directly compositing backgrounds.
+
+ (WebCore::RenderLayerBacking::updateBackgroundColor):
+ Set the background color if applicable, otherwise set to trasnparent and clear.
+ This was not needed in the past because background colors were only used for the special case of full-screen.
+
+ (WebCore::supportsDirectBoxDecorationsComposition):
+ Helper function to determine whether a particular background can be directly composited. Right now only
+ background color can be composited, and only if the GraphicsLayer implementation supports background colors.
+ Also we don't yet support background-clip: text and any background-composite other than source-over.
+
+ (WebCore::RenderLayerBacking::paintsBoxDecorations):
+ Apply the new supportsDirectBoxDecorationsComposition logic.
+
+ (WebCore::RenderLayerBacking::contentsBox):
+ Remove unnecessary local variable.
+
+ (WebCore::backgroundRectForBox):
+ (WebCore::RenderLayerBacking::backgroundBox):
+ Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
+ The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as
+ GraphicsLayer::contentsRect expects snapped pixels.
+
+
+2012-12-06 Ryosuke Niwa <rniwa@webkit.org>
+
+ Shrink the size of NodeRareData by moving pointers into separate objects
+ https://bugs.webkit.org/show_bug.cgi?id=104312
+
+ Reviewed by Andreas Kling.
+
+ This patch does three things:
+ 1. Move ChildNodeList back into NodeListsNodeData.
+ 2. Move m_mutationObserverRegistry & m_transientMutationObserverRegistry into a separate object owned by NodeRareData.
+ 3. Move m_itemProp, m_itemRef, m_itemType & into a separate object owned by NodeRareData.
+
+ Moving m_childNodeList from NodeRareData to NodeListsNodeData also has a nice side-effect of making ChildNodeList
+ behave more like other LiveNodeLists.
+
+ This patch also fixes Mac build when microdata is enabled.
+
+ There should be no user-visible behavior change.
+
+ * dom/ChildNodeList.cpp:
+ (WebCore::ChildNodeList::~ChildNodeList):
+ * dom/Node.cpp:
+ (WebCore::Node::childNodes): Moved the code to create ChildNodeList into NodeListsNodeData to match other node lists.
+ (WebCore::Node::invalidateNodeListCachesInAncestors):
+ (WebCore): Removed removeCachedChildNodeList.
+ * dom/Node.h:
+ (Node):
+ * dom/NodeRareData.cpp:
+ (WebCore): Assert the size of NodeRareData at compilation time.
+ (WebCore::NodeListsNodeData::reportMemoryUsage):
+ (WebCore::NodeRareData::reportMemoryUsage):
+ * dom/NodeRareData.h:
+ (WebCore::NodeListsNodeData::clearChildNodeListCache): Moved from NodeRareData.
+ (WebCore::NodeListsNodeData::ensureChildNodeList): Extracted from Node::childNodes.
+ (WebCore::NodeListsNodeData::removeChildNodeList): Added.
+ (WebCore::NodeListsNodeData::NodeListsNodeData): Initialize m_childNodeList.
+ (WebCore::NodeRareData::NodeMutationObserverData): Extracted from NodeRareData.
+ (WebCore::NodeRareData::NodeMutationObserverData::create):
+ (WebCore::NodeRareData::NodeMicroDataTokenLists): Ditto.
+ (WebCore::NodeRareData::NodeMicroDataTokenLists::create):
+ (WebCore::NodeRareData::NodeRareData):
+ (WebCore::NodeRareData::ensureNodeLists): Merged setNodeLists since it's not called elsewhere.
+ (WebCore::NodeRareData::mutationObserverRegistry):
+ (WebCore::NodeRareData::ensureMutationObserverRegistry): Added.
+ (WebCore::NodeRareData::transientMutationObserverRegistry):
+ (WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
+ (WebCore::NodeRareData::ensureMicroDataTokenLists):
+ (NodeRareData):
+ (WebCore::NodeRareData::itemProp):
+ (WebCore::NodeRareData::setItemProp):
+ (WebCore::NodeRareData::itemRef):
+ (WebCore::NodeRareData::setItemRef):
+ (WebCore::NodeRareData::itemType):
+ (WebCore::NodeRareData::setItemType):
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::HTMLPropertiesCollection::propertyNodeList): Renamed from namedItem since its return type, PropertyNodeList,
+ is different from that, Node, of LiveNodeList::namedItem. It was shadowing the function name instead of overriding.
+ * html/HTMLPropertiesCollection.h:
+ (HTMLPropertiesCollection):
+ * html/HTMLPropertiesCollection.idl:
+
+2012-12-07 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r136993.
+ http://trac.webkit.org/changeset/136993
+ https://bugs.webkit.org/show_bug.cgi?id=104415
+
+ This patch breaks the mac build (Requested by cabanier on
+ #webkit).
+
+ * html/HTMLCanvasElement.cpp:
+ (WebCore::HTMLCanvasElement::paint):
+ * platform/graphics/BitmapImage.h:
+ * platform/graphics/CrossfadeGeneratedImage.cpp:
+ (WebCore::CrossfadeGeneratedImage::draw):
+ * platform/graphics/CrossfadeGeneratedImage.h:
+ (CrossfadeGeneratedImage):
+ * platform/graphics/GeneratedImage.h:
+ (GeneratedImage):
+ * platform/graphics/GeneratorGeneratedImage.cpp:
+ (WebCore::GeneratorGeneratedImage::draw):
+ * platform/graphics/GeneratorGeneratedImage.h:
+ (GeneratorGeneratedImage):
+ * platform/graphics/GraphicsContext.cpp:
+ (WebCore::GraphicsContext::drawImage):
+ (WebCore::GraphicsContext::drawImageBuffer):
+ (WebCore::GraphicsContext::setCompositeOperation):
+ * platform/graphics/GraphicsContext.h:
+ (WebCore::GraphicsContextState::GraphicsContextState):
+ (GraphicsContextState):
+ (GraphicsContext):
+ * platform/graphics/Image.cpp:
+ (WebCore::Image::draw):
+ (WebCore::Image::drawTiled):
+ * platform/graphics/Image.h:
+ (Image):
+ * platform/graphics/ImageBuffer.h:
+ (ImageBuffer):
+ * platform/graphics/cairo/BitmapImageCairo.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/cairo/ImageBufferCairo.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/cg/BitmapImageCG.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::GraphicsContext::drawNativeImage):
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/cg/PDFDocumentImage.cpp:
+ (WebCore::PDFDocumentImage::draw):
+ * platform/graphics/cg/PDFDocumentImage.h:
+ (PDFDocumentImage):
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/qt/ImageQt.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/qt/StillImageQt.cpp:
+ (WebCore::StillImage::draw):
+ * platform/graphics/qt/StillImageQt.h:
+ (StillImage):
+ * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
+ (BitmapImageSingleFrameSkia):
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/skia/ImageSkia.cpp:
+ (WebCore::BitmapImage::draw):
+ (WebCore::BitmapImageSingleFrameSkia::draw):
+ * platform/graphics/win/ImageCGWin.cpp:
+ (WebCore::BitmapImage::getHBITMAPOfSize):
+ (WebCore::BitmapImage::drawFrameMatchingSourceSize):
+ * svg/graphics/SVGImage.cpp:
+ (WebCore::SVGImage::drawSVGToImageBuffer):
+ (WebCore::SVGImage::draw):
+ (WebCore::SVGImage::nativeImageForCurrentFrame):
+ * svg/graphics/SVGImage.h:
+ (SVGImage):
+
+2012-12-07 Alexey Proskuryakov <ap@apple.com>
+
+ There is no need to change cached resource storage policy through ResourceHandleClient
+ https://bugs.webkit.org/show_bug.cgi?id=104413
+
+ Reviewed by Brady Eidson.
+
+ This code was only needed to prevent storing responses to disk in private browsing
+ mode, but we now have a storage session to take care of that in a cleaner and more
+ reliable way.
+
+ * loader/ResourceLoader.cpp:
+ * loader/ResourceLoader.h: (WebCore::ResourceLoader::receivedCancellation):
+ * platform/network/ResourceHandleClient.h:
+ * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse):
+ * platform/network/mac/ResourceHandleMac.mm:
+ (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
+
+2012-12-07 Adam Klein <adamk@chromium.org>
+
+ MutationRecord addedNodes/removedNodes should never be null
+ https://bugs.webkit.org/show_bug.cgi?id=98921
+
+ Reviewed by Ryosuke Niwa.
+
+ Per an update to the DOM4 spec that matches Gecko's behavior,
+ addedNodes/removedNodes should be empty NodeLists on 'attributes'
+ and 'characterData' records, rather than null.
+
+ This is accomplished with lazy initialization of addedNodes/removedNodes
+ attributes on 'attributes'/'characterData' records and the
+ addition of a new StaticNodeList::createEmpty() factory method.
+
+ * dom/MutationRecord.cpp:
+ * dom/MutationRecord.h:
+ (MutationRecord):
+ * dom/StaticNodeList.h:
+ (WebCore::StaticNodeList::adopt):
+ (StaticNodeList):
+ (WebCore::StaticNodeList::createEmpty):
+ (WebCore::StaticNodeList::StaticNodeList):
+
+2012-12-07 Brent Fulgham <bfulgham@webkit.org>
+
+ Unreviewed build correction after 136959.
+
+ The initialization list should follow the same compiler macro
+ exclusions as the class members.
+
+ * inspector/InstrumentingAgents.h: Add USE(ACCELERATED_COMPOSITING)
+ guards around m_inspectorLayerTreeAgent as this does not exist
+ when the guard is false.
+
+2012-12-07 Rik Cabanier <cabanier@adobe.com>
+
+ Extend platform layer so it can pass blend modes to the compositing calls
+ https://bugs.webkit.org/show_bug.cgi?id=104176
+
+ Reviewed by Dirk Schulze.
+
+ Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context
+
+ No new tests, no new functionality.
+
+ * html/HTMLCanvasElement.cpp:
+ (WebCore::HTMLCanvasElement::paint):
+ * platform/graphics/BitmapImage.h:
+ * platform/graphics/CrossfadeGeneratedImage.cpp:
+ (WebCore::CrossfadeGeneratedImage::draw):
+ * platform/graphics/CrossfadeGeneratedImage.h:
+ (CrossfadeGeneratedImage):
+ * platform/graphics/GeneratedImage.h:
+ (GeneratedImage):
+ * platform/graphics/GeneratorGeneratedImage.cpp:
+ (WebCore::GeneratorGeneratedImage::draw):
+ * platform/graphics/GeneratorGeneratedImage.h:
+ (GeneratorGeneratedImage):
+ * platform/graphics/GraphicsContext.cpp:
+ (WebCore::GraphicsContext::drawImage):
+ (WebCore):
+ (WebCore::GraphicsContext::drawImageBuffer):
+ (WebCore::GraphicsContext::setCompositeOperation):
+ * platform/graphics/GraphicsContext.h:
+ (WebCore::GraphicsContextState::GraphicsContextState):
+ (GraphicsContextState):
+ (GraphicsContext):
+ * platform/graphics/Image.cpp:
+ (WebCore::Image::draw):
+ (WebCore::Image::drawTiled):
+ * platform/graphics/Image.h:
+ (Image):
+ * platform/graphics/ImageBuffer.h:
+ (ImageBuffer):
+ * platform/graphics/cairo/BitmapImageCairo.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/cairo/ImageBufferCairo.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/cg/BitmapImageCG.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::GraphicsContext::drawNativeImage):
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/cg/PDFDocumentImage.cpp:
+ (WebCore::PDFDocumentImage::draw):
+ * platform/graphics/cg/PDFDocumentImage.h:
+ (PDFDocumentImage):
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/qt/ImageBufferQt.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/qt/ImageQt.cpp:
+ (WebCore::BitmapImage::draw):
+ * platform/graphics/qt/StillImageQt.cpp:
+ (WebCore::StillImage::draw):
+ * platform/graphics/qt/StillImageQt.h:
+ (StillImage):
+ * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
+ (BitmapImageSingleFrameSkia):
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::GraphicsContext::setPlatformCompositeOperation):
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::ImageBuffer::draw):
+ * platform/graphics/skia/ImageSkia.cpp:
+ (WebCore::BitmapImage::draw):
+ (WebCore::BitmapImageSingleFrameSkia::draw):
+ * platform/graphics/win/ImageCGWin.cpp:
+ (WebCore::BitmapImage::getHBITMAPOfSize):
+ (WebCore::BitmapImage::drawFrameMatchingSourceSize):
+ * svg/graphics/SVGImage.cpp:
+ (WebCore::SVGImage::drawSVGToImageBuffer):
+ (WebCore::SVGImage::draw):
+ (WebCore::SVGImage::nativeImageForCurrentFrame):
+ * svg/graphics/SVGImage.h:
+ (SVGImage):
+
+2012-12-07 Alec Flett <alecflett@chromium.org>
+
+ IndexedDB: propagate transaction_ids through open/upgradeneeded
+ https://bugs.webkit.org/show_bug.cgi?id=103922
+
+ Reviewed by Tony Chang.
+
+ Make sure front-end is always generating the transaction id,
+ so that it can be relied upon as an alternative to the
+ to-be-deprecated IDBTransactionBackendInterface pointer.
+
+ No new tests, this is one stage in a larger refactor.
+
+ * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+ (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
+ (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
+ (IDBDatabaseBackendImpl::VersionChangeOperation):
+ (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
+ (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::transactionId):
+ (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
+ (IDBDatabaseBackendImpl::PendingOpenCall):
+ (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
+ (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::transactionId):
+ (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
+ (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
+ (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
+ (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
+ (WebCore::IDBDatabaseBackendImpl::createTransaction):
+ (WebCore::IDBDatabaseBackendImpl::openConnection):
+ (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
+ (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
+ * Modules/indexeddb/IDBDatabaseBackendImpl.h:
+ (IDBDatabaseBackendImpl):
+ * Modules/indexeddb/IDBFactory.cpp:
+ (WebCore::IDBFactory::openInternal):
+ * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
+ (WebCore::IDBFactoryBackendImpl::open):
+
+2012-12-07 Dima Gorbik <dgorbik@apple.com>
+
+ Implement general ::cue pseudo element for the <video>
+ https://bugs.webkit.org/show_bug.cgi?id=104043
+
+ Reviewed by Eric Carlson.
+
+ Implemented the ::cue pseudo element to be able to style all WebVTT cues.
+ Added the subcontainer with a '::cue' pseudoId in between the TextTrackContainerElement and WebVTT nodes to separate
+ user agent default styles from user defined styles for the cue elements.
+
+ Test: media/track/track-css-all-cues.html
+
+ * css/CSSSelector.cpp: ::cue pseudo selector doesn't have a valid prefix but should be allowed in the user-agent stylesheet.
+ (WebCore::CSSSelector::parsePseudoType):
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore):
+ (WebCore::MediaControlTextTrackContainerElement::createSubtrees): create a subcontainer and set its pseudoId to '::cue'.
+ (WebCore::MediaControlTextTrackContainerElement::updateDisplay): append WebVTT nodes to the newly created subcontainer.
+ * html/shadow/MediaControlElements.h:
+ (MediaControlTextTrackContainerElement):
+ * html/shadow/MediaControls.cpp:
+ (WebCore::MediaControls::createTextTrackDisplay): initiate creating subtrees for the MediaControlTextTrackContainerElement.
+ * html/shadow/MediaControlsChromium.cpp:
+ (WebCore::MediaControlsChromium::createTextTrackDisplay):
+
+2012-12-06 Geoffrey Garen <ggaren@apple.com>
+
+ Crash in JSC::Bindings::RootObject::globalObject() sync'ing notes in Evernote
+ https://bugs.webkit.org/show_bug.cgi?id=104321
+ <rdar://problem/12770497>
+
+ Reviewed by Sam Weinig.
+
+ Missed a null check.
+
+ * bindings/objc/WebScriptObject.mm:
+ (-[WebScriptObject JSObject]): If our root object has been cleared, don't
+ try to dereference it. This happens in Evernote during tear-down.
+
+ This matches the behavior of other methods in the same class.
+
+ (_isSafeScript returns false if the root object has been cleared.)
+
+ If we believe _isSafeScript is a good idea, it's probably the right test
+ to use here (as opposed to just null-checking _rootObject) because this API
+ gives the client unlimited access to the underlying JavaScript object.
+
+2012-12-07 Stephen Chenney <schenney@chromium.org>
+
+ XMLSerializer is too aggressive in adding prefixes
+ https://bugs.webkit.org/show_bug.cgi?id=104387
+
+ Reviewed by Ryosuke Niwa.
+
+ We have been adding "xlink:" and "xmlns:" and "xml:" prefixes to any
+ attribute that is in one of those namespaces but which did not already
+ have the matching prefix. This appears to be in error, at least
+ compared to other browsers.
+
+ The correct behavior appears to be to add the prefix only if there is
+ no existing prefix. If there is an existing prefix, we now leave it alone.
+
+ No new tests. Existing test expanded.
+
+ * editing/MarkupAccumulator.cpp:
+ (WebCore::MarkupAccumulator::appendAttribute): Only replace the prefix
+ attribute name prefix if it is empty, and in one of the recognised
+ namespaces.
+
+2012-12-07 Jon Lee <jonlee@apple.com>
+
+ Display the auto-start label image after a delay
+ https://bugs.webkit.org/show_bug.cgi?id=104173
+ <rdar://problem/12820071>
+
+ Reviewed by Dan Bernstein.
+
+ Treat the button now as a label. Once the user has hovered over the plug-in, wait a little while before showing the label.
+
+ * rendering/RenderSnapshottedPlugIn.h:
+ (RenderSnapshottedPlugIn): Add a one-shot timer, and a variable representing whether the label should
+ be drawn. Remove the variable that determines whether the label is active.
+
+ * rendering/RenderSnapshottedPlugIn.cpp:
+ (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Set the time to a delay of 1 second.
+ (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the label only when we should.
+ (WebCore::RenderSnapshottedPlugIn::paintLabel): The label should only paint in its hovered state.
+ (WebCore::startLabelImage): Renamed.
+ (WebCore::RenderSnapshottedPlugIn::repaintLabel): Renamed.
+ (WebCore::RenderSnapshottedPlugIn::hoverDelayTimerFired): Now that the timer has fired, we should paint
+ the label. Repaint.
+ (WebCore::RenderSnapshottedPlugIn::handleEvent): Update event handling. Click event handler is the
+ same, except we move the label check inside so that if the click is not the left label we don't
+ fall through to the other irrevelant if clauses.
+ For the mouse down handler, make sure to check for the left label. If the hover timer is still running,
+ stop it, so that we don't draw a label while the user is in the middle of a mouse gesture.
+ Redo mouse over and out. On mouse over we start the delay timer. On mouse out we stop the delay timer
+ if it is still running, reset state, and paint the label out.
+ (WebCore::RenderSnapshottedPlugIn::layout): Refactor.
+
+ * Resources/startButtonPressed.png: Removed.
+ * Resources/startButtonPressed@2x.png: Removed.
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-12-07 Scott Violet <sky@chromium.org>
+
+ [chromium] Remove linux theme related files and switch to default
+ https://bugs.webkit.org/show_bug.cgi?id=103897
+
+ Reviewed by Dimitri Glazkov.
+
+ Linux related theme files are now named Default.
+
+ No new tests, code cleanup.
+
+ * WebCore.gyp/WebCore.gyp: Update files
+ * WebCore.gypi: Update files
+ * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
+ * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
+ * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
+ * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
+ * rendering/RenderThemeChromiumAndroid.cpp:
+ (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
+ * rendering/RenderThemeChromiumAndroid.h: Change superclass
+ * rendering/RenderThemeChromiumLinux.cpp: Removed.
+ * rendering/RenderThemeChromiumLinux.h: Removed.
+
+2012-12-07 Eric Carlson <eric.carlson@apple.com>
+
+ Captions menu doesn't update to track changes
+ https://bugs.webkit.org/show_bug.cgi?id=104393
+
+ Reviewed by Dean Jackson.
+
+ Flag the captions menu as needing an update when tracks are added or removed. Don't actually
+ change the menu until it needs to be displayed.
+
+ No new tests, media/video-controls-captions-trackmenu.html was updated to test this.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::addTextTrack): Call closedCaptionTracksChanged().
+ (WebCore::HTMLMediaElement::didRemoveTrack): Ditto.
+ (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
+
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
+ Intialize m_trackListHasChanged.
+ (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Call rebuildTrackListMenu if
+ the track list has changed.
+ (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Renamed from resetTrackListMenu.
+ * html/shadow/MediaControlElements.h:
+ (WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): Just set m_trackListHasChanged.
+
+ * html/shadow/MediaControls.h:
+ (WebCore::MediaControls::closedCaptionTracksChanged): New, do nothing for base class.
+
+ * html/shadow/MediaControlsApple.cpp:
+ (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Update the track list before
+ showing it.
+ (WebCore::MediaControlsApple::closedCaptionTracksChanged):
+ * html/shadow/MediaControlsApple.h:
+
+2012-12-07 Stephen White <senorblanco@chromium.org>
+
+ CSS url() filters with forward references don't work
+ https://bugs.webkit.org/show_bug.cgi?id=90405
+
+ Based on a patch by Keyar Hood.
+
+ Reviewed by Dirk Schulze.
+
+ In order for CSS to reference SVG filters that will occur later in
+ the document, or will be added at a future time, we need a way to
+ notify the target element (the one the filter style is applied to)
+ when the correct SVG filter is added to the DOM.
+ There is already code for SVG elements that handles this problem, in
+ SVGResourcesCache. This patch allows any element to have a reference to
+ an SVG element in SVGResourceCache.
+
+ Tests: css3/filters/effect-reference-after.html
+ css3/filters/effect-reference-delete-crash.html
+ css3/filters/effect-reference-delete.html
+ css3/filters/effect-reference-rename.html
+ css3/filters/effect-reference-reset-style-delete-crash.html
+ svg/filters/filter-cycle.html
+
+ * dom/Element.cpp:
+ (WebCore::Element::hasPendingResources): Added
+ (WebCore::Element::setHasPendingResources): Added
+ (WebCore::Element::clearHasPendingResources): Added
+ * dom/Element.h:
+ Accessors for ElementRareData's new bit flag.
+ (WebCore::Element::buildPendingResource):
+ Virtual function to override for referenced elements (moved from SVGElement).
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::ElementRareData):
+ Add a new bit flag to indicate whether the element depends on pending resources or not.
+ * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
+ (WebCore::BitmapTextureImageBuffer::applyFilters):
+ Changed to the new function signature for FilterEffectRenderer::build().
+ * rendering/FilterEffectRenderer.cpp:
+ (WebCore::FilterEffectRenderer::buildReferenceFilter):
+ Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives. If the referenced filter cannot be found, add its id as a pending reference.
+ (WebCore::FilterEffectRenderer::build):
+ Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.
+ * rendering/FilterEffectRenderer.h:
+ Change to signatures of build() and buildReferenceFilter() to pass
+ a RenderObject instead of a Document.
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
+ Use the new semantics for FilterEffectRenderer::build().
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::willBeDestroyed):
+ Notify the cache if a RenderObject is destroyed.
+ * rendering/svg/RenderSVGResourceContainer.cpp:
+ (WebCore::RenderSVGResourceContainer::registerResource):
+ Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
+ on the element, since we want to support generic Elements.
+ * rendering/svg/SVGResources.cpp:
+ (WebCore::SVGResources::buildCachedResources):
+ Add support for building filters on non-SVG elements.
+ * rendering/svg/SVGResourcesCache.cpp:
+ (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
+ Do cycle detection only on SVG elements.
+ (WebCore::SVGResourcesCache::clientStyleChanged):
+ For non-SVG elements, set a synthetic style change when parent resources
+ are invalidated.
+ (WebCore::SVGResourcesCache::resourceDestroyed):
+ Add support for non-SVG Elements.
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::addPendingResource):
+ (WebCore::SVGDocumentExtensions::isElementPendingResources):
+ (WebCore::SVGDocumentExtensions::isElementPendingResource):
+ (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
+ (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
+ Changed to allow use of Element instead of SVGElement.
+ (WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
+ Moved from SVGElement, and made to work on any Element. This way,
+ we avoid adding this function to Element itself.
+ * svg/SVGDocumentExtensions.h:
+ SVGElement -> Element.
+ * svg/SVGElement.cpp:
+ * svg/SVGElement.h:
+ All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
+ * svg/SVGElementRareData.h:
+ (WebCore::SVGElementRareData::SVGElementRareData):
+ m_hasPendingResources add accessors moved to ElementRareData.
+ * svg/SVGStyledElement.cpp:
+ (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
+ SVGElement -> Element, and call SVGDocumentExtensions for
+ clearHasPendingResourcesIfPossible().
+
+2012-12-07 Eberhard Graether <egraether@google.com>
+
+ Web Inspector: Add shortcut to set visibility:hidden on elements in the ElementsPanel
+ https://bugs.webkit.org/show_bug.cgi?id=104146
+
+ Reviewed by Pavel Feldman.
+
+ This change adds the shortcut H to set and unset visibility:hidden on the inline style
+ of elements in the Elementspanel. This feature makes it easier to look for elements that
+ cause bad rendering performance, because visibility:hidden does not paint the element,
+ but preserves the layout.
+
+ No new tests.
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleModel.prototype.toggleInlineVisibility):
+ * inspector/front-end/ElementsPanelDescriptor.js:
+ (WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
+ * inspector/front-end/ElementsTreeOutline.js:
+ (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
+ * inspector/front-end/KeyboardShortcut.js:
+
+2012-12-07 Andreas Kling <akling@apple.com>
+
+ Improve our decoded data size estimation for style sheets.
+ <http://webkit.org/b/104388>
+
+ Reviewed by Antti Koivisto.
+
+ Tweak how we estimate the total decoded size of a given style sheet. (We were guessing at about 30% of actual size.)
+ This is just used as a hint to the WebCore cache.
+
+ * css/StylePropertySet.cpp:
+ (WebCore::StylePropertySet::averageSizeInBytes):
+ * css/StyleRule.cpp:
+ (WebCore::StyleRule::averageSizeInBytes):
+
+2012-12-07 Robert Hogan <robert@webkit.org>
+
+ REGRESSION(r127163): Content is offset to the right at rea.ru
+ https://bugs.webkit.org/show_bug.cgi?id=103116
+
+ Reviewed by David Hyatt.
+
+ The top margin edge of a self-collapsing block that clears a float intrudes up into it by the height of the margin,
+ so to ensure any child floats of the self-collapsing block only go as far as the top content edge
+ add the margin back in to the block's current height before placing them.
+
+ Tests: fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html
+ fast/block/margin-collapse/self-collapsing-block-with-float-child.html
+
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
+
+2012-12-07 Alexis Menard <alexis@webkit.org>
+
+ Improve r136754 by hardening checks of expected values for background-position.
+ https://bugs.webkit.org/show_bug.cgi?id=104380
+
+ Reviewed by Antti Koivisto.
+
+ r136754 was landed to fix the problem of checking successively two calc
+ values with validUnit. It was asserting as validUnit expect you to use
+ the parsed value of the calc after the call. In this case we pre-check the
+ background-position longhand to count how many values it has to then
+ call the right parsing functions accordingly. While r136754 is not
+ wrong it is better to harden isPotentialPositionValue with the real
+ expected units and keywords. For this matter we can reuse the
+ ReleaseParsedCalcValueCondition enum which was created with the same
+ idea as this patch. If you are not interested of the calc parsed
+ value when calling validUnit() you can now specify it, I believe it is
+ good to have it explicit to avoid mistake in the future.
+
+ No new tests : this is covered by css3/*, fast/backgrounds/*.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::validCalculationUnit):
+ (WebCore::CSSParser::validUnit):
+ (WebCore::CSSParser::isPotentialPositionValue):
+ * css/CSSParser.h:
+ (WebCore::CSSParser::validUnit):
+ (CSSParser):
+
+2012-12-07 Brent Fulgham <bfulgham@webkit.org>
+
+ Remove unnecessary casts in transformations.
+ https://bugs.webkit.org/show_bug.cgi?id=104376
+
+ Reviewed by Simon Fraser.
+
+ Several casts from float-to-double are performed prior to
+ storing the result in a double type. These casts are unnecessary
+ overhead and reduce the clarity of the source code.
+
+ No new tests. Covered by existing CSS test cases.
+
+ * platform/graphics/transforms/RotateTransformOperation.cpp:
+ * platform/graphics/transforms/TransformationMatrix.cpp:
+
+2012-12-07 Antoine Quint <graouts@apple.com>
+
+ Provide the backend for exposing the layer tree to the Web Inspector
+ https://bugs.webkit.org/show_bug.cgi?id=103513
+
+ Reviewed by Pavel Feldman.
+
+ The purpose of this patch is to provide a new agent enabling the Web Inspector to interface
+ with WebCore to access information about the render layer tree and, more specifically, expose
+ useful information about layers backed by textures composited on the GPU such as metrics and
+ backing store. Thus we now provide a LayerTreeAgent which will inform the front-end of
+ changes to the render layer tree via a new layerTreeDidChange event, providing an object
+ containing the entire hierarchy of RenderLayers for the inspected document. This hierarchy
+ can be queried at any time using the .getLayerTree() method on the LayerTreeAgent. Finally,
+ the LayerTreeAgent also exposes a .nodeIdForLayerId() method allowing to get the id of the
+ node associated with the RenderLayer with the provided layer id.
+
+ In terms of implementation, RenderLayerCompositor has been changed such that in its
+ updateCompositingLayers() method we call the layerTreeDidChange method on the
+ InspectorLayerTreeAgent instance via the InspectorInstrumentation.
+
+ Test: inspector-protocol/layer-tree.html
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/Inspector.json: Define new types IntRect (x, y, width, height) and Layer, which
+ holds the information for a RenderLayer (layerId, bounds, isComposited, memory,
+ compositedBounds) and its children (childLayers). We also define the methods of the
+ LayerTreeAgent object (enable, disable, getLayerTree, nodeIdForLayerId) and the
+ layerTreeDidChange event it
+ fires.
+ * inspector/InspectorAllInOne.cpp:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend): New method facilitating
+ pushing the node associated with a given RenderLayer to the front-end.
+ (WebCore):
+ * inspector/InspectorDOMAgent.h:
+ (InspectorDOMAgent):
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ (WebCore::InspectorInstrumentation::didCommitLoadImpl):
+ (WebCore::InspectorInstrumentation::layerTreeDidChangeImpl):
+ (WebCore::InspectorInstrumentation::renderLayerDestroyedImpl):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore):
+ (InspectorInstrumentation):
+ (WebCore::InspectorInstrumentation::layerTreeDidChange):
+ (WebCore::InspectorInstrumentation::renderLayerDestroyed):
+ * inspector/InspectorLayerTreeAgent.cpp: Added.
+ (WebCore):
+ (LayerTreeAgentState):
+ (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
+ (WebCore::InspectorLayerTreeAgent::~InspectorLayerTreeAgent):
+ (WebCore::InspectorLayerTreeAgent::setFrontend):
+ (WebCore::InspectorLayerTreeAgent::clearFrontend):
+ (WebCore::InspectorLayerTreeAgent::restore):
+ (WebCore::InspectorLayerTreeAgent::reset):
+ (WebCore::InspectorLayerTreeAgent::enable):
+ (WebCore::InspectorLayerTreeAgent::disable):
+ (WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
+ (WebCore::InspectorLayerTreeAgent::renderLayerDestroyed):
+ (WebCore::InspectorLayerTreeAgent::getLayerTree):
+ (WebCore::InspectorLayerTreeAgent::buildObjectForRootLayer):
+ (WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Build the entire hierarchy of
+ RenderLayers from the provided RenderLayer.
+ (WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
+ (WebCore::InspectorLayerTreeAgent::bind):
+ (WebCore::InspectorLayerTreeAgent::unbind):
+ (WebCore::InspectorLayerTreeAgent::nodeIdForLayerId):
+ * inspector/InspectorLayerTreeAgent.h: Added.
+ (WebCore):
+ (InspectorLayerTreeAgent):
+ (WebCore::InspectorLayerTreeAgent::create):
+ * inspector/InstrumentingAgents.h:
+ (WebCore):
+ (WebCore::InstrumentingAgents::InstrumentingAgents):
+ (InstrumentingAgents):
+ (WebCore::InstrumentingAgents::inspectorLayerTreeAgent):
+ (WebCore::InstrumentingAgents::setInspectorLayerTreeAgent):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateCompositingLayers): Call the layerTreeDidChange method
+ on the LayerTreeAgent via the InspectorInstrumentation to inform the front-end that the
+ RenderLayer hierarchy has changed.
+ (WebCore):
+ (WebCore::RenderLayerCompositor::layerBecameNonComposited): Call the renderLayerDestroyed
+ method on the LayerTreeAgent via the InspectorInstrumentation to unbind the layer that is
+ being destroyed.
+ * rendering/RenderLayerCompositor.h:
+ (RenderLayerCompositor):
+
+2012-12-07 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Check SSV version when opening database
+ https://bugs.webkit.org/show_bug.cgi?id=102243
+
+ Reviewed by Tony Chang.
+
+ Ensure that the data format (SerializedScriptValue) isn't "from the future" when opening
+ a backing store. Treat an unknown version the same as an unknown schema version.
+
+ Chromium-side test at https://codereview.chromium.org/11470013/ (same as other schema version tests)
+
+ * Modules/indexeddb/IDBBackingStore.cpp:
+ (WebCore):
+ (WebCore::isSchemaKnown): Check data version as well.
+ (WebCore::setUpMetadata): Ensure data version is recorded; bump schema version.
+ * Modules/indexeddb/IDBLevelDBCoding.cpp: Encoding for "DataVersion" global metadata entry.
+ (IDBLevelDBCoding):
+ (WebCore::IDBLevelDBCoding::compare):
+ (WebCore::IDBLevelDBCoding::DataVersionKey::encode):
+ * Modules/indexeddb/IDBLevelDBCoding.h:
+ (DataVersionKey):
+ (IDBLevelDBCoding):
+ * bindings/js/SerializedScriptValue.cpp:
+ (SerializedScriptValue::wireFormatVersion): New method (JSC side).
+ * bindings/js/SerializedScriptValue.h:
+ * bindings/v8/SerializedScriptValue.cpp:
+ (WebCore::SerializedScriptValue::wireFormatVersion): New method (V8 side).
+ (WebCore):
+ * bindings/v8/SerializedScriptValue.h:
+ (SerializedScriptValue):
+
+2012-12-07 Andreas Kling <akling@apple.com>
+
+ Throw away StyleResolvers that haven't been used for a long time.
+ <http://webkit.org/b/104314>
+
+ Reviewed by Antti Koivisto.
+
+ A lot of memory gets tied up in StyleResolver and the structures and caches that hang from it.
+ Add a mechanism to throw it away after it's been unused for a while (1 minute.)
+ This frees up large amounts of memory on inactive pages (background tabs) and static content.
+
+ We already have a number of scenarios where the document style is invalidated by throwing away
+ the StyleResolver so the major code paths are prepared for having a null StyleResolver* on occasion.
+
+ ~20MB progression on Membuster3.
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::styleForElement):
+ (WebCore::StyleResolver::styleForKeyframe):
+ (WebCore::StyleResolver::pseudoStyleForElement):
+ (WebCore::StyleResolver::styleForPage):
+
+ Call document()->didAccessStyleResolver() from the relevant parts of StyleResolver's public API.
+ This prevents Document from throwing the StyleResolver away for 1 minute after it's used.
+
+ * dom/Document.h:
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::createStyleResolver):
+ (WebCore::Document::didAccessStyleResolver):
+ (WebCore::Document::styleResolverThrowawayTimerFired):
+
+ Add a mechanism to call clearStyleResolver() on a refreshing timer.
+
+ * dom/Element.cpp:
+ (WebCore::Element::attributeChanged):
+
+ If an attribute change occurs while the document doesn't have a StyleResolver, dirty the element style
+ since we can't be sure that the attribute change didn't affect any rules.
+
+2012-12-07 Antonio Gomes <a1.gomes@sisa.samsung.com>
+
+ REGRESSION(r136947): Made two tests fail on all platforms (Requested by tonikitoo-ll on #webkit).
+ https://bugs.webkit.org/show_bug.cgi?id=104368
+
+ Unreviewed partial rollout.
+
+ r136947 was too aggressive in the sense of fixing RenderBox::canBeScrolledAndHasScrollableArea
+ as part of itself. Revert the related changes in order to fix both
+ fast/events/autoscroll-should-not-stop-on-keypress.html and
+ fast/events/autoscroll-in-textfield.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
+ * rendering/RenderBox.h:
+
+2012-12-07 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
+ [TexMap] Can not do multiple accelerated animations
+ https://bugs.webkit.org/show_bug.cgi?id=104364
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ By removing all animations with the same name, it is not possible to animate more than one property accelerated.
+ Instead only remove any animations with both same name and property.
+
+ Covered by animations/opacity-transform-animation.html.
+
+ * platform/graphics/GraphicsLayerAnimation.cpp:
+ (WebCore::GraphicsLayerAnimations::add):
+ (WebCore::GraphicsLayerAnimations::remove):
+ * platform/graphics/GraphicsLayerAnimation.h:
+ (GraphicsLayerAnimations):
+
+2012-12-07 Sujin Park <sujjin.park@gmail.com>
+
+ [EFL] Fix build warning in StyleResolver.cpp using gcc 4.7.2
+ https://bugs.webkit.org/show_bug.cgi?id=104262
+
+ Reviewed by Alexis Menard.
+
+ EFL port treats build warning as compile error and there are
+ maybe-uninitialized when building with gcc 4.7.2.
+ This patch adds default case to resolve a build break.
+
+ * css/StyleResolver.cpp:
+ (WebCore::getFontAndGlyphOrientation):
+
+2012-12-06 Alexander Pavlov <apavlov@chromium.org>
+
+ Web Inspector: [Chromium] Ctrl + ']' "Goto right panel" keyboard shortcut doesn't work
+ https://bugs.webkit.org/show_bug.cgi?id=104250
+
+ Reviewed by Pavel Feldman.
+
+ Ignore "keypress" event resulting from a WM_CHAR message emitted by Win7 upon Ctrl + ']' keypress.
+
+ * inspector/front-end/InspectorView.js:
+ (WebInspector.InspectorView.prototype._keyPress): Ignore all events with charCode < 32.
+
+2012-10-03 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: provide a way to reload page with given script preprocessor.
+ https://bugs.webkit.org/show_bug.cgi?id=80992
+
+ Reviewed by Yury Semikhatsky.
+
+ This change introduces a way to inject 'preprocessor' script that would process
+ each JavaScript file before it gets into the VM for compilation. That way inspector
+ can expose capabilities such as assessing code coverage or tracing all the calls.
+
+ Preprocessor script is stored in the page agent where it waits for reload to happen.
+ Upon reload, ScriptDebugServer is using it to patch the script sources.
+
+
+ Test: inspector/debugger/debugger-script-preprocessor.html
+
+ * bindings/js/ScriptDebugServer.h:
+ (WebCore::ScriptDebugServer::setScriptPreprocessor):
+ (ScriptDebugServer):
+ * bindings/v8/DebuggerScript.js:
+ * bindings/v8/ScriptDebugServer.cpp:
+ (ScriptDebugServer::ScriptPreprocessor):
+ (WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
+ (WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
+ (WebCore::ScriptDebugServer::ScriptPreprocessor::~ScriptPreprocessor):
+ (WebCore):
+ (WebCore::ScriptDebugServer::~ScriptDebugServer):
+ (WebCore::ScriptDebugServer::setScriptSource):
+ (WebCore::ScriptDebugServer::setScriptPreprocessor):
+ (WebCore::ScriptDebugServer::handleV8DebugEvent):
+ * bindings/v8/ScriptDebugServer.h:
+ (ScriptDebugServer):
+ * bindings/v8/custom/V8InjectedScriptManager.cpp:
+ (WebCore::InjectedScriptManager::createInjectedScript):
+ * inspector/Inspector.json:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ * inspector/InspectorDebuggerAgent.h:
+ (InspectorDebuggerAgent):
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::reload):
+ (WebCore::InspectorPageAgent::frameNavigated):
+ * inspector/InspectorPageAgent.h:
+ (WebCore::InspectorPageAgent::page):
+ (WebCore::InspectorPageAgent::scriptPreprocessor):
+ (InspectorPageAgent):
+ * inspector/PageDebuggerAgent.cpp:
+ (WebCore::PageDebuggerAgent::create):
+ (WebCore::PageDebuggerAgent::PageDebuggerAgent):
+ (WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
+ (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
+ (WebCore::PageDebuggerAgent::injectedScriptForEval):
+ (WebCore::PageDebuggerAgent::didClearMainFrameWindowObject):
+ (WebCore):
+ * inspector/PageDebuggerAgent.h:
+ (WebCore):
+ (PageDebuggerAgent):
+
+2012-12-07 Alexander Pavlov <apavlov@chromium.org>
+
+ Web Inspector: the "Sources" column is always empty in CSS selector profiles
+ https://bugs.webkit.org/show_bug.cgi?id=104225
+
+ Reviewed by Pavel Feldman.
+
+ r112923 and preceding changesets modified the CSSOM wrapper creation for StyleRules in a way
+ that would not specify the parent CSSStyleSheet for the CSSStyleRules created. Instead,
+ styleResolver->ensureFullCSSOMWrapperForInspector(rule) is now used to make sure the CSSStyleRule
+ has a valid parent CSSStyleSheet.
+
+ Test: inspector/profiler/selector-profiler-url.html
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::collectMatchingRulesForList):
+ (WebCore::StyleResolver::applyProperties):
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ (WebCore::InspectorInstrumentation::willMatchRuleImpl):
+ (WebCore::InspectorInstrumentation::willProcessRuleImpl):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore):
+ (InspectorInstrumentation):
+ (WebCore::InspectorInstrumentation::willMatchRule):
+ (WebCore::InspectorInstrumentation::willProcessRule):
+
+2012-12-05 Antonio Gomes <a1.gomes@sisa.samsung.com>
+
+ Rework bug 97927 to not depend on RenderLayer::allowsScrolling
+ https://bugs.webkit.org/show_bug.cgi?id=103999
+
+ Reviewed by James Robinson.
+
+ Patch makes it possible for methods like
+ RenderLayer::{updateScrollbarsAfterLayout,updateScrollbarsAfterStyleChange}
+ to not depend on RenderLayer::allowsScrolling to determine if a layer should
+ be added or removed from its FrameView's ScrollableArea set.
+
+ Following the same logic, the patch also fixes RenderBox::canBeScrolledAndHasScrollableArea
+ method to take into account the box' scroll allowance in a given direction only
+ when it overflows. This allows simplifying custom methods like InRegionScrollerPrivate::canScrollRenderBox
+ (@WebKit/blackberry/Api/InRegionScroller.cpp).
+
+ The naming pattern for the newly added methods were chosen to keep the consistency
+ with the existing ones, in the same class.
+
+ No new test: it is already covered by ScrollingCoordinatorChromiumTest.clippedBodyTest.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
+ * rendering/RenderBox.h:
+ (RenderBox):
+ (WebCore::RenderBox::hasScrollableOverflowX):
+ (WebCore::RenderBox::hasScrollableOverflowY):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::hasScrollableHorizontalOverflow):
+ (WebCore):
+ (WebCore::RenderLayer::hasScrollableVerticalOverflow):
+ (WebCore::RenderLayer::updateScrollbarsAfterLayout):
+ (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+
+2012-12-07 Max Feil <mfeil@rim.com>
+
+ [BlackBerry] make "isVideo" information available to platform media player
+ https://bugs.webkit.org/show_bug.cgi?id=104334
+
+ Reviewed by Rob Buis.
+
+ The platform player needs to know whether the element is <video>
+ or <audio>, so it can make certain decisions before metadata
+ is ready. This is part of a performance optimization refactor
+ which does not change functionality so no new tests are required.
+
+ * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
+ (WebCore::MediaPlayerPrivate::load):
+
+2012-12-07 Kondapally Kalyan <kalyan.kondapally@intel.com>
+
+ [EFL] [AC] Implement ImageExtractor::extractImage in GraphicsContext3DEfl.
+ https://bugs.webkit.org/show_bug.cgi?id=104271.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This patch implements ImageExtractor::extractImage in GraphicsContext3DEfl.
+
+ Covered by existing tests.
+
+ * platform/graphics/efl/GraphicsContext3DEfl.cpp:
+ (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
+ (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
+
+2012-12-06 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Use always the order iterator from data member in RenderFlexibleBox
+ https://bugs.webkit.org/show_bug.cgi?id=104112
+
+ Reviewed by Tony Chang.
+
+ Some methods receive it as parameter and others use the data
+ member.
+
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::layoutBlock):
+ (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
+ (WebCore::RenderFlexibleBox::layoutFlexItems):
+ (WebCore::RenderFlexibleBox::computeNextFlexLine):
+ (WebCore::RenderFlexibleBox::alignFlexLines):
+ (WebCore::RenderFlexibleBox::alignChildren):
+ (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
+ (WebCore::RenderFlexibleBox::flipForWrapReverse):
+ * rendering/RenderFlexibleBox.h:
+
+2012-12-07 Kent Tamura <tkent@chromium.org>
+
+ Improve confusing code in BaseMultipleFieldsDateAndTimeInputType
+ https://bugs.webkit.org/show_bug.cgi?id=104353
+
+ Reviewed by Kentaro Hara.
+
+ This doesn't change any behavior because call sites of
+ isEditControlOwnerDisabled and isEditControlOwnerReadOnly treat them
+ similarly.
+
+ * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled):
+ Checks element()->disabled, not readOnly.
+ (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly):
+ Checks element()->readOnly, not disabled.
+
+2012-12-07 Jon Lee <jonlee@apple.com>
+
+ Build fix.
+
+ * plugins/PlugInOriginHash.cpp:
+ (WebCore::PlugInOriginHash::hash):
+
+2012-12-04 Jon Lee <jonlee@apple.com>
+
+ Add PlugInOriginHash
+ https://bugs.webkit.org/show_bug.cgi?id=103655
+ <rdar://problem/12778949>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Add the concept of plug-in origin hashes, which are based on a combination of the base domains of the
+ page's main frame and the plug-in, and the plug-in MIME type.
+
+ * plugins/PlugInOriginHash.cpp: Added.
+ (WebCore::addCaseFoldedCharacters): Add the case-folded string to the hash.
+ (WebCore::PlugInOriginHash::hash): The hash is based on the concatenation of the page's host, the plug-in
+ URL's host, and the MIME type. We use StringHasher to get all 32-bits of the hash, since using StringImpl's hash
+ masks out 8 of the hash bits to make room for bit flags.
+ * plugins/PlugInOriginHash.h: Added.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-12-06 Kent Tamura <tkent@chromium.org>
+
+ Refactoring: Clean up placeholder attribute usage
+ https://bugs.webkit.org/show_bug.cgi?id=104337
+
+ Reviewed by Kentaro Hara.
+
+ No new tests. This doesn't change any behavior.
+
+ * html/HTMLInputElement.cpp: Remove placeholder and setPlacehodler.
+ * html/HTMLInputElement.h: Ditto.
+ * html/HTMLTextFormControlElement.cpp:
+ (WebCore::HTMLTextFormControlElement::strippedPlaceholder):
+ We can use fastGetAttribute for placeholder.
+ (WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
+ Ditto.
+
+2012-12-06 Kent Tamura <tkent@chromium.org>
+
+ Refactoring: Rename HTMLFormControlElement::required to isRequired
+ https://bugs.webkit.org/show_bug.cgi?id=104336
+
+ Reviewed by Kentaro Hara.
+
+ m_required should be m_isRequired, and required() should be
+ isRequired. It's safe to rename them because HTML*Element::required IDL
+ attributes are [Reflected].
+ http://www.webkit.org/coding/coding-style.html#names-bool
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::isRequired):
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::canShareStyleWithControl):
+ * dom/CheckedRadioButtons.cpp:
+ (WebCore::RadioButtonGroup::add):
+ (WebCore::RadioButtonGroup::requiredAttributeChanged):
+ (WebCore::RadioButtonGroup::remove):
+ * html/CheckboxInputType.cpp:
+ (WebCore::CheckboxInputType::valueMissing):
+ * html/FileInputType.cpp:
+ (WebCore::FileInputType::valueMissing):
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::HTMLFormControlElement):
+ (WebCore::HTMLFormControlElement::parseAttribute):
+ (WebCore::HTMLFormControlElement::isRequired):
+ * html/HTMLFormControlElement.h:
+ (HTMLFormControlElement):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::isRequiredFormControl):
+ (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::valueMissing):
+ (WebCore::HTMLSelectElement::isRequiredFormControl):
+ * html/HTMLTextAreaElement.h:
+ (WebCore::HTMLTextAreaElement::isRequiredFormControl):
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::valueMissing):
+
+2012-12-06 Hajime Morrita <morrita@google.com>
+
+ [Shadow DOM] Implement Element::shadowRoot with prefix
+ https://bugs.webkit.org/show_bug.cgi?id=102912
+
+ Reviewed by Dimitri Glazkov.
+
+ - Added Element::shadowRoot() which return the youngest author shadow root.
+ - Renamed existing Node::shadowRoot() to containingShadowRoot() to avoid name shadowing.
+ The name shadowRoot() is confusing anyway so this is good opportunity to rename it.
+
+ Test: fast/dom/shadow/shadow-aware-shadow-root.html
+
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::checkSelector):
+ * css/StyleScopeResolver.cpp:
+ (WebCore::StyleScopeResolver::scopeFor):
+ (WebCore::StyleScopeResolver::addHostRule):
+ * dom/Element.cpp:
+ (WebCore::Element::shadowRoot):
+ (WebCore):
+ * dom/Element.h:
+ (Element):
+ * dom/Element.idl:
+ * dom/ElementShadow.cpp:
+ (WebCore::ElementShadow::setShouldCollectSelectFeatureSet):
+ * dom/Node.cpp:
+ (WebCore::Node::rendererIsEditable):
+ (WebCore::Node::shadowHost):
+ (WebCore::Node::shadowAncestorNode):
+ (WebCore::Node::containingShadowRoot):
+ * dom/Node.h:
+ (Node):
+ * dom/Range.cpp:
+ (WebCore::Range::shadowRoot):
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::insertedInto):
+ (WebCore::ShadowRoot::removedFrom):
+ * dom/ShadowRoot.h:
+ (WebCore::ShadowRoot::isAccessible):
+ * editing/TextIterator.cpp:
+ (WebCore::TextIterator::handleReplacedElement):
+ * editing/htmlediting.cpp:
+ (WebCore::indexForVisiblePosition):
+ * html/HTMLStyleElement.cpp:
+ (WebCore::HTMLStyleElement::scopedAttributeChanged):
+ (WebCore::HTMLStyleElement::registerWithScopingNode):
+ (WebCore::HTMLStyleElement::removedFrom):
+ * html/shadow/ContentDistributor.cpp:
+ (WebCore::ContentDistributor::distribute):
+ * html/shadow/HTMLContentElement.cpp:
+ (WebCore::HTMLContentElement::parseAttribute):
+ (WebCore::HTMLContentElement::insertedInto):
+ (WebCore::HTMLContentElement::removedFrom):
+ * html/shadow/HTMLShadowElement.cpp:
+ (WebCore::HTMLShadowElement::insertedInto):
+ (WebCore::HTMLShadowElement::removedFrom):
+ * html/shadow/InsertionPoint.cpp:
+ (WebCore::InsertionPoint::attach):
+ (WebCore::InsertionPoint::detach):
+ (WebCore::InsertionPoint::isActive):
+ (WebCore::InsertionPoint::childrenChanged):
+ (WebCore::InsertionPoint::insertedInto):
+ (WebCore::InsertionPoint::removedFrom):
+ (WebCore::InsertionPoint::setResetStyleInheritance):
+ * page/EventHandler.cpp:
+ (WebCore::instanceAssociatedWithShadowTreeElement):
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::correspondingElement):
+ (WebCore::collectInstancesForSVGElement):
+
+2012-12-06 Michael Pruett <michael@68k.org>
+
+ IndexedDB: Replace int64 with int64_t
+ https://bugs.webkit.org/show_bug.cgi?id=104338
+
+ Reviewed by Kentaro Hara.
+
+ Cleaning up coding inconsistencies, no change in behavior.
+
+ Tests: storage/indexeddb/*
+
+ * Modules/indexeddb/IDBFactory.cpp:
+ (WebCore::IDBFactory::openInternal):
+
+2012-12-06 James Simonsen <simonjam@chromium.org>
+
+ [Resource Timing] Allow detailed timing on same origin sites
+ https://bugs.webkit.org/show_bug.cgi?id=104328
+
+ Reviewed by Tony Gentilcore.
+
+ This block was lost when I moved it to PerformanceResourceTiming.cpp.
+
+ Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_attribute_order.html
+
+ * page/PerformanceResourceTiming.cpp:
+ (WebCore::passesTimingAllowCheck):
+
+2012-12-06 Rick Byers <rbyers@chromium.org>
+
+ CSS cursor property should support webkit-image-set
+ https://bugs.webkit.org/show_bug.cgi?id=99493
+
+ Reviewed by Beth Dakin.
+
+ Add support for image scale factors attached to custom mouse cursor images
+ behind ENABLE(MOUSE_CURSOR_SCALE).
+
+ This required refactoring CSSCursorImageValue to derive directly from
+ CSSValue since it can contain either a CSSImageValue or a CSSImageSetValue.
+ If it contains an image-set, then we can plumb directly through to the
+ CSSImageSetValue. If it contains an image, then either we can plumb directly
+ through to the CSSImageValue, or if the URL represents an SVG cursor we have
+ to intercept the image loading in order to substitute the actual SVG image URL
+ and do the appropriate lifetime management.
+
+ Tests: fast/css/cursor-parsing-image-set.html
+ fast/events/mouse-cursor-image-set.html
+
+ * Configurations/FeatureDefines.xcconfig: Add ENABLE_MOUSE_CURSOR_SCALE - disabled
+ * GNUmakefile.features.am: ditto
+ * css/CSSCursorImageValue.cpp: Refactor to inherit directly from CSSValue and support image sets
+ (WebCore::CSSCursorImageValue::CSSCursorImageValue):
+ (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
+ (WebCore::CSSCursorImageValue::customCssText):
+ (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
+ (WebCore::CSSCursorImageValue::cachedImage):
+ (WebCore::CSSCursorImageValue::cachedOrPendingImage):
+ (WebCore::CSSCursorImageValue::isSVGCursor):
+ (WebCore::CSSCursorImageValue::cachedImageURL):
+ (WebCore::CSSCursorImageValue::clearCachedImage):
+ (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
+ * css/CSSCursorImageValue.h: Remove cursor-specific hacks
+ (WebCore::CSSCursorImageValue::create):
+ (CSSCursorImageValue):
+ * css/CSSImageValue.cpp:
+ (WebCore::CSSImageValue::cachedImage):
+ * css/CSSImageValue.h:
+ (CSSImageValue):
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue): Parse cursor(-webkit-image-set(...)) rules
+ * css/CSSValue.h:
+ (WebCore::CSSValue::isImageValue):
+ * css/StyleBuilder.cpp:
+ (WebCore::ApplyPropertyCursor::applyValue):
+ * css/StyleResolver.cpp: Hook up new CSSCursorImageValue support since it can't be handled like other images any more.
+ (WebCore::StyleResolver::styleImage):
+ (WebCore::StyleResolver::cursorOrPendingFromValue):
+ (WebCore::StyleResolver::loadPendingImage):
+ * css/StyleResolver.h:
+ (StyleResolver):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::selectCursor): Handle StyleCachedImageSet images and plumb scale factor through
+ * platform/Cursor.cpp:
+ (WebCore::Cursor::Cursor): Add imageScaleFactor
+ * platform/Cursor.h: Add imageScaleFactor
+ (Cursor):
+ (WebCore::Cursor::imageScaleFactor):
+ * platform/chromium/CursorChromium.cpp: Add imageScaleFactor
+ (WebCore::Cursor::Cursor):
+ (WebCore::Cursor::operator=):
+ * rendering/style/CursorData.h: Clarify hotspot units
+ (CursorData):
+ * rendering/style/StyleCachedImage.h:
+ (StyleCachedImage::cachedImage): Override new virtual.
+ * rendering/style/StyleCachedImageSet.h:
+ (StyleCachedImageSet::cachedImage): Override new virtual.
+ * rendering/style/StyleImage.h:
+ (StyleImage::cachedImage): Add new virtual method to avoid lots of casts and typechecks.
+ * rendering/style/StylePendingImage.h: Add CSSCursorImageValue support
+ (WebCore::StylePendingImage::cssCursorImageValue):
+ * testing/Internals.cpp:
+ (WebCore::Internals::getCurrentCursorInfo): Print non-identity scale factors for testing
+
+2012-12-06 Hayato Ito <hayato@chromium.org>
+
+ Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
+ https://bugs.webkit.org/show_bug.cgi?id=102681
+
+ Reviewed by Dimitri Glazkov.
+
+ Make sure that event's relatedTarget re-targeting occurs for mouse
+ events created by event.initMouseEvent(). Since user-generated
+ mouse events can have a relatedTarget which is same to the target
+ node, the algorithm which calculates event's ancestors is also
+ updated so that ancestors are not shrunk wrongly.
+
+ Test: fast/events/dispatch-synthetic-mouseevent.html
+ fast/dom/shadow/shadow-dom-event-dispatching.html
+
+ * dom/EventDispatcher.cpp:
+ (WebCore::EventRelatedTargetAdjuster::adjust):
+ * dom/MouseEvent.cpp:
+ (WebCore::MouseEventDispatchMediator::create):
+ (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
+ (WebCore::MouseEventDispatchMediator::dispatchEvent):
+ * dom/MouseEvent.h:
+ (WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
+ (MouseEventDispatchMediator):
+ * dom/Node.cpp:
+ (WebCore::Node::dispatchEvent):
+
+2012-12-06 Kunihiko Sakamoto <ksakamoto@chromium.org>
+
+ Disabled file input box stops a certain other div from being rendered
+ https://bugs.webkit.org/show_bug.cgi?id=104226
+
+ Reviewed by Dimitri Glazkov.
+
+ The bug was caused by setNeedsStyleRecalc() call during style recalculation,
+ which resulted in inconsistent ChildNeedsStyleRecalc flags in DOM tree.
+
+ When reattach of file input happens during style recalculation,
+ RenderFileUploadControl::updateFromElement() is called from attach().
+ It may change the disabled state of the upload button in its shadow tree,
+ but it triggers style recalculation.
+
+ This patch solves this issue by setting disabled state of the upload button in
+ FileInputType::disabledAttributeChanged instead of RenderFileUploadControl.
+
+ Test: fast/forms/file/sibling-of-disabled-file-input.html
+
+ * html/FileInputType.cpp:
+ (WebCore::FileInputType::disabledAttributeChanged): Added.
+ * html/FileInputType.h:
+ (FileInputType): Declare disabledAttributeChanged.
+ * rendering/RenderFileUploadControl.cpp:
+ (WebCore::RenderFileUploadControl::updateFromElement): Remove call to button->setDisabled().
+
+2012-12-06 Dominic Cooney <dominicc@chromium.org>
+
+ Element.pseudo property should be prefixed
+ https://bugs.webkit.org/show_bug.cgi?id=104060
+
+ Reviewed by Hajime Morita.
+
+ Other Shadow DOM properties are prefixed; pseudo should be too.
+
+ Covered by updated tests in fast/dom/shadow.
+
+ * dom/Element.idl:
+
+2012-12-06 Andrei Bucur <abucur@adobe.com>
+
+ [CSS Regions] Remove the sanitize mechanism from LineFragmentationData
+ https://bugs.webkit.org/show_bug.cgi?id=104234
+
+ Reviewed by David Hyatt.
+
+ Remove previous work that ensured an invalid region is never returned by the containingRegion getter. After r136793 the blocks always
+ relayout children if the region chain changes. This means the sanitize() method is only necessary when all the regions are removed.
+ This case is treated separately in layoutInlineChildren.
+
+ Tests: no new functionality, no bug fixed.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlock::layoutInlineChildren):
+ * rendering/RootInlineBox.cpp:
+ (WebCore::RootInlineBox::containingRegion):
+ (WebCore):
+ (WebCore::RootInlineBox::setContainingRegion):
+ * rendering/RootInlineBox.h:
+ (RootInlineBox):
+ (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
+ (LineFragmentationData):
+
+2012-12-06 Kenneth Russell <kbr@google.com>
+
+ Associate URLs with GraphicsContext3D instances created for WebGL
+ https://bugs.webkit.org/show_bug.cgi?id=103793
+
+ Reviewed by Adam Barth.
+
+ Pass down the URL of the topmost frame's document creating the
+ WebGL context to the platform layer through
+ GraphicsContext3D::Attributes.
+
+ Not feasible to write a layout test for this change; has no
+ user-visible effect. Tested manually with failure injection in
+ Chromium port.
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore):
+ (WebCore::WebGLRenderingContext::create):
+ Pass top document's URL in context creation attributes.
+ * platform/chromium/support/GraphicsContext3DChromium.cpp:
+ (WebCore::GraphicsContext3D::create):
+ Pass URL through WebKit API.
+ * platform/graphics/GraphicsContext3D.h:
+ (Attributes):
+ Add top document's URL to context creation attributes.
+
+2012-12-06 Philip Rogers <pdr@google.com>
+
+ Unify SVG's animation and target tracking systems.
+ https://bugs.webkit.org/show_bug.cgi?id=102655
+
+ Reviewed by Dirk Schulze.
+
+ This patch unifies our animation target tracking system and regular target tracking system.
+ This simplifies the code, fixes a bug, and cleans up a historically security-sensitive area.
+
+ Background: When <use>, <mpath>, <animate>, etc. reference another element using
+ xlink:href="#id", we need to track when #id changes to #otherId, when #id is removed, etc.
+ This bookkeeping of element -> target is done in SVGDocumentExtensions. Additionally, when
+ a target changes that causes layout (e.g., rect.x is changed), all dependent elements with
+ renderers are notified (<animate> has no renderer and will not use this).
+
+ Previously, xlink:href changes were lazily resolved when targetElement() was called, target
+ changes were tracked using the animation tracking framework, and pending targets did not
+ work (e.g., <animate xlink:href="#p"><!--animate is now pending #p --><rect id="p"/>).
+
+ After this patch, we no longer lazily resolve targetElement() but instead change it when
+ our xlink:href attribute changes. Instead of using the animation tracking framework in
+ SVGDocumentExtensions, we now use the regular target tracking framework. Lastly, by using
+ the regular target tracking framework we are able to hook into the pending resource handling
+ which fixes a bug (see the test).
+
+ A test has been added to test that the order of animation elements does not matter. A second
+ test has been added to show we do not regress a pending-while-pending case.
+
+ Tests: svg/animations/svg-animation-order.html
+ svg/custom/svg-pending-twice.html
+
+ * svg/SVGAnimateElement.cpp:
+ (WebCore::SVGAnimateElement::setTargetElement):
+
+ setTargetElement and setAttributeName now work similarly. When the corresponding attribute
+ changes, we update our internal state (target or attributeName) and save it instead of
+ looking these values up on each iteration.
+
+ (WebCore::SVGAnimateElement::setAttributeName):
+ (WebCore):
+ (WebCore::SVGAnimateElement::resetAnimatedPropertyType):
+ * svg/SVGAnimateElement.h:
+ (SVGAnimateElement):
+ * svg/SVGAnimationElement.cpp:
+ (WebCore::SVGAnimationElement::setAttributeType):
+ (WebCore::SVGAnimationElement::setTargetElement):
+ (WebCore::SVGAnimationElement::setAttributeName):
+ * svg/SVGAnimationElement.h:
+ (SVGAnimationElement):
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
+ (WebCore):
+ * svg/SVGDocumentExtensions.h:
+ (SVGDocumentExtensions):
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::~SVGElement):
+ (WebCore::SVGElement::removedFrom):
+ (WebCore::SVGElement::attributeChanged):
+ * svg/SVGElementInstance.cpp:
+ (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
+
+ This can be removed after r131631 landed.
+
+ * svg/SVGMPathElement.cpp:
+ (WebCore::SVGMPathElement::buildPendingResource):
+ * svg/SVGTextPathElement.cpp:
+ (WebCore::SVGTextPathElement::buildPendingResource):
+
+ A bug was discovered in review with our resource tracking in a pending-while-pending
+ case. SVGMpathElement and SVGTextPathElement have been updated to fix this as well.
+
+ * svg/animation/SVGSMILElement.cpp:
+
+ The changes in SVGSMILElement should look very similar to SVGFEImageElement,
+ SVGMPathElement, etc. The idea is to build pending resources when added or
+ removed from the document, or when the href attribute changes.
+
+ (WebCore::SVGSMILElement::~SVGSMILElement):
+ (WebCore):
+ (WebCore::SVGSMILElement::clearResourceReferences):
+ (WebCore::SVGSMILElement::buildPendingResource):
+ (WebCore::SVGSMILElement::insertedInto):
+ (WebCore::SVGSMILElement::removedFrom):
+ (WebCore::SVGSMILElement::svgAttributeChanged):
+ (WebCore::SVGSMILElement::setAttributeName):
+ (WebCore::SVGSMILElement::setTargetElement):
+ * svg/animation/SVGSMILElement.h:
+ (WebCore):
+ (WebCore::SVGSMILElement::targetElement):
+ (SVGSMILElement):
+
+2012-12-06 Jon Lee <jonlee@apple.com>
+
+ Retry snapshots if they are too empty
+ https://bugs.webkit.org/show_bug.cgi?id=104174
+ <rdar://problem/12820146>
+
+ Reviewed by Simon Fraser.
+
+ * html/HTMLPlugInImageElement.cpp:
+ (WebCore::HTMLPlugInImageElement::updateSnapshot): Change the state machine check so that even
+ when the plug-in is displaying a snapshot, the snapshot can still be updated. This allows for the
+ retries to be drawn.
+
+2012-12-06 Adam Klein <adamk@chromium.org>
+
+ [HTMLTemplateElement] make content readonly and cloneNode(deep) clone content
+ https://bugs.webkit.org/show_bug.cgi?id=104181
+
+ Reviewed by Adam Barth.
+
+ Note that this patch also adds IDL attributes/custom code to tie the lifetime
+ of the content DocumentFragment wrapper to the lifetime of the template element wrapper
+ via a hidden JS property.
+
+ Based on a patch by Rafael Weinstein.
+
+ Test: fast/dom/HTMLTemplateElement/contentWrappers.html
+
+ * DerivedSources.cpp:
+ * Target.pri:
+ * UseJSC.cmake:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSBindingsAllInOne.cpp:
+ * bindings/js/JSHTMLTemplateElementCustom.cpp: Copied from Source/WebCore/html/HTMLTemplateElement.idl.
+ (WebCore):
+ (WebCore::JSHTMLTemplateElement::content):
+ * bindings/scripts/CodeGeneratorV8.pm: Add support for new V8CacheAttributeForGC attribute.
+ * dom/Element.h:
+ (Element): Annotate cloneNode() with OVERRIDE
+ * html/HTMLTemplateElement.cpp:
+ (WebCore::HTMLTemplateElement::cloneNode):
+ * html/HTMLTemplateElement.h:
+ (HTMLTemplateElement): override cloneNode
+ * html/HTMLTemplateElement.idl: Make content readonly and add custom attributes.
+
+2012-12-06 Brent Fulgham <bfulgham@webkit.org>
+
+ [Windows, WinCairo] Unreviewed build correction.
+
+ Exclude 'DocumentSharedObjectPool.cpp' from build, since it is
+ built as part of DOMAllInOne.cpp. The build (besides wasting
+ time) generates a bunch of build warnings for duplicate symbols.
+
+ * WebCore.vcproj/WebCore.vcproj: Mark DocumentSharedObjectPool.cpp
+ to not build independently of DOMAllInOne.cpp.
+
+2012-12-06 David Grogan <dgrogan@chromium.org>
+
+ IndexedDB: Abort transactions because of leveldb errors part 4
+ https://bugs.webkit.org/show_bug.cgi?id=103964
+
+ Reviewed by Tony Chang.
+
+ deleteDatabase, open, and deleteObjectStore will now fire more aborts
+ and errors in case of leveldb problems
+
+ * Modules/indexeddb/IDBBackingStore.cpp:
+ (WebCore::getVarInt): Make return value indicate leveldb error.
+ (WebCore::getString): ditto.
+ (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
+ Change return value to indicate leveldb error.
+
+ (WebCore::IDBBackingStore::deleteDatabase):
+ Already had the desired return value semantics. As a consumer of
+ getIDBDatabaseMetadata, will return an error (causing an abort) more
+ often.
+
+ (WebCore::IDBBackingStore::deleteObjectStore):
+ Needed return value change. Will return error to DatabaseBackend to
+ indicate leveldb problems.
+
+ * Modules/indexeddb/IDBBackingStore.h:
+ (IDBBackingStore):
+ * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
+ (WebCore::IDBDatabaseBackendImpl::openInternal):
+ Pass leveldb errors up to callers, who already handle internal errors.
+
+ (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
+ Abort transaction if there were leveldb problems deleting an object
+ store.
+
+2012-12-06 David Grogan <dgrogan@chromium.org>
+
+ IndexedDB: Add webkitErrorMessage to IDBTransaction
+ https://bugs.webkit.org/show_bug.cgi?id=104199
+
+ Reviewed by Tony Chang.
+
+ Don't drop error messages on the floor.
+
+ Expose an error message on IDBTransaction to give developers more
+ information than the opaque error code currently available. This is
+ exactly what is done in IDBRequest.
+
+ Tests - transaction-error.html
+
+ * Modules/indexeddb/IDBDatabaseError.h:
+ (WebCore::IDBDatabaseError::create):
+ * Modules/indexeddb/IDBRequest.cpp:
+ (WebCore::IDBRequest::dispatchEvent):
+ (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
+ * Modules/indexeddb/IDBTransaction.cpp:
+ (WebCore::IDBTransaction::setError):
+ (WebCore):
+ (WebCore::IDBTransaction::webkitErrorMessage):
+ (WebCore::IDBTransaction::onAbort):
+ * Modules/indexeddb/IDBTransaction.h:
+ (IDBTransaction):
+ * Modules/indexeddb/IDBTransaction.idl:
+
+2012-12-06 Alexander Shalamov <alexander.shalamov@intel.com>
+
+ XMLHttpRequest Content-Type should be taken from Blob type
+ https://bugs.webkit.org/show_bug.cgi?id=99983
+
+ Reviewed by Alexey Proskuryakov.
+
+ Fix XMLHttpRequest::send(Blob*) method, so that the Content-Type is set according to W3C specification.
+ http://www.w3.org/TR/XMLHttpRequest/#the-send-method
+
+ Added test that check if content type is set correctly when blob object is sent.
+
+ Test: http/tests/xmlhttprequest/post-blob-content-type.html
+
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::send):
+ Set correct MIME type for Blob objects.
+ * WebCore.vcproj/WebCore.vcproj:
+ Added ParsedContentType to project file.
+
+2012-12-06 Min Qin <qinmin@chromium.org>
+
+ Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
+ https://bugs.webkit.org/show_bug.cgi?id=103555
+
+ Reviewed by Stephen White.
+
+ Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
+ No test added for now as impl side paiting is still WIP.
+
+ * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
+ (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
+ (WebCore::LazyDecodingPixelRef::PrepareToDecode):
+ (WebCore):
+ (WebCore::LazyDecodingPixelRef::Decode):
+ * platform/graphics/chromium/LazyDecodingPixelRef.h:
+ (LazyDecodingPixelRef):
+
+2012-12-06 Kentaro Hara <haraken@chromium.org>
+
+ [V8] Make an Isolate mandatory in v8UnsignedInteger()
+ https://bugs.webkit.org/show_bug.cgi?id=104235
+
+ Reviewed by Adam Barth.
+
+ No tests. No change in behavior.
+
+ * bindings/v8/ArrayValue.cpp:
+ (WebCore::ArrayValue::get):
+ * bindings/v8/V8Binding.h:
+ (WebCore::v8UnsignedInteger):
+ * bindings/v8/V8LazyEventListener.cpp:
+ (WebCore::V8LazyEventListener::prepareListenerObject):
+
+2012-12-06 David Hyatt <hyatt@apple.com>
+
+ [New Multicolumn] Add requiresBalancing booleans to track which column sets need to rebalance.
+ https://bugs.webkit.org/show_bug.cgi?id=104297
+
+ Reviewed by Simon Fraser.
+
+ Add requiresBalancing booleans to RenderMultiColumnBlock and RenderMultiColumnSet. For now the former is just propagated
+ to the latter, but eventually RenderMultiColumnSets will have a notion of balancing that has to be independent of the
+ owning block (e.g., maybe only the last set rebalances, or maybe only a set that contains the content between two forced
+ breaks wants to rebalance, etc.).
+
+ * rendering/RenderMultiColumnBlock.cpp:
+ (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
+ (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
+ (WebCore::RenderMultiColumnBlock::ensureColumnSets):
+ * rendering/RenderMultiColumnBlock.h:
+ (WebCore::RenderMultiColumnBlock::requiresBalancing):
+ (RenderMultiColumnBlock):
+ * rendering/RenderMultiColumnSet.cpp:
+ (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
+ * rendering/RenderMultiColumnSet.h:
+ (WebCore::RenderMultiColumnSet::requiresBalancing):
+ (WebCore::RenderMultiColumnSet::setRequiresBalancing):
+ (RenderMultiColumnSet):
+ (WebCore::toRenderMultiColumnSet):
+ (WebCore):
+
+2012-12-06 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r136871.
+ http://trac.webkit.org/changeset/136871
+ https://bugs.webkit.org/show_bug.cgi?id=104293
+
+ crashes on bots and memory leaks (Requested by esprehn on
+ #webkit).
+
+ * dom/Document.h:
+ (WebCore::Node::treeScope):
+ * dom/Element.cpp:
+ (WebCore::Element::createRareData):
+ * dom/ElementRareData.h:
+ (ElementRareData):
+ (WebCore::ElementRareData::ElementRareData):
+ * dom/Node.cpp:
+ (WebCore::Node::setTreeScope):
+ (WebCore::Node::ensureRareData):
+ (WebCore::Node::createRareData):
+ (WebCore::Node::clearRareData):
+ * dom/Node.h:
+ (WebCore::NodeRareDataBase::~NodeRareDataBase):
+ (WebCore::NodeRareDataBase::NodeRareDataBase):
+ (NodeRareDataBase):
+ (WebCore::Node::renderer):
+ (WebCore::Node::setRenderer):
+ (Node):
+ (WebCore::Node::hasRareData):
+ * dom/NodeRareData.h:
+ (WebCore::NodeRareData::NodeRareData):
+ (NodeRareData):
+
+2012-12-06 Adam Klein <adamk@chromium.org>
+
+ Remove non-v8 binding files from WebCore.gypi
+ https://bugs.webkit.org/show_bug.cgi?id=104288
+
+ Reviewed by Adam Barth.
+
+ Since the gyp build is only used by the Chromium project,
+ there's no need for cpp, gobject, objc, or jsc bindings
+ in these build files.
+
+ * WebCore.gypi:
+
2012-12-06 Tony Chang <tony@chromium.org>
REGRESSION(r135082): Restore the ability to insert author level style sheets from script
« no previous file with comments | « LayoutTests/plugins/npruntime/embed-property-iframe-equality-expected.txt ('k') | Source/WebCore/bindings/v8/NPV8Object.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698