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

Unified Diff: Source/WebCore/ChangeLog

Issue 10824152: Merge 123798 - Guard Prerenderer against inserting prerenders into detached documents. (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1180/
Patch Set: Created 8 years, 5 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 | « LayoutTests/fast/dom/HTMLLinkElement/resources/empty2.html ('k') | Source/WebCore/loader/Prerenderer.cpp » ('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 124493)
+++ Source/WebCore/ChangeLog (working copy)
@@ -1,3 +1,7230 @@
+2012-07-26 Gavin Peters <gavinp@chromium.org>
+
+ Guard Prerenderer against inserting prerenders into detached documents.
+ https://bugs.webkit.org/show_bug.cgi?id=92401
+
+ Reviewed by Adam Barth.
+
+ If the document is detached, we should not launch a prerender.
+
+ Test: fast/dom/HTMLLinkElement/prerender-insert-after-stop.html
+
+ * loader/Prerenderer.cpp:
+ (WebCore::Prerenderer::render):
+
+2012-07-26 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123525.
+ http://trac.webkit.org/changeset/123525
+ https://bugs.webkit.org/show_bug.cgi?id=92421
+
+ it needed to be rolled out after r123779 too (Requested by
+ jchaffraix on #webkit).
+
+ * rendering/RenderObjectChildList.cpp:
+ (WebCore::RenderObjectChildList::insertChildNode):
+
+2012-07-26 Pravin D <pravind.2k4@gmail.com>
+
+ Outline is always painted on the first table row regardless of the row it's set on
+ https://bugs.webkit.org/show_bug.cgi?id=92389
+
+ Reviewed by Eric Seidel.
+
+ The outlines of all the rows are drawn on the row instead of their respective rows.
+ The paint offset for the outlines does not take the row location into account.
+
+ Test: fast/table/table-row-outline-paint.html
+
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::paintOutlineForRowIfNeeded):
+ The row's location is taken into account for calculating the correct paint offset
+ for its outline.
+
+2012-07-26 Antoine Labour <piman@chromium.org>
+
+ [chromium] Combine color matrix filters and apply them in a single pass.
+ https://bugs.webkit.org/show_bug.cgi?id=92059
+
+ Reviewed by Stephen White.
+
+ Sequential color matrix filters can easily be combined, by simply
+ multiplying the color matrices and applying it in a single pass. This
+ helps dramatically with performance (bandwidth savings by avoiding extra
+ copy & clear, also saves fragment shader processing).
+
+ Covered by css3/filters layout tests, added effect-brightness-clamping
+ and effect-brightness-clamping-hw.
+
+ * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
+ (WebCore::CCRenderSurfaceFilters::apply):
+
+2012-07-26 Ryosuke Niwa <rniwa@webkit.org>
+
+ Href attribute with javascript protocol is stripped when content is pasted into a XML doucment
+ https://bugs.webkit.org/show_bug.cgi?id=92310
+
+ Reviewed by Adam Barth.
+
+ The bug was caused by setAttributeNS's stripping attributes for which isAttributeToRemove
+ return true instead of setting an empty string. Changing this in setAttributeNS is problematic
+ because it will trigger a logic, in HTMLAnchorElement for example, to resolve the URL.
+
+ Fixed the bug by making XML parsers call parserSetAttributes instead of setAttributeNS.
+ After this patch, handleNamespaceAttributes and handleElementAttributes simply fills up a Vector
+ with which startElementNs (or parseStartElement in Qt) calls parserSetAttributes.
+
+ * dom/Element.cpp:
+ (WebCore::Element::parserSetAttributes): Sets emptyAtom instead of nullAtom as nullAtom can be
+ turned into "null".
+ (WebCore::Element::parseAttributeName): Extracted from setAttributeNS.
+ (WebCore::Element::setAttributeNS): No longer takes FragmentScriptingPermission.
+ * dom/Element.h:
+ (Element):
+ * editing/markup.cpp:
+ (WebCore::completeURLs): Don't resolve URLs when it's empty since empty attribute has a canonical
+ meaning in some cases. e.g. <frame src=""></iframe>
+ * xml/parser/XMLDocumentParserLibxml2.cpp:
+ (WebCore::handleNamespaceAttributes): Renamed from handleElementNamespaces. Call
+ parserSetAttributes even when exiting early to be maintain the same behavior.
+ (WebCore::handleElementAttributes):
+ (WebCore::XMLDocumentParser::startElementNs):
+ * xml/parser/XMLDocumentParserQt.cpp:
+ (WebCore::handleNamespaceAttributes): Use XMLNSNames::xmlnsNamespaceURI. Call parserSetAttributes
+ even when exiting early to be maintain the same behavior.
+ (WebCore::handleElementAttributes):
+ (WebCore::XMLDocumentParser::parseStartElement):
+
+2012-07-26 Dan Bernstein <mitz@apple.com>
+
+ <svg> element with no intrinsic size and max-width gets sized incorrectly
+ https://bugs.webkit.org/show_bug.cgi?id=92410
+
+ Reviewed by Dean Jackson.
+
+ Test: svg/css/max-width-2.html
+
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::computeReplacedLogicalWidth): The rule for computing the width for
+ elements whose computed width and height are both auto and which have no intrinsic size, but
+ have an intrinsic ratio was applied only to elements with a content renderer (such as <img>
+ with an SVG source). Removed the requirement to have a content renderer, so that it will
+ apply to all elements including <svg>.
+
+2012-07-26 Tony Chang <tony@chromium.org>
+
+ Regression: r123696 made css3/flexbox tests failing
+ https://bugs.webkit.org/show_bug.cgi?id=92352
+
+ Reviewed by Levi Weintraub.
+
+ Use roundedLayoutUnit so ports without subpixel layout still pass existing tests.
+
+ Covered by css3/flexbox/flex-algorithm-min-max.html which should pass again.
+
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
+
+2012-07-26 Emil A Eklund <eae@chromium.org>
+
+ Contained div with right 0 sometimes overlaps parent div
+ https://bugs.webkit.org/show_bug.cgi?id=91521
+
+ Reviewed by Levi Weintraub.
+
+ Due to unnecessary rounding in clientLogicalWidth and clientLogicalHeight
+ we lost precision when computing the width and position of render boxes.
+ Change clientLogicalWidth/Height to return values with subpixel precision
+ to avoid this.
+
+ Test: fast/sub-pixel/position-right-aligns-with-container.html
+
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::clientLogicalWidth):
+ (WebCore::RenderBox::clientLogicalHeight):
+ Remove unnecessary rounding.
+
+2012-07-26 Chang Shu <cshu@webkit.org>
+
+ Build broken when svg is disabled.
+ https://bugs.webkit.org/show_bug.cgi?id=92393.
+
+ Reviewed by Laszlo Gombos.
+
+ Need to surpress unused parameters warning.
+
+ * rendering/FilterEffectRenderer.cpp:
+ (WebCore::FilterEffectRenderer::buildReferenceFilter):
+
+2012-07-25 Jer Noble <jer.noble@apple.com>
+
+ Add diagnostic messages when media and plugins load or fail to load.
+ https://bugs.webkit.org/show_bug.cgi?id=92341
+
+ Reviewed by Anders Carlsson.
+
+ Send diagnostic messages when a media or plugin element loads or fails to load. Include in
+ the trace the media engine description, error code, or plugin mime type.
+
+ * html/HTMLEmbedElement.cpp:
+ (WebCore::HTMLEmbedElement::updateWidget): Send a diagnostic message.
+ * html/HTMLMediaElement.cpp:
+ (WebCore::stringForNetworkState): Added convenience function to stringify network states.
+ (WebCore::HTMLMediaElement::mediaLoadingFailed): Send a diagnostic message.
+ (WebCore::HTMLMediaElement::setReadyState): Send a diagnostic message.
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::updateWidget): Send a diagnostic message.
+
+2012-07-26 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123159, r123165, r123168, r123492,
+ and r123650.
+ http://trac.webkit.org/changeset/123159
+ http://trac.webkit.org/changeset/123165
+ http://trac.webkit.org/changeset/123168
+ http://trac.webkit.org/changeset/123492
+ http://trac.webkit.org/changeset/123650
+ https://bugs.webkit.org/show_bug.cgi?id=92406
+
+ allowing inline-table anonymous wrappers is a bad idea due to
+ tons of corner cases that should be properly handled
+ (Requested by jchaffraix on #webkit).
+
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::addChildIgnoringContinuation):
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::createAnonymousWithParentRenderer):
+
+2012-07-26 Jer Noble <jer.noble@apple.com>
+
+ Add a ChromeClient method to send diagnostic logging messages from WebCore to the client.
+ https://bugs.webkit.org/show_bug.cgi?id=92340
+
+ Reviewed by Anders Carlsson.
+
+ Add a new ChromeClient menthod, to be implemented by WebKit and WebKit2, which sends
+ a diagnostic logging message up to the client.
+
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::logDiagnosticMessage):
+ * page/ChromeClient.h:
+ (WebCore::ChromeClient::logDiagnosticMessage):
+ (ChromeClient):
+ * page/DiagnosticLoggingKeys.cpp: Added.
+ (WebCore::DiagnosticLoggingKeys::mediaLoadedKey):
+ (WebCore::DiagnosticLoggingKeys::mediaLoadingFailedKey):
+ (WebCore::DiagnosticLoggingKeys::pluginLoadedKey):
+ (WebCore::DiagnosticLoggingKeys::pluginLoadingFailedKey):
+ (WebCore::DiagnosticLoggingKeys::passKey):
+ (WebCore::DiagnosticLoggingKeys::failKey):
+ (WebCore::DiagnosticLoggingKeys::noopKey):
+ * page/DiagnosticLoggingKeys.h: Added.
+ (DiagnosticLoggingKeys):
+
+ Add the new files DiagnosticLoggingKeys.cpp,h to the project:
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-07-25 Jer Noble <jer.noble@apple.com>
+
+ Add setting to enable and disable diagnostic logging.
+ https://bugs.webkit.org/show_bug.cgi?id=92337
+
+ Reviewed by Anders Carlsson.
+
+ Add a new entry in Settings, defaulting to false.
+
+ * page/Settings.cpp:
+ (WebCore::Settings::Settings): Default the new setting to false.
+ * page/Settings.h:
+ (WebCore::Settings::setDiagnosticLoggingEnabled): Simple accessor.
+ (WebCore::Settings::diagnosticLoggingEnabled): Ditto.
+
+2012-07-26 Olivier Blin <olivier.blin@softathome.com>
+
+ Add FastMalloc statistics in window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=91274
+
+ Reviewed by Ryosuke Niwa.
+
+ Test: fast/harness/fastmallocstatistics-object.html
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCoreTestSupport.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * testing/FastMallocStatistics.h: Added.
+ (WebCore):
+ (FastMallocStatistics):
+ (WebCore::FastMallocStatistics::create):
+ (WebCore::FastMallocStatistics::reservedVMBytes):
+ (WebCore::FastMallocStatistics::committedVMBytes):
+ (WebCore::FastMallocStatistics::freeListBytes):
+ (WebCore::FastMallocStatistics::FastMallocStatistics):
+ * testing/FastMallocStatistics.idl: Added.
+ * testing/Internals.cpp:
+ (WebCore::Internals::fastMallocStatistics):
+ (WebCore):
+ * testing/Internals.h:
+ (WebCore):
+ (Internals):
+ * testing/Internals.idl:
+
+2012-07-26 Adrienne Walker <enne@google.com>
+
+ [chromium] Remove redundant surface origin transforms
+ https://bugs.webkit.org/show_bug.cgi?id=91815
+
+ Reviewed by Stephen White.
+
+ Bug 91417 changed draw transforms to become equivalent to origin
+ transforms for surfaces. This change removes them as they are no
+ longer needed for anything.
+
+ No new tests. Just a refactoring.
+
+ * platform/graphics/chromium/RenderSurfaceChromium.h:
+ (RenderSurfaceChromium):
+ * platform/graphics/chromium/cc/CCDamageTracker.cpp:
+ (WebCore::CCDamageTracker::extendDamageForRenderSurface):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::computeScrollCompensationMatrixForChildren):
+ (WebCore::calculateDrawTransformsInternal):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::::leaveToRenderTarget):
+ (WebCore::::unoccludedContributingSurfaceContentRect):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
+ (WebCore::CCRenderPassDrawQuad::create):
+ (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
+ (CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::createSharedQuadState):
+ (WebCore::CCRenderSurface::createReplicaSharedQuadState):
+ (WebCore::CCRenderSurface::appendQuads):
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+ (CCRenderSurface):
+
+2012-07-25 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: simplify handling of status bar items
+ https://bugs.webkit.org/show_bug.cgi?id=92143
+
+ Reviewed by Pavel Feldman.
+
+ - split status bars into "global" (always in the bottom) and "panel"
+ (on top of the drawer when drawer is shown)
+ - use "inner" status bar section in global status bar to display either
+ panel status bar items or drawer view items (depending on drawer visibility)
+ - let panels/views manage their counters as part of their status bar
+ items, not through special interface members;
+ - get rid of absolute positioning in the status bars where possible;
+
+ * inspector/front-end/AdvancedSearchController.js:
+ (WebInspector.SearchView.prototype.get statusBarItems):
+ * inspector/front-end/Drawer.js:
+ (WebInspector.Drawer):
+ (WebInspector.Drawer.prototype.show.animationFinished):
+ (WebInspector.Drawer.prototype.show):
+ (WebInspector.Drawer.prototype.hide.animationFinished):
+ (WebInspector.Drawer.prototype.hide):
+ (WebInspector.Drawer.prototype._startStatusBarDragging):
+ * inspector/front-end/Panel.js:
+ (WebInspector.Panel.prototype.wasShown):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel.prototype.get statusBarItems):
+ (WebInspector.TimelinePanel.prototype.willHide):
+ * inspector/front-end/elementsPanel.css:
+ (.crumbs):
+ * inspector/front-end/inspector.css:
+ (#main):
+ (body.drawer-visible #main-panels):
+ (.status-bar):
+ (.status-bar-item):
+ (#panel-status-bar-placeholder):
+ (body.drawer-visible #panel-status-bar-placeholder):
+ (#panel-status-bar-resizer):
+ (#panel-status-bar):
+ (#panel-status-bar > div):
+ (#error-warning-count):
+ (#drawer):
+ (#drawer-contents):
+ (.status-bar-items):
+ (.drawer-header):
+ (#inner-status-bar):
+ (.search-status-bar-item):
+ (.search-status-bar-message):
+ (.search-status-bar-progress):
+ (body:not(.platform-mac) .search-status-bar-progress):
+ (body.platform-mac .search-status-bar-progress):
+ (.search-status-bar-stop-button-item):
+ (.search-status-bar-stop-button .glyph):
+ (.search-results-status-bar-message):
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+ (WebInspector._createGlobalStatusBarItems):
+ (WebInspector.showViewInDrawer):
+ (WebInspector._closePreviousDrawerView):
+ * inspector/front-end/timelinePanel.css:
+ (.timeline-records-counter):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Implement Network Information provider
+ https://bugs.webkit.org/show_bug.cgi?id=92343
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Moved Network Information provider code from WebKit1
+ to WebCore so that it can be shared with WebKit2.
+
+ No new tests, no behavior change.
+
+ * PlatformEfl.cmake:
+ * platform/efl/NetworkInfoProviderEfl.cpp: Copied from Source/WebKit/efl/WebCoreSupport/NetworkInfoClientEfl.cpp.
+ (WebCore):
+ (WebCore::NetworkInfoProviderEfl::NetworkInfoProviderEfl):
+ (WebCore::NetworkInfoProviderEfl::startUpdating):
+ (WebCore::NetworkInfoProviderEfl::stopUpdating):
+ (WebCore::NetworkInfoProviderEfl::bandwidth):
+ * platform/efl/NetworkInfoProviderEfl.h: Added.
+ (WebCore):
+ (NetworkInfoProviderEfl):
+
+2012-07-25 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: SASS source mapping straw man (behind experiment)
+ https://bugs.webkit.org/show_bug.cgi?id=92265
+
+ Reviewed by Vsevolod Vlasov.
+
+ This change introduces SASS mapping support (behind the experiment).
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/compile-front-end.py:
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleModel):
+ (WebInspector.CSSStyleModel.prototype.resourceBinding):
+ (WebInspector.CSSStyleModel.prototype.setSourceMapping):
+ (WebInspector.CSSStyleModel.prototype.resetSourceMappings):
+ (WebInspector.CSSStyleModel.prototype._rawLocationToUILocation):
+ (WebInspector.CSSLocation):
+ (WebInspector.CSSRule):
+ (WebInspector.CSSRule.prototype.get isRegular):
+ (WebInspector.CSSRule.prototype.uiLocation):
+ * inspector/front-end/ContentProviders.js:
+ (WebInspector.StaticContentProvider.prototype.contentType):
+ * inspector/front-end/SASSSourceMapping.js: Added.
+ (WebInspector.SASSSourceMapping):
+ (WebInspector.SASSSourceMapping.prototype._populate):
+ (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
+ (WebInspector.SASSSourceMapping.prototype._resourceAdded):
+ (rawLocationToUILocation):
+ (uiLocationToRawLocation):
+ (uiSourceCodes):
+ (reset):
+ (WebInspector.SASSSource):
+ (WebInspector.SASSSource.prototype.isEditable):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._createSourceFrame):
+ * inspector/front-end/Settings.js:
+ (WebInspector.ExperimentsSettings):
+ * inspector/front-end/StylesPanel.js:
+ (WebInspector.StylesUISourceCodeProvider):
+ (WebInspector.StylesUISourceCodeProvider.prototype.rawLocationToUILocation):
+ (WebInspector.StylesUISourceCodeProvider.prototype.uiLocationToRawLocation):
+ (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
+ (WebInspector.StylesUISourceCodeProvider.prototype.reset):
+ * inspector/front-end/StylesSidebarPane.js:
+ (WebInspector.StylePropertyTreeElement.prototype):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UILocation.prototype.uiLocationToRawLocation):
+ (WebInspector.UILocation.prototype.url):
+ * inspector/front-end/Workspace.js:
+ (WebInspector.Workspace):
+ * inspector/front-end/inspector.html:
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Unreviewed r123761 follow-up, inspector closure compilation fix.
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.Location.prototype.uiLocation):
+ * inspector/front-end/ScriptSnippetModel.js:
+
+2012-07-26 Patrick Gansterer <paroga@webkit.org>
+
+ Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
+ https://bugs.webkit.org/show_bug.cgi?id=92113
+
+ Reviewed by Simon Hausmann.
+
+ Cleanup the definition of the two methods across different ports and
+ replace the calls to them with LocalWindowsContext where possible.
+
+ * platform/graphics/GraphicsContext.h:
+ (GraphicsContext):
+ * platform/win/ScrollbarThemeWin.cpp:
+ (WebCore::ScrollbarThemeWin::paintThumb):
+
+2012-07-27 Chris Fleizach <cfleizach@apple.com>
+
+ WebKit should expose @title as label (AXTitle or AXDescription) sometimes instead of AXHelp, according to the ARIA text alt computation
+ https://bugs.webkit.org/show_bug.cgi?id=91911
+
+ Reviewed by Anders Carlsson.
+
+ The ARIA spec states that the title attribute should be used as the last resort for a description of an element. WebKit needs to honor that.
+
+ Test: platform/mac/accessibility/title-attribute-used-as-last-resort.html
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::helpText):
+ (WebCore::AccessibilityRenderObject::accessibilityDescription):
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Unreviewed r123761 follow-up, inspector closure compilation fix.
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.Location.prototype.uiLocation):
+ * inspector/front-end/ScriptSnippetModel.js:
+
+2012-07-26 Patrick Gansterer <paroga@webkit.org>
+
+ Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
+ https://bugs.webkit.org/show_bug.cgi?id=92113
+
+ Reviewed by Simon Hausmann.
+
+ Cleanup the definition of the two methods across different ports and
+ replace the calls to them with LocalWindowsContext where possible.
+
+ * platform/graphics/GraphicsContext.h:
+ (GraphicsContext):
+ * platform/win/ScrollbarThemeWin.cpp:
+ (WebCore::ScrollbarThemeWin::paintThumb):
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Unreviewed r123761 follow-up, inspector closure compilation fix.
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.Location.prototype.uiLocation):
+ * inspector/front-end/ScriptSnippetModel.js:
+
+2012-07-26 Patrick Gansterer <paroga@webkit.org>
+
+ Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
+ https://bugs.webkit.org/show_bug.cgi?id=92113
+
+ Reviewed by Simon Hausmann.
+
+ Cleanup the definition of the two methods across different ports and
+ replace the calls to them with LocalWindowsContext where possible.
+
+ * platform/graphics/GraphicsContext.h:
+ (GraphicsContext):
+ * platform/win/ScrollbarThemeWin.cpp:
+ (WebCore::ScrollbarThemeWin::paintThumb):
+
+2012-07-26 Olivier Blin <olivier.blin@softathome.com>
+
+ Add FastMalloc statistics in window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=91274
+
+ Reviewed by Ryosuke Niwa.
+
+ Test: fast/harness/fastmallocstatistics-object.html
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCoreTestSupport.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * testing/FastMallocStatistics.h: Added.
+ (WebCore):
+ (FastMallocStatistics):
+ (WebCore::FastMallocStatistics::create):
+ (WebCore::FastMallocStatistics::reservedVMBytes):
+ (WebCore::FastMallocStatistics::committedVMBytes):
+ (WebCore::FastMallocStatistics::freeListBytes):
+ (WebCore::FastMallocStatistics::FastMallocStatistics):
+ * testing/FastMallocStatistics.idl: Added.
+ * testing/Internals.cpp:
+ (WebCore::Internals::fastMallocStatistics):
+ (WebCore):
+ * testing/Internals.h:
+ (WebCore):
+ (Internals):
+ * testing/Internals.idl:
+
+2012-07-26 Adrienne Walker <enne@google.com>
+
+ [chromium] Remove redundant surface origin transforms
+ https://bugs.webkit.org/show_bug.cgi?id=91815
+
+ Reviewed by Stephen White.
+
+ Bug 91417 changed draw transforms to become equivalent to origin
+ transforms for surfaces. This change removes them as they are no
+ longer needed for anything.
+
+ No new tests. Just a refactoring.
+
+ * platform/graphics/chromium/RenderSurfaceChromium.h:
+ (RenderSurfaceChromium):
+ * platform/graphics/chromium/cc/CCDamageTracker.cpp:
+ (WebCore::CCDamageTracker::extendDamageForRenderSurface):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::computeScrollCompensationMatrixForChildren):
+ (WebCore::calculateDrawTransformsInternal):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::::leaveToRenderTarget):
+ (WebCore::::unoccludedContributingSurfaceContentRect):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
+ (WebCore::CCRenderPassDrawQuad::create):
+ (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
+ (CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::createSharedQuadState):
+ (WebCore::CCRenderSurface::createReplicaSharedQuadState):
+ (WebCore::CCRenderSurface::appendQuads):
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+ (CCRenderSurface):
+
+2012-07-25 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: simplify handling of status bar items
+ https://bugs.webkit.org/show_bug.cgi?id=92143
+
+ Reviewed by Pavel Feldman.
+
+ - split status bars into "global" (always in the bottom) and "panel"
+ (on top of the drawer when drawer is shown)
+ - use "inner" status bar section in global status bar to display either
+ panel status bar items or drawer view items (depending on drawer visibility)
+ - let panels/views manage their counters as part of their status bar
+ items, not through special interface members;
+ - get rid of absolute positioning in the status bars where possible;
+
+ * inspector/front-end/AdvancedSearchController.js:
+ (WebInspector.SearchView.prototype.get statusBarItems):
+ * inspector/front-end/Drawer.js:
+ (WebInspector.Drawer):
+ (WebInspector.Drawer.prototype.show.animationFinished):
+ (WebInspector.Drawer.prototype.show):
+ (WebInspector.Drawer.prototype.hide.animationFinished):
+ (WebInspector.Drawer.prototype.hide):
+ (WebInspector.Drawer.prototype._startStatusBarDragging):
+ * inspector/front-end/Panel.js:
+ (WebInspector.Panel.prototype.wasShown):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel.prototype.get statusBarItems):
+ (WebInspector.TimelinePanel.prototype.willHide):
+ * inspector/front-end/elementsPanel.css:
+ (.crumbs):
+ * inspector/front-end/inspector.css:
+ (#main):
+ (body.drawer-visible #main-panels):
+ (.status-bar):
+ (.status-bar-item):
+ (#panel-status-bar-placeholder):
+ (body.drawer-visible #panel-status-bar-placeholder):
+ (#panel-status-bar-resizer):
+ (#panel-status-bar):
+ (#panel-status-bar > div):
+ (#error-warning-count):
+ (#drawer):
+ (#drawer-contents):
+ (.status-bar-items):
+ (.drawer-header):
+ (#inner-status-bar):
+ (.search-status-bar-item):
+ (.search-status-bar-message):
+ (.search-status-bar-progress):
+ (body:not(.platform-mac) .search-status-bar-progress):
+ (body.platform-mac .search-status-bar-progress):
+ (.search-status-bar-stop-button-item):
+ (.search-status-bar-stop-button .glyph):
+ (.search-results-status-bar-message):
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+ (WebInspector._createGlobalStatusBarItems):
+ (WebInspector.showViewInDrawer):
+ (WebInspector._closePreviousDrawerView):
+ * inspector/front-end/timelinePanel.css:
+ (.timeline-records-counter):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Implement Network Information provider
+ https://bugs.webkit.org/show_bug.cgi?id=92343
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Moved Network Information provider code from WebKit1
+ to WebCore so that it can be shared with WebKit2.
+
+ No new tests, no behavior change.
+
+ * PlatformEfl.cmake:
+ * platform/efl/NetworkInfoProviderEfl.cpp: Copied from Source/WebKit/efl/WebCoreSupport/NetworkInfoClientEfl.cpp.
+ (WebCore):
+ (WebCore::NetworkInfoProviderEfl::NetworkInfoProviderEfl):
+ (WebCore::NetworkInfoProviderEfl::startUpdating):
+ (WebCore::NetworkInfoProviderEfl::stopUpdating):
+ (WebCore::NetworkInfoProviderEfl::bandwidth):
+ * platform/efl/NetworkInfoProviderEfl.h: Added.
+ (WebCore):
+ (NetworkInfoProviderEfl):
+
+2012-07-25 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: SASS source mapping straw man (behind experiment)
+ https://bugs.webkit.org/show_bug.cgi?id=92265
+
+ Reviewed by Vsevolod Vlasov.
+
+ This change introduces SASS mapping support (behind the experiment).
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/compile-front-end.py:
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleModel):
+ (WebInspector.CSSStyleModel.prototype.resourceBinding):
+ (WebInspector.CSSStyleModel.prototype.setSourceMapping):
+ (WebInspector.CSSStyleModel.prototype.resetSourceMappings):
+ (WebInspector.CSSStyleModel.prototype._rawLocationToUILocation):
+ (WebInspector.CSSLocation):
+ (WebInspector.CSSRule):
+ (WebInspector.CSSRule.prototype.get isRegular):
+ (WebInspector.CSSRule.prototype.uiLocation):
+ * inspector/front-end/ContentProviders.js:
+ (WebInspector.StaticContentProvider.prototype.contentType):
+ * inspector/front-end/SASSSourceMapping.js: Added.
+ (WebInspector.SASSSourceMapping):
+ (WebInspector.SASSSourceMapping.prototype._populate):
+ (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
+ (WebInspector.SASSSourceMapping.prototype._resourceAdded):
+ (rawLocationToUILocation):
+ (uiLocationToRawLocation):
+ (uiSourceCodes):
+ (reset):
+ (WebInspector.SASSSource):
+ (WebInspector.SASSSource.prototype.isEditable):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._createSourceFrame):
+ * inspector/front-end/Settings.js:
+ (WebInspector.ExperimentsSettings):
+ * inspector/front-end/StylesPanel.js:
+ (WebInspector.StylesUISourceCodeProvider):
+ (WebInspector.StylesUISourceCodeProvider.prototype.rawLocationToUILocation):
+ (WebInspector.StylesUISourceCodeProvider.prototype.uiLocationToRawLocation):
+ (WebInspector.StylesUISourceCodeProvider.prototype._resourceAdded):
+ (WebInspector.StylesUISourceCodeProvider.prototype.reset):
+ * inspector/front-end/StylesSidebarPane.js:
+ (WebInspector.StylePropertyTreeElement.prototype):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UILocation.prototype.uiLocationToRawLocation):
+ (WebInspector.UILocation.prototype.url):
+ * inspector/front-end/Workspace.js:
+ (WebInspector.Workspace):
+ * inspector/front-end/inspector.html:
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Unreviewed r123761 follow-up, inspector closure compilation fix.
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.Location.prototype.uiLocation):
+ * inspector/front-end/ScriptSnippetModel.js:
+
+2012-07-26 Patrick Gansterer <paroga@webkit.org>
+
+ Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
+ https://bugs.webkit.org/show_bug.cgi?id=92113
+
+ Reviewed by Simon Hausmann.
+
+ Cleanup the definition of the two methods across different ports and
+ replace the calls to them with LocalWindowsContext where possible.
+
+ * platform/graphics/GraphicsContext.h:
+ (GraphicsContext):
+ * platform/win/ScrollbarThemeWin.cpp:
+ (WebCore::ScrollbarThemeWin::paintThumb):
+
+2012-07-27 Chris Fleizach <cfleizach@apple.com>
+
+ WebKit should expose @title as label (AXTitle or AXDescription) sometimes instead of AXHelp, according to the ARIA text alt computation
+ https://bugs.webkit.org/show_bug.cgi?id=91911
+
+ Reviewed by Anders Carlsson.
+
+ The ARIA spec states that the title attribute should be used as the last resort for a description of an element. WebKit needs to honor that.
+
+ Test: platform/mac/accessibility/title-attribute-used-as-last-resort.html
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::helpText):
+ (WebCore::AccessibilityRenderObject::accessibilityDescription):
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Unreviewed r123761 follow-up, inspector closure compilation fix.
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.Location.prototype.uiLocation):
+ * inspector/front-end/ScriptSnippetModel.js:
+
+2012-07-26 Patrick Gansterer <paroga@webkit.org>
+
+ Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
+ https://bugs.webkit.org/show_bug.cgi?id=92113
+
+ Reviewed by Simon Hausmann.
+
+ Cleanup the definition of the two methods across different ports and
+ replace the calls to them with LocalWindowsContext where possible.
+
+ * platform/graphics/GraphicsContext.h:
+ (GraphicsContext):
+ * platform/win/ScrollbarThemeWin.cpp:
+ (WebCore::ScrollbarThemeWin::paintThumb):
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Unreviewed r123761 follow-up, inspector closure compilation fix.
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.Location.prototype.uiLocation):
+ * inspector/front-end/ScriptSnippetModel.js:
+
+2012-07-26 Patrick Gansterer <paroga@webkit.org>
+
+ Cleanup GraphicsContext::(getWindowsContext|releaseWindowsContext)
+ https://bugs.webkit.org/show_bug.cgi?id=92113
+
+ Reviewed by Simon Hausmann.
+
+ Cleanup the definition of the two methods across different ports and
+ replace the calls to them with LocalWindowsContext where possible.
+
+ * platform/graphics/GraphicsContext.h:
+ (GraphicsContext):
+ * platform/win/ScrollbarThemeWin.cpp:
+ (WebCore::ScrollbarThemeWin::paintThumb):
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Introduce generic LiveLocation, make Script.Location inherit it.
+ https://bugs.webkit.org/show_bug.cgi?id=92388
+
+ Reviewed by Pavel Feldman.
+
+ Introduced abstract LiveLocation implemented by Script.Location.
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.Location):
+ (WebInspector.Script.Location.prototype.uiLocation):
+ (WebInspector.Script.Location.prototype.dispose):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UISourceCode):
+ (WebInspector.LiveLocation):
+ (WebInspector.LiveLocation.prototype.update):
+ (WebInspector.LiveLocation.prototype.rawLocation):
+ (WebInspector.LiveLocation.prototype.uiLocation):
+ (WebInspector.LiveLocation.prototype.dispose):
+ * inspector/front-end/inspector.html:
+
+2012-07-26 Joshua Netterfield <jnetterfield@rim.com>
+
+ [BlackBerry] readPixels on FBOs are limited to canvas size on SGX platforms
+ https://bugs.webkit.org/show_bug.cgi?id=92301
+
+ Reviewed by Rob Buis.
+
+ This fixes fast/canvas/webgl/uninitialized-test.html on BlackBerry, no new tests.
+
+ * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
+ (WebCore::GraphicsContext3D::readPixels):
+ (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
+
+2012-07-26 Alexei Filippov <alexeif@chromium.org>
+
+ Web Inspector: reduce auto refresh rate of the live native memory diagram
+ https://bugs.webkit.org/show_bug.cgi?id=92372
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/NativeMemorySnapshotView.js:
+ (WebInspector.NativeMemoryBarChart.prototype.wasShown):
+
+2012-07-26 Alexei Filippov <alexeif@chromium.org>
+
+ Web Inspector: add GC button to the profiles panel toolbar.
+ https://bugs.webkit.org/show_bug.cgi?id=92369
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/ProfilesPanel.js:
+ (WebInspector.ProfilesPanel.prototype.get statusBarItems):
+ (WebInspector.ProfilesPanel.prototype._garbageCollectButtonClicked):
+ * inspector/front-end/profilesPanel.css:
+ (.garbage-collect-status-bar-item .glyph):
+
+2012-07-26 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Move region from HitTestResult to HitTestPoint.
+ https://bugs.webkit.org/show_bug.cgi?id=92367
+
+ Reviewed by Antonio Gomes.
+
+ Moves the region to HitTestPoint where it makes more sense, and use this
+ change to simplify hit-testing a new region in RenderFlowThread.
+
+ No new functionality. No new tests.
+
+ * rendering/HitTestResult.cpp:
+ (WebCore::HitTestPoint::HitTestPoint):
+ (WebCore::HitTestPoint::operator=):
+ (WebCore::HitTestResult::HitTestResult):
+ (WebCore::HitTestResult::operator=):
+ * rendering/HitTestResult.h:
+ (HitTestPoint):
+ (WebCore::HitTestPoint::region):
+ (HitTestResult):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::nodeAtPoint):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::nodeAtPoint):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::hitTestRegion):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::hitTestLayer):
+ * rendering/RenderRegion.cpp:
+ (WebCore::RenderRegion::nodeAtPoint):
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::nodeAtPoint):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::nodeAtPoint):
+
+2012-07-26 Jan Keromnes <janx@linux.com>
+
+ Web Inspector: ExtensionView constructor shouldn't take parent argument
+ https://bugs.webkit.org/show_bug.cgi?id=92326
+
+ Reviewed by Pavel Feldman.
+
+ ExtensionView's constructor took a parent element parameter and auto-
+ showed itself in the constructor. This didn't allow lazy showing and
+ was confusing because it didn't work like a classic View object. Fixed.
+
+ No new tests needed: Refactoring with no behavior changes.
+
+ * inspector/front-end/ExtensionPanel.js:
+ (WebInspector.ExtensionPanel):
+ (WebInspector.ExtensionSidebarPane.prototype.setPage):
+ * inspector/front-end/ExtensionView.js:
+ (WebInspector.ExtensionView):
+
+2012-07-26 Joshua Netterfield <jnetterfield@rim.com>
+
+ [WebGL] ANGLEWebKitBridge should support ESSL platforms
+ https://bugs.webkit.org/show_bug.cgi?id=92295
+
+ Reviewed by Rob Buis.
+
+ This tells ANGLEWebKitBridge to output ESSL code for the BlackBerry
+ platform. This eliminates the need for a previous hack. In addition,
+ some (GLSL) ANGLE output that could not be compiled (for example,
+ glsl-mat4-to-mat3.html) now compiles.
+
+ * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
+ (WebCore::GraphicsContext3D::GraphicsContext3D):
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
+ (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
+
+2012-07-26 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: replace "textInput" keyboard event listener breakpoint with "input"
+ https://bugs.webkit.org/show_bug.cgi?id=92384
+
+ Reviewed by Vsevolod Vlasov.
+
+ * inspector/front-end/BreakpointsSidebarPane.js:
+ (WebInspector.EventListenerBreakpointsSidebarPane):
+
+2012-07-26 Jer Noble <jer.noble@apple.com>
+
+ Add a MediaPlayer API to retrieve the description of the current media engine.
+ https://bugs.webkit.org/show_bug.cgi?id=92336
+
+ Reviewed by Eric Carlson.
+
+ Add a utility function which retrieves, for diagnostic purposes, a brief description
+ of the current media engine. Stubs have been added for each of the MediaPlayerPrivate
+ subclasses which return the name of the class.
+
+ * platform/graphics/MediaPlayer.cpp:
+ (WebCore::MediaPlayer::engineDescription):
+ * platform/graphics/MediaPlayer.h:
+ * platform/graphics/MediaPlayerPrivate.h:
+ (WebCore::MediaPlayerPrivateInterface::engineDescription):
+ * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
+ (WebCore::MediaPlayerPrivateAVFoundation::engineDescription):
+ * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
+ (WebCore::MediaPlayerPrivate::engineDescription):
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ (WebCore::MediaPlayerPrivateGStreamer::engineDescription):
+ * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
+ (WebCore::MediaPlayerPrivateQTKit::engineDescription):
+ * platform/graphics/qt/MediaPlayerPrivateQt.h:
+ (WebCore::MediaPlayerPrivateQt::engineDescription):
+ * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
+ (WebCore::MediaPlayerPrivate::engineDescription):
+ * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
+ (WebCore::MediaPlayerPrivateQuickTimeVisualContext::engineDescription):
+
+2012-07-26 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: Edits of styles declared after invalid selector are not applied
+ https://bugs.webkit.org/show_bug.cgi?id=92382
+
+ Reviewed by Vsevolod Vlasov.
+
+ Now popping selectorless rules as well.
+
+ Test: inspector/styles/styles-edit-property-after-invalid-rule.html
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::createStyleRule):
+
+2012-07-26 Joshua Netterfield <jnetterfield@rim.com>
+
+ [WebGL] GraphicsContext3D::readPixels has extraneous code from GraphicsContext3D::readPixelsIMG
+ https://bugs.webkit.org/show_bug.cgi?id=92302
+
+ Reviewed by Noam Rosenthal.
+
+ This undoes a mistake from https://bugs.webkit.org/show_bug.cgi?id=90567.
+
+ No new tests, because it introduces no new functionality, but it makes the WebGL aquarium demo
+ run quite a bit smoother on SGX :)
+
+ * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
+ (WebCore::GraphicsContext3D::readPixels):
+
+2012-07-26 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Revert r123740 as it breaks AppleMac compilation.
+
+ * WebCore.exp.in:
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore):
+
+2012-07-26 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Fix AppleMac compilation after r123740.
+
+ * WebCore.exp.in: Added missing symbol.
+
+2012-07-26 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: move StringImpl size calculation to StringImpl
+ https://bugs.webkit.org/show_bug.cgi?id=92359
+
+ Reviewed by Pavel Feldman.
+
+ Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
+ StringImpl::sizeInBytes();
+
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore):
+
+2012-07-26 Charles Wei <charles.wei@torchmobile.com.cn>
+
+ Remove redundant include of PageGroup.h in FrameLoader.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92357
+
+ Reviewed by Kentaro Hara.
+
+
+ No new tests, just remove redundant include file.
+
+ * loader/FrameLoader.cpp:
+
+2012-07-26 Eric Seidel <eric@webkit.org>
+
+ 2% of all samples running grid demo show up in StyleResolver::canShareStyleWithElement, 20% of those due to getAttribute instead of fastGetAttribute
+ https://bugs.webkit.org/show_bug.cgi?id=92257
+
+ Reviewed by Andreas Kling.
+
+ This check was added 7 years ago by hyatt in:
+ http://trac.webkit.org/changeset/10984
+ And then later made slow after triggering an ASSERT added:
+ http://trac.webkit.org/changeset/97670
+
+ SVG uses a "type" attribute (and it is animatable), but only when
+ used on filter elements:
+ http://www.w3.org/TR/SVG/attindex.html
+ In any case, this does not apply here, and is certainly not what
+ this check was originally intended for.
+
+ I've moved the check to canShareStyleWithControl
+ as it is only needed when the elements in question are both input elements.
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::collectMatchingRulesForList):
+
+2012-07-26 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: add memory reporting routine to StyleResolver
+ https://bugs.webkit.org/show_bug.cgi?id=92259
+
+ Reviewed by Vsevolod Vlasov.
+
+ SyleResolver::reportMemoryUsage is added for estimating StyleResolver
+ memory footprint.
+
+ * css/StyleResolver.cpp:
+ (RuleData):
+ (RuleSet):
+ (RuleSetSelectorPair):
+ (WebCore::StyleResolver::Features::reportMemoryUsage):
+ (WebCore):
+ (WebCore::StyleResolver::collectMatchingRulesForList):
+ * css/StyleResolver.h:
+ (Features):
+ (StyleResolver):
+ * dom/Document.cpp:
+ (WebCore::Document::reportMemoryUsage):
+ * dom/MemoryInstrumentation.h:
+ (MemoryInstrumentation):
+ (WebCore::MemoryClassInfo::addInstrumentedHashSet):
+ (WebCore::MemoryClassInfo::addInstrumentedVector):
+ (WebCore::MemoryInstrumentation::addHashMap):
+ (WebCore):
+ (WebCore::MemoryInstrumentation::addInstrumentedCollection):
+
+2012-07-26 Tommy Widenflycht <tommyw@google.com>
+
+ MediaStream API: Remove DeprecatedPeerConnection
+ https://bugs.webkit.org/show_bug.cgi?id=92106
+
+ Reviewed by Adam Barth.
+
+ Since we are getting ready to add an updated PeerConnection
+ the old DeprecatedPeerConnection will have to go.
+
+ No new tests, and old tests converted to use PeerConnection00.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Modules/mediastream/DOMWindowMediaStream.idl:
+ * Modules/mediastream/DeprecatedPeerConnection.cpp: Removed.
+ * Modules/mediastream/DeprecatedPeerConnection.h: Removed.
+ * Modules/mediastream/DeprecatedPeerConnection.idl: Removed.
+ * Modules/mediastream/SignalingCallback.h: Removed.
+ * Modules/mediastream/SignalingCallback.idl: Removed.
+ * PlatformBlackBerry.cmake:
+ * PlatformEfl.cmake:
+ * UseJSC.cmake:
+ * WebCore.gypi:
+ * bindings/generic/RuntimeEnabledFeatures.h:
+ * bindings/js/JSDeprecatedPeerConnectionCustom.cpp: Removed.
+ * dom/EventTargetFactory.in:
+ * platform/mediastream/DeprecatedPeerConnectionHandler.h: Removed.
+ * platform/mediastream/DeprecatedPeerConnectionHandlerClient.h: Removed.
+ * platform/mediastream/blackberry/DeprecatedPeerConnectionHandler.cpp: Removed.
+ * platform/mediastream/chromium/DeprecatedPeerConnectionHandler.cpp: Removed.
+ * platform/mediastream/chromium/DeprecatedPeerConnectionHandlerInternal.cpp: Removed.
+ * platform/mediastream/chromium/DeprecatedPeerConnectionHandlerInternal.h: Removed.
+ * platform/mediastream/gstreamer/DeprecatedPeerConnectionHandler.cpp: Removed.
+
+2012-07-26 Mike West <mkwst@chromium.org>
+
+ CSP 1.1: Implement the Content Security Policy script interface.
+ https://bugs.webkit.org/show_bug.cgi?id=91707
+
+ Reviewed by Adam Barth.
+
+ The CSP 1.1 editor's draft defines a script interface that gives
+ developers the ability to query a document regarding the restrictions
+ set by it's currently active content security policy[1]. This patch
+ exposes that API in terms of a new DOMSecurityPolicy object.
+
+ Data for the API is gathered from the existing ContentSecurityPolicy
+ object on the containing document. CSP's various methods have been
+ extended with a `reportingStatus` parameter which, unsurprisingly,
+ determines whether a violation report should be sent for blocked
+ resources. This allows us to reuse the same codepaths by simply using
+ ContentSecurityPolicy::SuppressReport when querying on behalf of the
+ API, and ContentSecurityPolicy::SendReport when checking resources a
+ page wants to load.
+
+ This feature is gated on the CSP_NEXT flag, which is currently disabled
+ for all ports other than Chromium.
+
+ [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces--experimental
+
+ Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowconnectionto.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-alloweval.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowfontfrom.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowframefrom.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowimagefrom.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowmediafrom.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowobjectfrom.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowscriptfrom.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowstylefrom.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-isactive.html
+ http/tests/security/contentSecurityPolicy/1.1/securitypolicy-reporturi.html
+
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * WebCore.gypi:
+ * bindings/gobject/GNUmakefile.am:
+ * WebCore.xcodeproj/project.pbxproj:
+ We added a new object, so let's tell _everyone!_
+ * dom/Document.cpp:
+ (WebCore::Document::securityPolicy):
+ Expose the SecurityPolicy object via Document, gated on CSP_NEXT.
+ (WebCore):
+ * dom/Document.h:
+ (WebCore):
+ (Document):
+ * dom/Document.idl:
+ Adding the SecurityPolicy object to the document, gated on CSP_NEXT.
+ * page/ContentSecurityPolicy.cpp:
+ (CSPDirectiveList):
+ (WebCore::CSPDirectiveList::checkInline):
+ (WebCore::CSPDirectiveList::checkNonce):
+ (WebCore::CSPDirectiveList::checkSource):
+ Extracting the core checks out into separate methods.
+ (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
+ Use checkEval.
+ (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
+ Use checkNonce.
+ (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
+ Use checkInline.
+ (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
+ Use checkSource.
+ (WebCore::CSPDirectiveList::allowJavaScriptURLs):
+ (WebCore::CSPDirectiveList::allowInlineEventHandlers):
+ (WebCore::CSPDirectiveList::allowInlineScript):
+ (WebCore::CSPDirectiveList::allowInlineStyle):
+ (WebCore::CSPDirectiveList::allowEval):
+ (WebCore::CSPDirectiveList::allowScriptFromSource):
+ (WebCore::CSPDirectiveList::allowObjectFromSource):
+ (WebCore::CSPDirectiveList::allowChildFrameFromSource):
+ (WebCore::CSPDirectiveList::allowImageFromSource):
+ (WebCore::CSPDirectiveList::allowStyleFromSource):
+ (WebCore::CSPDirectiveList::allowFontFromSource):
+ (WebCore::CSPDirectiveList::allowMediaFromSource):
+ (WebCore::CSPDirectiveList::allowConnectToSource):
+ These methods now branch on `reportingStatus`: if `SendReoport`,
+ they call `checkXAndReportViolation`, otherwise, they call `checkX`.
+ (WebCore::CSPDirectiveList::gatherReportURIs):
+ New method that gathers the violation report URIs into a DOMStringList.
+ (WebCore::isAllowedByAllWithCallStack):
+ (WebCore::isAllowedByAllWithContext):
+ (WebCore::isAllowedByAllWithURL):
+ These now pass reportingStatus through to the various `allowX` methods.
+ (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
+ (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
+ (WebCore::ContentSecurityPolicy::allowInlineScript):
+ (WebCore::ContentSecurityPolicy::allowInlineStyle):
+ (WebCore::ContentSecurityPolicy::allowEval):
+ (WebCore::ContentSecurityPolicy::allowScriptFromSource):
+ (WebCore::ContentSecurityPolicy::allowObjectFromSource):
+ (WebCore::ContentSecurityPolicy::allowChildFrameFromSource):
+ (WebCore::ContentSecurityPolicy::allowImageFromSource):
+ (WebCore::ContentSecurityPolicy::allowStyleFromSource):
+ (WebCore::ContentSecurityPolicy::allowFontFromSource):
+ (WebCore::ContentSecurityPolicy::allowMediaFromSource):
+ (WebCore::ContentSecurityPolicy::allowConnectToSource):
+ These accept a new `reportingStatus` parameter, which is passed through
+ to the CSPDirectiveList methods.
+ (WebCore::ContentSecurityPolicy::isActive):
+ New method that returns `true` if policy is active.
+ (WebCore::ContentSecurityPolicy::gatherReportURIs):
+ New method that returns a DOMStringList of violation report URIs.
+ * page/ContentSecurityPolicy.h:
+ (WebCore):
+ * page/DOMSecurityPolicy.cpp: Added.
+ (WebCore::DOMSecurityPolicy::DOMSecurityPolicy):
+ (WebCore):
+ (WebCore::DOMSecurityPolicy::~DOMSecurityPolicy):
+ (WebCore::DOMSecurityPolicy::isActive):
+ (WebCore::DOMSecurityPolicy::reportURIs):
+ (WebCore::DOMSecurityPolicy::allowsInlineScript):
+ (WebCore::DOMSecurityPolicy::allowsInlineStyle):
+ (WebCore::DOMSecurityPolicy::allowsEval):
+ (WebCore::DOMSecurityPolicy::allowsConnectionTo):
+ (WebCore::DOMSecurityPolicy::allowsFontFrom):
+ (WebCore::DOMSecurityPolicy::allowsFrameFrom):
+ (WebCore::DOMSecurityPolicy::allowsImageFrom):
+ (WebCore::DOMSecurityPolicy::allowsMediaFrom):
+ (WebCore::DOMSecurityPolicy::allowsObjectFrom):
+ (WebCore::DOMSecurityPolicy::allowsScriptFrom):
+ (WebCore::DOMSecurityPolicy::allowsStyleFrom):
+ * page/DOMSecurityPolicy.h: Added.
+ (WebCore):
+ (DOMSecurityPolicy):
+ (WebCore::DOMSecurityPolicy::create):
+ * page/DOMSecurityPolicy.idl: Added.
+
+2012-07-26 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed. Fix build break on mac win port by r123716.
+
+ * platform/KURL.h:
+ (KURL):
+
+2012-07-26 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123715.
+ http://trac.webkit.org/changeset/123715
+ https://bugs.webkit.org/show_bug.cgi?id=92356
+
+ Breaks compilation on multiple platforms (Requested by vsevik
+ on #webkit).
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ * inspector/InspectorInstrumentation.h:
+ (InspectorInstrumentation):
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::InspectorResourceAgent::didReceiveData):
+ (WebCore::InspectorResourceAgent::getResponseBody):
+ * inspector/InspectorResourceAgent.h:
+ (InspectorResourceAgent):
+ * inspector/NetworkResourcesData.cpp:
+ (WebCore::NetworkResourcesData::ResourceData::ResourceData):
+ (WebCore::NetworkResourcesData::ResourceData::setContent):
+ (WebCore::NetworkResourcesData::ResourceData::dataLength):
+ (WebCore::NetworkResourcesData::ResourceData::appendData):
+ (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
+ (WebCore::NetworkResourcesData::setResourceContent):
+ (WebCore::NetworkResourcesData::maybeAddResourceData):
+ (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
+ (WebCore::NetworkResourcesData::setResourcesDataSizeLimits):
+ (WebCore::NetworkResourcesData::ensureFreeSpace):
+ * inspector/NetworkResourcesData.h:
+ (ResourceData):
+ (WebCore::NetworkResourcesData::ResourceData::cachedResource):
+ (NetworkResourcesData):
+ * loader/cache/CachedResource.cpp:
+ (WebCore::CachedResource::~CachedResource):
+ (WebCore::CachedResource::removeClient):
+ (WebCore::CachedResource::deleteIfPossible):
+ * loader/cache/CachedResource.h:
+ (CachedResource):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
+ (WebCore::CachedResourceLoader::clearPreloads):
+ * loader/cache/CachedResourceLoader.h:
+ (CachedResourceLoader):
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::MemoryCache::evict):
+ * testing/InternalSettings.cpp:
+ * testing/Internals.cpp:
+ * testing/Internals.h:
+ (Internals):
+
+2012-07-26 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Add *explicit* keyword to constructors in WebCore/platform
+ https://bugs.webkit.org/show_bug.cgi?id=92238
+
+ Reviewed by Kentaro Hara.
+
+ As a step to let *explicit* keyword add to constructors which have a parameter,
+ *explicit* keyword is added to Source/WebCore/platform in order to avoid implicit
+ type conversion.
+
+ Some files in platform directory can't use explicit keyword because of build breaks.
+
+ No new tests. Covered by existing tests.
+
+ * platform/AutodrainedPool.h:
+ (AutodrainedPool):
+ * platform/ContentType.h:
+ (ContentType):
+ * platform/ContextMenu.h:
+ (ContextMenu):
+ * platform/ContextMenuItem.h:
+ (ContextMenuItem):
+ * platform/Cursor.h:
+ (WebCore::SharedCursor::SharedCursor):
+ (Cursor):
+ * platform/KURL.h:
+ (WebCore::KURL::KURL):
+ (KURL):
+ * platform/KURLGooglePrivate.h:
+ (KURLGooglePrivate):
+ * platform/PODRedBlackTree.h:
+ (WebCore::PODRedBlackTree::PODRedBlackTree):
+ * platform/Pasteboard.h:
+ (Pasteboard):
+ * platform/PlatformEvent.h:
+ (WebCore::PlatformEvent::PlatformEvent):
+ * platform/PlatformKeyboardEvent.h:
+ (PlatformKeyboardEvent):
+ * platform/PlatformMouseEvent.h:
+ (PlatformMouseEvent):
+ * platform/PlatformPasteboard.h:
+ (PlatformPasteboard):
+ * platform/PlatformTouchEvent.h:
+ (PlatformTouchEvent):
+ * platform/PlatformWheelEvent.h:
+ (PlatformWheelEvent):
+ * platform/RunLoop.h:
+ (TimerBase):
+ * platform/ScrollAnimator.h:
+ (ScrollAnimator):
+ * platform/ScrollAnimatorNone.h:
+ (ScrollAnimatorNone):
+ * platform/SharedBuffer.h:
+ (SharedBuffer):
+ * platform/WheelFlingPlatformGestureCurve.h:
+ (WheelFlingPlatformGestureCurve):
+ * platform/Widget.h:
+ (Widget):
+
+2012-07-26 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Resource agent's reference to cached resources should be weak.
+ https://bugs.webkit.org/show_bug.cgi?id=92108
+
+ Reviewed by Pavel Feldman.
+
+ NetworkResourcesData now stores a raw pointer to CachedResource.
+ CachedResource now notifies InspectorInstrumentation that it will be destroyed.
+ InspectorInstrumentation stores a set of InstrumentingAgents and broadcasts willDestroyCachedResource event to all available resourceAgents.
+ Destroyed resources content is saved to NetworkResourcesData.
+ Changed content size variables type in NetworkResourcesData from int to size_t.
+
+ Tests: http/tests/inspector/network/cached-resource-destroyed-moved-to-storage.html
+ http/tests/inspector/network/cached-resource-destroyed-too-big-discarded.html
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ (WebCore::InspectorInstrumentation::willDestroyCachedResourceImpl):
+ (WebCore::InspectorInstrumentation::registerInstrumentingAgents):
+ (WebCore::InspectorInstrumentation::unregisterInstrumentingAgents):
+ * inspector/InspectorInstrumentation.h:
+ (InspectorInstrumentation):
+ (WebCore::InspectorInstrumentation::willDestroyCachedResource):
+ (WebCore):
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::InspectorResourceAgent::didReceiveData):
+ (WebCore::InspectorResourceAgent::willDestroyCachedResource):
+ (WebCore):
+ (WebCore::InspectorResourceAgent::getResponseBody):
+ * inspector/InspectorResourceAgent.h:
+ (InspectorResourceAgent):
+ * inspector/NetworkResourcesData.cpp:
+ (WebCore::NetworkResourcesData::ResourceData::ResourceData):
+ (WebCore::NetworkResourcesData::ResourceData::setContent):
+ (WebCore::NetworkResourcesData::ResourceData::dataLength):
+ (WebCore::NetworkResourcesData::ResourceData::appendData):
+ (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
+ (WebCore::NetworkResourcesData::setResourceContent):
+ (WebCore::NetworkResourcesData::maybeAddResourceData):
+ (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
+ (WebCore::NetworkResourcesData::removeCachedResource):
+ (WebCore):
+ (WebCore::NetworkResourcesData::setResourcesDataSizeLimits):
+ (WebCore::NetworkResourcesData::ensureFreeSpace):
+ * inspector/NetworkResourcesData.h:
+ (ResourceData):
+ (WebCore::NetworkResourcesData::ResourceData::base64Encoded):
+ (WebCore::NetworkResourcesData::ResourceData::cachedResource):
+ (NetworkResourcesData):
+ * loader/cache/CachedResource.cpp:
+ (WebCore::CachedResource::~CachedResource):
+ (WebCore::CachedResource::removeClient):
+ (WebCore::CachedResource::deleteIfPossible):
+ * loader/cache/CachedResource.h:
+ (CachedResource):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
+ (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
+ (WebCore::CachedResourceLoader::clearPreloads):
+ * loader/cache/CachedResourceLoader.h:
+ (CachedResourceLoader):
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::MemoryCache::evict):
+ * testing/InternalSettings.cpp:
+ * testing/Internals.cpp:
+ (WebCore::Internals::garbageCollectDocumentResources):
+ (WebCore):
+ * testing/Internals.h:
+ (Internals):
+
+2012-07-26 Luke Macpherson <macpherson@chromium.org>
+
+ Fix null ptr deref in CSSParser::storeVariableDeclaration().
+ https://bugs.webkit.org/show_bug.cgi?id=92333
+
+ Reviewed by Andreas Kling.
+
+ Fix null pointer deref that occurs if the CSSParserValue couldn't be converted to a CSSValue.
+
+ Test fast/css/variables/variable-unparseable-value-crash.html added.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::storeVariableDeclaration):
+
+2012-07-26 Shinya Kawanaka <shinyak@chromium.org>
+
+ Add UserAgentShadowDOM to FormControlElement just before adding AuthorShadowDOM
+ https://bugs.webkit.org/show_bug.cgi?id=90866
+
+ Reviewed by Hajime Morita.
+
+ It ensures that UserAgentShadowDOM is the oldest ShadowDOM.
+
+ To show ValidationMessage, WebKit adds a Shadow DOM to some of FormControlElements.
+ ValidationMessage assumes that the added Shadow DOM is the oldest, however, there was a case
+ that a page author might add a Shadow DOM before ValidationMessage adds a Shadow DOM.
+ It will break the assumption that the Shadow DOM added by ValidationMessage is the oldest.
+ So we have prohibited a page author adding a Shadow DOM to FormControlElement.
+
+ To add UserAgentShadowDOM, we use a callback which is called before a page author adding a Shadow DOM.
+ It adds a UserAgentShadowDOM if it does not exist, so we can ensure that UserAgentShadowDOM is the oldest.
+
+ Tests: fast/dom/shadow/input-with-validation-without-shadow.html
+ fast/dom/shadow/input-with-validation.html
+ fast/dom/shadow/shadowdom-for-button-complex-shadow.html
+ fast/dom/shadow/shadowdom-for-button-only-shadow.html
+ fast/dom/shadow/shadowdom-for-button-without-shadow.html
+ fast/dom/shadow/shadowdom-for-fieldset-complex-shadow.html
+ fast/dom/shadow/shadowdom-for-fieldset-only-shadow.html
+ fast/dom/shadow/shadowdom-for-fieldset-without-shadow.html
+ fast/dom/shadow/shadowdom-for-form-associated-element-useragent.html
+ fast/dom/shadow/shadowdom-for-keygen-complex-shadow.html
+ fast/dom/shadow/shadowdom-for-keygen-only-shadow.html
+ fast/dom/shadow/shadowdom-for-keygen-without-shadow.html
+ fast/dom/shadow/shadowdom-for-object-complex-shadow.html
+ fast/dom/shadow/shadowdom-for-object-only-shadow.html
+ fast/dom/shadow/shadowdom-for-object-without-shadow.html
+ fast/dom/shadow/shadowdom-for-output-complex-shadow.html
+ fast/dom/shadow/shadowdom-for-output-only-shadow.html
+ fast/dom/shadow/shadowdom-for-output-without-shadow.html
+ fast/dom/shadow/shadowdom-for-select-complex-shadow.html
+ fast/dom/shadow/shadowdom-for-select-only-shadow.html
+ fast/dom/shadow/shadowdom-for-select-without-shadow.html
+ fast/dom/shadow/shadowdom-for-textarea-complex-shadow.html
+ fast/dom/shadow/shadowdom-for-textarea-only-shadow.html
+ fast/dom/shadow/shadowdom-for-textarea-without-shadow.html
+
+ * dom/ShadowRoot.cpp:
+ (WebCore::allowsAuthorShadowRoot):
+ * html/FormAssociatedElement.cpp:
+ (WebCore::FormAssociatedElement::ensureUserAgentShadowRoot): Ensures the existence of a UserAgentShadowRoot.
+ If it does not exist, we create it with empty content.
+ (WebCore):
+ * html/FormAssociatedElement.h:
+ (FormAssociatedElement):
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::willAddAuthorShadowRoot):
+ (WebCore):
+ * html/HTMLFormControlElement.h:
+ (HTMLFormControlElement):
+ * html/ValidationMessage.cpp:
+ (WebCore::adjustBubblePosition): When AuthroShadowRoot does not a shadow element, ValidationMessage
+ does not have a renderer. So we have to check the existence of renderer.
+ (WebCore::ValidationMessage::buildBubbleTree):
+
+2012-07-26 Kaustubh Atrawalkar <kaustubh@motorola.com>
+
+ [DRT] LTC:: pageNumberForElementById() could be moved to Internals
+ https://bugs.webkit.org/show_bug.cgi?id=92091
+
+ Reviewed by Adam Barth.
+
+ Move the pageNumberForElementById from LayoutTestCotroller to Internals and
+ remove the old platform specific implementations as it exclusively tests WebCore functionality.
+
+ Covered by existing test cases.
+
+ * testing/Internals.cpp:
+ (WebCore::Internals::counterValue):
+ (WebCore):
+ (WebCore::Internals::pageNumber):
+ * testing/Internals.h:
+ (Internals):
+ (WebCore::Internals::pageNumber):
+ * testing/Internals.idl:
+
+2012-07-25 MORITA Hajime <morrita@google.com>
+
+ [Chromium][Win] <progress> animation on RTL direction is reverse
+ https://bugs.webkit.org/show_bug.cgi?id=92236
+
+ Reviewed by Kent Tamura.
+
+ This change modfies the way to handle RTL progress bar painting.
+ Originally it computes the flipped coordinates. This change uses transformation for the flip.
+ DirectionFlippingScope handles it.
+
+ * rendering/RenderThemeChromiumLinux.cpp:
+ (WebCore::RenderThemeChromiumLinux::paintProgressBar): Applied DirectionFlippingScope
+ * rendering/RenderThemeChromiumSkia.cpp:
+ (WebCore::RenderThemeChromiumSkia::determinateProgressValueRectFor):
+ - Deleted RTL handling in favor of DirectionFlippingScope
+ (WebCore::RenderThemeChromiumSkia::DirectionFlippingScope::DirectionFlippingScope):
+ (WebCore):
+ (WebCore::RenderThemeChromiumSkia::DirectionFlippingScope::~DirectionFlippingScope):
+ * rendering/RenderThemeChromiumSkia.h:
+ (RenderThemeChromiumSkia):
+ (DirectionFlippingScope): Added.
+ * rendering/RenderThemeChromiumWin.cpp:
+ (WebCore):
+ (WebCore::RenderThemeChromiumWin::paintProgressBar): Applied DirectionFlippingScope
+
+2012-07-25 Vineet Chaudhary <rgf748@motorola.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=92260
+ Repalce "int" with "long" from WebCore/*.idls
+
+ Reviewed by Adam Barth.
+
+ As per the WebIDL spec IDL shouldn't have int attributes but long instead.
+ Repalced attributes types int with long from WebCore/*.idls.
+
+ No new tests. TestObj.idl already covers this.
+ There should be no behavioural changes.
+
+ * dom/Touch.idl: Repalce int with long.
+ * dom/WebKitNamedFlow.idl: Ditto.
+ * html/canvas/ArrayBuffer.idl: Ditto.
+ * html/canvas/WebGLActiveInfo.idl: Ditto.
+ * html/canvas/WebGLShaderPrecisionFormat.idl: Ditto.
+ * page/WebKitAnimation.idl: Ditto.
+
+2012-07-25 Shinya Kawanaka <shinyak@chromium.org>
+
+ The elements in ShadowDOM of meter or progress should not be modifiable.
+ https://bugs.webkit.org/show_bug.cgi?id=92199
+
+ Reviewed by Hajime Morita.
+
+ A user can set -webkit-user-modify: read-write to the elements in Shadow DOM in a meter or progress element.
+ This might cause a undesired crash like Bug 65738. They should be unmodifiable.
+
+ We add default css values to elements in ShadowDOM of meter or progress to prohibit editing them.
+
+ Tests: fast/html/meter-user-modify.html
+ fast/html/progress-user-modify.html
+
+ * css/html.css:
+ Added -webkit-user-modify: read-only !important; for these elements so that they won't be
+ changed by a user.
+ (meter::-webkit-meter-bar):
+ (meter::-webkit-meter-optimum-value):
+ (meter::-webkit-meter-suboptimum-value):
+ (meter::-webkit-meter-even-less-good-value):
+ (progress::-webkit-progress-bar):
+ (progress::-webkit-progress-value):
+
+2012-07-25 Joshua Netterfield <jnetterfield@rim.com>
+
+ [BlackBerry] GraphicsContext3D::paintToCanvas should not swap 0th and 2nd components of color
+ https://bugs.webkit.org/show_bug.cgi?id=92314
+
+ Reviewed by Rob Buis.
+
+ No new tests, because it corrects existing functionality, but it makes BlackBerry
+ pass canvas-text.html and others.
+
+ * platform/graphics/GraphicsContext3D.h:
+ * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
+ (WebCore::GraphicsContext3D::paintToCanvas):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+ (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
+
+2012-07-25 Joshua Netterfield <jnetterfield@rim.com>
+
+ [BlackBerry] GraphicsContext3D::reshapeFBOs does not report when bound FBOs should be restored
+ https://bugs.webkit.org/show_bug.cgi?id=92304
+
+ Reviewed by Rob Buis.
+
+ No new tests, because it corrects existing functionality, but it makes BlackBerry
+ pass framebuffer-bindings-unaffected-on-resize.html.
+
+ * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
+ (WebCore::GraphicsContext3D::reshapeFBOs):
+
+2012-07-25 Joshua Netterfield <jnetterfield@rim.com>
+
+ [BlackBerry] readPixels should set alpha to 255 instead of 0 when alpha is disabled
+ https://bugs.webkit.org/show_bug.cgi?id=92303
+
+ Reviewed by Rob Buis.
+
+ No new tests, because it corrects existing functionality, but it makes BlackBerry
+ pass context-attributes-alpha-depth-stencil-antialias.html.
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore):
+ (WebCore::WebGLRenderingContext::readPixels):
+
+2012-07-25 Joshua Netterfield <jnetterfield@rim.com>
+
+ [WebGL] fast/canvas/webgl/framebuffer-object-attachment.html fails on certain platforms
+ https://bugs.webkit.org/show_bug.cgi?id=92296
+
+ Reviewed by Rob Buis.
+
+ No new tests, because it introduces no new functionality, only fixes the above mentioned test.
+
+ * html/canvas/WebGLFramebuffer.cpp:
+ (WebCore::WebGLFramebuffer::checkStatus):
+
+2012-07-25 Xingnan Wang <xingnan.wang@intel.com>
+
+ IndexedDB: IDBTransaction::abort() should throw DOMException
+ https://bugs.webkit.org/show_bug.cgi?id=92069
+
+ Reviewed by Kentaro Hara.
+
+ Keep aligned with the W3C spec.
+ http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBTransaction-abort-void
+
+ Test: storage/indexeddb/transaction-abort.html.
+
+ * Modules/indexeddb/IDBTransaction.cpp:
+ (WebCore::IDBTransaction::abort):
+ (WebCore):
+ * Modules/indexeddb/IDBTransaction.h:
+ (IDBTransaction):
+ * Modules/indexeddb/IDBTransaction.idl:
+
+2012-07-25 Tony Chang <tony@chromium.org>
+
+ flexitems can overflow the flexbox due to rounding
+ https://bugs.webkit.org/show_bug.cgi?id=92163
+
+ Reviewed by Levi Weintraub.
+
+ Don't round flex item sizes and use LayoutPoint for the location of flex items.
+
+ Test: css3/flexbox/flex-rounding.html
+
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
+ (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
+ (WebCore::RenderFlexibleBox::layoutColumnReverse):
+
+2012-07-25 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
+
+ [BlackBerry] Integrate certmgr with CredentialBackingStore
+ https://bugs.webkit.org/show_bug.cgi?id=92183
+
+ Reviewed by George Staikos.
+
+ Integrated BlackBerry::Platform::CertMgrWrapper with
+ CredentialBackingStore, when certmgr is ready we save
+ the password in certmgr and retrieve it from certmgr.
+
+ RIM PR: 171991
+ Internally reviewed by Joe Mason <jmason@rim.com>.
+
+ No new tests since there's no functional change.
+
+ * platform/network/blackberry/CredentialBackingStore.cpp:
+ (WebCore::hashCredentialInfo):
+ (WebCore):
+ (WebCore::CredentialBackingStore::CredentialBackingStore):
+ (WebCore::CredentialBackingStore::open):
+ (WebCore::CredentialBackingStore::addLogin):
+ (WebCore::CredentialBackingStore::updateLogin):
+ (WebCore::CredentialBackingStore::getLogin):
+ * platform/network/blackberry/CredentialBackingStore.h:
+ (CredentialBackingStore):
+
+2012-07-25 Kent Tamura <tkent@chromium.org>
+
+ REGRESSION(r121420): Performance regression of form state saving for pages with multiple forms
+ https://bugs.webkit.org/show_bug.cgi?id=91804
+
+ Reviewed by Hajime Morita.
+
+ The complexity of FormKeyGenerator::formKey() was O(N) where N is the
+ number form elements with an identical action URL, and formKey() is
+ called for every form. So, it's O(N^2). A page in www.reddit.com
+ contains hundreds of form elements with action="#". So FormController::
+ formElementsState() took a few seconds on a slow machine.
+
+ In order to avoid O(N^2) operation, storing a map from form signatures
+ to next index numbers, instead of storing existing formKey strings.
+
+ No new tests. Just a performance improvement.
+
+ Note: This is a re-landing of r123191. We rolled it out because of
+ suspicion of a performance regression. However it was innocent.
+
+ * html/FormController.cpp:
+ (FormKeyGenerator): Remove m_existingKeys. Add a map from a form
+ signature string to the next index number.
+ (WebCore::formSignature): Returns a signature string for a form, without
+ an index number. This is like "actionURL [name1 name2 ]"
+ (WebCore::FormKeyGenerator::formKey):
+ Creates a formKey string by concatenating a formSignature and #n. N is
+ obtained from m_formSignatureToNextIndexMap in O(1).
+ (WebCore::FormKeyGenerator::willDeleteForm):
+ Remove the code for m_existingKeys.
+
+2012-07-25 Benjamin Poulain <bpoulain@apple.com>
+
+ Initialize QualifiedName's strings from the read only data segment
+ https://bugs.webkit.org/show_bug.cgi?id=92226
+
+ Reviewed by Anders Carlsson.
+
+ Modify the initialization of static QualifiedName to initialize the AtomicString
+ with the data from the read only memory.
+
+ Overall, HTMLNames::init() gets 10% faster.
+
+ * dom/QualifiedName.cpp:
+ (WebCore::QualifiedName::QualifiedName):
+ * dom/QualifiedName.h:
+ (QualifiedName):
+ Remove the useless constructor taking a char* and get rid of the init() function.
+ The AtomicString representing the name should be constructed by the caller of QualifiedName.
+
+ Because the init() code is relatively large and is only executed once, it is important to
+ keep the AtomicString construction separate. The function createQualifiedName() was added
+ to improve the cache use. The short version let us reduce the code one more instruction per
+ call.
+
+ * dom/make_names.pl:
+ (printQualifiedNameMaker):
+ (printShortQualifiedNameMaker):
+ (printNamesCppFile):
+ (printDefinitions):
+
+2012-07-25 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Forms] Move HTMLInputElement::updateInnerTextValue to InputType class
+ https://bugs.webkit.org/show_bug.cgi?id=92230
+
+ Reviewed by Kent Tamura.
+
+ This patch moves implementaion of HTMLInputElement::updateInnerTextValue()
+ into input type classes, removes updateInnerTextValue() from HTMLInputElement,
+ and updates call site of updateInnerTextValue().
+
+ No new tests. This patch doesn't change behavior.
+
+ * html/DateInputType.cpp:
+ (WebCore::DateInputType::handleBlurEvent): Updated call site of updateInnerTextValue().
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::updateType): Updated call site of updateInnerTextValue().
+ (WebCore::HTMLInputElement::parseAttribute): Updated call site of updateInnerTextValue().
+ (WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement): Updated call site of updateInnerTextValue().
+ (WebCore::HTMLInputElement::setSuggestedValue): Updated call site of updateInnerTextValue().
+ * html/HTMLInputElement.h:
+ (HTMLInputElement): Removed updateInnerTextValue().
+ * html/InputType.cpp:
+ (WebCore::InputType::updateInnerTextValue): Added default implementaion.
+ * html/InputType.h:
+ (InputType): Added declaration of updateInnerTextValue().
+ * html/NumberInputType.cpp:
+ (WebCore::NumberInputType::handleBlurEvent): Updated call site of updateInnerTextValue().
+ * html/TextFieldInputType.cpp:
+ (WebCore::TextFieldInputType::setValue): Updated call site of updateInnerTextValue().
+ (WebCore::TextFieldInputType::updateInnerTextValue): Moved implementaion from HTMLInputElement.
+ * html/TextFieldInputType.h:
+ (TextFieldInputType): Added declaration of updateInnerTextValue().
+
+2012-07-25 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Move ephemeral data for a single frame in LayerRendererChromium into a structure with a scoped lifetime equal to the frame
+ https://bugs.webkit.org/show_bug.cgi?id=92294
+
+ Reviewed by Adrienne Walker.
+
+ The LayerRendererChromium class has a number of member variables that are used
+ while drawing a single frame. Because they are member variables, their lifetimes
+ are not clear, and some are even updated between frames, which is not needed.
+
+ This change creates a LRC::DrawingFrame structure that holds the data used
+ while drawing the current frame, and an instance of this structure is held
+ and passed around to functions in LayerRendererChromium, moving all of the
+ data out from being member variables on the class to being function
+ arguments on the relevant methods.
+
+ The projection and window matrices are a part of this frame data, and are not
+ used externally, so they are removed from the CCRenderer interface and included
+ within the DrawingFrame structure.
+
+ Covered by existing tests, no change in behaviour intended.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::LayerRendererChromium):
+ (WebCore::LayerRendererChromium::viewportChanged):
+ (WebCore::LayerRendererChromium::clearFramebuffer):
+ (WebCore::LayerRendererChromium::drawFrame):
+ (WebCore::LayerRendererChromium::drawRenderPass):
+ (WebCore::LayerRendererChromium::drawQuad):
+ (WebCore::LayerRendererChromium::drawCheckerboardQuad):
+ (WebCore::LayerRendererChromium::drawDebugBorderQuad):
+ (WebCore::LayerRendererChromium::drawBackgroundFilters):
+ (WebCore::LayerRendererChromium::drawRenderPassQuad):
+ (WebCore::LayerRendererChromium::drawSolidColorQuad):
+ (WebCore::LayerRendererChromium::drawTileQuad):
+ (WebCore::LayerRendererChromium::drawYUVVideoQuad):
+ (WebCore::LayerRendererChromium::drawStreamVideoQuad):
+ (WebCore::LayerRendererChromium::drawTextureQuad):
+ (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
+ (WebCore::LayerRendererChromium::finishDrawingFrame):
+ (WebCore::LayerRendererChromium::drawTexturedQuad):
+ (WebCore::LayerRendererChromium::copyTextureToFramebuffer):
+ (WebCore::LayerRendererChromium::isCurrentRenderPass):
+ (WebCore::LayerRendererChromium::useRenderPass):
+ (WebCore::LayerRendererChromium::useScopedTexture):
+ (WebCore::LayerRendererChromium::bindFramebufferToTexture):
+ (WebCore::LayerRendererChromium::setScissorToRect):
+ (WebCore::LayerRendererChromium::setDrawFramebufferRect):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (DrawingFrame):
+ (WebCore::LayerRendererChromium::DrawingFrame::DrawingFrame):
+ (LayerRendererChromium):
+ * platform/graphics/chromium/cc/CCRenderer.h:
+ (CCRenderer):
+
+2012-07-19 Adrienne Walker <enne@google.com>
+
+ [chromium] Make all compositor screen space transforms operate on content rects
+ https://bugs.webkit.org/show_bug.cgi?id=91807
+
+ Reviewed by Kenneth Russell.
+
+ Previously, surface screen space transforms operated on surface
+ content space but layer screen space transforms operated on layer
+ space. For the purpose of consistency, unify these two so that they
+ both operate on content space.
+
+ No tests, because no change in behavior expected. Just a refactoring.
+
+ * platform/graphics/chromium/LayerChromium.h:
+ (LayerChromium):
+ * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
+ (WebCore::CCDebugRectHistory::savePaintRects):
+ (WebCore::CCDebugRectHistory::savePropertyChangedRects):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::calculateDrawTransformsInternal):
+ (WebCore::CCLayerTreeHostCommon::findLayerThatIsHitByPoint):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::::markOccludedBehindLayer):
+ (WebCore::::occluded):
+ (WebCore::::unoccludedContentRect):
+
+2012-07-25 Dan Bernstein <mitz@apple.com>
+
+ Hit testing in one column or in the gap between cloumns along the block axis can return a result from the wrong column
+ https://bugs.webkit.org/show_bug.cgi?id=92311
+
+ Reviewed by Anders Carlsson.
+
+ Tests: fast/multicol/hit-test-end-of-column.html
+ fast/multicol/hit-test-gap-block-axis.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::positionForPointWithInlineChildren): To prevent hits after the last
+ line on a given column from returning the next line in the next column, added a check if
+ the hit occurred within the pagination strut of a line. Covered by the first test.
+ (WebCore::RenderBlock::adjustPointToColumnContents): Added clamp-to-column logic for the
+ block-axis case. This prevents hits near the bottom of the top half of the gap from bleeding
+ into the top of the next column. Covered by the second test.
+
+2012-07-25 David Grogan <dgrogan@chromium.org>
+
+ IndexedDB: Make db.version return an integer if appropriate
+ https://bugs.webkit.org/show_bug.cgi?id=92195
+
+ Reviewed by Tony Chang.
+
+ Make use of the existing IDBAny mechanism to return an integer if
+ integer versions have been used.
+
+ No new tests - no change in behavior expected.
+
+ * Modules/indexeddb/IDBDatabase.cpp:
+ (WebCore::IDBDatabase::version):
+ (WebCore):
+ * Modules/indexeddb/IDBDatabase.h:
+ (IDBDatabase):
+ * Modules/indexeddb/IDBDatabase.idl:
+
+2012-07-25 Michael Saboff <msaboff@apple.com>
+
+ Convert HTML parser to handle 8-bit resources without converting to UChar*
+ https://bugs.webkit.org/show_bug.cgi?id=90321
+
+ Reviewed by Geoffrey Garen.
+
+ No new tests, no new functionality therefore covered by existing tests.
+
+ Changed the parsing of HTML to handle 8-bit strings without converting the
+ whole string to 16-bits. Primary change was to use the appropriate
+ character pointer type (LChar* or UChar*) depending on the source string.
+ This access is abstracted in SegmentedSubstring by getCurrentChar{8,16} and
+ incrementAndGetCurrentChar{8,16} methods. In SegmentedString, the advance()
+ and advanceAndUpdateLineNumber() methods have been refactored into a
+ state machine managed pair of function pointers. The possible functions
+ have not only the 8 and 16 bitness factored out, they also have the
+ "exclude line numbers" logic factored out for advanceAndUpdateLineNumber().
+ This provides a net speed-up even with the 8/16 bit testing.
+ Other changes involve using String methods to access and compare with the
+ source data.
+
+ * html/FTPDirectoryDocument.cpp:
+ (WebCore::FTPDirectoryDocumentParser::append): Changed to use currentChar()
+ instead of SegmentedString '*' operator.
+ * html/parser/HTMLEntityParser.cpp: Changed to use currentChar() instead of
+ SegmentedString '*' operator.
+ * html/parser/HTMLParserIdioms.cpp:
+ (WebCore::stripLeadingAndTrailingHTMLSpaces): Added 8-bit fast path.
+ * html/parser/HTMLSourceTracker.cpp:
+ (WebCore::HTMLSourceTracker::sourceForToken): Changed to use currentChar() instead of
+ SegmentedString '*' operator.
+ * loader/cache/CachedScript.cpp:
+ (WebCore::CachedScript::script): Updated to use new String::dataSize() method.
+ * platform/text/SegmentedString.cpp:
+ (WebCore::SegmentedString::SegmentedString):
+ (WebCore::SegmentedString::operator=):
+ (WebCore::SegmentedString::clear):
+ (WebCore::SegmentedString::append):
+ (WebCore::SegmentedString::prepend):
+ (WebCore::SegmentedString::advanceSubstring):
+ (WebCore::SegmentedString::advance): Changed to be a wrapper that invokes current
+ advance function.
+ (WebCore::SegmentedString::advance8): Fast path advance function for 8 bit data.
+ (WebCore::SegmentedString::advance16): Fast path advance function for 16 bit data.
+ (WebCore::SegmentedString::advanceAndUpdateLineNumber8IncludeLineNumbers): Fast
+ path advanceAndUpdateLineNumber for 8 bit data when we need to update the line number.
+ (WebCore::SegmentedString::advanceAndUpdateLineNumber16IncludeLineNumbers): Fast
+ path advanceAndUpdateLineNumber for 16 bit data when we need to update the line number.
+ (WebCore::SegmentedString::advanceSlowCase): Slow case advance function for both
+ 8 and 16 bit advance.
+ (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase): Slow case
+ advanceAndUpdateLineNumber function for both 8 and 16 bit data.
+ (WebCore::SegmentedString::advanceEmpty): Advance function when input has been exhausted.
+ * platform/text/SegmentedString.h:
+ (WebCore::SegmentedSubstring::SegmentedSubstring):
+ (WebCore::SegmentedSubstring::clear):
+ (SegmentedSubstring):
+ (WebCore::SegmentedSubstring::is8Bit): New getter.
+ (WebCore::SegmentedSubstring::appendTo):
+ (WebCore::SegmentedSubstring::getCurrentChar8): New getter for the 8 bit case.
+ (WebCore::SegmentedSubstring::getCurrentChar16): New getter for the 16 bit case.
+ (WebCore::SegmentedSubstring::incrementAndGetCurrentChar8): New wrapper functions
+ that pre-increments the 8 bit pointer and returns the next character.
+ (WebCore::SegmentedSubstring::incrementAndGetCurrentChar16): New wrapper functions
+ that pre-increments the 16 bit pointer and returns the next character.
+ (WebCore::SegmentedSubstring::currentSubString):
+ (WebCore::SegmentedSubstring::getCurrentChar):
+ (WebCore::SegmentedSubstring::incrementAndGetCurrentChar):
+ (WebCore::SegmentedString::SegmentedString):
+ (WebCore::SegmentedString::push):
+ (WebCore::SegmentedString::isEmpty):
+ (WebCore::SegmentedString::lookAhead):
+ (WebCore::SegmentedString::lookAheadIgnoringCase):
+ (WebCore::SegmentedString::advance):
+ (WebCore::SegmentedString::advanceAndUpdateLineNumber):
+ (WebCore::SegmentedString::advanceAndASSERT):
+ (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
+ (WebCore::SegmentedString::advancePastNonNewline):
+ (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
+ (WebCore::SegmentedString::currentChar):
+ (WebCore::SegmentedString::setSlowCase): Set advance function pointers to slow case
+ functions.
+ (WebCore::SegmentedString::decrementAndCheckLength): Decrement substring length and
+ change to slow case functions when only one character left.
+ (WebCore::SegmentedString::setAdvanceFunctionPointers): Select appropriate advance
+ functions based on current substring.
+ (WebCore::SegmentedString::lookAheadInline): Changed to use String::startsWith().
+ (WebCore::SegmentedString::lookAheadSlowCase):
+ * xml/parser/CharacterReferenceParserInlineMethods.h:
+ (WebCore::consumeCharacterReference): Changed to use currentChar() instead of
+ SegmentedString '*' operator.
+ * xml/parser/MarkupTokenizerBase.h:
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek): Changed to use
+ currentChar() instead of SegmentedString '*' operator.
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
+
+2012-07-25 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123625 and r123672.
+ http://trac.webkit.org/changeset/123625
+ http://trac.webkit.org/changeset/123672
+ https://bugs.webkit.org/show_bug.cgi?id=92315
+
+ Broke Windows and gcc builds (Requested by rniwa on #webkit).
+
+ * platform/AutodrainedPool.h:
+ (AutodrainedPool):
+ * platform/ContentType.h:
+ (ContentType):
+ * platform/ContextMenu.h:
+ (ContextMenu):
+ * platform/ContextMenuItem.h:
+ (ContextMenuItem):
+ * platform/Cursor.h:
+ (WebCore::SharedCursor::SharedCursor):
+ (Cursor):
+ * platform/KURL.h:
+ (WebCore::KURL::KURL):
+ (KURL):
+ * platform/KURLGooglePrivate.h:
+ (KURLGooglePrivate):
+ * platform/PODRedBlackTree.h:
+ (WebCore::PODRedBlackTree::PODRedBlackTree):
+ * platform/Pasteboard.h:
+ (Pasteboard):
+ * platform/PlatformEvent.h:
+ (WebCore::PlatformEvent::PlatformEvent):
+ * platform/PlatformKeyboardEvent.h:
+ (PlatformKeyboardEvent):
+ * platform/PlatformMouseEvent.h:
+ (PlatformMouseEvent):
+ * platform/PlatformPasteboard.h:
+ (PlatformPasteboard):
+ * platform/PlatformTouchEvent.h:
+ (PlatformTouchEvent):
+ * platform/PlatformWheelEvent.h:
+ (PlatformWheelEvent):
+ * platform/RunLoop.h:
+ (TimerBase):
+ * platform/ScrollAnimator.h:
+ (ScrollAnimator):
+ * platform/ScrollAnimatorNone.h:
+ (ScrollAnimatorNone):
+ * platform/SharedBuffer.h:
+ (SharedBuffer):
+ * platform/WheelFlingPlatformGestureCurve.h:
+ (WheelFlingPlatformGestureCurve):
+ * platform/Widget.h:
+ (Widget):
+ * platform/network/cf/ResourceRequestCFNet.cpp:
+ (WebCore::ResourceRequest::doUpdateResourceRequest):
+
+2012-07-25 Ryosuke Niwa <rniwa@webkit.org>
+
+ Windows build fix attempt after r123625.
+
+ * platform/network/cf/ResourceRequestCFNet.cpp:
+ (WebCore::ResourceRequest::doUpdateResourceRequest):
+
+2012-07-25 Kwang Yul Seo <skyul@company100.net>
+
+ Read tag names and attributes from the saved tokens in HTMLTreeBuilder::resetInsertionModeAppropriately.
+ https://bugs.webkit.org/show_bug.cgi?id=92240
+
+ Reviewed by Adam Barth.
+
+ This is a follow-up patch for r123577. Added ItemType enum to HTMLStackItem to handle
+ the context element case.
+
+ No new tests, covered by existing tests.
+
+ * html/parser/HTMLStackItem.h:
+ (WebCore::HTMLStackItem::create):
+ (WebCore::HTMLStackItem::HTMLStackItem):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+ (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
+
+2012-07-25 Nico Weber <thakis@chromium.org>
+
+ [chromium/mac] Remove mac_bundle_resources section from WebCore.gyp
+ https://bugs.webkit.org/show_bug.cgi?id=92207
+
+ Reviewed by Tony Chang.
+
+ It's no longer needed after http://crrev.com/148290 and
+ http://crrev.com/148187.
+
+ * WebCore.gyp/WebCore.gyp:
+
+2012-07-25 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Move WebFilterOperations from RenderPassDrawQuad to RenderPass
+ https://bugs.webkit.org/show_bug.cgi?id=91885
+
+ Reviewed by Adrienne Walker.
+
+ We move the filter operations to CCRenderPass to avoid having
+ variable-length data in a WebCompositorQuad in order to serialize,
+ and also to avoid requiring a virtual destructor for the quad
+ classes.
+
+ The drawFrame method now takes a CCRenderPassIdHashMap in order
+ to connect RenderPass quads to their source RenderPass.
+
+ Covered by existing tests.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
+ (WebCore::LayerRendererChromium::drawFrame):
+ (WebCore::LayerRendererChromium::beginDrawingFrame):
+ (WebCore::LayerRendererChromium::drawBackgroundFilters):
+ (WebCore::LayerRendererChromium::drawRenderPassQuad):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (LayerRendererChromium):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ (WebCore::CCLayerTreeHostImpl::drawLayers):
+ * platform/graphics/chromium/cc/CCRenderPass.h:
+ (WebCore::CCRenderPass::filters):
+ (WebCore::CCRenderPass::setFilters):
+ (CCRenderPass):
+ (WebCore::CCRenderPass::backgroundFilters):
+ (WebCore::CCRenderPass::setBackgroundFilters):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
+ (WebCore::CCRenderPassDrawQuad::create):
+ (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
+ (CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::appendQuads):
+ * platform/graphics/chromium/cc/CCRenderer.h:
+ (CCRenderer):
+
+2012-07-25 Mike Reed <reed@google.com>
+
+ fix test in beginLayerClippedToImage to check for immutability if we're going to do a shallow-copy
+ https://bugs.webkit.org/show_bug.cgi?id=92276
+
+ Reviewed by Stephen White.
+
+ PlatformContextSkia::beginLayerClippedToImage
+
+ This function wants to apply the provided ImageBuffer as a clip. Skia does not support this natively yet,
+ so the code makes a "copy" of that imageBuffer, to be applied later. The old code, wanting to avoid a
+ deep copy if possible, checked for the presence of a SkPixelRef. If it found one, it made a shallow copy.
+ This is flawed, since the contents of a pixelref are not guaranteed to be immutable. The new code checks
+ against this attribute: if the bitmap is "immutable" then we can make a shallow-copy, else we make a
+ deep copy.
+
+ No new tests. Existing svg layouttests work w/ or w/out this change, but at the next Skia deps roll, we see
+ failures w/o this change. The change is more "correct", though the problem case does not exhibit itself until
+ Skia rev. 4722 or later lands.
+
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PlatformContextSkia::beginLayerClippedToImage):
+
+2012-07-25 Li Yin <li.yin@intel.com>
+
+ It is invalid when both numberOfInputChannels and numberOfOutputChannels to be zero in JavaScriptAudioNode.
+ https://bugs.webkit.org/show_bug.cgi?id=91364
+
+ Reviewed by Kenneth Russell.
+
+ Spec: http://www.w3.org/TR/webaudio/#JavaScriptAudioNode-section
+ It is invalid for both numberOfInputChannels and numberOfOutputChannels to be zero.
+
+ Test: webaudio/javascriptaudionode.html
+
+ * Modules/webaudio/JavaScriptAudioNode.cpp:
+ (WebCore::JavaScriptAudioNode::create):
+
+2012-07-24 Shawn Singh <shawnsingh@chromium.org>
+
+ [chromium] Refactor CCLayerTreeHostCommon: move root layer special case initialization into internal code.
+ https://bugs.webkit.org/show_bug.cgi?id=88953
+
+ Reviewed by Adrienne Walker.
+
+ This is part 1 of trying to reduce the root layer special
+ case. This tries to reduce the special-ness of the root layer from
+ the perspective of outside code.
+
+ After this patch, code that uses calcDrawTransforms() no longer
+ needs to initialize the root layer's surface, and no longer needs
+ to manually append the root layer to the renderSurfaceLayerList.
+
+ Unit tests were also updated (much cleaner!) to account for this change.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::updateLayers):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore):
+ (WebCore::setupRootLayerAndSurfaceForRecursion):
+ (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
+ (CCLayerTreeHostCommon):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
+
+2012-07-25 Taiju Tsuiki <tzik@chromium.org>
+
+ FileSystem should provide a way to delete filesystem.
+ https://bugs.webkit.org/show_bug.cgi?id=91861
+
+ Reviewed by Adam Barth.
+
+ We will add a test when we wire-up the feature to Inspector.
+
+ * Modules/filesystem/LocalFileSystem.cpp: Add deleteFileSystem
+ (WebCore::deleteFileSystem):
+ (WebCore):
+ (WebCore::LocalFileSystem::deleteFileSystem):
+ * Modules/filesystem/LocalFileSystem.h:
+ (LocalFileSystem):
+ * platform/AsyncFileSystem.cpp: Add deleteFileSystem
+ (WebCore):
+ (WebCore::AsyncFileSystem::deleteFileSystem):
+ * platform/AsyncFileSystem.h:
+ (AsyncFileSystem):
+ * platform/blackberry/AsyncFileSystemBlackBerry.cpp: Add deleteFileSystem
+ (WebCore::AsyncFileSystem::deleteFileSystem):
+ (WebCore):
+ * platform/gtk/AsyncFileSystemGtk.cpp: Add deleteFileSystem
+ (WebCore::AsyncFileSystem::deleteFileSystem):
+ (WebCore):
+
+2012-07-25 Andrey Adaikin <aandrey@chromium.org>
+
+ Web Inspector: Add more jsdocs to InjectedScriptSource.js
+ https://bugs.webkit.org/show_bug.cgi?id=92255
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/InjectedScriptSource.js:
+
+2012-07-24 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Turn the debug HUD into a layer so that it can be drawn as a WebCompositorQuad
+ https://bugs.webkit.org/show_bug.cgi?id=92182
+
+ Reviewed by Adrienne Walker.
+
+ By changing the HUD into a quad, we are able to create a HUD and pass
+ it to the host compositor, allowing the HUD to be used for renderers
+ under Ubercompositor.
+
+ This also removes the special drawing code for the HUD from
+ LayerRendererChromium, allowing us to move finishDrawingFrame
+ into LayerRendererChromium as a private method and remove it
+ from the CCRenderer interface.
+
+ Finally, we can remove the CCFontAtlas transport code from CCProxy
+ and its implementations as the atlas can be synced to impl thread
+ through the usual layer commit mechanism.
+
+ The debug HUD is not covered by tests.
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp: Added.
+ (WebCore):
+ (WebCore::HeadsUpDisplayLayerChromium::create):
+ (WebCore::HeadsUpDisplayLayerChromium::HeadsUpDisplayLayerChromium):
+ (WebCore::HeadsUpDisplayLayerChromium::~HeadsUpDisplayLayerChromium):
+ (WebCore::HeadsUpDisplayLayerChromium::createCCLayerImpl):
+ * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h: Added.
+ (WebCore):
+ (HeadsUpDisplayLayerChromium):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawFrame):
+ (WebCore::LayerRendererChromium::cleanupSharedObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (LayerRendererChromium):
+ * platform/graphics/chromium/cc/CCDebugRectHistory.cpp:
+ (WebCore::CCDebugRectHistory::savePropertyChangedRects):
+ * platform/graphics/chromium/cc/CCDebugRectHistory.h:
+ * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp.
+ (WebCore):
+ (WebCore::CCHeadsUpDisplayLayerImpl::CCHeadsUpDisplayLayerImpl):
+ (WebCore::CCHeadsUpDisplayLayerImpl::~CCHeadsUpDisplayLayerImpl):
+ (WebCore::CCHeadsUpDisplayLayerImpl::willDraw):
+ (WebCore::CCHeadsUpDisplayLayerImpl::appendQuads):
+ (WebCore::CCHeadsUpDisplayLayerImpl::didDraw):
+ (WebCore::CCHeadsUpDisplayLayerImpl::didLoseContext):
+ (WebCore::CCHeadsUpDisplayLayerImpl::drawHudContents):
+ (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounter):
+ (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounterText):
+ (WebCore::CCHeadsUpDisplayLayerImpl::drawDebugRects):
+ * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.h.
+ (WebCore):
+ (CCHeadsUpDisplayLayerImpl):
+ (WebCore::CCHeadsUpDisplayLayerImpl::create):
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (WebCore::CCLayerImpl::layerIsAlwaysDamaged):
+ This flag is used to mark the HUD as always damaged, so that it is
+ continually drawn on the impl thread. It is also used as a hint by
+ the CCDebugRectHistory class to not include the layer in the display
+ of damage, since always damaged is not interesting damage.
+ (CCLayerImpl):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::create):
+ (WebCore::CCLayerTreeHost::CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::initialize):
+ (WebCore::CCLayerTreeHost::willCommit):
+ (WebCore::CCLayerTreeHost::didCommit):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (CCLayerTreeSettings):
+ (WebCore::CCLayerTreeSettings::showDebugInfo):
+ (WebCore::CCLayerTreeSettings::showDebugRects):
+ (CCLayerTreeHost):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
+ (WebCore::CCLayerTreeHostImpl::drawLayers):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ (WebCore):
+ (CCLayerTreeHostImpl):
+ * platform/graphics/chromium/cc/CCProxy.h:
+ (CCProxy):
+ * platform/graphics/chromium/cc/CCRenderer.h:
+ (CCRenderer):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+ (CCThreadProxy):
+
+2012-07-25 'Pavel Feldman' <pfeldman@chromium.org>
+
+ Web Inspector: follow up to r123612, fixing CSS value suggest.
+
+ Not reviewed, minor JS fix.
+
+ * inspector/front-end/CSSCompletions.js:
+ (WebInspector.CSSCompletions):
+ * inspector/front-end/StylesSidebarPane.js:
+ (WebInspector.StylePropertyTreeElement.prototype):
+
+2012-07-25 Michael Saboff <msaboff@apple.com>
+
+ Unreviewed build fix after r123624.
+
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::clearGeolocationOverride):
+ Changed ASSERT_UNUSED() to UNUSED_PARAM().
+
+2012-07-25 Pavel Feldman <pfeldman@chromium.org>
+
+ Web inspector auto-completes "optimizequality" but then complains
+ https://bugs.webkit.org/show_bug.cgi?id=92262
+
+ Reviewed by Timothy Hatcher.
+
+ Fixed optimizeSpeed, optimizeLegibility, geometricPrecision.
+
+ * inspector/front-end/CSSKeywordCompletions.js:
+
+2012-07-25 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=89114
+ REGRESSION (r112919): Setting scrollTop after setting display from none to block
+ fails
+ -and corresponding-
+ <rdar://problem/11656050>
+
+ Reviewed by Simon Fraser.
+
+ ScrollAnimatorMac::immediateScrollTo() and ScrollAnimatorMac::immediateScrollBy()
+ both have an optimization in place so that they do not call
+ notifyPositionChanged() if the new scroll offset matches the ScrollAnimator's
+ cached m_currentPosX and m_currentPosY. So revision 112919 caused troubled with
+ this optimization because it allowed RenderLayers to restore a scrollOffset from
+ the Element if there is one cached there. This caused the RenderLayer to have a
+ scrollOffset that is improperly out-of-synch with the ScrollAnimator's
+ currentPosition (which will just be 0,0 since it is being re-created like the
+ RenderLayer). This fix makes sure they are in synch by calling
+ setCurrentPosition() on the ScrollAnimator when the cached position is non-zero.
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::RenderLayer):
+
+2012-07-25 Andreas Kling <kling@webkit.org>
+
+ Make ElementAttributeData a variable-sized object to reduce memory use.
+ <http://webkit.org/b/88240>
+
+ Reviewed by Ryosuke Niwa.
+
+ Take advantage of the fact that we know at ElementAttributeData construction time how many attributes
+ it needs to accomodate and allocate exactly as much space as needed instead of using a Vector.
+ For elements that never have their attribute list mutated (the vast majority), this saves a lot of
+ memory and removes the indirection to Vector<Attribute>'s heap-allocated storage.
+
+ Introduced a mutability flag to ElementAttributeData and sprinkled assertions all over to make sure
+ that nothing tries to mutate an element with a raw attribute array.
+
+ When an Element's attribute(s) are mutated, we reconstruct the ElementAttributeData, this time using
+ a Vector as backing instead. This is triggered when calling Element::mutableAttributeData().
+
+ This reduces memory consumption by 3.2MB when viewing the full HTML5 spec at <http://whatwg.org/c/>.
+ That is a ~35% reduction in DOM attribute memory use.
+
+ Furthermore, that page ends up promoting 27% of the elements to mutable attribute storage due to dynamic
+ adding of "class" attributes. For more static pages, savings are even greater.
+
+ Also did away with ElementAttributeData::removeAttribute(name) and do separate index lookup where
+ needed. Not a big deal but avoids double lookup of attributes when removing them.
+
+ * dom/Element.cpp:
+ (WebCore::Element::detachAttribute):
+ (WebCore::Element::removeAttribute):
+ (WebCore::Element::attributes):
+ (WebCore::Element::setAttributeInternal):
+ (WebCore::Element::parserSetAttributes):
+ (WebCore::Element::hasEquivalentAttributes):
+ (WebCore::Element::setAttributeNode):
+ (WebCore::Element::removeAttributeNode):
+ (WebCore::Element::getAttributeNode):
+ (WebCore::Element::getAttributeNodeNS):
+ (WebCore::Element::hasAttribute):
+ (WebCore::Element::hasAttributeNS):
+ (WebCore::Element::cloneAttributesFromElement):
+
+ Sprinkle const on ElementAttributeData* pointers.
+ Switch to using mutableAttributeData() in code paths that modify attributes.
+
+ (WebCore::Element::normalizeAttributes):
+
+ Cleaner iteration over attributes, I removed ElementAttributeData::attributeVector() since that
+ was just incurring a bunch of extra Vector copying. Since ElementAttributeData already exposes
+ length() and attributeItem(index), use those to iterate directly over the attributes.
+
+ (WebCore::Element::createMutableAttributeData):
+
+ Added, converts existing ElementAttributeData to a mutable object. Otherwise creates a new
+ ElementAttributeData (mutable and empty.)
+
+ * dom/Element.h:
+ (WebCore::Element::attributeData):
+ (WebCore::Element::updatedAttributeData):
+ (WebCore::Element::ensureAttributeData):
+ (WebCore::Element::ensureUpdatedAttributeData):
+
+ Made all of these return "const ElementAttributeData*" to ensure at compile-time that nothing
+ attempts to modify an ElementAttributeData that may be immutable.
+
+ ensureUpdatedAttributeData() is still const, despite possibly calling mutableAttributeData().
+ The goal of having methods be const is to prevent conversion from one ElementAttributeData
+ object to another, so that pointers remain intact and no unnecessary work gets done.
+
+ (WebCore::Element::mutableAttributeData):
+
+ Added, returns a guaranteed mutable ElementAttributeData* pointer.
+
+ * dom/ElementAttributeData.cpp:
+ (WebCore::ElementAttributeData::createImmutable):
+
+ Creates a new ElementAttributeData tailored to fit the provided Vector<Attribute>.
+
+ (WebCore::ElementAttributeData::ElementAttributeData):
+
+ Moved constructors out-of-line, getting too complex for header files.
+
+ ElementAttributeData(const Vector<Attribute>&) creates an immutable ElementAttributeData
+ containing the provided attributes in an array tacked onto the end of the object.
+
+ (WebCore::ElementAttributeData::~ElementAttributeData):
+
+ Free the attribute vector if mutable.
+ For immutable objects, manually invoke destructor on each Attribute object,
+ since these won't be destroyed automatically by ~ElementAttributeData.
+
+ (WebCore::ElementAttributeData::attrIfExists):
+
+ (WebCore::ElementAttributeData::ensureAttr):
+ (WebCore::ElementAttributeData::setAttr):
+ (WebCore::ElementAttributeData::removeAttr):
+
+ Make these const, as they should always have been- they don't affect the ElementAttributeData,
+ only the global DOM Attr <-> ElementAttributeData mappings.
+
+ (WebCore::ElementAttributeData::ensureInlineStyle):
+ (WebCore::ElementAttributeData::ensureMutableInlineStyle):
+
+ Sprinkle ASSERT(isMutable()). This doesn't mean that all Elements with inline styles automatically
+ have mutable attribute data. There's still inlineStyle() for that, which may return null.
+ These are only for use where you need a valid StylePropertySet*, even if there is no inline style
+ attribute, e.g in editing code that wants to add style.
+
+ (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
+ (WebCore::ElementAttributeData::destroyInlineStyle):
+
+ Make these const. While destroyInlineStyle() doesn't sound very const-y, immutable objects that
+ contain a style attribute will have a valid inlineStyle() with that style data. This is just
+ an interface for ~StyledElement to destroy the style object.
+ It'd be nice to do that in ~ElementAttributeData(), but we need a StyledElement* pointer to
+ clean up properly and we don't store one in this class.
+
+ (WebCore::ElementAttributeData::addAttribute):
+ (WebCore::ElementAttributeData::removeAttribute):
+ (WebCore::ElementAttributeData::clearAttributes):
+ (WebCore::ElementAttributeData::replaceAttribute):
+
+ Sprinkle ASSERT(isMutable()).
+ Always go straight for m_mutableAttributeVector since we know that's the storage being used.
+
+ (WebCore::ElementAttributeData::isEquivalent):
+ (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
+ (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
+ (WebCore::ElementAttributeData::removeAttribute):
+ (WebCore::ElementAttributeData::getAttributeItem):
+ (WebCore::ElementAttributeData::getAttributeItemIndex):
+
+ Use length() and attributeItem(index) to iterate over the attributes.
+
+ (WebCore::ElementAttributeData::cloneDataFrom):
+
+ Sprinkle ASSERT(isMutable()). Added a FIXME that cloning elements could create immutable
+ attribute data. I'm not sure this optimization is worthwhile, as cloning elements is already
+ a semi-rare occurrence.
+
+ Updated code to handle both immutable and mutable source objects. This could
+
+ (WebCore::ElementAttributeData::getAttributeNode):
+
+ Const correctness.
+
+ * dom/ElementAttributeData.h:
+ (ElementAttributeData):
+
+ Turn attribute storage into what's effectively union { OwnPtr<Vector<Attribute>>; Attribute[]; }
+ The new m_isMutable bit determines which union member should be used for access.
+
+ (WebCore::ElementAttributeData::create):
+ (WebCore::ElementAttributeData::createImmutable):
+
+ Added createImmutable(const Vector<Attribute>&) as a complement to create().
+
+ (WebCore::ElementAttributeData::setClass):
+ (WebCore::ElementAttributeData::setIdForStyleResolution):
+ (WebCore::ElementAttributeData::inlineStyle):
+ (WebCore::ElementAttributeData::setAttributeStyle):
+
+ Make these const, and their data member counterparts 'mutable'.
+ An immutable ElementAttributeData object still has m_classNames, m_idForStyleResolution,
+ m_inlineStyleDecl and m_attributeStyle.
+
+ (WebCore::ElementAttributeData::reportMemoryUsage):
+
+ Updated for isMutable().
+
+ (WebCore::ElementAttributeData::makeMutable):
+
+ Returns a mutable clone of itself.
+
+ (WebCore::ElementAttributeData::isEmpty):
+ (WebCore::ElementAttributeData::length):
+ (WebCore::ElementAttributeData::attributeItem):
+
+ Check isMutable() to know how to access attribute storage.
+
+ * dom/StyledElement.cpp:
+ (WebCore::StyledElement::style):
+ (WebCore::StyledElement::setInlineStyleProperty):
+
+ Simplify by using StyledElement::ensureInlineStyle().
+
+ (WebCore::StyledElement::classAttributeChanged):
+
+ Use mutableAttributeData() if the attribute is being removed completely.
+ In other cases, tiptoe around without causing the attribute data to go mutable.
+
+ (WebCore::StyledElement::removeInlineStyleProperty):
+
+ Use mutableAttributeData() if/when actually removing something.
+
+ (WebCore::StyledElement::addSubresourceAttributeURLs):
+
+ Const correctness.
+
+ * dom/StyledElement.h:
+ (WebCore::StyledElement::ensureInlineStyle):
+
+ This now implies conversion to mutable attribute data. Used by codepaths that add/remove
+ properties, so conversion is inevitable.
+
+ * html/parser/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
+ (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
+ * svg/properties/SVGAnimatedPropertyMacros.h:
+ (WebCore::SVGSynchronizableAnimatedProperty::synchronize):
+
+ Use mutableAttributeData() as appropriate.
+
+ * xml/parser/XMLDocumentParserQt.cpp:
+ (WebCore::XMLDocumentParser::XMLDocumentParser):
+
+ Const correctness.
+
+2012-07-25 Andrew Wilson <atwilson@chromium.org>
+
+ Unreviewed, rolling out r123560.
+ http://trac.webkit.org/changeset/123560
+ https://bugs.webkit.org/show_bug.cgi?id=90321
+
+ Breaks chromium valgrind tests.
+
+ * html/FTPDirectoryDocument.cpp:
+ (WebCore::FTPDirectoryDocumentParser::append):
+ * html/parser/HTMLEntityParser.cpp:
+ (WebCore::HTMLEntityParser::consumeNamedEntity):
+ * html/parser/HTMLParserIdioms.cpp:
+ (WebCore::stripLeadingAndTrailingHTMLSpaces):
+ * html/parser/HTMLSourceTracker.cpp:
+ (WebCore::HTMLSourceTracker::sourceForToken):
+ * loader/cache/CachedScript.cpp:
+ (WebCore::CachedScript::script):
+ * platform/text/SegmentedString.cpp:
+ (WebCore::SegmentedString::SegmentedString):
+ (WebCore::SegmentedString::operator=):
+ (WebCore::SegmentedString::clear):
+ (WebCore::SegmentedString::append):
+ (WebCore::SegmentedString::prepend):
+ (WebCore::SegmentedString::advanceSubstring):
+ (WebCore::SegmentedString::advance):
+ (WebCore::SegmentedString::advanceSlowCase):
+ (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase):
+ * platform/text/SegmentedString.h:
+ (WebCore::SegmentedSubstring::SegmentedSubstring):
+ (WebCore::SegmentedSubstring::clear):
+ (WebCore::SegmentedSubstring::appendTo):
+ (SegmentedSubstring):
+ (WebCore::SegmentedString::SegmentedString):
+ (WebCore::SegmentedString::push):
+ (WebCore::SegmentedString::isEmpty):
+ (WebCore::SegmentedString::lookAhead):
+ (WebCore::SegmentedString::lookAheadIgnoringCase):
+ (WebCore::SegmentedString::advance):
+ (WebCore::SegmentedString::advanceAndASSERT):
+ (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
+ (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
+ (SegmentedString):
+ (WebCore::SegmentedString::advancePastNonNewline):
+ (WebCore::SegmentedString::advanceAndUpdateLineNumber):
+ (WebCore::SegmentedString::operator*):
+ (WebCore::SegmentedString::operator->):
+ (WebCore::SegmentedString::current):
+ (WebCore::SegmentedString::equalsLiterally):
+ (WebCore::SegmentedString::equalsIgnoringCase):
+ (WebCore::SegmentedString::lookAheadInline):
+ (WebCore::SegmentedString::lookAheadSlowCase):
+ * xml/parser/CharacterReferenceParserInlineMethods.h:
+ (WebCore::consumeCharacterReference):
+ * xml/parser/MarkupTokenizerBase.h:
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek):
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
+
+2012-07-25 Konrad Piascik <kpiascik@rim.com>
+
+ Web Inspector: Geolocation override
+ https://bugs.webkit.org/show_bug.cgi?id=89365
+
+ Reviewed by Pavel Feldman.
+
+ Re-added the m_page member variable for GeolocationController since
+ it's now being used by InspectorInstrumentaiton.
+
+ Added a way to override the GeolocationPosition and GeolocationError
+ using Web Inspector. Curretnly only PositionError can be set.
+
+ This will be hidden behind the experiments flag for now.
+
+ Tests: inspector/geolocation-error.html
+ inspector/geolocation-success.html
+ inspector/geolocation-watchPosition.html
+
+ * English.lproj/localizedStrings.js:
+ * Modules/geolocation/GeolocationController.cpp:
+ (WebCore::GeolocationController::GeolocationController):
+ (WebCore::GeolocationController::positionChanged):
+ * Modules/geolocation/GeolocationController.h:
+ (GeolocationController):
+ * inspector/Inspector.json:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ (WebCore::InspectorInstrumentation::overrideGeolocationPositionImpl):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore):
+ (InspectorInstrumentation):
+ (WebCore::InspectorInstrumentation::overrideGeolocationPosition):
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::InspectorPageAgent):
+ (WebCore::InspectorPageAgent::setGeolocationOverride):
+ (WebCore):
+ (WebCore::InspectorPageAgent::clearGeolocationOverride):
+ (WebCore::InspectorPageAgent::canOverrideGeolocation):
+ (WebCore::InspectorPageAgent::overrideGeolocationPosition):
+ * inspector/InspectorPageAgent.h:
+ * inspector/front-end/Settings.js:
+ * inspector/front-end/SettingsScreen.js:
+ (WebInspector.UserAgentSettingsTab):
+ (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
+ (WebInspector.UserAgentSettingsTab.prototype._onGeolocationOverrideCheckboxClicked):
+ (WebInspector.UserAgentSettingsTab.prototype._applyGeolocationUserInput):
+ (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition.set if):
+ (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition):
+ (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement.createInput):
+ (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
+ * inspector/front-end/UserAgentSupport.js:
+ (WebInspector.UserAgentSupport.GeolocationPosition):
+ (WebInspector.UserAgentSupport.GeolocationPosition.prototype.toSetting):
+ (WebInspector.UserAgentSupport.GeolocationPosition.parseSetting):
+ (WebInspector.UserAgentSupport.GeolocationPosition.parseUserInput):
+ (WebInspector.UserAgentSupport.GeolocationPosition.clearGeolocationOverride):
+ * inspector/front-end/inspector.js:
+ (WebInspector.doLoadedDone):
+
+2012-07-25 Shawn Singh <shawnsingh@chromium.org>
+
+ [chromium] Build fix for clang builds after r123628
+ https://bugs.webkit.org/show_bug.cgi?id=92266
+
+ Reviewed by Adrienne Walker.
+
+ An un-used variable was causing build failures for clang builds
+ after the refactoring in r123628. It is correct to simply remove
+ this value.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::calculateDrawTransformsInternal):
+
+2012-07-25 Hans Wennborg <hans@chromium.org>
+
+ Speech JavaScript API: extract function from SpeechRecognitionResult::emma()
+ https://bugs.webkit.org/show_bug.cgi?id=92232
+
+ Reviewed by Adam Barth.
+
+ Extract code for creating emma-qualified names to a helper function.
+
+ Just a refactoring; covered by the existing test.
+
+ * Modules/speech/SpeechRecognitionResult.cpp:
+ (WebCore::emmaQualifiedName):
+ (WebCore):
+ (WebCore::SpeechRecognitionResult::emma):
+
+2012-07-25 Adrienne Walker <enne@google.com>
+
+ [chromium] Unify compositor quadTransform/drawTransform/originTransform
+ https://bugs.webkit.org/show_bug.cgi?id=91417
+
+ Reviewed by Kenneth Russell.
+
+ drawTransform used to operate on centered layer rects. To unify quad
+ transforms, draw transforms, and origin transforms, make draw
+ transforms operate on content rects with the origin in the top left.
+
+ This essentially eliminates the need for surface origin transforms,
+ which will be eliminated in a future patch.
+
+ Also, remove the unused CCLayerImpl::getDrawRect function.
+
+ No-op refactoring. Tested by existing tests.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawRenderPassQuad):
+ * platform/graphics/chromium/RenderSurfaceChromium.cpp:
+ (WebCore::RenderSurfaceChromium::drawableContentRect):
+ * platform/graphics/chromium/cc/CCDamageTracker.cpp:
+ (WebCore::CCDamageTracker::extendDamageForLayer):
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp:
+ (WebCore::CCLayerImpl::createSharedQuadState):
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (CCLayerImpl):
+ * platform/graphics/chromium/cc/CCLayerSorter.cpp:
+ (WebCore::CCLayerSorter::LayerShape::LayerShape):
+ (WebCore::CCLayerSorter::createGraphNodes):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::calculateVisibleContentRect):
+ (WebCore::calculateDrawTransformsInternal):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::::markOccludedBehindLayer):
+ (WebCore::::occluded):
+ (WebCore::::unoccludedContentRect):
+ * platform/graphics/chromium/cc/CCRenderPass.cpp:
+ (WebCore::CCRenderPass::appendQuadsToFillScreen):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::drawableContentRect):
+
+2012-07-25 Tommy Widenflycht <tommyw@google.com>
+
+ MediaStream API: Update MediaStreamTrack to match the specification
+ https://bugs.webkit.org/show_bug.cgi?id=90180
+
+ Reviewed by Adam Barth.
+
+ MediaStreamTracks are now required to show the status of the underlying source,
+ and trigger events when that status changes.
+
+ Test: fast/mediastream/MediaStreamTrack.html
+
+ * GNUmakefile.list.am:
+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::MediaStream):
+ (WebCore::MediaStream::addTrack):
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::create):
+ (WebCore::MediaStreamTrack::MediaStreamTrack):
+ (WebCore::MediaStreamTrack::~MediaStreamTrack):
+ (WebCore::MediaStreamTrack::setEnabled):
+ (WebCore::MediaStreamTrack::readyState):
+ (WebCore):
+ (WebCore::MediaStreamTrack::sourceChangedState):
+ (WebCore::MediaStreamTrack::stop):
+ (WebCore::MediaStreamTrack::interfaceName):
+ (WebCore::MediaStreamTrack::scriptExecutionContext):
+ (WebCore::MediaStreamTrack::eventTargetData):
+ (WebCore::MediaStreamTrack::ensureEventTargetData):
+ * Modules/mediastream/MediaStreamTrack.h:
+ * Modules/mediastream/MediaStreamTrack.idl:
+ * WebCore.gypi:
+ * dom/EventNames.h:
+ (WebCore):
+ * dom/EventTargetFactory.in:
+ * platform/chromium/support/WebMediaStreamDescriptor.cpp:
+ * platform/chromium/support/WebMediaStreamSource.cpp:
+ (WebKit::WebMediaStreamSource::setReadyState):
+ (WebKit):
+ (WebKit::WebMediaStreamSource::readyState):
+ * platform/mediastream/MediaStreamSource.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.h.
+ (WebCore):
+ (WebCore::MediaStreamSource::create):
+ (WebCore::MediaStreamSource::MediaStreamSource):
+ (WebCore::MediaStreamSource::setReadyState):
+ (WebCore::MediaStreamSource::addObserver):
+ (WebCore::MediaStreamSource::removeObserver):
+ * platform/mediastream/MediaStreamSource.h:
+ (Observer):
+ (WebCore::MediaStreamSource::Observer::~Observer):
+ (MediaStreamSource):
+ (WebCore::MediaStreamSource::readyState):
+ * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
+ (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
+ (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
+
+2012-07-25 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Incorrect rounding in ceiledLayoutUnit and roundedLayoutUnit.
+ https://bugs.webkit.org/show_bug.cgi?id=91061
+
+ Reviewed by Adam Barth.
+
+ The two functions are currently both returning the flooredLayoutUnit when subpixel
+ layout is enabled. This patch changes them to return the correct fractional rounded
+ value.
+
+ * platform/FractionalLayoutUnit.h:
+ (WebCore::FractionalLayoutUnit::fromFloatCeil):
+ (FractionalLayoutUnit):
+ (WebCore::FractionalLayoutUnit::fromFloatRound):
+ * rendering/LayoutTypes.h:
+ (WebCore::roundedLayoutUnit):
+ (WebCore::ceiledLayoutUnit):
+ * rendering/RenderBlock.cpp:
+ (WebCore::updatePreferredWidth):
+
+2012-07-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Add *explicit* keyword to constructors in WebCore/platform
+ https://bugs.webkit.org/show_bug.cgi?id=92238
+
+ Reviewed by Kentaro Hara.
+
+ As a step to let *explicit* keyword add to constructors which have a parameter,
+ *explicit* keyword is added to Source/WebCore/platform in order to avoid implicit
+ type conversion.
+
+ Some files in platform directory can't use explicit keyword because of build breaks.
+
+ No new tests. Covered by existing tests.
+
+ * platform/AutodrainedPool.h:
+ (AutodrainedPool):
+ * platform/ContentType.h:
+ (ContentType):
+ * platform/ContextMenu.h:
+ (ContextMenu):
+ * platform/ContextMenuItem.h:
+ (ContextMenuItem):
+ * platform/Cursor.h:
+ (WebCore::SharedCursor::SharedCursor):
+ (Cursor):
+ * platform/KURL.h:
+ (WebCore::KURL::KURL):
+ (KURL):
+ * platform/KURLGooglePrivate.h:
+ (KURLGooglePrivate):
+ * platform/PODRedBlackTree.h:
+ (WebCore::PODRedBlackTree::PODRedBlackTree):
+ * platform/Pasteboard.h:
+ (Pasteboard):
+ * platform/PlatformEvent.h:
+ (WebCore::PlatformEvent::PlatformEvent):
+ * platform/PlatformKeyboardEvent.h:
+ (PlatformKeyboardEvent):
+ * platform/PlatformMouseEvent.h:
+ (PlatformMouseEvent):
+ * platform/PlatformPasteboard.h:
+ (PlatformPasteboard):
+ * platform/PlatformTouchEvent.h:
+ (PlatformTouchEvent):
+ * platform/PlatformWheelEvent.h:
+ (PlatformWheelEvent):
+ * platform/RunLoop.h:
+ (TimerBase):
+ * platform/ScrollAnimator.h:
+ (ScrollAnimator):
+ * platform/ScrollAnimatorNone.h:
+ (ScrollAnimatorNone):
+ * platform/SharedBuffer.h:
+ (SharedBuffer):
+ * platform/WheelFlingPlatformGestureCurve.h:
+ (WheelFlingPlatformGestureCurve):
+ * platform/Widget.h:
+ (Widget):
+
+2012-07-25 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ NodesFromRect and area-based hit-testing can not handle CSS transforms.
+ https://bugs.webkit.org/show_bug.cgi?id=85792
+
+ Reviewed by Eric Seidel.
+
+ To support the combination of CSS transforms and rect based hit testing,
+ we need to test against the transformed rect, instead of the original rect.
+
+ This patch makes HitTestPoint store the exact transformed FloatPoint and
+ FloatQuad, and modifies the intersection methods so that they will use a
+ new FloatQuad based intersection when transforms requires it.
+
+ Tests: fast/dom/nodesFromRect/nodesFromRect-rotate.html
+ fast/dom/nodesFromRect/nodesFromRect-scale.html
+
+ * platform/graphics/FloatQuad.cpp:
+ (WebCore::determinant):
+ (WebCore::rightMostCornerToVector):
+ (WebCore::FloatQuad::intersectsRect):
+ (WebCore::FloatQuad::isCounterclockwise):
+ * platform/graphics/FloatQuad.h:
+ (FloatQuad):
+ * rendering/HitTestResult.cpp:
+ (WebCore::HitTestPoint::HitTestPoint):
+ (WebCore::HitTestPoint::operator=):
+ (WebCore::HitTestPoint::move):
+ (WebCore::HitTestPoint::intersectsRect):
+ (WebCore::HitTestPoint::intersects):
+ * rendering/HitTestResult.h:
+ (HitTestPoint):
+ (WebCore::HitTestPoint::isRectilinear):
+ (WebCore::HitTestPoint::transformedPoint):
+ (WebCore::HitTestPoint::transformedRect):
+ * rendering/HitTestingTransformState.cpp:
+ (WebCore::HitTestingTransformState::flattenWithTransform):
+ (WebCore::HitTestingTransformState::mappedArea):
+ (WebCore::HitTestingTransformState::boundsOfMappedArea):
+ * rendering/HitTestingTransformState.h:
+ (WebCore::HitTestingTransformState::create):
+ (WebCore::HitTestingTransformState::HitTestingTransformState):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::hitTestRegion):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::hitTest):
+ (WebCore::RenderLayer::createLocalTransformState):
+ (WebCore::RenderLayer::hitTestLayer):
+ (WebCore::RenderLayer::hitTestChildLayerColumns):
+ * rendering/RenderLayer.h:
+ * rendering/svg/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::nodeAtFloatPoint):
+
+2012-07-25 Kwang Yul Seo <skyul@company100.net>
+
+ Add HTMLStackItem.h to project files
+ https://bugs.webkit.org/show_bug.cgi?id=92221
+
+ Reviewed by Adam Barth.
+
+ Added HTMLStackItem.h introduced in r123399 to project files.
+
+ Project file changes only, no change in behavior thus no new tests.
+
+ * GNUmakefile.list.am:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-07-25 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123606.
+ http://trac.webkit.org/changeset/123606
+ https://bugs.webkit.org/show_bug.cgi?id=92247
+
+ broke Windows build of Chromium (Requested by tomhudson on
+ #webkit).
+
+ * Resources/colorSuggestionPicker.css: Removed.
+ * Resources/colorSuggestionPicker.js: Removed.
+ * WebCore.gyp/WebCore.gyp:
+
+2012-07-25 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: disabling property should remove "overriden" decoration from overriden UA shorthand.
+ https://bugs.webkit.org/show_bug.cgi?id=92253
+
+ Reviewed by Vsevolod Vlasov.
+
+ Bug fix with a test and more compilation markup.
+
+ Test: inspector/styles/styles-disable-then-enable-overriden-ua.html
+
+ * inspector/front-end/StylesSidebarPane.js:
+ (WebInspector.StylePropertiesSection.prototype.update):
+ (WebInspector.StylePropertyTreeElement):
+ (WebInspector.StylePropertyTreeElement.prototype):
+
+2012-07-25 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Improve ObjectPropertiesSection UI by adding a tooltip for the value.
+ https://bugs.webkit.org/show_bug.cgi?id=92225
+
+ Reviewed by Pavel Feldman.
+
+ Added tooltip with property value description on the property's valueElement.
+
+ * inspector/front-end/ObjectPropertiesSection.js:
+ (WebInspector.ObjectPropertyTreeElement.prototype.update):
+
+2012-07-25 Pavel Feldman <pfeldman@chromium.org>
+
+ https://bugs.webkit.org/show_bug.cgi?id=91931
+
+ Reviewed by Vsevolod Vlasov.
+
+ - Synthetic shorthand values are now only returned for source-less styles
+ - CSSAgents reports longhands along with the property names in getSupportedCSSProperties
+ - StylesSidebarPane now has two paths: for source-enabled styles and for CSSOM-based ones (UA styles)
+ - CSSStyleModel uses style metainfo as a source of shorthand / longhand relationship now
+
+ Test: inspector/styles/styles-overriden-properties.html
+
+ * inspector/Inspector.json:
+ * inspector/InspectorCSSAgent.cpp:
+ (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
+ * inspector/InspectorCSSAgent.h:
+ (InspectorCSSAgent):
+ * inspector/InspectorStyleSheet.cpp:
+ (WebCore::InspectorStyle::styleWithProperties):
+ * inspector/front-end/CSSCompletions.js:
+ (WebInspector.CSSCompletions):
+ (WebInspector.CSSCompletions.requestCSSNameCompletions):
+ (WebInspector.CSSCompletions.prototype._closest):
+ (WebInspector.CSSCompletions.prototype.longhands):
+ (WebInspector.CSSCompletions.prototype.shorthands):
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleDeclaration):
+ (WebInspector.CSSStyleDeclaration.prototype.longhandProperties):
+ (WebInspector.CSSStyleDeclaration.prototype.shorthandValue):
+ (WebInspector.CSSStyleDeclaration.prototype.newBlankProperty):
+ (WebInspector.CSSProperty):
+ (WebInspector.CSSProperty.parsePayload):
+ * inspector/front-end/SourceCSSTokenizer.js:
+ (WebInspector.SourceCSSTokenizer):
+ * inspector/front-end/SourceCSSTokenizer.re2js:
+ * inspector/front-end/StylesSidebarPane.js:
+ (WebInspector.StylePropertiesSection.prototype.isPropertyOverloaded):
+ (WebInspector.StylePropertiesSection.prototype.update):
+ (WebInspector.StylePropertiesSection.prototype.onpopulate):
+ (WebInspector.StylePropertyTreeElement.prototype):
+
+2012-07-25 Keishi Hattori <keishi@webkit.org>
+
+ Implement ColorSuggestionPicker page popup
+ https://bugs.webkit.org/show_bug.cgi?id=92109
+
+ Reviewed by Kent Tamura.
+
+ Implements ColorSuggestionPicker page popup. This will be used in
+ certain ports as the datalist UI for <input type=color>.
+
+ No new tests because there is no way to open the popup yet.
+
+ * Resources/colorSuggestionPicker.css: Added.
+ (body):
+ (#main):
+ (.color-swatch):
+ (.color-swatch:hover):
+ (.color-swatch-container):
+ (.other-color):
+ * Resources/colorSuggestionPicker.js: Added.
+ (getScrollbarWidth):When there are more than 20 colors we need to
+ increase the window width to accommodate the scroll bar.
+ (createElement):
+ (handleMessage):
+ (initialize):
+ (handleArgumentsTimeout):
+ (validateArguments):
+ (submitValue): Calls setValueAndClosePopup with a numValue of 0.
+ (handleCancel): Calls setValueAndClosePopup with a numValue of -1.
+ (chooseOtherColor): Calls setValueAndClosePopup with a numValue of -2.
+ (ColorPicker):
+ (ColorPicker.prototype._layout): Lays out the color swatches in a 5x4
+ grid.
+ (ColorPicker.prototype._handleSwatchClick):
+ * WebCore.gyp/WebCore.gyp:
+
+2012-07-25 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Fix arithmetic composite filter for auto-vectorization
+ https://bugs.webkit.org/show_bug.cgi?id=92123
+
+ Reviewed by Nikolas Zimmermann.
+
+ Since only clamping of the result prevents GCC from auto-vectorizing the inner loop, this patch
+ adds a faster version of the inner loop to handle cases where clamping is unnecessary,
+
+ * platform/graphics/filters/FEComposite.cpp:
+ (WebCore::computeArithmeticPixelsUnclamped):
+ (WebCore::arithmeticSoftware):
+
+2012-07-25 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Fix blend filter for autovectorizing
+ https://bugs.webkit.org/show_bug.cgi?id=91398
+
+ Reviewed by Nikolas Zimmermann.
+
+ Get rid of wrapper classes, and use functions directly as template argument.
+
+ * platform/graphics/filters/FEBlend.cpp:
+ (WebCore::feBlendNormal):
+ (WebCore::feBlendMultiply):
+ (WebCore::feBlendScreen):
+ (WebCore::feBlendDarken):
+ (WebCore::feBlendLighten):
+ (WebCore::feBlendUnknown):
+ (WebCore::platformApply):
+ (WebCore::FEBlend::platformApplyGeneric):
+
+2012-07-25 Keishi Hattori <keishi@webkit.org>
+
+ Add methods to ColorChooserClient so the color chooser can show suggestions
+ https://bugs.webkit.org/show_bug.cgi?id=92114
+
+ Reviewed by Kent Tamura.
+
+ Added methods to ColorChooserClient so the color chooser can ask the
+ client for suggestions and current color.
+
+ No new tests. The methods are not used yet.
+
+ * html/ColorInputType.cpp:
+ (WebCore::ColorInputType::currentColor): Returns what color the color
+ chooser should display.
+ (WebCore):
+ (WebCore::ColorInputType::shouldShowSuggestions): Returns if the UI for
+ suggestions should be shown.
+ (WebCore::ColorInputType::suggestions): Returns a list of colors to be
+ suggested to the user.
+ * html/ColorInputType.h:
+ (ColorInputType):
+ * html/HTMLInputElement.h:
+ (HTMLInputElement): Made dataList() public.
+ * platform/ColorChooserClient.h:
+ (ColorChooserClient):
+
+2012-07-25 Kentaro Hara <haraken@chromium.org>
+
+ Replace int with long in test IDL files
+ https://bugs.webkit.org/show_bug.cgi?id=92181
+
+ Reviewed by Adam Barth.
+
+ int is not a valid type in WebIDL. It should be long.
+ We should replace int with long in bindings/scripts/test/*.idl.
+ This is a follow-up patch for r123550.
+
+ Test: bindings/scripts/test/TestObj.idl
+
+ * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
+ (WebDOMTestObj::readOnlyLongAttr):
+ (WebDOMTestObj::Attr):
+ (WebDOMTestObj::setAttr):
+ (WebDOMTestObj::voidMethodWithArgs):
+ (WebDOMTestObj::Method):
+ (WebDOMTestObj::MethodWithArgs):
+ (WebDOMTestObj::objMethodWithArgs):
+ * bindings/scripts/test/CPP/WebDOMTestObj.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ (webkit_dom_test_obj_set_property):
+ (webkit_dom_test_obj_get_property):
+ (webkit_dom_test_obj_class_init):
+ (webkit_dom_test_obj_void_method_with_args):
+ (webkit_dom_test_obj_method):
+ (webkit_dom_test_obj_method_with_args):
+ (webkit_dom_test_obj_obj_method_with_args):
+ (webkit_dom_test_obj_get_read_only_long_attr):
+ (webkit_dom_test_obj_get_attr):
+ (webkit_dom_test_obj_set_attr):
+ (webkit_dom_test_obj_get_strawberry):
+ (webkit_dom_test_obj_set_strawberry):
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore):
+ (WebCore::jsTestObjReadOnlyLongAttr):
+ (WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
+ (WebCore::jsTestObjAttr):
+ (WebCore::setJSTestObjAttr):
+ (WebCore::setJSTestObjStrawberry):
+ (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethod):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
+ (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
+ * bindings/scripts/test/JS/JSTestObj.h:
+ (WebCore):
+ * bindings/scripts/test/ObjC/DOMTestObj.h:
+ * bindings/scripts/test/ObjC/DOMTestObj.mm:
+ (-[DOMTestObj readOnlyLongAttr]):
+ (-[DOMTestObj Attr]):
+ (-[DOMTestObj setAttr:]):
+ (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]):
+ (-[DOMTestObj Method]):
+ (-[DOMTestObj MethodWithArgs:strArg:objArg:]):
+ (-[DOMTestObj objMethodWithArgs:strArg:objArg:]):
+ (-[DOMTestObj customMethodWithArgs:strArg:objArg:]):
+ * bindings/scripts/test/TestObj.idl:
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetter):
+ (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetter):
+ (WebCore::TestObjV8Internal::AttrAttrGetter):
+ (WebCore::TestObjV8Internal::AttrAttrSetter):
+ (WebCore::TestObjV8Internal::strawberryAttrSetter):
+ (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
+ (WebCore::TestObjV8Internal::MethodCallback):
+ (WebCore::TestObjV8Internal::MethodWithArgsCallback):
+ (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
+ (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
+ (WebCore::TestObjV8Internal::overloadedMethod2Callback):
+ (WebCore::TestObjV8Internal::overloadedMethod4Callback):
+ (WebCore):
+ (WebCore::ConfigureV8TestObjTemplate):
+
+2012-07-25 Shinya Kawanaka <shinyak@chromium.org>
+
+ A validation bubble should not be modifiable.
+ https://bugs.webkit.org/show_bug.cgi?id=92217
+
+ Reviewed by Kent Tamura.
+
+ A user can set -webkit-user-modify: read-write to validation message elements.
+ This might cause a undesired crash like Bug 65738. They should be unmodifiable.
+
+ Test: fast/forms/validation-user-modify.html
+
+ * css/html.css:
+ Added -webkit-user-modify: read-only !important; for these elements so that they won't be
+ changed by a user.
+ (::-webkit-validation-bubble):
+ (::-webkit-validation-bubble-message):
+ (::-webkit-validation-bubble-text-block):
+ (::-webkit-validation-bubble-heading):
+ (::-webkit-validation-bubble-arrow):
+ (::-webkit-validation-bubble-arrow-clipper):
+
+2012-07-25 Zeno Albisser <zeno@webkit.org>
+
+ [Qt][WK2] Disable CopyToTexture for GraphicsSurfaceMac.
+ https://bugs.webkit.org/show_bug.cgi?id=92159
+
+ Disable CopyToTexture feature for GraphicsSurface on Mac.
+ While this is actually working, it is currently used for Tiles
+ that are single buffered, and therefore requires a call to glFlush.
+ This call blocks the GPU for about 40ms which would make smooth animations impossible.
+
+ Reviewed by Noam Rosenthal.
+
+ * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
+ (WebCore::GraphicsSurface::platformCreate):
+ (WebCore::GraphicsSurface::platformImport):
+
+2012-07-25 Kenichi Ishibashi <bashi@chromium.org>
+
+ [Chromium] Fix up includes in HarfBuzzNGFace.h
+ https://bugs.webkit.org/show_bug.cgi?id=92127
+
+ Reviewed by Hajime Morita.
+
+ Move constructors of FontPlatformData from headers to corresponding cpp files
+ so that we can use forward declaration for HarfBuzzNGFace instead of including HarfBuzzNGFace.h.
+ This way we can include hb.h in HarfBuzzNGFace.h.
+
+ No new tests. No changes in behavior.
+
+ * platform/graphics/FontPlatformData.cpp:
+ (WebCore::FontPlatformData::FontPlatformData): Moved from header file.
+ (WebCore):
+ * platform/graphics/FontPlatformData.h:
+ (WebCore):
+ (FontPlatformData): Moved to cpp file.
+ * platform/graphics/cocoa/FontPlatformDataCocoa.mm: Include HarfBuzzNGFace.h
+ * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
+ (WebCore::FontPlatformData::FontPlatformData): Moved from header file.
+ (WebCore):
+ * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
+ (WebCore):
+ (FontPlatformData): Moved to cpp file.
+ * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h: Include hb.h.
+
+2012-07-24 Benjamin Poulain <bpoulain@apple.com> && Joseph Pecoraro <pecoraro@apple.com>
+
+ QualifiedName's HashSet should be big enough to hold at least all the static names
+ https://bugs.webkit.org/show_bug.cgi?id=91891
+
+ Reviewed by Darin Adler.
+
+ QualifiedName's table has a standard size of 64 buckets. When initializing WebKit,
+ we create 850 static QualifiedName for the standard names (HTMLNames, SVGNames etc).
+
+ The small base size forces us to grow and rehash the table several time on startup.
+
+ This patch solves the issue by defining the initial table size to the minimum size that
+ can hold all the static QualifiedName.
+
+ * dom/QualifiedName.cpp:
+ (QualifiedNameHashTraits):
+ * dom/make_names.pl:
+ (printNamesHeaderFile):
+
+2012-07-24 Kwang Yul Seo <skyul@company100.net>
+
+ Remove anonymous namespace and make functions static.
+ https://bugs.webkit.org/show_bug.cgi?id=92214
+
+ Reviewed by Adam Barth.
+
+ Mark functions as static instead of enclosing them in anonymous namespaces.
+ One exception to this rule is when a function is passed as a template argument.
+ In this case, the function must have an external linkage.
+
+ No functional change. Covered by existing tests.
+
+ * html/parser/HTMLConstructionSite.cpp:
+ (WebCore::hasImpliedEndTag):
+ (WebCore::causesFosterParenting):
+ (WebCore::isAllWhitespace):
+ * html/parser/HTMLDocumentParser.cpp:
+ (WebCore):
+ (WebCore::tokenizerStateForContextElement):
+ * html/parser/HTMLElementStack.cpp:
+ (WebCore::isNumberedHeaderElement):
+ (WebCore::isRootNode):
+ (WebCore):
+ * html/parser/HTMLEntityParser.cpp:
+ (WebCore::isAlphaNumeric):
+ * html/parser/HTMLEntitySearch.cpp:
+ (WebCore::halfway):
+ * html/parser/HTMLPreloadScanner.cpp:
+ (WebCore):
+ * html/parser/HTMLTokenizer.cpp:
+ (WebCore::toLowerCase):
+ (WebCore::vectorEqualsString):
+ (WebCore::isEndTagBufferingState):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore):
+ (WebCore::uninitializedPositionValue1):
+ (WebCore::isAllWhitespace):
+ (WebCore::isAllWhitespaceOrReplacementCharacters):
+ (WebCore::isNumberedHeaderTag):
+ (WebCore::isCaptionColOrColgroupTag):
+ (WebCore::isTableCellContextTag):
+ (WebCore::isTableBodyContextTag):
+ (WebCore::isSpecialNode):
+ (WebCore::isNonAnchorNonNobrFormattingTag):
+ (WebCore::isNonAnchorFormattingTag):
+ (WebCore::isFormattingTag):
+ (WebCore::closestFormAncestor):
+ (WebCore::mapLoweredLocalNameToName):
+ (WebCore::adjustSVGTagNameCase):
+ (WebCore::adjustAttributes):
+ (WebCore::adjustSVGAttributes):
+ (WebCore::adjustMathMLAttributes):
+ (WebCore::addNamesWithPrefix):
+ (WebCore::adjustForeignAttributes):
+
+2012-07-24 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Unreviewed r123494 follow-up: fixed inspector undock icon.
+
+ * inspector/front-end/Images/statusbarButtonGlyphs.png:
+
+2012-07-24 Kwang Yul Seo <skyul@company100.net>
+
+ Read tag names and attributes from the saved tokens where possible.
+ https://bugs.webkit.org/show_bug.cgi?id=92079
+
+ Reviewed by Adam Barth.
+
+ Read tag names and attributes from the saved tokens, not from the DOM.
+ Also added convenient methods such as hasLocalName, hasTagName, localName,
+ isElementNode and isDocumentFragmentNode to HTMLStackItem class.
+
+ No new tests, covered by existing tests.
+
+ * html/parser/HTMLConstructionSite.cpp:
+ (WebCore::HTMLNames::hasImpliedEndTag):
+ (WebCore::HTMLNames::causesFosterParenting):
+ (WebCore::HTMLConstructionSite::generateImpliedEndTagsWithExclusion):
+ (WebCore::HTMLConstructionSite::generateImpliedEndTags):
+ (WebCore::HTMLConstructionSite::shouldFosterParent):
+ * html/parser/HTMLConstructionSite.h:
+ (WebCore::HTMLConstructionSite::currentStackItem):
+ * html/parser/HTMLElementStack.cpp:
+ (WebCore::HTMLNames::isNumberedHeaderElement):
+ (WebCore::HTMLNames::isRootNode):
+ (WebCore::HTMLNames::isScopeMarker):
+ (WebCore::HTMLNames::isListItemScopeMarker):
+ (WebCore::HTMLNames::isTableScopeMarker):
+ (WebCore::HTMLNames::isTableBodyScopeMarker):
+ (WebCore::HTMLNames::isTableRowScopeMarker):
+ (WebCore::HTMLNames::isForeignContentScopeMarker):
+ (WebCore::HTMLNames::isButtonScopeMarker):
+ (WebCore::HTMLNames::isSelectScopeMarker):
+ (WebCore::HTMLElementStack::ElementRecord::replaceElement):
+ (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
+ (WebCore::HTMLElementStack::popUntilTableScopeMarker):
+ (WebCore::HTMLElementStack::popUntilTableBodyScopeMarker):
+ (WebCore::HTMLElementStack::popUntilTableRowScopeMarker):
+ (WebCore::HTMLElementStack::isMathMLTextIntegrationPoint):
+ (WebCore::HTMLElementStack::isHTMLIntegrationPoint):
+ (WebCore::HTMLElementStack::popUntilForeignContentScopeMarker):
+ (WebCore::HTMLElementStack::pushRootNode):
+ (WebCore::HTMLElementStack::oneBelowTop):
+ (WebCore::HTMLElementStack::topmost):
+ (WebCore):
+ (WebCore::inScopeCommon):
+ (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
+ (WebCore::HTMLElementStack::inScope):
+ * html/parser/HTMLElementStack.h:
+ (WebCore::HTMLElementStack::topStackItem):
+ (HTMLElementStack):
+ (WebCore::isInHTMLNamespace):
+ * html/parser/HTMLStackItem.h:
+ (WebCore::HTMLStackItem::isDocumentFragmentNode):
+ (WebCore::HTMLStackItem::isElementNode):
+ (HTMLStackItem):
+ (WebCore::HTMLStackItem::hasLocalName):
+ (WebCore::HTMLStackItem::hasTagName):
+ (WebCore::HTMLStackItem::HTMLStackItem):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore):
+ (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
+ (WebCore::HTMLTreeBuilder::processFakeEndTag):
+ (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
+ (WebCore::HTMLTreeBuilder::processStartTagForInBody):
+ (WebCore::HTMLTreeBuilder::processStartTag):
+ (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
+ (WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
+ (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
+ (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
+ (WebCore::HTMLTreeBuilder::processEndTagForInCell):
+ (WebCore::HTMLTreeBuilder::processEndTagForInBody):
+ (WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
+ (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
+ (WebCore::HTMLTreeBuilder::processEndTag):
+ (WebCore::HTMLTreeBuilder::processCharacterBuffer):
+ (WebCore::HTMLTreeBuilder::processEndOfFile):
+ (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
+ (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
+ * html/parser/HTMLTreeBuilder.h:
+
+2012-07-24 Hironori Bono <hbono@chromium.org>
+
+ Avoid moving child objects multiple times when vertical scrollbar are shown at the left side.
+ https://bugs.webkit.org/show_bug.cgi?id=91756
+
+ Reviewed by Tony Chang.
+
+ My r123067 moves the top-left origin of an RTL element right when its vertical
+ scrollbar is shown at its left side. (That is, r123067 moves all child objects
+ in the RTL element right.) This change also increases RenderBox::clientLeft()
+ at the same time, i.e. it also moves child objects right. Furthermore, my r109512
+ moves positioned objects in an RTL element right at the same time. This makes
+ WebKit move objects in an RTL element up to three times by the scrollbar width.
+ (Moving an absolute object right increases the scrollWidth value and it causes
+ this bug.) This change removes unnecessary code that moves objects right in my
+ r109512 and RenderBox::clientLeft().
+
+ Test: scrollbars/rtl/div-absolute.html
+ fast/block/float/026.html
+ fast/block/float/028.html
+ fast/overflow/unreachable-overflow-rtl-bug.html
+
+ * dom/Element.cpp:
+ (WebCore::Element::clientLeft): Increase clientLeft value by the width of a vertical scrollbar as written in the CSSOM specification.
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::addOverflowFromPositionedObjects): Removed unnecessary code.
+ (WebCore::RenderBlock::determineLogicalLeftPositionForChild): Removed unnecessary code.
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::clientLeft): Removed unnecessary code.
+
+2012-07-24 Dan Bernstein <mitz@apple.com>
+
+ RenderBlock::positionForPoint can fail when the block or its children have a vertical writing mode
+ https://bugs.webkit.org/show_bug.cgi?id=92202
+
+ Reviewed by Beth Dakin.
+
+ Test: fast/writing-mode/positionForPoint.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::positionForPoint): Fixed two issues, each of which are covered by
+ one of the sub-tests in the new regression test: (1) changed to compare children’s logical
+ bounds against pointInLogicalContents, i.e. compare childern’s horizontal bounds to the
+ point’s horizontal component; and (2) changed to use logicalTopForChild and
+ logicalHeightForChild, which account for this block’s writing mode, instead of logicalTop
+ and logicalBottom, which are based on the child’s writing mode.
+
+2012-07-24 MORITA Hajime <morrita@google.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=89179
+ Rendering LI having Shadow DOM seems weird
+
+ Reviewed by Dimitri Glazkov.
+
+ This incorrect rendering happend because HTMLLIElement::attach()
+ wasn't aware of composed shadow subtree. This change makes it
+ aware of that using ComposedShadowTreeParentWalker.
+
+ Test: fast/dom/shadow/shadow-and-list-elements.html
+
+ * html/HTMLLIElement.cpp:
+ (WebCore::HTMLLIElement::attach):
+
+2012-07-24 Alec Flett <alecflett@chromium.org>
+
+ IndexedDB: fix #include dependencies so IDBRequest isn't an include root
+ https://bugs.webkit.org/show_bug.cgi?id=92167
+
+ Reviewed by Tony Chang.
+
+ Remove implicit dependencies due to using IDBRequest.h, and fix all
+ places that break as a result.
+
+ * Modules/indexeddb/IDBCallbacks.h:
+ (WebCore):
+ * Modules/indexeddb/IDBObjectStore.cpp:
+ * Modules/indexeddb/IDBRequest.h:
+ * inspector/InspectorIndexedDBAgent.cpp:
+
+2012-07-24 Keishi Hattori <keishi@webkit.org>
+
+ Move PagePopupClient helper functions so they can be shared
+ https://bugs.webkit.org/show_bug.cgi?id=92096
+
+ Reviewed by Kent Tamura.
+
+ Move PagePopupClient helper functions to a separate file,
+ so they can be shared with new PagePopupClients.
+
+ No new tests. Covered by fast/forms/date/calendar-picker-appearance.html
+
+ * WebCore.gypi: Added PagePopupClient.cpp
+ * html/shadow/CalendarPickerElement.cpp:
+ (WebCore::CalendarPickerElement::writeDocument): Modified to use PagePopupClient.
+ * page/PagePopupClient.cpp: Added.
+ (WebCore):
+ (WebCore::PagePopupClient::addJavaScriptString):
+ (WebCore::PagePopupClient::addProperty):
+ * page/PagePopupClient.h:
+ (WebCore::PagePopupClient::addString):
+
+2012-07-24 Jer Noble <jer.noble@apple.com>
+
+ setting playbackRate on a MediaController doesn't change the playbackRate for slaved media
+ https://bugs.webkit.org/show_bug.cgi?id=92035
+
+ Reviewed by Darin Adler.
+
+ Allow updatePlaybackRate() to change the MediaPlayer rate when the media element has a
+ current media controller.
+
+ Test: media/media-controller-playbackrate.html
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::updatePlaybackRate):
+
+2012-07-24 Hayato Ito <hayato@chromium.org>
+
+ Rename FocusScope to FocusNavigationScope.
+ https://bugs.webkit.org/show_bug.cgi?id=92062
+
+ Reviewed by Dimitri Glazkov.
+
+ FocusNavagationScope is better name than FocusScope since the
+ class is only used for controlling focus navigation.
+
+ No new tests - no functional changes.
+
+ * page/FocusController.cpp:
+ (WebCore::FocusNavigationScope::FocusNavigationScope):
+ (WebCore::FocusNavigationScope::rootNode):
+ (WebCore::FocusNavigationScope::owner):
+ (WebCore::FocusNavigationScope::focusNavigationScopeOf):
+ (WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost):
+ (WebCore::FocusNavigationScope::focusNavigationScopeOwnedByIFrame):
+ (WebCore::FocusController::findFocusableNodeDecendingDownIntoFrameDocument):
+ (WebCore::FocusController::advanceFocusInDocumentOrder):
+ (WebCore::FocusController::findFocusableNodeAcrossFocusScope):
+ (WebCore::FocusController::findFocusableNodeRecursively):
+ (WebCore::FocusController::findFocusableNode):
+ (WebCore::FocusController::nextFocusableNode):
+ (WebCore::FocusController::previousFocusableNode):
+ * page/FocusController.h:
+ (FocusNavigationScope):
+ (FocusController):
+
+2012-07-24 Michael Saboff <msaboff@apple.com>
+
+ Convert HTML parser to handle 8-bit resources without converting to UChar*
+ https://bugs.webkit.org/show_bug.cgi?id=90321
+
+ Reviewed by Geoffrey Garen.
+
+ No new tests, no new functionality therefore covered by existing tests.
+
+ Changed the parsing of HTML to handle 8-bit strings without converting the
+ whole string to 16-bits. Primary change was to use the appropriate
+ character pointer type (LChar* or UChar*) depending on the source string.
+ This access is abstracted in SegmentedSubstring by getCurrentChar{8,16} and
+ incrementAndGetCurrentChar{8,16} methods. In SegmentedString, the advance()
+ and advanceAndUpdateLineNumber() methods have been refactored into a
+ state machine managed pair of function pointers. The possible functions
+ have not only the 8 and 16 bitness factored out, they also have the
+ "exclude line numbers" logic factored out for advanceAndUpdateLineNumber().
+ This provides a net speed-up even with the 8/16 bit testing.
+ Other changes involve using String methods to access and compare with the
+ source data.
+
+ * html/FTPDirectoryDocument.cpp:
+ (WebCore::FTPDirectoryDocumentParser::append): Changed to use currentChar()
+ instead of SegmentedString '*' operator.
+ * html/parser/HTMLEntityParser.cpp: Changed to use currentChar() instead of
+ SegmentedString '*' operator.
+ * html/parser/HTMLParserIdioms.cpp:
+ (WebCore::stripLeadingAndTrailingHTMLSpaces): Added 8-bit fast path.
+ * html/parser/HTMLSourceTracker.cpp:
+ (WebCore::HTMLSourceTracker::sourceForToken): Changed to use currentChar() instead of
+ SegmentedString '*' operator.
+ * loader/cache/CachedScript.cpp:
+ (WebCore::CachedScript::script): Updated to use new String::dataSize() method.
+ * platform/text/SegmentedString.cpp:
+ (WebCore::SegmentedString::SegmentedString):
+ (WebCore::SegmentedString::operator=):
+ (WebCore::SegmentedString::clear):
+ (WebCore::SegmentedString::append):
+ (WebCore::SegmentedString::prepend):
+ (WebCore::SegmentedString::advanceSubstring):
+ (WebCore::SegmentedString::advance): Changed to be a wrapper that invokes current
+ advance function.
+ (WebCore::SegmentedString::advance8): Fast path advance function for 8 bit data.
+ (WebCore::SegmentedString::advance16): Fast path advance function for 16 bit data.
+ (WebCore::SegmentedString::advanceAndUpdateLineNumber8IncludeLineNumbers): Fast
+ path advanceAndUpdateLineNumber for 8 bit data when we need to update the line number.
+ (WebCore::SegmentedString::advanceAndUpdateLineNumber16IncludeLineNumbers): Fast
+ path advanceAndUpdateLineNumber for 16 bit data when we need to update the line number.
+ (WebCore::SegmentedString::advanceSlowCase): Slow case advance function for both
+ 8 and 16 bit advance.
+ (WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase): Slow case
+ advanceAndUpdateLineNumber function for both 8 and 16 bit data.
+ (WebCore::SegmentedString::advanceEmpty): Advance function when input has been exhausted.
+ * platform/text/SegmentedString.h:
+ (WebCore::SegmentedSubstring::SegmentedSubstring):
+ (WebCore::SegmentedSubstring::clear):
+ (SegmentedSubstring):
+ (WebCore::SegmentedSubstring::is8Bit): New getter.
+ (WebCore::SegmentedSubstring::appendTo):
+ (WebCore::SegmentedSubstring::getCurrentChar8): New getter for the 8 bit case.
+ (WebCore::SegmentedSubstring::getCurrentChar16): New getter for the 16 bit case.
+ (WebCore::SegmentedSubstring::incrementAndGetCurrentChar8): New wrapper functions
+ that pre-increments the 8 bit pointer and returns the next character.
+ (WebCore::SegmentedSubstring::incrementAndGetCurrentChar16): New wrapper functions
+ that pre-increments the 16 bit pointer and returns the next character.
+ (WebCore::SegmentedSubstring::currentSubString):
+ (WebCore::SegmentedSubstring::getCurrentChar):
+ (WebCore::SegmentedSubstring::incrementAndGetCurrentChar):
+ (WebCore::SegmentedString::SegmentedString):
+ (WebCore::SegmentedString::push):
+ (WebCore::SegmentedString::isEmpty):
+ (WebCore::SegmentedString::lookAhead):
+ (WebCore::SegmentedString::lookAheadIgnoringCase):
+ (WebCore::SegmentedString::advance):
+ (WebCore::SegmentedString::advanceAndUpdateLineNumber):
+ (WebCore::SegmentedString::advanceAndASSERT):
+ (WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
+ (WebCore::SegmentedString::advancePastNonNewline):
+ (WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
+ (WebCore::SegmentedString::currentChar):
+ (WebCore::SegmentedString::setSlowCase): Set advance function pointers to slow case
+ functions.
+ (WebCore::SegmentedString::decrementAndCheckLength): Decrement substring length and
+ change to slow case functions when only one character left.
+ (WebCore::SegmentedString::setAdvanceFunctionPointers): Select appropriate advance
+ functions based on current substring.
+ (WebCore::SegmentedString::lookAheadInline): Changed to use String::startsWith().
+ (WebCore::SegmentedString::lookAheadSlowCase):
+ * xml/parser/CharacterReferenceParserInlineMethods.h:
+ (WebCore::consumeCharacterReference): Changed to use currentChar() instead of
+ SegmentedString '*' operator.
+ * xml/parser/MarkupTokenizerBase.h:
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek): Changed to use
+ currentChar() instead of SegmentedString '*' operator.
+ (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):
+
+2012-07-24 Kenneth Russell <kbr@google.com>
+
+ [chromium] Hint garbage collector to run if page uses Canvas contexts
+ https://bugs.webkit.org/show_bug.cgi?id=76225
+
+ Reviewed by Kentaro Hara.
+
+ Upon creating a canvas context, set a hint in the current isolate
+ indicating that a full GC should be done upon the next page
+ navigation.
+
+ This improves Chrome's robustness on some WebGL stress tests which
+ simulate real-world behavior by repeatedly navigating among
+ several samples. More general measures are being investigated, but
+ this change makes V8 behave the same as JSC on these stress tests.
+ JSC doesn't currently use generational garbage collection, so it
+ has more opportunities to discover unreferenced canvas contexts.
+
+ Test: fast/canvas/webgl/context-creation-and-destruction.html
+
+ * bindings/v8/V8Binding.cpp:
+ (WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
+ Initialize per-isolate low memory hint.
+ * bindings/v8/V8Binding.h:
+ (V8BindingPerIsolateData):
+ (WebCore::V8BindingPerIsolateData::setLowMemoryNotificationHint):
+ Set a per-isolate hint to signal a low memory condition upon the next page navigation.
+ (WebCore::V8BindingPerIsolateData::clearLowMemoryNotificationHint):
+ Clear the previously set hint.
+ (WebCore::V8BindingPerIsolateData::isLowMemoryNotificationHint):
+ Get the previously set hint.
+ * bindings/v8/V8Proxy.cpp:
+ (WebCore::V8Proxy::hintForGCIfNecessary):
+ If necessary, send V8 a hint that it should GC.
+ (WebCore):
+ (WebCore::V8Proxy::clearForClose):
+ (WebCore::V8Proxy::clearForNavigation):
+ Call hintForGCIfNecessary.
+ * bindings/v8/V8Proxy.h:
+ (V8Proxy):
+ * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
+ (WebCore::V8HTMLCanvasElement::getContextCallback):
+ Set a hint that we should GC upon the next page navigation.
+
+2012-07-24 Dave Tu <dtu@chromium.org>
+
+ [chromium] Add time spent painting to GPU benchmarking renderingStats() API.
+ https://bugs.webkit.org/show_bug.cgi?id=90019
+
+ Reviewed by Adrienne Walker.
+
+ * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
+ (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
+ * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
+ (BitmapCanvasLayerTextureUpdater):
+ * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
+ (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::prepareRect):
+ (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
+ (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::paintContentsRect):
+ * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
+ (Texture):
+ (BitmapSkPictureCanvasLayerTextureUpdater):
+ * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
+ (WebCore::CanvasLayerTextureUpdater::paintContents):
+ * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
+ (CanvasLayerTextureUpdater):
+ * platform/graphics/chromium/ContentLayerChromium.cpp:
+ (WebCore::ContentLayerChromium::update):
+ * platform/graphics/chromium/ContentLayerChromium.h:
+ (ContentLayerChromium):
+ * platform/graphics/chromium/ImageLayerChromium.cpp:
+ (WebCore::ImageLayerChromium::update):
+ * platform/graphics/chromium/ImageLayerChromium.h:
+ (ImageLayerChromium):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore):
+ (WebCore::LayerChromium::update):
+ * platform/graphics/chromium/LayerTextureUpdater.h:
+ (WebCore):
+ (WebCore::LayerTextureUpdater::Texture::prepareRect):
+ (WebCore::LayerTextureUpdater::prepareToUpdate):
+ * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
+ (WebCore::ScrollbarLayerChromium::updatePart):
+ (WebCore::ScrollbarLayerChromium::update):
+ * platform/graphics/chromium/ScrollbarLayerChromium.h:
+ (ScrollbarLayerChromium):
+ * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
+ (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
+ * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
+ (SkPictureCanvasLayerTextureUpdater):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateTiles):
+ (WebCore::TiledLayerChromium::updateContentRect):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ (TiledLayerChromium):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::updateAnimations):
+ (WebCore::CCLayerTreeHost::renderingStats):
+ (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
+ (WebCore::CCLayerTreeHost::paintLayerContents):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (WebCore):
+ (CCLayerTreeHost):
+ * platform/graphics/chromium/cc/CCRenderingStats.h:
+ (CCRenderingStats):
+ (WebCore::CCRenderingStats::CCRenderingStats):
+
+2012-07-24 Jian Li <jianli@chromium.org>
+
+ [V8] Correct WebIDL type should be used in the testing IDL file
+ https://bugs.webkit.org/show_bug.cgi?id=92168
+
+ Reviewed by Kentaro Hara.
+
+ Updated bindings test.
+
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ (webkit_dom_test_obj_strict_function):
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjPrototypeFunctionStrictFunction):
+ * bindings/scripts/test/TestObj.idl:
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
+ (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
+ (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
+ (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
+ (WebCore::TestObjV8Internal::strictFunctionCallback):
+
+2012-07-24 Kent Tamura <tkent@chromium.org>
+
+ Unreviewed, rolling out r123191.
+ http://trac.webkit.org/changeset/123191
+ https://bugs.webkit.org/show_bug.cgi?id=91804
+
+ It might cause another performance regression.
+ http://code.google.com/p/chromium/issues/detail?id=138410
+
+ * html/FormController.cpp:
+ (FormKeyGenerator):
+ (WebCore::createKey):
+ (WebCore::FormKeyGenerator::formKey):
+ (WebCore::FormKeyGenerator::willDeleteForm):
+
+2012-07-24 Vineet Chaudhary <rgf748@motorola.com>
+
+ [JSBinding] Merging jsUnsignedLongArrayToVector() to toNativeArray() using traits.
+ https://bugs.webkit.org/show_bug.cgi?id=90381
+
+ Reviewed by Kentaro Hara.
+
+ We can remove jsUnsignedLongArrayToVector() implementaion
+ merging it to current and toNativeArray() traits.
+
+ Tests: TestObj.idl
+ There should be no behavoiral changes as just refactoring.
+
+ * Modules/vibration/NavigatorVibration.idl: Use sequence<T> as method param than T[]
+ * bindings/js/JSDOMBinding.cpp: Moved toJSSequence() to header file.
+ * bindings/js/JSDOMBinding.h:
+ (WebCore::toJSSequence): Moved toJSSequence() to header file.
+ (WebCore::jsArray): Renamed Traits to JSValueTraits
+ (WebCore::toNativeArray): Using traits.
+ * bindings/js/JSDictionary.cpp:
+ (WebCore::JSDictionary::convertValue):
+ * bindings/js/JSMessagePortCustom.cpp:
+ (WebCore::fillMessagePortArray):
+ * bindings/scripts/CodeGeneratorJS.pm: Removed unsigned long[] specific binding code.
+ (AddIncludesForType):
+ (GenerateParametersCheckExpression):
+ (JSValueToNative):
+ (NativeToJSValue):
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateParametersCheckExpression): Added check sequence<T> check for overloaded methods.
+ * bindings/scripts/test/JS/JSTestObj.cpp: Rebased binding test.
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
+ (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
+ * bindings/scripts/test/JS/JSTestObj.h: Rebased binding test.
+ * bindings/scripts/test/TestObj.idl: Added test for sequence<T> as method parameter.
+ * bindings/scripts/test/V8/V8TestObj.cpp: Rebased binding test.
+ (WebCore::TestObjV8Internal::overloadedMethod10Callback):
+ (TestObjV8Internal):
+ (WebCore::TestObjV8Internal::overloadedMethodCallback):
+
+2012-07-24 Kwang Yul Seo <skyul@company100.net>
+
+ Remove an invalid assertion introduced in r123536. Unreviewed.
+
+ * xml/parser/MarkupTokenBase.h:
+ (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
+
+2012-07-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123504.
+ http://trac.webkit.org/changeset/123504
+ https://bugs.webkit.org/show_bug.cgi?id=92169
+
+ broke a bunch of text-related tests in chromium mac debug
+ (Requested by zhenyao on #webkit).
+
+ * platform/text/cf/StringCF.cpp:
+ (WTF::String::createCFString):
+ * platform/text/cf/StringImplCF.cpp:
+ (WTF::StringImpl::createCFString):
+
+2012-07-24 Kwang Yul Seo <skyul@company100.net>
+
+ Ensure Noah's ark without reading the DOM tree.
+ https://bugs.webkit.org/show_bug.cgi?id=92065
+
+ Reviewed by Adam Barth.
+
+ Technically we shouldn't read attributes back from the DOM. If JavaScript changes
+ the attributes values, we could get a slightly wrong output here.
+
+ Read attributes from tokens saved in the active formatting element list.
+
+ No new tests, covered by existing tests.
+
+ * html/parser/HTMLFormattingElementList.cpp:
+ (WebCore::attributeCount):
+ (WebCore::HTMLFormattingElementList::append):
+ (WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
+ (WebCore::HTMLFormattingElementList::ensureNoahsArkCondition):
+ * html/parser/HTMLFormattingElementList.h:
+ (HTMLFormattingElementList):
+ * html/parser/HTMLStackItem.h:
+ (WebCore::HTMLStackItem::localName):
+ (HTMLStackItem):
+
+2012-07-23 Kwang Yul Seo <skyul@company100.net>
+
+ Clear the external characters pointer of an AtomicHTMLToken before the raw token is cleared.
+ https://bugs.webkit.org/show_bug.cgi?id=92056
+
+ Reviewed by Adam Barth.
+
+ AtomicHTMLToken keeps a pointer to the HTMLToken's buffer instead of copying the
+ characters for performance. Clear the external characters pointer before the raw token
+ is cleared to make sure that we won't have a dangling pointer.
+
+ No new tests - no functional changes.
+
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::constructTreeFromToken):
+ * xml/parser/MarkupTokenBase.h:
+ (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
+ (AtomicMarkupTokenBase):
+
+2012-07-24 Jian Li <jianli@chromium.org>
+
+ Add per-context setting for html notifications
+ https://bugs.webkit.org/show_bug.cgi?id=91295
+
+ Reviewed by Adam Barth.
+
+ Added a new per-context setting to control the enabling of html notifications.
+ For chromium port, we're going to disable html notifications for web
+ pages, but still keep it enabled for extensions.
+
+ Also enhance V8 code generator to support V8EnabledPerContext attribute
+ for methods.
+
+ Updated the binding tests.
+
+ * Modules/notifications/NotificationCenter.cpp:
+ (WebCore::NotificationCenter::document): Expose document for being used by installPerContextProperties.
+ (WebCore):
+ * Modules/notifications/NotificationCenter.h:
+ (NotificationCenter):
+ * Modules/notifications/NotificationCenter.idl: Add V8EnabledPerContext attribute.
+ * bindings/scripts/CodeGeneratorV8.pm: V8EnabledPerContext now supports methods.
+ (GenerateHeader):
+ (IsStandardFunction):
+ (GenerateNonStandardFunction):
+ (GenerateImplementation):
+ (GenerateToV8Converters):
+ (GetContextEnableFunction):
+ * bindings/scripts/test/TestObj.idl: Add test case for V8EnabledPerContext methods.
+ * bindings/scripts/test/V8/V8TestObj.cpp: Update test result.
+ (WebCore::TestObjV8Internal::enabledAtContextMethod1Callback):
+ (TestObjV8Internal):
+ (WebCore::TestObjV8Internal::enabledAtContextMethod2Callback):
+ (WebCore::V8TestObj::installPerContextProperties):
+ (WebCore::V8TestObj::wrapSlow):
+ * dom/ContextFeatures.cpp: Add a new per-context feature.
+ (WebCore::ContextFeatures::htmlNotificationsEnabled):
+ (WebCore):
+ * dom/ContextFeatures.h: Add a new per-context feature.
+
+2012-07-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123499.
+ http://trac.webkit.org/changeset/123499
+ https://bugs.webkit.org/show_bug.cgi?id=92161
+
+ Android fails to compile (Requested by zhenyao on #webkit).
+
+ * GNUmakefile.list.am:
+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::MediaStream):
+ (WebCore::MediaStream::addTrack):
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::create):
+ (WebCore::MediaStreamTrack::MediaStreamTrack):
+ (WebCore::MediaStreamTrack::~MediaStreamTrack):
+ (WebCore::MediaStreamTrack::setEnabled):
+ * Modules/mediastream/MediaStreamTrack.h:
+ (MediaStreamTrack):
+ * Modules/mediastream/MediaStreamTrack.idl:
+ * WebCore.gypi:
+ * dom/EventNames.h:
+ (WebCore):
+ * dom/EventTargetFactory.in:
+ * platform/chromium/support/WebMediaStreamDescriptor.cpp:
+ (WebKit):
+ (WebKit::WebMediaStreamDescriptor::sources):
+ * platform/chromium/support/WebMediaStreamSource.cpp:
+ * platform/mediastream/MediaStreamSource.cpp: Removed.
+ * platform/mediastream/MediaStreamSource.h:
+ (WebCore::MediaStreamSource::create):
+ (WebCore::MediaStreamSource::muted):
+ (WebCore::MediaStreamSource::setMuted):
+ (WebCore::MediaStreamSource::MediaStreamSource):
+ (MediaStreamSource):
+ * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
+ (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
+ (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
+
+2012-07-24 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Crash in RenderTableSection::layoutRows
+ https://bugs.webkit.org/show_bug.cgi?id=92145
+
+ Reviewed by Abhishek Arya.
+
+ The crash came from the insertChildNode logic being confused and choosing the wrong
+ renderer for insertion. This is because after r123159, table anonymous wrappers can
+ be created as 'inline-table' and wouldn't pass the isAnonymousBlock() check.
+
+ This change also aligns the ancestor iteration with RenderBlock::addChildToAnonymousColumnBlocks.
+
+ Test: fast/table/crash-table-section-layoutRows.html
+
+ * rendering/RenderObjectChildList.cpp:
+ (WebCore::RenderObjectChildList::insertChildNode):
+ Changed the code to always get the right child. There is no justification to not
+ walking up to the |owner|'s direct child in all cases.
+
+2012-07-24 Tony Chang <tony@chromium.org>
+
+ Make RenderBlock::paintChildren virtual so sub classes can change the paint order
+ https://bugs.webkit.org/show_bug.cgi?id=92042
+
+ Reviewed by Ojan Vafai.
+
+ The flexbox spec says that the order property should change the paint order of flex children.
+ To make that possible, make paintChildren virtual so RenderFlexibleBox can override it.
+
+ No new tests, this is just a refactoring.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::paintContents): Move some code out of paintChildren into paintContents.
+ (WebCore::RenderBlock::paintChildren): Make virtual and just have it be a simple for loop.
+ (WebCore::RenderBlock::paintChild): Move code out of paintChildren so subclasses can reuse.
+ * rendering/RenderBlock.h:
+ (RenderBlock): Make paintChildren virtual and protected so sub classes can call paintChild.
+
+2012-07-24 Anna Cavender <annacc@chromium.org>
+
+ Create SourceBuffer and SourceBufferList objects
+ https://bugs.webkit.org/show_bug.cgi?id=91771
+
+ Reviewed by Eric Carlson.
+
+ SourceBuffer and SourceBufferList objects are needed in order to
+ implement the new object-oriented MediaSource API:
+ http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
+
+ No new tests - will be able to test after landing BUGWK91775
+
+ Adding new files to build files:
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.vcproj/WebCoreCommon.vsprops:
+ * WebCore.vcproj/copyForwardingHeaders.cmd:
+ * WebCore.xcodeproj/project.pbxproj:
+
+ New objects:
+ * Modules/mediasource/SourceBuffer.cpp: Added.
+ * Modules/mediasource/SourceBuffer.h: Added.
+ * Modules/mediasource/SourceBuffer.idl: Added.
+ * Modules/mediasource/SourceBufferList.cpp: Added.
+ * Modules/mediasource/SourceBufferList.h: Added.
+ * Modules/mediasource/SourceBufferList.idl: Added.
+
+ New events:
+ * dom/EventNames.h:
+ (WebCore):
+ * dom/EventTarget.h:
+ (WebCore):
+ * dom/EventTargetFactory.in:
+
+ Object constructors:
+ * page/DOMWindow.idl:
+
+2012-07-24 Patrick Gansterer <paroga@webkit.org>
+
+ Store the full year in GregorianDateTime
+ https://bugs.webkit.org/show_bug.cgi?id=92067
+
+ Reviewed by Geoffrey Garen.
+
+ Use the full year instead of the offset from year 1900
+ for the year member variable of GregorianDateTime.
+
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+ (JSC::Bindings::convertQVariantToValue):
+ * bridge/qt/qt_runtime_qt4.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+ (JSC::Bindings::convertQVariantToValue):
+
+2012-07-24 Benjamin Poulain <bpoulain@apple.com>
+
+ Do not perform 8 to 16bits characters conversion when converting a WTFString to NSString/CFString
+ https://bugs.webkit.org/show_bug.cgi?id=90720
+
+ Reviewed by Geoffrey Garen.
+
+ In most String to CFString conversion, we should be able to use the "NoCopy" constructor and have
+ a relatively cheap conversion from WTF::String to CFString.
+
+ When the String is 8 bits, it was converted to 16 bits by getData16SlowCase() because of the call
+ to String::characters().
+
+ This patch adds a path for creating a CFString from a 8bits string using CFStringCreateWithBytes.
+
+ This is covered by existing tests.
+
+ * platform/text/cf/StringCF.cpp:
+ (WTF::String::createCFString): CFSTR() create static CFString, it is unecessary to retain it.
+ * platform/text/cf/StringImplCF.cpp:
+ (WTF::StringImpl::createCFString): The logic to avoid the StringWrapperCFAllocator has also been simplified.
+ The allocator creation is now closer to where it is useful.
+
+2012-07-24 Kentaro Hara <haraken@chromium.org>
+
+ [V8] String wrappers should be marked Independent
+ https://bugs.webkit.org/show_bug.cgi?id=91251
+
+ Reviewed by Adam Barth.
+
+ Currently V8 String wrappers are not marked Independent.
+ By marking them Independent, they can be reclaimed by the scavenger GC.
+ Although I couldn't find a case where this change reduces memory usage,
+ this change would be important for upcoming changes in string conversion
+ between V8 and WebKit (https://bugs.webkit.org/show_bug.cgi?id=91850).
+
+ 'm_lastStringImpl = 0' in StringCache::remove() is important.
+ Look at the following code:
+
+ static void cachedStringCallback(v8::Persistent<v8::Value> wrapper, void* parameter)
+ {
+ ...;
+ stringCache()->remove(stringImpl);
+ wrapper.Dispose();
+ }
+
+ void StringCache::remove(StringImpl* stringImpl)
+ {
+ ...
+ if (m_lastStringImpl.get() == stringImpl)
+ m_lastStringImpl = 0;
+ }
+
+ v8::Local<v8::String> v8ExternalString(StringImpl* stringImpl, v8::Isolate* isolate)
+ {
+ if (m_lastStringImpl.get() == stringImpl) {
+ return v8::Local<v8::String>::New(m_lastV8String); // m_lastV8String points to a wrapper object that was accessed most recently.
+ }
+ return v8ExternalStringSlow(stringImpl, isolate);
+ }
+
+ Without 'm_lastStringImpl = 0', already disposed m_lastV8String can be used
+ in v8ExternalString(). This was a cause of the crashes of r122614.
+
+ Tests: At the initial commit of this patch (r122614),
+ the following tests had been broken due to missing 'm_lastStringImpl = 0'.
+ fast/workers/worker-location.html
+ Dromaeo/cssquery-jquery.html
+ Dromaeo/jslib-event-jquery.html
+ Dromaeo/jslib-style-jquery.html
+ Dromaeo/jslib-style-prototype.html
+
+ * bindings/v8/V8Binding.cpp:
+ (WebCore::StringCache::remove):
+ (WebCore::StringCache::v8ExternalStringSlow):
+
+2012-07-24 Tommy Widenflycht <tommyw@google.com>
+
+ MediaStream API: Update MediaStreamTrack to match the specification
+ https://bugs.webkit.org/show_bug.cgi?id=90180
+
+ Reviewed by Adam Barth.
+
+ MediaStreamTracks are now required to show the status of the underlying source,
+ and trigger events when that status changes.
+
+ Test: fast/mediastream/MediaStreamTrack.html
+
+ * GNUmakefile.list.am:
+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::MediaStream):
+ (WebCore::MediaStream::addTrack):
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::create):
+ (WebCore::MediaStreamTrack::MediaStreamTrack):
+ (WebCore::MediaStreamTrack::~MediaStreamTrack):
+ (WebCore::MediaStreamTrack::setEnabled):
+ (WebCore::MediaStreamTrack::readyState):
+ (WebCore):
+ (WebCore::MediaStreamTrack::sourceChangedState):
+ (WebCore::MediaStreamTrack::stop):
+ (WebCore::MediaStreamTrack::interfaceName):
+ (WebCore::MediaStreamTrack::scriptExecutionContext):
+ (WebCore::MediaStreamTrack::eventTargetData):
+ (WebCore::MediaStreamTrack::ensureEventTargetData):
+ * Modules/mediastream/MediaStreamTrack.h:
+ * Modules/mediastream/MediaStreamTrack.idl:
+ * WebCore.gypi:
+ * dom/EventNames.h:
+ (WebCore):
+ * dom/EventTargetFactory.in:
+ * platform/chromium/support/WebMediaStreamDescriptor.cpp:
+ * platform/chromium/support/WebMediaStreamSource.cpp:
+ (WebKit::WebMediaStreamSource::setReadyState):
+ (WebKit):
+ (WebKit::WebMediaStreamSource::readyState):
+ * platform/mediastream/MediaStreamSource.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.h.
+ (WebCore):
+ (WebCore::MediaStreamSource::create):
+ (WebCore::MediaStreamSource::MediaStreamSource):
+ (WebCore::MediaStreamSource::setReadyState):
+ (WebCore::MediaStreamSource::addObserver):
+ (WebCore::MediaStreamSource::removeObserver):
+ * platform/mediastream/MediaStreamSource.h:
+ (Observer):
+ (WebCore::MediaStreamSource::Observer::~Observer):
+ (MediaStreamSource):
+ (WebCore::MediaStreamSource::readyState):
+ * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
+ (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
+ (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
+
+2012-07-24 Scott Graham <scottmg@chromium.org>
+
+ Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
+ https://bugs.webkit.org/show_bug.cgi?id=91667
+
+ Reviewed by Tony Chang.
+
+ Using native tools instead of cygwin version improves build time
+ performance by roughly 50% (on top of previous cl-instead-of-gcc
+ change).
+
+ Also, use - instead of / for cl flags, otherwise preprocessing fails
+ very slowly (due to retry loop). And, replace \ with / in gperf
+ command line. Without this, gperf emits the filename literally in
+ #line directives which causes VS to error with "unescaped \ in
+ string". Bizarrely, building ColorData.cpp with those \ in place
+ causes the IDE to exit with no error message, which was the cause of
+ the previous canary failures.
+
+ No new tests.
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gyp/scripts/rule_bison.py:
+ * bindings/scripts/preprocessor.pm:
+ (applyPreprocessor):
+ * make-hash-tools.pl:
+
+2012-07-24 Daniel Cheng <dcheng@chromium.org>
+
+ Files from drag and file <input> should use getMIMETypeForExtension to determine content type.
+ https://bugs.webkit.org/show_bug.cgi?id=91702
+
+ Reviewed by Jian Li.
+
+ Awhile back, we changed File to only use getWellKnownMIMETypeForExtension to prevent web
+ pages from being able to detect what applications a user has installed indirectly through
+ the MIME types. However, some sites like YouTube's drag and drop uploader use MIME types
+ that aren't in WebKit's internal list, so we relax the restriction for Files that originate
+ from an user action.
+
+ * fileapi/File.cpp:
+ (WebCore::getContentTypeFromFileName):
+ (WebCore::createBlobDataForFile):
+ (WebCore::createBlobDataForFileWithName):
+ (WebCore::createBlobDataForFileWithMetadata):
+ (WebCore::File::createWithRelativePath):
+ (WebCore::File::File):
+ * fileapi/File.h:
+ (File):
+ (WebCore::File::create):
+ (WebCore::File::createWithName):
+ * html/FileInputType.cpp:
+ (WebCore::FileInputType::createFileList):
+ * platform/chromium/ChromiumDataObject.cpp:
+ (WebCore::ChromiumDataObject::addFilename):
+ * platform/gtk/ClipboardGtk.cpp:
+ (WebCore::ClipboardGtk::files):
+ * platform/mac/ClipboardMac.mm:
+ (WebCore::ClipboardMac::files):
+ * platform/qt/ClipboardQt.cpp:
+ (WebCore::ClipboardQt::files):
+ * platform/win/ClipboardWin.cpp:
+ (WebCore::ClipboardWin::files):
+
+2012-07-24 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Snippets UI polish
+ https://bugs.webkit.org/show_bug.cgi?id=92142
+
+ Reviewed by Pavel Feldman.
+
+ Changed snippets context menu items.
+ Added run snippet status bar button.
+ Removed unused edit source button.
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/Images/statusbarButtonGlyphs.png:
+ * inspector/front-end/ScriptSnippetModel.js:
+ (WebInspector.SnippetJavaScriptSourceFrame):
+ (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
+ (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
+ * inspector/front-end/ScriptsNavigator.js:
+ (WebInspector.SnippetsNavigatorView.prototype.getOrCreateFolderTreeElement):
+ (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._updateScriptViewStatusBarItems):
+ (WebInspector.ScriptsPanel.prototype._createSourceFrame):
+ * inspector/front-end/SourceFrame.js:
+ (WebInspector.SourceFrame.prototype.statusBarItems):
+ * inspector/front-end/inspector.css:
+ * inspector/front-end/scriptsPanel.css:
+ (.evaluate-snippet-status-bar-item .glyph):
+ (.evaluate-snippet-status-bar-item.toggled .glyph):
+
+2012-07-24 Nico Weber <thakis@chromium.org>
+
+ [chromium/mac] Remove webcore_resource_files from WebCore.gypi
+ https://bugs.webkit.org/show_bug.cgi?id=92129
+
+ Reviewed by Adam Barth.
+
+ It was added in http://trac.webkit.org/changeset/81706/trunk/Source/WebCore/WebCore.gypi .
+ The changes in that revision were mostly reverted in http://trac.webkit.org/changeset/119921 ,
+ but this block was forgotten. Since it just confused me for a bit, remove it.
+
+ * WebCore.gyp/WebCore.gyp:
+
+2012-07-24 Julien Chaffraix <jchaffraix@webkit.org>
+
+ inline-table wrapper should be generated for display: inline element only
+ https://bugs.webkit.org/show_bug.cgi?id=92054
+
+ Reviewed by Abhishek Arya.
+
+ CSS 2.1 only takes into account the display when determining if we should generate
+ an inline-table. My misreading of the spec would make us generate an inline-table
+ wrapper for any inline formatting context.
+
+ Test: fast/table/inline-block-generates-table-wrapper.html
+
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::createAnonymousWithParentRenderer):
+ Changed to use display instead of isInline to properly match the spec.
+
+2012-07-24 Alec Flett <alecflett@chromium.org>
+
+ IndexedDB: Temporarily continue generating backend keys for empty key lists
+ https://bugs.webkit.org/show_bug.cgi?id=92012
+
+ Reviewed by Tony Chang.
+
+ Temporarily change key behavior to allow chromium in_process_webkit
+ to call putWithIndexKeys without inadvertently preventing index
+ key generation. Note this is temporary until frontend key generation
+ patch lands.
+
+ No new tests, this is part of a refactor that doesn't change behavior.
+
+ * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
+ (WebCore::IDBObjectStoreBackendImpl::putInternal):
+
+2012-07-24 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: introduce UISourceCodeFrame.
+ https://bugs.webkit.org/show_bug.cgi?id=92124
+
+ Reviewed by Vsevolod Vlasov.
+
+ Generic implementation of SourceFrame over UISourceCode added.
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/compile-front-end.py:
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._createSourceFrame):
+ * inspector/front-end/StylesPanel.js:
+ * inspector/front-end/UISourceCodeFrame.js: Added.
+ (WebInspector.UISourceCodeFrame):
+ (WebInspector.UISourceCodeFrame.prototype.canEditSource):
+ (WebInspector.UISourceCodeFrame.prototype.commitEditing):
+ (WebInspector.UISourceCodeFrame.prototype.afterTextChanged):
+ (WebInspector.UISourceCodeFrame.prototype._didEditContent):
+ (WebInspector.UISourceCodeFrame.prototype._onContentChanged):
+ (WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+
+2012-07-24 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/11945102> REGRESSION (r109451): Overlay scrollbars always use the default style, regardless of background color
+ https://bugs.webkit.org/show_bug.cgi?id=92115
+
+ Reviewed by Mark Rowe.
+
+ * platform/Scrollbar.cpp:
+ (WebCore::Scrollbar::scrollbarOverlayStyle): Reversed an incorrect null check.
+
+2012-07-24 Andrew Wilson <atwilson@chromium.org>
+
+ Another prospective build fix for Chromium. Unreviewed.
+
+ * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
+
+2012-07-24 Andrew Wilson <atwilson@chromium.org>
+
+ Unreviewed prospective build fix for Chromium. Changed include of hb.h in HarfBuzzNGFace.h
+
+ * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
+
+2012-07-24 Dominik Röttsches <dominik.rottsches@intel.com>
+
+ HarfBuzzFaceNG.h forward declarations conflict with newer versions of Harfbuzz
+ https://bugs.webkit.org/show_bug.cgi?id=92103
+
+ Reviewed by Philippe Normand.
+
+ As preparation for enabling harfbuzz-ng for EFL, I would like to include the header
+ here since the forward declarations are conflicting with the harfbuzz version
+ we will use for EFL.
+
+ No new tests, no change in behavior.
+
+ * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
+
+2012-07-24 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Fix blend filter for autovectorizing
+ https://bugs.webkit.org/show_bug.cgi?id=91398
+
+ Reviewed by Nikolas Zimmermann.
+
+ To support auto-vectorizing, the loop had to be unswitched, and regular arrays used that
+ did not do boundary-checks in the inner loop. Finally the integer division by 255
+ was optimized not use integer division intrinsics.
+
+ On a X86-64 architechture using GCC -O3 on the file, this gives a speed-up of 2.9x.
+
+ * platform/graphics/filters/FEBlend.cpp:
+ (WebCore::fastDivideBy255):
+ (BlendNormal):
+ (WebCore::BlendNormal::apply):
+ (BlendMultiply):
+ (WebCore::BlendMultiply::apply):
+ (BlendScreen):
+ (WebCore::BlendScreen::apply):
+ (BlendDarken):
+ (WebCore::BlendDarken::apply):
+ (BlendLighten):
+ (WebCore::BlendLighten::apply):
+ (BlendUnknown):
+ (WebCore::BlendUnknown::apply):
+ (WebCore::platformApply):
+ (WebCore::FEBlend::platformApplyGeneric):
+ (WebCore::FEBlend::platformApplySoftware):
+ * platform/graphics/filters/FEBlend.h:
+ (FEBlend):
+
+2012-07-23 Hans Wennborg <hans@chromium.org>
+
+ Speech JavaScript API: Add the SpeechRecognitionResult.emma attribute
+ https://bugs.webkit.org/show_bug.cgi?id=91743
+
+ Reviewed by Adam Barth.
+
+ Implement the 'emma' attribute as described in the spec draft at
+ http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html
+
+ Test: fast/speech/scripted/emma.html
+
+ * Modules/speech/SpeechRecognitionResult.cpp:
+ (WebCore::SpeechRecognitionResult::~SpeechRecognitionResult):
+ (WebCore):
+ (WebCore::SpeechRecognitionResult::emma):
+ * Modules/speech/SpeechRecognitionResult.h:
+ (WebCore):
+ (SpeechRecognitionResult):
+ * Modules/speech/SpeechRecognitionResult.idl:
+ * WebCore.gypi:
+ * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
+ (WebCore):
+ (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
+ We need to add an implicit reference from the result object to the
+ emma object to keep the latters DOM tree alive across
+ garbage-collection.
+
+2012-07-24 Andrei Poenaru <poenaru@adobe.com>
+
+ Web Inspector: Protocol Extension: add getFlowByName command
+ https://bugs.webkit.org/show_bug.cgi?id=91855
+
+ Reviewed by Pavel Feldman.
+
+ The "getFlowByName" command should return a NamedFlow for a given document and name.
+
+ Test: inspector/styles/protocol-css-regions-commands.html
+
+ * inspector/Inspector.json:
+ * inspector/InspectorCSSAgent.cpp:
+ (WebCore::InspectorCSSAgent::getFlowByName):
+ (WebCore):
+ * inspector/InspectorCSSAgent.h:
+ (InspectorCSSAgent):
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
+ (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
+ (WebInspector.NamedFlow):
+ (WebInspector.NamedFlow.parsePayload):
+
+2012-07-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ [Qt] Fix compilation against namespaced Qt
+
+ Reviewed by Simon Hausmann.
+
+ * platform/graphics/Font.h:
+ * platform/network/ResourceHandleInternal.h:
+ * platform/qt/ThirdPartyCookiesQt.h:
+
+2012-07-24 Anthony Scian <ascian@rim.com>
+
+ Web Inspector [JSC]: Enable initiator column in network panel.
+ https://bugs.webkit.org/show_bug.cgi?id=65533
+
+ Reviewed by Vsevolod Vlasov.
+
+ With 40118 fixed for webkit, Preferences.displayInitiator should be set to true.
+ Removed references to it since the optionality is no longer required.
+
+ Test: http/tests/inspector/network/network-initiator.html
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkLogView.prototype._createTable):
+ (WebInspector.NetworkLogView.prototype.switchToDetailedView):
+ (WebInspector.NetworkLogView.prototype.switchToBriefView):
+ (WebInspector.NetworkDataGridNode.prototype.createCells):
+ (WebInspector.NetworkDataGridNode.prototype.refreshRequest):
+ * inspector/front-end/Settings.js:
+
+2012-07-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Missing *explicit* keyword in dom and page.
+ https://bugs.webkit.org/show_bug.cgi?id=92074
+
+ Reviewed by Kentaro Hara.
+
+ Some constructors missed to use *explicit* keyword. They need to be added
+ *explicit* keyword to contructor which has a parameter in order to avoid
+ implicit type conversion.
+
+ Some files in dom directory can't use explicit keyword because of build breaks.
+
+ No new tests. Covered by existing tests.
+
+ * dom/BeforeLoadEvent.h:
+ (WebCore::BeforeLoadEvent::BeforeLoadEvent):
+ * dom/BeforeTextInsertedEvent.h:
+ (BeforeTextInsertedEvent):
+ * dom/ChildListMutationScope.h:
+ (WebCore::ChildListMutationScope::ChildListMutationScope):
+ * dom/ChildNodeList.h:
+ (ChildNodeList):
+ * dom/ClientRect.h:
+ (ClientRect):
+ * dom/ClientRectList.h:
+ (ClientRectList):
+ * dom/ComposedShadowTreeWalker.h:
+ (ComposedShadowTreeParentWalker):
+ * dom/DOMCoreException.h:
+ (WebCore::DOMCoreException::DOMCoreException):
+ * dom/DOMImplementation.h:
+ (DOMImplementation):
+ * dom/DatasetDOMStringMap.h:
+ (WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
+ * dom/DeviceMotionController.h:
+ (DeviceMotionController):
+ * dom/DeviceOrientationController.h:
+ (DeviceOrientationController):
+ * dom/DocumentParser.h:
+ (DocumentParser):
+ * dom/EventException.h:
+ (WebCore::EventException::EventException):
+ * dom/EventListener.h:
+ (WebCore::EventListener::EventListener):
+ * dom/ExceptionBase.h:
+ (ExceptionBase):
+ * dom/GenericEventQueue.h:
+ (GenericEventQueue):
+ * dom/KeyboardEvent.h:
+ (WebCore::KeypressCommand::KeypressCommand):
+ * dom/MemoryInstrumentation.h:
+ (WebCore::MemoryObjectInfo::MemoryObjectInfo):
+ * dom/MessageChannel.h:
+ (MessageChannel):
+ * dom/MessagePort.h:
+ (MessagePort):
+ * dom/MessagePortChannel.h:
+ (MessagePortChannel):
+ * dom/MutationObserver.h:
+ * dom/NamedNodeMap.h:
+ (WebCore::NamedNodeMap::NamedNodeMap):
+ * dom/NodeFilter.h:
+ (WebCore::NodeFilter::NodeFilter):
+ * dom/NodeWithIndex.h:
+ (WebCore::NodeWithIndex::NodeWithIndex):
+ * dom/Range.h:
+ * dom/RangeException.h:
+ (WebCore::RangeException::RangeException):
+ * dom/RawDataDocumentParser.h:
+ (WebCore::RawDataDocumentParser::RawDataDocumentParser):
+ * dom/ScriptRunner.h:
+ (ScriptRunner):
+ * dom/SelectorQuery.h:
+ (SelectorQuery):
+ * dom/ShadowRoot.h:
+ (ShadowRoot):
+ * dom/SpaceSplitString.h:
+ (SpaceSplitStringData):
+ * dom/StaticHashSetNodeList.h:
+ (StaticHashSetNodeList):
+ * dom/StaticNodeList.h:
+ (WebCore::StaticNodeList::StaticNodeList):
+ * dom/TransformSource.h:
+ (TransformSource):
+ * dom/TreeScope.h:
+ (TreeScope):
+ * dom/WebKitNamedFlowCollection.h:
+ (WebKitNamedFlowCollection):
+ * page/EventHandler.h:
+ (EventHandler):
+ * page/FocusController.h:
+ (FocusController):
+ * page/FrameView.h:
+ (FrameView):
+ * page/MemoryInfo.h:
+ (MemoryInfo):
+ * page/Page.h:
+ (Page):
+ * page/PageGroup.h:
+ (PageGroup):
+ * page/PrintContext.h:
+ (PrintContext):
+ * page/Settings.h:
+ (Settings):
+ * page/SpeechInput.h:
+ (SpeechInput):
+ * page/SpeechInputResultList.h:
+ (SpeechInputResultList):
+ * page/WebKitAnimation.h:
+ * page/WindowFeatures.h:
+ (WindowFeatures):
+ * page/WorkerNavigator.h:
+ (WorkerNavigator):
+
+2012-07-24 Kent Tamura <tkent@chromium.org>
+
+ Replace some callsites of shadowAncestorNode() with shadowHost()
+ https://bugs.webkit.org/show_bug.cgi?id=92060
+
+ Reviewed by Hajime Morita.
+
+ shadowAncestorNode() is deprecated.
+
+ No new tests. This shouldn't change behaviors.
+
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::toParentMediaElement):
+ * html/shadow/TextControlInnerElements.h:
+ (WebCore::SpinButtonElement::isEnabledFormControl):
+ (WebCore::SpinButtonElement::isReadOnlyFormControl):
+ * platform/efl/RenderThemeEfl.cpp:
+ (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
+ (WebCore::RenderThemeEfl::paintMediaMuteButton):
+ * platform/gtk/RenderThemeGtk.cpp:
+ (WebCore::getMediaElementFromRenderObject):
+ (WebCore::centerRectVerticallyInParentInputElement):
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
+ (WebCore::RenderThemeQt::paintMediaSliderThumb):
+ Removed an ASSERT() because nullness of o->node() is already asserted.
+ * rendering/RenderInputSpeech.cpp:
+ (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
+ * rendering/RenderMediaControlsChromium.cpp:
+ (WebCore::paintMediaSliderThumb):
+ Passing shadowHost() to toParentMediaElement(), which accepts 0 and will return 0.
+ (WebCore::paintMediaVolumeSliderThumb): ditto.
+ * rendering/RenderThemeChromiumSkia.cpp:
+ (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
+ (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
+ (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
+ Remove an ASSERT(input) because input never be null unless o->node() is
+ null. If o->node() is null, this function crashes.
+ (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
+ (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
+ (WebCore::RenderThemeMac::paintMediaMuteButton):
+ It's ok to ignore "node is a media element" case because this function
+ works only if node->isMediaControlElement().
+ (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
+ (WebCore::RenderThemeMac::paintMediaSliderTrack): ditto.
+ * rendering/RenderThemeSafari.cpp:
+ (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
+ Remove an ASSERT(input) because input never be null unless o->node() is
+ null. If o->node() is null, this function crashes.
+ (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): ditto.
+ (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): ditto.
+ * rendering/RenderThemeWinCE.cpp:
+ (WebCore::mediaElementParent):
+
+2012-07-24 Peter Beverloo <peter@chromium.org>
+
+ [Chromium] Build fix for Android after r123424
+ https://bugs.webkit.org/show_bug.cgi?id=92082
+
+ Unreviewed build fix.
+
+ Mark removed the PlatformSupport.h header from ScrollbarThemeChromiumAndroid.cpp
+ in r123424, while there still are two references left to another method and a
+ constant. Re-add the include directive.
+
+ * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
+
+2012-07-24 Kentaro Hara <haraken@chromium.org>
+
+ [JSC] REGRESSION(r122912): CodeGeneratorJS.pm generates wrong code
+ for static attributes in supplemental IDL files
+ https://bugs.webkit.org/show_bug.cgi?id=91925
+
+ Reviewed by Adam Barth.
+
+ r122912 implemented static attributes in CodeGeneratorJS.pm.
+ However, it generates wrong code for static attributes in supplemental
+ IDL files. This patch fixes it as shown in JSTestInterface.cpp.
+ This fix aligns with the fix in CodeGeneratorV8.pm (r123308).
+
+ Test: bindings/scripts/test/TestSupplemental.idl
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateImplementation):
+ * bindings/scripts/test/JS/JSTestInterface.cpp:
+ (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
+ (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
+ (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
+
+2012-07-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Add *explicit* keyword to constructor which has a parameter in bridge, history, loader and plugins.
+ https://bugs.webkit.org/show_bug.cgi?id=92064
+
+ Reviewed by Kentaro Hara.
+
+ Some constructors missed to use *explicit* keyword. They need to be added
+ *explicit* keyword to contructor which has a parameter in order to avoid
+ implicit type conversion.
+
+ No new tests. Covered by existing tests.
+
+ * bridge/IdentifierRep.h:
+ (WebCore::IdentifierRep::IdentifierRep):
+ * history/BackForwardListImpl.h:
+ (BackForwardListImpl):
+ * history/CachedFrame.h:
+ (CachedFrame):
+ * history/HistoryItem.h:
+ (HistoryItem):
+ * loader/DocumentWriter.h:
+ (DocumentWriter):
+ * loader/FrameNetworkingContext.h:
+ (WebCore::FrameNetworkingContext::FrameNetworkingContext):
+ * loader/HistoryController.h:
+ * loader/ImageLoader.h:
+ (ImageLoader):
+ * loader/LinkLoader.h:
+ (LinkLoader):
+ * loader/MainResourceLoader.h:
+ (MainResourceLoader):
+ * loader/NavigationAction.h:
+ (NavigationAction):
+ * loader/NavigationScheduler.h:
+ (NavigationScheduler):
+ * loader/PolicyChecker.h:
+ (PolicyChecker):
+ * loader/SubframeLoader.h:
+ (SubframeLoader):
+ * loader/ThreadableLoaderClientWrapper.h:
+ (WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
+ * plugins/PluginData.h:
+ (PluginData):
+ * plugins/PluginViewBase.h:
+ (WebCore::PluginViewBase::PluginViewBase):
+
+2012-07-24 Patrick Gansterer <paroga@webkit.org>
+
+ [Qt] Fix conversion from GregorianDateTime to QTime
+ https://bugs.webkit.org/show_bug.cgi?id=92068
+
+ Reviewed by Simon Hausmann.
+
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+ * bridge/qt/qt_runtime_qt4.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+
+2012-07-24 Arko Saha <arko@motorola.com>
+
+ Microdata: Implement PropertyNodeList interface.
+ https://bugs.webkit.org/show_bug.cgi?id=80269
+
+ Reviewed by Ryosuke Niwa.
+
+ Added support for PropertyNodeList interface. Currently HTMLPropertiesCollection.namedItem(name)
+ returns NodeList object. Made changes so that it will return PropertyNodeList object.
+
+ Implemented propertyNodeList.getValues() method. It returns an array of various values. Its
+ values are obtained from the "itemValue" DOM property of each of the elements represented by
+ the object, in tree order.
+
+ Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist
+
+ Tests: fast/dom/MicroData/nameditem-returns-propertynodelist.html
+ fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html
+ fast/dom/MicroData/propertynodelist-getvalues-test.html
+ fast/dom/MicroData/propertynodelist-test-add-remove-element.html
+
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UseJSC.cmake:
+ * UseV8.cmake:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/gobject/GNUmakefile.am:
+ * bindings/js/JSBindingsAllInOne.cpp:
+ * bindings/js/JSMicroDataItemValueCustom.cpp: Added.
+ (WebCore):
+ (WebCore::toJS): Added toJS() custom method. Returns Node if itemValue is node else returns String.
+ * bindings/v8/custom/V8MicroDataItemValueCustom.cpp: Added.
+ (WebCore):
+ (WebCore::toV8): Added toV8 custom code.
+ * dom/DynamicNodeList.cpp:
+ (WebCore::DynamicNodeListCacheBase::rootNode): Return document if owner node has itemref attribute specified.
+ (WebCore):
+ (WebCore::DynamicNodeListCacheBase::ownerNodeHasItemRefAttribute): Returns true if owner node has itemref attribute
+ specified with root type NodeListRootedAtDocumentIfOwnerHasItemrefAttr.
+ (WebCore::DynamicNodeListCacheBase::invalidateCache):
+ (WebCore::DynamicNodeList::itemWithName): Update itemrefElements cache if root type is
+ NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
+ * dom/DynamicNodeList.h: Added m_hasItemRefElements in DynamicNodeListCacheBase to check if itemRefElmenets cache
+ is valid.
+ (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
+ (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
+ (DynamicNodeListCacheBase):
+ (WebCore::DynamicNodeListCacheBase::isItemRefElementsCacheValid):
+ (WebCore::DynamicNodeListCacheBase::setItemRefElementsCacheValid):
+ (WebCore::DynamicNodeListCacheBase::rootType): Returns cached root type.
+ (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Invalidate NodeListCache on itemref
+ attribute change.
+ * dom/Node.cpp:
+ (WebCore::Node::propertyNodeList):
+ * dom/Node.h:
+ (WebCore):
+ (Node):
+ * dom/PropertyNodeList.cpp: Added.
+ (WebCore):
+ (WebCore::PropertyNodeList::PropertyNodeList):
+ (WebCore::PropertyNodeList::~PropertyNodeList):
+ (WebCore::PropertyNodeList::elementIsPropertyOfRefElement): Checks if the testElement is a property of Microdata
+ item.
+ (WebCore::PropertyNodeList::updateRefElements):
+ (WebCore::PropertyNodeList::nodeMatches):
+ (WebCore::PropertyNodeList::getValues): Returns PropertyValueArray whose values are obtained from the
+ itemValue DOM property of each of the elements represented by the object, in tree order.
+ * dom/PropertyNodeList.h: Added.
+ (WebCore):
+ (PropertyNodeList):
+ (WebCore::PropertyNodeList::create):
+ * dom/PropertyNodeList.idl: Added.
+ * html/HTMLCollection.cpp:
+ (WebCore::DynamicNodeListCacheBase::itemCommon): Update itemrefElements cache if its a NodeListCollectionType with
+ root type NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::properties):
+ (WebCore):
+ (WebCore::HTMLElement::getItemRefElements): Returns the ItemRefElements list of given element. Added this
+ method to share the code between HTMLPropertiesCollection and PropertyNodeList to update itemRefElements.
+ * html/HTMLElement.h:
+ (HTMLElement):
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
+ (WebCore::HTMLPropertiesCollection::updateRefElements):
+ (WebCore::HTMLPropertiesCollection::updateNameCache):
+ (WebCore::HTMLPropertiesCollection::namedItem): Return PropertyNodeList object instead of NodeList.
+ (WebCore::HTMLPropertiesCollection::hasNamedItem): Return true if it finds an item with given
+ name in the properties collection.
+ * html/HTMLPropertiesCollection.h: Removed m_hasItemRefElements member variable, now DynamicNodeListCacheBase
+ has isItemRefElementsCacheValid. Also removed m_hasPropertyNameCache, as DynamicNodeListCacheBase already has
+ hasNameCache() and setHasNameCache().
+ (WebCore):
+ (HTMLPropertiesCollection):
+ (WebCore::HTMLPropertiesCollection::invalidateCache):
+ (WebCore::HTMLPropertiesCollection::updatePropertyCache):
+ * html/HTMLPropertiesCollection.idl:
+ * html/MicroDataItemValue.idl: Added.
+ * page/DOMWindow.idl:
+
+2012-07-24 Kentaro Hara <haraken@chromium.org>
+
+ [JSC] REGRESSION(r122912): CodeGeneratorJS.pm should not
+ implicitly assume ScriptExecutionContext for static attributes
+ https://bugs.webkit.org/show_bug.cgi?id=91924
+
+ Reviewed by Adam Barth.
+
+ r122912 implemented static attributes in CodeGeneratorJS.pm.
+ However, the generated code assumes that static attributes
+ always require ScriptExecutionContext, which is wrong.
+ If we need a ScriptExecutionContext, we should specify
+ [CallWith=ScriptExecutionContext].
+
+ This patch fixes CodeGeneratorJS.pm so that static attributes
+ do not assume ScriptExecutionContext. This fix aligns with
+ the fix in CodeGeneratorV8.pm in r123308.
+
+ Test: bindings/scripts/test/TestObj.idl
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateImplementation):
+ * bindings/scripts/test/JS/JSTestInterface.cpp:
+ (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
+ (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
+ (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjConstructorStaticReadOnlyIntAttr):
+ (WebCore::jsTestObjConstructorStaticStringAttr):
+ (WebCore::setJSTestObjConstructorStaticStringAttr):
+
+2012-07-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Missing *explicit* keyword in editing.
+ https://bugs.webkit.org/show_bug.cgi?id=92055
+
+ Reviewed by Ryosuke Niwa.
+
+ Some constructors missed to use *explicit* keyword. They need to be added
+ *explicit* keyword to contructor which has a parameter in order to avoid
+ implicit type conversion.
+
+ No new tests. Covered by existing tests.
+
+ * editing/AlternativeTextController.h:
+ (WebCore::AlternativeTextController::UNLESS_ENABLED):
+ * editing/BreakBlockquoteCommand.h:
+ (BreakBlockquoteCommand):
+ * editing/DeleteButton.h:
+ (DeleteButton):
+ * editing/DeleteButtonController.h:
+ (DeleteButtonController):
+ * editing/EditCommand.h:
+ (EditCommand):
+ (WebCore::SimpleEditCommand::SimpleEditCommand):
+ * editing/EditingBehavior.h:
+ (WebCore::EditingBehavior::EditingBehavior):
+ * editing/EditingStyle.h:
+ (EditingStyle):
+ * editing/Editor.h:
+ (Editor):
+ * editing/FrameSelection.h:
+ (FrameSelection):
+ * editing/InsertLineBreakCommand.h:
+ (InsertLineBreakCommand):
+ * editing/ModifySelectionListLevel.h:
+ (ModifySelectionListLevelCommand):
+ (DecreaseSelectionListLevelCommand):
+ * editing/RemoveFormatCommand.h:
+ (RemoveFormatCommand):
+ * editing/RemoveNodeCommand.h:
+ (RemoveNodeCommand):
+ * editing/RemoveNodePreservingChildrenCommand.h:
+ (RemoveNodePreservingChildrenCommand):
+ * editing/ReplaceNodeWithSpanCommand.h:
+ (ReplaceNodeWithSpanCommand):
+ * editing/TextInsertionBaseCommand.h:
+ (TextInsertionBaseCommand):
+ * editing/UndoManager.h:
+ (UndoManager):
+ * editing/UnlinkCommand.h:
+ (UnlinkCommand):
+ * editing/WrapContentsInDummySpanCommand.h:
+ (WrapContentsInDummySpanCommand):
+
+2012-07-23 Dominic Mazzoni <dmazzoni@google.com>
+
+ AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
+ https://bugs.webkit.org/show_bug.cgi?id=87899
+
+ Reviewed by Chris Fleizach.
+
+ Refactors AccessibilityRenderObject so that it inherits from a new class,
+ AccessibilityNodeObject, that can be constructed from a Node without a
+ renderer. Modifies AXObjectCache so that it automatically creates an
+ AccessibilityNodeObject for elements in a canvas subtree but not otherwise.
+ A new layout test verifies that this correctly exposes an accessibility
+ tree with appropriate roles for elements in a canvas subtree.
+
+ This patch does not try to complete the implementation of
+ AccessibilityNodeObject. Most AX methods are still unimplemented and need
+ to be migrated from AccessibilityRenderObject to AccessibilityNodeObject
+ in a future patch.
+
+ This patch also doesn't change anything outside of WebCore/accessibility, so
+ the rest of WebCore only calls AXObjectCache when there are changes to a
+ RenderObject, not to a Node. Accessible notifications on nodes without
+ renderers need to be implemented in a future patch.
+
+ Test: accessibility/canvas-accessibilitynodeobject.html
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * accessibility/AXObjectCache.cpp:
+ (WebCore::AXObjectCache::get):
+ (WebCore):
+ (WebCore::createFromNode):
+ (WebCore::AXObjectCache::getOrCreate):
+ (WebCore::AXObjectCache::remove):
+ * accessibility/AXObjectCache.h:
+ (AXObjectCache):
+ (WebCore::AXObjectCache::get):
+ (WebCore::AXObjectCache::getOrCreate):
+ (WebCore::AXObjectCache::remove):
+ * accessibility/AccessibilityARIAGrid.cpp:
+ (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
+ (WebCore):
+ (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
+ (WebCore::AccessibilityARIAGrid::init):
+ (WebCore::AccessibilityARIAGrid::create):
+ * accessibility/AccessibilityARIAGrid.h:
+ (AccessibilityARIAGrid):
+ * accessibility/AccessibilityARIAGridCell.cpp:
+ (WebCore::AccessibilityARIAGridCell::create):
+ * accessibility/AccessibilityARIAGridRow.cpp:
+ (WebCore::AccessibilityARIAGridRow::create):
+ * accessibility/AccessibilityAllInOne.cpp:
+ * accessibility/AccessibilityList.cpp:
+ (WebCore::AccessibilityList::create):
+ * accessibility/AccessibilityListBox.cpp:
+ (WebCore::AccessibilityListBox::create):
+ * accessibility/AccessibilityMediaControls.cpp:
+ (WebCore::AccessibilityMediaControl::create):
+ (WebCore::AccessibilityMediaControlsContainer::create):
+ (WebCore::AccessibilityMediaTimeline::create):
+ (WebCore::AccessibilityMediaTimeDisplay::create):
+ * accessibility/AccessibilityMenuList.cpp:
+ (WebCore::AccessibilityMenuList::create):
+ (WebCore):
+ * accessibility/AccessibilityMenuList.h:
+ (AccessibilityMenuList):
+ * accessibility/AccessibilityNodeObject.cpp: Added.
+ (WebCore):
+ (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
+ (WebCore::AccessibilityNodeObject::~AccessibilityNodeObject):
+ (WebCore::AccessibilityNodeObject::init):
+ (WebCore::AccessibilityNodeObject::create):
+ (WebCore::AccessibilityNodeObject::detach):
+ (WebCore::AccessibilityNodeObject::childrenChanged):
+ (WebCore::AccessibilityNodeObject::updateAccessibilityRole):
+ (WebCore::AccessibilityNodeObject::firstChild):
+ (WebCore::AccessibilityNodeObject::lastChild):
+ (WebCore::AccessibilityNodeObject::previousSibling):
+ (WebCore::AccessibilityNodeObject::nextSibling):
+ (WebCore::AccessibilityNodeObject::parentObjectIfExists):
+ (WebCore::AccessibilityNodeObject::parentObject):
+ (WebCore::AccessibilityNodeObject::elementRect):
+ (WebCore::AccessibilityNodeObject::setNode):
+ (WebCore::AccessibilityNodeObject::document):
+ (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
+ (WebCore::AccessibilityNodeObject::addChildren):
+ (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
+ (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
+ (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
+ (WebCore::AccessibilityNodeObject::ariaRoleAttribute):
+ (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent):
+ * accessibility/AccessibilityNodeObject.h: Added.
+ (WebCore):
+ (AccessibilityNodeObject):
+ (WebCore::AccessibilityNodeObject::isAccessibilityNodeObject):
+ (WebCore::AccessibilityNodeObject::node):
+ (WebCore::AccessibilityNodeObject::isDetached):
+ (WebCore::toAccessibilityNodeObject):
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::isAccessibilityNodeObject):
+ * accessibility/AccessibilityProgressIndicator.cpp:
+ (WebCore::AccessibilityProgressIndicator::create):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
+ (WebCore::AccessibilityRenderObject::init):
+ (WebCore):
+ (WebCore::AccessibilityRenderObject::create):
+ (WebCore::AccessibilityRenderObject::detach):
+ (WebCore::AccessibilityRenderObject::setRenderer):
+ (WebCore::AccessibilityRenderObject::canHaveChildren):
+ (WebCore::AccessibilityRenderObject::addCanvasChildren):
+ (WebCore::AccessibilityRenderObject::addChildren):
+ * accessibility/AccessibilityRenderObject.h:
+ (AccessibilityRenderObject):
+ * accessibility/AccessibilitySlider.cpp:
+ (WebCore::AccessibilitySlider::create):
+ * accessibility/AccessibilityTable.cpp:
+ (WebCore::AccessibilityTable::AccessibilityTable):
+ (WebCore):
+ (WebCore::AccessibilityTable::~AccessibilityTable):
+ (WebCore::AccessibilityTable::init):
+ (WebCore::AccessibilityTable::create):
+ * accessibility/AccessibilityTable.h:
+ (AccessibilityTable):
+ * accessibility/AccessibilityTableCell.cpp:
+ (WebCore::AccessibilityTableCell::create):
+ * accessibility/AccessibilityTableRow.cpp:
+ (WebCore::AccessibilityTableRow::create):
+
+2012-07-23 David Barr <davidbarr@chromium.org>
+
+ Fix ENABLE_CSS_IMAGE_ORIENTATION compile flag
+ https://bugs.webkit.org/show_bug.cgi?id=91961
+
+ Reviewed by Tony Chang.
+
+ https://bugs.webkit.org/show_bug.cgi?id=89055
+ A rule was missed implementing the ENABLE_CSS_IMAGE_ORIENTATION compile flag.
+
+ https://bugs.webkit.org/show_bug.cgi?id=90046
+ Half of the missing rule was inadvertently added together with ENABLE_CSS_STICKY_POSITION.
+
+ No new tests; build configuration fix.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-23 Douglas Stockwell <dstockwell@chromium.org>
+
+ Null-pointer crash when a derived color like -webkit-activelink is set in a gradient stop
+ https://bugs.webkit.org/show_bug.cgi?id=89148
+
+ Reviewed by Simon Fraser.
+
+ CSSGradientValue attempted to resolve colors during paint, this crashed
+ when a derived color like -webkit-activelink was encountered because the
+ corresponding element was no longer available in the StyleResolver.
+ Instead, by adding a field to CSSGradientColorStop we can resolve and
+ then cache the resolved colors at the correct time. To avoid sharing
+ cached derived colors between elements we clone the gradient values when
+ needed.
+
+ Test: fast/css/crash-on-gradient-with-derived-color.html
+
+ * css/CSSGradientValue.cpp:
+ (WebCore::CSSGradientValue::gradientWithStylesResolved): Added. Resolve and cache
+ resolved colors, clone if colors are derived from the element.
+ (WebCore):
+ (WebCore::CSSGradientValue::addStops):
+ (WebCore::CSSGradientValue::isCacheable): Defer to new logic in
+ StyleResolver.
+ * css/CSSGradientValue.h:
+ (CSSGradientColorStop): Added cache of resolved color.
+ (CSSGradientValue):
+ (CSSLinearGradientValue):
+ (CSSRadialGradientValue):
+ * css/CSSImageGeneratorValue.h:
+ (WebCore):
+ * css/CSSValue.h:
+ (WebCore::CSSValue::isGradientValue):
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::collectMatchingRulesForList):
+ * css/StyleResolver.h:
+ (StyleResolver):
+ * rendering/style/StyleGeneratedImage.cpp:
+ (WebCore::StyleGeneratedImage::image): Revert change from r96449. This
+ is no longer necessary as the gradient colors are now resolved at a
+ time when the style is set on StyleResolver.
+
+2012-07-23 Patrick Gansterer <paroga@webkit.org>
+
+ Move GregorianDateTime from JSC to WTF namespace
+ https://bugs.webkit.org/show_bug.cgi?id=91948
+
+ Reviewed by Geoffrey Garen.
+
+ Moving GregorianDateTime into the WTF namespace allows us to us to
+ use it in WebCore too. The new class has the same behaviour as the
+ old struct. Only the unused timeZone member has been removed.
+
+ * bridge/qt/qt_runtime.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+ (JSC::Bindings::convertQVariantToValue):
+ * bridge/qt/qt_runtime_qt4.cpp:
+ (JSC::Bindings::convertValueToQVariant):
+ (JSC::Bindings::convertQVariantToValue):
+
+2012-07-23 Mark Pilgrim <pilgrim@chromium.org>
+
+ [Chromium] Move layoutTestMode to WebCore
+ https://bugs.webkit.org/show_bug.cgi?id=92010
+
+ Reviewed by Adam Barth.
+
+ Part of a refactoring series. See tracking bug 82948.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/generic/RuntimeEnabledFeatures.h:
+ (RuntimeEnabledFeatures):
+ * platform/LayoutTestSupport.cpp: Added.
+ (WebCore):
+ (WebCore::isRunningLayoutTest):
+ (WebCore::setIsRunningLayoutTest):
+ * platform/LayoutTestSupport.h: Added.
+ (WebCore):
+ * platform/chromium/PlatformSupport.h:
+ (PlatformSupport):
+ * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
+ (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
+ (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
+ * platform/chromium/ScrollbarThemeChromiumWin.cpp:
+ (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
+ (WebCore::ScrollbarThemeChromiumWin::buttonSize):
+ * platform/graphics/chromium/FontCacheChromiumWin.cpp:
+ (WebCore):
+ (WebCore::LookupAltName):
+ (WebCore::fontContainsCharacter):
+ (WebCore::FillLogFont):
+ (WebCore::FontCache::getFontDataForCharacters):
+ (WebCore::FontCache::createFontPlatformData):
+ * platform/graphics/skia/FontCustomPlatformData.cpp:
+ (WebCore::FontCustomPlatformData::fontPlatformData):
+ * platform/graphics/skia/FontSkia.cpp:
+ (WebCore::Font::drawGlyphs):
+ * rendering/RenderThemeChromiumAndroid.cpp:
+ (WebCore::RenderThemeChromiumAndroid::systemColor):
+ (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle):
+ * rendering/RenderThemeChromiumMac.mm:
+ (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
+ * rendering/RenderThemeChromiumSkia.cpp:
+ (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
+ * rendering/RenderThemeChromiumWin.cpp:
+ (WebCore):
+ (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
+ (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
+ (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
+ (WebCore::RenderThemeChromiumWin::systemColor):
+ (WebCore::menuListButtonWidth):
+ (WebCore::RenderThemeChromiumWin::determineClassicState):
+
+2012-07-23 Dave Tu <dtu@chromium.org>
+
+ [chromium] Add droppedFrameCount to renderingStats.
+ https://bugs.webkit.org/show_bug.cgi?id=91694
+
+ Reviewed by Adrienne Walker.
+
+ * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
+ (WebCore):
+ (WebCore::CCFrameRateCounter::frameInterval):
+ (WebCore::CCFrameRateCounter::frameIndex):
+ (WebCore::CCFrameRateCounter::CCFrameRateCounter):
+ (WebCore::CCFrameRateCounter::markBeginningOfFrame):
+ (WebCore::CCFrameRateCounter::isBadFrame):
+ * platform/graphics/chromium/cc/CCFrameRateCounter.h:
+ (WebCore::CCFrameRateCounter::droppedFrameCount):
+ (CCFrameRateCounter):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::renderingStats):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
+ (WebCore::CCLayerTreeHostImpl::drawLayers):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ (CCLayerTreeHostImpl):
+ * platform/graphics/chromium/cc/CCRenderingStats.h:
+ (CCRenderingStats):
+ (WebCore::CCRenderingStats::CCRenderingStats):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::implSideRenderingStats):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::implSideRenderingStatsOnImplThread):
+
+2012-07-23 Dan Bernstein <mitz@apple.com>
+
+ Fixed the build after r123418.
+
+ * WebCore.exp.in: Added DocumentMarkerController::addTextMatchMarker.
+
+2012-07-23 Mike Lawther <mikelawther@chromium.org>
+
+ CSS3 calc: optimise blending expression
+ https://bugs.webkit.org/show_bug.cgi?id=90037
+
+ Reviewed by Tony Chang.
+
+ Introduce a new calc expression node - a BlendLength node. Given two Lengths and a progress
+ this blends them together when evaluated.
+
+ An alternative and more general approach of being able to blend two CalcExpressionNodes was
+ tested, but involves more memory allocations, was measurably slower, and nothing currently
+ would make use of the generality.
+
+ No functional change. Covered by existing tests.
+
+ * platform/CalculationValue.h:
+ (CalcExpressionBlendLength):
+ (WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength):
+ (WebCore::CalcExpressionBlendLength::operator==):
+ (WebCore::CalcExpressionBlendLength::evaluate):
+ (WebCore):
+ * platform/Length.cpp:
+ (WebCore::Length::blendCalculation):
+
+2012-07-23 Nico Weber <thakis@chromium.org>
+
+ [chromium] Show search tickmarks on css-styled scrollbars
+ https://bugs.webkit.org/show_bug.cgi?id=91949
+
+ Reviewed by Adrienne Walker.
+
+ This is done by letting RenderScrollbarTheme::paintTickmarks()
+ delegate to the native ScrollbarTheme. To make this possible,
+ move paintTickmarks() from ScrollbarThemeComposite to the
+ superclass ScrollbarTheme.
+
+ For testing, add internals.addTextMatchMarker() and add a pixel test.
+
+ * platform/ScrollbarTheme.h:
+ (WebCore::ScrollbarTheme::paintTickmarks):
+ Moved paintTickmarks() from ScrollbarThemeComposite to here.
+ * platform/ScrollbarThemeComposite.h:
+ Remove paintTickmarks().
+ * platform/chromium/ScrollbarThemeChromium.cpp:
+ (WebCore::ScrollbarThemeChromium::paintTickmarks):
+ Switch to drawing tickmarks as vectors, so they can be arbitrarily wide.
+ * platform/chromium/ScrollbarThemeChromiumMac.h:
+ (ScrollbarThemeChromiumMac):
+ Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
+ * platform/chromium/ScrollbarThemeChromiumMac.mm:
+ (WebCore::ScrollbarThemeChromiumMac::paint):
+ (WebCore::ScrollbarThemeChromiumMac::paintTickmarks):
+ Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
+ * rendering/RenderScrollbarTheme.cpp:
+ (WebCore::RenderScrollbarTheme::paintTickmarks):
+ Delegate to the native ScrollbarTheme for tickmark drawing.
+ (WebCore):
+ * rendering/RenderScrollbarTheme.h:
+ (RenderScrollbarTheme):
+ Override paintTickmarks().
+
+2012-07-23 Brian Anderson <brianderson@chromium.org>
+
+ [chromium] Use shallow flushes that don't glFlush
+ https://bugs.webkit.org/show_bug.cgi?id=90325
+
+ Reviewed by Kenneth Russell.
+
+ Adds plumbing for the shallowFlushCHROMIUM extension and uses
+ shallow flushes instead of normal flushes when uploading textures.
+ Shallow flushes allow us to initiate command buffer flushes to
+ the GPU thread/process without the overhead of a true glFlush.
+
+ CCTextureUpdaterTest updated to recognize shallow flushes.
+
+ * platform/chromium/support/Extensions3DChromium.cpp:
+ (WebCore::Extensions3DChromium::shallowFlushCHROMIUM):
+ (WebCore):
+ * platform/graphics/chromium/Extensions3DChromium.h:
+ (Extensions3DChromium):
+ * platform/graphics/chromium/cc/CCGraphicsContext.h:
+ * platform/graphics/chromium/cc/CCResourceProvider.cpp:
+ (WebCore::CCResourceProvider::shallowFlushIfSupported):
+ (WebCore):
+ (WebCore::CCResourceProvider::CCResourceProvider):
+ (WebCore::CCResourceProvider::initialize):
+ * platform/graphics/chromium/cc/CCResourceProvider.h:
+ (CCResourceProvider):
+ * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
+ (WebCore::CCTextureUpdater::update):
+
+2012-07-23 Hanyee Kim <choco@company100.net>
+
+ When using TextureMapper, WebKit does not retain final value of opacity in animations, unless it is specified on the last key frame.
+ https://bugs.webkit.org/show_bug.cgi?id=91322
+
+ Reviewed by Noam Rosenthal.
+
+ When -webkit-fill-mode is forwards, GraphicsLayerAnimation::apply does not apply
+ the property values defined in the last executing keyframe after the final iteration of animation.
+
+ This patch does not return right after the end of animation, but it keeps applying
+ the property values defined in the last executing keyframe.
+ Add normalizedAnimationValueForFillsForwards function that returns a normalized value of the
+ last executing keyframe.
+
+ Link to CSS Animations spec: http://www.w3.org/TR/css3-animations/#animation-fill-mode-property
+
+ Test: animations/fill-mode-forwards2.html
+
+ * platform/graphics/GraphicsLayerAnimation.cpp:
+ (WebCore::normalizedAnimationValueForFillsForwards):
+ (WebCore):
+ (WebCore::GraphicsLayerAnimation::apply):
+
+2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123184, r123195, and r123197.
+ http://trac.webkit.org/changeset/123184
+ http://trac.webkit.org/changeset/123195
+ http://trac.webkit.org/changeset/123197
+ https://bugs.webkit.org/show_bug.cgi?id=92049
+
+ pagecycler regression (Requested by morrita on #webkit).
+
+ * WebCore.exp.in:
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::~Document):
+ (WebCore::Document::suggestedMIMEType):
+ * dom/Document.h:
+ (WebCore):
+ (WebCore::Node::isDocumentNode):
+ (WebCore::Node::Node):
+ * dom/Node.cpp:
+ (WebCore::Node::~Node):
+ (WebCore::Node::setDocument):
+ (WebCore):
+ (WebCore::Node::setTreeScope):
+ (WebCore::Node::treeScope):
+ (WebCore::Node::isInShadowTree):
+ (WebCore::Node::reportMemoryUsage):
+ * dom/Node.h:
+ (Node):
+ (WebCore::Node::document):
+ (WebCore::Node::inDocument):
+ * dom/NodeRareData.h:
+ (WebCore::NodeRareData::NodeRareData):
+ (WebCore::NodeRareData::treeScope):
+ (WebCore::NodeRareData::setTreeScope):
+ (NodeRareData):
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::ShadowRoot):
+ * dom/TreeScope.cpp:
+ (WebCore::TreeScope::TreeScope):
+ (WebCore::TreeScope::setParentTreeScope):
+ * dom/TreeScope.h:
+ (WebCore):
+ (WebCore::TreeScope::idTargetObserverRegistry):
+ (TreeScope):
+ * dom/TreeScopeAdopter.cpp:
+ (WebCore::TreeScopeAdopter::moveTreeToNewScope):
+ (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
+ * editing/MoveSelectionCommand.cpp:
+ * editing/RemoveNodeCommand.cpp:
+ * editing/RemoveNodePreservingChildrenCommand.cpp:
+ * inspector/PageConsoleAgent.cpp:
+
+2012-07-23 Roger Fong <roger_fong@apple.com>
+
+ On Windows, if select element is off screen horizontally,
+ menu is either inappropriately resized or positioned offscreen.
+ https://bugs.webkit.org/show_bug.cgi?id=91913
+ <rdar://problem/7611229>
+
+ Reviewed by Tim Horton.
+
+ If the select element is positioned off the edge of the screen to the left,
+ the menu is resized. It should not be resized, just shifted to remain on the screen.
+ If the select element is positioned off the edge of the screen to the right,
+ the menu goes off screen instead of being shifted over to appear on screen.
+ This problem only occurs on Windows.
+
+ Test: ManualTests/win/select-menu-off-screen.html
+
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::calculatePositionAndSize):
+ Modified final horizontal position calculation code to position
+ popup menu on screen if it would otherwise go off.
+
+2012-07-23 David Dorwin <ddorwin@chromium.org>
+
+ Fixed crash in webkitAddKey() when key parameter is null.
+ https://bugs.webkit.org/show_bug.cgi?id=85444
+
+ Reviewed by Kentaro Hara.
+
+ Reference: Step 1 of http://dvcs.w3.org/hg/html-media/raw-file/5f76a0b43836/encrypted-media/encrypted-media.html#dom-addkey
+
+ Tests: media/encrypted-media/encrypted-media-syntax.html
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::webkitAddKey):
+
+2012-07-23 Hayato Ito <hayato@chromium.org>
+
+ A FocusScope for a distributed node should not be its TreeScope.
+ https://bugs.webkit.org/show_bug.cgi?id=91829
+
+ Reviewed by Dimitri Glazkov.
+
+ Current implementation of FocusScope::focusScopeOf(Node*) returns
+ the given node's treeScope(). That does not apply if the node is
+ a distributed node. We should calculate a FocusScope for a
+ distributed node by traversing ancestor nodes in Composed Shadow
+ Tree.
+
+ Test: fast/dom/shadow/focus-navigation-with-distributed-nodes.html
+
+ * page/FocusController.cpp:
+ (WebCore::FocusScope::focusScopeOf):
+
+2012-07-23 Douglas Stockwell <dstockwell@google.com>
+
+ Null-pointer crash when parsing border-image
+ https://bugs.webkit.org/show_bug.cgi?id=91963
+
+ Reviewed by Darin Adler.
+
+ Test: fast/css/border-image-fill-crash.html
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseBorderImageRepeat): Handle the case where
+ parseBorderImageRepeat is called when the value list is empty.
+
+2012-07-23 Bem Jones-Bey <bjonesbe@adobe.com>
+
+ [CSS Exclusions] SVG shape errors should invalidate exclusion shapes
+ https://bugs.webkit.org/show_bug.cgi?id=91761
+
+ Reviewed by Andreas Kling.
+
+ CSS exclusion shapes that are specified with negative radiuses or
+ height/width are now considered invalid and ignored.
+
+ Tests added to
+ LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseExclusionShapeRectangle):
+ (WebCore::CSSParser::parseExclusionShapeCircle):
+ (WebCore::CSSParser::parseExclusionShapeEllipse):
+
+2012-07-23 Tien-Ren Chen <trchen@chromium.org>
+
+ [chromium] Implement scrollbar theme for Android
+ https://bugs.webkit.org/show_bug.cgi?id=91674
+
+ Reviewed by Adam Barth.
+
+ Previously the scrollbar for Android was implemented as an extra
+ drawing pass in the compositor. Now we switch to use the standard
+ ScrollbarTheme mechanism.
+
+ No new tests. We use mock scrollbars during layout test to share
+ pixel results with Linux.
+
+ * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
+ (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
+ (WebCore::ScrollbarThemeChromiumAndroid::thumbPosition):
+ (WebCore::ScrollbarThemeChromiumAndroid::thumbLength):
+ (WebCore::ScrollbarThemeChromiumAndroid::backButtonRect):
+ (WebCore::ScrollbarThemeChromiumAndroid::forwardButtonRect):
+ (WebCore::ScrollbarThemeChromiumAndroid::trackRect):
+ (WebCore):
+ (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
+ (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
+ * platform/chromium/ScrollbarThemeChromiumAndroid.h:
+ (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars):
+ (ScrollbarThemeChromiumAndroid):
+ (WebCore::ScrollbarThemeChromiumAndroid::hasButtons):
+ (WebCore::ScrollbarThemeChromiumAndroid::hasThumb):
+
+2012-07-23 Kwang Yul Seo <skyul@company100.net>
+
+ Use the original token to create an element in "reconstruct the active formatting elements" and "call the adoption agency"
+ https://bugs.webkit.org/show_bug.cgi?id=91703
+
+ Reviewed by Adam Barth.
+
+ The current WebKit HTML5 parser implementation does not hold the original token
+ in the stack of open elements and the active formatting elements. This is
+ problematic because the original token is used to create an element in
+ "reconstruct the active formatting elements" and "call the adoption agency".
+
+ As a workaround, WebKit uses the saved element instead of the original token
+ to create an element. But this causes us to fail examples like this:
+ <b id="1"><p><script>document.getElementById("1").id = "2"</script></p>TEXT</b>
+ reconstructTheActiveFormattingElements calls this method to open a second <b>
+ tag to wrap TEXT, it will have id "2", even though the HTML5 spec implies it
+ should be "1".
+
+ Created a ref-counted container class, HTMLStackItem to hold the original token
+ and the namespace URI as well as the element. Changed HTMLElementStack and
+ HTMLFormattingElementList to use HTMLStackItem.
+ Changed HTMLConstructionSite::reconstructTheActiveFormattingElements and
+ HTMLTreeBuilder::callTheAdoptionAgency to create an element from the saved token
+ instead of the saved element.
+
+ Updated test expectation for html5lib/runner-expected.txt
+ because now resources/scripted/adoption01.dat passes.
+
+ * html/parser/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
+ (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
+ (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
+ (WebCore::HTMLConstructionSite::insertHTMLFormElement):
+ (WebCore::HTMLConstructionSite::insertHTMLElement):
+ (WebCore::HTMLConstructionSite::insertFormattingElement):
+ (WebCore::HTMLConstructionSite::insertScriptElement):
+ (WebCore::HTMLConstructionSite::insertForeignElement):
+ (WebCore::HTMLConstructionSite::createElementFromSavedToken):
+ (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
+ * html/parser/HTMLConstructionSite.h:
+ (HTMLConstructionSite):
+ (WebCore::HTMLConstructionSite::currentElementRecord):
+ * html/parser/HTMLElementStack.cpp:
+ (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
+ (WebCore::HTMLElementStack::ElementRecord::replaceElement):
+ (WebCore::HTMLElementStack::pushRootNode):
+ (WebCore::HTMLElementStack::pushHTMLHtmlElement):
+ (WebCore::HTMLElementStack::pushRootNodeCommon):
+ (WebCore::HTMLElementStack::pushHTMLHeadElement):
+ (WebCore::HTMLElementStack::pushHTMLBodyElement):
+ (WebCore::HTMLElementStack::push):
+ (WebCore::HTMLElementStack::insertAbove):
+ (WebCore::HTMLElementStack::pushCommon):
+ * html/parser/HTMLElementStack.h:
+ (WebCore::HTMLElementStack::ElementRecord::element):
+ (WebCore::HTMLElementStack::ElementRecord::node):
+ (WebCore::HTMLElementStack::ElementRecord::stackItem):
+ (ElementRecord):
+ (HTMLElementStack):
+ * html/parser/HTMLFormattingElementList.cpp:
+ (WebCore::HTMLFormattingElementList::swapTo):
+ (WebCore::HTMLFormattingElementList::append):
+ * html/parser/HTMLFormattingElementList.h:
+ (WebCore::HTMLFormattingElementList::Entry::Entry):
+ (WebCore::HTMLFormattingElementList::Entry::isMarker):
+ (WebCore::HTMLFormattingElementList::Entry::stackItem):
+ (WebCore::HTMLFormattingElementList::Entry::element):
+ (WebCore::HTMLFormattingElementList::Entry::replaceElement):
+ (WebCore::HTMLFormattingElementList::Entry::operator==):
+ (WebCore::HTMLFormattingElementList::Entry::operator!=):
+ (Entry):
+ (HTMLFormattingElementList):
+ * html/parser/HTMLStackItem.h: Added.
+ (WebCore):
+ (HTMLStackItem):
+ (WebCore::HTMLStackItem::create):
+ (WebCore::HTMLStackItem::element):
+ (WebCore::HTMLStackItem::node):
+ (WebCore::HTMLStackItem::token):
+ (WebCore::HTMLStackItem::namespaceURI):
+ (WebCore::HTMLStackItem::HTMLStackItem):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+ (WebCore::HTMLTreeBuilder::processStartTag):
+ (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
+
+2012-07-23 Andreas Kling <kling@webkit.org>
+
+ Report the extra memory used by immutable StylePropertySet objects.
+ <http://webkit.org/b/92032>
+
+ Reviewed by Anders Carlsson.
+
+ Add an optional parameter to the MemoryClassInfo constructor for passing in additional base object
+ size on top of sizeof(T).
+
+ Use this in StylePropertySet::reportMemoryUsage() to properly account for the CSSProperty array
+ tacked onto the end of the object when m_isMutable == false.
+
+ * css/StylePropertySet.h:
+ (WebCore::StylePropertySet::reportMemoryUsage):
+ * dom/MemoryInstrumentation.h:
+ (WebCore::MemoryObjectInfo::reportObjectInfo):
+ (WebCore::MemoryClassInfo::MemoryClassInfo):
+
+2012-07-23 Gregg Tavares <gman@google.com>
+
+ Fix WebGL texSubImage2D for cube maps
+ https://bugs.webkit.org/show_bug.cgi?id=91927
+
+ Reviewed by Kenneth Russell.
+
+ Fixes texSubImage2D so any size rectangle can be passed in
+ for cube maps.
+
+ Test: fast/canvas/webgl/tex-sub-image-cube-maps.html
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore):
+ (WebCore::WebGLRenderingContext::copyTexImage2D):
+ (WebCore::WebGLRenderingContext::texImage2DBase):
+ (WebCore::WebGLRenderingContext::texSubImage2DBase):
+ (WebCore::WebGLRenderingContext::validateTexFuncParameters):
+ * html/canvas/WebGLRenderingContext.h:
+ (WebGLRenderingContext):
+
+2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123387.
+ http://trac.webkit.org/changeset/123387
+ https://bugs.webkit.org/show_bug.cgi?id=92036
+
+ Broke chromium win build (Requested by tony^work on #webkit).
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gyp/scripts/rule_bison.py:
+ * bindings/scripts/preprocessor.pm:
+ (applyPreprocessor):
+ * make-hash-tools.pl:
+
+2012-07-23 Kwang Yul Seo <skyul@company100.net>
+
+ Ref-count AtomicHTMLToken
+ https://bugs.webkit.org/show_bug.cgi?id=91981
+
+ Reviewed by Adam Barth.
+
+ Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.
+
+ No new tests - no functional changes.
+
+ * html/parser/HTMLConstructionSite.cpp:
+ (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
+ (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
+ (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
+ (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
+ (WebCore::HTMLConstructionSite::insertDoctype):
+ (WebCore::HTMLConstructionSite::insertComment):
+ (WebCore::HTMLConstructionSite::insertCommentOnDocument):
+ (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
+ (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
+ (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
+ (WebCore::HTMLConstructionSite::insertHTMLFormElement):
+ (WebCore::HTMLConstructionSite::insertHTMLElement):
+ (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
+ (WebCore::HTMLConstructionSite::insertFormattingElement):
+ (WebCore::HTMLConstructionSite::insertScriptElement):
+ (WebCore::HTMLConstructionSite::insertForeignElement):
+ (WebCore::HTMLConstructionSite::createElement):
+ (WebCore::HTMLConstructionSite::createHTMLElement):
+ (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
+ * html/parser/HTMLConstructionSite.h:
+ (HTMLConstructionSite):
+ * html/parser/HTMLToken.h:
+ (WebCore::AtomicHTMLToken::create):
+ (AtomicHTMLToken):
+ (WebCore::AtomicHTMLToken::AtomicHTMLToken):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
+ (WebCore::HTMLTreeBuilder::constructTreeFromToken):
+ (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
+ (WebCore::HTMLTreeBuilder::processToken):
+ (WebCore::HTMLTreeBuilder::processDoctypeToken):
+ (WebCore::HTMLTreeBuilder::processFakeStartTag):
+ (WebCore::HTMLTreeBuilder::processFakeEndTag):
+ (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
+ (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
+ (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
+ (WebCore):
+ (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
+ (WebCore::HTMLTreeBuilder::processStartTagForInBody):
+ (WebCore::HTMLTreeBuilder::processStartTagForInTable):
+ (WebCore::HTMLTreeBuilder::processStartTag):
+ (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
+ (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
+ (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
+ (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
+ (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
+ (WebCore::HTMLTreeBuilder::processEndTagForInRow):
+ (WebCore::HTMLTreeBuilder::processEndTagForInCell):
+ (WebCore::HTMLTreeBuilder::processEndTagForInBody):
+ (WebCore::HTMLTreeBuilder::processEndTagForInTable):
+ (WebCore::HTMLTreeBuilder::processEndTag):
+ (WebCore::HTMLTreeBuilder::processComment):
+ (WebCore::HTMLTreeBuilder::processCharacter):
+ (WebCore::HTMLTreeBuilder::processEndOfFile):
+ (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
+ (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
+ (WebCore::HTMLTreeBuilder::defaultForInHead):
+ (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
+ (WebCore::HTMLTreeBuilder::defaultForAfterHead):
+ (WebCore::HTMLTreeBuilder::processStartTagForInHead):
+ (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
+ (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
+ (WebCore::HTMLTreeBuilder::processScriptStartTag):
+ (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
+ (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
+ (WebCore::HTMLTreeBuilder::parseError):
+ * html/parser/HTMLTreeBuilder.h:
+ (HTMLTreeBuilder):
+ * html/parser/TextDocumentParser.cpp:
+ (WebCore::TextDocumentParser::insertFakePreElement):
+
+2012-07-23 Scott Graham <scottmg@google.com>
+
+ Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
+ https://bugs.webkit.org/show_bug.cgi?id=91667
+
+ Reviewed by Tony Chang.
+
+ Using native tools instead of cygwin version improves build time
+ performance by roughly 50% (on top of previous cl-instead-of-gcc
+ change).
+
+ Also, use - instead of / for cl flags because a layer of project
+ generator converts them to \ otherwise, which causes the preprocessing
+ to fail (very slowly because of the cygwin-loop with a sleep 1).
+
+ No new tests.
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gyp/scripts/rule_bison.py:
+ * bindings/scripts/preprocessor.pm:
+ (applyPreprocessor):
+ * make-hash-tools.pl:
+
+2012-06-12 Jer Noble <jer.noble@apple.com>
+
+ MediaController.currentTime should be kept stable during script execution.
+ https://bugs.webkit.org/show_bug.cgi?id=88555
+
+ Reviewed by Eric Carlson.
+
+ Test: media/media-controller-time-constant.html
+
+ To keep MediaController.currentTime stable, add a new m_position variable and
+ a new m_clearPositionTimer timer. Both must be mutable variables as they will
+ be updated from within const functions. Calls to currentTime() will result in
+ stable values until the next runloop iteration.
+
+ * html/MediaController.cpp:
+ (MediaController::MediaController):
+ (MediaController::currentTime):
+ (MediaController::setCurrentTime):
+ (MediaController::clearPositionTimerFired):
+ * html/MediaController.h:
+
+2012-07-23 Huang Dongsung <luxtella@company100.net>
+
+ Destroy CSS decoded data more eagerly once they become dead caches.
+ https://bugs.webkit.org/show_bug.cgi?id=91733
+
+ Reviewed by Geoffrey Garen.
+
+ Internal review by Kwang Yul Seo.
+
+ There are three CachedResources with decoded data: CachedImage, CachedScript
+ and CachedCSSStyleSheet. In the cases of CachedImage and CachedScript, we
+ eagerly destroy the decoded data using Timer in CacehdResource::allClientsRemoved().
+ We must apply the same policy here in CachedCSSStyleSheet because priority
+ inversion can occur. For example, we can't destroy the decoded data of CachedImages
+ when they are referenced by CachedCSSStyleSheet as background, mask or border
+ images.
+
+ No new tests - no new testable functionality.
+
+ * loader/cache/CachedCSSStyleSheet.cpp:
+ (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
+ (WebCore::CachedCSSStyleSheet::didAddClient):
+ (WebCore::CachedCSSStyleSheet::allClientsRemoved):
+ (WebCore::CachedCSSStyleSheet::destroyDecodedData):
+ (WebCore):
+ (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
+ * loader/cache/CachedCSSStyleSheet.h:
+ (CachedCSSStyleSheet):
+
+2012-07-23 Simon Fraser <simon.fraser@apple.com>
+
+ Part 2 of: Implement sticky positioning
+ https://bugs.webkit.org/show_bug.cgi?id=90046
+
+ Reviewed by Ojan Vafai.
+
+ Turn on ENABLE_CSS_STICKY_POSITION. Add support for parsing the new '-webkit-sticky'
+ value for position, returning it from getComputedStyle(), and storing it in RenderStyle.
+
+ Test: fast/css/sticky/parsing-position-sticky.html
+
+ * Configurations/FeatureDefines.xcconfig:
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::getPositionOffsetValue):
+ * css/CSSParser.cpp:
+ (WebCore::isValidKeywordPropertyAndValue):
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ (WebCore::CSSPrimitiveValue::operator EPosition):
+ * css/CSSValueKeywords.in:
+ * rendering/style/RenderStyle.h:
+ * rendering/style/RenderStyleConstants.h:
+
+2012-07-23 Stephen Chenney <schenney@chromium.org>
+
+ Crash when setting empty class name on a new element
+ https://bugs.webkit.org/show_bug.cgi?id=92024
+
+ Reviewed by Andreas Kling.
+
+ Add a check for null attributeData() when setting the className to an
+ empty string on a newly created element. New SVG elements have null
+ attributeData() on baseVal upon creation.
+
+ Test: svg/custom/empty-className-baseVal-crash.html
+
+ * dom/StyledElement.cpp:
+ (WebCore::StyledElement::classAttributeChanged): Add check for null attributeData()
+
+2012-07-23 Shawn Singh <shawnsingh@chromium.org>
+
+ [chromium] Refactor CCLayerTreeHostCommon: clean up clipRect and drawableContentRect design
+ https://bugs.webkit.org/show_bug.cgi?id=80622
+
+ Reviewed by Adrienne Walker.
+
+ clipRect(), usesLayerClipping(), and drawableContentRect() have been
+ very confusing in CCLayerTreeHostCommon for a while. This patch
+ refactors it so that (1) clipping is only done locally in
+ calcDrawTransforms, and (2) the layer's drawableContentRect value
+ is now meaningful value outside of calcDrawTransforms.
+ Additionally, the layer is now always clipped to the root
+ surface's contentBounds (which are set to the viewport bounds).
+ This refactor not only makes calcDrawTransforms far more readable and intuitive, but
+ this patch enables more upcoming beneficial refactors, including
+ the pending refactor in https://bugs.webkit.org/show_bug.cgi?id=88953.
+
+ Tests are also significantly updated to keep up with this refactoring change.
+
+ * platform/graphics/chromium/LayerChromium.cpp:
+ (WebCore::LayerChromium::LayerChromium):
+ * platform/graphics/chromium/LayerChromium.h:
+ (LayerChromium):
+ Removed m_usesLayerClipping and m_clipRect and associated accessors.
+
+ * platform/graphics/chromium/RenderSurfaceChromium.h:
+ (RenderSurfaceChromium):
+ Updated comment
+
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp:
+ (WebCore::CCLayerImpl::CCLayerImpl):
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (CCLayerImpl):
+ Removed m_usesLayerClipping and m_clipRect and associated accessors.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::updateLayers):
+ removed setClipRect code that no longer applies
+
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::calculateLayerScissorRect):
+ scissor rect is now a little bit tighter, the intersection between damage and layer's new drawableContentRect.
+
+ (WebCore::calculateSurfaceScissorRect):
+ scissor rect is now a little bit tighter, except when filters are involved.
+
+ (WebCore::layerClipsSubtree):
+ new helper function
+
+ (WebCore):
+ (WebCore::calculateVisibleContentRect):
+ (WebCore::subtreeShouldRenderToSeparateSurface):
+ (WebCore::calculateDrawTransformsInternal):
+ - added drawableContentRectOfSubtree to the function args, it is valid only after recursion returns,
+ - added clipRectFromAncestor and bool ancestorClipsSubtree to function args, this replaces the layer's clipRect and usesLayerClipping.
+ - removed the boolean return value, which was redundant with drawableContentRectOfSubtree.
+ - replaced all the "setDrawableContentRect" logic with more intuitive, clear logic.
+ - now, layer's drawableContentRect represents the clipped bounds of the layer expressed in the target surface space.
+
+ (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
+ (WebCore::pointIsClippedBySurfaceOrClipRect):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::::layerScissorRectInTargetSurface):
+ Updated this accessor. It could be removed in the future, but not appropriate for this patch.
+
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+
+2012-07-23 Patrick Gansterer <paroga@webkit.org>
+
+ [CMAKE] Added missing RenderLayerFilterInfo.cpp to build system.
+
+ * CMakeLists.txt:
+
+2012-07-23 Ryosuke Niwa <rniwa@webkit.org>
+
+ REGRESSION(r123281): childNodes sometimes returns wrong nodes
+ https://bugs.webkit.org/show_bug.cgi?id=92014
+
+ Reviewed by Anders Carlsson.
+
+ The bug was caused by a typo in itemBeforeOrAfter. Namely, it should have been calling firstNode as
+ firstNode(forward, rootNode(), shouldOnlyIncludeDirectChildren()),
+ NOT firstNode(forward, rootNode(), previous)
+ as evident from the argument list of the function.
+
+ Test: fast/dom/NodeList/childNodes-reverse-iteration.html
+
+ * html/HTMLCollection.cpp:
+ (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
+
+2012-07-23 Steve VanDeBogart <vandebo@chromium.org>
+
+ Chrome/Skia: PDF print output does not have clickable links.
+ https://bugs.webkit.org/show_bug.cgi?id=91171
+
+ Reviewed by Stephen White.
+
+ Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
+
+ Printing is not generally testable.
+
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::GraphicsContext::setURLForRect):
+
+2012-07-23 Pierre Rossi <pierre.rossi@gmail.com>
+
+ Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
+ https://bugs.webkit.org/show_bug.cgi?id=91006
+
+ Reviewed by Ryosuke Niwa.
+
+ The rationale here is that the client doesn't need to know about the touch
+ event handler count. needTouchEvents was already used for that purpose.
+
+ Test: fast/events/touch/touch-handler-count.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::didAddTouchEventHandler): Only notify the client if needed.
+ (WebCore::Document::didRemoveTouchEventHandler): Ditto. Also unset the TOUCH_LISTENER
+ flag for the document if we reach a count of zero. The rationale being that
+ hasListenerType() is relied upon in other places in combination with TOUCH_LISTENER for
+ the same purpose.
+ * dom/Document.h:
+ (Document):
+ (WebCore::Document::touchEventHandlerCount):
+ * loader/EmptyClients.h:
+ * page/ChromeClient.h:
+ (ChromeClient):
+ * page/Frame.cpp: Removed notifyChromeClientTouchEventHandlerCountChanged.
+ (WebCore::Frame::setDocument): call needsTouchEvents directly.
+ * page/Frame.h: Ditto.
+ (Frame):
+ * testing/Internals.cpp:
+ (WebCore::Internals::hasTouchEventListener): expose Document::hasListenerType indirectly
+ for additional testing.
+ (WebCore):
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
+2012-07-23 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ [Qt] RenderThemeQtMobile highlight colors are not being used
+ https://bugs.webkit.org/show_bug.cgi?id=92004
+
+ Reviewed by Noam Rosenthal.
+
+ The issue here is that setPaletteFromPageClientIfExists() is being used as a
+ virtual function, but it isn't, so when platformActiveSelectionBackgroundColor()
+ runs, it doesn't pick the right palette.
+
+ Besides fixing this virtual behavior, the patch changes the structure a bit,
+ because setPaletteFromPageClientIfExists() was being "overriden" in mobile theme
+ to set the palette, which isn't exactly what the function name says.
+
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
+ (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
+ (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
+ (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
+ (WebCore::RenderThemeQt::platformFocusRingColor):
+ (WebCore::RenderThemeQt::systemColor):
+ (WebCore::RenderThemeQt::getMediaControlForegroundColor):
+ (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
+ Use the virtual colorPalette() to get the palette.
+
+ (WebCore::RenderThemeQt::colorPalette):
+ (WebCore): Removed the code for getting the page client from here since it is
+ used only by the QStyle variant.
+
+ * platform/qt/RenderThemeQt.h:
+ (RenderThemeQt):
+ * platform/qt/RenderThemeQtMobile.cpp:
+ (WebCore::RenderThemeQtMobile::colorPalette):
+ (WebCore):
+ * platform/qt/RenderThemeQtMobile.h:
+ (RenderThemeQtMobile):
+
+2012-07-23 Simon Fraser <simon.fraser@apple.com>
+
+ Part 1 of: Implement sticky positioning
+ https://bugs.webkit.org/show_bug.cgi?id=90046
+
+ Reviewed by Ojan Vafai.
+
+ Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
+
+ Sort the ENABLE_CSS lines in the file. Make sure all the flags
+ are in FEATURE_DEFINES.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123339.
+ http://trac.webkit.org/changeset/123339
+ https://bugs.webkit.org/show_bug.cgi?id=92006
+
+ massive media tests failure (Requested by philn on #webkit).
+
+ * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
+ (WTF::adoptGRef):
+ * platform/graphics/gstreamer/GStreamerVersioning.cpp:
+ (setGstElementClassMetadata):
+ * platform/graphics/gstreamer/GStreamerVersioning.h:
+
+2012-07-21 Vincent Scheib <scheib@chromium.org>
+
+ webkitFullscreenElement, webkitCurrentFullScreenElement, webkitPointerLockElement block cross origin access.
+ https://bugs.webkit.org/show_bug.cgi?id=91892
+
+ Reviewed by Adam Barth.
+
+ PointerLockElement only returned when requested from the document that owns it.
+
+ Tests: http/tests/fullscreen/fullscreenelement-different-origin.html
+ http/tests/fullscreen/fullscreenelement-same-origin.html
+ http/tests/pointer-lock/pointerlockelement-different-origin.html
+ http/tests/pointer-lock/pointerlockelement-same-origin.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::webkitPointerLockElement):
+
+2012-07-23 Philippe Normand <pnormand@igalia.com>
+
+ [GTK][jhbuild] Switch to GStreamer 0.11 build
+ https://bugs.webkit.org/show_bug.cgi?id=91727
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Add a new function to encapsulate the GStreamer API removal of
+ GST_OBJECT_IS_FLOATING in the upcoming 1.0 release. Use of this
+ macro can now be replaced by calling the g_object_is_floating
+ function.
+
+ * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
+ (WTF::adoptGRef):
+ * platform/graphics/gstreamer/GStreamerVersioning.cpp:
+ (gstObjectIsFloating):
+ * platform/graphics/gstreamer/GStreamerVersioning.h:
+
+2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] media/controls-styling.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=91984
+
+ Reviewed by Eric Carlson.
+
+ Make sure that the CSS properties letter-spacing, word-spacing,
+ line-height, text-transform, text-indent, text-shadow,
+ text-decoration and color do not affect the media element controls,
+ that display text.
+
+ No new tests. Already tested by media/controls-styling.html and
+ media/controls-styling-strict.html
+
+ * css/mediaControlsEfl.css:
+ (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
+
+2012-07-23