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

Unified Diff: Source/WebCore/ChangeLog

Side-by-side diff isn't available for this file because of its large size.
Issue 8152004: Merge 96554 - A little more WebSQLDatabase thread safety. (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/874/
Patch Set: Created 9 years, 2 months 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
« no previous file with comments | « no previous file | Source/WebCore/storage/AbstractDatabase.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/WebCore/ChangeLog
===================================================================
--- Source/WebCore/ChangeLog (revision 96741)
+++ Source/WebCore/ChangeLog (working copy)
@@ -1,3 +1,7631 @@
+2011-10-03 Michael Nordman <michaeln@google.com>
+
+ A little more WebSQLDatabase thread safety.
+ https://bugs.webkit.org/show_bug.cgi?id=69277
+
+ - switch to using AtomicallyInitializedStatic where appropiate
+ - avoid using some Strings across threads
+
+ Reviewed by David Levin.
+
+ Existing tests apply.
+
+ * storage/AbstractDatabase.cpp:
+ (WebCore::guidMutex):
+ (WebCore::guidToVersionMap):
+ (WebCore::guidToDatabaseMap):
+ (WebCore::guidForOriginAndName):
+ (WebCore::AbstractDatabase::databaseInfoTableName):
+ (WebCore::AbstractDatabase::AbstractDatabase):
+ (WebCore::AbstractDatabase::performOpenAndVerify):
+ (WebCore::AbstractDatabase::getVersionFromDatabase):
+ (WebCore::AbstractDatabase::setVersionInDatabase):
+ * storage/AbstractDatabase.h:
+ * storage/chromium/DatabaseTrackerChromium.cpp:
+ (WebCore::DatabaseTracker::tracker):
+ * storage/chromium/QuotaTracker.cpp:
+ (WebCore::QuotaTracker::instance):
+
+2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
+
+ Replace m_firstNodeInserted and m_lastLeafInserted in ReplaceSelectionCommand by positions
+ https://bugs.webkit.org/show_bug.cgi?id=68874
+
+ Reviewed by Enrica Casucci.
+
+ Replaced m_firstNodeInserted and m_lastLeafInserted by m_startOfInsertedContent and m_endOfInsertedContent
+ respectively. Also removed removeNodePreservingChildren and removeNodeAndPruneAncestors in ReplaceSelectionCommand
+ because they were not virtual in CompositeEditCommand and implicitly overriding the functions was confusing.
+ Since each of these two functions is used at exactly one place, just update positions and insertedNodes explicitly.
+
+ * editing/CompositeEditCommand.cpp:
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
+ (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
+ (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
+ (WebCore::ReplaceSelectionCommand::handleStyleSpans):
+ (WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): Update m_endOfInsertedContent by endingSelection().visibleEnd()
+ instead of m_lastLeafInserted with destination.previous() because moveParagraph could have removed leading whitespace in
+ the text node referenced by destination. This is tested by an existing layout test.
+ (WebCore::ReplaceSelectionCommand::doApply):
+ (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Update positions as needed. All changes are tested
+ by the existing layout tests in editing/pasteboard.
+ (WebCore::ReplaceSelectionCommand::updateNodesInserted):
+ * editing/ReplaceSelectionCommand.h:
+ * editing/htmlediting.cpp:
+ (WebCore::hasARenderedDescendant): Moved from CompositeEditCommand.cpp.
+ (WebCore::highestNodeToRemoveInPruning): Ditto.
+ * editing/htmlediting.h:
+
+2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
+
+ REGRESSION(r94274): cloned text input loses value
+ https://bugs.webkit.org/show_bug.cgi?id=69095
+
+ Reviewed by Darin Adler.
+
+ The bug was caused by copyNonAttributeProperties not updating inner element text after copying
+ m_valueIfDirty. Fixed the bug by calling updateInnerTextValue.
+
+ Test: fast/forms/clone-input-with-dirty-value.html
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::copyNonAttributeProperties):
+
+2011-10-03 Ryosuke Niwa <rniwa@webkit.org>
+
+ Leopard build fix after r96530.
+
+ * rendering/svg/RenderSVGResourcePattern.cpp:
+ (WebCore::RenderSVGResourcePattern::applyResource):
+
+2011-10-03 Sam Weinig <sam@webkit.org>
+
+ Move ContentSecurityPolicy to the ScriptExecutionContext to prepare it for working with XHR and workers
+ https://bugs.webkit.org/show_bug.cgi?id=69294
+
+ Reviewed by Darin Adler.
+
+ * dom/Document.cpp:
+ (WebCore::Document::initSecurityContext):
+ Initialize the ContentSecurityPolicy by calling down to the ScriptExecutionContext.
+
+ * dom/Document.h:
+ Move the ContentSecurityPolicy member and getter from here to ScriptExecutionContext.h.
+
+ * dom/ScriptExecutionContext.cpp:
+ (WebCore::ScriptExecutionContext::setContentSecurityPolicy):
+ * dom/ScriptExecutionContext.h:
+ (WebCore::ScriptExecutionContext::contentSecurityPolicy):
+ Add ContentSecurityPolicy member and getter/setter.
+
+ * page/ContentSecurityPolicy.cpp:
+ (WebCore::ContentSecurityPolicy::ContentSecurityPolicy):
+ (WebCore::ContentSecurityPolicy::didReceiveHeader):
+ (WebCore::ContentSecurityPolicy::reportViolation):
+ (WebCore::ContentSecurityPolicy::parseReportURI):
+ (WebCore::ContentSecurityPolicy::createCSPDirective):
+ * page/ContentSecurityPolicy.h:
+ (WebCore::ContentSecurityPolicy::create):
+ Replace Document with ScriptExecutionContext. Add temporary checked casts to document
+ where necessary.
+
+ * workers/WorkerContext.cpp:
+ (WebCore::WorkerContext::WorkerContext):
+ Add initialization of the ContentSecurityPolicy.
+
+2011-10-03 Anders Carlsson <andersca@apple.com>
+
+ Remove custom scrollbar painting hooks
+ https://bugs.webkit.org/show_bug.cgi?id=69163
+
+ Reviewed by Alexey Proskuryakov.
+
+ The custom scrollbar and scroll corner painting hooks aren't used by anyone
+ so go ahead and remove them. This removes the setter/getter and ChromeClient functions.
+
+ * page/Chrome.cpp:
+ * page/ChromeClient.h:
+ * page/Settings.cpp:
+ (WebCore::Settings::Settings):
+ * page/Settings.h:
+ * platform/ScrollbarThemeComposite.cpp:
+ (WebCore::ScrollbarThemeComposite::paint):
+ (WebCore::ScrollbarThemeComposite::paintScrollCorner):
+
+2011-09-22 Darin Adler <darin@apple.com>
+
+ Rename many obviously-correct call sites in WebCore using releaseRef to use it by its new name leakRef
+ https://bugs.webkit.org/show_bug.cgi?id=68672
+
+ Reviewed by Daniel Bates.
+
+ * bindings/js/JSDOMWindowBase.cpp:
+ (WebCore::JSDOMWindowBase::commonJSGlobalData):
+ * css/CSSInitialValue.h:
+ (WebCore::CSSInitialValue::createExplicit):
+ (WebCore::CSSInitialValue::createImplicit):
+ * css/CSSPrimitiveValue.cpp:
+ (WebCore::CSSPrimitiveValue::init):
+ * css/CSSStyleSelector.cpp:
+ (WebCore::parseUASheet):
+ (WebCore::CSSStyleSelector::styleForElement):
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::wheelEvent):
+ * platform/efl/RenderThemeEfl.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * platform/gtk/RenderThemeGtk.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * platform/haiku/RenderThemeHaiku.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * platform/network/cf/DNSCFNet.cpp:
+ (WebCore::DNSResolveQueue::resolve):
+ * platform/network/cf/ResourceHandleCFNet.cpp:
+ (WebCore::ResourceHandle::releaseConnectionForDownload):
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
+ * platform/text/BidiContext.cpp:
+ (WebCore::BidiContext::create):
+ * platform/wx/RenderThemeWx.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * rendering/RenderThemeChromiumLinux.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * rendering/RenderThemeChromiumMac.mm:
+ (WebCore::RenderTheme::themeForPage):
+ * rendering/RenderThemeChromiumSkia.cpp:
+ (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
+ (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
+ (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
+ * rendering/RenderThemeChromiumWin.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderTheme::themeForPage):
+ * rendering/RenderThemeSafari.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * rendering/RenderThemeWin.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
+ (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
+ (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
+ * rendering/RenderThemeWinCE.cpp:
+ (WebCore::RenderTheme::themeForPage):
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::defaultStyle):
+ Call leakRef instead of releaseRef. I did this only in the cases where
+ it was obvious to me this was the right way to do it. I'll keep revisiting
+ sites still calling it releaseRef until they are all gone.
+
+2011-09-27 Ojan Vafai <ojan@chromium.org>
+
+ remove dead code in flipForWritingMode
+ https://bugs.webkit.org/show_bug.cgi?id=68948
+
+ Reviewed by Hajime Morita.
+
+ ChildToParentFlippingAdjustment is never used, so the third argument
+ to flipForWritingMode always has the same value.
+
+ In addition, renamed to flipForWritingModeForChild to be more clear
+ that it's operating on the child and renamed flipFloatForWritingMode to match.
+
+ No new tests. This is just a code cleanup. No functional changes.
+
+ * rendering/InlineBox.cpp:
+ (WebCore::InlineBox::paint):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::paintChildren):
+ (WebCore::RenderBlock::flipFloatForWritingModeForChild):
+ (WebCore::RenderBlock::paintFloats):
+ (WebCore::RenderBlock::hitTestFloats):
+ (WebCore::RenderBlock::hitTestContents):
+ * rendering/RenderBlock.h:
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::flipForWritingModeForChild):
+ (WebCore::RenderBox::topLeftLocation):
+ * rendering/RenderBox.h:
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::paintObject):
+ (WebCore::RenderTable::nodeAtPoint):
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::nodeAtPoint):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::paintCell):
+ (WebCore::RenderTableSection::nodeAtPoint):
+
+2011-10-03 Jer Noble <jer.noble@apple.com>
+
+ Unreviewed, rolling out r96526.
+ http://trac.webkit.org/changeset/96526
+ https://bugs.webkit.org/show_bug.cgi?id=68587
+
+ WEB_AUDIO has numerous 64->32 bit casting warnings, causing
+ build breakages where -Wall is enabled.
+
+ * Configurations/FeatureDefines.xcconfig:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2011-10-03 Joseph Pecoraro <joepeck@webkit.org>
+
+ Web Inspector: rgb() with percentages shows wrong hex/hsl values
+ https://bugs.webkit.org/show_bug.cgi?id=69152
+
+ Reviewed by Pavel Feldman.
+
+ Previously we assumed rgb values were always in byte form,
+ but they could include percentage values. Ex. rgb(100%,0,0).
+ This patch fixes this, and in the process includes clamping
+ for invalid percentages, byte values, and alpha values.
+
+ Test: inspector/styles/styles-invalid-color-values.html
+
+ * inspector/front-end/Color.js:
+ (WebInspector.Color.prototype._clamp):
+ (WebInspector.Color.prototype._individualRGBValueToFloatValue):
+ (WebInspector.Color.prototype._individualRGBValueToHexValue):
+ (WebInspector.Color.prototype._rgbToHex):
+ (WebInspector.Color.prototype._rgbToHSL):
+ An individual rgb value can be either a decimal/float or a
+ percentage. Rewrite the conversion functions to handle either
+ input. Regardless of the type of input, always return a clamped
+ decimal/float value between 0 and 255.
+
+ (WebInspector.Color.prototype._rgbaToHSLA):
+ (WebInspector.Color.prototype._hslaToRGBA):
+ (WebInspector.Color.prototype._parse):
+ Clamp the alpha value between 0 and 1.
+
+2011-10-03 Dirk Schulze <krit@webkit.org>
+
+ SVG Pattern tile pixelated on patternTransform
+ https://bugs.webkit.org/show_bug.cgi?id=69261
+
+ Reviewed by Rob Buis.
+
+ Scale the SVG pattern tile by the scale level of patternTransform to avoid pixelation.
+
+ Test: svg/custom/pattern-scaled-pattern-space.svg
+
+ * rendering/svg/RenderSVGResourcePattern.cpp:
+ (WebCore::RenderSVGResourcePattern::applyResource):
+
+2011-10-03 Jer Noble <jer.noble@apple.com>
+
+ Enable WEB_AUDIO by default in the WebKit/mac port.
+ https://bugs.webkit.org/show_bug.cgi?id=68587
+
+ Reviewed by Simon Fraser.
+
+ No new tests; existing webaudio/ layout tests cover this.
+
+ * Configurations/FeatureDefines.xcconfig:
+ * WebCore.xcodeproj/project.pbxproj: Add a build step which copies audio resources to
+ the WebCore.framework bundle.
+
+2011-10-03 Chris Rogers <crogers@google.com>
+
+ BiquadFilterNode .type attribute is not handled correctly
+ https://bugs.webkit.org/show_bug.cgi?id=69182
+
+ Reviewed by Kenneth Russell.
+
+ Test: webaudio/biquadfilternode-basic.html
+
+ * platform/audio/AudioDSPKernelProcessor.cpp:
+ (WebCore::AudioDSPKernelProcessor::initialize):
+ * webaudio/AudioBufferSourceNode.cpp:
+ (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
+ * webaudio/AudioChannelMerger.cpp:
+ (WebCore::AudioChannelMerger::AudioChannelMerger):
+ * webaudio/AudioChannelSplitter.cpp:
+ (WebCore::AudioChannelSplitter::AudioChannelSplitter):
+ * webaudio/AudioDestinationNode.cpp:
+ (WebCore::AudioDestinationNode::AudioDestinationNode):
+ * webaudio/AudioGainNode.cpp:
+ (WebCore::AudioGainNode::AudioGainNode):
+ * webaudio/AudioNode.cpp:
+ (WebCore::AudioNode::AudioNode):
+ (WebCore::AudioNode::~AudioNode):
+ (WebCore::AudioNode::setNodeType):
+ (WebCore::AudioNode::ref):
+ (WebCore::AudioNode::finishDeref):
+ * webaudio/AudioNode.h:
+ (WebCore::AudioNode::nodeType):
+ * webaudio/AudioPannerNode.cpp:
+ (WebCore::AudioPannerNode::AudioPannerNode):
+ (WebCore::AudioPannerNode::notifyAudioSourcesConnectedToNode):
+ * webaudio/BiquadFilterNode.cpp:
+ (WebCore::BiquadFilterNode::BiquadFilterNode):
+ (WebCore::BiquadFilterNode::setType):
+ * webaudio/BiquadFilterNode.h:
+ * webaudio/BiquadFilterNode.idl:
+ * webaudio/BiquadProcessor.h:
+ (WebCore::BiquadProcessor::setType):
+ * webaudio/ConvolverNode.cpp:
+ (WebCore::ConvolverNode::ConvolverNode):
+ * webaudio/DelayNode.cpp:
+ (WebCore::DelayNode::DelayNode):
+ * webaudio/DynamicsCompressorNode.cpp:
+ (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
+ * webaudio/HighPass2FilterNode.cpp:
+ (WebCore::HighPass2FilterNode::HighPass2FilterNode):
+ * webaudio/JavaScriptAudioNode.cpp:
+ (WebCore::JavaScriptAudioNode::JavaScriptAudioNode):
+ * webaudio/LowPass2FilterNode.cpp:
+ (WebCore::LowPass2FilterNode::LowPass2FilterNode):
+ * webaudio/MediaElementAudioSourceNode.cpp:
+ (WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
+ * webaudio/RealtimeAnalyserNode.cpp:
+ (WebCore::RealtimeAnalyserNode::RealtimeAnalyserNode):
+ * webaudio/WaveShaperNode.cpp:
+ (WebCore::WaveShaperNode::WaveShaperNode):
+
+2011-10-03 Chris Fleizach <cfleizach@apple.com>
+
+ AX: support role mapping for HTML5 section elements
+ https://bugs.webkit.org/show_bug.cgi?id=69150
+
+ We need to map these HTML5 elements to appropriate ARIA roles. That mapping is:
+ article -> Document article
+ nav -> Landmark navigation
+ aside -> Landmark complementary
+ section -> Document region
+ address -> Landmark content info
+ header -> Landmark banner (unless it's in an article or section)
+ footer -> Landmark content info (unless it's in an article or section)
+
+ Reviewed by Darin Adler.
+
+ Test: platform/mac/accessibility/html-section-elements.html
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::isDescendantOfElementType):
+ (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
+ * accessibility/AccessibilityRenderObject.h:
+
+2011-10-03 Chris Fleizach <cfleizach@apple.com>
+
+ AX: click point for AXHeadings often returns point on empty space (results in wrong context menu)
+ https://bugs.webkit.org/show_bug.cgi?id=69262
+
+ When the contextual menu is opened for a heading, often it will open on empty space because
+ the heading is wider than the content inside. The click point should thus use the content
+ inside the heading as the click point.
+
+ To accomplish this we need to query whether we have children using children() which is a non-const
+ method, hence the removal of const from clickPoint().
+
+ Reviewed by John Sullivan.
+
+ Test: platform/mac/accessibility/heading-clickpoint.html
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::clickPoint):
+ * accessibility/AccessibilityObject.h:
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::clickPoint):
+ * accessibility/AccessibilityRenderObject.h:
+
+2011-10-03 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96500.
+ http://trac.webkit.org/changeset/96500
+ https://bugs.webkit.org/show_bug.cgi?id=69268
+
+ Breaks inspector, change landed with no test. (Requested by
+ pfeldman on #webkit).
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
+ * inspector/front-end/ConsoleView.js:
+ (WebInspector.ConsoleView.prototype._consoleCleared):
+ * inspector/front-end/DebuggerPresentationModel.js:
+ (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
+ (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
+ * inspector/front-end/EventListenersSidebarPane.js:
+ (WebInspector.EventListenersSidebarPane.prototype.update.callback):
+ (WebInspector.EventListenersSidebarPane.prototype.update):
+ ():
+ * inspector/front-end/Linkifier.js: Removed.
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkLogView):
+ (WebInspector.NetworkLogView.prototype._reset):
+ (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
+ * inspector/front-end/ProfileDataGridTree.js:
+ (WebInspector.ProfileDataGridNode.prototype.createCell):
+ * inspector/front-end/ProfileView.js:
+ (WebInspector.CPUProfileView):
+ (WebInspector.CPUProfileView.prototype._resetClicked):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel):
+ (WebInspector.TimelinePanel.prototype._clearPanel):
+ (WebInspector.TimelinePanel.FormattedRecord):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._linkifyLocation):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._linkifyCallFrame):
+ (WebInspector.TimelinePanel.PopupContentHelper):
+ (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendLinkRow):
+ (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+
+2011-09-30 Antti Koivisto <antti@apple.com>
+
+ Add exact match attribute selectors to the fast path
+ https://bugs.webkit.org/show_bug.cgi?id=69159
+
+ Reviewed by Sam Weinig.
+
+ Attribute selectors are increasingly common and we have them in our default style sheet too.
+ [foo] and [foo="bar"] type selectors can be resolved quickly and easily in the fast path.
+
+ - Implement fast path checking for simple attribute selectors.
+ - Get rid of the ill-defined CSSSelector::hasAttribute(), inline CSSSelector::attribute()
+
+ This is ~20% progression in styleForElement() performance loading the full HTML5 spec (~0.8s).
+
+ * css/CSSSelector.cpp:
+ (WebCore::CSSSelector::selectorText):
+ * css/CSSSelector.h:
+ (WebCore::CSSSelector::hasTag):
+ (WebCore::CSSSelector::attribute):
+ (WebCore::CSSSelector::isAttributeSelector):
+ * css/CSSSelectorList.cpp:
+ (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::checkSelector):
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::fastCheckRightmostSelector):
+ (WebCore::SelectorChecker::fastCheckSelector):
+ (WebCore::isFastCheckableMatch):
+ (WebCore::isFastCheckableRightmostSelector):
+ (WebCore::SelectorChecker::isFastCheckableSelector):
+ (WebCore::SelectorChecker::checkSelector):
+ (WebCore::htmlAttributeHasCaseInsensitiveValue):
+ (WebCore::anyAttributeMatches):
+ (WebCore::SelectorChecker::checkOneSelector):
+ * css/SelectorChecker.h:
+ (WebCore::SelectorChecker::attributeNameMatches):
+ (WebCore::SelectorChecker::checkExactAttribute):
+ (WebCore::SelectorChecker::fastCheckRightmostAttributeSelector):
+
+2011-10-03 Mike Reed <reed@google.com>
+
+ respect other paint flags when setting flags for the font. No need to fiddle with DC(0) in paintSkiaText.
+ https://bugs.webkit.org/show_bug.cgi?id=69172
+
+ Reviewed by Stephen White.
+
+ No new tests. This is a cleanup/optimization, existing tests apply
+
+ * platform/graphics/skia/SkiaFontWin.cpp:
+ (WebCore::getDefaultGDITextFlags):
+ (WebCore::setupPaintForFont):
+ (WebCore::paintSkiaText):
+
+2011-10-03 Andreas Kling <kling@webkit.org>
+
+ FontFallbackList: Glyph pages waste a lot of memory.
+ https://bugs.webkit.org/show_bug.cgi?id=69260
+
+ Reviewed by Dan Bernstein.
+
+ Use a minimum hash table size of 16 (down from 64) for FontFallbackList's
+ glyph pages. This reduces memory consumption by ~900 kB when loading the
+ full HTML5 spec.
+
+ The cost is two additional rehash()es of FontFallbackList::m_pages when
+ adding the 32nd and 64th pages to the hash map.
+
+ * platform/graphics/FontFallbackList.h:
+
+2011-10-03 Konstantin Scheglov <scheglov@google.com>
+
+ Right border missing from table with colspan and collapsing border
+ https://bugs.webkit.org/show_bug.cgi?id=14274
+
+ Reviewed by David Hyatt.
+
+ Test: fast/table/border-collapsing/bug14274.html
+
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::RenderTable):
+ * rendering/RenderTable.h:
+ (WebCore::RenderTable::colToEffCol):
+
+2011-10-03 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Fix make distcheck build
+ https://bugs.webkit.org/show_bug.cgi?id=69243
+
+ Reviewed by Martin Robinson.
+
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+
+2011-10-03 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] Build fix: Qt::escape is deprecated in Qt5
+ https://bugs.webkit.org/show_bug.cgi?id=69162
+
+ Use QString::toHtmlEscaped in the Qt5 case.
+
+ Reviewed by Andreas Kling.
+
+ No new tests needed.
+
+ * WebCore.pro: adjust the include path accordingly
+ in the v8 case.
+
+2011-10-03 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: debuggerPresentatioModel.linkifyLocation leaks updateAnchor closure instances.
+ https://bugs.webkit.org/show_bug.cgi?id=69146
+
+ In many places we use linkifyLocation function to produce a link node which updates automatically when the source file is changed on the fly.
+ Such changes happen when we use pretty print or another operation that changes the source code somehow.
+ linkifyLocation associates a new instance of updateAnchor closure with the each link node and add the closure to the SourceMappingUpdated event's list.
+ As the result the node<->closure pairs wouldn't be collected until reset the UI and DebuggerPresentationModel.
+
+ Reviewed by Yury Semikhatsky.
+
+ Test: inspector/performance/resources/network-append-30-requests.html
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessage.prototype._linkifyLocation):
+ * inspector/front-end/ConsoleView.js:
+ (WebInspector.ConsoleView.prototype._consoleCleared):
+ * inspector/front-end/DebuggerPresentationModel.js:
+ * inspector/front-end/EventListenersSidebarPane.js:
+ (WebInspector.EventListenersSidebarPane.prototype.update.callback):
+ (WebInspector.EventListenersSidebarPane.prototype.update):
+ ():
+ * inspector/front-end/Linkifier.js: Added.
+ (WebInspector.Linkifier):
+ (WebInspector.Linkifier.prototype.linkifyLocation):
+ (WebInspector.Linkifier.prototype.reset):
+ (WebInspector.Linkifier.prototype._updateSourceAnchors):
+ (WebInspector.Linkifier.prototype._updateAnchor):
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkLogView):
+ (WebInspector.NetworkLogView.prototype._reset):
+ (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
+ * inspector/front-end/ProfileDataGridTree.js:
+ (WebInspector.ProfileDataGridNode.prototype.createCell):
+ * inspector/front-end/ProfileView.js:
+ (WebInspector.CPUProfileView):
+ (WebInspector.CPUProfileView.prototype._resetClicked):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel):
+ (WebInspector.TimelinePanel.prototype._linkifyLocation):
+ (WebInspector.TimelinePanel.prototype._linkifyCallFrame):
+ (WebInspector.TimelinePanel.prototype._clearPanel):
+ (WebInspector.TimelinePanel.FormattedRecord):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
+ (WebInspector.TimelinePanel.PopupContentHelper):
+ (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendLinkRow):
+ (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+
+2011-10-03 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: more compilation fixes including making ConsoleMessage a part of console model.
+ https://bugs.webkit.org/show_bug.cgi?id=69253
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/Inspector.json:
+ * inspector/compile-front-end.sh:
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessage.create):
+ (WebInspector.ConsoleMessage.createTextMessage):
+ (WebInspector.ConsoleMessageImpl):
+ * inspector/front-end/ConsoleModel.js:
+ (WebInspector.ConsoleModel.prototype._messageRepeatCountUpdated):
+ (WebInspector.ConsoleMessage.create):
+ (WebInspector.ConsoleMessage.createTextMessage):
+ (WebInspector.ConsoleDispatcher.prototype.messageAdded):
+ * inspector/front-end/ConsoleView.js:
+ (WebInspector.ConsoleCommandResult):
+ (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
+ * inspector/front-end/CookieParser.js:
+ (WebInspector.Cookie.prototype.get path):
+ (WebInspector.Cookie.prototype.get domain):
+ (WebInspector.Cookie.prototype.expires):
+ * inspector/front-end/DOMAgent.js:
+ * inspector/front-end/ExtensionServer.js:
+ (WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
+ * inspector/front-end/NetworkManager.js:
+ (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
+ (WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
+ (WebInspector.NetworkDispatcher.prototype.requestServedFromMemoryCache):
+ (WebInspector.NetworkDispatcher.prototype.webSocketCreated):
+ (WebInspector.NetworkDispatcher.prototype._createResource):
+ * inspector/front-end/Resource.js:
+ (WebInspector.Resource):
+ (WebInspector.Resource.prototype.setContent):
+ (WebInspector.Resource.prototype.searchInContent):
+ * inspector/front-end/ResourceTreeModel.js:
+ (WebInspector.ResourceTreeModel.prototype._createResource):
+ * inspector/front-end/externs.js:
+ (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
+ (WebInspector.extensionServer.notifyResourceContentCommitted):
+ (WebInspector.resourceForURL):
+ (WebInspector.debuggerPresentationModel.linkifyLocation):
+ (WebInspector.ObjectPropertiesSection):
+ (WebInspector.ElementsTreeOutline):
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+ (WebInspector.log.logMessage):
+ (WebInspector.log):
+ * inspector/generate-protocol-externs:
+
+2011-10-03 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: move console message formatting from ConsoleView.js into ConsoleMessage.js
+ https://bugs.webkit.org/show_bug.cgi?id=69244
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessage):
+ (WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
+ (WebInspector.ConsoleMessage.prototype._formatMessage):
+ (WebInspector.ConsoleMessage.prototype._format):
+ (WebInspector.ConsoleMessage.prototype._formatParameter):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsValue):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsObject):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsNode):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsArray):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsString):
+ (WebInspector.ConsoleMessage.prototype._printArray):
+ (WebInspector.ConsoleMessage.prototype._formatAsArrayEntry):
+ (WebInspector.ConsoleMessage.prototype._formatWithSubstitutionString):
+ * inspector/front-end/ConsoleView.js:
+
+2011-10-03 Dirk Schulze <krit@webkit.org>
+
+ feColorMatrix saturation is not limited to range 0..1 anymore
+ https://bugs.webkit.org/show_bug.cgi?id=69245
+
+ Reviewed by Nikolas Zimmermann.
+
+ Opera doesn't limit the range of values for saturation on feColorMatrix from 0 to 1. The limitation
+ was also removed from the new Filter Effects 1.0 specification. Values outside this range lead to
+ under- or oversaturation of the filter input image.
+ https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/publish/Filters.html#feColorMatrixElement
+
+ Test: svg/filters/feColorMatrix-saturate.svg
+
+ * svg/SVGFEColorMatrixElement.cpp:
+ (WebCore::SVGFEColorMatrixElement::build):
+
+2011-10-03 Andreas Kling <kling@webkit.org>
+
+ Shrink HTMLLIElement.
+ https://bugs.webkit.org/show_bug.cgi?id=69250
+
+ Reviewed by Antti Koivisto.
+
+ Don't cache the explicit "value" attribute on the HTMLLIElement,
+ but fetch it with fastGetAttribute when needed.
+ This shrinks HTMLLIElement by one CPU word.
+
+ * html/HTMLLIElement.cpp:
+ (WebCore::HTMLLIElement::HTMLLIElement):
+ (WebCore::HTMLLIElement::parseMappedAttribute):
+ (WebCore::HTMLLIElement::attach):
+ * html/HTMLLIElement.h:
+
+2011-10-03 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Add support for backend search in script content.
+ https://bugs.webkit.org/show_bug.cgi?id=69015
+
+ Reviewed by Pavel Feldman.
+
+ Tests: http/tests/inspector/search/search-in-concatenated-script.html
+ http/tests/inspector/search/search-in-script.html
+
+ * inspector/Inspector.json:
+ * inspector/InspectorDebuggerAgent.cpp:
+ (WebCore::InspectorDebuggerAgent::searchInContent):
+ (WebCore::InspectorDebuggerAgent::getScriptSource):
+ * inspector/InspectorDebuggerAgent.h:
+ * inspector/front-end/ContentProviders.js:
+ (WebInspector.ScriptContentProvider.prototype.requestContent):
+ (WebInspector.ScriptContentProvider.prototype.searchInContent):
+ (WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent.maybeCallback):
+ (WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent.searchCallback):
+ (WebInspector.ConcatenatedScriptsContentProvider.prototype.searchInContent):
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.prototype.requestSource):
+ (WebInspector.Script.prototype.searchInContent):
+
+2011-10-03 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: move console message formatting from ConsoleView.js into ConsoleMessage.js
+ https://bugs.webkit.org/show_bug.cgi?id=69244
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessage):
+ (WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
+ (WebInspector.ConsoleMessage.prototype._formatMessage):
+ (WebInspector.ConsoleMessage.prototype._format):
+ (WebInspector.ConsoleMessage.prototype._formatParameter):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsValue):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsObject):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsNode):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsArray):
+ (WebInspector.ConsoleMessage.prototype._formatParameterAsString):
+ (WebInspector.ConsoleMessage.prototype._printArray):
+ (WebInspector.ConsoleMessage.prototype._formatAsArrayEntry):
+ (WebInspector.ConsoleMessage.prototype._formatWithSubstitutionString):
+ * inspector/front-end/ConsoleView.js:
+
+2011-10-03 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: restore partial front-end compilability
+ https://bugs.webkit.org/show_bug.cgi?id=69221
+
+ Removed unused isWhitespace; introduced missing classes in Inspector.json;
+ generated externs for the protocol types along with the commands.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/Inspector.json:
+ * inspector/compile-front-end.sh:
+ * inspector/front-end/DOMAgent.js:
+ (WebInspector.DOMAgent):
+ (WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable.onDocumentAvailable):
+ (WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable):
+ * inspector/front-end/ElementsPanel.js:
+ (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
+ * inspector/front-end/ElementsTreeOutline.js:
+ ():
+ * inspector/front-end/Object.js:
+ * inspector/front-end/Popover.js:
+ (WebInspector.PopoverHelper.prototype._mouseMove):
+ * inspector/front-end/View.js:
+ * inspector/front-end/externs.js:
+ (Array.prototype.remove):
+ * inspector/generate-protocol-externs:
+
+2011-10-02 Kent Tamura <tkent@chromium.org>
+
+ method/enctype/formMethod/formEnctype properties should be limited to known values.
+ https://bugs.webkit.org/show_bug.cgi?id=68887
+
+ Reviewed by Hajime Morita.
+
+ According to the standard and other browser behaviors, the
+ following IDL properties should be reflected to the corresponding
+ HTML attributes on setting, but should return normalized values on
+ getting.
+ - HTMLFormElement::method
+ - HTMLFormElement::enctype
+ - HTMLInputElement::formMethod
+ - HTMLInputElement::formEnctype
+ - HTMLButtonElement::formMethod
+ - HTMLButtonElement::formEnctype
+
+ Tests: fast/forms/enctype-attribute.html
+ fast/forms/method-attribute.html
+
+ * html/HTMLButtonElement.idl:
+ Replace 'Reflect' with 'ConvertNullToNullString' in order to use a
+ getter function.
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::formEnctype):
+ Normalizes the value by parseEncodingType().
+ (WebCore::HTMLFormControlElement::setFormEnctype):
+ Simply calls setAttribute()
+ (WebCore::HTMLFormControlElement::formMethod):
+ Normalizes the value by parseMethodType().
+ (WebCore::HTMLFormControlElement::setFormMethod):
+ Simply calls setAttribute()
+ * html/HTMLFormControlElement.h:
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::parseMappedAttribute):
+ Follow the Attributes function renaming.
+ (WebCore::HTMLFormElement::method):
+ Normalizes the value by parseMethodType().
+ * html/HTMLFormElement.idl:
+ Replace 'Reflect' with 'ConvertNullToNullString' in order to use a
+ getter function.
+ * html/HTMLInputElement.idl: ditto.
+ * loader/FormSubmission.cpp:
+ (WebCore::FormSubmission::Attributes::parseEncodingType):
+ New function made from a part of old parseEncodingType().
+ (WebCore::FormSubmission::Attributes::updateEncodingType):
+ Renamed from parseEncodingType().
+ (WebCore::FormSubmission::Attributes::parseMethodType):
+ New function made from a part of old parseMethodType().
+ (WebCore::FormSubmission::Attributes::updateMethodType):
+ Renamed from parseMethodType().
+ (WebCore::FormSubmission::create):
+ Follow the Attributes function renaming.
+ * loader/FormSubmission.h:
+ (WebCore::FormSubmission::Attributes::methodString):
+ A helper function to provide normalized strings for FormSubmission::Method.
+
+2011-10-02 Sam Weinig <sam@webkit.org>
+
+ Strength reduce Mac only Frame::searchForLabelsBeforeElement and Frame::matchLabelsAgainstElement into callers
+ https://bugs.webkit.org/show_bug.cgi?id=69230
+
+ Reviewed by Anders Carlsson.
+
+ * WebCore.exp.in:
+ * page/Frame.h:
+ * page/mac/FrameMac.mm:
+
+2011-10-02 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt][WK2][Mac] WebKit2 does not build on mac after merge of Qt5 refactor branch.
+ https://bugs.webkit.org/show_bug.cgi?id=69223
+
+ Add a missing import (NSWindow.h) in WebVideoFullscreenHUDWindowController.
+ Add a missing include path and a missing objective source file to WebCore.pro.
+
+ Reviewed by Noam Rosenthal.
+
+ No new tests, build fix.
+
+ * WebCore.pro:
+ * platform/mac/WebVideoFullscreenHUDWindowController.h:
+
+2011-10-02 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Remove an unused member in RenderTable::ColumnStruct
+ https://bugs.webkit.org/show_bug.cgi?id=69119
+
+ Reviewed by Darin Adler.
+
+ No test as there should be no change in behavior.
+
+ The member was added several years ago and its users were removed or changed. The code would
+ need a refactoring but this would be tricky to get right. This change just removes the member
+ to reap the short-term benefits.
+
+ * rendering/RenderTable.h:
+ (WebCore::RenderTable::ColumnStruct::ColumnStruct): Remove anything associated with m_width.
+
+2011-10-02 Dan Bernstein <mitz@apple.com>
+
+ REGRESSION (r95502): Assertion failure in CSSPrimitiveValue::computeLengthDouble() when media query specifies unit-less length
+ https://bugs.webkit.org/show_bug.cgi?id=68760
+
+ Reviewed by Antti Koivisto.
+
+ Test: fast/media/invalid-lengths.html
+
+ Made length-comparison media queries accept only length values. In compatibility mode, numbers
+ are allowed as well, and they are interpreted as pixels.
+
+ * css/MediaQueryEvaluator.cpp:
+ (WebCore::computeLength): Added this helper function.
+ (WebCore::device_heightMediaFeatureEval): Changed to use computeLength().
+ (WebCore::device_widthMediaFeatureEval): Ditto.
+ (WebCore::heightMediaFeatureEval): Ditto.
+ (WebCore::widthMediaFeatureEval): Ditto.
+
+2011-10-02 Dirk Schulze <krit@webkit.org>
+
+ SVG Mask should take 'color-interpolation' into account to determine the color space of the mask image
+ https://bugs.webkit.org/show_bug.cgi?id=69076
+
+ Reviewed by Simon Fraser.
+
+ SVG Masks should take 'color-interpolation' into account to determine the color space of the mask image.
+ The behavior was changed in SVG 1.1 SE. The color space of the mask image gets defined by the computed value of the
+ 'color-interpolation' property. This will switch the default color space from linearRGB to sRGB for mask images and
+ is a performance improvement for platforms without native support for linearRGB color space. The
+ color space transformation can be avoided.
+
+ Test: svg/custom/grayscale-gradient-mask-2.svg
+
+ * rendering/svg/RenderSVGResourceMasker.cpp:
+ (WebCore::RenderSVGResourceMasker::applyResource):
+ (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
+ * rendering/svg/RenderSVGResourceMasker.h:
+
+2011-10-01 Vangelis Kokkevis <vangelis@chromium.org>
+
+ [chromium] Fixing draw matrix for composited layers. This
+ was a regression introduced by:
+ http://trac.webkit.org/changeset/96454
+
+ https://bugs.webkit.org/show_bug.cgi?id=69217
+
+ Reviewed by James Robinson.
+
+ Tests: compositor test now pass
+
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::draw):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
+
+2011-10-01 Geoffrey Garen <ggaren@apple.com>
+
+ Removed redundant helper functions for allocating Strong handles
+ https://bugs.webkit.org/show_bug.cgi?id=69218
+
+ Reviewed by Sam Weinig.
+
+ * ForwardingHeaders/heap/StrongInlines.h: Added.
+ * bindings/js/JSCallbackData.h:
+ * bindings/js/JSDOMWindowShell.cpp:
+ * bindings/js/ScheduledAction.h:
+ * bindings/js/ScriptCachedFrameData.cpp:
+ * bindings/js/ScriptController.cpp:
+ * bindings/js/ScriptState.cpp:
+ * bindings/js/ScriptValue.h:
+ * bindings/js/WorkerScriptController.cpp:
+ * bridge/runtime_root.cpp:
+
+2011-10-01 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96421.
+ http://trac.webkit.org/changeset/96421
+ https://bugs.webkit.org/show_bug.cgi?id=69206
+
+ It broke Qt-WK2 build (Requested by ossy on #webkit).
+
+ * WebCore.pro:
+
+2011-09-30 Adrienne Walker <enne@google.com>
+
+ [chromium] Track separate scroll deltas on the compositor thread
+ https://bugs.webkit.org/show_bug.cgi?id=69034
+
+ Reviewed by James Robinson.
+
+ Test: new tests in CCLayerTreeHostImplTest/CCLayerTreeHostTest
+
+ Track scroll deltas and maximum scrolls on LayerChromium/CCLayerImpl.
+ The CCLayerImpl tree is now able to adjust these scroll deltas
+ independent of the main thread. To push them back to the main thread,
+ CCLayerTreeHostImpl collects them all and then bakes them into the
+ scroll position during a begin frame and commit call. This allows new
+ deltas to be collected while the scroll position containing the old
+ delta and the old scroll position will be overwritten during the next
+ commit.
+
+ Only the main frame is supported right now for pushing this scroll
+ delta back into the authoritative WebKit source to keep both sides in
+ sync.
+
+ Move tilingTransform() to the impl tree because drawTransform() is now
+ updated using scroll deltas and so the results from calculating draw
+ transforms needs to be dynamic so that children are updated properly.
+
+ Also, exposed DebugScopedSetImplThread public because it's used in a
+ few places.
+
+ * platform/graphics/chromium/LayerChromium.cpp:
+ (WebCore::LayerChromium::pushPropertiesTo):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::maxScrollPosition):
+ (WebCore::LayerChromium::setMaxScrollPosition):
+ (WebCore::LayerChromium::scrollDelta):
+ (WebCore::LayerChromium::scrollable):
+ * platform/graphics/chromium/NonCompositedContentHost.cpp:
+ (WebCore::NonCompositedContentHost::setViewport):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::pushPropertiesTo):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp:
+ (WebCore::CCLayerImpl::scrollBy):
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (WebCore::CCLayerImpl::maxScrollPosition):
+ (WebCore::CCLayerImpl::setMaxScrollPosition):
+ (WebCore::CCLayerImpl::scrollDelta):
+ (WebCore::CCLayerImpl::setScrollDelta):
+ (WebCore::CCLayerImpl::scrollable):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::applyScrollDeltas):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::calculateDrawTransformsAndVisibilityInternal):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::scrollRootLayer):
+ (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ * platform/graphics/chromium/cc/CCProxy.h:
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::start):
+ (WebCore::CCSingleThreadProxy::context):
+ (WebCore::CCSingleThreadProxy::finishAllRendering):
+ (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
+ (WebCore::CCSingleThreadProxy::setNeedsCommit):
+ (WebCore::CCSingleThreadProxy::stop):
+ (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
+ (WebCore::CCSingleThreadProxy::commitIfNeeded):
+ (WebCore::CCSingleThreadProxy::doComposite):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
+ (WebCore::DebugScopedSetImplThread::DebugScopedSetImplThread):
+ (WebCore::DebugScopedSetImplThread::~DebugScopedSetImplThread):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
+ (WebCore::CCThreadProxy::beginFrameAndCommit):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::tilingTransform):
+ (WebCore::CCTiledLayerImpl::draw):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
+
+2011-09-30 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=69202
+
+ [CSS3 Regions] Make positioned objects use the first region as the ICB when it
+ is their containing block. Make sure static distance computations take into
+ account the current region as well.
+
+ Reviewed by Sam Weinig.
+
+ Added new tests in fast/regions.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::adjustPositionedBlock):
+ * rendering/RenderBlock.h:
+ (WebCore::RenderBlock::startOffsetForContent):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
+ (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
+ (WebCore::computeInlineStaticDistance):
+ (WebCore::computeLogicalLeftPositionedOffset):
+ (WebCore::computeLogicalTopPositionedOffset):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::contentLogicalWidthOfFirstRegion):
+ (WebCore::RenderFlowThread::contentLogicalHeightOfFirstRegion):
+ (WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion):
+ * rendering/RenderFlowThread.h:
+
+2011-09-30 David Barr <davidbarr@chromium.org>
+
+ Implement currentColor support for CSS gradients
+ https://bugs.webkit.org/show_bug.cgi?id=58730
+
+ Reviewed by Adam Barth.
+
+ Allow currentColor as a CSS3 gradient color-stop.
+
+ Test: fast/css/linear-gradient-currentcolor.html
+
+ * css/CSSGradientValue.cpp:
+ (WebCore::CSSGradientValue::isCacheable): Make currentColor uncacheable since the
+ background image may be invalidated if currentColor is used as a gradient stop and
+ the value of the 'color' property changes.
+ * css/CSSParser.cpp:
+ (WebCore::parseGradientColorOrKeyword): Accept the currentColor keyword.
+ * rendering/style/StyleGeneratedImage.cpp:
+ (WebCore::StyleGeneratedImage::image): Initialize document styleSelector so that
+ currentColor may be computed for a StyleGeneratedImage.
+
+2011-09-30 Gavin Barraclough <barraclough@apple.com>
+
+ Remove toStrictThisObject, toThisString, toThisJSString
+ https://bugs.webkit.org/show_bug.cgi?id=69203
+
+ Rubber stamped by Sam Weinig
+
+ These are no longer used.
+
+ * bindings/js/JSDOMWindowBase.cpp:
+ * bindings/js/JSDOMWindowBase.h:
+
+2011-09-30 Adam Barth <abarth@webkit.org>
+
+ Remove ASSERT introduced in http://trac.webkit.org/changeset/96427
+ which is triggering all over the place.
+
+ Sorting this out is covered in this bug:
+ https://bugs.webkit.org/show_bug.cgi?id=69200
+
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::layout):
+
+2011-09-30 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96426.
+ http://trac.webkit.org/changeset/96426
+ https://bugs.webkit.org/show_bug.cgi?id=69199
+
+ Broke a zillion image results on Chromium Skia Mac (Requested
+ by abarth|gardener on #webkit).
+
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::getFocusRingOutset):
+ (WebCore::GraphicsContext::drawFocusRing):
+
+2011-09-30 Ilya Sherman <isherman@chromium.org>
+
+ Fix assertion failure in XSS Auditor
+ https://bugs.webkit.org/show_bug.cgi?id=69050
+ https://code.google.com/p/chromium/issues/detail?id=97346
+
+ Reviewed by Daniel Bates.
+
+ Test: fast/forms/xss-auditor-doesnt-crash.html
+
+ * html/parser/XSSAuditor.cpp:
+ (WebCore::XSSAuditor::init): Don't try to decode the HTML body if it is empty.
+
+2011-09-30 Maciej Stachowiak <mjs@apple.com>
+
+ Loading page on potterybankids causes reproducible assertion failure in debug builds
+ https://bugs.webkit.org/show_bug.cgi?id=69185
+ <rdar://problem/10218241>
+
+ Reviewed by Simon Fraser.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::computeRepaintRects): Remove assert condition that isn't guaranteed
+ to be true.
+
+2011-09-30 Johnny Ding <jnd@chromium.org>
+
+ Support -webkit-tap-highlight-color when enabling touch events support.
+ https://bugs.webkit.org/show_bug.cgi?id=48544
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Original code from the iOS WebCore code dump, extracted and modified by tijiang@rim and jnd@chromium.
+ Supports the new CSS property -webkit-tap-highlight-color on platforms which support touch events.
+ Platform can override WebCore::RenderTheme::platformTapHighlightColor to use its own platform
+ specific default tap highlight color. Otherwise RenderTheme::defaultTapHighlightColor will be
+ used as default tap highlight color.
+
+ Test: fast/events/touch/tap-highlight-color.html
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+ * css/CSSPropertyNames.in:
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::tapHighlightColor):
+ * rendering/RenderTheme.h:
+ (WebCore::RenderTheme::platformTapHighlightColor):
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::initialTapHighlightColor):
+ * rendering/style/RenderStyle.h:
+ (WebCore::InheritedFlags::tapHighlightColor):
+ (WebCore::InheritedFlags::setTapHighlightColor):
+ * rendering/style/StyleRareInheritedData.cpp:
+ (WebCore::StyleRareInheritedData::StyleRareInheritedData):
+ (WebCore::StyleRareInheritedData::operator==):
+ * rendering/style/StyleRareInheritedData.h:
+
+2011-09-30 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=69173
+
+ RTL/LTR mixtures still not correct in regions. Simplify the loop once I realized it's only
+ your directionality that matters and not your containing block's.
+
+ Reviewed by Dan Bernstein.
+
+ Added new test in fast/regions.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::borderBoxRectInRegion):
+
+2011-09-30 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/10208291> first-letter in generated before content with display: table is not updated
+
+ Reviewed by Sam Weinig.
+
+ Test: fast/css-generated-content/first-letter-in-nested-before.html
+
+ * rendering/RenderObjectChildList.cpp:
+ (WebCore::RenderObjectChildList::updateBeforeAfterContent): Preserve the style type of anonymous
+ containers around the generated content when updating their style. This preserves the first-letter-ness
+ of the inline wrapping the first letter, which allows updateFirstLetter() to identify it later.
+
+2011-09-30 Cary Clark <caryclark@google.com>
+
+ Inset focus ring (Skia on Mac)
+ https://bugs.webkit.org/show_bug.cgi?id=69166
+ http://code.google.com/p/chromium/issues/detail?id=97956
+
+ This focus ring was drawn too large and was left tracks
+ in subsequent invalidations. Make it more closely match
+ the CG version.
+
+ Reviewed by Stephen White.
+
+ No new tests. This platform is not enabled.
+
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::getFocusRingOutset):
+ (WebCore::GraphicsContext::drawFocusRing):
+
+2011-09-30 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96422.
+ http://trac.webkit.org/changeset/96422
+ https://bugs.webkit.org/show_bug.cgi?id=69170
+
+ Broke Windows build and kling wanted to roll it out as well
+ (Requested by rniwa on #webkit).
+
+ * rendering/InlineBox.cpp:
+ (WebCore::InlineBox::prevOnLineExists):
+ * rendering/InlineBox.h:
+ (WebCore::InlineBox::InlineBox):
+
+2011-09-30 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=69167
+
+ [CSS3 Regions] Fix some bugs in the computation of the logical left and width offsets
+ for blocks in variable width regions. Specifically, this patch addresses a minor bug
+ with overflow:hidden/scroll/auto block placement and with RTL directionality.
+
+ Reviewed by Sam Weinig.
+
+ Added five new tests in fast/regions.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::logicalRightOffsetForContent):
+ Avoid a double fetch of the border box in a given region by not calling
+ logicalLeftOffsetForContent. No correctness change here. It's just cleaner.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::borderBoxRectInRegion):
+ Change the shifted optimization to be cached for "self" rather than for "containing block".
+ Rework the adjustment loop to handle changes in directionality and to fix correctness
+ issues with RTL.
+
+ (WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
+ Don't double adjust if an object uses line width as the containing block width. In that
+ case we already computed the line width in the region, so we don't need to apply any
+ additional fixup.
+
+ (WebCore::RenderBox::renderBoxRegionInfo):
+ * rendering/RenderBoxRegionInfo.h:
+ (WebCore::RenderBoxRegionInfo::RenderBoxRegionInfo):
+ (WebCore::RenderBoxRegionInfo::isShifted):
+ Changed the shifted code to be on self rather than on containing block.
+
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::layout):
+ Refactor the layout code for RenderFlowThread to properly set up region rects assuming
+ right alignment in RTL code. This change forces us to compute our maximum logical width
+ first before looping through the regions again to set their content rects.
+
+2011-09-30 Andreas Kling <kling@webkit.org>
+
+ REGRESSION(r82611) InlineBox has 33 bits of bitset, causing alignment issues and extra memory use.
+ https://bugs.webkit.org/show_bug.cgi?id=64914
+
+ Reviewed by Antti Koivisto.
+
+ Remove InlineBox::prevOnLineExists() and its two accompanying bitfields
+ since nobody is using them anymore. nextOnLineExists() is still used by
+ GTK+ accessibility code.
+
+ Also added a compile-time assertion to guard against future bloating of
+ the InlineBox class.
+
+ * rendering/InlineBox.cpp:
+ (WebCore::SameSizeAsInlineBox::~SameSizeAsInlineBox):
+ * rendering/InlineBox.h:
+ (WebCore::InlineBox::InlineBox):
+
+2011-09-30 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] Build fix: Qt::escape is deprecated in Qt5
+ https://bugs.webkit.org/show_bug.cgi?id=69162
+
+ Use QString::toHtmlEscaped in the Qt5 case.
+
+ Reviewed by Andreas Kling.
+
+ No new tests needed.
+
+ * WebCore.pro: adjust the include path accordingly
+ in the v8 case.
+
+2011-09-30 Ryosuke Niwa <rniwa@webkit.org>
+
+ Remove unused ReplaceSelectionCommand::copyStyleToChildren
+ https://bugs.webkit.org/show_bug.cgi?id=69153
+
+ Reviewed by Antonio Gomes.
+
+ Removed the function because it's no called anywhere.
+
+ * editing/ReplaceSelectionCommand.cpp:
+ * editing/ReplaceSelectionCommand.h:
+
+2011-09-30 Aaron Colwell <acolwell@chromium.org>
+
+ Fix EnabledAtRuntime support for constants.
+ https://bugs.webkit.org/show_bug.cgi?id=67311
+
+ Reviewed by Adam Barth.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateImplementation):
+
+2011-09-29 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=69043
+
+ [CSS3 Regions] Blocks split across regions with variable width need to size
+ differently in each region.
+
+ This patch adds the capability for blocks to have variable width and positioning
+ when split across regions. It is very rudimentary and so far only operates on basic
+ normal flow RenderBlocks. Future patches will expand the support to cover other layout
+ constructs like flexible boxes and tables.
+
+ Reviewed by Sam Weinig.
+
+ Added new tests in fast/regions and updated existing results.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * rendering/HitTestResult.cpp:
+ (WebCore::HitTestResult::HitTestResult):
+ (WebCore::HitTestResult::operator=):
+ * rendering/HitTestResult.h:
+ (WebCore::HitTestResult::region):
+ (WebCore::HitTestResult::setRegion):
+ The hit test result now holds the active RenderRegion so that hit testing can adjust
+ block widths and positions when hit testing their border boxes.
+
+ * rendering/PaintInfo.h:
+ (WebCore::PaintInfo::PaintInfo):
+ The paint info struct now holds the active RenderRegion so that painting can adjust
+ block widths and positions when painting borders and backgrounds and shadows.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::layoutBlock):
+ If our width ever changes, we invalidate all of our cached RenderBoxRegionInfo in all
+ regions that we span.
+
+ (WebCore::RenderBlock::clearRenderBoxRegionInfo):
+ Called to clear out our cached region-specific information in all regions that we span.
+
+ (WebCore::RenderBlock::borderBoxRectInRegionAtPosition):
+ Returns the borderBoxRect for the region at the specified vertical offset. This rect
+ can be both shifted horizontally and have a different width from our original border rect.
+
+ (WebCore::RenderBlock::logicalLeftOffsetForContent):
+ (WebCore::RenderBlock::logicalRightOffsetForContent):
+ Modified to call borderBoxRectInRegionAtPosition so that lines will fit inside
+ the content rect of the border box rect for the specific region.
+
+ * rendering/RenderBlock.h:
+ (WebCore::RenderBlock::logicalRightOffsetForContent):
+ Modified to call logicalLeftOffsetForContent since it's cleaner.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::borderBoxRectInRegion):
+ Called to compute the border box rect in a specific region. The result is cached in a HashMap
+ in the region itself so that subsequent lookups are fast.
+
+ (WebCore::RenderBox::nodeAtPoint):
+ Modified to use the border box rect in the active region when hit testing the backgrounds of boxes.
+
+ (WebCore::RenderBox::paintBoxDecorations):
+ Modified to use the border box rect in the active region when painting the backgrounds of boxes.
+
+ (WebCore::RenderBox::containingBlockLogicalWidthForContent):
+ (WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
+ (WebCore::RenderBox::computeLogicalWidth):
+ (WebCore::RenderBox::computeLogicalWidthInRegion):
+ Helpers for computing logical widths and margins in a specific region. The result is then cached
+ in a HashMap in the region.
+
+ (WebCore::RenderBox::renderBoxRegionInfo):
+ The function for obtaining the region-specific information for a given box.
+
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::borderBoxRectInRegion):
+ New function for returning the border box rect in a given region.
+
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+ Make sure mask painting honors the active region.
+
+ * rendering/RenderBoxRegionInfo.h: Added.
+ (WebCore::RenderBoxRegionInfo::RenderBoxRegionInfo):
+ (WebCore::RenderBoxRegionInfo::logicalLeft):
+ (WebCore::RenderBoxRegionInfo::logicalWidth):
+ (WebCore::RenderBoxRegionInfo::containingBlockChainIsShifted):
+ New class held by RenderRegions that caches box-specific info for a given region. This will eventually
+ expand to include custom styles as well, but for now it is limited to a new logical left and a new
+ logical width, along with a bit for optimizing accumulated shifting when painting/hit testing to avoid
+ too much groveling up the containing block chain.
+
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::RenderFlowThread):
+ Removed the region fitting optimization, since eventually everyone is going to care, and there's no reason
+ to limit it with the results now being cached.
+
+ (WebCore::RenderFlowThread::layout):
+ All box-specific region information is always cleared whenever the regions are invalidated.
+
+ (WebCore::RenderFlowThread::computeLogicalWidth):
+ Modified to set up RenderBoxRegionInfo for the flow thread in all regions.
+
+ (WebCore::RenderFlowThread::paintIntoRegion):
+ (WebCore::RenderFlowThread::hitTestRegion):
+ Modified to take the region instead of the region's rectangle so that painting and hit testing of the flow
+ thread layer tree can properly receive the active region.
+
+ (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
+ Helper for removing a box's information from all regions. For now it grovels through every region, so eventually
+ we may want to have a cache of the start/end regions for a given box somewhere.
+
+ * rendering/RenderFlowThread.h:
+ Removal of the region fitting stuff.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paint):
+ (WebCore::RenderLayer::paintOverlayScrollbars):
+ (WebCore::RenderLayer::paintLayer):
+ (WebCore::RenderLayer::paintList):
+ (WebCore::RenderLayer::paintPaginatedChildLayer):
+ (WebCore::RenderLayer::paintChildLayerIntoColumns):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::paintIntoLayer):
+ Modified to pass the current region down through painting functions so that it is known at paint time.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::RenderObject):
+ Added a new bit to RenderObjects, inRenderFlowThread(), so that it is quick to determine whether or not an
+ object needs flow thread special casing.
+
+ (WebCore::RenderObject::enclosingRenderFlowThread):
+ Modified enclosingRenderFlowThread to be able to quickly return 0 if the object is not in a flow thread.
+
+ (WebCore::RenderObject::containerForRepaint):
+ Same.
+
+ * rendering/RenderObject.h:
+ (WebCore::RenderObject::setParent):
+ setParent now updates inRenderFlowThread() state.
+
+ (WebCore::RenderObject::inRenderFlowThread):
+ (WebCore::RenderObject::setInRenderFlowThread):
+ Adding the new bit.
+
+ * rendering/RenderObjectChildList.cpp:
+ (WebCore::RenderObjectChildList::removeChildNode):
+ Make sure when an object is removed from a RenderFlowThread that it deletes its box-specific information
+ in all regions.
+
+ * rendering/RenderRegion.cpp:
+ (WebCore::RenderRegion::~RenderRegion):
+ (WebCore::RenderRegion::paintReplaced):
+ (WebCore::RenderRegion::nodeAtPoint):
+ (WebCore::RenderRegion::renderBoxRegionInfo):
+ (WebCore::RenderRegion::setRenderBoxRegionInfo):
+ (WebCore::RenderRegion::removeRenderBoxRegionInfo):
+ (WebCore::RenderRegion::deleteAllRenderBoxRegionInfo):
+ (WebCore::RenderRegion::matchesRenderFlowThreadLogicalWidth):
+ * rendering/RenderRegion.h:
+ Added the new HashMap for holding box-specific region information. Also added an additional optimization to
+ check if a specific region matches the overall width of the RenderFlowThread. If it does, we don't need to
+ cache box-specific information for that region.
+
+ * rendering/RenderReplica.cpp:
+ (WebCore::RenderReplica::paint):
+ * rendering/RenderScrollbarPart.cpp:
+ (WebCore::RenderScrollbarPart::paintIntoRect):
+ * rendering/svg/SVGImageBufferTools.cpp:
+ (WebCore::SVGImageBufferTools::renderSubtreeToImageBuffer):
+ Modified the PaintInfo construction to include the region argument. It's not optional so that callers will
+ have to consider it (since masks illustrated this is necessary).
+
+2011-09-30 Tim Horton <timothy_horton@apple.com>
+
+ feBlend uses a table of function pointers which reduces inlineability inside the main loop
+ https://bugs.webkit.org/show_bug.cgi?id=69154
+ <rdar://problem/10215221>
+
+ Reviewed by Darin Adler.
+
+ Don't use a table of function pointers inside the feBlend inner loop, instead
+ use switch and inline functions, bringing a 20% performance gain across the
+ board to feBlend.
+
+ No new tests, minor performance improvement.
+
+ * platform/graphics/filters/FEBlend.cpp:
+ (WebCore::normal):
+ (WebCore::multiply):
+ (WebCore::screen):
+ (WebCore::darken):
+ (WebCore::lighten):
+ (WebCore::FEBlend::apply):
+
+2011-09-30 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Add getCallData to MethodTable in ClassInfo
+ https://bugs.webkit.org/show_bug.cgi?id=69024
+
+ Reviewed by Sam Weinig.
+
+ No new tests.
+
+ * WebCore.exp.in:
+
+ Changed getCallData from private to protected to allow subclasses who
+ don't override getCallData themselves to reference it in their own
+ method tables when calling the CREATE_METHOD_TABLE macro.
+ * bridge/runtime_method.h:
+
+2011-09-30 Ned Holbrook <nholbrook@apple.com>
+
+ Complex spaces with synthetic bold are too wide
+ https://bugs.webkit.org/show_bug.cgi?id=69033
+
+ Reviewed by Dan Bernstein.
+
+ Test: fast/text/complex-synthetic-bold-space-width.html
+
+ * platform/graphics/mac/ComplexTextController.cpp:
+ (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Subtract synthetic bold offset from spaceWidth.
+ * platform/graphics/win/UniscribeController.cpp:
+ (WebCore::UniscribeController::shapeAndPlaceItem): Ditto.
+
+2011-09-30 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: [chromium] expose inspector protocol version to the embedder.
+ https://bugs.webkit.org/show_bug.cgi?id=69092
+
+ This change also introduces major/minor inspector version components.
+
+ Reviewed by Yury Semikhatsky.
+
+ * CMakeLists.txt:
+ * CodeGenerators.pri:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * inspector/Inspector-0.1.json: Renamed from Source/WebCore/inspector/Inspector.draft-01.json.
+ * inspector/Inspector.json:
+ * inspector/generate-inspector-protocol-version: Renamed from Source/WebCore/inspector/validate-protocol-compatibility.
+
+2011-09-29 Antti Koivisto <antti@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=69106
+ Universal attribute selectors disable style sharing
+
+ Reviewed by Dave Hyatt.
+
+ Selectors of type [foo="bar"] ended up marking every element style with the affectedByAttributeSelectors bit
+ rendering style sharing inoperative. This happens on http://www.whatwg.org/specs/web-apps/current-work/ for example.
+
+ Instead we now mark style with affectedByUncommonAttributeSelectors bit only if an attribute selector actually
+ matches the element. Before sharing, we also check the current element against collected attribute rules.
+ We can share the style if neither element was affected.
+
+ This speeds up style matching and applying ~15% on full HTML5 spec (=~0.7s). Sharing percentage goes from 0% to ~30%.
+ Increased sharing should also save a substantial amount of memory.
+
+ * css/CSSSelector.h:
+ (WebCore::CSSSelector::isAttributeSelector):
+ * css/CSSStyleSelector.cpp:
+ (WebCore::RuleData::containsUncommonAttributeSelector):
+ (WebCore::collectSpecialRulesInDefaultStyle):
+ (WebCore::assertNoSiblingRulesInDefaultStyle):
+ (WebCore::CSSStyleSelector::CSSStyleSelector):
+ (WebCore::CSSStyleSelector::matchRules):
+ (WebCore::CSSStyleSelector::matchesRuleSet):
+ (WebCore::CSSStyleSelector::canShareStyleWithElement):
+ (WebCore::CSSStyleSelector::locateSharedStyle):
+ (WebCore::CSSStyleSelector::styleForElement):
+ (WebCore::selectorListContainsUncommonAttributeSelector):
+ (WebCore::isCommonAttributeSelectorAttribute):
+ (WebCore::containsUncommonAttributeSelector):
+ (WebCore::RuleData::RuleData):
+ (WebCore::collectFeaturesFromSelector):
+ (WebCore::collectFeaturesFromList):
+ * css/CSSStyleSelector.h:
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::checkOneSelector):
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::RenderStyle):
+ * rendering/style/RenderStyle.h:
+ (WebCore::InheritedFlags::affectedByUncommonAttributeSelectors):
+ (WebCore::InheritedFlags::setAffectedByUncommonAttributeSelectors):
+
+2011-09-30 James Robinson <jamesr@chromium.org>
+
+ [chromium] Add WebKit API for sending input events to the compositor thread
+ https://bugs.webkit.org/show_bug.cgi?id=69117
+
+ Reviewed by Darin Fisher.
+
+ Convert to using an externally-provided thread instead of one managed by CCThreadProxy internally. Most changes
+ in these files are mechanically changing references from ccThread to s_ccThread to reflect the class-static
+ nature of this pointer, the rest are removing the old thread creation codepath.
+
+ These changes are covered by the CC* unit tests and by the gpu layout tests when run with the
+ use_threaded_compositing=1 gyp define.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::setThread):
+ (WebCore::CCThreadProxy::CCThreadProxy):
+ (WebCore::CCThreadProxy::~CCThreadProxy):
+ (WebCore::CCThreadProxy::compositeAndReadback):
+ (WebCore::CCThreadProxy::finishAllRendering):
+ (WebCore::CCThreadProxy::initializeLayerRenderer):
+ (WebCore::CCThreadProxy::setNeedsCommit):
+ (WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
+ (WebCore::CCThreadProxy::setNeedsRedraw):
+ (WebCore::CCThreadProxy::start):
+ (WebCore::CCThreadProxy::stop):
+ (WebCore::CCThreadProxy::beginFrameAndCommit):
+ (WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+
+2011-09-29 Fady Samuel <fsamuel@chromium.org>
+
+ Fixed Hit testing on Framesets when Frameset is transformed
+ https://bugs.webkit.org/show_bug.cgi?id=67740
+
+ Reviewed by Simon Fraser.
+
+ Tests: fast/frames/frame-set-rotation-hit.html
+ fast/frames/frame-set-scaling-hit.html
+
+ * rendering/RenderFrameSet.cpp:
+ (WebCore::RenderFrameSet::userResize):
+
+2011-09-29 Dirk Pranke <dpranke@chromium.org>
+
+ fix gyp warnings in chromium for renamed files
+ https://bugs.webkit.org/show_bug.cgi?id=69116
+
+ Reviewed by Adam Barth.
+
+ * WebCore.gypi:
+
+2011-09-29 Martin Robinson <mrobinson@igalia.com>
+
+ [Freetype] Some text in Planet GNOME renders in the wrong place
+ https://bugs.webkit.org/show_bug.cgi?id=69099
+
+ Reviewed by Dirk Schulze.
+
+ Test: platform/gtk/fonts/synthetic-oblique-positioning.html
+
+ Fold the oblique transform into the font matrix itself rather than transforming
+ the CTM of the context at render time. Not only does this fix the issue, it
+ prevents unnecessary work on every paint.
+
+ * platform/graphics/cairo/FontCairo.cpp:
+ No longer set the synthetic oblique transformation matrix on the context
+ when rendering the text. Instead it is now folded into the TM of the font
+ itself.
+ * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
+ (WebCore::FontPlatformData::initializeWithFontFace): Fold the oblique transform into the scaled font.
+ * platform/graphics/win/FontPlatformDataCairoWin.cpp:
+ (WebCore::FontPlatformData::FontPlatformData): Ditto.
+
+2011-09-29 Dan Bernstein <mitz@apple.com>
+
+ Follow-up fix for <rdar://problem/10191243> Glyph variants (line final swashes) appear where they should not
+
+ Reviewed by Simon Fraser.
+
+ * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
+ (WebCore::FontPlatformData::ctFont): Check for Hoefler Text Black Italic as well.
+
+2011-09-29 Cary Clark <caryclark@google.com>
+
+ Enable LCD text in Skia on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=68734
+
+ Reviewed by Stephen White.
+
+ No new tests. Existing layout tests are generated
+ with LCD text disabled for pixel comparisons.
+
+ Duplicate the logic in FontMac.mm to pass settings
+ for antialiasing and smoothing. Also disable smoothing
+ for DumpRenderTree.
+
+ * platform/graphics/skia/FontSkia.cpp:
+ (WebCore::setupPaint):
+ (WebCore::Font::drawGlyphs):
+
+2011-09-29 Varun Jain <varunjain@google.com>
+
+ Implement flick gesture in Chromium Gesture Recognizer
+ https://bugs.webkit.org/show_bug.cgi?id=67930
+
+ Reviewed by Dimitri Glazkov.
+
+ Test: Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp
+
+ * platform/chromium/GestureRecognizerChromium.cpp:
+ (WebCore::GestureRecognizerChromium::isOverMinFlickSpeed):
+ (WebCore::GestureRecognizerChromium::appendScrollGestureEnd):
+ (WebCore::GestureRecognizerChromium::updateValues):
+ (WebCore::GestureRecognizerChromium::scrollEnd):
+ * platform/chromium/GestureRecognizerChromium.h:
+
+2011-09-29 Noel Gordon <noel.gordon@gmail.com>
+
+ [chromium] canvas.toDataURL("image/jpeg"): use libjpeg-turbo data swizzle
+ https://bugs.webkit.org/show_bug.cgi?id=67402
+
+ Reviewed by Kenneth Russell.
+
+ libjpeg-turbo can read directly from the input data for the premultiplied BRGX
+ (SkBitmap) encoding case.
+
+ No change in behavior, covered by existing canvas 2d/3d tests
+ canvas/philip/tests/toDataURL.jpeg.alpha.html
+ fast/canvas/webgl/premultiplyalpha-test.html
+
+ * platform/image-encoders/skia/JPEGImageEncoder.cpp:
+ (WebCore::encodePixels): If JCS_EXTENSIONS is defined (libjpeg-turbo), swizzle
+ the input BRGX pixels directly within libjpeg-turbo.
+
+2011-09-29 Adam Barth <abarth@webkit.org>
+
+ Fixenate the build.
+
+ * bindings/v8/V8DOMWindowShell.cpp:
+ (WebCore::V8DOMWindowShell::namedItemAdded):
+
+2011-09-29 Ryosuke Niwa <rniwa@webkit.org>
+
+ Remove direct reads to m_firstNodeInserted and m_lastLeafInserted in ReplaceSelectionCommand
+ https://bugs.webkit.org/show_bug.cgi?id=69023
+
+ Reviewed by Enrica Casucci.
+
+ Converted to removeUnrenderedTextNodesAtEnds to use InsertedNodes instead of m_firstNodeInserted
+ and m_lastLeafInserted. Extracted the logic to update nodes as InsertedNodes::willRemoveNode
+ (old one was renamed to InsertedNodes::willRemoveNodePreservingChildren).
+
+ Also extracted shouldPerformSmartReplace and addSpacesForSmartReplace out of doApply,
+ and rewrote the logic to obtain endNode and startNode using startOfInsertedContent and
+ endOfInsertedContent instead of m_firstNodeInserted and m_lastLeafInserted.
+
+ Finally, replaced the nullity checks of m_firstNodeInserted and m_lastLeafInserted in
+ completeHTMLReplacement by nullity checks of start and end positions.
+
+ * dom/Node.cpp:
+ (WebCore::Node::traversePreviousSibling): Added.
+ * dom/Node.h:
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren): Renamed from
+ willRemoveNode.
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode): Extracted from
+ removeUnrenderedTextNodesAtEnds.
+ (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
+ (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
+ (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Made const.
+ (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Made const.
+ (WebCore::ReplaceSelectionCommand::handleStyleSpans): Takes firstNodeInserted instead of directly
+ accessing m_firstNodeInserted.
+ (WebCore::ReplaceSelectionCommand::doApply):
+ (WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
+ (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
+ (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
+ * editing/ReplaceSelectionCommand.h:
+
+2011-09-29 Andreas Kling <kling@webkit.org>
+
+ Shrink HTMLAnchorElement on 32-bit.
+ https://bugs.webkit.org/show_bug.cgi?id=69094
+
+ Reviewed by Antti Koivisto.
+
+ * html/HTMLAnchorElement.h: Pack members into a bitfield.
+
+2011-09-29 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/10191243> Glyph variants (line final swashes) appear where they should not
+
+ Reviewed by Simon Fraser.
+
+ Test: fast/text/line-initial-and-final-swashes.html
+
+ Hoefler Text Italic enables line-initial and -final swashes by default, so disable them. This
+ change targets only this known-bad font rather than all fonts, because at least one font (Khmer MN)
+ incorrectly claims to have the line-initial feature enabled, but disabling it actually does
+ something different and bad (breaking some combining marks).
+
+ * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
+ (WebCore::createFeatureSettingDictionary): Added this helper function.
+ (WebCore::cascadeToLastResortFontDescriptor): Deployed WTF_ARRAY_LENGTH().
+ (WebCore::cascadeToLastResortAndDisableSwashesFontDescriptor): Added. Returns a font descriptor
+ that, in addition to having a cascade list consisting of the last resort font, also has feature
+ settings to disable line-initial and line-final swashes.
+ (WebCore::FontPlatformData::ctFont): For Hoefler Text Italic, use cascadeToLastResortAndDisableSwashesFontDescriptor().
+
+2011-09-29 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Unreviewed: resetting baseline for code generator bindings
+
+ Unreviewed build fix
+
+ No new tests.
+
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ * bindings/scripts/test/JS/JSTestObj.h:
+
+2011-09-29 Nate Chapin <japhet@chromium.org>
+
+ [V8, chromium] More logging to determine cause of a null
+ v8::Context in V8DOMWindowShell::namedItemAdded().
+
+ https://bugs.webkit.org/show_bug.cgi?id=68099
+
+ Reviewed by Adam Barth.
+
+ * bindings/v8/V8DOMWindowShell.cpp:
+ (WebCore::V8DOMWindowShell::namedItemAdded):
+
+2011-09-29 Alexey Proskuryakov <ap@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=69040
+ ScrollbarThemeComposite requires a ScrollView to draw scroll corner
+
+ Reviewed by Simon Fraser.
+
+ No new tests. This will be needed later.
+
+ * platform/ScrollbarThemeComposite.cpp:
+ (WebCore::pageForScrollView):
+ (WebCore::ScrollbarThemeComposite::paintScrollCorner):
+ Use pageForScrollView() function which already existed in this file, used in another similar
+ location.
+
+ * platform/chromium/FramelessScrollView.cpp:
+ * platform/chromium/FramelessScrollView.h:
+ * platform/gtk/ScrollbarThemeGtk.cpp:
+ * platform/gtk/ScrollbarThemeGtk.h:
+ * platform/wx/ScrollbarThemeWx.cpp:
+ * platform/wx/ScrollbarThemeWx.h:
+ All these overrides are no longer needed, ScrollbarThemeComposite will do the right thing.
+
+ * platform/qt/ScrollbarThemeQt.cpp: (WebCore::ScrollbarThemeQt::paintScrollCorner):
+ Removed a special case for updatingControlTints phase. The same case is present in cross-platform
+ code now, and Qt doesn't have any custom subclasses of ScrollableArea or ScrollView to need
+ special handling.
+ This was added in r37377 without a bug or much ChangeLog explanation.
+
+2011-09-29 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ De-virtualize JSCell::visitChildrenVirtual and remove all other visitChildrenVirtual methods
+ https://bugs.webkit.org/show_bug.cgi?id=68839
+
+ Reviewed by Geoffrey Garen.
+
+ No new tests.
+
+ Removed the remaining visitChildrenVirtual methods. This patch completes the process of
+ de-virtualizing visitChildren.
+
+ * WebCore.exp.in:
+ * bindings/js/JSAttrCustom.cpp:
+ * bindings/js/JSAudioContextCustom.cpp:
+ * bindings/js/JSCSSRuleCustom.cpp:
+ * bindings/js/JSCSSStyleDeclarationCustom.cpp:
+ * bindings/js/JSCanvasRenderingContextCustom.cpp:
+ * bindings/js/JSDOMGlobalObject.cpp:
+ (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
+ (WebCore::JSDOMGlobalObject::finishCreation):
+ * bindings/js/JSDOMGlobalObject.h:
+ * bindings/js/JSDOMWindowCustom.cpp:
+ * bindings/js/JSDOMWindowShell.cpp:
+ * bindings/js/JSDOMWindowShell.h:
+ * bindings/js/JSJavaScriptAudioNodeCustom.cpp:
+ * bindings/js/JSMessageChannelCustom.cpp:
+ * bindings/js/JSMessagePortCustom.cpp:
+ * bindings/js/JSNamedNodeMapCustom.cpp:
+ * bindings/js/JSNodeCustom.cpp:
+ * bindings/js/JSNodeFilterCustom.cpp:
+ * bindings/js/JSNodeIteratorCustom.cpp:
+ * bindings/js/JSSVGElementInstanceCustom.cpp:
+ * bindings/js/JSSharedWorkerCustom.cpp:
+ * bindings/js/JSStyleSheetCustom.cpp:
+ * bindings/js/JSTreeWalkerCustom.cpp:
+ * bindings/js/JSWebGLRenderingContextCustom.cpp:
+ * bindings/js/JSWorkerContextCustom.cpp:
+ * bindings/js/JSXMLHttpRequestCustom.cpp:
+ * bindings/js/JSXPathResultCustom.cpp:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateHeader):
+ (GenerateImplementation):
+ * bridge/qt/qt_instance.cpp:
+ * bridge/qt/qt_runtime.cpp:
+ * bridge/qt/qt_runtime.h:
+
+2011-09-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
+
+ QWidget and friends now live in the QtWidgets library. We update
+ includes in implementation files and private headers to us the
+ non-module-prefixed path, and leave the lookup for the include
+ path. For public headers we have to ifdef the includes as the
+ user might now have the modules we need in his QT config.
+
+ Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
+ have to update our code and use windowHandle() for setting the
+ parent relationships.
+
+ https://bugs.webkit.org/show_bug.cgi?id=68687
+
+ Reviewed by Andreas Kling.
+
+ * WebCore.pri:
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+
+2011-09-29 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96340.
+ http://trac.webkit.org/changeset/96340
+ https://bugs.webkit.org/show_bug.cgi?id=69098
+
+ Caused 10 tests to crash in Debug (Requested by
+ abarth|gardener on #webkit).
+
+ * accessibility/AXObjectCache.cpp:
+ (WebCore::AXObjectCache::AXObjectCache):
+ (WebCore::AXObjectCache::~AXObjectCache):
+ (WebCore::AXObjectCache::remove):
+ (WebCore::AXObjectCache::childrenChanged):
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityMenuList.cpp:
+ (WebCore::AccessibilityMenuList::childrenChanged):
+ * accessibility/AccessibilityMenuList.h:
+ * accessibility/AccessibilityMenuListPopup.cpp:
+ (WebCore::AccessibilityMenuListPopup::childrenChanged):
+ * accessibility/AccessibilityMenuListPopup.h:
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::childrenChanged):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::startOfContinuations):
+ (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
+ (WebCore::AccessibilityRenderObject::childrenChanged):
+ * accessibility/AccessibilityRenderObject.h:
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::willBeDestroyed):
+
+2011-09-29 Andreas Kling <kling@webkit.org>
+
+ Shrink FontFallbackList.
+ https://bugs.webkit.org/show_bug.cgi?id=69093
+
+ Reviewed by Antti Koivisto.
+
+ Reduce the size of FontFallbackList by one CPU word, decreasing memory
+ consumption by 300 kB (on 64-bit) when loading the full HTML5 spec.
+
+ * platform/graphics/FontCache.h:
+ * platform/graphics/FontCache.cpp:
+ (WebCore::FontCache::generation):
+
+ Store the FontCache generation as an ushort rather than uint.
+
+ * platform/graphics/FontFallbackList.cpp:
+ (WebCore::FontFallbackList::FontFallbackList):
+ * platform/graphics/FontFallbackList.h:
+
+ Pack enum and bool members in a bitfield.
+
+2011-09-29 Adam Barth <abarth@webkit.org>
+
+ We should ignore the return value of GetRealNamedProperty
+ https://bugs.webkit.org/show_bug.cgi?id=68840
+
+ Reviewed by Nate Chapin.
+
+ Instead of skipping the lookup process by using the result of real
+ named property, we should just indiciate that it wasn't handled by the
+ interceptor.
+
+ Test: http/tests/security/window-named-valueOf.html
+
+ * bindings/v8/custom/V8DOMWindowCustom.cpp:
+ (WebCore::V8DOMWindow::namedPropertyGetter):
+
+2011-09-29 Chris Fleizach <cfleizach@apple.com>
+
+ ARIA live regions don't trigger notifications for elements that aren't in the AX tree
+ https://bugs.webkit.org/show_bug.cgi?id=62289
+
+ If an ARIA Live region udpates an element that is not in the AX object cache, then the Live region
+ notification is not sent. To fix this, the childrenChanged() method needs to actually create
+ the appropriate objects, but since that method gets called during a render tree update, we've learned
+ that it's generally not safe to create objects.
+
+ Instead a one shot timer can be fired that will update and create the necessary objects so that the
+ correct notification can be sent.
+
+ Reviewed by Darin Adler.
+
+ Test: platform/mac/accessibility/aria-liveregion-without-element-access.html
+
+ * accessibility/AXObjectCache.cpp:
+ (WebCore::AXObjectCache::AXObjectCache):
+ (WebCore::AXObjectCache::~AXObjectCache):
+ (WebCore::AXObjectCache::remove):
+ (WebCore::AXObjectCache::childrenUpdateTimerFired):
+ (WebCore::AXObjectCache::childrenChanged):
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityMenuList.cpp:
+ (WebCore::AccessibilityMenuList::childrenChanged):
+ * accessibility/AccessibilityMenuList.h:
+ * accessibility/AccessibilityMenuListPopup.cpp:
+ (WebCore::AccessibilityMenuListPopup::childrenChanged):
+ * accessibility/AccessibilityMenuListPopup.h:
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::childrenChanged):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::startOfContinuations):
+ (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
+ (WebCore::AccessibilityRenderObject::childrenChanged):
+ * accessibility/AccessibilityRenderObject.h:
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::willBeDestroyed):
+
+2011-09-29 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Dragging a selection does not produce a drag image
+ https://bugs.webkit.org/show_bug.cgi?id=69064
+
+ Reviewed by Andreas Kling.
+
+ Moved Chromium's generic implementation of Frame::nodeImage and
+ Frame::dragImageForSeletion to Frame.cpp and simply excluded via
+ #ifdefs platforms that do not have their own implementation. Removed
+ all empty implementations of these functions and Qt's which was
+ functionally identical.
+
+ No new tests. Drag-and-drop drag image functionality changes
+ are incredibly difficult to test in a non-manual way.
+
+ * CMakeListsEfl.txt: Delist FrameEfl.cpp.
+ * GNUmakefile.list.am: Delist FrameGtk.cpp.
+ * WebCore.gypi: Delist removed Frame*.cpp.
+ * WebCore.pro: Delist FrameQt.cpp.
+ * page/Frame.cpp: Moved FrameChromium implementation here.
+ (WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
+ (WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
+ (WebCore::Frame::nodeImage):
+ (WebCore::Frame::dragImageForSelection):
+ * page/chromium/FrameChromium.cpp: Removed.
+ * page/efl/FrameEfl.cpp: Removed.
+ * page/gtk/FrameGtk.cpp: Removed.
+ * page/qt/FrameQt.cpp: Removed.
+ * page/wx/FrameWx.cpp: Removed.
+ * platform/gtk/ClipboardGtk.cpp:
+ (WebCore::ClipboardGtk::createDragImage): Call nodeImage to get
+ the drag image for a node.
+
+2011-09-29 Noel Gordon <noel.gordon@gmail.com>
+
+ [chromium skia] PNGImageEncoder: hoist constants out of the encoding loop
+ https://bugs.webkit.org/show_bug.cgi?id=68988
+
+ Reviewed by Kenneth Russell.
+
+ No new tests. Covered by existing canvas 2d and 3d tests.
+ canvas/philip/tests/toDataURL.png.*.html
+ fast/canvas/toDataURL-alpha.html
+ fast/canvas/webgl/premultiplyalpha-test.html
+
+ * platform/image-encoders/skia/PNGImageEncoder.cpp:
+ (WebCore::encodePixels): Move constant out of the encoding loop.
+ (WebCore::PNGImageEncoder::encode): Consistency & style: call encodePixels()
+ just like we do in the JPEG encoder.
+
+2011-09-29 Iain Merrick <husky@google.com>
+
+ Add unit test for CCLayerSorter
+ https://bugs.webkit.org/show_bug.cgi?id=68622
+
+ Minor refactoring for testability:
+ - Made pointInTriangle public.
+ - Added LayerShape to decouple LayerIntersector and GraphNode.
+ - Added a public wrapper function for LayerIntersector.
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/chromium/cc/CCLayerSorter.cpp:
+ (WebCore::CCLayerSorter::pointInTriangle):
+ (WebCore::CCLayerSorter::calculateZDiff):
+ (WebCore::CCLayerSorter::LayerIntersector::LayerIntersector):
+ (WebCore::CCLayerSorter::LayerIntersector::go):
+ (WebCore::CCLayerSorter::LayerIntersector::checkZDiff):
+ (WebCore::CCLayerSorter::LayerIntersector::layerZFromProjectedPoint):
+ (WebCore::CCLayerSorter::checkOverlap):
+ (WebCore::CCLayerSorter::LayerShape::LayerShape):
+ (WebCore::CCLayerSorter::createGraphNodes):
+ * platform/graphics/chromium/cc/CCLayerSorter.h:
+ (WebCore::CCLayerSorter::LayerShape::LayerShape):
+ (WebCore::CCLayerSorter::GraphNode::GraphNode):
+
+2011-09-29 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: UI performance test for network panel is incorrect. The time is including a timeout between scheduled refresh and actual refresh.
+ https://bugs.webkit.org/show_bug.cgi?id=69087
+
+ The fix has the changes for the test and minor perf framework improvements.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkLogView.prototype._defaultRefreshDelay.500._scheduleRefresh):
+
+2011-09-29 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Make search-in-resource test simpler.
+ https://bugs.webkit.org/show_bug.cgi?id=69025
+
+ Changed search-in-resource test.
+ Removed error parameter from content provider's searchInContent callback.
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::searchInResource):
+ (WebCore::InspectorPageAgent::searchInResources):
+ * inspector/front-end/Resource.js:
+ (WebInspector.Resource.prototype.searchInContent):
+
+2011-09-29 Hans Wennborg <hans@chromium.org>
+
+ IndexedDB: Use LevelDB also for in-memory databases
+ https://bugs.webkit.org/show_bug.cgi?id=68903
+
+ Reviewed by Steve Block.
+
+ Add LevelDBDatabase::openInMemory() which uses leveldb::NewMemEnv()
+ to create in-memory LevelDB databases.
+
+ Use this in IDBLeveLDBBackingStore::open() when the caller passes in
+ an empty file path.
+ This happens in Chromium's incognito mode, and when running layout
+ tests.
+
+ Fix IDBSQLiteBackingStore::backingStoreExists() so it doesn't create
+ files when passed in an empty file path, but uses the in-memory mode
+ instead.
+
+ Existing layout tests will all be run in-memory.
+
+ * platform/leveldb/LevelDBDatabase.cpp:
+ (WebCore::LevelDBDatabase::~LevelDBDatabase):
+ (WebCore::openDB):
+ (WebCore::LevelDBDatabase::open):
+ (WebCore::LevelDBDatabase::openInMemory):
+ * platform/leveldb/LevelDBDatabase.h:
+ * storage/IDBLevelDBBackingStore.cpp:
+ (WebCore::IDBLevelDBBackingStore::open):
+ * storage/IDBSQLiteBackingStore.cpp:
+ (WebCore::IDBSQLiteBackingStore::backingStoreExists):
+
+2011-09-29 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: speed-up Network panel. Change _staleResources type from array to object.
+ https://bugs.webkit.org/show_bug.cgi?id=69081
+
+ There is a test with 30 requests.
+ For the each stage of loading a resource we have an entry in _staleResources array. There are at least 4 stages per request.
+ NetworkLogView._refresh function is creating/updating the resource row for the each such entry.
+ This array can be replaced with a hash map just because the resource associated with the entry is the same for all the entries with the same request id.
+
+ Reviewed by Pavel Feldman.
+
+ Test: inspector/performance/resources/network-append-30-requests.html
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkLogView):
+ (WebInspector.NetworkLogView.prototype._invalidateAllItems):
+ (WebInspector.NetworkLogView.prototype.refresh):
+ (WebInspector.NetworkLogView.prototype._reset):
+ (WebInspector.NetworkLogView.prototype._refreshResource):
+
+2011-09-28 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: make inspector protocol validation a part of the build process.
+ https://bugs.webkit.org/show_bug.cgi?id=68999
+
+ Since we'd like to commit to inspector protocol backwards compatibility, violating it
+ should be a build failure.
+
+ Reviewed by Yury Semikhatsky.
+
+ * CMakeLists.txt:
+ * CodeGenerators.pri:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gyp/WebCore.gyp:
+ * inspector/Inspector.draft-01.json:
+ * inspector/Inspector.json:
+ * inspector/generate-inspector-idl:
+ * inspector/generate-protocol-externs:
+ * inspector/validate-protocol-compatibility:
+
+2011-09-27 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: Scripts panel without folders causes errors when creating content scripts section.
+ https://bugs.webkit.org/show_bug.cgi?id=68827
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
+ (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
+ (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
+
+2011-09-28 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: network log view refresh optimizations
+ https://bugs.webkit.org/show_bug.cgi?id=69010
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkLogView.prototype.refresh):
+
+2011-09-29 Pavel Podivilov <podivilov@chromium.org>
+
+ Web Inspector: split SourceFile.js into RawSourceCode.js and UISourceCodeContentProviders.js.
+ https://bugs.webkit.org/show_bug.cgi?id=69068
+
+ Reviewed by Yury Semikhatsky.
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/front-end/RawSourceCode.js: Renamed from Source/WebCore/inspector/front-end/SourceFile.js.
+ (WebInspector.RawSourceCode): Moved from SourceFile.js.
+ (WebInspector.UILocation): Moved from SourceFile.js.
+ * inspector/front-end/UISourceCodeContentProviders.js: Added. Moved ContentProvider implementations from SourceFile.js
+ (WebInspector.ScriptContentProvider):
+ (WebInspector.ScriptContentProvider.prototype.requestContent):
+ (WebInspector.ConcatenatedScriptsContentProvider):
+ (WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
+ (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent.appendChunk):
+ (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent):
+ (WebInspector.ResourceContentProvider):
+ (WebInspector.ResourceContentProvider.prototype.requestContent):
+ (WebInspector.StaticContentProvider):
+ (WebInspector.StaticContentProvider.prototype.requestContent):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+
+2011-09-29 Philippe Normand <pnormand@igalia.com>
+
+ [GStreamer] 2 flaky media tests
+ https://bugs.webkit.org/show_bug.cgi?id=67407
+
+ Reviewed by Martin Robinson.
+
+ Workaround for GStreamer bug#639941. In GStreamer
+ 0.10.35 basesink reports wrong duration in case of EOS and
+ negative playback rate. This workaround fixes two media tests,
+ media/video-timeupdate-reverse-play.html and
+ media/video-reverse-play-duration.html.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
+ (WebCore::MediaPlayerPrivateGStreamer::currentTime):
+ (WebCore::MediaPlayerPrivateGStreamer::didEnd):
+
+2011-09-29 Philippe Normand <pnormand@igalia.com>
+
+ [GStreamer] fullscreen video pause/play fails
+ https://bugs.webkit.org/show_bug.cgi?id=66936
+
+ Reviewed by Martin Robinson.
+
+ Don't use the identity element to avoid painting of the in-window
+ video. Instead simply make the sink aware of the fullscreen state
+ and ignore buffers if fullscreen and autovideosink are
+ active. Also fixed two deadlocks happening when a paused pipeline
+ is switched to fullscreen and when fullscreen is disabled for a
+ paused pipeline.
+
+ * platform/graphics/gstreamer/GStreamerGWorld.cpp:
+ (WebCore::GStreamerGWorld::enterFullscreen):
+ (WebCore::GStreamerGWorld::exitFullscreen):
+ * platform/graphics/gstreamer/GStreamerGWorld.h:
+ (WebCore::GStreamerGWorld::isFullscreen):
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
+ * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
+ (webkit_video_sink_render):
+ (webkit_video_sink_new):
+ * platform/graphics/gstreamer/VideoSinkGStreamer.h:
+
+2011-09-29 Tim Horton <timothy_horton@apple.com>
+
+ REGRESSION(87010): elements in ECMA-cloud neither filled nor blurred
+ https://bugs.webkit.org/show_bug.cgi?id=68679
+ <rdar://problem/10204649>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Strip prefixes from SVG attributes before testing if they're supported.
+ Namespaced attributes will be matched using their namespace instead of
+ the (user-choosable) prefix.
+
+ Test: svg/custom/xlink-custom-namespace.svg
+
+ * svg/SVGAElement.cpp:
+ (WebCore::SVGAElement::isSupportedAttribute):
+ * svg/SVGAnimateMotionElement.cpp:
+ (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
+ * svg/SVGAnimateTransformElement.cpp:
+ (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
+ * svg/SVGAnimationElement.cpp:
+ (WebCore::SVGAnimationElement::isSupportedAttribute):
+ * svg/SVGCircleElement.cpp:
+ (WebCore::SVGCircleElement::isSupportedAttribute):
+ * svg/SVGClipPathElement.cpp:
+ (WebCore::SVGClipPathElement::isSupportedAttribute):
+ * svg/SVGComponentTransferFunctionElement.cpp:
+ (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
+ * svg/SVGCursorElement.cpp:
+ (WebCore::SVGCursorElement::isSupportedAttribute):
+ * svg/SVGElement.h:
+ (WebCore::SVGAttributeHashTranslator::hash):
+ (WebCore::SVGAttributeHashTranslator::equal):
+ * svg/SVGEllipseElement.cpp:
+ (WebCore::SVGEllipseElement::isSupportedAttribute):
+ * svg/SVGExternalResourcesRequired.h:
+ * svg/SVGFEBlendElement.cpp:
+ (WebCore::SVGFEBlendElement::isSupportedAttribute):
+ * svg/SVGFEColorMatrixElement.cpp:
+ (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
+ * svg/SVGFEComponentTransferElement.cpp:
+ (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
+ * svg/SVGFECompositeElement.cpp:
+ (WebCore::SVGFECompositeElement::isSupportedAttribute):
+ * svg/SVGFEConvolveMatrixElement.cpp:
+ (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
+ * svg/SVGFEDiffuseLightingElement.cpp:
+ (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
+ * svg/SVGFEDisplacementMapElement.cpp:
+ (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
+ * svg/SVGFEDropShadowElement.cpp:
+ (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
+ * svg/SVGFEGaussianBlurElement.cpp:
+ (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
+ * svg/SVGFEImageElement.cpp:
+ (WebCore::SVGFEImageElement::isSupportedAttribute):
+ * svg/SVGFELightElement.cpp:
+ (WebCore::SVGFELightElement::isSupportedAttribute):
+ * svg/SVGFEMergeNodeElement.cpp:
+ (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
+ * svg/SVGFEMorphologyElement.cpp:
+ (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
+ * svg/SVGFEOffsetElement.cpp:
+ (WebCore::SVGFEOffsetElement::isSupportedAttribute):
+ * svg/SVGFESpecularLightingElement.cpp:
+ (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
+ * svg/SVGFETileElement.cpp:
+ (WebCore::SVGFETileElement::isSupportedAttribute):
+ * svg/SVGFETurbulenceElement.cpp:
+ (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
+ * svg/SVGFilterElement.cpp:
+ (WebCore::SVGFilterElement::isSupportedAttribute):
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
+ * svg/SVGForeignObjectElement.cpp:
+ (WebCore::SVGForeignObjectElement::isSupportedAttribute):
+ * svg/SVGGElement.cpp:
+ (WebCore::SVGGElement::isSupportedAttribute):
+ * svg/SVGGradientElement.cpp:
+ (WebCore::SVGGradientElement::isSupportedAttribute):
+ * svg/SVGImageElement.cpp:
+ (WebCore::SVGImageElement::isSupportedAttribute):
+ * svg/SVGLineElement.cpp:
+ (WebCore::SVGLineElement::isSupportedAttribute):
+ * svg/SVGLinearGradientElement.cpp:
+ (WebCore::SVGLinearGradientElement::isSupportedAttribute):
+ * svg/SVGMPathElement.cpp:
+ (WebCore::SVGMPathElement::isSupportedAttribute):
+ * svg/SVGMarkerElement.cpp:
+ (WebCore::SVGMarkerElement::isSupportedAttribute):
+ * svg/SVGMaskElement.cpp:
+ (WebCore::SVGMaskElement::isSupportedAttribute):
+ * svg/SVGPathElement.cpp:
+ (WebCore::SVGPathElement::isSupportedAttribute):
+ * svg/SVGPatternElement.cpp:
+ (WebCore::SVGPatternElement::isSupportedAttribute):
+ * svg/SVGPolyElement.cpp:
+ (WebCore::SVGPolyElement::isSupportedAttribute):
+ * svg/SVGRadialGradientElement.cpp:
+ (WebCore::SVGRadialGradientElement::isSupportedAttribute):
+ * svg/SVGRectElement.cpp:
+ (WebCore::SVGRectElement::isSupportedAttribute):
+ * svg/SVGScriptElement.cpp:
+ (WebCore::SVGScriptElement::isSupportedAttribute):
+ * svg/SVGStopElement.cpp:
+ (WebCore::SVGStopElement::isSupportedAttribute):
+ * svg/SVGStyleElement.cpp:
+ (WebCore::SVGStyleElement::isSupportedAttribute):
+ * svg/SVGStyledTransformableElement.cpp:
+ (WebCore::SVGStyledTransformableElement::isSupportedAttribute):
+ * svg/SVGSymbolElement.cpp:
+ (WebCore::SVGSymbolElement::isSupportedAttribute):
+ * svg/SVGTRefElement.cpp:
+ (WebCore::SVGTRefElement::isSupportedAttribute):
+ * svg/SVGTextContentElement.cpp:
+ (WebCore::SVGTextContentElement::isSupportedAttribute):
+ * svg/SVGTextElement.cpp:
+ (WebCore::SVGTextElement::isSupportedAttribute):
+ * svg/SVGTextPathElement.cpp:
+ (WebCore::SVGTextPathElement::isSupportedAttribute):
+ * svg/SVGTextPositioningElement.cpp:
+ (WebCore::SVGTextPositioningElement::isSupportedAttribute):
+ * svg/SVGURIReference.cpp:
+ (WebCore::SVGURIReference::addSupportedAttributes):
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::isSupportedAttribute):
+ * svg/SVGViewElement.cpp:
+ (WebCore::SVGViewElement::isSupportedAttribute):
+
+2011-09-28 Kentaro Hara <haraken@chromium.org>
+
+ "ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&"
+ https://bugs.webkit.org/show_bug.cgi?id=68984
+
+ Reviewed by Darin Adler.
+
+ Just a follow-up fix for the bug 68345. For performance,
+ "ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&".
+
+ Tests: fast/events/constructors/pop-state-event-constructor.html
+ fast/events/fire-popstate-event.html
+
+ * dom/PopStateEvent.cpp:
+ (WebCore::PopStateEvent::PopStateEvent):
+ (WebCore::PopStateEvent::create):
+ (WebCore::PopStateEvent::initPopStateEvent):
+ * dom/PopStateEvent.h:
+
+2011-09-28 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Move drag-and-drop code which can be shared with WebKit2 to WebCore
+ https://bugs.webkit.org/show_bug.cgi?id=66890
+
+ Added a GtkDragAndDropHelper class to hold all the logic that is common
+ between WebKit1 and WebKit2. This will allow greater code sharing between
+ the two ports.
+
+ Reviewed by Philippe Normand.
+
+ No new tests. This patch should not change behavior.
+
+ * GNUmakefile.list.am: Added the GtkDragAndDropHelper to the sources list.
+ * platform/gtk/GtkDragAndDropHelper.cpp: Added.
+ * platform/gtk/GtkDragAndDropHelper.h: Added.
+
+2011-09-28 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/10196497> first-letter after list marker not updated correctly
+
+ Reviewed by Simon Fraser.
+
+ Test: fast/dynamic/first-letter-after-list-marker.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::updateFirstLetter): Improved the logic for continuing past list markers
+ when trying to locate a first letter to update.
+
+2011-09-28 Kent Tamura <tkent@chromium.org>
+
+ REGRESSION(r93858): Can't type anything into input elements when maxlength is greater than 2^31
+ https://bugs.webkit.org/show_bug.cgi?id=68981
+
+ Reviewed by Darin Adler.
+
+ * html/parser/HTMLParserIdioms.cpp:
+ (WebCore::parseHTMLInteger):
+ Check the failure of charactersToIntStrict().
+ (WebCore::parseHTMLNonNegativeInteger):
+ Check the failure of charactersToUIntStrict().
+
+2011-09-28 Antoine Labour <piman@chromium.org>
+
+ Remove unused createRootLayerPainter from CCLayerTreeHostClient
+ https://bugs.webkit.org/show_bug.cgi?id=69042
+
+ Reviewed by James Robinson.
+
+ No new test needed: no semantic change.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+
+2011-09-28 Luke Macpherson <macpherson@chromium.org>
+
+ Only resolve direction aware properties when properties are direction aware.
+ https://bugs.webkit.org/show_bug.cgi?id=68968
+
+ Reviewed by Eric Seidel.
+
+ No new tests / no functionality changed.
+
+ Profiling showed a ~8% improvement in applyProperty by not calling resolveDirectionAwareProperty for every property.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+
+2011-09-28 Simon Fraser <simon.fraser@apple.com>
+
+ fast/dom/scroll-element-to-rect.html fails on WK1 Mac port
+ https://bugs.webkit.org/show_bug.cgi?id=68815
+
+ Reviewed by Dan Bernstein.
+
+ FrameView::scrollElementToRect() was incorrectly using Element::boundsInWindowSpace(),
+ which is window-relative (not web view-relative), and has flipped coordinates
+ in WebKit1.
+
+ Change to use Node::getRect() which is what the author intended.
+
+ * dom/Element.h:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scrollElementToRect):
+
+2011-09-28 Peter Beverloo <peter@chromium.org>
+
+ Don't clamp cubic-bezier timing functions between 0 and 1
+ https://bugs.webkit.org/show_bug.cgi?id=45761
+
+ Remove the limitation of clamping the cubic-bezier timing function
+ values between 0 and 1, following the specification change made on
+ April 5 of this year.
+
+ Reviewed by Dean Jackson.
+
+ Tests: transitions/cubic-bezier-overflow-color.html
+ transitions/cubic-bezier-overflow-length.html
+ transitions/cubic-bezier-overflow-shadow.html
+ transitions/cubic-bezier-overflow-svg-length.html
+ transitions/cubic-bezier-overflow-transform.html
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
+
+2011-09-28 Chris Rogers <crogers@google.com>
+
+ DelayNode must set the context on delayTime AudioParam to support automation
+ https://bugs.webkit.org/show_bug.cgi?id=68828
+
+ Reviewed by Kenneth Russell.
+
+ Test: webaudio/delaynode-scheduling.html
+
+ * webaudio/DelayNode.cpp:
+ (WebCore::DelayNode::DelayNode):
+
+2011-09-28 Sergey Glazunov <serg.glazunov@gmail.com>
+
+ JavaScript generated documents don't inherit the cookie URL
+ https://bugs.webkit.org/show_bug.cgi?id=69003
+
+ Reviewed by Adam Barth.
+
+ Test: http/tests/security/cookies/cookie-theft-with-javascript-doc.html
+
+ * dom/Document.h:
+ (WebCore::Document::setCookieURL):
+ * loader/DocumentWriter.cpp:
+ (WebCore::DocumentWriter::replaceDocument):
+ (WebCore::DocumentWriter::begin):
+ * loader/DocumentWriter.h:
+
+2011-09-27 Dimitri Glazkov <dglazkov@chromium.org>
+
+ REGRESSION(r95573): Crash when loading SVG documents in a flattened frame or any SVG document in Chromium/Mac.
+ https://bugs.webkit.org/show_bug.cgi?id=68938
+
+ Reviewed by David Hyatt.
+
+ Test: all svg tests in LayoutTests.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Added a null-check for containingBlock.
+
+2011-09-28 Una Sabovic <una.sabovic@palm.com>
+
+ Setting innerText to an empty string on editable div loses focus
+ https://bugs.webkit.org/show_bug.cgi?id=62092
+
+ Reviewed by Ryosuke Niwa.
+
+ When selection start or end node is being deleted do not clear the selection.
+ Instead update the start/end position to an equivalent parent-anchored positions.
+ When text is inserted/deleted update selection per range modification spec:
+ http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation
+
+ Tests: editing/selection/document-mutation.html
+ editing/selection/editable-div-clear-on-keydown.html
+
+ * editing/FrameSelection.cpp:
+ (WebCore::FrameSelection::respondToNodeModification):
+ (WebCore::updatePositionAfterAdoptingTextReplacement):
+ (WebCore::FrameSelection::textWillBeReplaced):
+ * editing/htmlediting.cpp:
+ (WebCore::updatePositionForNodeRemoval):
+
+2011-09-28 Joseph Pecoraro <joepeck@webkit.org>
+
+ FTPDirectoryDocument Shows Garbled String for Last Modified Date
+ https://bugs.webkit.org/show_bug.cgi?id=69011
+
+ Reviewed by Dan Bernstein.
+
+ Force WTF::String concatenation instead of an accidental char* pointer addition.
+
+ * html/FTPDirectoryDocument.cpp:
+ (WebCore::processFileDateString):
+
+2011-09-28 Nate Chapin <japhet@chromium.org>
+
+ Fix a regression in r96060. ResourceLoader shouldn't get
+ initialized with a null DocumentLoader.
+ https://bugs.webkit.org/show_bug.cgi?id=69004
+
+ Reviewed by Csaba Osztrogonác.
+
+ This should fix a debug crash in some platforms in
+ plugins/js-from-destroy.html
+
+ * loader/ResourceLoader.cpp:
+ (WebCore::ResourceLoader::init): Move the activeDocumentLoader() null checks back
+ to SubresouceLoader::create().
+ * loader/SubresourceLoader.cpp:
+ (WebCore::SubresourceLoader::create):
+
+2011-09-28 Adam Barth <abarth@webkit.org>
+
+ CSP doesn't work for a wide variety of cases
+ https://bugs.webkit.org/show_bug.cgi?id=68921
+
+ Reviewed by Darin Adler.
+
+ Patch suggested by Sam Weinig. It's unclear to me how to test this
+ change because all our tests run on non-default ports, which is why we
+ have this bug in the first place. Mozilla uses a proxy while testing
+ so they can test with URLs like http://example.com, but we don't have
+ such a facility.
+
+ * page/ContentSecurityPolicy.cpp:
+ (WebCore::CSPSource::portMatches):
+
+2011-09-28 Fady Samuel <fsamuel@chromium.org>
+
+ [Chromium] Seperate GTK specific Gyp rules from X11 Gyp rules
+ https://bugs.webkit.org/show_bug.cgi?id=68936
+
+ Reviewed by Tony Chang.
+
+ Chromium need to be built without Gtk for future version of ChromiumOS.
+
+ * WebCore.gyp/WebCore.gyp:
+
+2011-09-28 Tom Sepez <tsepez@chromium.org>
+
+ Revert change which broke displaying end script tags in view-source, instead
+ deal with any trailing </script> tag included by mistake in the XSSAuditor
+ itself. Correct tests to detect the missing close tags.
+ https://bugs.webkit.org/show_bug.cgi?id=68898
+
+ Reviewed by Adam Barth.
+
+ * html/parser/HTMLSourceTracker.cpp:
+ (WebCore::HTMLSourceTracker::end):
+ * html/parser/HTMLTokenizer.cpp:
+ (WebCore::HTMLTokenizer::nextToken):
+ * html/parser/XSSAuditor.cpp:
+ (WebCore::startsHTMLEndTagAt):
+ (WebCore::XSSAuditor::snippetForJavaScript):
+
+2011-09-28 Adam Barth <abarth@webkit.org>
+
+ Remove empty directories.
+
+ * editing/brew: Removed.
+ * page/brew: Removed.
+ * platform/brew: Removed.
+ * platform/graphics/brew: Removed.
+ * platform/network/brew: Removed.
+ * platform/text/brew: Removed.
+
+2011-09-28 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: optional arguments support for the frontend needs to be extended.
+ https://bugs.webkit.org/show_bug.cgi?id=69005
+
+ Generator supports optional arguments but they are transferred by value.
+ It is not suitable if the used type doesn't have operator bool.
+ I'll transfer such arguments by pointer.
+
+ Reviewed by Pavel Feldman.
+
+ Build is the test.
+
+ * inspector/CodeGeneratorInspector.pm:
+ (generateFrontendFunction):
+ (paramTypeTraits):
+ * inspector/InspectorDebuggerAgent.cpp:
+ (WebCore::InspectorDebuggerAgent::didParseSource):
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::InspectorResourceAgent::didFailLoading):
+
+2011-09-28 Antaryami Pandia <antaryami.pandia@motorola.com>
+
+ Reflected attribute input.size wraps on negative values (Chrome), or
+ returns them (Safari).
+ https://bugs.webkit.org/show_bug.cgi?id=44886
+
+ Reviewed by Darin Adler.
+
+ Test: fast/dom/HTMLInputElement/input-size-attribute.html
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::parseMappedAttribute):
+
+2011-09-28 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Add support for search in single resource to page agent.
+ https://bugs.webkit.org/show_bug.cgi?id=68998
+
+ Reviewed by Pavel Feldman.
+
+ Test: http/tests/inspector/search/search-in-resource.html
+
+ * inspector/ContentSearchUtils.cpp:
+ (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
+ * inspector/ContentSearchUtils.h:
+ * inspector/Inspector.json:
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::buildObjectForSearchMatch):
+ (WebCore::InspectorPageAgent::searchInResource):
+ * inspector/InspectorPageAgent.h:
+ * inspector/front-end/Resource.js:
+ (WebInspector.Resource.prototype.searchInContent):
+ * inspector/front-end/SourceFile.js:
+ (WebInspector.ResourceContentProvider.prototype.requestContent):
+ (WebInspector.ResourceContentProvider.prototype.searchInContent):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.ContentProvider.prototype.requestContent):
+ (WebInspector.ContentProvider.prototype.searchInContent):
+
+2011-09-28 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: It'd be useful to have performance stats for the back-end to front-end communication channel.
+ https://bugs.webkit.org/show_bug.cgi?id=69002
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/CodeGeneratorInspector.pm:
+
+2011-09-27 Pavel Podivilov <podivilov@chromium.org>
+
+ Web Inspector: live edit cursor always appears at the beginning of the file.
+ https://bugs.webkit.org/show_bug.cgi?id=68900
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/TextViewer.js:
+ (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
+
+2011-09-28 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Refactor searching in inspector, add test (fixed non regex search).
+ https://bugs.webkit.org/show_bug.cgi?id=68930
+
+ Reviewed by Yury Semikhatsky.
+
+ Search moved out from page agent.
+ Fixed search for non regex case which is not yet used.
+
+ Test: http/tests/inspector/search/search-in-resources.html
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/ContentSearchUtils.cpp: Added.
+ (WebCore::ContentSearchUtils::createSearchRegexSource):
+ (WebCore::ContentSearchUtils::createSearchRegex):
+ (WebCore::ContentSearchUtils::countRegularExpressionMatches):
+ * inspector/ContentSearchUtils.h: Added.
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::hasTextContent):
+ (WebCore::InspectorPageAgent::cachedResourceContent):
+ (WebCore::textContentForCachedResource):
+ (WebCore::buildObjectForSearchResult):
+ (WebCore::InspectorPageAgent::searchInResources):
+ * inspector/front-end/utilities.js:
+ ():
+
+2011-09-28 Kentaro Hara <haraken@chromium.org>
+
+ Implement a PopStateEvent constructor for V8
+ https://bugs.webkit.org/show_bug.cgi?id=68896
+
+ Reviewed by Adam Barth.
+
+ Test: fast/events/constructors/pop-state-event-constructor.html
+
+ * bindings/v8/custom/V8EventConstructors.cpp: Added a PopStateEvent constructor.
+ * dom/PopStateEvent.idl: Added a 'V8CustomConstructor' attribute.
+
+2011-09-28 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Texmap] Allow TextureMapperGL to work without a GraphicsContext
+ https://bugs.webkit.org/show_bug.cgi?id=68980
+
+ Reviewed by Andreas Kling.
+
+ Perform a null-check for m_context and initialize that variable.
+ If a graphics-context doesn't exist, we don't need to reset it.
+
+ No new functionality so no new tests.
+
+ * platform/graphics/opengl/TextureMapperGL.cpp:
+ (WebCore::TextureMapperGL::TextureMapperGL):
+ (WebCore::TextureMapperGL::beginPainting):
+ (WebCore::TextureMapperGL::endPainting):
+
+2011-09-28 Kentaro Hara <haraken@chromium.org>
+
+ Implement an ErrorEvent constructor for V8
+ https://bugs.webkit.org/show_bug.cgi?id=68336
+
+ Reviewed by Adam Barth.
+
+ Test: fast/events/constructors/error-event-constructor.html
+
+ * bindings/v8/OptionsObject.cpp:
+ (WebCore::OptionsObject::getKeyValue): Returns an unsigned value corresponding to a given key.
+ * bindings/v8/OptionsObject.h:
+ * bindings/v8/custom/V8EventConstructors.cpp: Added the ErrorEvent constructor.
+ * dom/ErrorEvent.idl: Added a 'V8CustomConstructor' attribute.
+
+2011-09-27 Andy Estes <aestes@apple.com>
+
+ WebKitLinkedOnOrAfter() check is ineffective for Solar Walk app-specific hack.
+ https://bugs.webkit.org/show_bug.cgi?id=68863
+
+ Reviewed by Darin Adler.
+
+ The SolarWalk binary does not link against WebKit.framework directly,
+ so calling NSVersionOfLinkTimeLibrary() will not return the version of
+ WebKit against which SolarWalk was linked. Since Solar Walk has
+ released an update that addresses the issue for which this app-specific
+ hack was originally added, we should just remove the hack.
+
+ * WebCore.exp.in: Remove applicationIsSolarWalkMac().
+ * platform/RuntimeApplicationChecks.cpp: Ditto.
+ * platform/RuntimeApplicationChecks.h: Ditto.
+
+2011-09-28 Tim Horton <timothy_horton@apple.com>
+
+ Fix potential SVG performance regression (over-invalidation of caches) from 96052
+ https://bugs.webkit.org/show_bug.cgi?id=68941
+ <rdar://problem/10196224>
+
+ Reviewed by Zoltan Herczeg.
+
+ Only invalidate the cache of a filter when target style changes, as of the different types of cached
+ resources, only filters make use of the style of the target element and thus need to be invalidated
+ when the target style changes.
+
+ No new tests, performance improvement.
+
+ * rendering/svg/SVGResourcesCache.cpp:
+ (WebCore::SVGResourcesCache::clientUpdatedFromElement):
+
+2011-09-28 Adenilson Cavalcanti <adenilson.silva@openbossa.org>
+
+ Missing initialization of member in ImageFrameQt class
+ https://bugs.webkit.org/show_bug.cgi?id=68943
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ No new tests, this fixes internal implementation detail.
+
+ * platform/image-decoders/qt/ImageFrameQt.cpp:
+ (WebCore::ImageFrame::ImageFrame):
+ (WebCore::ImageFrame::operator=):
+
+2011-09-27 Luke Macpherson <macpherson@chromium.org>
+
+ Defer call to CSSValue::isPrimitiveValue(), saves ~4% in CSSStyleSelector::applyProperty().
+ https://bugs.webkit.org/show_bug.cgi?id=68964
+
+ Reviewed by Eric Seidel.
+
+ No new tests / no functionality changed.
+
+ Doing value->isPrimitiveValue() is relatviely expensive, so moving it after the early returns but
+ before the result is used saves a significant number of cycles. (Tested with Shark profiler in Safari).
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+
+2011-09-27 Ryosuke Niwa <rniwa@webkit.org>
+
+ Simplify ReplaceSelectionCommand::positionAtStartOfInsertedContent
+ https://bugs.webkit.org/show_bug.cgi?id=68939
+
+ Reviewed by Darin Adler.
+
+ Simplified ReplaceSelectionCommand::positionAtStartOfInsertedContent.
+
+ This change revealed a bug in removeUnrenderedTextNodesAtEnds that text nodes without any visible
+ text at ends are not removed when it has a render object. Fixed the bug by checking the length of
+ the rendered text. (Tested by editing/pasteboard/pasting-word-in-div-extra-line.html)
+
+ This further revealed that caretMaxRenderedOffset doesn't return an offset and caretMaxRenderedOffset
+ on InlineBox, InlineTextBox, RenderObject, RenderBR, RenderPlaced are never called. To address this
+ issue, renamed caretMaxRenderedOffset to renderedTextLength for RenderText and removed the rest.
+
+ * dom/Position.cpp:
+ (WebCore::Position::rendersInDifferentPosition):
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::nodeHasVisibleRenderText): Added.
+ (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Calls nodeHasVisibleRenderText.
+ (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Simplified.
+ * editing/visible_units.cpp:
+ (WebCore::startOfParagraph): Calls renderedTextLength.
+ (WebCore::endOfParagraph): Ditto.
+ * rendering/InlineBox.cpp: Removed caretMaxRenderedOffset.
+ * rendering/InlineBox.h: Ditto.
+ * rendering/InlineTextBox.cpp: Ditto.
+ * rendering/InlineTextBox.h: Ditto.
+ * rendering/RenderBR.cpp: Ditto.
+ * rendering/RenderBR.h: Ditto.
+ * rendering/RenderObject.cpp: Ditto.
+ * rendering/RenderObject.h: Ditto.
+ * rendering/RenderReplaced.cpp: Ditto.
+ * rendering/RenderReplaced.h: Ditto.
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::renderedTextLength): Renamed from caretMaxRenderedOffset.
+ * rendering/RenderText.h:
+
+2011-09-27 James Robinson <jamesr@chromium.org>
+
+ [chromium] LayerRenderChromium asserts about leaking textures.
+ https://bugs.webkit.org/show_bug.cgi?id=68190
+
+ Reviewed by Kenneth Russell.
+
+ This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
+ This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
+ enum type, making it more testable. It also allows us to track the allocations by subclassing TextureAllocator
+ to make sure we aren't leaking any textures.
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
+ (WebCore::Canvas2DLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/Canvas2DLayerChromium.h:
+ * platform/graphics/chromium/ImageLayerChromium.cpp:
+ (WebCore::ImageLayerTextureUpdater::updateTextureRect):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::LayerRendererChromium):
+ (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
+ (WebCore::LayerRendererChromium::drawLayers):
+ (WebCore::LayerRendererChromium::useRenderSurface):
+ (WebCore::LayerRendererChromium::initializeSharedObjects):
+ (WebCore::LayerRendererChromium::cleanupSharedObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
+ (WebCore::LayerRendererChromium::contentsTextureAllocator):
+ * platform/graphics/chromium/LayerTextureUpdater.h:
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
+ (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
+ (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
+ * platform/graphics/chromium/ManagedTexture.cpp:
+ (WebCore::ManagedTexture::bindTexture):
+ (WebCore::ManagedTexture::framebufferTexture2D):
+ * platform/graphics/chromium/ManagedTexture.h:
+ * platform/graphics/chromium/TextureManager.cpp:
+ (WebCore::TextureManager::memoryUseBytes):
+ (WebCore::TextureManager::deleteEvictedTextures):
+ (WebCore::TextureManager::evictAndDeleteAllTextures):
+ (WebCore::TextureManager::removeTexture):
+ (WebCore::TextureManager::allocateTexture):
+ (WebCore::TextureManager::requestTexture):
+ * platform/graphics/chromium/TextureManager.h:
+ (WebCore::TextureAllocator::~TextureAllocator):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ * platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
+ (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
+ (WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
+ (WebCore::TrackingTextureAllocator::createTexture):
+ (WebCore::TrackingTextureAllocator::deleteTexture):
+ * platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
+ (WebCore::TrackingTextureAllocator::create):
+ (WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
+ * platform/graphics/chromium/VideoLayerChromium.cpp:
+ (WebCore::VideoLayerChromium::updateCompositorResources):
+ (WebCore::VideoLayerChromium::updateTexture):
+ * platform/graphics/chromium/VideoLayerChromium.h:
+ * platform/graphics/chromium/WebGLLayerChromium.cpp:
+ (WebCore::WebGLLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/WebGLLayerChromium.h:
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
+ (WebCore::CCHeadsUpDisplay::draw):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
+ (WebCore::CCLayerTreeHost::commitToOnCCThread):
+ (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
+ (WebCore::CCLayerTreeHost::updateCompositorResources):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
+ (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::drawSurface):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::setNeedsCommit):
+ (WebCore::CCSingleThreadProxy::stop):
+ (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
+ (WebCore::CCSingleThreadProxy::commitIfNeeded):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::commitOnCCThread):
+ (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
+2011-09-27 James Robinson <jamesr@chromium.org>
+
+ [chromium] Only initiate the beginFrameAndCommit sequence if a commit has been requested
+ https://bugs.webkit.org/show_bug.cgi?id=68967
+
+ Reviewed by Kenneth Russell.
+
+ When updating the scheduler state, we should only initiate a new commit flow if a commit has been requested (as
+ opposed to only a redraw).
+
+ Covered by the unit test CCLayerTreeHostTestSetNeedsRedraw with USE(THREADED_COMPOSITING) set to true.
+
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
+
+2011-09-27 Kentaro Hara <haraken@chromium.com>
+
+ Implement a PageTransitionEvent constructor for V8
+ https://bugs.webkit.org/show_bug.cgi?id=68067
+
+ Reviewed by Adam Barth.
+
+ Test: fast/events/constructors/page-transition-event-constructor.html
+
+ * bindings/v8/custom/V8EventConstructors.cpp: Added the PageTransitionEvent constructor.
+ * dom/PageTransitionEvent.idl: Added a 'V8CustomConstructor' attribute.
+
+2011-09-27 Kentaro Hara <haraken@chromium.org>
+
+ Implement a MessageEvent constructor for JSC
+ https://bugs.webkit.org/show_bug.cgi?id=68883
+
+ Reviewed by Adam Barth.
+
+ The spec for MessageEvent is here:
+ http://www.whatwg.org/specs/web-apps/current-work/#messageevent
+
+ Currently, some tests in fast/events/constructors/message-event-constructor.html
+ are failing or crashing in DRT, as we commented in the test file.
+ This is because MessageEvent.data is implemented as SerializedScriptValue,
+ and thus it cannot keep ScriptValue passed by JavaScript.
+ This is the same issue as the bug (https://bugs.webkit.org/show_bug.cgi?id=68345).
+ We will soon make a follow-up patch to fix these failures, after this
+ patch is landed.
+
+ Test: fast/events/constructors/message-event-constructor.html
+
+ * bindings/generic/EventConstructors.h: Added a definition for the MessageEvent constructor.
+ * bindings/js/JSDictionary.cpp:
+ (WebCore::JSDictionary::convertValue): Generates MessagePortArray from the list of message ports in the format of JSValues.
+ * bindings/js/JSDictionary.h:
+ * bindings/js/JSEventConstructors.cpp: Added #includes for MessageEvent.
+ * dom/MessageEvent.cpp:
+ (WebCore::MessageEventInit::MessageEventInit):
+ (WebCore::MessageEvent::MessageEvent):
+ (WebCore::MessageEvent::initMessageEvent):
+ * dom/MessageEvent.h: Added a definition for MessageEvent. Removed an extra leading spaces.
+ (WebCore::MessageEvent::create):
+ (WebCore::MessageEvent::origin):
+ (WebCore::MessageEvent::lastEventId):
+ (WebCore::MessageEvent::source):
+ (WebCore::MessageEvent::ports):
+ (WebCore::MessageEvent::dataType):
+ (WebCore::MessageEvent::dataAsSerializedScriptValue):
+ (WebCore::MessageEvent::dataAsString):
+ (WebCore::MessageEvent::dataAsBlob):
+ (WebCore::MessageEvent::dataAsArrayBuffer):
+ * dom/MessageEvent.idl: Makes MessageEvent constructible.
+
+2011-09-27 Eric Uhrhane <ericu@chromium.org>
+
+ [Chromium/FileWriter] race condition in FileWriter completion can lead to assert
+ https://bugs.webkit.org/show_bug.cgi?id=67684
+
+ Reviewed by David Levin.
+
+ Tests: fast/filesystem/file-writer-abort-continue.html
+ fast/filesystem/file-writer-abort.html
+
+ Track the state of the backend and be prepared for reentrant user
+ requests. Limit recursion depth to an arbitrary small constant.
+ * fileapi/FileWriter.cpp: Lots of event-handling changes.
+ * fileapi/FileWriter.h:
+
+2011-09-27 Mihai Parparita <mihaip@chromium.org>
+
+ Unreviewed, rolling out r96141.
+ http://trac.webkit.org/changeset/96141
+ https://bugs.webkit.org/show_bug.cgi?id=68190
+
+ Breaks PrerenderBrowserTest.PrerenderHTML5Video in
+ browser_tests
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
+ (WebCore::Canvas2DLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/Canvas2DLayerChromium.h:
+ * platform/graphics/chromium/ImageLayerChromium.cpp:
+ (WebCore::ImageLayerTextureUpdater::updateTextureRect):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::LayerRendererChromium):
+ (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
+ (WebCore::LayerRendererChromium::drawLayers):
+ (WebCore::LayerRendererChromium::createLayerTexture):
+ (WebCore::LayerRendererChromium::deleteLayerTexture):
+ (WebCore::LayerRendererChromium::useRenderSurface):
+ (WebCore::LayerRendererChromium::initializeSharedObjects):
+ (WebCore::LayerRendererChromium::cleanupSharedObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
+ * platform/graphics/chromium/LayerTextureUpdater.h:
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
+ (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
+ (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
+ * platform/graphics/chromium/ManagedTexture.cpp:
+ (WebCore::ManagedTexture::bindTexture):
+ (WebCore::ManagedTexture::framebufferTexture2D):
+ * platform/graphics/chromium/ManagedTexture.h:
+ * platform/graphics/chromium/TextureManager.cpp:
+ (WebCore::memoryUseBytes):
+ (WebCore::TextureManager::deleteEvictedTextures):
+ (WebCore::TextureManager::evictAndDeleteAllTextures):
+ (WebCore::TextureManager::removeTexture):
+ (WebCore::TextureManager::allocateTexture):
+ (WebCore::TextureManager::requestTexture):
+ * platform/graphics/chromium/TextureManager.h:
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ * platform/graphics/chromium/TrackingTextureAllocator.cpp: Removed.
+ * platform/graphics/chromium/TrackingTextureAllocator.h: Removed.
+ * platform/graphics/chromium/VideoLayerChromium.cpp:
+ (WebCore::VideoLayerChromium::updateCompositorResources):
+ (WebCore::VideoLayerChromium::updateTexture):
+ * platform/graphics/chromium/VideoLayerChromium.h:
+ * platform/graphics/chromium/WebGLLayerChromium.cpp:
+ (WebCore::WebGLLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/WebGLLayerChromium.h:
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
+ (WebCore::CCHeadsUpDisplay::draw):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::deleteContentsTextures):
+ (WebCore::CCLayerTreeHost::commitTo):
+ (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
+ (WebCore::CCLayerTreeHost::updateCompositorResources):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp.rej: Removed.
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::drawSurface):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::setNeedsCommit):
+ (WebCore::CCSingleThreadProxy::stop):
+ (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
+ (WebCore::CCSingleThreadProxy::commitIfNeeded):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::commitOnCCThread):
+ (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
+
+2011-09-27 James Robinson <jamesr@chromium.org>
+
+ [chromium] Guard accelerated skia drawing logic with its own define to remove dependency on USE(THREADED_COMPOSITING)
+ https://bugs.webkit.org/show_bug.cgi?id=68953
+
+ Reviewed by Kenneth Russell.
+
+ The accelerated drawing code is incompatible with threaded compositing. Rather than tying the two behaviors
+ together via USE(THREADED_COMPOSITING), this patch guards the accelerated drawing code with its own USE() guard
+ so the features can advance independently. Today, it's not safe to set both of these flags.
+
+ * platform/graphics/chromium/ContentLayerChromium.cpp:
+ (WebCore::ContentLayerChromium::createTextureUpdater):
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
+
+2011-09-27 Luke Macpherson <macpherson@chromium.org>
+
+ Slightly improve performance of CSSStyleApplyProperty handler lookup.
+ https://bugs.webkit.org/show_bug.cgi?id=68868
+
+ Reviewed by Eric Seidel.
+
+ No new tests as no functionality changed.
+
+ * css/CSSStyleApplyProperty.h:
+ (WebCore::CSSStyleApplyProperty::propertyHandler):
+ Make propertyHandler() public and remove redirecting functions.
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+ Perform property handler lookup once and reuse the result.
+
+2011-09-27 Kent Tamura <tkent@chromium.org>
+
+ [V8] element.dataset.nonExistingKey should return undefined.
+ https://bugs.webkit.org/show_bug.cgi?id=68877
+
+ Reviewed by Nate Chapin.
+
+ * bindings/v8/custom/V8DOMStringMapCustom.cpp:
+ (WebCore::V8DOMStringMap::namedPropertyGetter): Uses v8StringOrUndefined() instead of v8String().
+
+2011-09-23 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Add static version of JSCell::visitChildren
+ https://bugs.webkit.org/show_bug.cgi?id=68404
+
+ Reviewed by Darin Adler.
+
+ No new tests.
+
+ In this patch we just extract the bodies of the virtual visitChildren methods
+ throughout the JSCell inheritance hierarchy out into static methods, which are
+ now called from the virtual methods. This is an intermediate step in trying to
+ move the virtual-ness of visitChildren into our own custom vtable stored in
+ ClassInfo. We need to convert the methods to static methods in order to be
+ able to more easily store and refer to them in our custom vtable since normal
+ member methods store some implicit information in their types, making it
+ impossible to store them generically in ClassInfo.
+
+ * WebCore.exp.in:
+ * bindings/js/JSAttrCustom.cpp:
+ (WebCore::JSAttr::visitChildrenVirtual):
+ (WebCore::JSAttr::visitChildren):
+ * bindings/js/JSAudioContextCustom.cpp:
+ (WebCore::JSAudioContext::visitChildrenVirtual):
+ (WebCore::JSAudioContext::visitChildren):
+ * bindings/js/JSCSSRuleCustom.cpp:
+ (WebCore::JSCSSRule::visitChildrenVirtual):
+ (WebCore::JSCSSRule::visitChildren):
+ * bindings/js/JSCSSStyleDeclarationCustom.cpp:
+ (WebCore::JSCSSStyleDeclaration::visitChildrenVirtual):
+ (WebCore::JSCSSStyleDeclaration::visitChildren):
+ * bindings/js/JSCanvasRenderingContextCustom.cpp:
+ (WebCore::JSCanvasRenderingContext::visitChildrenVirtual):
+ (WebCore::JSCanvasRenderingContext::visitChildren):
+ * bindings/js/JSDOMGlobalObject.cpp:
+ (WebCore::JSDOMGlobalObject::visitChildrenVirtual):
+ (WebCore::JSDOMGlobalObject::visitChildren):
+ * bindings/js/JSDOMGlobalObject.h:
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::visitChildrenVirtual):
+ (WebCore::JSDOMWindow::visitChildren):
+ * bindings/js/JSDOMWindowShell.cpp:
+ (WebCore::JSDOMWindowShell::visitChildrenVirtual):
+ (WebCore::JSDOMWindowShell::visitChildren):
+ * bindings/js/JSDOMWindowShell.h:
+ * bindings/js/JSJavaScriptAudioNodeCustom.cpp:
+ (WebCore::JSJavaScriptAudioNode::visitChildrenVirtual):
+ (WebCore::JSJavaScriptAudioNode::visitChildren):
+ * bindings/js/JSMessageChannelCustom.cpp:
+ (WebCore::JSMessageChannel::visitChildrenVirtual):
+ (WebCore::JSMessageChannel::visitChildren):
+ * bindings/js/JSMessagePortCustom.cpp:
+ (WebCore::JSMessagePort::visitChildrenVirtual):
+ (WebCore::JSMessagePort::visitChildren):
+ * bindings/js/JSNamedNodeMapCustom.cpp:
+ (WebCore::JSNamedNodeMap::visitChildrenVirtual):
+ (WebCore::JSNamedNodeMap::visitChildren):
+ * bindings/js/JSNodeCustom.cpp:
+ (WebCore::JSNode::visitChildrenVirtual):
+ (WebCore::JSNode::visitChildren):
+ * bindings/js/JSNodeFilterCustom.cpp:
+ (WebCore::JSNodeFilter::visitChildrenVirtual):
+ (WebCore::JSNodeFilter::visitChildren):
+ * bindings/js/JSNodeIteratorCustom.cpp:
+ (WebCore::JSNodeIterator::visitChildrenVirtual):
+ (WebCore::JSNodeIterator::visitChildren):
+ * bindings/js/JSSVGElementInstanceCustom.cpp:
+ (WebCore::JSSVGElementInstance::visitChildrenVirtual):
+ (WebCore::JSSVGElementInstance::visitChildren):
+ * bindings/js/JSSharedWorkerCustom.cpp:
+ (WebCore::JSSharedWorker::visitChildrenVirtual):
+ (WebCore::JSSharedWorker::visitChildren):
+ * bindings/js/JSStyleSheetCustom.cpp:
+ (WebCore::JSStyleSheet::visitChildrenVirtual):
+ (WebCore::JSStyleSheet::visitChildren):
+ * bindings/js/JSTreeWalkerCustom.cpp:
+ (WebCore::JSTreeWalker::visitChildrenVirtual):
+ (WebCore::JSTreeWalker::visitChildren):
+ * bindings/js/JSWebGLRenderingContextCustom.cpp:
+ (WebCore::JSWebGLRenderingContext::visitChildrenVirtual):
+ (WebCore::JSWebGLRenderingContext::visitChildren):
+ * bindings/js/JSWorkerContextCustom.cpp:
+ (WebCore::JSWorkerContext::visitChildrenVirtual):
+ (WebCore::JSWorkerContext::visitChildren):
+ * bindings/js/JSXMLHttpRequestCustom.cpp:
+ (WebCore::JSXMLHttpRequest::visitChildrenVirtual):
+ (WebCore::JSXMLHttpRequest::visitChildren):
+ * bindings/js/JSXPathResultCustom.cpp:
+ (WebCore::JSXPathResult::visitChildrenVirtual):
+ (WebCore::JSXPathResult::visitChildren):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateHeader):
+ (GenerateImplementation):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::JSTestObj::visitChildrenVirtual):
+ (WebCore::JSTestObj::visitChildren):
+ * bindings/scripts/test/JS/JSTestObj.h:
+ * bridge/qt/qt_instance.cpp:
+ (JSC::Bindings::QtRuntimeObject::visitChildrenVirtual):
+ (JSC::Bindings::QtRuntimeObject::visitChildren):
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::QtRuntimeMetaMethod::visitChildrenVirtual):
+ (JSC::Bindings::QtRuntimeMetaMethod::visitChildren):
+ * bridge/qt/qt_runtime.h:
+ * workers/WorkerContext.h:
+
+<<<<<<< .mine
+2011-09-27 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Add static version of JSCell::getCallData
+ https://bugs.webkit.org/show_bug.cgi?id=68741
+
+ Reviewed by Darin Adler.
+
+ No new tests.
+
+ In this patch we just extract the bodies of the virtual getCallData methods
+ throughout the JSCell inheritance hierarchy out into static methods, which are
+ now called from the virtual methods. This is an intermediate step in trying to
+ move the virtual-ness of getCallData into our own method table stored in
+ ClassInfo. We need to convert the methods to static methods because static methods
+ can be represented as function pointers rather than pointers to member functions, and
+ function pointers are smaller and faster to call than pointers to member functions.
+
+ * WebCore.exp.in:
+ * bindings/js/JSCallbackData.cpp:
+ (WebCore::JSCallbackData::invokeCallback):
+ * bindings/js/JSCustomXPathNSResolver.cpp:
+ (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
+ * bindings/js/JSErrorHandler.cpp:
+ (WebCore::JSErrorHandler::handleEvent):
+ * bindings/js/JSEventListener.cpp:
+ (WebCore::JSEventListener::handleEvent):
+ * bindings/js/JSHTMLAllCollectionCustom.cpp:
+ (WebCore::JSHTMLAllCollection::getCallDataVirtual):
+ (WebCore::JSHTMLAllCollection::getCallData):
+ * bindings/js/JSHTMLAppletElementCustom.cpp:
+ (WebCore::JSHTMLAppletElement::getCallDataVirtual):
+ (WebCore::JSHTMLAppletElement::getCallData):
+ * bindings/js/JSHTMLEmbedElementCustom.cpp:
+ (WebCore::JSHTMLEmbedElement::getCallDataVirtual):
+ (WebCore::JSHTMLEmbedElement::getCallData):
+ * bindings/js/JSHTMLObjectElementCustom.cpp:
+ (WebCore::JSHTMLObjectElement::getCallDataVirtual):
+ (WebCore::JSHTMLObjectElement::getCallData):
+ * bindings/js/JSInjectedScriptHostCustom.cpp:
+ (WebCore::JSInjectedScriptHost::evaluate):
+ * bindings/js/JSPluginElementFunctions.cpp:
+ (WebCore::runtimeObjectGetCallData):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateHeader):
+ * bridge/objc/objc_runtime.h:
+ * bridge/objc/objc_runtime.mm:
+ (JSC::Bindings::ObjcFallbackObjectImp::getCallDataVirtual):
+ (JSC::Bindings::ObjcFallbackObjectImp::getCallData):
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::QtRuntimeMetaMethod::getCallDataVirtual):
+ (JSC::Bindings::QtRuntimeMetaMethod::getCallData):
+ (JSC::Bindings::QtRuntimeConnectionMethod::call):
+ (JSC::Bindings::QtRuntimeConnectionMethod::getCallDataVirtual):
+ (JSC::Bindings::QtRuntimeConnectionMethod::getCallData):
+ (JSC::Bindings::isJavaScriptFunction):
+ * bridge/qt/qt_runtime.h:
+ * bridge/runtime_method.cpp:
+ (JSC::RuntimeMethod::getCallDataVirtual):
+ (JSC::RuntimeMethod::getCallData):
+ * bridge/runtime_method.h:
+ * bridge/runtime_object.cpp:
+ (JSC::Bindings::RuntimeObject::getCallDataVirtual):
+ (JSC::Bindings::RuntimeObject::getCallData):
+ * bridge/runtime_object.h:
+
+=======
+2011-09-27 Dean Jackson <dino@apple.com>
+
+ Unreviewed. Remove duplicate FilterOperation{s}.h that were
+ accidentally added to the top level of the Xcode project.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+>>>>>>> .r96163
+2011-09-27 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=68940
+
+ Narrow the float/lines pagination heuristic to only kick in if
+ the previous line broke cleanly and if the floats are occurring
+ at the start of the line.
+
+ Reviewed by Dan Bernstein.
+
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlock::positionNewFloatOnLine):
+
+2011-09-27 James Robinson <jamesr@chromium.org>
+
+ Add a mechanism to test for the compositing tree mutated during painting
+ https://bugs.webkit.org/show_bug.cgi?id=68738
+
+ Reviewed by Adam Barth.
+
+ Sets a static bool during GraphicsLayer::paintGraphicsLayerContents and ASSERT()s that we never create or
+ destroy a GraphicsLayer inside this function. Painting should never mutate the GraphicsLayer tree.
+
+ Test: compositing/video/video-with-invalid-source.html
+
+ * platform/graphics/GraphicsLayer.cpp:
+ (WebCore::GraphicsLayer::GraphicsLayer):
+ (WebCore::GraphicsLayer::~GraphicsLayer):
+ (WebCore::GraphicsLayer::paintGraphicsLayerContents):
+
+2011-09-27 Ojan Vafai <ojan@chromium.org>
+
+ take padding/border on flexbox into account with direction:rtl
+ https://bugs.webkit.org/show_bug.cgi?id=68846
+
+ Reviewed by David Hyatt.
+
+ Use the logicalWidth of the flexbox instead of it's availableLogicalWidth
+ so that we include the flexbox's border and padding.
+
+ Also, change all uses of availableLogicalWidth to contentLogicalWidth.
+ The former takes multi-column into account. Multi-column flexboxes don't
+ make any sense, so there's no point in calling availableLogicalWidth.
+
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::flowAwareLogicalWidth):
+ (WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
+ (WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
+ (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
+ (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
+ * rendering/RenderFlexibleBox.h:
+
+2011-09-27 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96139.
+ http://trac.webkit.org/changeset/96139
+ https://bugs.webkit.org/show_bug.cgi?id=68933
+
+ Broke table-percent-height.html on Mac bots (Requested by
+ mwenge2 on #webkit).
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
+ (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
+ * rendering/RenderBox.h:
+
+2011-09-27 Tim Horton <timothy_horton@apple.com>
+
+ REGRESSION(65665): Pattern size being clamped to SVG size can prevent transformed elements from being fully covered by userSpaceOnUse patterns
+ https://bugs.webkit.org/show_bug.cgi?id=67700
+ <rdar://problem/10125102>
+
+ Reviewed by Darin Adler.
+
+ Clamp all resources to the same size, 4096x4096 (arbitrarily chosen), instead of to the size
+ of the <svg> element. This fixes the case where a transformed element displays part of a resource
+ outside of the size of the <svg> element.
+
+ When drawing an oversized pattern into its tile image, scale the content down to fit. When drawing
+ the tile image to the screen, scale it back up to fit the expected area. This will cause pixelation
+ when patterns are over the 4k limit.
+
+ Tests: svg/custom/transformed-pattern-clamp-svg-root.svg, svg/custom/oversized-pattern-scale.svg
+
+ * rendering/svg/RenderSVGResourceClipper.cpp:
+ (WebCore::RenderSVGResourceClipper::applyClippingToContext):
+ * rendering/svg/RenderSVGResourceGradient.cpp:
+ (WebCore::createMaskAndSwapContextForTextGradient):
+ (WebCore::clipToTextMask):
+ * rendering/svg/RenderSVGResourceMasker.cpp:
+ (WebCore::RenderSVGResourceMasker::applyResource):
+ * rendering/svg/RenderSVGResourcePattern.cpp:
+ (WebCore::RenderSVGResourcePattern::applyResource):
+ (WebCore::RenderSVGResourcePattern::createTileImage):
+ * rendering/svg/RenderSVGResourcePattern.h:
+ * rendering/svg/SVGImageBufferTools.cpp:
+ (WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
+ * rendering/svg/SVGImageBufferTools.h:
+
+2011-09-27 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/10098679> Assertion failure in RenderLayer::paintPaginatedChildLayer()
+
+ Reviewed by Simon Fraser.
+
+ Test: fast/dynamic/layer-no-longer-paginated.html
+
+ FrameView::layout() calls adjustViewSize() before calling RenderLayer::updateLayerPositions().
+ The former may trigger painting with a layer tree that is not entirely up-to-date. Specifically,
+ the isPaginated() state of a layer may be incorrect, leading to the assertion in this bug. Instead
+ of asserting, return early and count on the upcoming updateLayerPositions() to repaint as needed.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paintPaginatedChildLayer): Replaced the assertion with an early return.
+
+2011-09-27 Ojan Vafai <ojan@chromium.org>
+
+ offsetTop/offsetLeft return the wrong values for horizontal-bt/vertical-rl writing modes
+ https://bugs.webkit.org/show_bug.cgi?id=68304
+
+ Reviewed by David Hyatt.
+
+ When grabbing the x/y values of the RenderBox, we need to take writing mode
+ flipping into account.
+
+ Test: fast/dom/offset-position-writing-modes.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::locationIncludingFlipping):
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::yFlippedForWritingMode):
+ (WebCore::RenderBox::xFlippedForWritingMode):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::offsetLeft):
+ (WebCore::RenderBoxModelObject::offsetTop):
+
+2011-09-27 Tim Horton <timothy_horton@apple.com>
+
+ Rapidly refreshing a feMorphology[erode] with r=0 can sometimes cause display corruption
+ https://bugs.webkit.org/show_bug.cgi?id=68816
+ <rdar://problem/10186468>
+
+ Reviewed by Simon Fraser.
+
+ If a filter returns without writing into its result buffer, make sure to return an cleared buffer.
+
+ Test: svg/filters/feMorphology-zero-radius.svg
+
+ * platform/graphics/filters/FEMorphology.cpp:
+ (WebCore::FEMorphology::apply):
+ * platform/graphics/filters/FETurbulence.cpp:
+ (WebCore::FETurbulence::apply):
+
+2011-09-27 Ryosuke Niwa <rniwa@webkit.org>
+
+ CompositeEditCommand::prune should remove subtree at once
+ https://bugs.webkit.org/show_bug.cgi?id=68866
+
+ Reviewed by Darin Adler.
+
+ Extracted the logic to find the highest ancestor to remove as highestNodeToRemoveInPruning from prune.
+ This reduces the number of node removals from O(n) to O(1) where n is the depth of the tree.
+
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::hasARenderedDescendant): Takes excludedNode in addition to node. excludedNode is used to ignore
+ the child node from which we climbed up the tree in highestNodeToRemoveInPruning.
+ (WebCore::highestNodeToRemoveInPruning): Extracted from prune.
+ (WebCore::CompositeEditCommand::prune):
+ (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
+
+2011-09-27 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=68922
+
+ Paginated floats should not grow the height of a block when they don't end
+ up being tied to a line. Floats encountered in skipLeadingWhitespace that
+ paginate can't immediately grow the height of the block, since there may not
+ end up being any actual line content. We only want to push the height of the
+ block down if we have actual line content that we want to keep with the
+ float.
+
+ Make positionNewFloatOnLine check if the line is empty or not, and if it is,
+ it just puts the desired pagination strut into LineInfo. If and when actual
+ line content is encountered and setEmpty becomes false, we'll grow the block
+ height then.
+
+ Reviewed by Dan Bernstein.
+
+ Added fast/multicol/float-paginate-empty-lines.html and
+ fast/regions/webkit-flow-double-pagination-float-push.html.
+
+ * rendering/RenderBlock.h:
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::LineWidth::LineWidth):
+ (WebCore::LineWidth::fitsOnLine):
+ (WebCore::LineWidth::currentWidth):
+ (WebCore::LineWidth::uncommittedWidth):
+ (WebCore::LineWidth::committedWidth):
+ (WebCore::LineWidth::availableWidth):
+ (WebCore::LineWidth::addUncommittedWidth):
+ (WebCore::LineWidth::commit):
+ (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
+ (WebCore::LineWidth::updateAvailableWidth):
+ (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
+ (WebCore::LineWidth::applyOverhang):
+ (WebCore::LineWidth::fitBelowFloats):
+ (WebCore::LineInfo::LineInfo):
+ (WebCore::LineInfo::floatPaginationStrut):
+ (WebCore::LineInfo::setEmpty):
+ (WebCore::LineInfo::setFloatPaginationStrut):
+ (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
+ (WebCore::RenderBlock::LineBreaker::nextLineBreak):
+ (WebCore::RenderBlock::positionNewFloatOnLine):
+
+2011-09-27 Dean Jackson <dino@apple.com>
+
+ Add 'filter' value to RenderStyle
+ https://bugs.webkit.org/show_bug.cgi?id=68471
+
+ Reviewed by Simon Fraser.
+
+ Add a filter property to RenderStyle when ENABLE(CSS_FILTERS)
+ is turned on. Similar to -webkit-transform, -webkit-filter is a
+ list of FilterOperations, each identifying what type of operation
+ it is. This change simply adds the basic objects, it does not
+ parse the property to generate the list.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/graphics/filters/FilterOperation.h: Added.
+ (WebCore::FilterOperation::~FilterOperation):
+ (WebCore::FilterOperation::operator!=):
+ (WebCore::FilterOperation::getOperationType):
+ (WebCore::FilterOperation::isSameType):
+ (WebCore::FilterOperation::FilterOperation):
+ (WebCore::ReferenceFilterOperation::create):
+ (WebCore::ReferenceFilterOperation::reference):
+ (WebCore::ReferenceFilterOperation::operator==):
+ (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
+ (WebCore::BasicColorMatrixFilterOperation::create):
+ (WebCore::BasicColorMatrixFilterOperation::amount):
+ (WebCore::BasicColorMatrixFilterOperation::operator==):
+ (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
+ (WebCore::BasicComponentTransferFilterOperation::create):
+ (WebCore::BasicComponentTransferFilterOperation::amount):
+ (WebCore::BasicComponentTransferFilterOperation::operator==):
+ (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
+ (WebCore::GammaFilterOperation::create):
+ (WebCore::GammaFilterOperation::amplitude):
+ (WebCore::GammaFilterOperation::exponent):
+ (WebCore::GammaFilterOperation::offset):
+ (WebCore::GammaFilterOperation::operator==):
+ (WebCore::GammaFilterOperation::GammaFilterOperation):
+ (WebCore::BlurFilterOperation::create):
+ (WebCore::BlurFilterOperation::stdDeviationX):
+ (WebCore::BlurFilterOperation::stdDeviationY):
+ (WebCore::BlurFilterOperation::operator==):
+ (WebCore::BlurFilterOperation::BlurFilterOperation):
+ (WebCore::SharpenFilterOperation::create):
+ (WebCore::SharpenFilterOperation::radius):
+ (WebCore::SharpenFilterOperation::threshold):
+ (WebCore::SharpenFilterOperation::amount):
+ (WebCore::SharpenFilterOperation::operator==):
+ (WebCore::SharpenFilterOperation::SharpenFilterOperation):
+ (WebCore::DropShadowFilterOperation::create):
+ (WebCore::DropShadowFilterOperation::shadow):
+ (WebCore::DropShadowFilterOperation::operator==):
+ (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
+ * platform/graphics/filters/FilterOperations.cpp: Added.
+ (WebCore::FilterOperations::FilterOperations):
+ (WebCore::FilterOperations::operator==):
+ * platform/graphics/filters/FilterOperations.h: Added.
+ (WebCore::FilterOperations::operator!=):
+ (WebCore::FilterOperations::clear):
+ (WebCore::FilterOperations::operations):
+ (WebCore::FilterOperations::size):
+ (WebCore::FilterOperations::at):
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::RenderStyle):
+ * rendering/style/RenderStyle.h:
+ (WebCore::InheritedFlags::filter):
+ (WebCore::InheritedFlags::hasFilter):
+ (WebCore::InheritedFlags::setFilter):
+ (WebCore::InheritedFlags::initialFilter):
+ * rendering/style/StyleAllInOne.cpp: Added include of new StyleFilterData.
+ * rendering/style/StyleFilterData.cpp: Added.
+ (WebCore::StyleFilterData::StyleFilterData):
+ (WebCore::StyleFilterData::operator==):
+ * rendering/style/StyleFilterData.h: Added.
+ (WebCore::StyleFilterData::create):
+ (WebCore::StyleFilterData::copy):
+ (WebCore::StyleFilterData::operator!=):
+ * rendering/style/StyleRareNonInheritedData.cpp:
+ (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
+ (WebCore::StyleRareNonInheritedData::operator==):
+ * rendering/style/StyleRareNonInheritedData.h: New filter DataRef.
+
+2011-09-27 James Robinson <jamesr@chromium.org>
+
+ [chromium] LayerRenderChromium asserts about leaking textures.
+ https://bugs.webkit.org/show_bug.cgi?id=68190
+
+ Reviewed by Kenneth Russell.
+
+ This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
+ This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
+ enum type, making it more testable. It also allows us to track the allocations by subclassing TextureAllocator
+ to make sure we aren't leaking any textures.
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
+ (WebCore::Canvas2DLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/Canvas2DLayerChromium.h:
+ * platform/graphics/chromium/ImageLayerChromium.cpp:
+ (WebCore::ImageLayerTextureUpdater::updateTextureRect):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::LayerRendererChromium):
+ (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
+ (WebCore::LayerRendererChromium::drawLayers):
+ (WebCore::LayerRendererChromium::useRenderSurface):
+ (WebCore::LayerRendererChromium::initializeSharedObjects):
+ (WebCore::LayerRendererChromium::cleanupSharedObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
+ (WebCore::LayerRendererChromium::contentsTextureAllocator):
+ * platform/graphics/chromium/LayerTextureUpdater.h:
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
+ (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
+ (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
+ * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
+ * platform/graphics/chromium/ManagedTexture.cpp:
+ (WebCore::ManagedTexture::bindTexture):
+ (WebCore::ManagedTexture::framebufferTexture2D):
+ * platform/graphics/chromium/ManagedTexture.h:
+ * platform/graphics/chromium/TextureManager.cpp:
+ (WebCore::TextureManager::memoryUseBytes):
+ (WebCore::TextureManager::deleteEvictedTextures):
+ (WebCore::TextureManager::evictAndDeleteAllTextures):
+ (WebCore::TextureManager::removeTexture):
+ (WebCore::TextureManager::allocateTexture):
+ (WebCore::TextureManager::requestTexture):
+ * platform/graphics/chromium/TextureManager.h:
+ (WebCore::TextureAllocator::~TextureAllocator):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ * platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
+ (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
+ (WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
+ (WebCore::TrackingTextureAllocator::createTexture):
+ (WebCore::TrackingTextureAllocator::deleteTexture):
+ * platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
+ (WebCore::TrackingTextureAllocator::create):
+ (WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
+ * platform/graphics/chromium/VideoLayerChromium.cpp:
+ (WebCore::VideoLayerChromium::updateCompositorResources):
+ (WebCore::VideoLayerChromium::updateTexture):
+ * platform/graphics/chromium/VideoLayerChromium.h:
+ * platform/graphics/chromium/WebGLLayerChromium.cpp:
+ (WebCore::WebGLLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/WebGLLayerChromium.h:
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
+ (WebCore::CCHeadsUpDisplay::draw):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
+ (WebCore::CCLayerTreeHost::commitToOnCCThread):
+ (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
+ (WebCore::CCLayerTreeHost::updateCompositorResources):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
+ (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::drawSurface):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::setNeedsCommit):
+ (WebCore::CCSingleThreadProxy::stop):
+ (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
+ (WebCore::CCSingleThreadProxy::commitIfNeeded):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::commitOnCCThread):
+ (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
+
+2011-06-28 Robert Hogan <robert@webkit.org>
+
+ Reviewed by David Hyatt.
+
+ Replaced elements squeezed when width is specified as percentage inside a table with Auto layout
+ https://bugs.webkit.org/show_bug.cgi?id=29447
+
+ If inserting a 'replaced' element (e.g. image, plugin) in a table cell that is not descendant from
+ a block with fixed layout then do not squeeze the element, let it use its intrinsic width and height.
+
+ Test: fast/replaced/table-percent-width.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::avoidSqueezingWidth):
+ (WebCore::avoidSqueezingHeight):
+ (WebCore::RenderBox::containingBlockReplacedLogicalWidthForContent):
+ (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
+ (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
+ * rendering/RenderBox.h:
+
+2011-09-27 Simon Fraser <simon.fraser@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=67858
+
+ Roll r96070 back in now that the crash has been fixed in r96130.
+
+ Reviewed by Darin Adler.
+
+ When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
+ the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
+
+ Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
+ on scrollbar creation appears to happen via updating the scrollbar style.
+
+ Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
+ stale scrollbars when run manually, even though the green squares are missing from the
+ pixel result (bug 67878).
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
+ (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
+ (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
+ compute the scroll corner rect while we still have scrollbars, and then invalidate it
+ explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
+ rect.)
+ * platform/ScrollableArea.cpp:
+ (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
+ compute it in the case where the scrollbars are going away.
+ * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
+ invalidateScrollbar().
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
+ * rendering/RenderScrollbarPart.cpp: Ditto.
+ (WebCore::RenderScrollbarPart::imageChanged): Ditto.
+
+2011-09-27 Mihai Parparita <mihaip@chromium.org>
+
+ Fix Chromium Mac build after r96130.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::layerForOverhangAreas):
+
+2011-09-27 Kaustubh Atrawalkar <kaustubh@motorola.com>
+
+ Autofocus on readonly inputs does not focus the element.
+ https://bugs.webkit.org/show_bug.cgi?id=24092
+
+ Reviewed by Ryosuke Niwa.
+
+ Readonly input elements should be autofocusable. Removed the check.
+
+ Tests: fast/forms/autofocus-readonly-attribute.html
+
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::shouldAutofocus):
+
+2011-09-27 Simon Fraser <simon.fraser@apple.com>
+
+ Clean up how FrameView accesses the RenderView
+ https://bugs.webkit.org/show_bug.cgi?id=68914
+
+ Reviewed by Sam Weinig.
+
+ Clean up how FrameView accesses the content renderer of its
+ frame. Previously, this was done in several different ways,
+ only some of which did null-checking.
+
+ Use an inline method to avoid having to expose Frame
+ in the header.
+
+ Standardize the terminology to use 'root' for this RenderView.
+
+ * page/FrameView.cpp:
+ (WebCore::rootRenderer):
+ (WebCore::FrameView::setFrameRect):
+ (WebCore::FrameView::adjustViewSize):
+ (WebCore::FrameView::updateCompositingLayers):
+ (WebCore::FrameView::clearBackingStores):
+ (WebCore::FrameView::restoreBackingStores):
+ (WebCore::FrameView::layerForHorizontalScrollbar):
+ (WebCore::FrameView::layerForVerticalScrollbar):
+ (WebCore::FrameView::layerForScrollCorner):
+ (WebCore::FrameView::layerForOverhangAreas):
+ (WebCore::FrameView::syncCompositingStateForThisFrame):
+ (WebCore::FrameView::hasCompositedContent):
+ (WebCore::FrameView::enterCompositingMode):
+ (WebCore::FrameView::isSoftwareRenderable):
+ (WebCore::FrameView::didMoveOnscreen):
+ (WebCore::FrameView::willMoveOffscreen):
+ (WebCore::FrameView::layout):
+ (WebCore::FrameView::embeddedContentBox):
+ (WebCore::FrameView::contentsInCompositedLayer):
+ (WebCore::FrameView::scrollContentsFastPath):
+ (WebCore::FrameView::scrollContentsSlowPath):
+ (WebCore::FrameView::maintainScrollPositionAtAnchor):
+ (WebCore::FrameView::scrollPositionChanged):
+ (WebCore::FrameView::repaintFixedElementsAfterScrolling):
+ (WebCore::FrameView::visibleContentsResized):
+ (WebCore::FrameView::scheduleRelayoutOfSubtree):
+ (WebCore::FrameView::needsLayout):
+ (WebCore::FrameView::setNeedsLayout):
+ (WebCore::FrameView::performPostLayoutTasks):
+ (WebCore::FrameView::updateControlTints):
+ (WebCore::FrameView::paintContents):
+ (WebCore::FrameView::forceLayoutForPagination):
+ (WebCore::FrameView::adjustPageHeightDeprecated):
+ (WebCore::FrameView::isVerticalDocument):
+ (WebCore::FrameView::isFlippedDocument):
+
+2011-09-27 Dominic Mazzoni <dmazzoni@google.com>
+
+ AXObjectCache cleared unnecessarily when non-top Document is detached.
+ https://bugs.webkit.org/show_bug.cgi?id=68636
+
+ Reviewed by Chris Fleizach.
+
+ Test: accessibility/deleting-iframe-destroys-axcache.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::attach):
+ (WebCore::Document::detach):
+
+2011-09-27 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96108, r96111, r96113, and r96116.
+ http://trac.webkit.org/changeset/96108
+ http://trac.webkit.org/changeset/96111
+ http://trac.webkit.org/changeset/96113
+ http://trac.webkit.org/changeset/96116
+ https://bugs.webkit.org/show_bug.cgi?id=68913
+
+ Wait for working Qt5 (Requested by ossy on #webkit).
+
+ * WebCore.pri:
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+
+2011-09-27 Csaba Osztrogonác <ossy@webkit.org>
+
+ Fix ENABLE(SQL_DATABASE)=0 build after r95919
+ https://bugs.webkit.org/show_bug.cgi?id=68902
+
+ r95919 enabled OFFLINE_WEB_APPLICATIONS by default and
+ it needs SQLite stuff even if ENABLE_SQL_DATABASE=0.
+
+ Reviewed by Adam Barth.
+
+ * platform/sql/SQLiteAuthorizer.cpp:
+ * platform/sql/SQLiteDatabase.cpp:
+ * platform/sql/SQLiteFileSystem.cpp:
+ * platform/sql/SQLiteStatement.cpp:
+ * platform/sql/SQLiteTransaction.cpp:
+ * storage/DatabaseAuthorizer.cpp:
+
+2011-09-27 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Crash because CSSPrimitiveValue::computeLengthDouble assumes fontMetrics are available
+ https://bugs.webkit.org/show_bug.cgi?id=66291
+
+ Reviewed by Darin Adler.
+
+ Test: fast/canvas/crash-set-font.html
+
+ This is Yet Another Missing updateFont (similar to bug 57756 and likely others). Here the issue is that
+ applying one of the font properties could mutate the parent style's font if m_parentStyle == m_style.
+ We would then query the newly created font when applying CSSPropertyFontSize, which has no font fallback
+ list as Font::update was never called.
+
+ The right fix would be to refactor of how we handle fonts to avoid such manual updates (see bug 62390).
+ Until this happens, it is better not to crash.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty): Added updateFont() here as the fonts could have been
+ mutated by the previous property change. Also added a comment explaining why it is safe to do it
+ this way.
+
+2011-09-27 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Texmap] Code cleanup: remove unused boundingRect/visibleRect calculations
+ https://bugs.webkit.org/show_bug.cgi?id=68897
+
+ Reviewed by Andreas Kling.
+
+ No new functionality so no new tests.
+
+ * platform/graphics/texmap/TextureMapperNode.cpp:
+ (WebCore::TextureMapperNode::computeAllTransforms):
+ (WebCore::TextureMapperNode::computeTiles):
+ (WebCore::TextureMapperNode::syncCompositingState):
+ * platform/graphics/texmap/TextureMapperNode.h:
+
+2011-09-27 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Texmap][Qt] Refactor texture-upload to allow direct chunk update
+ https://bugs.webkit.org/show_bug.cgi?id=68808
+
+ Add a function to BitmapTexture for direct pixel updates.
+ Modify BitmapTextureGL::endPaint to use that function. Since the BGRA
+ to RGBA swizzling is done inside that function, there's no need for the
+ RGBA32PremultipliedBuffer class to contain such function. Also,
+ RGBA32PremultipliedBuffer was renamed to BGRA32PremultipliedBuffer, correcting
+ an old mistake.
+
+ Reviewed by Andreas Kling.
+
+ No new tests. Existing tests in LayoutTests/compositing test this.
+
+ * platform/graphics/opengl/TextureMapperGL.cpp:
+ (WebCore::BitmapTextureGL::beginPaint):
+ (WebCore::BitmapTextureGL::endPaint):
+ (WebCore::swizzleBGRAToRGBA):
+ (WebCore::BitmapTextureGL::updateContents):
+ * platform/graphics/opengl/TextureMapperGL.h:
+ (WebCore::BGRA32PremultimpliedBuffer::~BGRA32PremultimpliedBuffer):
+ * platform/graphics/qt/TextureMapperQt.cpp:
+ (WebCore::BitmapTextureQt::updateContents):
+ (WebCore::BGRA32PremultimpliedBufferQt::data):
+ (WebCore::BGRA32PremultimpliedBuffer::create):
+ * platform/graphics/qt/TextureMapperQt.h:
+ * platform/graphics/texmap/TextureMapper.h:
+
+2011-09-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
+
+ QWidget and friends now live in the QtWidgets library. We update
+ includes in implementation files and private headers to us the
+ non-module-prefixed path, and leave the lookup for the include
+ path. For public headers we have to ifdef the includes as the
+ user might now have the modules we need in his QT config.
+
+ Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
+ have to update our code and use windowHandle() for setting the
+ parent relationships.
+
+ https://bugs.webkit.org/show_bug.cgi?id=68687
+
+ Reviewed by Andreas Kling.
+
+ * WebCore.pri:
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+
+2011-09-27 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: split DOM.attributesUpdated into attributeModified and attributeRemoved.
+ Send attribute name and value within the event.
+ https://bugs.webkit.org/show_bug.cgi?id=68613
+
+ Reviewed by Yury Semikhatsky.
+
+ * dom/Element.cpp:
+ (WebCore::Element::setAttribute):
+ (WebCore::Element::removeAttribute):
+ * inspector/Inspector.draft-01.json:
+ * inspector/Inspector.json:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::didModifyDOMAttr):
+ (WebCore::InspectorDOMAgent::didRemoveDOMAttr):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
+ (WebCore::InspectorInstrumentation::didRemoveDOMAttrImpl):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::didModifyDOMAttr):
+ (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
+ * inspector/front-end/DOMAgent.js:
+ (WebInspector.DOMNode.prototype._addAttribute):
+ (WebInspector.DOMNode.prototype._setAttribute):
+ (WebInspector.DOMNode.prototype._removeAttribute):
+ (WebInspector.DOMAgent.prototype._attributeModified):
+ (WebInspector.DOMAgent.prototype._attributeRemoved):
+ (WebInspector.DOMAgent.prototype._inlineStyleInvalidated):
+ (WebInspector.DOMAgent.prototype._loadNodeAttributes):
+ (WebInspector.DOMDispatcher.prototype.attributeModified):
+ (WebInspector.DOMDispatcher.prototype.attributeRemoved):
+ * inspector/front-end/ElementsPanel.js:
+ (WebInspector.ElementsPanel):
+ (WebInspector.ElementsPanel.prototype._attributesUpdated):
+ * inspector/front-end/MetricsSidebarPane.js:
+ (WebInspector.MetricsSidebarPane):
+ (WebInspector.MetricsSidebarPane.prototype._attributesUpdated):
+ * inspector/front-end/StylesSidebarPane.js:
+ (WebInspector.StylesSidebarPane):
+ (WebInspector.StylesSidebarPane.prototype._attributesModified):
+ (WebInspector.StylesSidebarPane.prototype._attributesRemoved):
+ (WebInspector.StylesSidebarPane.prototype._styleInvalidated):
+ (WebInspector.StylePropertyTreeElement.prototype.event):
+ (WebInspector.StylePropertyTreeElement.prototype):
+ * inspector/validate-protocol-compatibility:
+
+2011-09-27 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r96070 and r96075.
+ http://trac.webkit.org/changeset/96070
+ http://trac.webkit.org/changeset/96075
+ https://bugs.webkit.org/show_bug.cgi?id=68893
+
+ WK2 tests started crashing after r96070 for SL and Qt
+ (Requested by torarne on #webkit).
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::updateScrollCorner):
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::setHasHorizontalScrollbar):
+ (WebCore::ScrollView::setHasVerticalScrollbar):
+ (WebCore::ScrollView::updateScrollbars):
+ * platform/ScrollableArea.cpp:
+ (WebCore::ScrollableArea::invalidateScrollCorner):
+ * platform/ScrollableArea.h:
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::destroyRootLayer):
+ * rendering/RenderScrollbarPart.cpp:
+ (WebCore::RenderScrollbarPart::imageChanged):
+
+2011-09-27 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: JS exception upon clicking on "Word Wrap" checkbox in Settings screen
+ https://bugs.webkit.org/show_bug.cgi?id=68888
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/ElementsPanel.js:
+ (WebInspector.ElementsPanel.prototype._domWordWrapSettingChanged):
+
+2011-09-21 Pavel Podivilov <podivilov@chromium.org>
+
+ Web Inspector: migrate RawSourceCode clients to SourceMapping class.
+ https://bugs.webkit.org/show_bug.cgi?id=68524
+
+ Clients should use uiSourceCode(), rawLocationToUILocation(), uiLocationToRawLocation() methods of SourceMapping class.
+ Initially, RawSourceCode may not have associated SourceMapping, so it is natural to extract this methods and associated state to a separate class.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/BreakpointManager.js:
+ (WebInspector.BreakpointManager.prototype._materializeBreakpoint):
+ (WebInspector.BreakpointManager.prototype._breakpointDebuggerLocationChanged):
+ * inspector/front-end/DebuggerPresentationModel.js:
+ (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
+ (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
+ (WebInspector.DebuggerPresentationModel.prototype._addScript):
+ (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
+ (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
+ (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
+ (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
+ (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
+ (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
+ (WebInspector.PresentationCallFrame.prototype.get url):
+ (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
+ (WebInspector.PresentationCallFrame.prototype.sourceLine):
+ (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
+ (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
+ * inspector/front-end/SourceFile.js:
+ (WebInspector.RawSourceCode.prototype.get sourceMapping):
+
+2011-09-27 Vineet Chaudhary <vineet.chaudhary@motorola.com>
+
+ wrap attribute of textarea element cannot be accessed by JavaScript.
+ https://bugs.webkit.org/show_bug.cgi?id=68592
+
+ Reviewed by Kent Tamura.
+
+ Added JS interface for wrap attribute to HTMLTextAreaElement.idl.
+
+ Test: fast/forms/textarea-wrap-attribute.html
+
+ * html/HTMLTextAreaElement.idl:
+
+2011-09-27 Xan Lopez <xlopez@igalia.com>
+
+ [GTK] Add compatibility methods for DOM bindings
+ https://bugs.webkit.org/show_bug.cgi?id=68884
+
+ Reviewed by Philippe Normand.
+
+ Add compatibility methods for our DOM bindings.
+
+ * bindings/gobject/WebKitDOMCustom.cpp:
+ (webkit_dom_blob_slice): alias to the new method name.
+ (webkit_dom_html_form_element_dispatch_form_change): this was
+ removed from WebCore, so just print a warning about it.
+ (webkit_dom_html_form_element_dispatch_form_input): ditto.
+ * bindings/gobject/WebKitDOMCustom.h:
+
+2011-09-27 Ryosuke Niwa <rniwa@webkit.org>
+
+ Encapsulate m_firstNodeInserted and m_lastLeafInserted in node insertion logic
+ https://bugs.webkit.org/show_bug.cgi?id=68875
+
+ Reviewed by Kent Tamura.
+
+ Added InsertedNode class inside ReplaceSelection to encapsulate m_firstNodeInserted and m_lastLeafInserted.
+ Deployed it in removeRedundantStylesAndKeepStyleSpanInline, doApply, and insertAsListItems of ReplaceSelectionCommand.
+
+ * editing/DeleteSelectionCommand.cpp:
+ (WebCore::DeleteSelectionCommand::removeNode):
+ (WebCore::DeleteSelectionCommand::handleGeneralDelete):
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
+ (WebCore::ReplaceSelectionCommand::doApply):
+ (WebCore::ReplaceSelectionCommand::insertAsListItems):
+ * editing/ReplaceSelectionCommand.h:
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::respondToNodeInsertion):
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::firstNodeInserted):
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::lastLeafInserted):
+ (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
+ * editing/htmlediting.cpp:
+ (WebCore::updatePositionForNodeRemoval): Moved from DeleteSelectionCommand.cpp.
+ * editing/htmlediting.h:
+
+2011-09-27 Arun Patole <bmf834@motorola.com>
+
+ Audio element doesn't emit the 'playing' event every time it starts playing, after it has finished playing.
+ https://bugs.webkit.org/show_bug.cgi?id=60972
+
+ Reviewed by Philippe Normand.
+
+ The paused attribute should be set to true and the media element should emit a 'paused' at the end of playback.
+ WHATWG revision r6562: http://html5.org/tools/web-apps-tracker?from=6561&to=6562
+
+ Test: media/media-element-play-after-eos.html
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): set m_paused to true and schedule 'pause' event when playback ended.
+
+2011-09-27 Rakesh KN <rakesh.kn@motorola.com>
+
+ <input> with autofocus doesn't lose focus when it has a certain onblur listener
+ https://bugs.webkit.org/show_bug.cgi?id=68513
+
+ Reviewed by Kent Tamura.
+
+ Test: fast/forms/autofocus-focus-only-once.html
+
+ These changes make sure that an element is focused only once when autofocus attribute is used.
+
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::HTMLFormControlElement):
+ (WebCore::shouldAutofocus):
+ (WebCore::HTMLFormControlElement::attach):
+ * html/HTMLFormControlElement.h:
+ (WebCore::HTMLFormControlElement::hasAutofocused):
+ (WebCore::HTMLFormControlElement::setAutofocused):
+
+2011-09-26 Kentaro Hara <haraken@chromium.org>
+
+ Implement PopStateEvent.state with SerializedScriptValue and ScriptValue
+ https://bugs.webkit.org/show_bug.cgi?id=68345
+
+ Reviewed by Adam Barth.
+
+ Previously, the following test cases fail or crash:
+
+ - shouldBe("new PopStateEvent('eventType', { state: object1 }).state", "object1") -> FAIL
+ - new PopStateEvent('eventType', { state: document }).state -> CRASH in DRT
+
+ This is because PopStateEvent.state is implemented not as ScriptValue but as SerializedScriptValue.
+ However, we cannot simply change the type of PopStateEvent.state to ScriptValue,
+ since PopStateEvent can be constructed in the context that does not know ScriptValue.
+ For example, Document.cpp calls PopStateEvent::create() with SerializedScriptValue
+ popped from HistoryItem, but we cannot deserialize the SerializedScriptValue into
+ the corresponding ScriptValue here because the deserialization requires ExecState.
+ In other words, although we want to store PopStateEvent.state by ScriptValue internally,
+ PopStateEvent still needs to provide an API to construct it with SerializedScriptValue.
+ With these observations, this patch makes the following changes:
+
+ - If PopStateEvent is constructed with ScriptValue, it is stored as ScriptValue internally.
+ When PopStateEvent.state is called, the ScriptValue is returned.
+ - If PopStateEvent is constructed with SerializedScriptValue, it is stored as
+ SerializedScriptValue internally (since we cannot deserialize it into ScriptValue
+ at this point). When PopStateEvent.state is called, the SerializedScriptValue is
+ deserialized into the corresponding ScriptValue, and the ScriptValue is returned.
+
+ Tests: fast/events/constructors/pop-state-event-constructor.html
+ fast/events/fire-popstate-event.html
+
+ * GNUmakefile.list.am: Added JSPopStateEventCustom.cpp.
+ * UseJSC.cmake: Ditto.
+ * WebCore.gypi: Ditto.
+ * WebCore.pro: Ditto.
+ * WebCore.xcodeproj/project.pbxproj: Ditto.
+ * bindings/js/JSBindingsAllInOne.cpp: Ditto.
+ * bindings/js/JSPopStateEventCustom.cpp:
+ (WebCore::JSPopStateEvent::state): Custom getter for PopStateEvent.state.
+ * bindings/v8/custom/V8PopStateEventCustom.cpp:
+ (WebCore::V8PopStateEvent::stateAccessorGetter): Custom getter for PopStateEvent.state.
+ * dom/PopStateEvent.cpp:
+ (WebCore::PopStateEventInit::PopStateEventInit): Added initialization code for PopStateEvent.m_state.
+ (WebCore::PopStateEvent::PopStateEvent): Ditto.
+ (WebCore::PopStateEvent::create): Ditto.
+ (WebCore::PopStateEvent::initPopStateEvent): Ditto.
+ * dom/PopStateEvent.h:
+ (WebCore::PopStateEvent::serializedState): Getter.
+ (WebCore::PopStateEvent::state): Getter.
+ * dom/PopStateEvent.idl: Change the type of 'stateArg' and 'state' to DOMObject. Added [CustomGetter] to 'state'.
+
+2011-09-09 Simon Fraser <simon.fraser@apple.com>
+
+ Pixel result shows that compositing/iframes/repaint-after-losing-scrollbars.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=67858
+
+ Reviewed by Darin Adler.
+
+ When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
+ the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
+
+ Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
+ on scrollbar creation appears to happen via updating the scrollbar style.
+
+ Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
+ stale scrollbars when run manually, even though the green squares are missing from the
+ pixel result (bug 67878).
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
+ (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
+ (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
+ compute the scroll corner rect while we still have scrollbars, and then invalidate it
+ explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
+ rect.)
+ * platform/ScrollableArea.cpp:
+ (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
+ compute it in the case where the scrollbars are going away.
+ * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
+ invalidateScrollbar().
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
+ * rendering/RenderScrollbarPart.cpp: Ditto.
+ (WebCore::RenderScrollbarPart::imageChanged): Ditto.
+
+2011-09-09 Simon Fraser <simon.fraser@apple.com>
+
+ Translucent scrollbars on composited layers render incorrectly
+ https://bugs.webkit.org/show_bug.cgi?id=58515
+
+ Reviewed by Sam Weinig.
+
+ Scrollbars in composited elements were getting drawn twice,
+ because r41203 moved the call to paintOverflowControls() out of
+ RenderLayer::paintLayer(), but forgot to change RenderLayerBacking::paintIntoLayer().
+
+ Test: compositing/scrollbar-painting.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::paintIntoLayer):
+
+2011-09-26 Nat Duca <nduca@chromium.org>
+
+ [chromium] Make CCThreadProxy draw
+ https://bugs.webkit.org/show_bug.cgi?id=67417
+
+ Update the CCThreadProxy to correctly implement the CCProxy
+ interface, do all the right committing and updating steps, and
+ draw a picture on the screen.
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/IntRect.h:
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::~LayerRendererChromium):
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
+ (WebCore::CCHeadsUpDisplay::enabled):
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp:
+ (WebCore::CCLayerImpl::CCLayerImpl):
+ (WebCore::CCLayerImpl::~CCLayerImpl):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::commitTo):
+ (WebCore::CCLayerTreeHost::commitComplete):
+ (WebCore::CCLayerTreeHost::setNeedsRedraw):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
+ (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::finishAllRendering):
+ (WebCore::CCSingleThreadProxy::setNeedsCommit):
+ (WebCore::CCSingleThreadProxy::commitIfNeeded):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::CCThreadProxy):
+ (WebCore::CCThreadProxy::~CCThreadProxy):
+ (WebCore::CCThreadProxy::compositeAndReadback):
+ (WebCore::CCThreadProxy::drawLayersAndReadbackOnCCThread):
+ (WebCore::CCThreadProxy::finishAllRendering):
+ (WebCore::CCThreadProxy::isStarted):
+ (WebCore::CCThreadProxy::setNeedsCommit):
+ (WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
+ (WebCore::CCThreadProxy::setNeedsRedraw):
+ (WebCore::CCThreadProxy::start):
+ (WebCore::CCThreadProxy::stop):
+ (WebCore::CCThreadProxy::finishAllRenderingOnCCThread):
+ (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
+ (WebCore::CCThreadProxy::beginFrameAndCommit):
+ (WebCore::CCThreadProxy::commitOnCCThread):
+ (WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
+ (WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread):
+ (WebCore::CCThreadProxy::drawLayersOnCCThread):
+ (WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+
+2011-09-26 Adam Klein <adamk@chromium.org>
+
+ [MutationObservers] implement MutationRecord
+ https://bugs.webkit.org/show_bug.cgi?id=68824
+
+ Reviewed by Darin Adler.
+
+ Implements MutationRecord as specified in the thread at
+ http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html,
+ including some minor naming changes from the original proposal.
+
+ This is a small part of the MutationObserver API, see
+ https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug covering
+ this feature.
+
+ No new tests as this isn't yet exposed to the platform.
+
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.list.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/MutationRecord.cpp: Added.
+ (WebCore::MutationRecord::createChildList):
+ (WebCore::MutationRecord::createAttributes):
+ (WebCore::MutationRecord::createCharacterData):
+ (WebCore::MutationRecord::MutationRecord):
+ (WebCore::MutationRecord::~MutationRecord):
+ * dom/MutationRecord.h: Added.
+ (WebCore::MutationRecord::target):
+ (WebCore::MutationRecord::addedNodes):
+ (WebCore::MutationRecord::removedNodes):
+ (WebCore::MutationRecord::previousSibling):
+ (WebCore::MutationRecord::nextSibling):
+ (WebCore::MutationRecord::attributeName):
+ (WebCore::MutationRecord::attributeNamespace):
+ (WebCore::MutationRecord::oldValue):
+ (WebCore::MutationRecord::setOldValue):
+ * dom/MutationRecord.idl: Added.
+
+2011-09-26 Kentaro Hara <haraken@chromium.org>
+
+ Implement a CloseEvent constructor for V8
+ https://bugs.webkit.org/show_bug.cgi?id=68793
+
+ Reviewed by Adam Barth.
+
+ Test: fast/events/constructors/close-event-constructor.html
+
+ * bindings/v8/OptionsObject.cpp:
+ (WebCore::OptionsObject::getKey): Just removed an extra space.
+ (WebCore::OptionsObject::getKeyValue): Returns an unsigned short value corresponding to the given key.
+ * bindings/v8/OptionsObject.h:
+ * bindings/v8/custom/V8EventConstructors.cpp: Added the CloseEvent constructor.
+ * websockets/CloseEvent.idl: Added a 'V8CustomConstructor' attribute.
+
+2011-09-26 Nate Chapin <japhet@chromium.org>
+
+ Clean up CachedResource::load(). Collapse its
+ logic into a single callsite, taking just a
+ CachedResourceLoader and a ResourceLoaderOptions.
+
+ 1. Its 'incremental' parameter is redundant.
+ 2. With 'incremental' removed, the SecurityCheckPolicy is the only
+ parameter difference between the CachedResource::load() variants.
+ Making it a part of ResourceLoaderOptions removes yet another random
+ enum that is passed around individually.
+ 3. We currently have to call setResourceLoaderOptions() before load() on a
+ new CachedResource, so we should just take the ResourceLoaderOptions in load().
+
+ https://bugs.webkit.org/show_bug.cgi?id=67443
+
+ Reviewed by Antti Koivisto.
+
+ No new tests, refactor only.
+
+ * loader/DocumentThreadableLoader.cpp:
+ * loader/FrameLoaderTypes.h: Move SecurityCheckPolicy to ResourceLoaderOptions.h.
+ * loader/MainResourceLoader.cpp:
+ * loader/NetscapePlugInStreamLoader.cpp:
+ * loader/ResourceLoadScheduler.cpp:
+ * loader/ResourceLoadScheduler.h:
+ * loader/ResourceLoader.cpp: Enforce SecurityCheckPolicy here instead of SubresourceLoader.
+ * loader/ResourceLoaderOptions.h: Store SecurityCheckPolicy on ResourceLoaderOptions.
+ * loader/SubresourceLoader.cpp:
+ * loader/SubresourceLoader.h:
+ * loader/cache/CachedFont.cpp:
+ * loader/cache/CachedFont.h:
+ * loader/cache/CachedImage.cpp:
+ * loader/cache/CachedImage.h:
+ * loader/cache/CachedResource.cpp:
+ * loader/cache/CachedResource.h:
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::defaultCachedResourceOptions): Define the default ResourceLoaderOptions for
+ CachedResource loads here instead of as a default parameter on requestResource().
+ * loader/cache/CachedResourceLoader.h:
+ * loader/cache/CachedResourceRequest.cpp:
+ (WebCore::CachedResourceRequest::didReceiveData): Remove m_incremental, since its purpose
+ is already enforced in the data() implementation of every CachedResource that doesn't want
+ incremental loads.
+ * loader/cache/CachedResourceRequest.h:
+
+2011-09-26 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Second half of IDBFactory.getDatabaseNames implementation
+ https://bugs.webkit.org/show_bug.cgi?id=68818
+
+ Reviewed by Tony Chang.
+
+ Test: storage/indexeddb/factory-basics.html
+
+ Adds ability to enumerate IndexedDB databases within an origin.
+
+ * bindings/v8/custom/V8IDBAnyCustom.cpp:
+ (WebCore::toV8):
+ * storage/IDBAny.cpp:
+ (WebCore::IDBAny::domStringList):
+ (WebCore::IDBAny::set):
+ * storage/IDBAny.h:
+ * storage/IDBBackingStore.h:
+ * storage/IDBCallbacks.h:
+ * storage/IDBFactory.cpp:
+ (WebCore::IDBFactory::getDatabaseNames):
+ * storage/IDBFactory.h:
+ * storage/IDBFactory.idl:
+ * storage/IDBFactoryBackendImpl.cpp:
+ (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
+ (WebCore::IDBFactoryBackendImpl::open):
+ (WebCore::IDBFactoryBackendImpl::openBackingStore):
+ * storage/IDBFactoryBackendImpl.h:
+ * storage/IDBFactoryBackendInterface.h:
+ * storage/IDBLevelDBBackingStore.cpp:
+ (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
+ (WebCore::IDBLevelDBBackingStore::getObjectStores):
+ (WebCore::IDBLevelDBBackingStore::getIndexes):
+ * storage/IDBLevelDBBackingStore.h:
+ * storage/IDBLevelDBCoding.cpp:
+ (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeMinKeyForOrigin):
+ (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeStopKeyForOrigin):
+ * storage/IDBLevelDBCoding.h:
+ * storage/IDBRequest.cpp:
+ (WebCore::IDBRequest::onSuccess):
+ * storage/IDBRequest.h:
+ * storage/IDBSQLiteBackingStore.cpp:
+ (WebCore::IDBSQLiteBackingStore::getDatabaseNames):
+ * storage/IDBSQLiteBackingStore.h:
+
+2011-09-26 Tim Horton <timothy_horton@apple.com>
+
+ <animateColor> applied to filtered ellipse does not update
+ https://bugs.webkit.org/show_bug.cgi?id=68457
+ <rdar://problem/10154777>
+
+ Reviewed by Darin Adler.
+
+ Invalidate the filter's cache when style changes take place so that style changes are respected.
+
+ Test: svg/filters/animate-fill.svg
+
+ * rendering/svg/SVGResourcesCache.cpp:
+ (WebCore::SVGResourcesCache::clientStyleChanged):
+ (WebCore::SVGResourcesCache::clientUpdatedFromElement):
+
+2011-09-26 Max Perepelitsyn <pph34r@gmail.com>
+
+ Set but unused variables cleanup in v8 bindings (gcc 4.6)
+ https://bugs.webkit.org/show_bug.cgi?id=68079
+
+ Reviewed by Adam Barth.
+
+ Test: http/tests/websocket/tests/hybi/send-object-tostring-check.html
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
+ (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::ConfigureV8TestObjTemplate):
+ * bindings/v8/WorkerScriptDebugServer.cpp:
+ (WebCore::WorkerScriptDebugServer::addListener):
+ * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
+ (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
+ * bindings/v8/custom/V8WebSocketCustom.cpp:
+ (WebCore::V8WebSocket::sendCallback):
+
+2011-09-26 Tony Chang <tony@chromium.org>
+
+ switch the initial value of flex-order to 0
+ https://bugs.webkit.org/show_bug.cgi?id=68820
+
+ The spec changed from having an initial value of 1 to 0.
+
+ Reviewed by Ojan Vafai.
+
+ * rendering/style/RenderStyle.h:
+ (WebCore::InheritedFlags::initialFlexOrder):
+
+2011-09-26 Chris Rogers <crogers@google.com>
+
+ OfflineAudioDestinationNode must wait for thread completion in uninitialize()
+ https://bugs.webkit.org/show_bug.cgi?id=68725
+
+ Reviewed by Kenneth Russell.
+
+ No new tests. This fixes internal implementation details.
+
+ * webaudio/OfflineAudioDestinationNode.cpp:
+ (WebCore::OfflineAudioDestinationNode::uninitialize):
+
+2011-09-26 Xan Lopez <xlopez@igalia.com>
+
+ [GTK] Do not ignore 'Replaceable' attributes in the DOM bindings
+ https://bugs.webkit.org/show_bug.cgi?id=68837
+
+ Reviewed by Martin Robinson.
+
+ * bindings/scripts/CodeGeneratorGObject.pm: add getters (but not
+ setters) for 'Replaceable' attributes. Punt for the future
+ actually making them settable, since it seems non trivial.
+
+2011-09-26 Ryosuke Niwa <rniwa@webkit.org>
+
+ Leopard build fix.
+
+ * testing/Internals.cpp:
+ (WebCore::Internals::setZoomAnimatorTransform):
+
+2011-09-26 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Null key path gets stored as empty string key path
+ https://bugs.webkit.org/show_bug.cgi?id=68726
+
+ Reviewed by Tony Chang.
+
+ Store additional flag to indicate if object store key path
+ is null vs. empty. Added additional runtime tests for integrity
+ of object store metadata.
+
+ * storage/IDBLevelDBBackingStore.cpp:
+ (WebCore::checkObjectStoreAndMetaDataType):
+ (WebCore::IDBLevelDBBackingStore::getObjectStores):
+ (WebCore::IDBLevelDBBackingStore::createObjectStore):
+ * storage/IDBLevelDBCoding.cpp:
+
+2011-09-26 John Bauman <jbauman@chromium.org>
+
+ Fix nonpremultiplied webgl toDataURL to jpeg
+ https://bugs.webkit.org/show_bug.cgi?id=68366
+
+ The canvas spec says that toDataURL to formats without an alpha must
+ be "composited onto a solid black background using the source-over
+ operator." Do that.
+
+ Reviewed by Kenneth Russell.
+
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ (WebCore::CGImageToDataURL):
+ (WebCore::ImageBuffer::toDataURL):
+ (WebCore::ImageDataToDataURL):
+ * platform/image-encoders/skia/JPEGImageEncoder.cpp:
+ (WebCore::RGBAtoRGB):
+
+2011-09-26 Raphael Kubo da Costa <kubo@profusion.mobi>
+
+ [CMake] Remove FindFreetype.cmake
+ https://bugs.webkit.org/show_bug.cgi?id=68778
+
+ Reviewed by Adam Barth.
+
+ CMake has provided its own FindFreetype.cmake forever, so there is no
+ need to have another implementation in WebKit.
+
+ No new tests, just a buildsystem change.
+
+ * CMakeListsEfl.txt: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS} instead of
+ Freetype_{LIBRARIES,INCLUDE_DIRS}.
+
+2011-09-26 Alexei Svitkine <asvitkine@chromium.org>
+
+ Fix full-page rubber band overhang appearing when gesturing during a slow page load.
+ https://bugs.webkit.org/show_bug.cgi?id=68568
+
+ Chromium bug: http://code.google.com/p/chromium/issues/detail?id=97243
+
+ (This also happens on Safari.)
+
+ The problem was that ScrollView::overhangAmount() was returning a full-page overhang due to contentsSize() being 0 briefly during a page load, which was then getting used by ScrollAnimatorChromiumMac.mm to update the overhang on a gesture event. This change makes the relevant logic not return an overhang if the contentsSize() is empty.
+
+ Reviewed by Adam Barth.
+
+ No new tests, since this is highly timing-related.
+
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::overhangAmount):
+ (WebCore::ScrollView::wheelEvent):
+
+2011-09-26 W. James MacLean <wjmaclean@chromium.org>
+
+ [chromium] Revise zoom animator backend to use full transform instead of just scale.
+ https://bugs.webkit.org/show_bug.cgi?id=68535
+
+ Reviewed by Kenneth Russell.
+
+ * page/Settings.cpp:
+ (WebCore::Settings::Settings):
+ * page/Settings.h:
+ (WebCore::Settings::setZoomAnimatorScale):
+ (WebCore::Settings::zoomAnimatorScale):
+ (WebCore::Settings::setZoomAnimatorPosition):
+ (WebCore::Settings::zoomAnimatorPosX):
+ (WebCore::Settings::zoomAnimatorPosY):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::LayerRendererChromium):
+ (WebCore::LayerRendererChromium::drawLayersInternal):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (WebCore::LayerRendererChromium::setZoomAnimatorTransform):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::commitTo):
+ (WebCore::CCLayerTreeHost::setZoomAnimatorTransform):
+ (WebCore::CCLayerTreeHost::updateLayers):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::setZoomAnimatorTransform):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::setZoomAnimatorTransform):
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
+2011-09-26 Dan Bernstein <mitz@apple.com>
+
+ REGRESSION (r95926) Assert firing in svg/clip-path/clip-path-on-svg.svg
+ https://bugs.webkit.org/show_bug.cgi?id=68819
+
+ Reviewed by Dave Hyatt.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::scheduleRelayout): Revert to using view() instead of the RenderView**
+ parameter of isRooted, since only the former returns 0 when the document is detached.
+
+2011-09-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: XMLHttpRequest console logging messages should link to network panel when possible.
+ https://bugs.webkit.org/show_bug.cgi?id=67399
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/ConsoleMessage.cpp:
+ (WebCore::ConsoleMessage::ConsoleMessage):
+ * inspector/ConsoleMessage.h:
+ * inspector/InspectorConsoleAgent.cpp:
+ (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
+ * inspector/InspectorConsoleAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
+ * inspector/front-end/ConsoleMessage.js:
+ (WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
+ (WebInspector.ConsoleMessage.prototype._formatMessage):
+ * inspector/front-end/ResourcesPanel.js:
+ (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
+ * inspector/front-end/inspector.js:
+ (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
+ (WebInspector.linkifyStringAsFragment):
+
+2011-09-26 Jer Noble <jer.noble@apple.com>
+
+ White flash when entering full-screen using element.webkitRequestFullScreen()
+ https://bugs.webkit.org/show_bug.cgi?id=68481
+
+ Reviewed by Simon Fraser.
+
+ No new tests; covered by existing full screen tests.
+
+ During an animation, renderers may try to paint into the FullScreenRenderer's
+ GraphicsLayer, and an optimization we previously added for the FullScreenRenderer's
+ background will cause these paints to fail. Remove this optimization in
+ containsPaintedContent, and taking non-composited elements into full screen will
+ animate correctly.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::containsPaintedContent):
+
+2011-09-26 Mihai Parparita <mihaip@chromium.org>
+
+ Unreviewed, rolling out r95960.
+ http://trac.webkit.org/changeset/95960
+ https://bugs.webkit.org/show_bug.cgi?id=58608
+
+ Significantly changes table border rendering
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::drawLineForBoxSide):
+
+2011-09-23 Simon Fraser <simon.fraser@apple.com>
+
+ Repaint tests don't work in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=68453
+
+ Reviewed by Sam Weinig.
+
+ Have FrameView keep track of repaint rects when asked to, and
+ expose this set of repaint rects via private WebKit API for later
+ use by DumpRenderTree.
+
+ The repaint rects are in WebView coordinates, so we have to
+ unapply the scroll offset.
+
+ * WebCore.exp.in:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::FrameView):
+ (WebCore::FrameView::reset):
+ (WebCore::FrameView::repaintContentRectangle):
+ (WebCore::FrameView::setTracksRepaints):
+ * page/FrameView.h:
+ (WebCore::FrameView::isTrackingRepaints):
+ (WebCore::FrameView::resetTrackedRepaints):
+ (WebCore::FrameView::trackedRepaintRects):
+
+2011-09-26 Antti Koivisto <antti@apple.com>
+
+ Optimize matching of common pseudo classes
+ https://bugs.webkit.org/show_bug.cgi?id=68633
+
+ Reviewed by Dave Hyatt, Darin Adler, Dimitri Glazkov.
+
+ :link, :visited and :focus are quite common. They often used as univeral selectors (including in our
+ default stylesheet) so we try to match them for all elements in the document. They take always the
+ slow matching path. In addition we match link styles twice due to visited link pseudo style generation
+ so the overhead is doubled. As a result substantial portion of our style matching time is spent
+ dealing with these pseudo classes.
+
+ This patch adds new lists to RuleSet for common pseudo class rules. The rules on the lists are only checked
+ if the element has approprate type and stat. ases where the rightmost pseudo class can then be rejected immediately.
+ We can also enable the fast path checking for the rest of the selector in many cases.
+
+ This seems to be >30% progression in selector matching performance with typical style sheets. It saves ~0.9s
+ when loading the full HTML5 spec.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
+ (WebCore::RuleSet::idRules):
+ (WebCore::RuleSet::classRules):
+ (WebCore::RuleSet::tagRules):
+ (WebCore::RuleSet::shadowPseudoElementRules):
+ (WebCore::RuleSet::linkPseudoClassRules):
+ (WebCore::RuleSet::visitedPseudoClassRules):
+ (WebCore::RuleSet::focusPseudoClassRules):
+ (WebCore::RuleSet::universalRules):
+ (WebCore::RuleSet::pageRules):
+
+ Add a new lists, some stylistic renamings.
+
+ (WebCore::CSSStyleSelector::matchRules):
+
+ New link and focus checks.
+
+ (WebCore::CSSStyleSelector::matchRulesForList):
+ (WebCore::CSSStyleSelector::checkSelector):
+
+ Inline the rightmost selector tag checking, skip if unnecessary.
+
+ (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
+
+ Common pseudo classes now match based on early filtering (though it is not a hash in this case).
+
+ (WebCore::RuleData::RuleData):
+ (WebCore::RuleSet::~RuleSet):
+ (WebCore::RuleSet::addRule):
+
+ Sort pseudo classes to new lists.
+
+ (WebCore::RuleSet::collectFeatures):
+ (WebCore::RuleSet::shrinkToFit):
+ (WebCore::CSSStyleSelector::matchPageRules):
+ * css/SelectorChecker.cpp:
+ (WebCore::SelectorChecker::checkSelector):
+
+ Adopt to expanded fast path (this is used by querySelectorAll).
+
+ (WebCore::SelectorChecker::fastCheckRightmostSelector):
+ (WebCore::SelectorChecker::fastCheckSelector):
+
+ Rightmost selector is now checked differently than the rest. RuleSet based selection in CSSStyleSelector
+ is equivalent to fastCheckRightmostSelector().
+
+ (WebCore::isFastCheckableRelation):
+ (WebCore::isFastCheckableMatch):
+ (WebCore::isFastCheckableRightmostSelector):
+ (WebCore::SelectorChecker::isFastCheckableSelector):
+ (WebCore::SelectorChecker::checkOneSelector):
+ (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
+ (WebCore::SelectorChecker::isFrameFocused):
+ * css/SelectorChecker.h:
+ (WebCore::SelectorChecker::isCommonPseudoClassSelector):
+ (WebCore::SelectorChecker::linkMatchesVisitedPseudoClass):
+ (WebCore::SelectorChecker::matchesFocusPseudoClass):
+ (WebCore::SelectorChecker::tagMatches):
+
+ Refactor a bunch of shared checks into functions.
+
+2011-09-12 Ryosuke Niwa <rniwa@webkit.org>
+
+ REGRESSION(r74971): Selection doesn't work correctly in BiDi Text
+ https://bugs.webkit.org/show_bug.cgi?id=57340
+
+ Reviewed by Eric Seidel.
+
+ This patch adds the end point adjustment mechanism at bidi boundaries similar to the one NSTextView implements.
+
+ To understand the problem, suppose we have strong RTL letters "ABC" in a LTR block (visually laid out as CBA).
+
+ Per NSTextView convention, logical offsets between each letter is placed as (0)C(2)B(1)A(3). In other words,
+ placing the caret visually on the left of CBA yields the position inside the text node of "ABC" at offset 0.
+ Likewise, placing it between C and B yields ("ABC", 2), and placing it on the right of CBA yields ("ABC", 3).
+
+ Now suppose a user attempts to select the letter A by a mouse drag from the right of CBA to a point between
+ B and A. First, the initial mouse down places the selection's base at ("ABC", 3). Then as the mouse pointer
+ moves to a point on the left of A, the selection's extent is set at ("ABC", 1), selecting "BC".
+
+ To mitigate this issue, NSTextView adjusts selection base and extent under certain conditions. In the above
+ example, NSTextView detects user's intent and changes the selection's base to ("ABC", 0) temporarily.
+
+ This patch implements a similar trick on WebKit. We adjust the base or the extent when they're at the left
+ end or at the right end of a bidi run and the other end is inside of the run. In the above example, the
+ base position on the right of A is the right end of a bidi run and the extent position between B and A is
+ inside the same run (CBA), so we would adjust the base to be ("ABC", 0) as NSTextView does.
+
+ Take another example abcABC. Note offsets are assigned as (0)a(1)b(2)c(3)C(5)B(4)A(6) When the user starts
+ a mouse drag from the right of A to a point between B and A, we adjust the selection base to be ("abcABC", 3)
+ because the base is at the right end of a bidi run and the extent is in the same run. We keep the adjustment
+ when the mouse pointer moves to a point between C and B. However, when the mouser pointer reaches a point
+ between letters b and c, the selection extent is placed at ("abcABC", 2). Because the extent is outside of
+ the bidi run started from the selection base, we restore the original base at this point. Had we not done this,
+ we'll end up selecting just "c".
+
+ While this algorithm is implemented in FrameSelection::setNonDirectionalSelectionIfNeeded, this patch adds
+ various member functions to RenderedPosition to facilitate abstraction around inline boxes and bidi runs.
+
+ Test: editing/selection/select-bidi-run.html
+
+ * editing/FrameSelection.cpp:
+ (WebCore::adjustEndpointsAtBidiBoundary): Added. Implements the endpoints adjustment algorithm.
+ (WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded): Calls adjustEndpointsAtBidiBoundary, and
+ restores the original base as needed.
+ * editing/FrameSelection.h:
+ * editing/RenderedPosition.cpp:
+ (WebCore::RenderedPosition::RenderedPosition):
+ (WebCore::RenderedPosition::prevLeafChild): Added to cache prevLeafChild of the current inline box.
+ (WebCore::RenderedPosition::nextLeafChild): Ditto for nextLeafChild.
+ (WebCore::RenderedPosition::isEquivalent): Compares two RenderedPositions considering neighboring inline boxes
+ so that the rightmost position in a box and the leftmost position in the following box is considered equal.
+ (WebCore::RenderedPosition::bidiLevelOnLeft): Added. Returns the bidi level of the run on the left. We can't
+ add a generic bidiLevel to this class because it'll be ambiguous at bidi boundaries.
+ (WebCore::RenderedPosition::bidiLevelOnRight): Ditto for the run on the right.
+ (WebCore::RenderedPosition::leftBoundaryOfBidiRun): Added.
+ (WebCore::RenderedPosition::rightBoundaryOfBidiRun): Added.
+ (WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
+ (WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
+ (WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun): Returns Position at the left edge of a bidi run
+ if RenderedPosition is at such a position. Asserts atLeftBoundaryOfBidiRun.
+ (WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun): Ditto for the right edge.
+ * editing/RenderedPosition.h:
+ (WebCore::RenderedPosition::atLeftBoundaryOfBidiRun): Added.
+ (WebCore::RenderedPosition::atRightBoundaryOfBidiRun): Added.
+ (WebCore::RenderedPosition::atLeftmostOffsetInBox): Added.
+ (WebCore::RenderedPosition::atRightmostOffsetInBox): Added.
+ (WebCore::RenderedPosition::uncachedInlineBox): Added. We can't use a static const variable because gcc thinks
+ reinterpret_cast<InlineBox*>(1) is not an integral value.
+ (WebCore::RenderedPosition::RenderedPosition):
+ * editing/VisibleSelection.h:
+ (WebCore::VisibleSelection::visibleBase): Added.
+ (WebCore::VisibleSelection::visibleExtent): Added.
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::updateSelectionForMouseDrag):
+
+2011-09-26 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r95256.
+ http://trac.webkit.org/changeset/95256
+ https://bugs.webkit.org/show_bug.cgi?id=68814
+
+ Temporary CRASH calls no longer needed (Requested by enne on
+ #webkit).
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::commitTo):
+
+2011-09-26 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/68809> IconDatabase::syncThreadMainLoop can assert if wakeSyncThread is called before thread starts executing
+
+ If wakeSyncThread is called before syncThreadMainLoop starts executing then m_syncThreadHasWorkToDo would be set
+ while executing the body of the sync thread loop, causing us to skip blocking on the condition variable. This would
+ lead to us hitting the assertion failure due to m_disabledSuddenTerminationForSyncThread being false, unless the main
+ thread happened to call wakeSyncThread a second time while the first loop iteration was executing.
+
+ Reviewed by Anders Carlsson.
+
+ * loader/icon/IconDatabase.cpp:
+ (WebCore::IconDatabase::syncThreadMainLoop): Clear m_syncThreadHasWorkToDo to indicate that we're about to perform
+ all pending work.
+
+2011-09-26 Antaryami Pandia <antaryami.pandia@motorola.com>
+
+ Groove/inset/outset borders show solid if the color is black.
+ https://bugs.webkit.org/show_bug.cgi?id=58608
+
+ Reviewed by Simon Fraser.
+
+ Lightened the border side colors when drawing borders with styles as
+ Outset/Inset/Groove/Ridge.
+
+ Tests: fast/borders/border-groove.html
+ fast/borders/border-inset.html
+ fast/borders/border-outset.html
+ fast/borders/border-ridge.html
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::drawLineForBoxSide):
+
+2011-09-26 Abhishek Arya <inferno@chromium.org>
+
+ Delete retired custom font data only on document
+ destruction, and not on recalc style.
+ https://bugs.webkit.org/show_bug.cgi?id=68805
+
+ Reviewed by Dave Hyatt.
+
+ Test: fast/text/custom-font-data-crash.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::recalcStyle):
+
+2011-09-23 Adrienne Walker <enne@google.com>
+
+ [chromium] Update VideoLayerChromium textures after texture resources are reclaimed
+ https://bugs.webkit.org/show_bug.cgi?id=68742
+
+ Reviewed by James Robinson.
+
+ If video textures are reclaimed (such as during a visibility change on
+ a tab), the dirty rect for the layer is empty and it skips out of
+ updating compositor resources, leaving the video textures invalid.
+ Instead, check the textures here to make sure they're still valid
+ first before early out so that they can get reupdated if necessary.
+
+ Additionally, fix a small bug in pushPropertiesTo where 1 plane RGB
+ videos would not get drawn because all 3 planes didn't have valid
+ textures.
+
+ Test: compositing/video-page-visibility.html
+
+ * platform/graphics/chromium/VideoLayerChromium.cpp:
+ (WebCore::VideoLayerChromium::VideoLayerChromium):
+ (WebCore::VideoLayerChromium::cleanupResources):
+ (WebCore::VideoLayerChromium::updateCompositorResources):
+ (WebCore::VideoLayerChromium::pushPropertiesTo):
+ (WebCore::VideoLayerChromium::setLayerTreeHost):
+ (WebCore::VideoLayerChromium::texturesValid):
+ * platform/graphics/chromium/VideoLayerChromium.h:
+
+2011-09-26 Pavel Feldman <pfeldman@google.com>
+
+ Web Inspector: introduce protocol backwards compatibility validator.
+ https://bugs.webkit.org/show_bug.cgi?id=68800
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/Inspector.json:
+ * inspector/Inspector.draft-01.json: Copied from Source/WebCore/inspector/Inspector.json.
+ * inspector/validate-protocol-compatibility: Added.
+
+2011-09-26 Andreas Kling <kling@webkit.org>
+
+ [Qt] Unused variable in QNetworkReplyHandler::sendNetworkRequest.
+ https://bugs.webkit.org/show_bug.cgi?id=68798
+
+ Reviewed by Noam Rosenthal.
+
+ * platform/network/qt/QNetworkReplyHandler.cpp:
+ (WebCore::QNetworkReplyHandler::sendNetworkRequest):
+
+2011-09-26 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Second unreviewed build fix for r95941
+
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willCallFunctionImpl):
+
+2011-09-26 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed build fix for webkit builds after r95941.
+
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willCallFunctionImpl):
+
+2011-09-26 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: [Extensions API] allow resources to hook on click on resource links
+ https://bugs.webkit.org/show_bug.cgi?id=68528
+
+ Reviewed by Yury Semikhatsky.
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/front-end/ExtensionAPI.js:
+ (injectedExtensionAPI.Console.prototype.get Severity):
+ (injectedExtensionAPI.Panels.prototype.create):
+ (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
+ (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
+ (injectedExtensionAPI.ExtensionServerClient.prototype.hasHandler):
+ (injectedExtensionAPI.ExtensionServerClient.prototype.deregisterHandler):
+ * inspector/front-end/ExtensionServer.js:
+ (WebInspector.ExtensionServer):
+ (WebInspector.ExtensionServer.prototype._onSetOpenResourceHandler):
+ (WebInspector.ExtensionServer.prototype._handleAnchorClicked):
+ (WebInspector.ExtensionServer.prototype._addExtensions):
+ (WebInspector.ExtensionServer.prototype._addExtension):
+ (WebInspector.ExtensionServer.prototype._registerExtension):
+ * inspector/front-end/SettingsScreen.js:
+ (WebInspector.SettingsScreen):
+ (WebInspector.SettingsScreen.prototype._createCustomSetting):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/helpScreen.css:
+ (.help-content select):
+ (.help-content select:disabled):
+ (.help-content option):
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+ (WebInspector.set attached):
+ (WebInspector._showAnchorLocation):
+
+2011-09-23 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: Timeline: record root event for the function calls enforced by console eval.
+ https://bugs.webkit.org/show_bug.cgi?id=68695
+
+ In a complex web application developer might want to timeline a specific piece of code.
+
+ In this case he can do the next steps:
+ 1) start timeline;
+ 2) eval a command in console;
+ 3) stop timeline.
+
+ I think it'd be nice to have a root event for the all the events that happened as the result of such eval.
+
+ Reviewed by Yury Semikhatsky.
+
+ Test: inspector/timeline/timeline-injected-script-eval.html
+
+ * bindings/v8/ScriptFunctionCall.cpp:
+ * inspector/InjectedScript.cpp:
+ (WebCore::InjectedScript::makeCall):
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willCallFunctionImpl):
+
+2011-09-26 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Texmap][Qt] Enable TextureMapperGL in platforms where BGRA is not present
+ https://bugs.webkit.org/show_bug.cgi?id=65473
+
+ Reviewed by Andreas Kling.
+
+ For now, swap RGBA->BGRA in software if we're in OpenGL ES 2.
+ We do that by iterating on the pixels and manually swapping each pixel's red and blue
+ values. This can be done faster with shaders, but for now this is a working solution
+ for platforms without BGRA support.
+
+ No new tests. Existing layout tests cover this.
+
+ * platform/graphics/opengl/TextureMapperGL.cpp:
+ (WebCore::BitmapTextureGL::endPaint):
+ * platform/graphics/opengl/TextureMapperGL.h:
+ * platform/graphics/qt/TextureMapperQt.cpp:
+ (WebCore::RGBA32PremultimpliedBufferQt::swapRGB):
+
+2011-09-26 Sergio Villar Senin <svillar@igalia.com>
+
+ [GTK] Fix coding style bits in ResourceHandleSoup.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=68634
+
+ Reviewed by Martin Robinson.
+
+ No new tests needed.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::ResourceHandle::defaultSession):
+
+2011-09-26 James Robinson <jamesr@chromium.org>
+
+ [mac] Timestamp parameter to requestAnimationFrame is busted in USE(REQUEST_ANIMATION_FRAME_TIMER) path
+ https://bugs.webkit.org/show_bug.cgi?id=68769
+
+ Reviewed by Simon Fraser.
+
+ Convert the time parameter from double to DOMTimeStamp using convertSecondsToDOMTimeStamp rather than relying on
+ implicit double->long conversion, which ignores the units of the value.
+
+ Test: fast/animation/request-animation-frame-timestamps-advance.html
+
+ * dom/ScriptedAnimationController.cpp:
+ (WebCore::ScriptedAnimationController::animationTimerFired):
+
+2011-09-25 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Add custom vtable struct to ClassInfo struct
+ https://bugs.webkit.org/show_bug.cgi?id=68567
+
+ Reviewed by Oliver Hunt.
+
+ No new tests.
+
+ Added CREATE_METHOD_TABLE macro to generate the custom vtable for the
+ specified class in its ClassInfo. Also added to it the first function to use
+ this macro, visitChildren. This is part of the process of getting rid of all
+ C++ virtual methods in JSCell. Eventually all virtual functions in JSCell
+ that can't easily be converted to non-virtual functions will be put into
+ this custom vtable structure.
+
+ * bindings/js/JSAudioConstructor.cpp:
+ * bindings/js/JSDOMGlobalObject.cpp:
+ * bindings/js/JSDOMWindowBase.cpp:
+ * bindings/js/JSDOMWindowShell.cpp:
+ * bindings/js/JSImageConstructor.cpp:
+ * bindings/js/JSImageDataCustom.cpp:
+ (WebCore::toJS):
+ * bindings/js/JSOptionConstructor.cpp:
+ * bindings/js/JSWorkerContextBase.cpp:
+
+ Changed the bindings generator to add the call to the CREATE_METHOD_TABLE macro where
+ necessary.
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateImplementation):
+ (GenerateConstructorDefinition):
+ * bindings/scripts/test/JS/JSTestInterface.cpp:
+ * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+ * bridge/c/CRuntimeObject.cpp:
+ * bridge/c/c_instance.cpp:
+ * bridge/jni/jsc/JavaInstanceJSC.cpp:
+ * bridge/jni/jsc/JavaRuntimeObject.cpp:
+ * bridge/objc/ObjCRuntimeObject.mm:
+ * bridge/objc/objc_instance.mm:
+ * bridge/objc/objc_runtime.mm:
+ * bridge/qt/qt_instance.cpp:
+ * bridge/qt/qt_pixmapruntime.cpp:
+ * bridge/qt/qt_runtime.cpp:
+ * bridge/runtime_array.cpp:
+ * bridge/runtime_method.cpp:
+ * bridge/runtime_object.cpp:
+
+2011-09-25 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL] Move GtkWidgetBackingStoreCairo to the cairo directory and modify to use in the EFL.
+ https://bugs.webkit.org/show_bug.cgi?id=63502
+
+ Reviewed by Martin Robinson.
+
+ The gtk/GtkWidgetBackingStoreCairo.cpp is moved to the cairo/WidgetBackingStoreCairo.cpp and
+ some codes for EFL are added.
+ WidgetBackingStoreCairo creates cairo_image_surface and has a role to copy reusable area
+ when scrolling. So, it will be used in the WebKit2 EFL port's BackingStore.
+
+ * CMakeListsEfl.txt:
+ * GNUmakefile.list.am:
+ * platform/cairo/WidgetBackingStore.h:
+ * platform/cairo/WidgetBackingStoreCairo.cpp: Renamed from Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp.
+ (WebCore::createSurfaceForBackingStore):
+ (WebCore::WidgetBackingStorePrivate::create):
+ (WebCore::WidgetBackingStorePrivate::WidgetBackingStorePrivate):
+ (WebCore::WidgetBackingStore::create):
+ (WebCore::WidgetBackingStore::WidgetBackingStore):
+ (WebCore::WidgetBackingStore::~WidgetBackingStore):
+ (WebCore::WidgetBackingStore::cairoSurface):
+ (WebCore::WidgetBackingStore::scroll):
+ * platform/gtk/GtkWidgetBackingStoreX11.cpp:
+
+2011-09-25 Adam Barth <abarth@webkit.org>
+
+ Finish removing PLATFORM(BREWMP) by removing associated code
+ https://bugs.webkit.org/show_bug.cgi?id=68779
+
+ Reviewed by Sam Weinig.
+
+ When Geoffrey Garen removed PLATFORM(BREWMP) in
+ http://trac.webkit.org/changeset/95555, he did not remove all the
+ associated code. This completes the work started in r95555 by removing
+ all the code assoicated with PLATFORM(BREWMP).
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * bindings/js/ScriptControllerBrew.cpp: Removed.
+ * editing/brew: Removed.
+ * editing/brew/EditorBrew.cpp: Removed.
+ * gyp/WebCore.gyp:
+ * page/brew: Removed.
+ * page/brew/ChromeClientBrew.h: Removed.
+ * page/brew/DragControllerBrew.cpp: Removed.
+ * page/brew/EventHandlerBrew.cpp: Removed.
+ * page/brew/FrameBrew.cpp: Removed.
+ * platform/brew: Removed.
+ * platform/brew/ClipboardBrew.cpp: Removed.
+ * platform/brew/ClipboardBrew.h: Removed.
+ * platform/brew/ContextMenuBrew.cpp: Removed.
+ * platform/brew/ContextMenuItemBrew.cpp: Removed.
+ * platform/brew/CursorBrew.cpp: Removed.
+ * platform/brew/DragDataBrew.cpp: Removed.
+ * platform/brew/EventLoopBrew.cpp: Removed.
+ * platform/brew/FileSystemBrew.cpp: Removed.
+ * platform/brew/KURLBrew.cpp: Removed.
+ * platform/brew/LanguageBrew.cpp: Removed.
+ * platform/brew/LocalizedStringsBrew.cpp: Removed.
+ * platform/brew/LoggingBrew.cpp: Removed.
+ * platform/brew/MIMETypeRegistryBrew.cpp: Removed.
+ * platform/brew/PasteboardBrew.cpp: Removed.
+ * platform/brew/PlatformKeyboardEventBrew.cpp: Removed.
+ * platform/brew/PlatformMouseEventBrew.cpp: Removed.
+ * platform/brew/PlatformTouchEventBrew.cpp: Removed.
+ * platform/brew/PlatformTouchPointBrew.cpp: Removed.
+ * platform/brew/PopupMenuBrew.cpp: Removed.
+ * platform/brew/PopupMenuBrew.h: Removed.
+ * platform/brew/SSLKeyGeneratorBrew.cpp: Removed.
+ * platform/brew/ScreenBrew.cpp: Removed.
+ * platform/brew/ScrollbarThemeBrew.cpp: Removed.
+ * platform/brew/ScrollbarThemeBrew.h: Removed.
+ * platform/brew/SearchPopupMenuBrew.cpp: Removed.
+ * platform/brew/SearchPopupMenuBrew.h: Removed.
+ * platform/brew/SharedBufferBrew.cpp: Removed.
+ * platform/brew/SharedTimerBrew.cpp: Removed.
+ * platform/brew/SoundBrew.cpp: Removed.
+ * platform/brew/SystemTimeBrew.cpp: Removed.
+ * platform/brew/TemporaryLinkStubs.cpp: Removed.
+ * platform/brew/WidgetBrew.cpp: Removed.
+ * platform/graphics/brew: Removed.
+ * platform/graphics/brew/IconBrew.cpp: Removed.
+ * platform/graphics/brew/ImageBrew.cpp: Removed.
+ * platform/graphics/brew/IntPointBrew.cpp: Removed.
+ * platform/graphics/brew/IntSizeBrew.cpp: Removed.
+ * platform/network/brew: Removed.
+ * platform/network/brew/DNSBrew.cpp: Removed.
+ * platform/network/brew/SocketStreamError.h: Removed.
+ * platform/network/brew/SocketStreamHandle.h: Removed.
+ * platform/network/brew/SocketStreamHandleBrew.cpp: Removed.
+ * platform/network/brew/SocketStreamHandlePrivate.h: Removed.
+ * platform/text/brew: Removed.
+ * platform/text/brew/TextBoundariesBrew.cpp: Removed.
+ * platform/text/brew/TextBreakIteratorBrew.cpp: Removed.
+ * platform/text/brew/TextCodecBrew.cpp: Removed.
+ * platform/text/brew/TextCodecBrew.h: Removed.
+
+2011-09-25 Kentaro Hara <haraken@chromium.org>
+
+ Implement a CloseEvent constructor for JSC
+ https://bugs.webkit.org/show_bug.cgi?id=68340
+
+ Reviewed by Oliver Hunt.
+
+ The spec of the CloseEvent constructor is here:
+ http://dev.w3.org/html5/websockets/#closeevent
+
+ Test: fast/events/constructors/close-event-constructor.html
+
+ * bindings/generic/EventConstructors.h: Added a definition for the CloseEvent constructor.
+ * bindings/js/JSEventConstructors.cpp: Added #includes for CloseEvent.
+ * websockets/CloseEvent.h: Added a definition for CloseEventInit.
+ (WebCore::CloseEventInit::CloseEventInit):
+ (WebCore::CloseEvent::create):
+ (WebCore::CloseEvent::CloseEvent):
+ * websockets/CloseEvent.idl: Makes CloseEvent constructible.
+
+2011-09-25 Mark Rowe <mrowe@apple.com>
+
+ <rdar://problem/10177824> IconDatabase’s use of ThreadCondition leads to assertion failures in the face of spurious wakeups
+
+ It's possible for ThreadCondition::wait to return spuriously without the condition having been signaled.
+ When that happens we should immediately return to waiting rather than doing our normal work, as some of that
+ work relies on wakeSyncThread having been called to signal the condition.
+
+ Reviewed by Sam Weinig.
+
+ * loader/icon/IconDatabase.cpp:
+ (WebCore::IconDatabase::IconDatabase):
+ (WebCore::IconDatabase::wakeSyncThread): Note that we have work for the sync thread to do.
+ (WebCore::IconDatabase::syncThreadMainLoop): If we were woken with no work to do, immediately
+ go back to waiting on the condition variable. Otherwise, reset m_syncThreadHasWorkToDo and then
+ do that work. We also switch to moving m_disabledSuddenTerminationForSyncThread immediately in to
+ our local shouldReenableSuddenTermination variable since it can be updated by other threads while
+ we don't hold the lock. This makes it inappropriate to make assumptions about its value after dropping
+ and reacquiring the lock.
+ * loader/icon/IconDatabase.h:
+
+2011-09-25 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/10156263> ASSERT in WebCore::FrameView::scheduleRelayoutOfSubtree
+
+ Reviewed by Sam Weinig.
+
+ Test: fast/dynamic/subtree-unrooted.html
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::scheduleRelayout): Replaced the check that the renderer is parented,
+ which was added in r21162, with a check that it is “rooted”.
+
+2011-09-24 Abhishek Arya <inferno@chromium.org>
+
+ Issues with merging block children of a ruby
+ base with another ruby base having inline children.
+ https://bugs.webkit.org/show_bug.cgi?id=66124
+
+ Reviewed by Dan Bernstein.
+
+ Test: fast/ruby/ruby-base-merge-block-children-crash.html
+
+ * rendering/RenderRubyBase.cpp:
+ (WebCore::RenderRubyBase::moveInlineChildren): add a firstChild()
+ check to prevent empty anonymous block addition, just like
+ moveBlockChildren method.
+ * rendering/RenderRubyBase.cpp:
+ (WebCore::RenderRubyBase::moveBlockChildren): This was incorrectly
+ doing optimizations to see if current ruby base has only inline
+ children before beforeChild and then trying to take out them from
+ their parent anonymous blocks. The problem is those inlines could
+ be split and have continuations because of encountering a block
+ inside inline flow. In those cases, we cannot take the inline out.
+ So, we should just make children non-inline in the destination
+ block and transfer the children as it-is.
+ * rendering/RenderRubyBase.h: remove unncessary functions.
+
+2011-09-25 Adam Barth <abarth@webkit.org>
+
+ Remove PLATFORM(HAIKU) and associated code
+ https://bugs.webkit.org/show_bug.cgi?id=68774
+
+ Reviewed by Sam Weinig.
+
+ As discussed on webkit-dev, the Haiku port has been inactive for over a
+ year. A year and a half ago, we discussed removing the port, but folks
+ said they planned to work on it more. That work does not appear to
+ have happened in the intervening time.
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * bindings/js/ScriptControllerHaiku.cpp: Removed.
+ * editing/haiku: Removed.
+ * editing/haiku/EditorHaiku.cpp: Removed.
+ * gyp/WebCore.gyp:
+ * loader/cache/CachedFont.cpp:
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
+ * page/haiku: Removed.
+ * page/haiku/DragControllerHaiku.cpp: Removed.
+ * page/haiku/EventHandlerHaiku.cpp: Removed.
+ * page/haiku/FrameHaiku.cpp: Removed.
+ * platform/ContextMenuItem.h:
+ * platform/Cursor.h:
+ * platform/DragData.h:
+ * platform/DragImage.h:
+ * platform/PlatformKeyboardEvent.h:
+ * platform/PlatformMenuDescription.h:
+ * platform/PlatformMouseEvent.h:
+ * platform/Widget.h:
+ * platform/graphics/BitmapImage.h:
+ * platform/graphics/Color.h:
+ * platform/graphics/FloatPoint.h:
+ * platform/graphics/FloatRect.h:
+ * platform/graphics/Gradient.h:
+ * platform/graphics/GraphicsContext.cpp:
+ * platform/graphics/GraphicsContext.h:
+ * platform/graphics/ImageBufferData.h:
+ * platform/graphics/ImageSource.h:
+ * platform/graphics/IntPoint.h:
+ * platform/graphics/IntRect.h:
+ * platform/graphics/IntSize.h:
+ * platform/graphics/Path.h:
+ * platform/graphics/Pattern.h:
+ * platform/graphics/SimpleFontData.h:
+ * platform/graphics/haiku: Removed.
+ * platform/graphics/haiku/ColorHaiku.cpp: Removed.
+ * platform/graphics/haiku/FloatPointHaiku.cpp: Removed.
+ * platform/graphics/haiku/FloatRectHaiku.cpp: Removed.
+ * platform/graphics/haiku/FontCacheHaiku.cpp: Removed.
+ * platform/graphics/haiku/FontCustomPlatformData.cpp: Removed.
+ * platform/graphics/haiku/FontCustomPlatformData.h: Removed.
+ * platform/graphics/haiku/FontHaiku.cpp: Removed.
+ * platform/graphics/haiku/FontPlatformData.h: Removed.
+ * platform/graphics/haiku/GlyphPageTreeNodeHaiku.cpp: Removed.
+ * platform/graphics/haiku/GradientHaiku.cpp: Removed.
+ * platform/graphics/haiku/GraphicsContextHaiku.cpp: Removed.
+ * platform/graphics/haiku/IconHaiku.cpp: Removed.
+ * platform/graphics/haiku/ImageBufferDataHaiku.h: Removed.
+ * platform/graphics/haiku/ImageBufferHaiku.cpp: Removed.
+ * platform/graphics/haiku/ImageHaiku.cpp: Removed.
+ * platform/graphics/haiku/IntPointHaiku.cpp: Removed.
+ * platform/graphics/haiku/IntRectHaiku.cpp: Removed.
+ * platform/graphics/haiku/IntSizeHaiku.cpp: Removed.
+ * platform/graphics/haiku/PathHaiku.cpp: Removed.
+ * platform/graphics/haiku/SimpleFontDataHaiku.cpp: Removed.
+ * platform/graphics/haiku/StillImageHaiku.cpp: Removed.
+ * platform/graphics/haiku/StillImageHaiku.h: Removed.
+ * platform/haiku: Removed.
+ * platform/haiku/ClipboardHaiku.cpp: Removed.
+ * platform/haiku/ClipboardHaiku.h: Removed.
+ * platform/haiku/ContextMenuHaiku.cpp: Removed.
+ * platform/haiku/ContextMenuItemHaiku.cpp: Removed.
+ * platform/haiku/CookieJarHaiku.cpp: Removed.
+ * platform/haiku/CursorHaiku.cpp: Removed.
+ * platform/haiku/DragDataHaiku.cpp: Removed.
+ * platform/haiku/DragImageHaiku.cpp: Removed.
+ * platform/haiku/EventLoopHaiku.cpp: Removed.
+ * platform/haiku/FileSystemHaiku.cpp: Removed.
+ * platform/haiku/LocalizedStringsHaiku.cpp: Removed.
+ * platform/haiku/LoggingHaiku.cpp: Removed.
+ * platform/haiku/MIMETypeRegistryHaiku.cpp: Removed.
+ * platform/haiku/PasteboardHaiku.cpp: Removed.
+ * platform/haiku/PlatformKeyboardEventHaiku.cpp: Removed.
+ * platform/haiku/PlatformMouseEventHaiku.cpp: Removed.
+ * platform/haiku/PlatformWheelEventHaiku.cpp: Removed.
+ * platform/haiku/PopupMenuHaiku.cpp: Removed.
+ * platform/haiku/PopupMenuHaiku.h: Removed.
+ * platform/haiku/RenderThemeHaiku.cpp: Removed.
+ * platform/haiku/RenderThemeHaiku.h: Removed.
+ * platform/haiku/ScreenHaiku.cpp: Removed.
+ * platform/haiku/ScrollbarThemeHaiku.cpp: Removed.
+ * platform/haiku/ScrollbarThemeHaiku.h: Removed.
+ * platform/haiku/SearchPopupMenuHaiku.cpp: Removed.
+ * platform/haiku/SearchPopupMenuHaiku.h: Removed.
+ * platform/haiku/SharedBufferHaiku.cpp: Removed.
+ * platform/haiku/SharedTimerHaiku.cpp: Removed.
+ * platform/haiku/SoundHaiku.cpp: Removed.
+ * platform/haiku/TemporaryLinkStubs.cpp: Removed.
+ * platform/haiku/WidgetHaiku.cpp: Removed.
+ * platform/image-decoders/haiku: Removed.
+ * platform/image-decoders/haiku/ImageDecoderHaiku.cpp: Removed.
+ * platform/text/UnicodeRange.h:
+ * platform/text/haiku: Removed.
+ * platform/text/haiku/TextBreakIteratorInternalICUHaiku.cpp: Removed.
+
+2011-09-25 Adam Barth <abarth@webkit.org>
+
+ Attempted build fixes for GTK and Qt.
+
+ * GNUmakefile.list.am:
+ * WebCore.pro:
+
+2011-09-24 Adam Barth <abarth@webkit.org>
+
+ Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)
+ https://bugs.webkit.org/show_bug.cgi?id=68767
+
+ Reviewed by Eric Seidel.
+
+ As discussed on webkit-dev, almost everyone has this enable turned on
+ and this feature is unlikely to be removed from the web platform given
+ its popularity.
+
+ * CMakeLists.txt:
+ * Configurations/FeatureDefines.xcconfig:
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * WebCore.exp.in:
+ * WebCore.pro:
+ * bindings/cpp/WebDOMEventTarget.cpp:
+ (toWebKit):
+ * bindings/js/JSEventTarget.cpp:
+ (WebCore::toJS):
+ (WebCore::toEventTarget):
+ * bindings/v8/V8DOMWrapper.cpp:
+ (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
+ * dom/EventTarget.cpp:
+ (WebCore::EventTarget::toDOMApplicationCache):
+ * dom/EventTarget.h:
+ * features.pri:
+ * history/PageCache.cpp:
+ (WebCore::logCanCacheFrameDecision):
+ (WebCore::PageCache::canCachePageContainingThisFrame):
+ * html/HTMLHtmlElement.cpp:
+ (WebCore::HTMLHtmlElement::insertedByParser):
+ * html/HTMLHtmlElement.h:
+ * html/HTMLMediaElement.cpp:
+ (WebCore::createFileURLForApplicationCacheResource):
+ (WebCore::HTMLMediaElement::loadResource):
+ * html/ImageDocument.cpp:
+ (WebCore::ImageDocument::createDocumentStructure):
+ * html/MediaDocument.cpp:
+ (WebCore::MediaDocumentParser::createDocumentStructure):
+ * html/PluginDocument.cpp:
+ (WebCore::PluginDocumentParser::createDocumentStructure):
+ * html/parser/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
+ * inspector/InspectorApplicationCacheAgent.cpp:
+ * inspector/InspectorApplicationCacheAgent.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::disconnectFrontend):
+ * inspector/InspectorController.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::networkStateChanged):
+ (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
+ * inspector/InstrumentingAgents.h:
+ (WebCore::InstrumentingAgents::InstrumentingAgents):
+ (WebCore::InstrumentingAgents::setInspectorApplicationCacheAgent):
+ * inspector/WorkerInspectorController.cpp:
+ (WebCore::WorkerInspectorController::connectFrontend):
+ * inspector/generate-inspector-idl:
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::DocumentLoader):
+ (WebCore::DocumentLoader::mainReceivedError):
+ (WebCore::DocumentLoader::stopLoading):
+ (WebCore::DocumentLoader::detachFromFrame):
+ (WebCore::DocumentLoader::handledOnloadEvents):
+ * loader/DocumentLoader.h:
+ (WebCore::DocumentLoader::applicationCacheHost):
+ * loader/EmptyClients.h:
+ (WebCore::EmptyChromeClient::reachedApplicationCacheOriginQuota):
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::loadResourceSynchronously):
+ * loader/MainResourceLoader.cpp:
+ (WebCore::MainResourceLoader::willSendRequest):
+ (WebCore::MainResourceLoader::didReceiveResponse):
+ (WebCore::MainResourceLoader::didReceiveData):
+ (WebCore::MainResourceLoader::didFinishLoading):
+ (WebCore::MainResourceLoader::didFail):
+ (WebCore::MainResourceLoader::load):
+ * loader/ResourceLoader.cpp:
+ (WebCore::ResourceLoader::start):
+ (WebCore::ResourceLoader::willSendRequest):
+ (WebCore::ResourceLoader::didSendData):
+ (WebCore::ResourceLoader::didReceiveResponse):
+ (WebCore::ResourceLoader::didReceiveData):
+ (WebCore::ResourceLoader::didFinishLoading):
+ (WebCore::ResourceLoader::didFail):
+ (WebCore::ResourceLoader::wasBlocked):
+ (WebCore::ResourceLoader::cannotShowURL):
+ (WebCore::ResourceLoader::shouldUseCredentialStorage):
+ (WebCore::ResourceLoader::willCacheResponse):
+ * loader/ResourceLoader.h:
+ * loader/appcache/ApplicationCache.cpp:
+ * loader/appcache/ApplicationCache.h:
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ * loader/appcache/ApplicationCacheGroup.h:
+ * loader/appcache/ApplicationCacheHost.cpp:
+ * loader/appcache/ApplicationCacheHost.h:
+ * loader/appcache/ApplicationCacheResource.cpp:
+ * loader/appcache/ApplicationCacheResource.h:
+ * loader/appcache/ApplicationCacheStorage.cpp:
+ * loader/appcache/ApplicationCacheStorage.h:
+ * loader/appcache/DOMApplicationCache.cpp:
+ * loader/appcache/DOMApplicationCache.h:
+ * loader/appcache/DOMApplicationCache.idl:
+ * loader/appcache/ManifestParser.cpp:
+ (WebCore::parseManifest):
+ * loader/appcache/ManifestParser.h:
+ * loader/chromium/ResourceLoaderChromium.cpp:
+ (WebCore::ResourceLoader::didDownloadData):
+ * page/ChromeClient.h:
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::clear):
+ (WebCore::DOMWindow::applicationCache):
+ * page/DOMWindow.h:
+ (WebCore::DOMWindow::optionalApplicationCache):
+ * page/DOMWindow.idl:
+ * xml/parser/XMLDocumentParserLibxml2.cpp:
+ (WebCore::XMLDocumentParser::startElementNs):
+ * xml/parser/XMLDocumentParserQt.cpp:
+ (WebCore::XMLDocumentParser::parseStartElement):
+
+2011-09-24 Adam Barth <abarth@webkit.org>
+
+ Remove ENABLE(WCSS) and associated code
+ https://bugs.webkit.org/show_bug.cgi?id=68759
+
+ Reviewed by Darin Adler.
+
+ As discussed on webkit-dev, we are removing this feature from trunk to
+ reduce the number of different configurations.
+
+ * CodeGenerators.pri:
+ * GNUmakefile.am:
+ * WebCore.pro:
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+ * css/CSSParser.h:
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+ * css/WCSSPropertyNames.in: Removed.
+ * css/WCSSValueKeywords.in: Removed.
+ * features.pri:
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::HTMLInputElement):
+ * html/HTMLInputElement.h:
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::sanitizeValue):
+ (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
+ * rendering/RenderMarquee.cpp:
+ (WebCore::RenderMarquee::start):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::createObject):
+ * rendering/style/RenderStyleConstants.h:
+
+2011-09-24 Young Han Lee <joybro@company100.net>
+
+ SVGAnimation does not support 'values' for from-to animations
+ https://bugs.webkit.org/show_bug.cgi?id=64859
+
+ Reviewed by Dirk Schulze.
+
+ If from-to animation have discrete calc-mode and have a 'keyTimes' list, values of
+ the keyTimes indicate the begin and the end of the animation respectively.[1][2]
+
+ When keyTimes is given, calculate the progress percentage of the animation with it
+ even for from-to animation.
+
+ [1] http://www.w3.org/TR/SVG/animate.html#ValueAttributes
+ [2] http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncValues
+
+ Test: svg/animations/animate-from-to-keyTimes.html
+
+ * svg/SVGAnimationElement.cpp:
+ (WebCore::SVGAnimationElement::calculatePercentForFromTo):
+ (WebCore::SVGAnimationElement::updateAnimation):
+ * svg/SVGAnimationElement.h:
+
+2011-09-23 Chris Fleizach <cfleizach@apple.com>
+
+ WebKit does not expose AXPlaceholder value on password fields
+ https://bugs.webkit.org/show_bug.cgi?id=68745
+
+ Reviewed by Oliver Hunt.
+
+ * accessibility/mac/WebAccessibilityObjectWrapper.mm:
+ (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
+
+2011-09-23 Mark Rowe <mrowe@apple.com>
+
+ Fix the build.
+
+ * loader/CrossOriginAccessControl.cpp:
+ (WebCore::passesAccessControlCheck): Get rid of the exit-time destructor.
+
+2011-09-23 Adam Barth <abarth@webkit.org>
+
+ Canvas security checks show up on HTML5GamingTest benchmark
+ https://bugs.webkit.org/show_bug.cgi?id=68743
+
+ Reviewed by Oliver Hunt.
+
+ Prior to this patch, the canvas security checks took as much as 4% of
+ the time on the HTML5GamingTest benchmark:
+
+ http://craftymind.com/factory/guimark2/HTML5GamingTest.html
+
+ This patch uses a couple of AtomicStrings and shuffles around the order
+ of the security check to take this down to around 0.1% (which is near
+ the noise floor of what I can measure with my profiler).
+
+ * html/canvas/CanvasRenderingContext.cpp:
+ (WebCore::CanvasRenderingContext::wouldTaintOrigin):
+ * loader/CrossOriginAccessControl.cpp:
+ (WebCore::passesAccessControlCheck):
+
+2011-09-23 Justin Novosad <junov@chromium.org>
+
+ Unwarranted DOM Exception when canvas2D drawImage is called with src
+ rect out of bounds
+ https://bugs.webkit.org/show_bug.cgi?id=65709
+
+ Reviewed by Oliver Hunt.
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::drawImage):
+ Return early without throwing an exception if source rectangle is out of
+ bounds to match the spec.
+
+2011-09-23 Lukasz Slachciak <l.slachciak@samsung.com>
+
+ Printing of notImplemented() when logging enabled.
+ https://bugs.webkit.org/show_bug.cgi?id=64590
+
+ Printing of notImplemented() method was enabled on Debug builds only.
+ Now it is enabled when logging is enabled.
+
+ Reviewed by Oliver Hunt.
+
+ No new tests because there is no new functionality.
+
+ * platform/NotImplemented.h: Non-debug mode replaced with non-logging mode.
+
+2011-09-23 Mihai Parparita <mihaip@chromium.org>
+
+ [Chromium] REGRESSION (r95725): Resizing a window doesn't resize the contents
+ https://bugs.webkit.org/show_bug.cgi?id=68730
+
+ Reviewed by James Robinson.
+
+ Adds a missing contentsResized() call in ScrollView::setFrameRect.
+
+ Test: fast/dom/Window/window-resize-contents.html
+
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::setFrameRect):
+
+2011-09-23 Adam Klein <adamk@chromium.org>
+
+ Add ENABLE_MUTATION_OBSERVERS feature flag
+ https://bugs.webkit.org/show_bug.cgi?id=68732
+
+ Reviewed by Ojan Vafai.
+
+ This flag will guard an implementation of the "Mutation Observers" proposed in
+ http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html
+
+ * Configurations/FeatureDefines.xcconfig:
+ * GNUmakefile.am:
+
+2011-09-23 Varun Jain <varunjain@google.com>
+
+ Refactor WebViewImpl::scrollFocusedNodeIntoRect to a better place and add tests
+ https://bugs.webkit.org/show_bug.cgi?id=68198
+
+ Reviewed by Dimitri Glazkov.
+
+ Tests: fast/dom/scroll-element-to-rect-centered.html
+ fast/dom/scroll-element-to-rect.html
+
+ * WebCore.exp.in:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scrollElementToRect):
+ * page/FrameView.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::scrollElementToRect):
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
+2011-09-23 Mihai Parparita <mihaip@chromium.org>
+
+ Unreviewed, rolling out r95860.
+ http://trac.webkit.org/changeset/95860
+ https://bugs.webkit.org/show_bug.cgi?id=68648
+
+ Breaks overhang rendering on Chromium Mac
+
+ * platform/chromium/ScrollbarThemeChromium.cpp:
+ * platform/chromium/ScrollbarThemeChromium.h:
+ * platform/chromium/ScrollbarThemeChromiumMac.h:
+ * platform/chromium/ScrollbarThemeChromiumMac.mm:
+ (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
+ (WebCore::ScrollbarThemeChromiumMac::paintOverhangAreas):
+
+2011-09-23 Dean Jackson <dino@apple.com>
+
+ Add -webkit-filter to CSSPropertyNames
+ https://bugs.webkit.org/show_bug.cgi?id=68675
+
+ Reviewed by Simon Fraser.
+
+ Add property and rudimentary parsing for -webkit-filter. The
+ property value isn't preserved anywhere yet. Add
+ stub definition for computed style.
+
+ Test: css3/filters/filter-property.html
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+ (WebCore::CSSParser::parseFilter):
+ * css/CSSParser.h:
+ * css/CSSPropertyNames.in:
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::applyProperty):
+
+2011-09-23 Antoine Labour <piman@chromium.org>
+
+ Remove preserves3D() from CCLayerDelegate, replacing it by setting the
+ value explicitly after creating a layer, or setting its delegate.
+ https://bugs.webkit.org/show_bug.cgi?id=68295
+
+ Reviewed by James Robinson.
+
+ Covered by compositing/ layeout tests.
+
+ * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+ (WebCore::GraphicsLayerChromium::setContentsToCanvas):
+ (WebCore::GraphicsLayerChromium::setContentsToMedia):
+ (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
+ (WebCore::GraphicsLayerChromium::setupContentsLayer):
+ * platform/graphics/chromium/GraphicsLayerChromium.h:
+ * platform/graphics/chromium/LayerChromium.cpp:
+ (WebCore::LayerChromium::LayerChromium):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::setPreserves3D):
+ (WebCore::LayerChromium::preserves3D):
+
+2011-09-23 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Implicit conversion double to float in ShadowBlur::adjustBlurRadius
+ https://bugs.webkit.org/show_bug.cgi?id=68722
+
+ Reviewed by Simon Fraser.
+
+ * platform/graphics/ShadowBlur.cpp:
+ (WebCore::ShadowBlur::adjustBlurRadius): Added 2 explicit
+ conversions.
+
+2011-09-23 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/10178576> REGRESSION (r95391): Crash in -[WebCascadeList objectAtIndex:] when a font-family list contains missing fonts
+ https://bugs.webkit.org/show_bug.cgi?id=68737
+
+ Reviewed by Darin Adler.
+
+ Test: fast/text/combining-character-sequence-fallback-crash.html
+
+ * platform/graphics/mac/ComplexTextControllerCoreText.mm:
+ (-[WebCascadeList initWithFont:WebCore::character:]): Changed to intialize _count to the exact
+ number of FontData instances in the fallback list rather than the number of font families in the
+ font description.
+
+2011-09-23 David Reveman <reveman@chromium.org>
+
+ [Chromium] Fix CSS 3D corner anti-aliasing.
+ https://bugs.webkit.org/show_bug.cgi?id=68087
+
+ Reviewed by James Robinson.
+
+ Render sharp corners more correctly by adding bounding box
+ edges to anti-aliasing shaders.
+
+ Test: platform/chromium/compositing/3d-corners.html
+
+ * platform/graphics/chromium/ShaderChromium.cpp:
+ (WebCore::FragmentShaderRGBATexAlphaAA::getShaderString):
+ (WebCore::FragmentShaderRGBATexClampAlphaAA::getShaderString):
+ (WebCore::FragmentShaderRGBATexClampSwizzleAlphaAA::getShaderString):
+ (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::drawLayer):
+ (WebCore::CCRenderSurface::drawSurface):
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::draw):
+ (WebCore::CCTiledLayerImpl::drawTiles):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
+
+2011-09-23 Oliver Hunt <oliver@apple.com>
+
+ Make write barriers actually do something when enabled
+ https://bugs.webkit.org/show_bug.cgi?id=68717
+
+ Reviewed by Geoffrey Garen.
+
+ Add a forwarding header, and fix an evaluation ordering
+ issue that shows up if you try to use write barriers.
+
+ * ForwardingHeaders/heap/CardSet.h: Added.
+ * bindings/js/JSEventListener.h:
+ (WebCore::JSEventListener::jsFunction):
+
+2011-09-23 James Robinson <jamesr@chromium.org>
+
+ Avoid updating compositing state during paint
+ https://bugs.webkit.org/show_bug.cgi?id=68727
+
+ Reviewed by Simon Fraser.
+
+ We shouldn't update our compositing state in the middle of a paint. The call to
+ updateCompositingAndLayerListsIfNeeded() was added to RenderLayer::paintLayer in r45715, which was intended to
+ fix this exact issue. Based off the ChangeLog entries, I think that this was just a typo.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paintLayer):
+ (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateCompositingLayers):
+ * rendering/RenderLayerCompositor.h:
+
+2011-09-23 Fady Samuel <fsamuel@chromium.org>
+
+ Refactor paintOverhangAreas to allow non-Mac Chromium platforms to reuse code
+ https://bugs.webkit.org/show_bug.cgi?id=68648
+
+ Reviewed by Dimitri Glazkov.
+
+ No new tests because there's no change in functionality (yet).
+
+ * platform/chromium/ScrollbarThemeChromium.cpp:
+ (WebCore::ScrollbarThemeChromium::ScrollbarThemeChromium):
+ (WebCore::ScrollbarThemeChromium::~ScrollbarThemeChromium):
+ (WebCore::ScrollbarThemeChromium::paintOverhangAreas):
+ * platform/chromium/ScrollbarThemeChromium.h:
+ * platform/chromium/ScrollbarThemeChromiumMac.h:
+ * platform/chromium/ScrollbarThemeChromiumMac.mm:
+ (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
+
+2011-09-23 Ojan Vafai <ojan@chromium.org>
+
+ remove physical flex-flow values to match the updated spec
+ https://bugs.webkit.org/show_bug.cgi?id=68728
+
+ Reviewed by Tony Chang.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ (WebCore::CSSPrimitiveValue::operator EFlexFlow):
+ * css/CSSValueKeywords.in:
+ * rendering/style/RenderStyleConstants.h:
+
+2011-09-23 Abhishek Arya <inferno@chromium.org>
+
+ Style not updated for :before, :after content
+ in ruby text.
+ https://bugs.webkit.org/show_bug.cgi?id=68625
+
+ Reviewed by Dave Hyatt.
+
+ Test: fast/ruby/ruby-text-before-after-content.html
+
+ * rendering/RenderRubyText.cpp:
+ (WebCore::RenderRubyText::updateBeforeAfterContent):
+ * rendering/RenderRubyText.h:
+
+2011-09-22 Ojan Vafai <ojan@chromium.org>
+
+ refactor RenderFlexibleBox to use flex-flow aware methods
+ https://bugs.webkit.org/show_bug.cgi?id=68665
+
+ Reviewed by Tony Chang.
+
+ This is just a refactor. Just move the all the code that needs to
+ be flow aware into helper functions. Actually making them flow-aware
+ can be done in a followup patch.
+
+ * rendering/RenderBlock.cpp:
+ * rendering/RenderBlock.h:
+ Moved setLogicalLocationForChild into RenderFlexibleBox since that was the only caller.
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::hasOrthogonalFlow):
+ (WebCore::RenderFlexibleBox::isHorizontalFlow):
+ (WebCore::RenderFlexibleBox::isLeftToRightFlow):
+ (WebCore::RenderFlexibleBox::setFlowAwareLogicalHeight):
+ (WebCore::RenderFlexibleBox::flowAwareLogicalHeightForChild):
+ (WebCore::RenderFlexibleBox::flowAwareLogicalWidthForChild):
+ (WebCore::RenderFlexibleBox::flowAwareLogicalHeight):
+ (WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
+ (WebCore::RenderFlexibleBox::flowAwareAvailableLogicalWidth):
+ (WebCore::RenderFlexibleBox::flowAwareBorderStart):
+ (WebCore::RenderFlexibleBox::flowAwareBorderBefore):
+ (WebCore::RenderFlexibleBox::flowAwareBorderAfter):
+ (WebCore::RenderFlexibleBox::flowAwarePaddingStart):
+ (WebCore::RenderFlexibleBox::flowAwarePaddingBefore):
+ (WebCore::RenderFlexibleBox::flowAwarePaddingAfter):
+ (WebCore::RenderFlexibleBox::flowAwareMarginStartForChild):
+ (WebCore::RenderFlexibleBox::flowAwareMarginBeforeForChild):
+ (WebCore::RenderFlexibleBox::flowAwareMarginAfterForChild):
+ (WebCore::RenderFlexibleBox::setFlowAwareMarginStartForChild):
+ (WebCore::RenderFlexibleBox::setFlowAwareMarginEndForChild):
+ (WebCore::RenderFlexibleBox::setFlowAwareLogicalLocationForChild):
+ (WebCore::RenderFlexibleBox::logicalBorderAndPaddingWidthForChild):
+ (WebCore::RenderFlexibleBox::logicalScrollbarHeightForChild):
+ (WebCore::RenderFlexibleBox::marginStartStyleForChild):
+ (WebCore::RenderFlexibleBox::marginEndStyleForChild):
+ (WebCore::RenderFlexibleBox::preferredLogicalContentWidthForFlexItem):
+ (WebCore::RenderFlexibleBox::layoutInlineDirection):
+ (WebCore::RenderFlexibleBox::logicalPositiveFlexForChild):
+ (WebCore::RenderFlexibleBox::logicalNegativeFlexForChild):
+ (WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
+ (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
+ (WebCore::RenderFlexibleBox::setLogicalOverrideSize):
+ (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
+ * rendering/RenderFlexibleBox.h:
+
+2011-09-23 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=68719
+
+ Push through multiple regions when an object doesn't fit in any of them. Unlike with pages and
+ columns, when regions have a non-uniform height, we may need to push through multiple regions
+ in order to find one that fits.
+
+ Added an optimization for quickly noticing if regions do have a uniform height so that we can
+ treat them like columns and pages if so.
+
+ Also fixed the end line matchup to properly null out endLine when no next line box exists. The new
+ layout tests I wrote to cover this feature exposed this crasher, so fixing it in order to land
+ the new tests.
+
+ Reviewed by Anders Carlsson.
+
+ Added new tests in fast/regions.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::adjustForUnsplittableChild):
+ (WebCore::RenderBlock::pushToNextPageWithMinimumLogicalHeight):
+ (WebCore::RenderBlock::adjustLinePositionForPagination):
+ * rendering/RenderBlock.h:
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlock::matchedEndLine):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::RenderFlowThread):
+ (WebCore::RenderFlowThread::layout):
+ * rendering/RenderFlowThread.h:
+
+2011-09-23 Konstantin Scheglov <scheglov@google.com>
+
+ Redrawing dirty parts of a large table is very slow
+ https://bugs.webkit.org/show_bug.cgi?id=64546
+
+ Reviewed by David Hyatt.
+
+ Move CollapsedBorderValues into RenderTable.h.
+ Calculate collapsed borders only once and re-use during paintObject().
+ Invalidate cache when cell, row, row group, col, col group or table border is changed.
+
+ Tests: fast/table/border-collapsing/cached-cell-append.html
+ fast/table/border-collapsing/cached-cell-remove.html
+ fast/table/border-collapsing/cached-change-cell-border-color.html
+ fast/table/border-collapsing/cached-change-cell-border-width.html
+ fast/table/border-collapsing/cached-change-col-border-color.html
+ fast/table/border-collapsing/cached-change-col-border-width.html
+ fast/table/border-collapsing/cached-change-colgroup-border-color.html
+ fast/table/border-collapsing/cached-change-colgroup-border-width.html
+ fast/table/border-collapsing/cached-change-row-border-color.html
+ fast/table/border-collapsing/cached-change-row-border-width.html
+ fast/table/border-collapsing/cached-change-table-border-color.html
+ fast/table/border-collapsing/cached-change-table-border-width.html
+ fast/table/border-collapsing/cached-change-tbody-border-color.html
+ fast/table/border-collapsing/cached-change-tbody-border-width.html
+
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::RenderTable):
+ (WebCore::RenderTable::styleDidChange): Invalidate cache on border change.
+ (WebCore::RenderTable::layout): Invalidate cache if layout changed.
+ (WebCore::RenderTable::recalcCollapsedBorders): Ensures that cache is valid.
+ (WebCore::RenderTable::paintObject): Use cached collapsed borders.
+ * rendering/RenderTable.h:
+ (WebCore::RenderTable::invalidateCollapsedBorders): Accessor to mark cache invalid.
+ (WebCore::RenderTable::currentBorderValue): Rename to use word "value".
+ * rendering/RenderTableCell.cpp:
+ (WebCore::RenderTableCell::styleDidChange): If border changed, invalidate cache.
+
+ Rename to use word "value".
+ (WebCore::addBorderStyle):
+ (WebCore::RenderTableCell::collectBorderValues):
+ (WebCore::compareBorderValuesForQSort):
+ (WebCore::RenderTableCell::sortBorderValues):
+ (WebCore::RenderTableCell::paintCollapsedBorder):
+ * rendering/RenderTableCell.h:
+
+ If border changed, invalidate cache.
+ * rendering/RenderTableCol.cpp:
+ (WebCore::RenderTableCol::styleDidChange):
+ * rendering/RenderTableCol.h:
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::styleDidChange):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::styleDidChange):
+
+2011-09-23 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Add static version of JSCell::visitChildren
+ https://bugs.webkit.org/show_bug.cgi?id=68404
+
+ Reviewed by Darin Adler.
+
+ No new tests.
+
+ In this patch we just extract the bodies of the virtual visitChildren methods
+ throughout the JSCell inheritance hierarchy out into static methods, which are
+ now called from the virtual methods. This is an intermediate step in trying to
+ move the virtual-ness of visitChildren into our own custom vtable stored in
+ ClassInfo. We need to convert the methods to static methods in order to be
+ able to more easily store and refer to them in our custom vtable since normal
+ member methods store some implicit information in their types, making it
+ impossible to store them generically in ClassInfo.
+
+ * WebCore.exp.in:
+ * bindings/js/JSAttrCustom.cpp:
+ (WebCore::JSAttr::visitChildrenVirtual):
+ (WebCore::JSAttr::visitChildren):
+ * bindings/js/JSAudioContextCustom.cpp:
+ (WebCore::JSAudioContext::visitChildrenVirtual):
+ (WebCore::JSAudioContext::visitChildren):
+ * bindings/js/JSCSSRul