2012-10-02 Simon Fraser Make TiledBacking slightly less aware of scrolling https://bugs.webkit.org/show_bug.cgi?id=98216 Reviewed by Anders Carlsson. TiledBacking shouldn't really care about there being scrollbars; recast this in terms of "tile coverage", described by a bitfield that has flags for coverage optimized for horizontal and vertical scrolling. This allows for additional tile coverage behaviors later. * page/FrameView.cpp: (WebCore::FrameView::performPostLayoutTasks): * platform/graphics/TiledBacking.h: * platform/graphics/ca/mac/TileCache.h: * platform/graphics/ca/mac/TileCache.mm: (WebCore::TileCache::TileCache): Initialize m_isInWindow to false to be more conservative. It gets explicitly set by the only caller now, so this is not a behavior change. (WebCore::TileCache::setIsInWindow): (WebCore::TileCache::setTileCoverage): (WebCore::TileCache::tileCoverageRect): * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::RenderLayerBacking): 2012-10-02 Dean Jackson Expose some GPU Information https://bugs.webkit.org/show_bug.cgi?id=97813 Reviewed by Sam Weinig, Ken Russell and Tim Horton. Currently there are a few places in the WebGL code (and elsewhere, like CSS filters) where we do some feature detection by examining the GPU vendor and its capabilities. This patch puts this detection into our shared Extensions3D object. Covered by existing tests. No new functionality. * platform/graphics/Extensions3D.h: Adds the new methods for detecting vendor and features. * platform/graphics/GraphicsContext3D.h: (GraphicsContext3D): No longer needs function to detect multisampling on ATI. * platform/graphics/chromium/Extensions3DChromium.h: Stub implementations of all the new methods. Chromium does its detection elsewhere. (WebCore::Extensions3DChromium::isNVIDIA): (WebCore::Extensions3DChromium::isAMD): (WebCore::Extensions3DChromium::isIntel): (WebCore::Extensions3DChromium::vendor): (Extensions3DChromium): (WebCore::Extensions3DChromium::maySupportMultisampling): (WebCore::Extensions3DChromium::requiresBuiltInFunctionEmulation): * platform/graphics/filters/FECustomFilter.cpp: (WebCore::FECustomFilter::createMultisampleBuffer): Add test for system multisampling to custom filter code. * platform/graphics/gpu/DrawingBuffer.cpp: (WebCore::DrawingBuffer::create): Add test for system multisampling to drawing buffer's creation code. * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon): Detects all the features as the object is created. (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Can now simply ask itself if it needs to turn on built-in function translation. * platform/graphics/opengl/Extensions3DOpenGLCommon.h: (Extensions3DOpenGLCommon): (WebCore::Extensions3DOpenGLCommon::isNVidia): (WebCore::Extensions3DOpenGLCommon::isAMD): (WebCore::Extensions3DOpenGLCommon::isIntel): (WebCore::Extensions3DOpenGLCommon::vendor): (WebCore::Extensions3DOpenGLCommon::maySupportMultisampling): (WebCore::Extensions3DOpenGLCommon::requiresBuiltInFunctionEmulation): * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: (WebCore::GraphicsContext3D::validateAttributes): Ask the extension object instead of testing directly. * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: (WebCore::GraphicsContext3D::validateDepthStencil): Ask the extension object instead of testing directly. 2012-10-02 Kenichi Ishibashi [Chromium] Introduce caches for HarfBuzzShaper https://bugs.webkit.org/show_bug.cgi?id=97993 Reviewed by Tony Chang. - Implement canRenderCombiningCharacterSequence() for ports which use HarfBuzzShaper. This function caches the result and will improve the performance of HarfBuzzShaper::collectHarfBuzzRuns. - Add a HashMap to HarfBuzzNGFace. It is used as a cache that holds glyph indexes of codepoints. It reduces the number of SkPaint::textToGlyphs() calls. This patch makes the intl2 page cycler 4.4% faster on my machine. No new tests. No changes in behavior. * platform/graphics/SimpleFontData.h: (SimpleFontData): Enabled canRenderCombiningCharacterSequence() if USE(HARFBUZZ_NG) is enabled. * platform/graphics/freetype/SimpleFontDataFreeType.cpp: (WebCore): (WebCore::SimpleFontData::canRenderCombiningCharacterSequence): Added. * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp: (WebCore): (FaceCacheEntry): Added. (WebCore::HarfBuzzNGFace::HarfBuzzNGFace): Lookup the cache entry in harfBuzzFaceCache. Create the entry if there is no entry in the cache. Increment the ref count of the entry and set cache entry values to member variables. (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace): Decrement the ref count of the cache entry. Remove the entry if no one refers the cache. * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h: (HarfBuzzNGFace): * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp: (HarfBuzzFontData): Added. Used as |userData| of harfbuzz callback functions. (WebCore): (WebCore::SkiaGetGlyphWidthAndExtents): (WebCore::harfbuzzGetGlyph): Look up the glyphChache first. If the cache entry doesn't exist, call SkPaint::textToGlyphs() to get glyph index and store it to the cache. (WebCore::harfbuzzGetGlyphHorizontalAdvance): (WebCore::harfbuzzGetGlyphExtents): (WebCore::destroyHarfBuzzFontData): Added. (WebCore::HarfBuzzNGFace::createFont): Create HarfBuzzFontData and pass it to harfbuzz. * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp: (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Don't initialize m_glyphToCharacterIndexes here. (WebCore::HarfBuzzShaper::collectHarfBuzzRuns): Use SimpleFontData::canRenderCombiningCharacterSequence() instead of fontDataForCombiningCharacterSequence(). (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Set glyphToCharacterIndexes of the current HarfBuzzRun. * platform/graphics/skia/SimpleFontDataSkia.cpp: (WebCore): (WebCore::SimpleFontData::canRenderCombiningCharacterSequence): Added. 2012-10-02 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=98182 REGRESSION (r130091): Scroll wheel no longer scrolls within div Reviewed by Simon Fraser. Forgot to initialize m_nonFastScrollableRegion in this copy constructor. * page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): 2012-10-02 Nate Chapin iframes with scrolling=no can't scroll to anchors https://bugs.webkit.org/show_bug.cgi?id=96539 Reviewed by Antonio Gomes. This appears to have regressed in r106730. This patch matches Firefox's behavior. Test: fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe.html * page/EventHandler.h: * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): Currently scrolls are always forbidden if scrollbars are explicitly disabled. This adds an exception for scrolls that are not user-initiated and are not autoscrolls. 2012-10-02 Simon Fraser Restore the virtual purity of TileBacking https://bugs.webkit.org/show_bug.cgi?id=98208 Reviewed by Anders Carlsson. Remove the data member on TileBacking, make the logging methods virtual, and move the implememtation to TileCache. * platform/graphics/TiledBacking.h: * platform/graphics/ca/mac/TileCache.h: * platform/graphics/ca/mac/TileCache.mm: (WebCore::TileCache::TileCache): * platform/graphics/ca/mac/WebTileLayer.mm: (-[WebTileLayer drawInContext:]): Have to cast to call the public method on the base class. 2012-10-02 Ojan Vafai isMainThread() should only be called by NoEventDispatchAssertion in debug builds https://bugs.webkit.org/show_bug.cgi?id=98191 This fixes a performance regression and matches the original code from before the refactor in http://trac.webkit.org/changeset/130077. * dom/ContainerNode.h: (WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): (WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): 2012-10-02 Erik Arvidsson createHTMLDocument() should not create a title element if the title argument is left out https://bugs.webkit.org/show_bug.cgi?id=96694 Reviewed by Darin Adler. In case the argument is not passed to createHTMLDocument we use a null string and check for that before creating a title element. Test: fast/dom/DOMImplementation/createHTMLDocument-optional-title.html * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createHTMLDocument): * dom/DOMImplementation.idl: 2012-10-02 David Grogan IndexedDB: Don't wedge if page reloads with pending upgradeneeded https://bugs.webkit.org/show_bug.cgi?id=98091 Reviewed by Tony Chang. Test: storage/indexeddb/dont-wedge.html * Modules/indexeddb/IDBOpenDBRequest.cpp: (WebCore::IDBOpenDBRequest::onUpgradeNeeded): This got the same treatment as IDBRequest::onSuccess(Transaction). Explicitly tell the backend objects that they are going away so that m_runningVersionChangeTransaction is cleared and connectionCount() decreases. 2012-10-02 David Grogan http/tests/inspector/indexeddb/database-structure.html start to crash after r124675 https://bugs.webkit.org/show_bug.cgi?id=93225 Reviewed by Tony Chang. Tests - the disabled indexeddb inspector tests are re-enabled. * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl): (WebCore::IDBDatabaseBackendImpl::close): Detect re-entrancy and bail. * Modules/indexeddb/IDBDatabaseBackendImpl.h: (IDBDatabaseBackendImpl): 2012-10-02 Michael Saboff HTMLConstructionSite::insertTextNode isn't optimized for 8 bit strings https://bugs.webkit.org/show_bug.cgi?id=97740 Reviewed by Darin Adler. Changed parserAppendData to take a string instead of a UChar*. Also added an optional offset argument to handle string+offset. The actual string append now uses the appropriate string size. * dom/CharacterData.cpp: (WebCore::CharacterData::parserAppendData): * dom/CharacterData.h: (CharacterData): * dom/Text.cpp: (WebCore::Text::createWithLengthLimit): * html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::insertTextNode): 2012-10-02 Ojan Vafai Unreviewed, rolling out r130103 and r130125. http://trac.webkit.org/changeset/130103 http://trac.webkit.org/changeset/130125 https://bugs.webkit.org/show_bug.cgi?id=97974 Causes performance regressions on Dromaeo dom modify tests. * bindings/v8/IntrusiveDOMWrapperMap.h: (WebCore): (ChunkedTable): (WebCore::ChunkedTable::ChunkedTable): (WebCore::ChunkedTable::add): (WebCore::ChunkedTable::remove): (WebCore::ChunkedTable::clear): (WebCore::ChunkedTable::visit): (WebCore::ChunkedTable::reportMemoryUsage): (WebCore::ChunkedTable::Chunk::Chunk): (Chunk): (WebCore::ChunkedTable::clearEntries): (WebCore::ChunkedTable::visitEntries): (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap): (WebCore::IntrusiveDOMWrapperMap::get): (WebCore::IntrusiveDOMWrapperMap::set): (WebCore::IntrusiveDOMWrapperMap::contains): (WebCore::IntrusiveDOMWrapperMap::visit): (WebCore::IntrusiveDOMWrapperMap::removeIfPresent): (IntrusiveDOMWrapperMap): (WebCore::IntrusiveDOMWrapperMap::clear): (ChunkedTableTraits): (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::move): (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::clear): (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::visit): * bindings/v8/ScriptWrappable.h: (WebCore::ScriptWrappable::ScriptWrappable): (WebCore::ScriptWrappable::wrapper): (WebCore::ScriptWrappable::setWrapper): (WebCore::ScriptWrappable::clearWrapper): (WebCore::ScriptWrappable::reportMemoryUsage): (ScriptWrappable): * bindings/v8/V8DOMWrapper.h: (WebCore::V8DOMWrapper::getCachedWrapper): 2012-10-02 Ilya Tikhonovsky Web Inspector: NMI: switch to non intrusive instrumentation of ParsedURL. https://bugs.webkit.org/show_bug.cgi?id=98150 Reviewed by Yury Semikhatsky. Style changes. * platform/KURLWTFURLImpl.h: (WebCore::KURLWTFURLImpl::reportMemoryUsage): 2012-10-02 Anders Carlsson Add new GraphicsLayer::create overload to all ports https://bugs.webkit.org/show_bug.cgi?id=98082 Reviewed by Andreas Kling. Add the GraphicsLayer::create variant that takes a factory to all ports. * platform/graphics/GraphicsLayer.cpp: (WebCore): (WebCore::GraphicsLayer::setGraphicsLayerFactory): * platform/graphics/GraphicsLayer.h: (GraphicsLayer): Rename the GraphicsLayerFactory function typedef to GraphicsLayerFactoryCallback to avoid collisions. * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp: (WebCore::GraphicsLayer::create): (WebCore): * platform/graphics/chromium/GraphicsLayerChromium.cpp: (WebCore::GraphicsLayer::create): (WebCore): * platform/graphics/clutter/GraphicsLayerClutter.cpp: (WebCore::GraphicsLayer::create): (WebCore): * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: (WebCore::GraphicsLayer::create): (WebCore): 2012-10-02 Takashi Sakamoto [Shadow] ShadowRoot should know whether in its treescope https://bugs.webkit.org/show_bug.cgi?id=97184 Reviewed by Dimitri Glazkov. To quickly know whether some shadow dom subtree has any shadow element or not, added hasShadowRootInsertionPoint, registerShadowElement and unregisterShadowElement to class ShadowRoot. The register method or unregister method is used when a shadow element is inserted into document or removed from document. hasShadowInsertionPoint returns true if any shadow element is still registered with the given shadow root. Otherwise returns false. To test hasShadowInsertionPoint, added hasShadowInsertionPoint to Internals. Test: fast/dom/shadow/has-shadow-insertion-point.html * dom/ShadowRoot.cpp: (WebCore::ShadowRoot::ShadowRoot): Initializes number of shadow elements. * dom/ShadowRoot.h: (WebCore::ShadowRoot::registerShadowElement): Increases number of shadow elements in shadow dom subtree by 1. (WebCore::ShadowRoot::unregisterShadowElement): Decreases number of shadow elements in shadow dom subtree by 1. (WebCore::ShadowRoot::hasShadowInsertionPoint): If number of shadow elements in shadow dom subtree is not equal to 0, returns true. Otherwise, returns false. * html/shadow/HTMLShadowElement.cpp: (WebCore::HTMLShadowElement::HTMLShadowElement): (WebCore::HTMLShadowElement::insertedInto): If a shadow element is inserted into document, register the shadow element with its shadow root. (WebCore::HTMLShadowElement::removedFrom): If a shadow element is removed from document, unregister the shadow element with its shadow root. * html/shadow/HTMLShadowElement.h: Added a new member variable which has information about whether this shadow element has been already registered with its shadow root or not. * testing/Internals.cpp: (WebCore::Internals::hasShadowInsertionPoint): Added a new testing method which returns whether the given shadow root has any shadow element or not. * testing/Internals.h: (Internals): * testing/Internals.idl: 2012-10-02 Vsevolod Vlasov Web Inspector: [Regression] DevToolsExtensionTest.TestContentScriptIsPresent fails https://bugs.webkit.org/show_bug.cgi?id=98161 Reviewed by Pavel Feldman. Content scripts should be also added by NetworkUISourceCodeProvider. This patch fixes that. * inspector/front-end/NetworkUISourceCodeProvider.js: (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource): 2012-10-02 Patrick Gansterer [WINCE] Remove FontPlatformData::averageCharWidth() https://bugs.webkit.org/show_bug.cgi?id=97883 Reviewed by Andreas Kling. Use SimpleFontData::avgCharWidth() instead to remove duplicated code. * platform/graphics/wince/FontPlatformData.cpp: (WebCore::FixedSizeFontData::create): * platform/graphics/wince/FontPlatformData.h: (FontPlatformData): * platform/graphics/wince/GraphicsContextWinCE.cpp: (WebCore::GraphicsContext::drawText): 2012-10-02 Stephen Chenney Refactor WebCore::FontData handling to clarify pointer ownership https://bugs.webkit.org/show_bug.cgi?id=95866 Reviewed by Eric Seidel. Re-commit for a rolled-out original, now with Chromium Windows build fix. This patch makes all FontData and derived classes ref-counted in all code paths that lead to caching or other retention of a pointer. The goal is to avert crashes and memory leaks, and to bring the code more in line with current WebKit practices. Specifically, this patch allows us to use ref pointers for all the FontData stored in FontFallbackList objects. The FontFallbackList can then own custom font data and manage its lifetime (forthcoming patch). Currently Document owns custom font data and does an end run around FontFallbackList in deleting glyph pages and custom font data, leaving FontFallbackList with invalid pointers. All FontData derived classes have been switched to use static create methods with private constructors. All caches that hold FontData now use RefPtrs. All methods that construct new font data now return PassRefPtr, with the exception of code only used to generate temporary data for text run layout. All methods that handle FontData in a call stack that passes through FontFallbackList::fontDataAt return PassRefPtr. Performance tested with both WebKit Perf-o-matic, which showed performance changes in the noise, and Chrome's page cycling tests with the acid3 benchmark set, which showed no performance difference at all. No new tests as this is refactoring code only and has no impact on functionality. * css/CSSFontFace.cpp: (WebCore::CSSFontFace::getFontData): * css/CSSFontFace.h: (CSSFontFace): * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::getFontData): * css/CSSFontFaceSource.h: (CSSFontFaceSource): * css/CSSFontSelector.cpp: (WebCore::fontDataForGenericFamily): (WebCore::CSSFontSelector::getFontData): * css/CSSFontSelector.h: * css/CSSSegmentedFontFace.cpp: (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading): (WebCore::CSSSegmentedFontFace::getFontData): * css/CSSSegmentedFontFace.h: (CSSSegmentedFontFace): * dom/Document.cpp: (WebCore::Document::registerCustomFont): * dom/Document.h: (Document): * platform/graphics/Font.h: (WebCore): * platform/graphics/FontCache.cpp: (WebCore): (WebCore::FontCache::getCachedFontData): (WebCore::FontCache::getNonRetainedLastResortFallbackFont): (WebCore::FontCache::releaseFontData): (WebCore::FontCache::purgeInactiveFontData): (WebCore::FontCache::getFontData): * platform/graphics/FontCache.h: (FontCache): * platform/graphics/FontData.h: * platform/graphics/FontFallbackList.cpp: (WebCore::FontFallbackList::releaseFontData): (WebCore::FontFallbackList::fontDataAt): (WebCore::FontFallbackList::setPlatformFont): * platform/graphics/FontFallbackList.h: (FontFallbackList): * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataAndPageForCharacter): * platform/graphics/FontSelector.h: (FontSelector): * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): * platform/graphics/SegmentedFontData.cpp: (WebCore::SegmentedFontData::fontDataForCharacter): * platform/graphics/SegmentedFontData.h: (WebCore::FontDataRange::FontDataRange): (WebCore::FontDataRange::fontData): (FontDataRange): (WebCore::SegmentedFontData::create): (SegmentedFontData): (WebCore::SegmentedFontData::SegmentedFontData): * platform/graphics/SimpleFontData.cpp: (WebCore::SimpleFontData::verticalRightOrientationFontData): (WebCore::SimpleFontData::uprightOrientationFontData): (WebCore::SimpleFontData::brokenIdeographFontData): * platform/graphics/SimpleFontData.h: (WebCore::SimpleFontData::create): (SimpleFontData): (WebCore::SimpleFontData::variantFontData): (DerivedFontData): * platform/graphics/chromium/FontCacheAndroid.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/chromium/FontCacheChromiumWin.cpp: (WebCore::FontCache::fontDataFromDescriptionAndLogFont): (GetLastResortFallbackFontProcData): (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/freetype/SimpleFontDataFreeType.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/mac/ComplexTextControllerCoreText.mm: (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): * platform/graphics/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/mac/FontComplexTextMac.cpp: (WebCore::Font::fontDataForCombiningCharacterSequence): * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformDestroy): (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/pango/FontCachePango.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/pango/SimpleFontDataPango.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/qt/FontCacheQt.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/qt/SimpleFontDataQt.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/skia/FontCacheSkia.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/skia/SimpleFontDataSkia.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::fontDataFromDescriptionAndLogFont): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/wince/FontCacheWinCE.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/wince/SimpleFontDataWinCE.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/wx/FontCacheWx.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/wx/SimpleFontDataWx.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): 2012-10-02 Christophe Dumez [XMLHttpRequest] overrideMimeType(mime) does not update the response's "Content-Type" header https://bugs.webkit.org/show_bug.cgi?id=98137 Reviewed by Kentaro Hara. According to the XMLHttpRequest specification, overrideMimeType(mime) sets the "Content-Type" header for the response to mime. However, with the current implementation, calling overrideMimeType(mime) does not affect the value returned by client.getResponseHeader("Content-Type"). This patch makes sure the response's "Content-Type" header is properly updated with the override MIME type. Test: http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-content-type-header.html * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveResponse): 2012-10-02 Vsevolod Vlasov Web Inspector: Move UISourceCode creation out from ResourceScriptMapping. https://bugs.webkit.org/show_bug.cgi?id=97680 Reviewed by Pavel Feldman. UISourceCodes for scripts having sourceURL are now created by NetworkUISourceCodeProvider. UISourceCodes for anonymous, dynamic and concatenated scripts are now created on demand only. All UISourceCodes created by ResourceScriptMapping are now "temporary". Temporary UISourceCodes are not stored in workspace and removed when a normal UISourceCode with the same url is available. UISourceCodeReplaced event was replaced with TemporaryUISourceCodeAdded/Removed events. * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager): (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): (WebInspector.BreakpointManager.Breakpoint.prototype.remove): * inspector/front-end/NavigatorView.js: * inspector/front-end/NetworkUISourceCodeProvider.js: (WebInspector.NetworkUISourceCodeProvider): (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource): * inspector/front-end/ResourceScriptMapping.js: (WebInspector.ResourceScriptMapping): (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation): (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript): (WebInspector.ResourceScriptMapping.prototype.uiLocationToRawLocation): (WebInspector.ResourceScriptMapping.prototype.addScript): (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts): (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts): (WebInspector.ResourceScriptMapping.prototype._isDynamicScript): (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode): (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace): (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode): (WebInspector.ResourceScriptMapping.prototype._reset): * inspector/front-end/RevisionHistoryView.js: (WebInspector.RevisionHistoryView): * inspector/front-end/ScriptsNavigator.js: * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel): * inspector/front-end/TabbedEditorContainer.js: (WebInspector.TabbedEditorContainer.prototype.removeUISourceCode.get if): (WebInspector.TabbedEditorContainer.prototype.removeUISourceCode): * inspector/front-end/UISourceCode.js: * inspector/front-end/Workspace.js: (WebInspector.Project.prototype.addTemporaryUISourceCode): (WebInspector.Project.prototype.removeTemporaryUISourceCode): 2012-10-02 Pavel Feldman Web Inspector: fix front-end compilation https://bugs.webkit.org/show_bug.cgi?id=98135 Reviewed by Vsevolod Vlasov. Fixing front-end compilation errors. * inspector/InjectedScriptCanvasModuleSource.js: (.): * inspector/InjectedScriptSource.js: (.): * inspector/front-end/DOMExtension.js: (Element.prototype.pruneEmptyTextNodes): * inspector/front-end/DatabaseQueryView.js: * inspector/front-end/ExtensionAPI.js: * inspector/front-end/JavaScriptSource.js: (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): * inspector/front-end/RuntimeModel.js: * inspector/front-end/StylesSidebarPane.js: * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt.SuggestBox.prototype._updateItems): * inspector/front-end/treeoutline.js: (TreeElement.prototype.expandRecursively): 2012-10-02 Jochen Eisinger [chromium] ASSERT that the embedder has set a default locale https://bugs.webkit.org/show_bug.cgi?id=98001 Reviewed by Adam Barth. The callsites assume that the default language is always defined, e.g. Document::getCachedLocalizer. Add an ASSERT() statement so an embedder doesn't have to guess what they did wrong. * platform/chromium/LanguageChromium.cpp: (WebCore::platformLanguage): 2012-10-02 Vsevolod Vlasov Web Inspector: Fix JavaScriptSource error found by compiler https://bugs.webkit.org/show_bug.cgi?id=98143 Reviewed by Pavel Feldman. * inspector/front-end/JavaScriptSource.js: (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): 2012-10-02 Mike West Add call stacks to Content Security Policy checks when relevant. https://bugs.webkit.org/show_bug.cgi?id=94433 Reviewed by Adam Barth. Previously, we generated stack traces only for eval-related CSP violations. As it turns out, we can call createScriptCallStack from practically anywhere. This patch takes advantage of that to generate stack traces whenever a warning is logged to the console. If we're in a JavaScript stack, brilliant: we get a detailed warning. If not, the stack trace is empty, and we don't pass it into the console logging method. This has the advantage of giving us good developer-facing logging for any and all violations that result from script-based injection of resources. Yay! Tests: http/tests/inspector/csp-injected-content-warning-contains-stacktrace.html http/tests/inspector/csp-inline-warning-contains-stacktrace.html http/tests/inspector/csp-setInterval-warning-contains-stacktrace.html http/tests/inspector/csp-setTimeout-warning-contains-stacktrace.html * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): Replacing the generated stack trace with the current script state, which will enable us to generate the stack trace inside ContentSecurityPolicy::reportViolation if it's relevant. * bindings/v8/ScriptCallStackFactory.cpp: (WebCore::createScriptCallStackForConsole): (WebCore): * bindings/v8/ScriptCallStackFactory.h: (WebCore): Adding a dummy interface to createScriptCallStackForConsole that allows ScriptState to be passed in, which matches JSC's interface. * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::SetTimeoutOrInterval): Dropping stack trace from call to ContentSecurityPolicy::allowEval. * page/ContentSecurityPolicy.cpp: (CSPDirectiveList): (WebCore::CSPDirectiveList::reportViolation): (WebCore::CSPDirectiveList::checkEvalAndReportViolation): (WebCore::CSPDirectiveList::allowEval): Piping script state through from CSPDirectiveList::allowEval rather than a full stack trace. (WebCore): (WebCore::isAllowedByAll): (WebCore::isAllowedByAllWithState): (WebCore::ContentSecurityPolicy::allowEval): (WebCore::ContentSecurityPolicy::reportViolation): (WebCore::ContentSecurityPolicy::logToConsole): Piping script state through from ContentSecurityPolicy::allowEval rather than a full stack trace. Now, we can simply generate the stack trace just before logging it, and only pass it into addConsoleMessage if it's non-empty. * page/ContentSecurityPolicy.h: (JSC): (WebCore): Including 'ScriptState.h' to normalize V8 and JSC's JS state objects. 2012-10-02 Pavel Feldman Web Inspector: migrate from WebInspector.Foo.prototype.__proto__ = to __proto__: syntax https://bugs.webkit.org/show_bug.cgi?id=98127 Reviewed by Vsevolod Vlasov. Converted with the regex matcher. * inspector/InjectedScriptCanvasModuleSource.js: (.): * inspector/compile-front-end.py: * inspector/front-end/AdvancedSearchController.js: (WebInspector.SearchView.prototype._onAction): (WebInspector.FileBasedSearchResultsPane.prototype._createContentSpan): * inspector/front-end/ApplicationCacheItemsView.js: * inspector/front-end/ApplicationCacheModel.js: (WebInspector.ApplicationCacheModel.prototype._networkStateUpdated): * inspector/front-end/AuditCategories.js: (WebInspector.AuditCategories.PagePerformance.prototype.initialize): (WebInspector.AuditCategories.NetworkUtilization.prototype.initialize): * inspector/front-end/AuditLauncherView.js: (WebInspector.AuditLauncherView.prototype._updateButton): * inspector/front-end/AuditResultView.js: (WebInspector.AuditCategoryResultPane.prototype._appendResult): * inspector/front-end/AuditRules.js: (WebInspector.AuditRules.GzipRule.prototype._shouldCompress): (WebInspector.AuditRules.CombineExternalResourcesRule.prototype.doRun): (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun): (WebInspector.AuditRules.ParallelizeDownloadRule.prototype.doRun): (WebInspector.AuditRules.UnusedCssRule.prototype.doRun): (WebInspector.AuditRules.CacheControlRule.prototype.isCacheableResource): (WebInspector.AuditRules.BrowserCacheControlRule.prototype._oneYearExpirationCheck): (WebInspector.AuditRules.ProxyCacheControlRule.prototype._setCookieCacheableCheck): (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun): (WebInspector.AuditRules.CssInHeadRule.prototype.doRun): (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun): (WebInspector.AuditRules.CSSRuleBase.prototype.visitProperty): (WebInspector.AuditRules.VendorPrefixedCSSProperties.prototype.visitProperty): (WebInspector.AuditRules.CookieRuleBase.prototype._callbackForResourceCookiePairs): (WebInspector.AuditRules.CookieSizeRule.prototype.processCookies): (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback): * inspector/front-end/AuditsPanel.js: (WebInspector.AuditsPanel.prototype._clearButtonClicked): (WebInspector.AuditsSidebarTreeElement.prototype.refresh): (WebInspector.AuditResultSidebarTreeElement.prototype.get selectable): * inspector/front-end/BottomUpProfileDataGridTree.js: (WebInspector.BottomUpProfileDataGridNode.prototype._willHaveChildren): * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.prototype._uiLocationRemoved): * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.reset): (WebInspector.XHRBreakpointsSidebarPane.prototype.set _restoreBreakpoints): (WebInspector.EventListenerBreakpointsSidebarPane.prototype.set _restoreBreakpoints): * inspector/front-end/CPUProfileView.js: (WebInspector.CPUProfileView.prototype._assignParentsInProfile): (WebInspector.CPUProfileType.prototype.createProfile): (WebInspector.CPUProfileHeader.prototype.createView): * inspector/front-end/CSSNamedFlowCollectionsView.js: (WebInspector.CSSNamedFlowCollectionsView.prototype.willHide): (WebInspector.FlowTreeElement.prototype.setOverset): * inspector/front-end/CSSNamedFlowView.js: (WebInspector.CSSNamedFlowView.prototype._update): * inspector/front-end/CSSSelectorProfileView.js: (WebInspector.CSSSelectorDataGridNode.prototype.createCell): (WebInspector.CSSSelectorProfileType.prototype.createTemporaryProfile): (WebInspector.CSSProfileHeader.prototype.createView): * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleModel.prototype._rawLocationToUILocation): * inspector/front-end/CallStackSidebarPane.js: (WebInspector.CallStackSidebarPane.prototype._keyDown): (WebInspector.CallStackSidebarPane.Placard.prototype._restartFrame): * inspector/front-end/CanvasProfileView.js: (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick): (WebInspector.CanvasProfileType.prototype.createProfile): (WebInspector.CanvasProfileHeader.prototype.createView): * inspector/front-end/CodeMirrorTextEditor.js: (WebInspector.CodeMirrorTextEditor.prototype._toRange): * inspector/front-end/ConsoleMessage.js: (WebInspector.ConsoleMessageImpl.prototype.clone): * inspector/front-end/ConsoleModel.js: (WebInspector.ConsoleModel.prototype._messageRepeatCountUpdated): * inspector/front-end/ConsolePanel.js: (WebInspector.ConsolePanel.prototype._consoleCleared): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype._dumpMemory): (WebInspector.ConsoleCommandResult.prototype.toMessageElement): * inspector/front-end/ContentProviders.js: (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent): (WebInspector.CompilerSourceMappingContentProvider.prototype.searchInContent): (WebInspector.StaticContentProvider.prototype.searchInContent): * inspector/front-end/ContextMenu.js: (WebInspector.ContextSubMenuItem.prototype._buildDescriptor): (WebInspector.ContextMenu.prototype.appendApplicableItems): * inspector/front-end/CookieItemsView.js: (WebInspector.CookieItemsView.prototype._contextMenu): (WebInspector.SimpleCookiesTable.prototype.setCookies): * inspector/front-end/CookiesTable.js: (WebInspector.CookiesTable.prototype._onDeleteFromGrid): * inspector/front-end/DOMAgent.js: (WebInspector.DOMAgent.prototype.redo): * inspector/front-end/DOMBreakpointsSidebarPane.js: (WebInspector.DOMBreakpointsSidebarPane.prototype.set restoreBreakpoints): * inspector/front-end/DOMStorage.js: (WebInspector.DOMStorageModel.prototype.storages): * inspector/front-end/DOMStorageItemsView.js: (WebInspector.DOMStorageItemsView.prototype._deleteCallback): * inspector/front-end/DataGrid.js: (WebInspector.DataGridNode.prototype.restorePosition): (WebInspector.CreationDataGridNode.prototype.makeNormal): * inspector/front-end/Database.js: (WebInspector.DatabaseModel.prototype._addDatabase): * inspector/front-end/DatabaseQueryView.js: (WebInspector.DatabaseQueryView.prototype._appendQueryResult): * inspector/front-end/DatabaseTableView.js: (WebInspector.DatabaseTableView.prototype._refreshButtonClicked): * inspector/front-end/DebuggerModel.js: (WebInspector.DebuggerModel.prototype.callStackModified): * inspector/front-end/DefaultTextEditor.js: (WebInspector.DefaultTextEditor.prototype.willHide): (WebInspector.TextEditorGutterPanel.prototype.removeDecoration): (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDiv): * inspector/front-end/Dialog.js: (WebInspector.DialogDelegate.prototype.willHide): * inspector/front-end/DirectoryContentView.js: (WebInspector.DirectoryContentView.prototype._sort): (WebInspector.DirectoryContentView.Node.prototype._metadataReceived): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.appendApplicableItems): * inspector/front-end/ElementsPanelDescriptor.js: (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems): * inspector/front-end/ElementsTreeOutline.js: (WebInspector.ElementsTreeOutline.prototype._selectNodeAfterEdit): (WebInspector.ElementsTreeOutline.PseudoStateDecorator.prototype.decorateAncestor): * inspector/front-end/EmptyView.js: * inspector/front-end/EventListenersSidebarPane.js: (WebInspector.EventListenersSidebarPane.prototype): * inspector/front-end/ExtensionAPI.js: (injectedExtensionAPI.PanelWithSidebarImpl.prototype.createSidebarPane): (injectedExtensionAPI.ExtensionPanelImpl.prototype.show): * inspector/front-end/ExtensionPanel.js: (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult): (WebInspector.ExtensionSidebarPane.prototype._setObject): * inspector/front-end/ExtensionView.js: (WebInspector.ExtensionView.prototype._onLoad): (WebInspector.ExtensionNotifierView.prototype.willHide): * inspector/front-end/FileContentView.js: (WebInspector.FileContentView.prototype.refresh): * inspector/front-end/FileManager.js: (WebInspector.FileManager.prototype.appendedToURL): * inspector/front-end/FileSystemModel.js: (WebInspector.FileSystemModel.prototype._removeFileSystem): (WebInspector.FileSystemModel.Directory.prototype.requestDirectoryContent): (WebInspector.FileSystemModel.File.prototype.requestFileContent): * inspector/front-end/FileSystemView.js: (WebInspector.FileSystemView.prototype._delete): (WebInspector.FileSystemView.EntryTreeElement.prototype._deletionCompleted): * inspector/front-end/FilteredItemSelectionDialog.js: (WebInspector.FilteredItemSelectionDialog.prototype._itemElementInViewport): (WebInspector.JavaScriptOutlineDialog.prototype.rewriteQuery): (WebInspector.OpenResourceDialog.prototype.rewriteQuery): * inspector/front-end/FontView.js: (WebInspector.FontView.prototype.updateFontPreviewSize): * inspector/front-end/GoToLineDialog.js: (WebInspector.GoToLineDialog.prototype.onEnter): * inspector/front-end/HandlerRegistry.js: (WebInspector.HandlerRegistry.prototype._appendHrefItems): * inspector/front-end/HeapSnapshot.js: (WebInspector.HeapSnapshotEdgesProvider.prototype.sort): (WebInspector.HeapSnapshotNodesProvider.prototype.sort): * inspector/front-end/HeapSnapshotDataGrids.js: (WebInspector.HeapSnapshotSortableDataGrid.prototype.recursiveSortingLeave): (WebInspector.HeapSnapshotViewportDataGrid.prototype._onScroll): (WebInspector.HeapSnapshotContainmentDataGrid.prototype.sortingChanged): (WebInspector.HeapSnapshotDiffDataGrid.prototype._populateChildren): (WebInspector.HeapSnapshotDominatorsDataGrid.prototype.highlightObjectByHeapSnapshotId): * inspector/front-end/HeapSnapshotGridNodes.js: (WebInspector.HeapSnapshotGridNode.prototype.sort): (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL): (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell): (WebInspector.HeapSnapshotInstanceNode.prototype.get isDeletedNode): (WebInspector.HeapSnapshotConstructorNode.prototype.get _shallowSizePercent): (WebInspector.HeapSnapshotDiffNode.prototype.get data): (WebInspector.HeapSnapshotDominatorObjectNode.prototype._emptyData): * inspector/front-end/HeapSnapshotProxy.js: (WebInspector.HeapSnapshotWorkerWrapper.prototype.terminate): (WebInspector.HeapSnapshotRealWorker.prototype.terminate): (WebInspector.HeapSnapshotFakeWorker.prototype._postMessageFromWorker): (WebInspector.HeapSnapshotWorker.prototype._postMessage): (WebInspector.HeapSnapshotLoaderProxy.prototype.close): (WebInspector.HeapSnapshotProxy.prototype.get uid): (WebInspector.HeapSnapshotProviderProxy.prototype.sortAndRewind): * inspector/front-end/HeapSnapshotView.js: (WebInspector.HeapSnapshotView.prototype._updateFilterOptions): (WebInspector.HeapSnapshotProfileType.prototype.createProfile): (WebInspector.HeapProfileHeader.prototype._createFileReader): * inspector/front-end/HelpScreen.js: (WebInspector.HelpScreen.prototype._onBlur): * inspector/front-end/ImageView.js: (WebInspector.ImageView.prototype._openInNewTab): * inspector/front-end/IndexedDBModel.js: (WebInspector.IndexedDBModel.prototype._requestData): * inspector/front-end/IndexedDBViews.js: (WebInspector.IDBDataView.prototype.clear): (WebInspector.IDBDataGridNode.prototype._formatValue): * inspector/front-end/InspectorFrontendHostStub.js: (.WebInspector.ClipboardAccessDeniedScreen): * inspector/front-end/InspectorView.js: (WebInspector.InspectorView.prototype.showPanelForAnchorNavigation): * inspector/front-end/JavaScriptSource.js: (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): * inspector/front-end/JavaScriptSourceFrame.js: (WebInspector.JavaScriptSourceFrame.prototype._continueToLine): * inspector/front-end/Linkifier.js: (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): * inspector/front-end/MemoryStatistics.js: (WebInspector.SwatchCheckbox.prototype._toggleCheckbox): * inspector/front-end/MetricsSidebarPane.js: (WebInspector.MetricsSidebarPane.prototype.editingCommitted): * inspector/front-end/NativeBreakpointsSidebarPane.js: (WebInspector.NativeBreakpointsSidebarPane.prototype._reset): * inspector/front-end/NativeMemorySnapshotView.js: (WebInspector.NativeMemorySnapshotView.prototype.get profile): (WebInspector.NativeMemoryProfileType.prototype.createProfile): (WebInspector.NativeMemoryProfileHeader.prototype.createView): (WebInspector.NativeMemoryPieChart.prototype._clear): (WebInspector.NativeMemoryBarChart.prototype._updateView): * inspector/front-end/NavigatorView.js: (WebInspector.NavigatorView.prototype.handleContextMenu): (WebInspector.NavigatorTreeOutline.prototype.searchFinished): (WebInspector.BaseNavigatorTreeElement.prototype.matchesSearchText): (WebInspector.NavigatorFolderTreeElement.prototype.onattach): (WebInspector.NavigatorSourceTreeElement.prototype._handleContextMenuEvent): * inspector/front-end/NetworkItemView.js: (WebInspector.NetworkItemView.prototype.set request): (WebInspector.RequestContentView.prototype.highlightLine): * inspector/front-end/NetworkManager.js: (WebInspector.NetworkManager.prototype._userAgentSettingChanged): * inspector/front-end/NetworkPanel.js: (WebInspector.NetworkLogView.prototype._highlightNode): (WebInspector.NetworkPanel.prototype.appendApplicableItems): (WebInspector.NetworkTimeCalculator.prototype._upperBound): (WebInspector.NetworkTransferTimeCalculator.prototype._upperBound): (WebInspector.NetworkTransferDurationCalculator.prototype._upperBound): (WebInspector.NetworkDataGridNode.prototype._refreshLabelPositions): (WebInspector.NetworkDataGridNode.RequestPropertyComparator): * inspector/front-end/NetworkPanelDescriptor.js: (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems): * inspector/front-end/NetworkRequest.js: (WebInspector.NetworkRequest.prototype._pushFrame): * inspector/front-end/ObjectPopoverHelper.js: (WebInspector.ObjectPopoverHelper.prototype._updateHTMLId): * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertiesSection.prototype.updateProperties): (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate): (WebInspector.ScopeTreeElement.prototype.onpopulate): (WebInspector.ArrayGroupingTreeElement.prototype.onattach): * inspector/front-end/Panel.js: (WebInspector.Panel.prototype.unregisterShortcut): * inspector/front-end/PanelEnablerView.js: (WebInspector.PanelEnablerView.prototype.get alwaysEnabled): * inspector/front-end/ProfileDataGridTree.js: (WebInspector.ProfileDataGridNode.prototype._merge): * inspector/front-end/ProfileLauncherView.js: (WebInspector.ProfileLauncherView.prototype.profileFinished): * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel.prototype.appendApplicableItems): (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent): (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect): (WebInspector.ProfilesSidebarTreeElement.prototype.get selectable): * inspector/front-end/ProgressIndicator.js: (WebInspector.ProgressIndicator.prototype.worked): * inspector/front-end/PropertiesSection.js: * inspector/front-end/PropertiesSidebarPane.js: (WebInspector.PropertiesSidebarPane.prototype.update): * inspector/front-end/RequestCookiesView.js: (WebInspector.RequestCookiesView.prototype._refreshCookies): * inspector/front-end/RequestHTMLView.js: (WebInspector.RequestHTMLView.prototype._createIFrame): * inspector/front-end/RequestHeadersView.js: (WebInspector.RequestHeadersView.prototype._createHeadersToggleButton): * inspector/front-end/RequestJSONView.js: (WebInspector.RequestJSONView.parseJSON.WebInspector.RequestJSONView.prototype._initialize): * inspector/front-end/RequestPreviewView.js: (WebInspector.RequestPreviewView.prototype._createPreviewView): * inspector/front-end/RequestResponseView.js: (WebInspector.RequestResponseView.prototype.contentLoaded): * inspector/front-end/RequestTimingView.js: (WebInspector.RequestTimingView.prototype._refresh): (WebInspector.RequestTimingView.createTimingTable): * inspector/front-end/RequestView.js: (WebInspector.RequestView.prototype.hasContent): * inspector/front-end/Resource.js: (WebInspector.Resource.prototype.isHidden): * inspector/front-end/ResourceTreeModel.js: (WebInspector.ResourceTreeModel.prototype._createResourceFromFramePayload): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView.prototype.hasContent): (WebInspector.ResourceSourceFrame.prototype.populateTextAreaContextMenu): * inspector/front-end/ResourceWebSocketFrameView.js: * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype._onmouseout): (WebInspector.BaseStorageTreeElement.prototype.get searchMatchesCount): (WebInspector.StorageCategoryTreeElement.prototype.set oncollapse): (WebInspector.FrameTreeElement.prototype._insertInPresentationOrder): (WebInspector.FrameResourceTreeElement.prototype.sourceView): (WebInspector.DatabaseTreeElement.prototype._updateChildren): (WebInspector.DatabaseTableTreeElement.prototype.onselect): (WebInspector.IndexedDBTreeElement.prototype._idbDatabaseTreeElement): (WebInspector.FileSystemListTreeElement.prototype._refreshFileSystem): (WebInspector.IDBDatabaseTreeElement.prototype.clear): (WebInspector.IDBObjectStoreTreeElement.prototype.clear): (WebInspector.IDBIndexTreeElement.prototype.clear): (WebInspector.DOMStorageTreeElement.prototype.onselect): (WebInspector.CookieTreeElement.prototype.onselect): (WebInspector.ApplicationCacheManifestTreeElement.prototype.onselect): (WebInspector.ApplicationCacheFrameTreeElement.prototype.onselect): (WebInspector.FileSystemTreeElement.prototype.clear): (WebInspector.StorageCategoryView.prototype.setText): * inspector/front-end/RevisionHistoryView.js: (WebInspector.RevisionHistoryView.prototype._reset): (WebInspector.RevisionHistoryTreeElement.prototype.allowRevert): * inspector/front-end/RuntimeModel.js: (WebInspector.RuntimeModel.prototype._reportCompletions): (WebInspector.FrameExecutionContextList.prototype.get displayName): * inspector/front-end/ScopeChainSidebarPane.js: (WebInspector.ScopeChainSidebarPane.prototype.update): (WebInspector.ScopeVariableTreeElement.prototype.get propertyPath): * inspector/front-end/Script.js: (WebInspector.Script.Location.prototype.dispose): * inspector/front-end/ScriptFormatterWorker.js: (HTMLScriptFormatter.prototype.styleSheetEnded): * inspector/front-end/ScriptSnippetModel.js: (WebInspector.ScriptSnippetModel.prototype._projectDidReset): (WebInspector.SnippetJavaScriptSource.prototype.workingCopyChanged): * inspector/front-end/ScriptsNavigator.js: (WebInspector.ScriptsNavigator.prototype.reset): (WebInspector.SnippetsNavigatorView.prototype._snippetCreationRequested): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog): * inspector/front-end/ScriptsPanelDescriptor.js: (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems): * inspector/front-end/ScriptsSearchScope.js: (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes): * inspector/front-end/SettingsScreen.js: (WebInspector.SettingsScreen.prototype.willHide): (WebInspector.SettingsTab.prototype._createCustomSetting): (WebInspector.GenericSettingsTab.prototype._javaScriptDisabledChanged): (WebInspector.UserAgentSettingsTab.prototype._createDeviceOrientationOverrideElement): (WebInspector.ExperimentsSettingsTab.prototype._createExperimentCheckbox): * inspector/front-end/ShowMoreDataGridNode.js: (WebInspector.ShowMoreDataGridNode.prototype.dispose): * inspector/front-end/SidebarPane.js: (WebInspector.SidebarPane.prototype._onTitleKeyDown): * inspector/front-end/SidebarTreeElement.js: (WebInspector.SidebarSectionTreeElement.prototype.onreveal): (WebInspector.SidebarTreeElement.prototype.onreveal): * inspector/front-end/SnippetJavaScriptSourceFrame.js: (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked): * inspector/front-end/SnippetStorage.js: (WebInspector.Snippet.prototype.serializeToObject): * inspector/front-end/SourceCSSTokenizer.js: (WebInspector.SourceCSSTokenizer.prototype.nextToken): * inspector/front-end/SourceCSSTokenizer.re2js: * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._commitEditing): (WebInspector.TextEditorDelegateForSourceFrame.prototype.createLink): * inspector/front-end/SourceHTMLTokenizer.js: (WebInspector.SourceHTMLTokenizer.prototype.nextToken): * inspector/front-end/SourceHTMLTokenizer.re2js: * inspector/front-end/SourceJavaScriptTokenizer.js: (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken): * inspector/front-end/SourceJavaScriptTokenizer.re2js: * inspector/front-end/Spectrum.js: (WebInspector.Spectrum.prototype._onKeyDown): * inspector/front-end/SplitView.js: (WebInspector.SplitView.prototype.set elementsToRestoreScrollPositionsFor): * inspector/front-end/StatusBarButton.js: (WebInspector.StatusBarButton.prototype._showOptions): * inspector/front-end/StyleSheetOutlineDialog.js: (WebInspector.StyleSheetOutlineDialog.prototype.rewriteQuery): * inspector/front-end/StyleSource.js: (WebInspector.StyleSource.prototype._clearIncrementalUpdateTimer): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.prototype.willHide): (WebInspector.ComputedStyleSidebarPane.prototype.expand): (WebInspector.StylePropertiesSection.prototype.editingSelectorCancelled): (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace): (WebInspector.BlankStylePropertiesSection.prototype.makeNormal): (WebInspector.StylePropertyTreeElement.prototype): * inspector/front-end/TabbedEditorContainer.js: (WebInspector.TabbedEditorContainer.prototype.currentFile): (WebInspector.TabbedEditorContainer.HistoryItem.prototype.serializeToObject): (WebInspector.TabbedEditorContainer.History.prototype.set _serializeToObject): * inspector/front-end/TabbedPane.js: (WebInspector.TabbedPane.prototype._insertBefore): * inspector/front-end/TextEditorModel.js: (WebInspector.TextEditorModel.endsWithBracketRegex.): * inspector/front-end/TextPrompt.js: (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler): * inspector/front-end/TimelineManager.js: (WebInspector.TimelineManager.prototype._stopped): * inspector/front-end/TimelineModel.js: (WebInspector.TimelineModel.prototype.recordOffsetInSeconds): * inspector/front-end/TimelineOverviewPane.js: (WebInspector.TimelineOverviewPane.prototype._scheduleRefresh): (WebInspector.TimelineOverviewWindow.prototype._zoom): (WebInspector.TimelineFrameOverview.prototype.getWindowTimes): * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.prototype.performSearch): * inspector/front-end/TimelinePresentationModel.js: (WebInspector.TimelinePresentationModel.prototype.isVisible): (WebInspector.TimelineCategory.prototype.set hidden): * inspector/front-end/TopDownProfileDataGridTree.js: (WebInspector.TopDownProfileDataGridNode.prototype._exclude): * inspector/front-end/UISourceCode.js: (WebInspector.UISourceCode.prototype.setSourceMapping): * inspector/front-end/UISourceCodeFrame.js: (WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu): * inspector/front-end/View.js: (WebInspector.View.prototype.focus): * inspector/front-end/WatchExpressionsSidebarPane.js: (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked): (WebInspector.WatchExpressionsSection.prototype._updateHoveredElement): (WebInspector.WatchExpressionTreeElement.prototype.applyExpression): * inspector/front-end/WorkerManager.js: (WebInspector.WorkerManager.prototype._disconnectedFromWorker): (WebInspector.WorkerTerminatedScreen.prototype.willHide): * inspector/front-end/WorkersSidebarPane.js: (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked): * inspector/front-end/Workspace.js: (WebInspector.Workspace.prototype.uiSourceCodes): 2012-10-02 Vsevolod Vlasov Unreviewed r130146 follow-up, added method was not called. * inspector/front-end/JavaScriptSource.js: (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): 2012-10-02 Yoshifumi Inoue [Forms] Multiple fields datetime/datetime-local input UI https://bugs.webkit.org/show_bug.cgi?id=97997 Reviewed by Kent Tamura. This patch introduces multiple fields "datetime" and "datetime-local" input UI in DRT. We'll enable these features once we add tests. No new tests. To reduce size of this patch, other patches add tests for multiple fields datetime/datetime-local input UI. Note: Actual outputs of four tests - fast/forms/datetime/datetime-input-visible-string.html - fast/forms/datetime/datetime-stepup-stepdown-from-renderer.html - fast/forms/datetimelocal/datetimelocal-input-visible-string.html - fast/forms/datetimelocal/datetimelocal-stepup-stepdown-from-renderer.html are different. * bindings/generic/RuntimeEnabledFeatures.cpp: (WebCore): * css/html.css: (input::-webkit-datetime-edit-day-field): Added for field appearance. (input::-webkit-datetime-edit-day-field:focus): Added to remove focus ring. * html/DateTimeInputType.cpp: (WebCore::DateTimeInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification. (WebCore::DateTimeInputType::setupLayoutParameters): Added to set layout of multiple fields. * html/DateTimeInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseDateTimeInputType typedef. (WebCore::DateTimeInputType::DateTimeInputType): Changed base class name to BaseDateTimeInputType. (DateTimeInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters(). * html/DateTimeLocalInputType.cpp: (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification. (WebCore::DateTimeLocalInputType::setupLayoutParameters): Added to set layout of multiple fields. * html/DateTimeLocalInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseDateTimeLocalInputType typedef. (WebCore::DateTimeLocalInputType::DateTimeLocalInputType): Changed base class name to BaseDateTimeLocalInputType. (DateTimeLocalInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters(). * html/shadow/DateTimeEditElement.cpp: (DateTimeEditBuilder): Changed to add member variable m_placeholderForDay. (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed to initialize m_placeholderForDay. (WebCore::DateTimeEditBuilder::visitField): Changed to support week field. * html/shadow/DateTimeEditElement.h: (LayoutParameters): Changed to add placeholderForDay member variable. 2012-10-02 Vsevolod Vlasov Web Inspector: [Regression] Breakpoints restored from storage are not set in debugger. https://bugs.webkit.org/show_bug.cgi?id=98132 Reviewed by Pavel Feldman. Added hasDivergedFromVM attribute to UISourceCode for breakpoint manager to know if breakpoints should be set in the debugger. * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.hasDivergedFromVM): (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint): * inspector/front-end/JavaScriptSource.js: (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): * inspector/front-end/ScriptSnippetModel.js: (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet): 2012-09-29 Ilya Tikhonovsky Web Inspector: NMI make String* instrumentation non intrusive https://bugs.webkit.org/show_bug.cgi?id=97964 Reviewed by Yury Semikhatsky. MemoryInstrumentationString.h include was added. * dom/WebCoreMemoryInstrumentation.h: 2012-10-02 Vsevolod Vlasov Web Inspector: inspector/debugger/script-snippet-model.html fails https://bugs.webkit.org/show_bug.cgi?id=98129 Reviewed by Pavel Feldman. * inspector/front-end/ScriptSnippetModel.js: (WebInspector.ScriptSnippetModel.prototype._runScript): (WebInspector.ScriptSnippetModel.prototype._printRunScriptResult): 2012-10-02 Yury Semikhatsky Remove anonymous namespace from StyleBuilder.cpp for better debugging experience https://bugs.webkit.org/show_bug.cgi?id=98124 Reviewed by Alexander Pavlov. * css/StyleBuilder.cpp: removed anonymous namespace. (WebCore): 2012-10-02 Nikita Vasilyev Web Inspector: CSS property names autocomplete: Suggest most used rather than alphabeticaly first https://bugs.webkit.org/show_bug.cgi?id=96763 Reviewed by Alexander Pavlov. Implement selection of non-first item in WebInspector.TextPrompt.SuggestBox. * inspector/front-end/CSSCompletions.js: (WebInspector.CSSCompletions.Weight): Collect most used CSS property names. Rarely used properties are not presented. (WebInspector.CSSCompletions.prototype.firstStartsWith): Remove unused function. (WebInspector.CSSCompletions.prototype.mostUsedOf): * inspector/front-end/StylesSidebarPane.js: * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt.prototype._completionsReady): (WebInspector.TextPrompt.prototype.pageDownKeyPressed): (WebInspector.TextPrompt.SuggestBox): Introduce _length and _selectedIndex to remove unnecessary DOM traversals. Simplify canShowForSingleItem logic. (WebInspector.TextPrompt.SuggestBox.prototype._selectClosest): _onPreviousItem and _onNextItem had some logic duplication so I replaced them with this method. (WebInspector.TextPrompt.SuggestBox.prototype.updateSuggestions): (WebInspector.TextPrompt.SuggestBox.prototype._updateItems): (WebInspector.TextPrompt.SuggestBox.prototype._selectItem): (WebInspector.TextPrompt.SuggestBox.prototype._completionsReady): (WebInspector.TextPrompt.SuggestBox.prototype.upKeyPressed): (WebInspector.TextPrompt.SuggestBox.prototype.downKeyPressed): (WebInspector.TextPrompt.SuggestBox.prototype.pageUpKeyPressed): (WebInspector.TextPrompt.SuggestBox.prototype.pageDownKeyPressed): 2012-10-02 Keishi Hattori Web Inspector: Modifications in a shadow tree don't update the Elements panel. https://bugs.webkit.org/show_bug.cgi?id=97056 Reviewed by Pavel Feldman. Send characterDataModified event for shadow dom nodes too so they update the elements panel. Test: inspector/elements/shadow-dom-modify-chardata.html * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent): 2012-09-20 Vsevolod Vlasov Web Inspector: Provide a way to distinguish scripts having sourceURL from standalone scripts. https://bugs.webkit.org/show_bug.cgi?id=97231 Reviewed by Pavel Feldman. DebuggerAgent now scans scripts for sourceURL comment and provides hasSourceURL flag for each non-inline script with such a comment. * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidParseSource): * inspector/Inspector.json: * inspector/InspectorDebuggerAgent.cpp: (WebCore::InspectorDebuggerAgent::didParseSource): * inspector/front-end/DebuggerModel.js: (WebInspector.DebuggerModel.prototype._parsedScriptSource): (WebInspector.DebuggerDispatcher.prototype.scriptParsed): * inspector/front-end/Script.js: (WebInspector.Script): 2012-10-02 Sheriff Bot Unreviewed, rolling out r130129. http://trac.webkit.org/changeset/130129 https://bugs.webkit.org/show_bug.cgi?id=98125 broke 4 webkit_unit_tests (MemoryInstrumentationTest.hashMapWith*) (Requested by caseq on #webkit). * dom/WebCoreMemoryInstrumentation.h: * platform/KURL.cpp: * platform/KURLGoogle.cpp: * platform/PlatformMemoryInstrumentation.h: 2012-10-02 Pavel Feldman Web Inspector: move runScript into the snippets model https://bugs.webkit.org/show_bug.cgi?id=98122 Reviewed by Vsevolod Vlasov. - Moves runScript into the SnippetsModel - Drive-by: annotates more RuntimeModel methods - common, sdk, ui, components, elements, network, resources, network, scripts, console, timeline, workers, tests modules now compile with no errors in dedicated compilation mode. * inspector/compile-front-end.py: * inspector/front-end/ConsoleView.js: * inspector/front-end/DatabaseQueryView.js: * inspector/front-end/RuntimeModel.js: (WebInspector.RuntimeModel.prototype.completionsForTextPrompt): * inspector/front-end/ScriptSnippetModel.js: (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback): (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet): (WebInspector.ScriptSnippetModel.prototype._runScript): * inspector/front-end/StylesSidebarPane.js: * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt.prototype.complete): * inspector/front-end/externs.js: 2012-10-02 Yoshifumi Inoue [Forms] Adding DateTimeDayFieldElement for multiple fields "date", "datetime", "datetime-local" input UI https://bugs.webkit.org/show_bug.cgi?id=97998 Reviewed by Kent Tamura. This patch introduces DateTimeDayFieldElement class for implementing multiple fields "date", "datetime", and "datetime-local" input UI. No new tests. This patch doesn't change behavior. * html/shadow/DateTimeFieldElements.cpp: (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement): Added. (WebCore::DateTimeDayFieldElement::create): Added. (WebCore::DateTimeDayFieldElement::populateDateTimeFieldsState): Added. (WebCore::DateTimeDayFieldElement::setValueAsDate): Added. (WebCore::DateTimeDayFieldElement::setValueAsDateTimeFieldsState): Added. * html/shadow/DateTimeFieldElements.h: (DateTimeDayFieldElement): Added. 2012-10-02 Yoshifumi Inoue LocalzeNone::dateFormat() should have right date format. https://bugs.webkit.org/show_bug.cgi?id=98123 Reviewed by Kent Tamura. This patch changes date format in LocaleNone for multiple fields date/datetime/datetime-local input UI. No new tests. Other patch for ports which use LocaleNone and multiple fields date/time input UI will have tests. * platform/text/LocaleNone.cpp: (WebCore::LocaleNone::dateFormat): Changed month specifier to "MM". 2012-10-02 Pavel Feldman Web Inspector: move cookies model out of the items view (into sdk component). https://bugs.webkit.org/show_bug.cgi?id=98022 Reviewed by Yury Semikhatsky. Otherwise Audits require code that belongs to the resources component. * inspector/front-end/CookieItemsView.js: * inspector/front-end/CookieParser.js: (WebInspector.Cookies.getCookiesAsync): (WebInspector.Cookies.buildCookiesFromString): (WebInspector.Cookies.cookieMatchesResourceURL): (WebInspector.Cookies.cookieDomainMatchesResourceDomain): 2012-09-29 Ilya Tikhonovsky Web Inspector: NMI make String* instrumentation non intrusive https://bugs.webkit.org/show_bug.cgi?id=97964 Reviewed by Yury Semikhatsky. MemoryInstrumentationString.h include was added. * dom/WebCoreMemoryInstrumentation.h: 2012-10-01 Brady Eidson Remove the Safari 2 -> Safari 3 icon database import code. https://bugs.webkit.org/show_bug.cgi?id=98113 Reviewed by Maciej Stachowiak. Remove notions of "importing an old database format" from the IconDatabase. No new tests - Feature removed, and no previous tests covered it. * loader/icon/IconDatabase.cpp: (DefaultIconDatabaseClient): (WebCore::IconDatabase::IconDatabase): (WebCore): (WebCore::IconDatabase::iconDatabaseSyncThread): * loader/icon/IconDatabase.h: (IconDatabase): * loader/icon/IconDatabaseBase.h: * loader/icon/IconDatabaseClient.h: * WebCore.exp.in: 2012-10-01 Yoshifumi Inoue Adding Localizer::dateFormat() for multiple fields date/datetime input UI https://bugs.webkit.org/show_bug.cgi?id=98109 Reviewed by Kent Tamura. This patch introduces Localizer::dateFormat() function for multiple fields date/datetime/datetime-local input UI inside ENABLE_INPUT_MULTIPLE_FIELDS_UI. We'll have platform specific implementations in LocaleICU, LocaleMac, and LocaleWin. No new tests. Other patches will add tests for this change. * platform/text/LocaleICU.cpp: (WebCore::LocaleICU::dateFormat): Added a stub. * platform/text/LocaleICU.h: (LocaleICU): Changed to add a declaration of dateFormat(). * platform/text/LocaleNone.cpp: (LocaleNone): Changed to add a declaration of dateFormat(). (WebCore::LocaleNone::dateFormat): Added. * platform/text/LocaleWin.cpp: (WebCore::LocaleWin::dateFormat): Added. * platform/text/LocaleWin.h: (LocaleWin): Changed to add a declaration of dateFormat(). * platform/text/Localizer.h: Updates Unicode TR35 URI in a comment. (Localizer): Changed to add a declaration of dateFormat(). * platform/text/mac/LocaleMac.h: (LocaleMac): Changed to add a declaration of dateFormat(). * platform/text/mac/LocaleMac.mm: (WebCore::LocaleMac::dateFormat): Added a stub. 2012-10-01 Adam Barth Unreviewed. Fix ASSERT introduced in http://trac.webkit.org/changeset/130103. It turns out this case can occur. This patch causes us to handle it the same way we did previously. * bindings/v8/IntrusiveDOMWrapperMap.h: (WebCore::IntrusiveDOMWrapperMap::removeIfPresent): 2012-10-01 Shinya Kawanaka [Refactoring] DOMSelection should not use shadowAncestorNode https://bugs.webkit.org/show_bug.cgi?id=97872 Reviewed by Ryosuke Niwa. Since Node::shadowAncestorNode is deprecated, it should not be used. Here, we should use TreeScope::ancestorInThisScope instead. No new tests, covered by existing test. * page/DOMSelection.cpp: (WebCore::selectionShadowAncestor): 2012-10-01 Tim Horton ScrollView::setScrollPosition is overridden by FrameView, but is not virtual https://bugs.webkit.org/show_bug.cgi?id=98064 Reviewed by Simon Fraser. Virtualize ScrollView::setScrollPosition, and override it in FrameView. No new tests, this causes subtle behavior differences in currently-untestable code. * page/FrameView.h: (FrameView): * platform/ScrollView.h: (ScrollView): 2012-10-01 David Barton Restore WebCore/ChangeLog lines deleted in r130097 https://bugs.webkit.org/show_bug.cgi?id=98112 Reviewed by Eric Seidel. 2012-10-01 Shinya Kawanaka TreeScope should not use node->shadowAncetorNode() https://bugs.webkit.org/show_bug.cgi?id=97869 Reviewed by Ryosuke Niwa. TreeScope uses shadowAncestorNode(), but we should use shadowHost() here. shadowAncestorNode() is deprecated. No new tests, simple refactoring. * dom/TreeScope.cpp: (WebCore::TreeScope::ancestorInThisScope): 2012-10-01 Pavel Feldman Web Inspector: move completions calculation into RuntimeModel (part 1) https://bugs.webkit.org/show_bug.cgi?id=98053 Reviewed by Yury Semikhatsky. - moves current execution context state into runtime model - moves completionsForTextPrompt and its private helpers into runtime model - makes text prompt use generic expression stop characters by default * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype._frameChanged): (WebInspector.ConsoleView.prototype._appendContextOption): (WebInspector.ConsoleView.prototype._contextChanged): * inspector/front-end/DatabaseQueryView.js: (WebInspector.DatabaseQueryView): * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertyPrompt): * inspector/front-end/RuntimeModel.js: (WebInspector.RuntimeModel.prototype.setCurrentExecutionContext): (WebInspector.RuntimeModel.prototype.currentExecutionContext): (WebInspector.RuntimeModel.prototype._executionContextCreated): (WebInspector.RuntimeModel.prototype.evaluate.evalCallback): (WebInspector.RuntimeModel.prototype.evaluate): (WebInspector.RuntimeModel.prototype.completionsForTextPrompt): (WebInspector.RuntimeModel.prototype._completionsForExpression.evaluated.getCompletions): (WebInspector.RuntimeModel.prototype._completionsForExpression.evaluated): (WebInspector.RuntimeModel.prototype._completionsForExpression.receivedPropertyNamesFromEval): (WebInspector.RuntimeModel.prototype._completionsForExpression.receivedPropertyNames): (WebInspector.RuntimeModel.prototype._completionsForExpression): (WebInspector.RuntimeModel.prototype._reportCompletions): * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt): * inspector/front-end/WatchExpressionsSidebarPane.js: (WebInspector.WatchExpressionsSection.prototype.update): 2012-10-01 Dongwoo Joshua Im The static function 'deleteFileSystem' in the LocalFileSystem.cpp should have another name. https://bugs.webkit.org/show_bug.cgi?id=98106 Reviewed by Yuta Kitamura. A build error occurs because there are two functions which have same name in the LocalFileSystem.cpp file. One is member function of the class, and the other is a static function which is called by the member function. So, I've tried to change the name of the static function from 'deleteFileSystem' to 'performDeleteFileSystem'. No new functionality, no new test. * Modules/filesystem/LocalFileSystem.cpp: (WebCore::performDeleteFileSystem): The name of function is changed from 'deleteFileSystem'. (WebCore::LocalFileSystem::requestFileSystem): (WebCore::LocalFileSystem::deleteFileSystem): 2012-10-01 Yoshifumi Inoue Week specifiers defined in DateTimeFormat class are wrong. https://bugs.webkit.org/show_bug.cgi?id=98104 Reviewed by Kent Tamura. This patch changes week of year and week of month format specifiers defined in DateTimeFormat class to match with Unicode technical standard 35, LDML, Locale Data Markup Language, (http://www.unicode.org/reports/tr35/). No new tests. Following existing tests cover this change: - fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic.html - fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes.html - fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements.html - fast/forms/month-multiple-fields/month-multiple-fields-appearance-style.html * html/WeekInputType.cpp: (WebCore::WeekInputType::setupLayoutParameters): Changed to use 'w' instead of 'W'. * platform/text/DateTimeFormat.cpp: Changed elements in lowerCaseToFieldTypeMap and upperCaseToFieldTypeMap. * platform/text/DateTimeFormat.h: Changed FieldTypeWeekOfMonth to 'W' and FieldTypeWeekOfYear to 'w'. 2012-10-01 Glenn Adams Add other typed tokens to YYDEBUG token output https://bugs.webkit.org/show_bug.cgi?id=98102 Reviewed by Simon Fraser. Add other typed tokens to YYPRINT macro expansion. Minor cleanup of cast. No new tests. For CSS lexer/parser debug usage only. * css/CSSGrammar.y: Add other typed tokens to YYPRINT macro expansion. Change C-type cast to function-call style cast (per darin). 2012-10-01 Keishi Hattori Calendar picker should use zero as default step base https://bugs.webkit.org/show_bug.cgi?id=97976 Reviewed by Kent Tamura. Calendar picker should be using zero as default step base for input type=date. The spec says to use zero unless specified otherwise. Since input type=week has another default step base, I am adding step base to DateTimeChooserParameters. Test: fast/forms/date/calendar-picker-with-step.html * Resources/pagepopups/calendarPicker.js: (handleArgumentsTimeout): (CalendarPicker): (CalendarPicker.prototype.stepMismatch): Use the new this.stepBase. * html/shadow/PickerIndicatorElement.cpp: (WebCore::PickerIndicatorElement::openPopup): Gets step base from step range. * platform/DateTimeChooser.h: (DateTimeChooserParameters): Added stepBase. 2012-10-01 Tony Chang flexbox does wrong baseline item alignment in columns https://bugs.webkit.org/show_bug.cgi?id=97948 Reviewed by Ojan Vafai. For columns, baseline alignment should just be flex-start. We were previously moving the logical left edge by the ascent. Test: css3/flexbox/align-baseline.html * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::alignmentForChild): Map baseline to flex-start for orthogonal children. (WebCore::RenderFlexibleBox::alignChildren): Add FIXME for bug in baseline alignment. * rendering/RenderFlexibleBox.h: 2012-10-01 Keishi Hattori Rename CalendarPickerElement to PickerIndicatorElement https://bugs.webkit.org/show_bug.cgi?id=98096 Reviewed by Kent Tamura. Renaming CalendarPickerElement to PickerIndicatorElement because we want to use it for other input types like time, week, month, datetime. No new tests. Just a rename. * GNUmakefile.list.am: * WebCore.gypi: * html/DateInputType.cpp: (WebCore::DateInputType::createShadowSubtree): * html/DateInputType.h: (WebCore): (DateInputType): * html/shadow/PickerIndicatorElement.cpp: Renamed from Source/WebCore/html/shadow/CalendarPickerElement.cpp. (WebCore): (WebCore::PickerIndicatorElement::PickerIndicatorElement): (WebCore::PickerIndicatorElement::create): (WebCore::PickerIndicatorElement::~PickerIndicatorElement): (WebCore::PickerIndicatorElement::createRenderer): (WebCore::PickerIndicatorElement::hostInput): (WebCore::PickerIndicatorElement::defaultEventHandler): (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents): (WebCore::PickerIndicatorElement::didChooseValue): (WebCore::PickerIndicatorElement::didEndChooser): (WebCore::PickerIndicatorElement::openPopup): (WebCore::PickerIndicatorElement::closePopup): (WebCore::PickerIndicatorElement::detach): * html/shadow/PickerIndicatorElement.h: Renamed from Source/WebCore/html/shadow/CalendarPickerElement.h. (WebCore): (PickerIndicatorElement): 2012-10-01 Ojan Vafai Unreviewed, rolling out r130079. http://trac.webkit.org/changeset/130079 https://bugs.webkit.org/show_bug.cgi?id=95866 Broke the chomium windows compile. * css/CSSFontFace.cpp: (WebCore::CSSFontFace::getFontData): * css/CSSFontFace.h: (CSSFontFace): * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::getFontData): * css/CSSFontFaceSource.h: (CSSFontFaceSource): * css/CSSFontSelector.cpp: (WebCore::fontDataForGenericFamily): (WebCore::CSSFontSelector::getFontData): * css/CSSFontSelector.h: * css/CSSSegmentedFontFace.cpp: (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading): (WebCore::CSSSegmentedFontFace::getFontData): * css/CSSSegmentedFontFace.h: (CSSSegmentedFontFace): * dom/Document.cpp: (WebCore::Document::registerCustomFont): * dom/Document.h: (Document): * platform/graphics/Font.h: (WebCore): * platform/graphics/FontCache.cpp: (WebCore): (WebCore::FontCache::getCachedFontData): (WebCore::FontCache::getNonRetainedLastResortFallbackFont): (WebCore::FontCache::releaseFontData): (WebCore::FontCache::purgeInactiveFontData): (WebCore::FontCache::getFontData): * platform/graphics/FontCache.h: (FontCache): * platform/graphics/FontData.h: * platform/graphics/FontFallbackList.cpp: (WebCore::FontFallbackList::releaseFontData): (WebCore::FontFallbackList::fontDataAt): (WebCore::FontFallbackList::setPlatformFont): * platform/graphics/FontFallbackList.h: (FontFallbackList): * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataAndPageForCharacter): * platform/graphics/FontSelector.h: (FontSelector): * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): * platform/graphics/SegmentedFontData.cpp: (WebCore::SegmentedFontData::fontDataForCharacter): * platform/graphics/SegmentedFontData.h: (WebCore::FontDataRange::FontDataRange): (WebCore::FontDataRange::fontData): (FontDataRange): (SegmentedFontData): * platform/graphics/SimpleFontData.cpp: (WebCore::SimpleFontData::verticalRightOrientationFontData): (WebCore::SimpleFontData::uprightOrientationFontData): (WebCore::SimpleFontData::brokenIdeographFontData): * platform/graphics/SimpleFontData.h: (SimpleFontData): (WebCore::SimpleFontData::variantFontData): (DerivedFontData): * platform/graphics/chromium/FontCacheAndroid.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/chromium/FontCacheChromiumWin.cpp: (WebCore::FontCache::fontDataFromDescriptionAndLogFont): (GetLastResortFallbackFontProcData): (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/freetype/SimpleFontDataFreeType.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/mac/ComplexTextControllerCoreText.mm: (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): * platform/graphics/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/mac/FontComplexTextMac.cpp: (WebCore::Font::fontDataForCombiningCharacterSequence): * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformDestroy): (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/pango/FontCachePango.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/pango/SimpleFontDataPango.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/qt/FontCacheQt.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/qt/SimpleFontDataQt.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/skia/FontCacheSkia.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/skia/SimpleFontDataSkia.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::fontDataFromDescriptionAndLogFont): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/wince/FontCacheWinCE.cpp: * platform/graphics/wince/SimpleFontDataWinCE.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/wx/FontCacheWx.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/wx/SimpleFontDataWx.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): 2012-10-01 Beth Dakin Speculative GTK build fix after http://trac.webkit.org/changeset/130091 * GNUmakefile.list.am: 2012-10-01 Adam Barth [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-traverse gets 4% faster) https://bugs.webkit.org/show_bug.cgi?id=97974 Reviewed by Kentaro Hara. Previously, we stored a pointer to a handle to a wrapper in Node. That is an extra layer of indirection that slows down finding the wrapper for the node. A handle is just a pointer, so we might as we just store the handle in the Node directly. That speeds up dom-traverse by about 4%. We were using the extra layer of indirection in IntrusiveDOMWrapperMap to make removal more efficient. Rather than using a chunked table, we now use a HashSet, which also lets us remove elements quickly. * bindings/v8/IntrusiveDOMWrapperMap.h: (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap): (WebCore::IntrusiveDOMWrapperMap::get): (WebCore::IntrusiveDOMWrapperMap::set): (WebCore::IntrusiveDOMWrapperMap::contains): (WebCore::IntrusiveDOMWrapperMap::visit): (WebCore::IntrusiveDOMWrapperMap::removeIfPresent): (WebCore::IntrusiveDOMWrapperMap::clear): * bindings/v8/ScriptWrappable.h: (WebCore::ScriptWrappable::ScriptWrappable): (WebCore::ScriptWrappable::wrapper): (WebCore::ScriptWrappable::setWrapper): (WebCore::ScriptWrappable::disposeWrapper): (WebCore::ScriptWrappable::reportMemoryUsage): (ScriptWrappable): * bindings/v8/V8DOMWrapper.h: (WebCore::V8DOMWrapper::getCachedWrapper): 2012-10-01 Ojan Vafai Unreviewed, rolling out r130062. http://trac.webkit.org/changeset/130062 https://bugs.webkit.org/show_bug.cgi?id=98001 Causes a ton of gtest failures on the chromium bots. * platform/chromium/LanguageChromium.cpp: (WebCore::platformLanguage): 2012-10-01 David Barton [MathML] Baseline wrong for fractions or munder/mover with padding https://bugs.webkit.org/show_bug.cgi?id=97990 Reviewed by Eric Seidel. We include any border or padding in our baseline computation. We also take this opportunity to quit adding extra left & right padding to numerators and denominators, making our output tighter and also more compatible with Firefox and TeX, since we are rebaselining some fraction pixel tests now anyway. Tests added to LayoutTests/mathml/presentation/{over,row-alignment}.xhtml * rendering/mathml/RenderMathMLFraction.cpp: (WebCore::RenderMathMLFraction::fixChildStyle): (WebCore::RenderMathMLFraction::paint): (WebCore::RenderMathMLFraction::firstLineBoxBaseline): * rendering/mathml/RenderMathMLUnderOver.cpp: (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline): 2012-10-01 Joshua Bell IndexedDB: Fire error rather than raising on request creation if transaction aborts asynchronously. https://bugs.webkit.org/show_bug.cgi?id=93054 Reviewed by Tony Chang. All IDB data operations are asynchronous, producing IDBRequest objects. This was implemented by passing all data from the front-end to the back-end synchronously, and synchronously returning an exception code back if the request was invalid. Previous changes have moved request validation to the front-end except for the case of the back-end transaction having asynchronously aborted in the mean time. To eliminate that case (which would allow front-end to back-end communication to be asynchronous in multi-process ports), change from returning an exception code to relying on the front-end to abort the request when the abort event finally arrives. The difference would be noticeable in scripts - in a multi-process environment: var request1 = store.get(0); request1.onerror = errorHandler; // (A) // (B) var request2 = store.get(0); // (C) request2.onerror = errorHandler; // (D) If the transaction back-end were to asynchronously abort at exactly point (B), then prior to this patch an exception would be thrown at (C). With this patch, no exception but (D) would fire, same as (A). The back-end explicitly fires an error callback as well, as intermediate layers may rely on this to stop tracking the pending callback. No new layout tests - change is not observable in single-process ports. Added webkit_unit_test IDBRequestTest.AbortErrorAfterAbort to verify that IDBRequest is resilient to this pattern, but it was previous. * Modules/indexeddb/IDBCursor.cpp: (WebCore::IDBCursor::advance): Back end should never fail a request. (WebCore::IDBCursor::continueFunction): Ditto. (WebCore::IDBCursor::deleteFunction): Ditto, and also move "is key cursor" test here from back-end. * Modules/indexeddb/IDBCursorBackendImpl.cpp: (WebCore::IDBCursorBackendImpl::continueFunction): Change from EC to firing error. (WebCore::IDBCursorBackendImpl::advance): Ditto. (WebCore::IDBCursorBackendImpl::deleteFunction): Ditto, and remove test moved to FE. (WebCore::IDBCursorBackendImpl::prefetchContinue): Ditto. * Modules/indexeddb/IDBDatabaseError.cpp: (WebCore::IDBDatabaseError::create): Add overload that looks up message via code. (WebCore::IDBDatabaseError::IDBDatabaseError): Look up message via exception table. * Modules/indexeddb/IDBDatabaseException.h: Add getErrorDescription. * Modules/indexeddb/IDBDatabaseException.cpp: Implementation of getErrorDescription. * Modules/indexeddb/IDBIndex.cpp: (WebCore::IDBIndex::openCursor): Back end should never fail a request. (WebCore::IDBIndex::count): Ditto. (WebCore::IDBIndex::openKeyCursor): Ditto. (WebCore::IDBIndex::get): Ditto. (WebCore::IDBIndex::getKey): Ditto. * Modules/indexeddb/IDBIndexBackendImpl.cpp: (WebCore::IDBIndexBackendImpl::openCursor): Change from EC to firing error. (WebCore::IDBIndexBackendImpl::openKeyCursor): Ditto. (WebCore::IDBIndexBackendImpl::count): Ditto. (WebCore::IDBIndexBackendImpl::get): Ditto. (WebCore::IDBIndexBackendImpl::getKey): Ditto. * Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::get): Back end should never fail a request. (WebCore::IDBObjectStore::put): Ditto. (WebCore::IDBObjectStore::deleteFunction): Ditto. (WebCore::IDBObjectStore::clear): Ditto. (WebCore): Ditto. (WebCore::IDBObjectStore::openCursor): Ditto. (WebCore::IDBObjectStore::count): Ditto. * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: (WebCore::IDBObjectStoreBackendImpl::get): Change from EC to firing error. (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto. (WebCore): (WebCore::IDBObjectStoreBackendImpl::deleteFunction): Ditto. (WebCore::IDBObjectStoreBackendImpl::clear): Ditto. (WebCore::IDBObjectStoreBackendImpl::openCursor): Ditto. (WebCore::IDBObjectStoreBackendImpl::count): Ditto. 2012-10-01 Ryosuke Niwa Build fix. Clearly, these objects could be instantiated in worker threads. Not sure why my patch asserted that we're in the main thread. * dom/ContainerNode.h: (WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): (WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): 2012-10-01 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=97365 ScrollingTreeState needs to be a tree of nodes Reviewed by Simon Fraser. This patch should not change any behavior. Prior to this patch, ScrollingTreeState attempted to contain all of the state information needed for the whole scrolling tree in one object. But in the future when there are multiple nodes in the scrolling tree, a single state object will not be sufficient. ScrollingState should also be represented by a tree. This patch makes scrolling state into a tree. The old ScrollingTreeState class has become the ScrollingStateScrollingNode class since the majority of the class represents scroll state that is specific to ScrollableAreas and will not be applicable to fixed or sticky layers. Some new files and some moved files. * WebCore.xcodeproj/project.pbxproj: Everything that used to refer to the ScrollingTreeState should now refer to the ScrollingStateTree instead. Right now, all of this code continues to deal with only the root node of the tree. In the future, it will have to deal with all of the nodes. * page/scrolling/ScrollingCoordinator.cpp: (WebCore::ScrollingCoordinator::ScrollingCoordinator): (WebCore::ScrollingCoordinator::pageDestroyed): (WebCore::ScrollingCoordinator::requestScrollPositionUpdate): (WebCore::ScrollingCoordinator::setScrollLayer): (WebCore::ScrollingCoordinator::setNonFastScrollableRegion): (WebCore::ScrollingCoordinator::setScrollParameters): (WebCore::ScrollingCoordinator::setWheelEventHandlerCount): (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread): (WebCore::ScrollingCoordinator::scheduleTreeStateCommit): (WebCore::ScrollingCoordinator::scrollingStateTreeCommitterTimerFired): (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded): (WebCore::ScrollingCoordinator::commitTreeState): * page/scrolling/ScrollingCoordinator.h: (WebCore): (ScrollingCoordinator): This is a new abstract base class for the nodes in the ScrollingStateTree. * page/scrolling/ScrollingStateNode.cpp: Added. (WebCore): (WebCore::ScrollingStateNode::ScrollingStateNode): (WebCore::ScrollingStateNode::~ScrollingStateNode): (WebCore::ScrollingStateNode::appendChild): (WebCore::ScrollingStateNode::cloneChildNodes): (WebCore::ScrollingStateNode::traverseNext): * page/scrolling/ScrollingStateNode.h: Added. (WebCore): (ScrollingStateNode): (WebCore::ScrollingStateNode::scrollLayerDidChange): (WebCore::ScrollingStateNode::setScrollLayerDidChange): (WebCore::ScrollingStateNode::scrollingStateTree): (WebCore::ScrollingStateNode::parent): (WebCore::ScrollingStateNode::firstChild): (WebCore::ScrollingStateNode::nextSibling): (WebCore::ScrollingStateNode::setParent): (WebCore::ScrollingStateNode::setFirstChild): (WebCore::ScrollingStateNode::setNextSibling): * page/scrolling/mac/ScrollingCoordinatorMac.mm: * page/scrolling/mac/ScrollingStateNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeStateMac.mm. (WebCore::ScrollingStateNode::platformScrollLayer): (WebCore::ScrollingStateNode::setScrollLayer): (WebCore): Right now, the ScrollingStateScrollingNode is the only type of ScrollingStateNode. In the future there will be, for example, ScrollingStateFixedNodes that will have a different set of state information to keep track of. * page/scrolling/ScrollingStateScrollingNode.cpp: Copied from page/scrolling/ScrollingTreeState.cpp. (WebCore::ScrollingStateScrollingNode::create): (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): (WebCore): (WebCore::ScrollingStateScrollingNode::~ScrollingStateScrollingNode): (WebCore::ScrollingStateScrollingNode::cloneNode): (WebCore::ScrollingStateScrollingNode::setViewportRect): (WebCore::ScrollingStateScrollingNode::setContentsSize): (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion): (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount): (WebCore::ScrollingStateScrollingNode::setShouldUpdateScrollLayerPositionOnMainThread): (WebCore::ScrollingStateScrollingNode::setHorizontalScrollElasticity): (WebCore::ScrollingStateScrollingNode::setVerticalScrollElasticity): (WebCore::ScrollingStateScrollingNode::setHasEnabledHorizontalScrollbar): (WebCore::ScrollingStateScrollingNode::setHasEnabledVerticalScrollbar): (WebCore::ScrollingStateScrollingNode::setHorizontalScrollbarMode): (WebCore::ScrollingStateScrollingNode::setVerticalScrollbarMode): (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition): (WebCore::ScrollingStateScrollingNode::setScrollOrigin): * page/scrolling/ScrollingStateScrollingNode.h: Copied from page/scrolling/ScrollingTreeState.h. (ScrollingStateScrollingNode): * page/scrolling/ScrollingStateTree.cpp: Added. (WebCore): (WebCore::ScrollingStateTree::create): (WebCore::ScrollingStateTree::ScrollingStateTree): (WebCore::ScrollingStateTree::~ScrollingStateTree): (WebCore::ScrollingStateTree::commit): The ScrollingStateTree manages the nodes in the tree via the root node. It is responsible for cloning the tree and sending it over to the scrolling thread. * page/scrolling/ScrollingStateTree.h: Added. (WebCore): (ScrollingStateTree): (WebCore::ScrollingStateTree::rootStateNode): (WebCore::ScrollingStateTree::setHasChangedProperties): (WebCore::ScrollingStateTree::hasChangedProperties): (WebCore::ScrollingStateTree::setRootStateNode): Everything that used to refer to the ScrollingTreeState should now refer to the ScrollingStateTree instead. Right now, all of this code continues to deal with only the root node of the tree. In the future, it will have to deal with all of the nodes. * page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::commitNewTreeState): * page/scrolling/ScrollingTree.h: (WebCore): * page/scrolling/ScrollingTreeNode.cpp: (WebCore::ScrollingTreeNode::update): * page/scrolling/ScrollingTreeNode.h: (WebCore): (ScrollingTreeNode): * page/scrolling/mac/ScrollingTreeNodeMac.h: (ScrollingTreeNodeMac): * page/scrolling/mac/ScrollingTreeNodeMac.mm: (WebCore::ScrollingTreeNodeMac::update): ScrollingTreeState.cpp --> ScrollingStateScrollingNode.cpp * page/scrolling/ScrollingTreeState.cpp: Removed. ScrollingTreeState.h --> ScrollingStateScrollingNode.h * page/scrolling/ScrollingTreeState.h: Removed. ScrollingTreeStateMac.mm --> ScrollingStateNodeMac.mm * page/scrolling/mac/ScrollingTreeStateMac.mm: Removed. 2012-10-01 Dimitri Glazkov Kill transitive effects of SelectorChecker::checkOneSelector. https://bugs.webkit.org/show_bug.cgi?id=97953 Reviewed by Eric Seidel. The dynamicPseudo/hasUnknownPseudoelements by-ref parameters that are passed into checkOneSelector make the logic harder to understand and aren't needed. Refactor the code to rid of them, replacing them instead with two flags in SelectorCheckingContext. No change in behavior, covered by existing tests. * css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkSelector): Rolled pseudo-element-checking code out of checkOneSelector into here, since that is where t (WebCore::SelectorChecker::checkOneSelector): Changed to use SelectorCheckingContext rather than transitive params. * css/SelectorChecker.h: (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext): Added two new flags. (SelectorCheckingContext): Ditto. 2012-10-01 Andreas Kling 349kB below SelectorDataList::initialize() on Membuster3. Reviewed by Anders Carlsson. Make a separate pass over the CSSSelectorList to figure out the capacity needed for SelectorDataList::m_selectors. Reduces memory consumption by 322kB on Membuster3. * dom/SelectorQuery.cpp: (WebCore::SelectorDataList::initialize): 2012-10-01 Anders Carlsson Add a GraphicsLayerFactory getter to ChromeClient https://bugs.webkit.org/show_bug.cgi?id=98069 Reviewed by Andreas Kling. * page/ChromeClient.h: (WebCore::ChromeClient::graphicsLayerFactory): New function that can be overridden by ports to customize the layer type created for a page. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::graphicsLayerFactory): * rendering/RenderLayerCompositor.h: Add helper getter that's unused for now but will be called by RenderLayerBacking when creating graphics layers. 2012-10-01 Ryosuke Niwa Rename AssertNoEventDispatch to NoEventDispatchAssertion https://bugs.webkit.org/show_bug.cgi?id=98075 Reviewed by Abhishek Arya. Renamed the class. * dom/ContainerNode.cpp: (WebCore): (WebCore::ContainerNode::insertBeforeCommon): (WebCore::ContainerNode::replaceChild): (WebCore::ContainerNode::removeBetween): (WebCore::ContainerNode::removeChildren): (WebCore::ContainerNode::appendChild): (WebCore::ContainerNode::parserAppendChild): (WebCore::dispatchChildInsertionEvents): (WebCore::dispatchChildRemovalEvents): * dom/ContainerNode.h: (WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): (WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): * dom/ContainerNodeAlgorithms.h: (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree): (WebCore::ChildNodeInsertionNotifier::notify): (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree): * dom/Document.cpp: (WebCore::Document::dispatchWindowEvent): (WebCore::Document::dispatchWindowLoadEvent): * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): * dom/EventTarget.cpp: (WebCore::EventTarget::fireEventListeners): * dom/Node.cpp: (WebCore::Node::dispatchSubtreeModifiedEvent): (WebCore::Node::dispatchFocusInEvent): (WebCore::Node::dispatchFocusOutEvent): (WebCore::Node::dispatchDOMActivateEvent): * dom/WebKitNamedFlow.cpp: (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::loadInternal): 2012-10-01 Stephen Chenney Rename Font::m_fontList to avoid confusion https://bugs.webkit.org/show_bug.cgi?id=95867 Reviewed by Eric Seidel. Renames Font::m_fontList to Font::m_fontFallbackList to avoid confusion with FontFallbackList::m_fontList. No new tests as behavior is absolutely not different. * platform/graphics/Font.cpp: (WebCore::Font::Font): (WebCore::Font::operator=): (WebCore::Font::operator==): (WebCore::Font::update): * platform/graphics/Font.h: (WebCore::Font::fontList): (WebCore::Font::loadingCustomFonts): (Font): (WebCore::Font::primaryFont): (WebCore::Font::fontDataAt): (WebCore::Font::isFixedPitch): (WebCore::Font::fontSelector): * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataAndPageForCharacter): 2012-10-01 Florin Malita Refactor layer-related logic out of RenderBoxModelObject https://bugs.webkit.org/show_bug.cgi?id=86022 Reviewed by David Hyatt. This patch extracts layer-related logic into a dedicated class (RenderLayerModelObject) and refactors dependent code to make use of the new type instead of RenderBoxModelObject. This is in preparation of adding non-RenderBoxModelObject layer supprt. All methods that were using RenderBoxModelObject for layer-related functionality are updated to work with RenderLayerModelObject instead (a RenderLayer's renderer() can no longer be assumed to be a RenderBoxModelObject). No new tests: refactoring with no behavior changes. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * WebCore.exp.in: * WebCore.gypi: * WebCore.order: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * rendering/LayoutRepainter.h: (WebCore): (LayoutRepainter): * rendering/RenderBR.h: * rendering/RenderBlock.cpp: (WebCore::RenderBlock::selectionGapRectsForRepaint): (WebCore::RenderBlock::rectWithOutlineForRepaint): * rendering/RenderBlock.h: (RenderBlock): * rendering/RenderBox.cpp: (WebCore::RenderBox::styleDidChange): (WebCore::RenderBox::updateFromStyle): (WebCore::RenderBox::outlineBoundsForRepaint): (WebCore::RenderBox::mapLocalToContainer): (WebCore::RenderBox::pushMappingToContainer): (WebCore::RenderBox::clippedOverflowRectForRepaint): (WebCore::RenderBox::computeRectForRepaint): (WebCore::RenderBox::enclosingFloatPaintingLayer): * rendering/RenderBox.h: (RenderBox): * rendering/RenderBoxModelObject.cpp: (WebCore): (WebCore::RenderBoxModelObject::RenderBoxModelObject): (WebCore::RenderBoxModelObject::~RenderBoxModelObject): (WebCore::RenderBoxModelObject::willBeDestroyed): (WebCore::RenderBoxModelObject::updateFromStyle): * rendering/RenderBoxModelObject.h: (RenderBoxModelObject): * rendering/RenderGeometryMap.cpp: (WebCore::RenderGeometryMap::pushMappingsToAncestor): (WebCore::RenderGeometryMap::popMappingsToAncestor): * rendering/RenderGeometryMap.h: (RenderGeometryMap): * rendering/RenderInline.cpp: (WebCore::RenderInline::updateFromStyle): (WebCore::RenderInline::clippedOverflowRectForRepaint): (WebCore::RenderInline::rectWithOutlineForRepaint): (WebCore::RenderInline::computeRectForRepaint): (WebCore::RenderInline::mapLocalToContainer): (WebCore::RenderInline::pushMappingToContainer): * rendering/RenderInline.h: (RenderInline): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::RenderLayer): (WebCore::RenderLayer::updateLayerPositions): (WebCore::RenderLayer::computeRepaintRects): (WebCore::checkContainingBlockChainForPagination): (WebCore::RenderLayer::updateLayerPosition): (WebCore::isPositionedContainer): (WebCore::RenderLayer::hasAncestorWithFilterOutsets): (WebCore::RenderLayer::scrollTo): (WebCore::RenderLayer::repaintIncludingNonCompositingDescendants): * rendering/RenderLayer.h: (RenderLayer): (WebCore::RenderLayer::renderer): * rendering/RenderLayerBacking.h: (WebCore::RenderLayerBacking::renderer): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateBacking): (WebCore::RenderLayerCompositor::repaintOnCompositingChange): (WebCore::RenderLayerCompositor::requiresCompositingLayer): (WebCore::RenderLayerCompositor::reasonForCompositing): * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::selectionRectForRepaint): * rendering/RenderListMarker.h: (RenderListMarker): * rendering/RenderObject.cpp: (WebCore::RenderObject::addChild): (WebCore::addLayers): (WebCore::RenderObject::removeLayers): (WebCore::RenderObject::moveLayers): (WebCore::RenderObject::findNextLayer): (WebCore::RenderObject::enclosingLayer): (WebCore::RenderObject::setLayerNeedsFullRepaint): (WebCore::RenderObject::setLayerNeedsFullRepaintForPositionedMovementLayout): (WebCore::RenderObject::containerForRepaint): (WebCore::RenderObject::repaintUsingContainer): (WebCore::RenderObject::repaint): (WebCore::RenderObject::repaintRectangle): (WebCore::RenderObject::repaintAfterLayoutIfNeeded): (WebCore::RenderObject::rectWithOutlineForRepaint): (WebCore::RenderObject::clippedOverflowRectForRepaint): (WebCore::RenderObject::computeRectForRepaint): (WebCore::RenderObject::computeFloatRectForRepaint): (WebCore::RenderObject::adjustStyleDifference): (WebCore::RenderObject::mapLocalToContainer): (WebCore::RenderObject::pushMappingToContainer): (WebCore::RenderObject::shouldUseTransformFromContainer): (WebCore::RenderObject::getTransformFromContainer): (WebCore::RenderObject::localToContainerQuad): (WebCore::RenderObject::localToContainerPoint): (WebCore::RenderObject::container): (WebCore::RenderObject::willBeDestroyed): (WebCore::RenderObject::isComposited): * rendering/RenderObject.h: (WebCore): (WebCore::RenderObject::isLayerModelObject): (RenderObject): (WebCore::RenderObject::selectionRectForRepaint): (WebCore::RenderObject::outlineBoundsForRepaint): * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::selectionRectForRepaint): (WebCore::RenderReplaced::clippedOverflowRectForRepaint): * rendering/RenderReplaced.h: (RenderReplaced): * rendering/RenderSelectionInfo.h: (WebCore::RenderSelectionInfoBase::repaintContainer): (RenderSelectionInfoBase): * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::clippedOverflowRectForRepaint): (WebCore::RenderTableCell::computeRectForRepaint): * rendering/RenderTableCell.h: (RenderTableCell): * rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::clippedOverflowRectForRepaint): * rendering/RenderTableCol.h: (RenderTableCol): * rendering/RenderTableRow.cpp: (WebCore::RenderTableRow::clippedOverflowRectForRepaint): * rendering/RenderTableRow.h: (RenderTableRow): * rendering/RenderText.cpp: (WebCore::RenderText::clippedOverflowRectForRepaint): (WebCore::RenderText::selectionRectForRepaint): * rendering/RenderText.h: (RenderText): * rendering/RenderLayerModelObject.cpp: Added. (WebCore): (WebCore::RenderLayerModelObject::RenderLayerModelObject): (WebCore::RenderLayerModelObject::~RenderLayerModelObject): (WebCore::RenderLayerModelObject::destroyLayer): (WebCore::RenderLayerModelObject::ensureLayer): (WebCore::RenderLayerModelObject::hasSelfPaintingLayer): (WebCore::RenderLayerModelObject::willBeDestroyed): (WebCore::RenderLayerModelObject::styleWillChange): (WebCore::RenderLayerModelObject::styleDidChange): * rendering/RenderLayerModelObject.h: Added. (WebCore): (RenderLayerModelObject): (WebCore::RenderLayerModelObject::layer): (WebCore::RenderLayerModelObject::updateFromStyle): (WebCore::toRenderLayerModelObject): * rendering/RenderView.cpp: (WebCore::RenderView::mapLocalToContainer): (WebCore::RenderView::pushMappingToContainer): (WebCore::isComposited): (WebCore::RenderView::computeRectForRepaint): (WebCore::RenderView::absoluteRects): (WebCore::RenderView::absoluteQuads): (WebCore::RenderView::selectionBounds): (WebCore::RenderView::setSelection): (WebCore::RenderView::clearSelection): * rendering/RenderView.h: (RenderView): * rendering/RenderingAllInOne.cpp: * rendering/svg/RenderSVGBlock.cpp: (WebCore::RenderSVGBlock::updateFromStyle): * rendering/svg/RenderSVGBlock.h: (RenderSVGBlock): * rendering/svg/RenderSVGForeignObject.cpp: (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint): (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint): (WebCore::RenderSVGForeignObject::mapLocalToContainer): (WebCore::RenderSVGForeignObject::pushMappingToContainer): * rendering/svg/RenderSVGForeignObject.h: (RenderSVGForeignObject): * rendering/svg/RenderSVGGradientStop.h: * rendering/svg/RenderSVGHiddenContainer.h: * rendering/svg/RenderSVGInline.cpp: (WebCore::RenderSVGInline::clippedOverflowRectForRepaint): (WebCore::RenderSVGInline::computeFloatRectForRepaint): (WebCore::RenderSVGInline::mapLocalToContainer): (WebCore::RenderSVGInline::pushMappingToContainer): * rendering/svg/RenderSVGInline.h: (RenderSVGInline): * rendering/svg/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): (WebCore::RenderSVGModelObject::computeFloatRectForRepaint): (WebCore::RenderSVGModelObject::mapLocalToContainer): (WebCore::RenderSVGModelObject::pushMappingToContainer): (WebCore::RenderSVGModelObject::outlineBoundsForRepaint): * rendering/svg/RenderSVGModelObject.h: (RenderSVGModelObject): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint): (WebCore::RenderSVGRoot::computeFloatRectForRepaint): (WebCore::RenderSVGRoot::mapLocalToContainer): (WebCore::RenderSVGRoot::pushMappingToContainer): * rendering/svg/RenderSVGRoot.h: (RenderSVGRoot): * rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::clippedOverflowRectForRepaint): (WebCore::RenderSVGText::computeRectForRepaint): (WebCore::RenderSVGText::computeFloatRectForRepaint): (WebCore::RenderSVGText::mapLocalToContainer): (WebCore::RenderSVGText::pushMappingToContainer): * rendering/svg/RenderSVGText.h: (RenderSVGText): * rendering/svg/SVGRenderSupport.cpp: (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): (WebCore::SVGRenderSupport::computeFloatRectForRepaint): (WebCore::SVGRenderSupport::mapLocalToContainer): (WebCore::SVGRenderSupport::pushMappingToContainer): * rendering/svg/SVGRenderSupport.h: (WebCore): (SVGRenderSupport): 2012-10-01 Stephen Chenney Refactor WebCore::FontData handling to clarify pointer ownership https://bugs.webkit.org/show_bug.cgi?id=95866 Reviewed by Eric Seidel. This patch makes all FontData and derived classes ref-counted in all code paths that lead to caching or other retention of a pointer. The goal is to avert crashes and memory leaks, and to bring the code more in line with current WebKit practices. Specifically, this patch allows us to use ref pointers for all the FontData stored in FontFallbackList objects. The FontFallbackList can then own custom font data and manage its lifetime (forthcoming patch). Currently Document owns custom font data and does an end run around FontFallbackList in deleting glyph pages and custom font data, leaving FontFallbackList with invalid pointers. All FontData derived classes have been switched to use static create methods with private constructors. All caches that hold FontData now use RefPtrs. All methods that construct new font data now return PassRefPtr, with the exception of code only used to generate temporary data for text run layout. All methods that handle FontData in a call stack that passes through FontFallbackList::fontDataAt return PassRefPtr. Performance tested with both WebKit Perf-o-matic, which showed performance changes in the noise, and Chrome's page cycling tests with the acid3 benchmark set, which showed no performance difference at all. No new tests as this is refactoring code only and has no impact on functionality. * css/CSSFontFace.cpp: (WebCore::CSSFontFace::getFontData): * css/CSSFontFace.h: (CSSFontFace): * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::getFontData): * css/CSSFontFaceSource.h: (CSSFontFaceSource): * css/CSSFontSelector.cpp: (WebCore::fontDataForGenericFamily): (WebCore::CSSFontSelector::getFontData): * css/CSSFontSelector.h: * css/CSSSegmentedFontFace.cpp: (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading): (WebCore::CSSSegmentedFontFace::getFontData): * css/CSSSegmentedFontFace.h: (CSSSegmentedFontFace): * dom/Document.cpp: (WebCore::Document::registerCustomFont): * dom/Document.h: (Document): * platform/graphics/Font.h: (WebCore): * platform/graphics/FontCache.cpp: (WebCore): (WebCore::FontCache::getCachedFontData): (WebCore::FontCache::getNonRetainedLastResortFallbackFont): (WebCore::FontCache::releaseFontData): (WebCore::FontCache::purgeInactiveFontData): (WebCore::FontCache::getFontData): * platform/graphics/FontCache.h: (FontCache): * platform/graphics/FontData.h: * platform/graphics/FontFallbackList.cpp: (WebCore::FontFallbackList::releaseFontData): (WebCore::FontFallbackList::fontDataAt): (WebCore::FontFallbackList::setPlatformFont): * platform/graphics/FontFallbackList.h: (FontFallbackList): * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataAndPageForCharacter): * platform/graphics/FontSelector.h: (FontSelector): * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): * platform/graphics/SegmentedFontData.cpp: (WebCore::SegmentedFontData::fontDataForCharacter): * platform/graphics/SegmentedFontData.h: (WebCore::FontDataRange::FontDataRange): (WebCore::FontDataRange::fontData): (FontDataRange): (WebCore::SegmentedFontData::create): (SegmentedFontData): (WebCore::SegmentedFontData::SegmentedFontData): * platform/graphics/SimpleFontData.cpp: (WebCore::SimpleFontData::verticalRightOrientationFontData): (WebCore::SimpleFontData::uprightOrientationFontData): (WebCore::SimpleFontData::brokenIdeographFontData): * platform/graphics/SimpleFontData.h: (WebCore::SimpleFontData::create): (SimpleFontData): (WebCore::SimpleFontData::variantFontData): (DerivedFontData): * platform/graphics/chromium/FontCacheAndroid.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/chromium/FontCacheChromiumWin.cpp: (WebCore::FontCache::fontDataFromDescriptionAndLogFont): (GetLastResortFallbackFontProcData): (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/freetype/SimpleFontDataFreeType.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/mac/ComplexTextControllerCoreText.mm: (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): * platform/graphics/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/mac/FontComplexTextMac.cpp: (WebCore::Font::fontDataForCombiningCharacterSequence): * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformDestroy): (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/pango/FontCachePango.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/pango/SimpleFontDataPango.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/qt/FontCacheQt.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/qt/SimpleFontDataQt.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/skia/FontCacheSkia.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/skia/SimpleFontDataSkia.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::fontDataFromDescriptionAndLogFont): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/wince/FontCacheWinCE.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/wince/SimpleFontDataWinCE.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): * platform/graphics/wx/FontCacheWx.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getSimilarFontPlatformData): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/wx/SimpleFontDataWx.cpp: (WebCore::SimpleFontData::createScaledFontData): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::emphasisMarkFontData): 2012-10-01 Ryosuke Niwa Turn forbidEventDispatch and allowEventDispatch into a RAII object https://bugs.webkit.org/show_bug.cgi?id=96717 Reviewed by Abhishek Arya. Replaced forbidEventDispatch and allowEventDispatch by AssertNoEventDispatch. * dom/ContainerNode.cpp: (WebCore): (WebCore::ContainerNode::insertBeforeCommon): (WebCore::ContainerNode::replaceChild): (WebCore::ContainerNode::removeBetween): (WebCore::ContainerNode::removeChildren): (WebCore::ContainerNode::appendChild): (WebCore::ContainerNode::parserAddChild): (WebCore::dispatchChildInsertionEvents): (WebCore::dispatchChildRemovalEvents): * dom/ContainerNode.h: (AssertNoEventDispatch): (WebCore::AssertNoEventDispatch::AssertNoEventDispatch): (WebCore::AssertNoEventDispatch::~AssertNoEventDispatch): (WebCore::AssertNoEventDispatch::isEventDispatchForbidden): (WebCore): * dom/ContainerNodeAlgorithms.h: (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree): (WebCore::ChildNodeInsertionNotifier::notify): (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromTree): * dom/Document.cpp: (WebCore::Document::dispatchWindowEvent): (WebCore::Document::dispatchWindowLoadEvent): * dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): * dom/EventTarget.cpp: (WebCore): (WebCore::EventTarget::fireEventListeners): * dom/EventTarget.h: (WebCore): * dom/Node.cpp: (WebCore::Node::dispatchSubtreeModifiedEvent): (WebCore::Node::dispatchFocusInEvent): (WebCore::Node::dispatchFocusOutEvent): (WebCore::Node::dispatchDOMActivateEvent): * dom/WebKitNamedFlow.cpp: (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::loadInternal): 2012-10-01 Anders Carlsson Would like a way to customize the type of GraphicsLayers created on a per page basis https://bugs.webkit.org/show_bug.cgi?id=98051 Reviewed by Simon Fraser. Add a GraphicsLayerFactory abstract class and a new GraphicsLayer::create overload that takes a factory object. Eventually, all calls to the old GraphicsLayer::create will be replaced with the new version that takes an optional factory. * WebCore.xcodeproj/project.pbxproj: * platform/graphics/GraphicsLayer.h: (WebCore): (GraphicsLayer): * platform/graphics/GraphicsLayerFactory.h: Added. (WebCore): (GraphicsLayerFactory): (WebCore::GraphicsLayerFactory::~GraphicsLayerFactory): * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayer::create): (WebCore): 2012-10-01 Adam Klein Consolidate more MutationObserverRegistration logic in Node https://bugs.webkit.org/show_bug.cgi?id=98058 Reviewed by Ryosuke Niwa. One remaining oddity of Node's MutationObserver-related interface was that registerMutationObserver returned the resulting MutationObserverRegistration object. Instead, Node now internally handles resetting the observation if the registration already exists, and updating the Document's list of mutation observer types. No change in behavior, refactoring only. * dom/MutationObserver.cpp: (WebCore::MutationObserver::observe): Simplified to just call Node::registerMutationObserver; nothing else is needed. * dom/MutationObserverRegistration.cpp: (WebCore::MutationObserverRegistration::create): Take options and attributeFilter, avoiding an unnecessary call to resetObservation(). (WebCore::MutationObserverRegistration::MutationObserverRegistration): ditto * dom/MutationObserverRegistration.h: (MutationObserverRegistration): * dom/Node.cpp: (WebCore::Node::registerMutationObserver): Handle observation resetting if that observer's already registered, and update the list of active MutationObserver types in the Document. * dom/Node.h: (Node): 2012-10-01 Glenn Adams YYDEBUG doesn't print token values https://bugs.webkit.org/show_bug.cgi?id=97896 Reviewed by Simon Fraser. Define YYPRINT macro to print token values when YYDEBUG is set. No new tests. For CSS lexer/parser debug usage only. * css/CSSGrammar.y: Define YYPRINT macro to output IDENT and STRING typed tokens. Others can be added in the future. 2012-10-01 Jochen Eisinger [chromium] ASSERT that the embedder has set a default locale https://bugs.webkit.org/show_bug.cgi?id=98001 Reviewed by Adam Barth. The callsites assume that the default language is always defined, e.g. Document::getCachedLocalizer. Add an ASSERT() statement so an embedder doesn't have to guess what they did wrong. * platform/chromium/LanguageChromium.cpp: (WebCore::platformLanguage): 2012-10-01 Christophe Dumez Fix compilation warnings https://bugs.webkit.org/show_bug.cgi?id=98020 Reviewed by Gyuyoung Kim. Fix compilation warnings in PluginView code. No new tests, no behavior change. * plugins/PluginView.cpp: (WebCore::PluginView::newStream): (WebCore::PluginView::write): (WebCore::PluginView::getAuthenticationInfo): * plugins/efl/PluginViewEfl.cpp: (WebCore::PluginView::setNPWindowRect): (WebCore::PluginView::invalidateRegion): 2012-10-01 Arpita Bahuguna RenderBlock incorrectly calculates pref width when a replaced object follows a RenderInline with width https://bugs.webkit.org/show_bug.cgi?id=84624 Reviewed by Levi Weintraub. For the specific scenario, wherein an inline replaced element (image) follows an inline flow object within a render block, we should allow for that block to grow to accomodate the replaced element so as to avoid it's overflow. This quirk is handled well by other browsers. Test: fast/block/block-with-inline-replaced-child.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): We should not cause our line to break for the scenario wherein an inline replaced element follows an inline flow object. For handling the same have introduced a flag: isPrevChildInlineFlow which shall be set for an inline flow element. Based on this, while handling the inline replaced elements, we either terminate the line (for minWidth calculation) or not depending upon this flag. 2012-10-01 Yury Semikhatsky Unreviewed. Chromium build fix. * bindings/v8/V8DOMMap.h: included Node.h as reportMemoryUsage now uses Node definition. 2012-10-01 Yury Semikhatsky Web Inspector: provide memory instrumentation for HashMap https://bugs.webkit.org/show_bug.cgi?id=98005 Reviewed by Pavel Feldman. Updated all call sites of MemoryInstrumentation::addHashMap to use generic method of reporting memory footprint instead. * bindings/v8/ScopedDOMDataStore.cpp: * bindings/v8/V8Binding.cpp: (WebCore::StringCache::reportMemoryUsage): * bindings/v8/V8DOMMap.h: * bindings/v8/V8PerIsolateData.cpp: (WebCore::V8PerIsolateData::reportMemoryUsage): * css/CSSImageGeneratorValue.cpp: (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage): * css/PropertySetCSSStyleDeclaration.cpp: (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage): * css/StyleResolver.cpp: (WebCore::StyleResolver::collectMatchingRulesForList): * css/StyleSheetContents.cpp: (WebCore::StyleSheetContents::reportMemoryUsage): * dom/Document.cpp: (WebCore::Document::reportMemoryUsage): * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::reportMemoryUsage): * loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::reportMemoryUsage): * loader/cache/MemoryCache.cpp: (WebCore::MemoryCache::reportMemoryUsage): * platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::reportMemoryUsage): * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::reportMemoryUsage): * rendering/style/StyleRareNonInheritedData.cpp: 2012-10-01 Yury Semikhatsky Put implementation details of StyleBuilder.cpp into anonymous namespace https://bugs.webkit.org/show_bug.cgi?id=98028 Reviewed by Pavel Feldman. All types that are declared and used only inside StyleBuilder were moved into anonymous namespace to avoid name conflicts with the rest of WebCore. * css/StyleBuilder.cpp: (WebCore::StyleBuilder::StyleBuilder): renamed BorderImageType::Image into BorderImageType::BorderImage as otherwise there is an ambiguity at placess where setPropertyHandler is called. 2012-10-01 Andrei Bucur [CSS Regions] Remove the deprecated API Document.webkitGetFlowByName https://bugs.webkit.org/show_bug.cgi?id=97657 Reviewed by Andreas Kling. The Document.getFlowByName() API has been deprecated in favor of the NamedFlowCollection.namedItem(DOMString). Link to spec: http://www.w3.org/TR/css3-regions/#the-namedflow-interface Tests: The old tests have been adapted to use the new API. * dom/Document.cpp: (WebCore): * dom/Document.h: (Document): * dom/Document.idl: 2012-09-27 Jocelyn Turcotte Make sure that the history position is applied correctly when using delegatesScrolling https://bugs.webkit.org/show_bug.cgi?id=97778 Reviewed by Kenneth Rohde Christiansen. The position is applied asynchronously and the UI process is the one holding the current state. For this reason we can't rely in WebCore on ScrollView::scrollPosition holding the current position in that case. * page/Page.cpp: (WebCore::Page::setPageScaleFactor): 2012-09-27 Jocelyn Turcotte [Qt] Decide when to apply a scrolled position to the viewport based on the rect covered by the tiles https://bugs.webkit.org/show_bug.cgi?id=97777 Reviewed by Kenneth Rohde Christiansen. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::createTiles): * platform/graphics/TiledBackingStore.h: (WebCore::TiledBackingStore::coverRect): (WebCore::TiledBackingStore::setCoverRect): (TiledBackingStore): 2012-10-01 Carlos Garcia Campos Unreviewed. Fix make distcheck. * GNUmakefile.list.am: ClipPathOperation.h was moved. 2012-10-01 Arko Saha Microdata: names.item() must return null for out of range indexes. https://bugs.webkit.org/show_bug.cgi?id=97898 Reviewed by Kentaro Hara. DOMStringList.item() must return null for an invalid index. Spec: http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMStringList Removed [IsIndex] extended IDL attribute from item() method's index parameter in DOMStringList interface. Firefox and Opera's behavior is consistent with the spec. Both returns null for invalid index. Test: fast/dom/MicroData/names-item-out-of-range-index.html * dom/DOMStringList.idl: 2012-10-01 Yoshifumi Inoue [Forms] Multiple fields week input UI https://bugs.webkit.org/show_bug.cgi?id=97877 Reviewed by Kent Tamura. This patch introduces multiple fields "week" input UI in DRT. We'll enable this feature once we add tests. Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_WEEK and ENABLE_INPUT_MULTIPLE_FIELDS_UI. No new tests. To reduce size of this patch, other patches add tests for multiple fields week input UI. Note: Actual outputs of two tests - fast/forms/week/week-input-visible-string.html - fast/forms/week/week-stepup-stepdown-from-renderer.html are different. * css/thml.css: (input::-webkit-datetime-edit-week-field): Added for field appearance. (input::-webkit-datetime-edit-week-field:focus): Added to remove focus ring. * html/WeekInputType.cpp: (WebCore::WeekInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification. (WebCore::WeekInputType::setupLayoutParameters): Added to set layout of multiple fields. * html/WeekInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseWeekInputType typedef. (WebCore::WeekInputType::WeekInputType): Changed base class name to BaseWeekInputType. (WeekInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters(). * html/shadow/DateTimeEditElement.cpp: (WebCore::DateTimeEditBuilder::visitField): Changed to support week field. 2012-10-01 Pavel Feldman Web Inspector: do not use InspectorInstrumentation::hasFrontends() check when collecting stacks https://bugs.webkit.org/show_bug.cgi?id=96730 Reviewed by Vsevolod Vlasov. - Introduced InspectorInstrumentation::console|timeline|runtime|canvasAgentEnabled - Using it all over the place instead of the hasFrontend (the latter is now only used once to guard hot path) - Introduced explicit "enabled" state of the console and runtime agents * bindings/js/JSHTMLCanvasElementCustom.cpp: (WebCore::JSHTMLCanvasElement::getContext): * bindings/js/JSMainThreadExecState.h: (WebCore::JSMainThreadExecState::instrumentFunctionCall): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): * bindings/js/ScriptCallStackFactory.cpp: (WebCore::createScriptCallStackForConsole): * bindings/js/ScriptCallStackFactory.h: (WebCore): * bindings/scripts/CodeGeneratorJS.pm: (GenerateCallWith): * bindings/scripts/CodeGeneratorV8.pm: (GenerateCallWith): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute): (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute): (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack): * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter): (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter): (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback): * bindings/v8/ScriptCallStackFactory.cpp: (WebCore::createScriptCallStackForConsole): * bindings/v8/ScriptCallStackFactory.h: (WebCore): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::callFunctionWithInstrumentation): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin): * bindings/v8/V8WorkerContextEventListener.cpp: (WebCore::V8WorkerContextEventListener::callListenerFunction): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: (WebCore::V8HTMLCanvasElement::getContextCallback): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::SetTimeoutOrInterval): * inspector/Inspector.json: * inspector/InspectorConsoleAgent.cpp: (WebCore): (WebCore::InspectorConsoleAgent::InspectorConsoleAgent): (WebCore::InspectorConsoleAgent::enable): (WebCore::InspectorConsoleAgent::disable): (WebCore::InspectorConsoleAgent::clearMessages): (WebCore::InspectorConsoleAgent::clearFrontend): (WebCore::InspectorConsoleAgent::addConsoleMessage): * inspector/InspectorConsoleAgent.h: (WebCore::InspectorConsoleAgent::enabled): (InspectorConsoleAgent): * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): * inspector/InspectorInstrumentation.cpp: (WebCore): (WebCore::InspectorInstrumentation::canvasAgentEnabled): (WebCore::InspectorInstrumentation::consoleAgentEnabled): (WebCore::InspectorInstrumentation::runtimeAgentEnabled): (WebCore::InspectorInstrumentation::timelineAgentEnabled): * inspector/InspectorInstrumentation.h: (InspectorInstrumentation): (WebCore::InspectorInstrumentation::canvasAgentEnabled): (WebCore::InspectorInstrumentation::consoleAgentEnabled): (WebCore::InspectorInstrumentation::runtimeAgentEnabled): (WebCore::InspectorInstrumentation::timelineAgentEnabled): * inspector/InspectorRuntimeAgent.cpp: (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent): * inspector/InspectorRuntimeAgent.h: (WebCore::InspectorRuntimeAgent::enabled): (WebCore::InspectorRuntimeAgent::enable): (WebCore::InspectorRuntimeAgent::disable): (InspectorRuntimeAgent): * inspector/PageRuntimeAgent.cpp: (PageRuntimeAgentState): (WebCore::PageRuntimeAgent::clearFrontend): (WebCore::PageRuntimeAgent::restore): (WebCore): (WebCore::PageRuntimeAgent::enable): (WebCore::PageRuntimeAgent::disable): (WebCore::PageRuntimeAgent::didClearWindowObject): (WebCore::PageRuntimeAgent::didCreateIsolatedContext): (WebCore::PageRuntimeAgent::reportExecutionContextCreation): * inspector/PageRuntimeAgent.h: (PageRuntimeAgent): * inspector/WorkerRuntimeAgent.cpp: * inspector/WorkerRuntimeAgent.h: * inspector/front-end/RuntimeModel.js: (WebInspector.RuntimeModel.prototype._didLoadCachedResources): * page/DOMWindow.cpp: (WebCore::DOMWindow::postMessage): 2012-10-01 Kenichi Ishibashi [WebSocket] Setting wrong value to binaryType should not raise exception https://bugs.webkit.org/show_bug.cgi?id=97999 Reviewed by Yuta Kitamura. Don't raise exception when binaryType is the wrong value. Instead, show an error message to console. No new tests. Updated existing test. * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::setBinaryType): See the description. * Modules/websockets/WebSocket.h: (WebSocket): Removed ExceptionCode argument of setBinaryType(). * Modules/websockets/WebSocket.idl: Removed "setter raises(DOMException)" and "[TreatReturnedNullStringAs=Undefined]". They are no longer needed. 2012-10-01 Yoshifumi Inoue [Forms] Adding DateTimeWeekFieldElement for multiple fields "week" input UI https://bugs.webkit.org/show_bug.cgi?id=97992 Reviewed by Kent Tamura. This patch introduces DateTimeWeekFieldElement class for implementing multiple fields "week" input UI. No new tests. This patch doesn't change behavior. * html/shadow/DateTimeFieldElements.cpp: (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement): Added. (WebCore::DateTimeWeekFieldElement::create): Added. (WebCore::DateTimeWeekFieldElement::populateDateTimeFieldsState): Added. (WebCore::DateTimeWeekFieldElement::setValueAsDate): Added. (WebCore::DateTimeWeekFieldElement::setValueAsDateTimeFieldsState): Added. * html/shadow/DateTimeFieldElements.h: (DateTimeWeekFieldElement): Added. * platform/DateComponents.h: (WebCore::DateComponents): Added declarations of static const member variables, DateComponents::maximumWeekNumber and minimumWeekNumber. * platform/DateComponents.cpp: Added definitions of DateComponents::maximumWeekNumber and minimumWeekNumber. (WebCore::DateComponents::maxWeekNumberInYear): Changed to use maximumWeekNumber. (WebCore::DateComponents::parseWeek): Changed to use minimumWeekNumber. 2012-09-30 Vsevolod Vlasov Web Inspector: Separate CSSStyleModelResourceBinding into resource and content binding. https://bugs.webkit.org/show_bug.cgi?id=97994 Reviewed by Pavel Feldman. Extracted StyleContentBinding from CSSStyleModelResourceBinding. Now CSSStyleModelResourceBinding is responsible for mapping between stylesheets and resources. StyleContentBinding is now responsible for synchronization between stylesheet content and uiSourceCode content. * inspector/front-end/CSSStyleModel.js: (WebInspector.CSSStyleModelResourceBinding): (WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource): (WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId): * inspector/front-end/StyleSource.js: (WebInspector.StyleSource.prototype._commitIncrementalEdit): * inspector/front-end/StylesSourceMapping.js: (WebInspector.StyleContentBinding): (WebInspector.StyleContentBinding.prototype.setStyleContent.callback): (WebInspector.StyleContentBinding.prototype.setStyleContent): (WebInspector.StyleContentBinding.prototype._innerSetContent.callback): (WebInspector.StyleContentBinding.prototype._innerSetContent): (WebInspector.StyleContentBinding.prototype._styleSheetChanged.callback): (WebInspector.StyleContentBinding.prototype._styleSheetChanged): (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged): * inspector/front-end/inspector.js: 2012-10-01 Alexander Pavlov Web Inspector: [Device Metrics] Remove the gutter overlay moving its functionality into the InspectorOverlay https://bugs.webkit.org/show_bug.cgi?id=97799 Reviewed by Pavel Feldman. Re-applying r129746 with test flakiness fixed. In order to reduce the amount of port-specific code, the gutter overlay painted in the device metrics emulation mode has been replaced by the respective functionality in the HTML-based InspectorOverlay in WebCore. The InspectorOverlay now covers the entire WebView rather than the FrameView only. * inspector/InspectorController.cpp: (WebCore::InspectorController::webViewResized): (WebCore): * inspector/InspectorController.h: (WebCore): (InspectorController): * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::InspectorOverlay): (WebCore::InspectorOverlay::paint): (WebCore::InspectorOverlay::resize): (WebCore): (WebCore::InspectorOverlay::update): (WebCore::InspectorOverlay::drawGutter): (WebCore::InspectorOverlay::reset): * inspector/InspectorOverlay.h: (InspectorOverlay): * inspector/InspectorOverlayPage.html: Introduce the gutter painting functionality previously found in the Chromium's DeviceMetricsSupport class, which used to implement WebPageOverlay. 2012-10-01 Carlos Garcia Campos Unreviewed. Fix GTK+ build after r129908. * GNUmakefile.list.am: Add new files to compilation. 2012-10-01 Philip Rogers Remove overzealous assert in SVGElement::localAttributeToPropertyMap https://bugs.webkit.org/show_bug.cgi?id=97291 Reviewed by Nikolas Zimmermann. This patch removes an assert where we did not expect SVGElement::localAttributeToPropertyMap where we did not to be called. This function turns out to be useful and this patch removes that assert. If we encounter a non-SVG tag during SVG parsing (e.g. ) we return a vanilla SVGElement instance from SVGElementFactory::createSVGElement. Previously, trying to animate this would ASSERT because it was not possible to determine the animated type. After this patch, an empty localAttributeToPropertyMap is used so that the animated type returned from SVGAnimateElement::determineAnimatedPropertyType is AnimatedUnknown. This patch simply removes an ASSERT so no test is provided. * svg/SVGElement.cpp: (WebCore::SVGElement::localAttributeToPropertyMap): 2012-10-01 Sheriff Bot Unreviewed, rolling out r130004. http://trac.webkit.org/changeset/130004 https://bugs.webkit.org/show_bug.cgi?id=97996 Test shadow-dom-modify-chardata.html is failing (Requested by keishi on #webkit). * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent): 2012-10-01 Keishi Hattori REGRESSION(r127727): Calendar picker is ignoring step https://bugs.webkit.org/show_bug.cgi?id=97893 Reviewed by Kent Tamura. There were two mistakes: - An if-statement to check step attribute validity was wrong, and - DateTiemChooserParameters.step was milleseconds when it should be number of days. This will be changing the DateTimeChooserParameters.step to milliseconds so we can handle steps for other input types in the future. Test: fast/forms/date/calendar-picker-appearance-with-step.html * Resources/pagepopups/calendarPicker.js: (CalendarPicker): * html/shadow/CalendarPickerElement.cpp: (WebCore::CalendarPickerElement::openPopup): If statement was wrong. 2012-09-30 Glenn Adams Sign in front of keyframe selector causes stylesheet parsing to abort https://bugs.webkit.org/show_bug.cgi?id=96844 Reviewed by Simon Fraser. Allow optional unary operator (+|-) on PERCENTAGE in keyframe selector. Test: animations/keyframe-selector-negative-percentage.html * css/CSSGrammar.y: Add maybe_unary_operator to PERCENTAGE on keyframe selector. Negative keyframe selector value is already ignored in StyleKeyframe::parseKeyString. 2012-09-30 MORITA Hajime https://bugs.webkit.org/show_bug.cgi?id=97988 Crash on FrameTree::scopedChildCount() Reviewed by Kent Tamura. The series of crash reports says that there are some null pointer access in scopedChildCount(). This change added a null guard against Frame::document(), that can return null. No new tests. This is tied to some specific timing and is hard to reproduce. * page/FrameTree.cpp: (WebCore::FrameTree::scopedChildCount): (WebCore::FrameTree::scopedChild): (WebCore): 2012-09-30 Yoshifumi Inoue Make multiple fields date/time input UI related files to available all ports https://bugs.webkit.org/show_bug.cgi?id=97989 Reviewed by Kent Tamura. This patch adds multiple fields date/time input UI related files for ports not using WebCore.gyp and simplifies include directive in MonthInputType.h and TimeInputType.h. Added files are: - html/BaseMultipleFieldsDateAndTimeInputType.{cpp,h} - html/shadow/DateTimeEditElement.{cpp,h} - html/shadow/DateTimeFieldElement.{cpp,h} - html/shadow/DateTimeFieldElements.{cpp,h} - html/shadow/DateTimeNumericFieldElement.{cpp,h} - html/shadow/DateTimeSymbolicFieldElement.{cpp,h} No new tests. This patch doesn't change behavior. * CMakeLists.txt: Changed to add multiple fields date/time input UI related files. * GNUmakefile.list.am: ditto * Target.pri: ditto * WebCore.vcproj/WebCore.vcproj: ditto * WebCore.xcodeproj/project.pbxproj: ditto * html/MonthInputType.h: Changed to simplify include directive for base class. * html/TimeInputType.h: ditto 2012-09-30 Keishi Hattori Web Inspector: Modifications in a shadow tree don't update the Elements panel. https://bugs.webkit.org/show_bug.cgi?id=97056 Reviewed by Pavel Feldman. Send characterDataModified event for shadow dom nodes too so they update the elements panel. Test: inspector/elements/shadow-dom-modify-chardata.html * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent): 2012-09-30 Andreas Kling Split EventTargetData out of NodeRareData to reduce memory use. Reviewed by Anders Carlsson. Move EventTargetData to its own Node-flag/hashmap instead of piggybacking on NodeRareData. This reduces memory consumption by 1.06MB on Membuster3. Note that NodeRareData shrinks by one pointer as well. * dom/Node.cpp: (WebCore::Node::~Node): (WebCore::eventTargetDataMap): (WebCore::Node::eventTargetData): (WebCore::Node::ensureEventTargetData): (WebCore::Node::clearEventTargetData): (WebCore::Node::handleLocalEvents): * dom/Node.h: (WebCore::Node::hasEventTargetData): (WebCore::Node::setHasEventTargetData): * dom/NodeRareData.h: (NodeRareData): 2012-09-30 Andreas Kling 444kB below CSSParser::parseDeprecatedGradient() on Membuster3. Reviewed by Anders Carlsson. Slap an inline capacity of 2 on the Vector in CSSGradientValue. This covers the majority of gradient values, and reduces memory consumption by ~250kB on Membuster3. * css/CSSGradientValue.h: (WebCore::CSSGradientValue::stopCount): * css/CSSParser.cpp: (WebCore::CSSParser::parseLinearGradient): (WebCore::CSSParser::parseGradientColorStops): 2012-09-30 Mike West Remove FIXME comments refering to non-existent code in JSDOMBinding.cpp https://bugs.webkit.org/show_bug.cgi?id=97977 Reviewed by Adam Barth. I did a quick grep through the code to determine where these FIXME comments were suggesting that code should be merged. So far as I can tell, 'immediatelyReportUnsafeAccessTo' only exists in these comments. Just cleanup, no functional change. * bindings/js/JSDOMBinding.cpp: (WebCore::shouldAllowAccessToFrame): (WebCore::shouldAllowAccessToDOMWindow): 2012-09-30 Martin Robinson [TextureMapper] [WebKit2] Crash in WebCore::BitmapTextureGL::updateContents https://bugs.webkit.org/show_bug.cgi?id=97394 Reviewed by Noam Rosenthal. When a TextureMapper is destroyed, layers can still contain references to textures obtained from that TextureMapper's texture pool. Trying to access an unreffed TextureMapper in the BitmapTexture's destructor causes a crash. Instead of storing a raw pointer to a TextureMapper, we can simply store a reference to the underlying GraphicsContext3D. All TextureMapper implementations use the current GL context at this moment, so one GC3D referencing the current context is the same as any other. * platform/graphics/texmap/TextureMapper.h: Remove the clearTexturePool method. It's no longer used. (WebCore::BitmapTexture::applyFilters): Add a TextureMapper* argument. * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::BitmapTextureGL::BitmapTextureGL): Keep a reference to the GraphicsContext3D instead of the TextureMapper. (WebCore::BitmapTextureGL::didReset): Use the GC3D reference. (WebCore::BitmapTextureGL::updateContents): Ditto. (WebCore::BitmapTextureGL::applyFilters): Accept the TextureMapper as an argument. (WebCore::BitmapTextureGL::initializeStencil): Use the GC3D reference. (WebCore::BitmapTextureGL::clearIfNeeded): Ditto. (WebCore::BitmapTextureGL::createFboIfNeeded): Ditto. (WebCore::BitmapTextureGL::bind): Accept the TextureMapper as an argument. (WebCore::BitmapTextureGL::~BitmapTextureGL): Use the GC3D reference. (WebCore::TextureMapperGL::~TextureMapperGL): Remove the call to clearTexturePool as it's no longer necessary. (WebCore::TextureMapperGL::bindSurface): Ditto. * platform/graphics/texmap/TextureMapperGL.h: (BitmapTextureGL): Keep a GC3D reference instead of a TextureMapper pointer. * platform/graphics/texmap/TextureMapperImageBuffer.cpp: (WebCore::BitmapTextureImageBuffer::applyFilters): Add a TextureMapper argument. * platform/graphics/texmap/TextureMapperImageBuffer.h: (BitmapTextureImageBuffer): * platform/graphics/texmap/TextureMapperLayer.cpp: (WebCore::applyFilters): Ditto. 2012-09-29 Dongwoo Joshua Im AsyncFileSystem::openFileSystem should have FileSystemType as a parameter. https://bugs.webkit.org/show_bug.cgi?id=97963 Reviewed by Gyuyoung Kim. FileSystemType is an important information to maintain the file system, and AsyncFileSystem::openFileSystem need to get the type as a parameter. And, there are "FIXME" comments about that in WebCore source codes. No new functionality, no new tests. * Modules/filesystem/LocalFileSystem.cpp: Add FileSystemType as a parameter of AsyncFileSystem::openFileSystem. (WebCore::openFileSystem): (WebCore::LocalFileSystem::readFileSystem): (WebCore::LocalFileSystem::requestFileSystem): * platform/AsyncFileSystem.cpp: ditto. (WebCore::AsyncFileSystem::openFileSystem): * platform/AsyncFileSystem.h: ditto. (AsyncFileSystem): * platform/blackberry/AsyncFileSystemBlackBerry.cpp: ditto. (WebCore::AsyncFileSystem::openFileSystem): * platform/gtk/AsyncFileSystemGtk.cpp: ditto. (WebCore::AsyncFileSystem::openFileSystem): 2012-09-29 Sheriff Bot Unreviewed, rolling out r129965. http://trac.webkit.org/changeset/129965 https://bugs.webkit.org/show_bug.cgi?id=97970 Causes ASSERTs in workers (Requested by abarth on #webkit). * bindings/v8/DOMData.cpp: (WebCore::DOMData::getCurrentStore): * bindings/v8/ScopedPersistent.h: * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::resetIsolatedWorlds): (WebCore::ScriptController::evaluateInIsolatedWorld): (WebCore::ScriptController::currentWorldContext): * bindings/v8/V8Binding.cpp: (WebCore::perContextDataForCurrentWorld): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::setIsolatedWorldField): (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext): (WebCore::V8DOMWindowShell::destroyIsolatedShell): (WebCore): (WebCore::isolatedContextWeakCallback): (WebCore::V8DOMWindowShell::disposeContext): (WebCore::V8DOMWindowShell::initializeIfNeeded): (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin): * bindings/v8/V8DOMWindowShell.h: (V8DOMWindowShell): (WebCore::V8DOMWindowShell::getEntered): * bindings/v8/V8DOMWrapper.h: (WebCore::V8DOMWrapper::getCachedWrapper): * bindings/v8/WorldContextHandle.cpp: (WebCore::WorldContextHandle::WorldContextHandle): * bindings/v8/custom/V8DocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8SVGDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: (WebCore::V8XMLHttpRequest::constructorCallback): 2012-09-29 Emil A Eklund Unreviewed build fix for chromium/clank. * platform/FractionalLayoutUnit.h: (WebCore::FractionalLayoutUnit::FractionalLayoutUnit): 2012-09-29 Byungwoo Lee Fix build warning : -Wparentheses. https://bugs.webkit.org/show_bug.cgi?id=97961 Reviewed by Kentaro Hara. Explicit braces are added around the && statement to fix -Wparentheses warning. * mathml/MathMLElement.h: (WebCore::toMathMLElement): 2012-09-29 Kenneth Rohde Christiansen Scroll offset of flex items lost during relayout https://bugs.webkit.org/show_bug.cgi?id=97706 Reviewed by Tony Chang. Test: fast/flexbox/overflow-keep-scrollpos.html Flex box does a second pass layout of the flex children. We layout the child without scrollbars (to get the size used for flexing), then we relayout the child at its final size. We must not apply the scroll position during the first pass, as it will be clamped to 0 (no scrolling possible). * rendering/RenderBlock.h: (RenderBlock): Make updateScrollInfoAfterLayout public * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock): Delay applying scroll info until we clamp the size of the child and get scrollbars back again. For this to work we use RenderBlock::updateScrollInfoAfterLayout instead of the non-guarded RenderLayer::updateScrollInfoAfterLayout. * rendering/RenderBlock.cpp: (WebCore::RenderBlock::updateScrollInfoAfterLayout): Add workaround for now to keep passing css3/flexbox/child-overflow.html Basically do not postpone applying scroll changes for RenderBlocks with opposite writing mode, as they need to have their content overflow in the right direction. 2012-09-29 Dimitri Glazkov Slightly improve clarity of the patch in bug 78595. https://bugs.webkit.org/show_bug.cgi?id=97944 Reviewed by Andreas Kling. Since all types of relations, except SubSelector are effectively ignoring the calculated value of pseudoId, make the code reflect that a bit more clearly. No change in behavior, covered by test in bug 78595. * css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkSelector): Added ignoreDynamicPseudo value that's given to all callsites that should ignore the result. 2012-09-29 Kent Tamura Remove LocalizedDate*.* https://bugs.webkit.org/show_bug.cgi?id=97957 Reviewed by Kentaro Hara. The functions declared in LocalizedDate.h are replaced with member functions of Localizer. LocalizedDate.h and its implementations are not needed any more. No new tests. This should not change any behavior. * GNUmakefile.list.am: Remove LocalizedDate.h and LocalizedDateNode.cpp * WebCore.vcproj/WebCore.vcproj: ditto. * WebCore.xcodeproj/project.pbxproj: ditto. * CMakeLists.txt: Remove LocalizedDateNone.cpp * Target.pri: ditto. * WebCore.gyp/WebCore.gyp: Remove LocalizedDate*.*. Update a comment. * WebCore.gypi: Remove LocalizedDate*.*. * html/BaseDateAndTimeInputType.cpp: Use Localizer functions. (WebCore::BaseDateAndTimeInputType::localizeValue): (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): * html/DateInputType.cpp: ditto. (WebCore::DateInputType::fixedPlaceholder): * platform/text/Localizer.h: (Localizer): Move comments from LocalziedDate.h. * platform/text/mac/LocaleMac.mm: Remove unnecessary include of LocalizedDate.h. * platform/text/LocalizedDate.h: Removed. * platform/text/LocalizedDateICU.cpp: Removed. * platform/text/LocalizedDateNone.cpp: Removed. * platform/text/LocalizedDateWin.cpp: Removed. * platform/text/mac/LocalizedDateMac.cpp: Removed. 2012-09-28 Adam Barth [V8] The concept of forceNewObject is unneeded (dom-traverse gets 3% faster) https://bugs.webkit.org/show_bug.cgi?id=97943 Reviewed by Kentaro Hara. We don't need the concept of forceNewObject. It doesn't do anything useful and it makes the bindings slower. * bindings/scripts/CodeGeneratorV8.pm: (GenerateHeader): (GenerateToV8Converters): (NativeToJSValue): * bindings/v8/custom/V8DocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8HTMLElementCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8NodeCustom.cpp: (WebCore::toV8Slow): * bindings/v8/custom/V8SVGDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8SVGElementCustom.cpp: (WebCore::toV8): * dom/make_names.pl: (printWrapperFactoryCppFile): (printWrapperFactoryHeaderFile): 2012-09-28 Elliott Sprehn Allow any kind of v8::Handle in invokeCallback instead of requiring a v8::Persistent. https://bugs.webkit.org/show_bug.cgi?id=97956 Reviewed by Adam Barth. Use v8::Handle instead of v8::Persistent for the callback argument on invokeCallback. There doesn't seem to be any reason for requiring a Persistent, and it makes it harder to use this API. This is factored out of http://wkbug.com/93661 No new tests, this is functionally equivalent. * bindings/v8/V8Callback.cpp: (WebCore::invokeCallback): * bindings/v8/V8Callback.h: (WebCore): 2012-09-28 Anders Carlsson Remove support for method overloading from bridge code https://bugs.webkit.org/show_bug.cgi?id=97959 Reviewed by Dan Bernstein. The method overloading handling was only in place for the (now removed) Java bridge. Replace MethodList everywhere with a single Method pointer. * GNUmakefile.am: * GNUmakefile.list.am: * WebCore.exp.in: * bridge/c/c_class.cpp: (JSC::Bindings::CClass::methodNamed): * bridge/c/c_class.h: (CClass): * bridge/c/c_instance.cpp: (JSC::Bindings::CRuntimeMethod::create): (JSC::Bindings::CRuntimeMethod::CRuntimeMethod): (JSC::Bindings::CInstance::getMethod): (JSC::Bindings::CInstance::invokeMethod): * bridge/jsc/BridgeJSC.h: (Bindings): (Class): * bridge/objc/objc_class.h: (ObjcClass): * bridge/objc/objc_class.mm: (JSC::Bindings::ObjcClass::methodNamed): * bridge/objc/objc_instance.mm: (ObjCRuntimeMethod::create): (ObjCRuntimeMethod::ObjCRuntimeMethod): (ObjcInstance::invokeMethod): * bridge/qt/qt_class.cpp: (JSC::Bindings::QtClass::methodNamed): * bridge/qt/qt_class.h: (QtClass): * bridge/qt/qt_instance.cpp: (JSC::Bindings::QtInstance::getMethod): * bridge/runtime_method.cpp: (JSC::RuntimeMethod::RuntimeMethod): (JSC::RuntimeMethod::lengthGetter): (JSC::callRuntimeMethod): * bridge/runtime_method.h: (JSC::RuntimeMethod::create): (JSC::RuntimeMethod::method): (RuntimeMethod): * bridge/runtime_object.cpp: (JSC::Bindings::RuntimeObject::getOwnPropertySlot): (JSC::Bindings::RuntimeObject::getOwnPropertyDescriptor): 2012-09-28 Elliott Sprehn Fix compilation of V8DependentRetained and JSDependentRetained. https://bugs.webkit.org/show_bug.cgi?id=97955 Reviewed by Kentaro Hara. Fix bad usage of putDirect and removeDirect from JSDependentRetained and fix incorrect assumptions about how weak handles work in V8. This is refactored out of the patch on http://wkbug.com/93661 No tests needed, this just fixes the compile and wrong usage of ScopedPersistent. * bindings/js/JSDependentRetained.h: (WebCore::JSDependentRetained::JSDependentRetained): (WebCore::JSDependentRetained::retain): (WebCore::JSDependentRetained::release): (JSDependentRetained): * bindings/v8/V8DependentRetained.h: (WebCore::V8DependentRetained::V8DependentRetained): (WebCore::V8DependentRetained::retain): (WebCore::V8DependentRetained::weakCallback): 2012-09-28 Ojan Vafai Fix chromium build after http://trac.webkit.org/changeset/129964. * WebCore.gypi: 2012-09-28 Simon Fraser Crash re-entering Document layout with frame flattening enabled https://bugs.webkit.org/show_bug.cgi?id=97841 Reviewed by Brady Eidson. When creating a CachedFrame, clearTimers on the Frame later; it has to be done after documentWillSuspendForPageCache(), because the style changes that HTMLPlugInImageElement::documentWillSuspendForPageCache() do can schedule a layout on the FrameView, and we don't want this layout timer to fire while the page is in the page cache. Add an assertion in FrameView::layout() that the document is not in the page cache. Without the above change, this would assert in the plugins/frameset-with-plugin-frame.html test. * history/CachedFrame.cpp: (WebCore::CachedFrame::CachedFrame): * page/FrameView.cpp: (WebCore::FrameView::layout): 2012-09-28 Dan Carney Remove V8DOMWindowShell::getEntered https://bugs.webkit.org/show_bug.cgi?id=96637 Reviewed by Adam Barth. V8DOMWindowShell::getEntered was refactored so that the window shell no longer has to be kept alive by a v8 context but rather a smaller object. No new tests. No change in functionality. * bindings/v8/DOMData.cpp: (WebCore::DOMData::getCurrentStore): * bindings/v8/ScopedPersistent.h: (WebCore::ScopedPersistent::leakHandle): (ScopedPersistent): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::resetIsolatedWorlds): (WebCore::ScriptController::evaluateInIsolatedWorld): (WebCore::ScriptController::currentWorldContext): * bindings/v8/V8Binding.cpp: (WebCore::perContextDataForCurrentWorld): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::setIsolatedWorldField): (WebCore::V8DOMWindowShell::toIsolatedContextData): (WebCore::isolatedContextWeakCallback): (WebCore::V8DOMWindowShell::disposeContext): (WebCore::V8DOMWindowShell::clearIsolatedShell): (WebCore): (WebCore::V8DOMWindowShell::initializeIfNeeded): (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin): * bindings/v8/V8DOMWindowShell.h: (V8DOMWindowShell): (IsolatedContextData): (WebCore::V8DOMWindowShell::IsolatedContextData::create): (WebCore::V8DOMWindowShell::IsolatedContextData::world): (WebCore::V8DOMWindowShell::IsolatedContextData::perContextData): (WebCore::V8DOMWindowShell::IsolatedContextData::setSecurityOrigin): (WebCore::V8DOMWindowShell::IsolatedContextData::securityOrigin): (WebCore::V8DOMWindowShell::IsolatedContextData::IsolatedContextData): (WebCore::V8DOMWindowShell::enteredIsolatedContext): (WebCore::V8DOMWindowShell::enteredIsolatedContextData): * bindings/v8/V8DOMWrapper.h: (WebCore::V8DOMWrapper::getCachedWrapper): * bindings/v8/WorldContextHandle.cpp: (WebCore::WorldContextHandle::WorldContextHandle): * bindings/v8/custom/V8DocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8SVGDocumentCustom.cpp: (WebCore::toV8): * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: (WebCore::V8XMLHttpRequest::constructorCallback): 2012-09-28 Anders Carlsson Remove Java bridge https://bugs.webkit.org/show_bug.cgi?id=97954 Reviewed by Sam Weinig. The Java bridge is not used by any port; Mac now has a NPAPI Java plug-in. * WebCore.exp.in: * WebCore.xcodeproj/project.pbxproj: * bindings/js/ScriptController.cpp: (WebCore::ScriptController::ScriptController): * bindings/js/ScriptController.h: (ScriptController): * bindings/js/ScriptControllerMac.mm: (WebCore::ScriptController::createScriptInstanceForWidget): * bridge/jni/JNIUtility.cpp: Removed. * bridge/jni/JNIUtility.h: Removed. * bridge/jni/JavaType.h: Removed. * bridge/jni/JobjectWrapper.cpp: Removed. * bridge/jni/JobjectWrapper.h: Removed. * bridge/jni/jni_jsobject.h: Removed. * bridge/jni/jni_jsobject.mm: Removed. * bridge/jni/jni_objc.mm: Removed. * bridge/jni/jsc/JNIUtilityPrivate.cpp: Removed. * bridge/jni/jsc/JNIUtilityPrivate.h: Removed. * bridge/jni/jsc/JavaArrayJSC.cpp: Removed. * bridge/jni/jsc/JavaArrayJSC.h: Removed. * bridge/jni/jsc/JavaClassJSC.cpp: Removed. * bridge/jni/jsc/JavaClassJSC.h: Removed. * bridge/jni/jsc/JavaFieldJSC.cpp: Removed. * bridge/jni/jsc/JavaFieldJSC.h: Removed. * bridge/jni/jsc/JavaInstanceJSC.cpp: Removed. * bridge/jni/jsc/JavaInstanceJSC.h: Removed. * bridge/jni/jsc/JavaMethodJSC.cpp: Removed. * bridge/jni/jsc/JavaMethodJSC.h: Removed. * bridge/jni/jsc/JavaRuntimeObject.cpp: Removed. * bridge/jni/jsc/JavaRuntimeObject.h: Removed. * bridge/jni/jsc/JavaStringJSC.h: Removed. * bridge/runtime_root.h: * loader/FrameLoaderClient.h: (FrameLoaderClient): 2012-09-28 Dimitri Glazkov Remove unused parameter in SelectorChecker::checkScrollbarPseudoClass. https://bugs.webkit.org/show_bug.cgi?id=97941 Reviewed by Kentaro Hara. The last parameter in checkScrollbarPseudoClass was unused, so I removed it. No change in behavior, just refactoring. * css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOneSelector): Changed the callsite to accommodate the change. (WebCore::SelectorChecker::checkScrollbarPseudoClass): Removed last param. * css/SelectorChecker.h: Ditto. 2012-09-27 Alpha Lam REGRESSION(r122215) - CachedImage::likelyToBeUsedSoon crashes on accessing a deleted CachedImageClient https://bugs.webkit.org/show_bug.cgi?id=97749 Reviewed by James Robinson. All implementations of Clipboard set themselves as clients to CachedImage through the JS API setDrageImage() but they do not detach during destruction. This causes memory corruption when CachedImage tries to access a deleted client when MemoryCache prunes and calls CachedImage::likelyToUsedSoon(). Manual test added: ManualTests/drag-image-no-crash.html * platform/chromium/ClipboardChromium.cpp: (WebCore::ClipboardChromium::~ClipboardChromium): * platform/gtk/ClipboardGtk.cpp: (WebCore::ClipboardGtk::~ClipboardGtk): * platform/mac/ClipboardMac.mm: (WebCore::ClipboardMac::~ClipboardMac): * platform/win/ClipboardWin.cpp: (WebCore::ClipboardWin::~ClipboardWin): 2012-09-28 Anders Carlsson Remove Instance::setDidExecuteFunction https://bugs.webkit.org/show_bug.cgi?id=97952 Reviewed by Alexey Proskuryakov. Instance::setDidExecuteFunction was added over 8 years ago to fix a bug where Objective-C DOM calls weren't updating the document correctly. Nowadays we correctly invalidate the DOM tree when these calls are made so we don't need an extra step to do so. * bindings/js/ScriptControllerMac.mm: (WebCore): (WebCore::ScriptController::initJavaJSBindings): * bindings/objc/WebScriptObject.mm: (-[WebScriptObject callWebScriptMethod:withArguments:]): (-[WebScriptObject evaluateWebScript:]): (-[WebScriptObject setValue:forKey:]): (-[WebScriptObject valueForKey:]): (-[WebScriptObject removeWebScriptKey:]): (-[WebScriptObject hasWebScriptKey:]): (-[WebScriptObject stringRepresentation]): (-[WebScriptObject webScriptValueAtIndex:]): (-[WebScriptObject setWebScriptValueAtIndex:value:]): * bridge/jsc/BridgeJSC.cpp: * bridge/jsc/BridgeJSC.h: (Instance): 2012-09-28 Emil A Eklund Improve saturation arithmetic support in FractionalLayoutUnit https://bugs.webkit.org/show_bug.cgi?id=97938 Reviewed by Levi Weintraub. Fix bug in FractionalLayoutUnit::setValue where greater than or equals is used instead of greater than to clamp the values. Add SATURATED_LAYOUT_ARITHMETIC support to round preventing it from overflowing when adding the fraction. Test: fast/sub-pixel/large-sizes.html * platform/FractionalLayoutUnit.h: (WebCore::FractionalLayoutUnit::round): (WebCore::FractionalLayoutUnit::setValue): 2012-09-28 Luiz Agostini TextureMapperGL destructor crashes https://bugs.webkit.org/show_bug.cgi?id=97942 Reviewed by Noam Rosenthal. BitmapTextureGL destructor uses a TextureMapperGL instance. The problem is that BitmapTextureGL objects are destroyed on TextureMapper destructor and at that time TextureMapperGL specific methods and data are not available any more. This patch creates a new protected method TextureMapper::clearTexturePool() that is called in TextureMapperGL's destructor. * platform/graphics/texmap/TextureMapper.h: (WebCore::TextureMapper::clearTexturePool): * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::TextureMapperGL::~TextureMapperGL): 2012-09-28 Julien Chaffraix REGRESSION(r124168): Null crash in RenderLayer::createScrollbar https://bugs.webkit.org/show_bug.cgi?id=96863 Reviewed by Abhishek Arya. After r124168, we synchronously create any overflow:scroll scrollbar on the first style change - we used to wait until layout was called. The issue is that the logic in RenderLayer assumes that our node is completely attached when the style change is dispatched. The crash occured because the 'content' image code path in RenderObject::createObject triggered a style change too early. Test: scrollbars/scrollbar-content-crash.html * rendering/RenderObject.cpp: (WebCore::RenderObject::createObject): We need a style associated with the new RenderImage to call setImageResource but we don't need to trigger a style change. 2012-09-28 Ben Wagner Chromium should respect 'text-rendering:geometricPrecision' by disabling hinting. https://bugs.webkit.org/show_bug.cgi?id=97932 Reviewed by Stephen White. When text-redering:geometricPrecision css property is present, the specification states that hinting should be disabled. This change does so. This also provides users a more stable and sane means of achieving the result webkit-font-smoothing:antialiased has been providing by accident. See http://crbug.com/152304 . * platform/graphics/skia/FontSkia.cpp: (WebCore::setupPaint): 2012-09-28 Simon Fraser Crash re-entering Document layout with frame flattening enabled https://bugs.webkit.org/show_bug.cgi?id=97841 Reviewed by Kenneth Rohde Christiansen. Walking up to parent FrameViews when doing a frame-flattening layout should walk via the Frame tree, not the Widget hierarchy. Walking via the Frame tree ensures that we don't walk up to the root Frame when laying out a subframe that is in the page cache. That's bad, because the root Frame is reused for the new page, and laying it out from a frame in the page cache causes re-entrant layout. Test: plugins/frameset-with-plugin-frame.html * page/FrameView.cpp: (WebCore::FrameView::parentFrameView): 2012-09-28 Sheriff Bot Unreviewed, rolling out r129911. http://trac.webkit.org/changeset/129911 https://bugs.webkit.org/show_bug.cgi?id=97933 Inspector test crashes on win debug (Requested by jsbell on #webkit). * Modules/indexeddb/IDBTransactionBackendImpl.cpp: (WebCore::IDBTransactionBackendImpl::abort): (WebCore::IDBTransactionBackendImpl::taskTimerFired): 2012-09-28 Yong Li [HarfBuzz] harfbuzz expects log_clusters to have same length as other buffers. https://bugs.webkit.org/show_bug.cgi?id=97725 Reviewed by Tony Chang. log_clusters should have same length as other buffers, which is number of glyphs. Test: fast/text/international/harfbuzz-buffer-overrun.html * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: (WebCore::ComplexTextController::ComplexTextController): (WebCore::ComplexTextController::~ComplexTextController): (WebCore::ComplexTextController::deleteGlyphArrays): (WebCore::ComplexTextController::createGlyphArrays): 2012-09-28 Brian Salomon Add canvas to set of elements that do not allow style sharing in order to provoke RenderLayer creation https://bugs.webkit.org/show_bug.cgi?id=97013 Reviewed by James Robinson. This allows RenderLayers to be created for canvas elements when they are accelerated. Otherwise, we can exit out of RenderObject::setStyle before the layer is created. Test: fast/canvas/canvas-render-layer.html * css/StyleResolver.cpp: (WebCore::StyleResolver::collectMatchingRulesForList): * rendering/RenderObject.cpp: (WebCore::RenderObject::adjustStyleDifference): (WebCore::RenderObject::setStyle): 2012-09-28 Fady Samuel [V8] Make v8NPObjectMap per Context https://bugs.webkit.org/show_bug.cgi?id=97703 Reviewed by Adam Barth. V8NPObject is a V8Object wrapper for use by the npruntime. staticV8NPObjectMap is used for keeping record of V8NPObjects as they are created and destroyed to ensure that an existing V8NPObject wrapper is returned for a V8Object in npCreateV8ScriptObject. Once a context is gone, the NPObjects for the context are no longer valid and that record keeping no longer makes sense so we clear the map. However, because the map was static, it existed for all pages across contexts. Clearing the map if one context is gone should not impact the V8NPObject map of other contexts. Thus, this patch makes the V8NPObject map per context. * bindings/v8/NPV8Object.cpp: (WebCore::freeV8NPObject): (WebCore::npCreateV8ScriptObject): * bindings/v8/V8PerContextData.h: (WebCore): (WebCore::V8PerContextData::v8NPObjectMap): (V8PerContextData): 2012-09-28 Alberto Garcia TextureMapperGL: fix -Wsign-compare compilation warning. https://bugs.webkit.org/show_bug.cgi?id=97928 Reviewed by Martin Robinson. Use size_t rather than int to iterate over FilterOperations. * platform/graphics/texmap/TextureMapperGL.cpp: (WebCore::BitmapTextureGL::applyFilters): 2012-09-28 Anders Carlsson Fix build. * WebCore.xcodeproj/project.pbxproj: 2012-09-28 Mikhail Pozdnyakov Code inside FrameLoaderClient::canShowMIMEType() implementations can be shared among different WK ports https://bugs.webkit.org/show_bug.cgi?id=97547 Reviewed by Adam Barth. Added MIMETypeRegistry::canShowMIMEType() function which should to be used to detect whether a given MIME type can be shown in a page. No new tests. No new functionality. * WebCore.exp.in: Added MIMETypeRegistry::canShowMIMEType(). Removed MIMETypeRegistry functions that no longer need to be exported. * platform/MIMETypeRegistry.cpp: (WebCore::MIMETypeRegistry::canShowMIMEType): (WebCore): * platform/MIMETypeRegistry.h: (MIMETypeRegistry): 2012-09-27 Tony Chang flexbox assert fails with auto-sized item with padding https://bugs.webkit.org/show_bug.cgi?id=97606 Reviewed by Ojan Vafai. Depending on the denominator of FractionalLayoutUnit, we can lose precision when converting to a float. This would cause a rounding error in flex-shrink to trigger an ASSERT. To avoid this problem in the future, switch to using doubles for flex-shrink and flex-grow at layout time. The CSS values themselves are still floats. Test: css3/flexbox/negative-flex-rounding-assert.html * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutFlexItems): Use doubles for local variables. (WebCore::RenderFlexibleBox::computeNextFlexLine): Pass in doubles. (WebCore::RenderFlexibleBox::freezeViolations): Pass in doubles. (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Pass in doubles. * rendering/RenderFlexibleBox.h: 2012-09-28 Sheriff Bot Unreviewed, rolling out r129751. http://trac.webkit.org/changeset/129751 https://bugs.webkit.org/show_bug.cgi?id=97921 Causes crashes on mac and win (Requested by vsevik on #webkit). * bindings/js/JSHTMLCanvasElementCustom.cpp: (WebCore::JSHTMLCanvasElement::getContext): * bindings/js/JSMainThreadExecState.h: (WebCore::JSMainThreadExecState::instrumentFunctionCall): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): * bindings/js/ScriptCallStackFactory.cpp: (WebCore::createScriptCallStackForInspector): * bindings/js/ScriptCallStackFactory.h: (WebCore): * bindings/scripts/CodeGeneratorJS.pm: (GenerateCallWith): * bindings/scripts/CodeGeneratorV8.pm: (GenerateCallWith): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute): (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute): (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack): * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter): (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter): (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback): * bindings/v8/ScriptCallStackFactory.cpp: (WebCore::createScriptCallStackForInspector): * bindings/v8/ScriptCallStackFactory.h: (WebCore): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::callFunctionWithInstrumentation): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin): * bindings/v8/V8WorkerContextEventListener.cpp: (WebCore::V8WorkerContextEventListener::callListenerFunction): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: (WebCore::V8HTMLCanvasElement::getContextCallback): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::SetTimeoutOrInterval): * inspector/Inspector.json: * inspector/InspectorConsoleAgent.cpp: (WebCore::InspectorConsoleAgent::InspectorConsoleAgent): (WebCore::InspectorConsoleAgent::enable): (WebCore::InspectorConsoleAgent::disable): (WebCore::InspectorConsoleAgent::clearMessages): (WebCore::InspectorConsoleAgent::clearFrontend): (WebCore::InspectorConsoleAgent::addConsoleMessage): * inspector/InspectorConsoleAgent.h: (InspectorConsoleAgent): * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): * inspector/InspectorInstrumentation.cpp: (WebCore): (WebCore::InspectorInstrumentation::hasFrontendForScriptContext): * inspector/InspectorInstrumentation.h: (InspectorInstrumentation): (WebCore::InspectorInstrumentation::hasFrontendForScriptContext): * inspector/InspectorRuntimeAgent.cpp: (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent): * inspector/InspectorRuntimeAgent.h: (InspectorRuntimeAgent): * inspector/PageRuntimeAgent.cpp: (PageRuntimeAgentState): (WebCore::PageRuntimeAgent::clearFrontend): (WebCore::PageRuntimeAgent::restore): (WebCore::PageRuntimeAgent::setReportExecutionContextCreation): (WebCore::PageRuntimeAgent::didClearWindowObject): (WebCore::PageRuntimeAgent::didCreateIsolatedContext): * inspector/PageRuntimeAgent.h: (PageRuntimeAgent): * inspector/WorkerRuntimeAgent.cpp: (WebCore::WorkerRuntimeAgent::setReportExecutionContextCreation): (WebCore): * inspector/WorkerRuntimeAgent.h: (WorkerRuntimeAgent): * inspector/front-end/RuntimeModel.js: (WebInspector.RuntimeModel.prototype._didLoadCachedResources): * page/DOMWindow.cpp: (WebCore::DOMWindow::postMessage): 2012-09-28 Kent Tamura Add parseDateTime, formatDateTime, and dateFormatText to Localizer https://bugs.webkit.org/show_bug.cgi?id=97885 Reviewed by Kentaro Hara. This is a preparation to remove LocalizedData.h. Add the following pure virtual member functions to Localizer. parseDateTime formatDateTime dateFormatText. We rename existing parse/format functions for type=date in Locale* classes, and extend their functionality so that they support other date/time types. They override the new functions of Localizer. No new tests. This should not change any behavior. * platform/text/Localizer.h: (Localizer): Add parseDateTime, formatDateTime, and dateFormatText. * platform/text/LocaleICU.h: (LocaleICU): - Rename parseLocalizedDate to parseDateTime - Add type argument to parseDateTime - Rename formatLocalizedDate to formatDateTime - Rename localizedDateFormatText to dateFormatText - Make parseDateTime/formatDateTime/dateFormatText virtual. * platform/text/LocaleICU.cpp: (WebCore::LocaleICU::parseDateTime): Renamed. Reject non-date types. (WebCore::LocaleICU::formatDateTime): ditto. (WebCore::LocaleICU::dateFormatText): Renamed. * platform/text/LocalizedDateICU.cpp: Moved some code to LocaleICU.cpp. (WebCore::parseLocalizedDate): (WebCore::formatLocalizedDate): * platform/text/LocaleNone.cpp: Add empty implementations of parseDateTime, formatDateTime, and dateFormatText. (LocaleNone): (WebCore::LocaleNone::parseDateTime): (WebCore::LocaleNone::formatDateTime): (WebCore::LocaleNone::dateFormatText): * platform/text/LocaleWin.h: (LocaleWin): - Rename parseDate to parseDateTime - Add type argument to parseDateTime - Rename formatDate to formatDateTime - Make parseDateTime/formatDateTime/dateFormatText virtual. * platform/text/LocaleWin.cpp: (WebCore::LocaleWin::parseDateTime): Renamed. Reject non-date types. (WebCore::LocaleWin::formatDateTime): ditto. * platform/text/LocalizedDateWin.cpp: Moved some code to LocaleWin.cpp. (WebCore::parseLocalizedDate): (WebCore::formatLocalizedDate): * platform/text/mac/LocaleMac.h: (LocaleMac): - Rename parseDate to parseDateTime - Add type argument to parseDateTime - Rename formatDate to formatDateTime - Make parseDateTime/formatDateTime/dateFormatText virtual. * platform/text/mac/LocaleMac.mm: (WebCore::LocaleMac::parseDateTime): Renamed. Reject non-date types. (WebCore::LocaleMac::formatDateTime): ditto. * platform/text/mac/LocalizedDateMac.cpp: Moved some code to LocaleMac.mm. (WebCore::parseLocalizedDate): (WebCore::formatLocalizedDate): 2012-09-28 Joshua Bell IndexedDB: Run multiple tasks per transaction tick https://bugs.webkit.org/show_bug.cgi?id=97738 Reviewed by Tony Chang. Process multiple tasks from the pending queue(s) when the timer fires. The task may initiate new tasks that change which queue is active (e.g. indexing operations) so the loop must re-check each tick which queue to use. In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%); in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%). No new tests - just perf improvements, covered by (nearly) all existing IDB tests. * Modules/indexeddb/IDBTransactionBackendImpl.cpp: (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code. (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available. 2012-09-28 Harald Tveit Alvestrand Implement the GetStats interface on PeerConnection https://bugs.webkit.org/show_bug.cgi?id=95193 Specification: http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html Reviewed by Adam Barth. The implementation consists of a pure virtual platform object (RTCStatsRequest) that is implemented in WebCore, and stores its information in a straightforward data hierarchy. This patch adds the call path and the storage structures. It does not add filling in data. Test: fast/mediastream/RTCPeerConnection-stats.html * CMakeLists.txt: * Modules/mediastream/RTCPeerConnection.cpp: (WebCore::RTCPeerConnection::getStats): (WebCore): * Modules/mediastream/RTCPeerConnection.h: (WebCore): (RTCPeerConnection): * Modules/mediastream/RTCPeerConnection.idl: * Modules/mediastream/RTCStatsCallback.h: Added. (WebCore): (RTCStatsCallback): (WebCore::RTCStatsCallback::~RTCStatsCallback): * Modules/mediastream/RTCStatsCallback.idl: Added. * Modules/mediastream/RTCStatsElement.cpp: Added. (WebCore): (WebCore::RTCStatsElement::create): (WebCore::RTCStatsElement::RTCStatsElement): (WebCore::RTCStatsElement::stat): * Modules/mediastream/RTCStatsElement.h: Added. (WebCore): (RTCStatsElement): * Modules/mediastream/RTCStatsElement.idl: Added. * Modules/mediastream/RTCStatsReport.cpp: Added. (WebCore): (WebCore::RTCStatsReport::create): (WebCore::RTCStatsReport::RTCStatsReport): * Modules/mediastream/RTCStatsReport.h: Added. (WebCore): (RTCStatsReport): (WebCore::RTCStatsReport::local): (WebCore::RTCStatsReport::remote): * Modules/mediastream/RTCStatsReport.idl: Added. * Modules/mediastream/RTCStatsRequestImpl.cpp: Added. (WebCore): (WebCore::RTCStatsRequestImpl::create): (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl): (WebCore::RTCStatsRequestImpl::~RTCStatsRequestImpl): (WebCore::RTCStatsRequestImpl::requestSucceeded): (WebCore::RTCStatsRequestImpl::stop): (WebCore::RTCStatsRequestImpl::clear): * Modules/mediastream/RTCStatsRequestImpl.h: Added. (WebCore): (RTCStatsRequestImpl): * Modules/mediastream/RTCStatsResponse.cpp: Added. (WebCore): (WebCore::RTCStatsResponse::create): (WebCore::RTCStatsResponse::RTCStatsResponse): * Modules/mediastream/RTCStatsResponse.h: Added. (WebCore): (RTCStatsResponse): (WebCore::RTCStatsResponse::result): * Modules/mediastream/RTCStatsResponse.idl: Added. * WebCore.gypi: * platform/chromium/support/WebRTCStatsRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h. (WebKit): (WebKit::WebRTCStatsRequest::WebRTCStatsRequest): (WebKit::WebRTCStatsRequest::assign): (WebKit::WebRTCStatsRequest::reset): (WebKit::WebRTCStatsRequest::requestSucceeded): * platform/mediastream/RTCPeerConnectionHandler.h: (WebCore): (RTCPeerConnectionHandler): * platform/mediastream/RTCStatsRequest.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h. (WebCore): (RTCStatsRequest): (WebCore::RTCStatsRequest::~RTCStatsRequest): (WebCore::RTCStatsRequest::RTCStatsRequest): * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: (WebCore::RTCPeerConnectionHandlerChromium::getStats): (WebCore): * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: (RTCPeerConnectionHandlerChromium): 2012-09-28 Andreas Kling 471kB below StyleSheetContents::parserAppendRule() on Membuster3. Reviewed by Anders Carlsson. Shrink-to-fit the StyleSheetContents rule vectors at the end of CSSParser::parseSheet(). ~100kB progression on Membuster3. * css/StyleSheetContents.h: * css/StyleSheetContents.cpp: (WebCore::StyleSheetContents::shrinkToFit): * css/CSSParser.cpp: (WebCore::CSSParser::parseSheet): 2012-09-28 Kent Tamura Clean up Localizer-related functions https://bugs.webkit.org/show_bug.cgi?id=97899 Reviewed by Kentaro Hara. - Rename Document::getLocalizer to getCachedLocalizer - Add default argument to getCachedLocalizer - Add Element::localizer to reduce code size - Rename DateTimeNumericFieldElement::localizer to localizerForOwner to avoid conflict with Element::localizer - Add Localizer::createDefault to improve code readability No new tests. This shouldn't make any behavior change. * dom/Document.h: (Document): Rename getLocalizer to getCachedLocalizer, and add default argument. * dom/Document.cpp: (WebCore::Document::getCachedLocalizer): ditto. * dom/Element.h: (Element): Add localizer function. * dom/Element.cpp: (WebCore::Element::localizer): Added * html/shadow/DateTimeNumericFieldElement.h: (DateTimeNumericFieldElement): Rename localizer to localizerForOwner. * html/shadow/DateTimeNumericFieldElement.cpp: ditto. (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): (WebCore::DateTimeNumericFieldElement::localizerForOwner): (WebCore::DateTimeNumericFieldElement::value): * platform/text/Localizer.h: (Localizer): Add createDefault (WebCore::Localizer::createDefault): Implemented. * html/BaseMultipleFieldsDateAndTimeInputType.cpp: (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Use Element::localizer. * html/NumberInputType.cpp: (WebCore::NumberInputType::localizeValue): ditto. (WebCore::NumberInputType::convertFromVisibleValue): ditto. 2012-09-28 Pavel Feldman Web Inspector: define ChunkedReader interface for compilation https://bugs.webkit.org/show_bug.cgi?id=97904 Reviewed by Alexander Pavlov. Otherwise, it is unclear what "source" is in the OutputStreamDelegate. * inspector/front-end/FileUtils.js: (WebInspector.OutputStreamDelegate.prototype.onTransferStarted): (WebInspector.OutputStreamDelegate.prototype.onTransferFinished): (WebInspector.OutputStreamDelegate.prototype.onChunkTransferred): (WebInspector.OutputStreamDelegate.prototype.onError): (WebInspector.ChunkedReader): (WebInspector.ChunkedReader.prototype.fileSize): (WebInspector.ChunkedReader.prototype.loadedSize): (WebInspector.ChunkedReader.prototype.fileName): (WebInspector.ChunkedReader.prototype.cancel): (WebInspector.ChunkedFileReader.prototype.start): (WebInspector.ChunkedFileReader.prototype._onChunkLoaded): (WebInspector.ChunkedXHRReader.prototype.start): (WebInspector.ChunkedXHRReader.prototype._onLoad): * inspector/front-end/HeapSnapshotView.js: (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onTransferStarted): (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onChunkTransferred): (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onTransferFinished): (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onError): * inspector/front-end/TimelineModel.js: (WebInspector.TimelineModelLoadFromFileDelegate.prototype.onTransferStarted): 2012-09-28 Florin Malita [Chromium] Incorrect resampling of clipped/masked images. https://bugs.webkit.org/show_bug.cgi?id=97409 Reviewed by Stephen White. Currently, high-quality resampling is used for translate/scale-only transforms, but when the scale is negative the resampling subset ends up positioned incorrectly. ImageSkia.cpp:drawResampledBitmap needs to account for negative scaling factors, and apply only absolute values when calculating the resampling subregion in bitmap coordinates. Thanks pdr@google.com for isolating the regression. Test: svg/custom/clip-mask-negative-scale.svg * platform/graphics/skia/ImageSkia.cpp: (WebCore::drawResampledBitmap): 2012-09-28 Sheriff Bot Unreviewed, rolling out r129882. http://trac.webkit.org/changeset/129882 https://bugs.webkit.org/show_bug.cgi?id=97913 Repaint is incorrect on many tests (Requested by schenney on #webkit). * inspector/InspectorController.cpp: * inspector/InspectorController.h: (WebCore): (InspectorController): * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::paint): (WebCore::InspectorOverlay::update): (WebCore::buildObjectForPoint): (WebCore::buildArrayForQuad): (WebCore::buildObjectForHighlight): (WebCore::InspectorOverlay::reset): * inspector/InspectorOverlay.h: (InspectorOverlay): * inspector/InspectorOverlayPage.html: 2012-09-28 Kentaro Hara Unreviewed, rolling out r129825. http://trac.webkit.org/changeset/129825 https://bugs.webkit.org/show_bug.cgi?id=97474 DOMWindow.resizeTo() is broken. Asked by Mark Pilgrim. * WebCore.gypi: * platform/Widget.h: * platform/chromium/PageClientChromium.h: Removed. * platform/chromium/PlatformScreenChromium.cpp: (WebCore::screenHorizontalDPI): (WebCore::screenVerticalDPI): (WebCore::screenDepth): (WebCore::screenDepthPerComponent): (WebCore::screenIsMonochrome): (WebCore::screenRect): (WebCore::screenAvailableRect): * platform/chromium/PlatformSupport.h: (PlatformSupport): 2012-09-28 Christophe Dumez [WebDatabase] Error code should be CONSTRAINT_ERR if a statement fails due to a constraint failure https://bugs.webkit.org/show_bug.cgi?id=97897 Reviewed by Kenneth Rohde Christiansen. Use CONSTRAINT_ERR error code instead of the generic DATABASE_ERR when a statement fails due to a constraint failure. This is documented in the W3C specification: http://dev.w3.org/html5/webdatabase/#dom-sqlexception-code-constraint Tests: storage/websql/sql-error-codes.html * Modules/webdatabase/SQLStatement.cpp: (WebCore::SQLStatement::execute): * Modules/webdatabase/SQLStatementSync.cpp: (WebCore::SQLStatementSync::execute): * platform/sql/SQLiteDatabase.cpp: (WebCore): * platform/sql/SQLiteDatabase.h: (WebCore): 2012-09-28 Pavel Feldman Web Inspector: split ProgressBar.js into Progress.js and ProgressIndicator.js https://bugs.webkit.org/show_bug.cgi?id=97902 Reviewed by Alexander Pavlov. One is model, the other is UI component. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/Progress.js: Copied from Source/WebCore/inspector/front-end/ProgressBar.js. * inspector/front-end/ProgressIndicator.js: Renamed from Source/WebCore/inspector/front-end/ProgressBar.js. * inspector/front-end/UserAgentSupport.js: * inspector/front-end/WebKit.qrc: * inspector/front-end/externs.js: * inspector/front-end/inspector.html: 2012-09-27 Alexander Pavlov Web Inspector: [Device Metrics] Remove the gutter overlay moving its functionality into the InspectorOverlay https://bugs.webkit.org/show_bug.cgi?id=97799 Reviewed by Pavel Feldman. In order to reduce the amount of port-specific code, the gutter overlay painted in the device metrics emulation mode has been replaced by the respective functionality in the HTML-based InspectorOverlay in WebCore. The InspectorOverlay now covers the entire WebView rather than the FrameView only. * inspector/InspectorController.cpp: (WebCore::InspectorController::webViewResized): (WebCore): * inspector/InspectorController.h: (WebCore): (InspectorController): * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::InspectorOverlay): (WebCore::InspectorOverlay::paint): (WebCore::InspectorOverlay::resize): (WebCore): (WebCore::InspectorOverlay::update): (WebCore::InspectorOverlay::drawGutter): (WebCore::InspectorOverlay::reset): * inspector/InspectorOverlay.h: (InspectorOverlay): * inspector/InspectorOverlayPage.html: Introduce the gutter painting functionality previously found in the Chromium's DeviceMetricsSupport class, which used to implement WebPageOverlay. 2012-09-28 Sudarsana Nagineni editing/pasteboard/paste-removing-iframe.html crashes on EFL bots https://bugs.webkit.org/show_bug.cgi?id=97892 Reviewed by Kenneth Rohde Christiansen. Added missing null check to avoid a crash if the document inside iframe is removed during the editing operation. Test: editing/pasteboard/paste-removing-iframe.html * editing/Editor.cpp: (WebCore::Editor::changeSelectionAfterCommand): 2012-09-28 Arvid Nilsson [BlackBerry] Destroy thread-specific data for Platform::Graphics::Buffer on the right thread https://bugs.webkit.org/show_bug.cgi?id=97674 Reviewed by Rob Buis. A new API was added to BlackBerry::Platform::Graphics for destroying thread-specific data generated on the compositing thread when we blit buffers. The buffers are otherwise created and destroyed on the WebKit thread, which doesn't give platform any opportunity to destroy the thread-specific data. This patch adds calls to the new API to avoid leaking resources. Reviewed internally by Jakob Petsovits and Filip Spacek. PR 214644 Verified using manual testing. * plugins/blackberry/PluginViewPrivateBlackBerry.cpp: (WebCore::PluginViewPrivate::createBuffers): (WebCore::PluginViewPrivate::destroyBuffers): 2012-09-28 Andrey Adaikin Web Inspector: [Canvas] log property setters too along with function calls https://bugs.webkit.org/show_bug.cgi?id=97776 Reviewed by Pavel Feldman. Trace logs should also contain property setter calls. * inspector/InjectedScriptCanvasModuleSource.js: (.): * inspector/Inspector.json: * inspector/front-end/CanvasProfileView.js: (WebInspector.CanvasProfileView.prototype._showTraceLog): 2012-09-28 Kent Tamura Remove LocalizedNumber*.* https://bugs.webkit.org/show_bug.cgi?id=97876 Reviewed by Yuta Kitamura. LocalizedNumber.h functions are replaced with Localizer class. * CMakeLists.txt: Remove LocalizedNumberNone.*. * GNUmakefile.list.am: ditto. * Target.pri: ditto. * WebCore.vcpproj/WebCore.vcproj: ditto. * WebCore.gyp/WebCore.gyp: Remove LocalizedNumber*.*. * WebCore.gypi: ditto. * WebCore.xcodeproj/project.pbxproj: ditto. * html/NumberInputType.cpp: Use Localizer for the element locale. (WebCore::NumberInputType::localizeValue): (WebCore::NumberInputType::convertFromVisibleValue): * platform/text/Localizer.h: Move some comments from LocalizedNumber.h * platform/text/LocalizedNumber.h: Removed. * platform/text/LocalizedNumberICU.cpp: Removed. * platform/text/LocalizedNumberNone.cpp: Removed. * platform/text/mac/LocalizedNumberMac.mm: Removed. * platform/text/win/LocalizedNumberWin.cpp: Removed. 2012-09-28 Gyuyoung Kim Unreviewed, rolling out r129863. http://trac.webkit.org/changeset/129863 https://bugs.webkit.org/show_bug.cgi?id=97173 WK2 layout test on debug is broken by this patch. * platform/efl/RunLoopEfl.cpp: (WebCore::RunLoop::RunLoop): (WebCore::RunLoop::~RunLoop): 2012-09-28 Vsevolod Vlasov Web Inspector: Formatting on load is broken https://bugs.webkit.org/show_bug.cgi?id=97880 Reviewed by Alexander Pavlov. Bound formatted callback on UISourceCode and fixed callback call. * inspector/front-end/UISourceCode.js: (WebInspector.UISourceCode.prototype._fireContentAvailable.formattedCallback): (WebInspector.UISourceCode.prototype._fireContentAvailable): 2012-09-28 Yoshifumi Inoue [Forms] Multiple fields month input UI https://bugs.webkit.org/show_bug.cgi?id=97299 Reviewed by Kent Tamura. This patch introduces multiple fields "month" input UI in DRT. We'll enable this feature once we add tests. Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_MONTH and ENABLE_INPUT_MULTIPLE_FIELDS_UI. No new tests. To reduce size of this patch, other patches add tests for multiple fields month input UI. Note: Actual outputs of two tests - fast/forms/month/month-input-visible-string.html - fast/forms/month/month-stepup-stepdown-from-renderer.html are different. * css/html.css: (input::-webkit-datetime-edit-month-field): Added for field appearance. (input::-webkit-datetime-edit-year-field): ditto. (input::-webkit-datetime-edit-month-field:focus): Added to remove focus ring. (input::-webkit-datetime-edit-year-field:focus): ditto. * html/MonthInputType.cpp: (WebCore::MonthInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification. (WebCore::MonthInputType::setupLayoutParameters): Added to set layout of multiple fields. * html/MonthInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseMonthInputType typedef. (WebCore::MonthInputType::MonthInputType): Changed base class name to BaseMonthInputType. (MonthInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters(). * html/shadow/DateTimeEditElement.cpp: (DateTimeEditBuilder): Changed to have copy of object in m_stepRange and m_dateValue member variables for being robust. (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed to add initialize m_placeholderForMonth and m_placeholderForYear. (WebCore::DateTimeEditBuilder::visitField): Changed to support month field and year field. * html/shadow/DateTimeEditElement.h: (LayoutParameters): Changed to add member variables, placeholderForMonth and placeholderForYear. Changed to have copy of object in stepRange member variable for being robust. 2012-09-28 Eunmi Lee [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries. https://bugs.webkit.org/show_bug.cgi?id=97173 Reviewed by Gyuyoung Kim. Remove codes to initialize and shutdown the EFL libraries from RunLoopEfl.cpp. Initialization and shutdown will be done in the ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web process. No new tests. This patch doesn't change behavior. * platform/efl/RunLoopEfl.cpp: (WebCore::RunLoop::RunLoop): (WebCore::RunLoop::~RunLoop): 2012-09-19 Vsevolod Vlasov Web Inspector: Prepare UISourceCode to transformation into File. https://bugs.webkit.org/show_bug.cgi?id=97113 Reviewed by Pavel Feldman. This patch moves methods and fields from UISourceCode descendants except for the modification bindings. * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.breakpointStorageId): (WebInspector.BreakpointManager.isDivergedFromVM): (WebInspector.BreakpointManager.prototype.restoreBreakpoints): (WebInspector.BreakpointManager.Breakpoint): (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint): (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId): (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints): (set WebInspector.BreakpointManager.Storage.Item): * inspector/front-end/JavaScriptSource.js: (WebInspector.JavaScriptSource): (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): * inspector/front-end/JavaScriptSourceFrame.js: (WebInspector.JavaScriptSourceFrame.prototype.canEditSource): (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing): (WebInspector.JavaScriptSourceFrame.prototype._didEditContent): (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointsBeforeEditing): (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing): (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration): (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick): * inspector/front-end/SASSSourceMapping.js: * inspector/front-end/ScriptSnippetModel.js: (WebInspector.ScriptSnippetModel): (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet): (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var): (WebInspector.ScriptSnippetModel.prototype._projectWillReset): (WebInspector.SnippetJavaScriptSource): (WebInspector.SnippetJavaScriptSource.prototype.workingCopyChanged): * inspector/front-end/ScriptsNavigator.js: (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._addUISourceCode): (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted): (WebInspector.ScriptsPanel.prototype._toggleFormatSource): * inspector/front-end/SnippetJavaScriptSourceFrame.js: (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked): * inspector/front-end/StyleSource.js: * inspector/front-end/UISourceCode.js: (WebInspector.UISourceCode.prototype.searchInContent): (WebInspector.UISourceCode.prototype._fireContentAvailable.formattedCallback): (WebInspector.UISourceCode.prototype._fireContentAvailable): (WebInspector.UISourceCode.prototype.setFormatted.if): (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged): (WebInspector.UISourceCode.prototype.setFormatted.didGetContent): (WebInspector.UISourceCode.prototype.setFormatted): (WebInspector.UISourceCode.prototype.setSourceMapping): 2012-09-28 MORITA Hajime Move Shadow DOM inspection feature out from experiments https://bugs.webkit.org/show_bug.cgi?id=94274 Reviewed by Pavel Feldman. This chagne turns the showShadowDOM experiments into a settings, adding aSettingsScreen entry for that. * English.lproj/localizedStrings.js: * inspector/front-end/DOMAgent.js: * inspector/front-end/Settings.js: (WebInspector.ExperimentsSettings): * inspector/front-end/SettingsScreen.js: (WebInspector.GenericSettingsTab): 2012-09-27 Kent Tamura Use Localizer in PagePopupController https://bugs.webkit.org/show_bug.cgi?id=97862 Reviewed by Hajime Morita. No new tests. This doesn't change any behavior. * page/PagePopupClient.h: (WebCore): (PagePopupClient): Add "localizer" member function. * page/PagePopupController.cpp: (WebCore::PagePopupController::localizeNumberString): Use a Localizer object provided by PagePopupClient. 2012-09-28 Kent Tamura Switch monthLabels, weekDayShortLabels, and firstDayOfWeek to Localizer https://bugs.webkit.org/show_bug.cgi?id=97874 Reviewed by Kentaro Hara. No new tests. This change shouldn't change any behavior. * platform/text/Localizer.h: (Localizer): Add monthLabels, weekDayShortLabels, and firstDayOfWeek. * platform/text/LocalizedDate.h: (WebCore): Remove them. * platform/text/LocalizedDateICU.cpp: (WebCore::localizedDateFormatText): ditto. * platform/text/LocalizedDateWin.cpp: (WebCore::localizedDateFormatText): ditto. * platform/text/mac/LocalizedDateMac.cpp: (WebCore::localizedDateFormatText): ditto. * platform/text/LocaleICU.h: (LocaleICU): Add virtual and OVERRIDE. * platform/text/LocaleWin.h: (LocaleWin): - Add virtual and OVERRIDE. - Move the content of firstDayOfWeek to LocaleWin.cpp because inline definition of a virtual function is not efficient. * platform/text/LocaleWin.cpp: (WebCore::LocaleWin::firstDayOfWeek): See above. * platform/text/mac/LocaleMac.h: (LocaleMac): Add virtual and OVERRIDE. 2012-09-28 Eugene Klyuchnikov Web Inspector: Elements: Show entities in edit as HTML. https://bugs.webkit.org/show_bug.cgi?id=97798 Reviewed by Alexander Pavlov. In elements tree entities like " ", " " are shown. But in "Edit as HTML" mode they are replaced by Unicode chars. For better consistency, these chars should be rendered the same way both in tree and edit field. * inspector/front-end/ElementsTreeOutline.js: Replaced invisible chars with entities. 2012-09-28 Yoshifumi Inoue [Forms] Adding DateTimeMonthFieldElement and DateTimeYearFieldElement https://bugs.webkit.org/show_bug.cgi?id=97864 Reviewed by Kent Tamura. This patch is a part of preparation of implementing multiple fields date/time input UI. This patch introduces DateTimeMonthFieldElement and DateTimeYearFieldElement classes for implementing multiple fields "month" input type. Multiple fields "month" input type uses two fields for month and year in locale dependent order. Month field display month as two digit. Year field display year as four digits in usual case and can display up to 6 digits to support maximum year 275760, defined in HTML5 specification. This patch also changes default value for step down and up on empty field to better UI in year field. Year field displays current year when step down and up on empty field rather than minimum year 1, or maximum year 275760. Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_MULTIPLE_FIELDS_UI. No new tests. This patch doesn't change behavior. * html/shadow/DateTimeFieldElements.cpp: (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement): Added. (WebCore::DateTimeMonthFieldElement::create): Added. (WebCore::DateTimeMonthFieldElement::populateDateTimeFieldsState): Added. (WebCore::DateTimeMonthFieldElement::setValueAsDate): Added. (WebCore::DateTimeMonthFieldElement::setValueAsDateTimeFieldsState): Added. (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): Added. (WebCore::DateTimeYearFieldElement::create): Added. (WebCore::DateTimeYearFieldElement::defaultValueForStepDown): Added. (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Added. (WebCore::DateTimeYearFieldElement::populateDateTimeFieldsState): Added. (WebCore::DateTimeYearFieldElement::setValueAsDate): Added. (WebCore::DateTimeYearFieldElement::setValueAsDateTimeFieldsState): Added. * html/shadow/DateTimeFieldElements.h: (DateTimeMonthFieldElement): Added. (DateTimeYearFieldElement): Added. * html/shadow/DateTimeNumericFieldElement.cpp: (WebCore::DateTimeNumericFieldElement::Range::isInRange): Added for ease of checking value is in range. (WebCore::DateTimeNumericFieldElement::defaultValueForStepDown): Added for default behavior. (WebCore::DateTimeNumericFieldElement::defaultValueForStepUp): ditto. (WebCore::DateTimeNumericFieldElement::stepDown): Changed to use defaultValueForStepDown instead of maximum field value. (WebCore::DateTimeNumericFieldElement::stepUp): Changed to use defaultValueForStepUp minium field value. (WebCore::DateTimeNumericFieldElement::value): Changed to use "%04d" when maximum field value is greater than 999 for year field. * html/shadow/DateTimeNumericFieldElement.h: (DateTimeNumericFieldElement): Changed to add declarations of defaultValueForStepDown() and defaultValueForStepUp(). 2012-09-27 Yoshifumi Inoue [Forms] Adding placeholder feature to DateTimeNumericElement, and update its existing subclasses. https://bugs.webkit.org/show_bug.cgi?id=97863 Reviewed by Kent Tamura. This patch is a part of preparation of implementing multiple fields date/time input UI. This patch introduces placeholder feature to DateTimeNumericElement to display date format guide in field, e.g. displaying "dd/mm/yyyy". Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_MULTIPLE_FIELDS_UI. No new tests. This patch doesn't change behavior. * html/shadow/DateTimeFieldElements.cpp: (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Changed to pass placeholder class to base class. (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): ditto (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): ditto (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): ditto * html/shadow/DateTimeNumericFieldElement.cpp: Removed no more needed static function displaySizeOfNumbre(). (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Changed to add new parameter to take placeholder. (WebCore::DateTimeNumericFieldElement::visibleValue): Changed to use m_placholder. * html/shadow/DateTimeNumericFieldElement.h: (DateTimeNumericFieldElement): Changed to add a member variable m_placholder to hold placholder to DateTimeNumbericElement class. 2012-09-27 Kent Tamura Make sure Localizer class is not copyable https://bugs.webkit.org/show_bug.cgi?id=97857 Reviewed by Kentaro Hara. We don't intent Localizer obejcts are copyable. * platform/text/Localizer.h: (Localizer): Add WTF_MAKE_NONCOPYABLE. 2012-09-27 Nico Weber Delete some unused code. Found by -Wunused-function. https://bugs.webkit.org/show_bug.cgi?id=97858 Reviewed by Anders Carlsson. No intended behavior change. * bindings/v8/custom/V8ArrayBufferViewCustom.h: (WebCore): * platform/graphics/chromium/CrossProcessFontLoading.mm: * platform/graphics/skia/GraphicsContextSkia.cpp: * platform/mac/ScrollbarThemeMac.mm: (WebCore): 2012-09-27 Kentaro Hara [V8] StringCache::v8ExternalString() can return a stale persistent handle https://bugs.webkit.org/show_bug.cgi?id=97767 Reviewed by Adam Barth. For details, see the Chromium bug: http://code.google.com/p/chromium/issues/detail?id=151902 StringCache::v8ExternalString() can return a stale persistent handle in the following scenario: (1) Assume that StringImpl A with value "foo" is in m_stringCache. (2) StringImpl B with value "foo" is accessed. At this point, m_lastStringImpl points to B, and m_lastV8String points to B's handle. (3) A minor GC is triggered and a weak callback is called back for StringImpl A. At this point, "foo" is removed from m_stringCache. A's handle is disposed. However, m_lastV8String is not cleared because m_lastStringImpl (i.e. StringImpl B) is not equal to StringImpl A. As a result, m_lastV8String points to a stale persistent handle. (4) The persistent handle is eventually reused in V8 and made weak again. (5) StringImpl B with value "foo" is accessed. Then StringCache::v8ExternalString() returns the stale persistent handle, which is already used for another purpose. To solve the problem, we need to clear m_stringImpl and m_lastV8String when any string wrapper is disposed. Specifically, we need to change the code like this: static void cachedStringCallback(v8::Persistent wrapper, void* parameter) { StringImpl* stringImpl = static_cast(parameter); V8PerIsolateData::current()->stringCache()->remove(stringImpl); wrapper.Dispose(); stringImpl->deref(); } void StringCache::remove(StringImpl* stringImpl) { m_stringCache.remove(stringImpl); if (m_lastStringImpl.get() == stringImpl) { // Remove this line. m_lastStringImpl = 0; m_lastV8String.Clear(); } } Note: Removing the line might be stronger than is needed. Instead of removing the line, we can just replace the line with 'if (m_lastV8String == wrapper)'. However, just in case (for correctness), I'd prefer removing the line. Given that GC won't happen so frequently, clearing the cache in every weak callback won't affect performance. No tests because it depends on the GC behavior and I couldn't reproduce the bug. * bindings/v8/V8ValueCache.cpp: (WebCore::StringCache::remove): 2012-09-26 Antti Koivisto CSSComputedStyleDeclaration::getPropertyCSSValue() triggering unnecessary relayouts and style recalcs https://bugs.webkit.org/show_bug.cgi?id=97760 Reviewed by Andreas Kling. Currently getPropertyCSSValue() (which is also used to implement the more common getPropertyValue()) calls Document::updateLayoutIgnorePendingStylesheets() unconditionally. However only a few properties are actually layout dependent, making many of these relayouts unnecessary. Moreover, triggering full style recalc is also often unnecessary as the current node may already have valid style even if some other parts of the tree require recalc. - Only trigger relayouts for layout dependent properties. - Trigger style recalc only if the style of the current element or its ancestors is dirty. This is a significant (several percent) progression on some real world web content based page loading benchmarks. * css/CSSComputedStyleDeclaration.cpp: (WebCore::isLayoutDependentProperty): (WebCore): (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): * css/StyleResolver.h: (WebCore::StyleResolver::hasViewportDependentMediaQueries): * dom/Document.cpp: (WebCore::Document::hasPendingStyleRecalc): Renamed for consistency. (WebCore::Document::hasPendingForcedStyleRecalc): (WebCore): * dom/Document.h: (Document): * rendering/RenderImage.cpp: (WebCore::RenderImage::imageChanged): 2012-09-27 Mark Pilgrim [Chromium] Remove unused PlatformSupport reference in DraggedIsolatedFileSystem https://bugs.webkit.org/show_bug.cgi?id=97851 Reviewed by Kentaro Hara. Part of a refactoring series. See tracking bug 82948. * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp: 2012-09-27 Andrew Lo requestAnimationFrame broken with subframes (DisplayRefreshMonitorManager::registerClient fails to register client) https://bugs.webkit.org/show_bug.cgi?id=95360 Reviewed by Simon Fraser. Remove unnecessary code introduced in http://trac.webkit.org/changeset/129808. No new tests because it's already covered by fast/animation/request-animation-frame-iframe2.html. * platform/graphics/DisplayRefreshMonitor.cpp: (WebCore::DisplayRefreshMonitor::addClient): (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient): 2012-09-27 Mark Pilgrim [Chromium] Remove unused PlatformSupport reference in FontCacheSkia https://bugs.webkit.org/show_bug.cgi?id=97850 Reviewed by Kentaro Hara. Part of a refactoring series. See tracking bug 82948. * platform/graphics/skia/FontCacheSkia.cpp: 2012-09-27 Mark Pilgrim [Chromium][Android] Remove unused PlatformSupport reference in ScrollbarThemeChromiumAndroid https://bugs.webkit.org/show_bug.cgi?id=97846 Reviewed by Kentaro Hara. Part of a refactoring series. See tracking bug 82948. * platform/chromium/ScrollbarThemeChromiumAndroid.cpp: 2012-09-27 Mark Pilgrim [Chromium] Remove unused PlatformSupport reference in ClipboardChromium https://bugs.webkit.org/show_bug.cgi?id=97840 Reviewed by Kentaro Hara. Part of a refactoring series. See tracking bug 82948. * platform/chromium/ClipboardChromium.cpp: 2012-09-27 Kent Tamura DateTimeNumericFieldElement should use Localizer functions. https://bugs.webkit.org/show_bug.cgi?id=97318 Reviewed by Hajime Morita. Source/WebCore: Use Localizer functions instead of functions in LocalizedNumber to test i18n behavior. This affects only layout tests because Document::getLocalizer() always returns a Localizer for the browser locale. To obtain a Localizer object for 's locale from a deep shadow node, we add localeIdentifier() function to DateTimeFieldElement::FieldOwner and DateTimeEditElement::EditControlOwner interfaces. Tests: fast/forms/time-multiple-fields/time-multiple-fields-localization.html * html/shadow/DateTimeFieldElement.h: (FieldOwner): Add localeIdentifier callback. (DateTimeFieldElement): Add localeIdentifier(). * html/shadow/DateTimeFieldElement.cpp: (WebCore::DateTimeFieldElement::localeIdentifier): Added. Returns FieldOwner::localeIdentifier if m_fieldOwner is available. * html/shadow/DateTimeNumericFieldElement.h: (DateTimeNumericFieldElement): Declare localizer(). * html/shadow/DateTimeNumericFieldElement.cpp: (WebCore::DateTimeNumericFieldElement::localizer): Returns a Localizer for DateTimeFieldElement::localeIdentifier() (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Use localizer(). (WebCore::DateTimeNumericFieldElement::value): Use localizer(). * html/shadow/DateTimeEditElement.h: (EditControlOwner): Add localeIdentifier() callback. (DateTimeEditElement): Declare localeIdentifier(), which implements FieldOwner::localeIdentifier(). * html/shadow/DateTimeEditElement.cpp: (WebCore::DateTimeEditElement::localeIdentifier): Added. Returns EditControlOwner::localeIdentifier if m_editControlOwner is available. * html/BaseMultipleFieldsDateAndTimeInputType.h: (BaseMultipleFieldsDateAndTimeInputType): Declare localeIdentifier(), which implements EditControlOwner::localeIdentifier(). * html/BaseMultipleFieldsDateAndTimeInputType.cpp: (WebCore::BaseMultipleFieldsDateAndTimeInputType::localeIdentifier): Added. Returns 's inherited locale identifier. 2012-09-27 Luke Macpherson Implement reviewer feedback that I missed on bug 95930. https://bugs.webkit.org/show_bug.cgi?id=97752 Reviewed by Alexey Proskuryakov. This patch updates the indentation of function parameters in a few places, and reserves an appropriate amount of space when using StringBuilder. * css/CSSBasicShapes.cpp: (WebCore::buildRectangleString): (WebCore::CSSBasicShapeRectangle::cssText): (WebCore::CSSBasicShapeRectangle::serializeResolvingVariables): (WebCore::CSSBasicShapeCircle::serializeResolvingVariables): (WebCore::CSSBasicShapeEllipse::serializeResolvingVariables): (WebCore::buildPolygonString): * css/Rect.h: (WebCore::Rect::serializeResolvingVariables): (WebCore::Quad::serializeResolvingVariables): (WebCore::Quad::generateCSSString): 2012-09-27 Sheriff Bot Unreviewed, rolling out r129823. http://trac.webkit.org/changeset/129823 https://bugs.webkit.org/show_bug.cgi?id=97837 Cause a bunch of pixel failures on Chrome Linux that look like real regressions (Requested by ojan on #webkit). * platform/graphics/harfbuzz/FontHarfBuzz.cpp: (WebCore::Font::drawGlyphs): (WebCore::Font::drawComplexText): * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: (WebCore::FontPlatformData::setupPaint): * platform/graphics/skia/SimpleFontDataSkia.cpp: (WebCore::SimpleFontData::platformWidthForGlyph): 2012-09-27 Mark Pilgrim [Chromium] Remove screen-related functions from PlatformSupport https://bugs.webkit.org/show_bug.cgi?id=97474 Reviewed by Adam Barth. Part of a refactoring series. See tracking bug 82948. Screen-related functions like screenHorizontalDPI that used to be on PlatformSupport are now accessed through a new PlatformPageClient attached to Widget in WebCore-land, which is implemented by ChromeClientImpl in WebKit-land, which proxies calls to WebWidgetClient, which is actually implemented in Chromium-land. * WebCore.gypi: * platform/Widget.h: * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h. (PageClientChromium): * platform/chromium/PlatformScreenChromium.cpp: (WebCore::toPlatformPageClient): (WebCore): (WebCore::screenHorizontalDPI): (WebCore::screenVerticalDPI): (WebCore::screenDepth): (WebCore::screenDepthPerComponent): (WebCore::screenIsMonochrome): (WebCore::screenRect): (WebCore::screenAvailableRect): * platform/chromium/PlatformSupport.h: (PlatformSupport): 2012-09-27 Kenichi Ishibashi [Chromium] FontHarfBuzz.cpp should not use drawTextOnPath(). https://bugs.webkit.org/show_bug.cgi?id=97676 Reviewed by Tony Chang. Use drawPosText() if possible for vertical text. Use drawTextOnPath() only if the font doesn't have vhea/vmtx table. No new tests. No change in behavior on LayoutTests. Confirmed improvement in vertical text positioning using ipafont and Skia r5677. * platform/graphics/harfbuzz/FontHarfBuzz.cpp: (WebCore::drawVerticalTextWithBrokenIdeographs): Added. (WebCore): (WebCore::Font::drawGlyphs): Draw vertical text by drawPosText() in a similar manner of FontSkia.cpp. (WebCore::Font::drawComplexText): Disable setVerticalText(). Complex path doesn't support it now. * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: (WebCore::FontPlatformData::setupPaint): Call setVertialText(). * platform/graphics/skia/SimpleFontDataSkia.cpp: (WebCore::SimpleFontData::platformWidthForGlyph): Disable setVerticalText() if the font doesn't have vertical metrics. 2012-09-27 Sheriff Bot Unreviewed, rolling out r129806. http://trac.webkit.org/changeset/129806 https://bugs.webkit.org/show_bug.cgi?id=97831 Broke windows build due to missing header (Requested by jsbell on #webkit). * Modules/indexeddb/IDBLevelDBCoding.cpp: (WebCore::IDBLevelDBCoding::encodeString): (WebCore::IDBLevelDBCoding::decodeString): 2012-09-27 Levi Weintraub REGRESSION(r129186): Pressing enter at the end of a line deletes the line https://bugs.webkit.org/show_bug.cgi?id=97763 Reviewed by Ryosuke Niwa. r129186 exposed incorrect behavior in RenderText whereby RenderText's lines were dirtied but the renderer wasn't marked for layout. Rich text editing in GMail exposed this behavior. RenderText::setTextWithOffset is called with a text string identical to the current text. It still dirties lines, then calls setText, which has a check for the case when the strings are the same and returns early and doesn't mark us as needing layout. This change adds the same early bailing logic in setText to setTextWithOffset, but forces setText to work its magic whenever we dirty lines there (and avoid double- checking that the strings are equal). * rendering/RenderText.cpp: (WebCore::RenderText::setTextWithOffset): 2012-09-27 Andrew Lo requestAnimationFrame broken with subframes (DisplayRefreshMonitorManager::registerClient fails to register client) https://bugs.webkit.org/show_bug.cgi?id=95360 Reviewed by Simon Fraser. DisplayRefreshMonitorManager::ensureMonitorForClient currently only adds the DisplayRefreshMonitorClient to the appropriate DisplayRefreshMonitor when a new monitor is created. It should also do so when it finds an existing monitor. Test: fast/animation/request-animation-frame-iframe2.html * platform/graphics/DisplayRefreshMonitor.cpp: (WebCore::DisplayRefreshMonitor::addClient): (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient): 2012-09-27 Erik Arvidsson Unreviewed Chromium debug build fix. Two fixes makes one breakage http://trac.webkit.org/changeset/129785 http://trac.webkit.org/changeset/129798 * bindings/v8/V8Binding.h: (WebCore::toNativeArguments): 2012-09-27 Joshua Bell IndexedDB: Optimize encodeString/decodeString https://bugs.webkit.org/show_bug.cgi?id=97794 Reviewed by Tony Chang. Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling. The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy isn't sufficient, but the code used StringBuilder::append() character-by-character and custom byte-swapping which was slow. Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string and putting it 20k times and getting it 20k times. On my test box, mean time before the patch was 8.2s, mean time after the patch was 4.6s. Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*' * Modules/indexeddb/IDBLevelDBCoding.cpp: (WebCore::IDBLevelDBCoding::encodeString): (WebCore::IDBLevelDBCoding::decodeString): 2012-09-27 Mark Pilgrim [Chromium][Mac] Move Mac-specific theme functions out of PlatformSupport https://bugs.webkit.org/show_bug.cgi?id=97817 Reviewed by Adam Barth. Part of a refactoring series. See tracking bug 82948. We're calling WebThemeEngine directly now instead of proxying through PlatformSupport. * platform/chromium/PlatformSupport.h: (PlatformSupport): * platform/chromium/ScrollbarThemeChromiumMac.mm: (WebCore::scrollbarStateToThemeState): (WebCore): (WebCore::ScrollbarThemeChromiumMac::paint): 2012-09-27 Erik Arvidsson Fix issue with ClassList which was hitting an assert in debug mode https://bugs.webkit.org/show_bug.cgi?id=97820 Reviewed by Ojan Vafai. http://trac.webkit.org/changeset/129779 hit asserts in debug mode when trying to use fastGetAttribute on an SVG element. No new tests. No change in behavior. * bindings/v8/V8Binding.h: (WebCore::toNativeArguments): * html/ClassList.h: 2012-09-27 Philip Rogers Rewrite multithreaded filter job dispatching https://bugs.webkit.org/show_bug.cgi?id=97500 Reviewed by Dean Jackson. This patch solves the problem of splitting up images into subregions for multithreaded filters. This fixes the way we partition the image array into equal-sized chunks. If we have an array of length N and want to split it into K chunks, we calculate: int jobSize = N / K; // integer division, so this is floored int jobSizeExtra = N % K; // modulus produces the remainder We then split the array into jobSizeExtra number of jobs with size jobSize + 1 and (K - jobSizeExtra) number of jobs with size jobSize. This pattern is used in each of the 5 filters in this patch. This patch primarily fixes an error in FEMorphology::platformApply where the image array was partitioned into (1 + (N / K)) pieces with the last job taking the remainder. Unfortunately, this can cause overruns in the 2nd-to-last job. Consider N = 2373 and K = 64 jobs. Job 0 would take indices 0...38, job 1 would take 38...76, etc. Unfortunately the 62nd job takes 2356...2394 which overruns. To prevent similar issues elsewhere this patch updates all of the filters to use the same pattern as FEMorphology. Test: svg/filters/feMorphology-crash.html * platform/graphics/filters/FEConvolveMatrix.cpp: (WebCore::FEConvolveMatrix::platformApplySoftware): * platform/graphics/filters/FEGaussianBlur.cpp: (WebCore::FEGaussianBlur::platformApply): * platform/graphics/filters/FELighting.cpp: (WebCore::FELighting::platformApplyGeneric): * platform/graphics/filters/FEMorphology.cpp: (WebCore::FEMorphology::platformApply): Some special care is taken for Gaussian Blur because there is an extraHeight parameter for sampling outside the image's dimensions. This means we use the same partitioning algorithm but add extraHeight padding on the lower and upper bounds. * platform/graphics/filters/FETurbulence.cpp: (WebCore::FETurbulence::platformApplySoftware): 2012-09-27 Mark Pilgrim [Chromium] Move UNIX-specific theme functions out of PlatformSupport https://bugs.webkit.org/show_bug.cgi?id=96516 Reviewed by Adam Barth. Call WebThemeEngine functions and use WebThemeEngine enums directly from the new Platform/ directly; remove all intermediate functions and enums and conversion functions from PlatformSupport. Part of a refactoring series; see tracking bug 82948. * WebCore.gyp/WebCore.gyp: * platform/chromium/PlatformSupport.h: (PlatformSupport): * platform/chromium/ScrollbarThemeChromiumLinux.cpp: (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness): (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece): (WebCore::ScrollbarThemeChromiumLinux::paintButton): (WebCore::ScrollbarThemeChromiumLinux::paintThumb): (WebCore::ScrollbarThemeChromiumLinux::buttonSize): (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength): * rendering/RenderThemeChromiumAndroid.cpp: (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle): (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding): * rendering/RenderThemeChromiumLinux.cpp: (WebCore::getWebThemeState): (WebCore): (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize): (WebCore::RenderThemeChromiumLinux::paintCheckbox): (WebCore::RenderThemeChromiumLinux::setCheckboxSize): (WebCore::RenderThemeChromiumLinux::paintRadio): (WebCore::RenderThemeChromiumLinux::setRadioSize): (WebCore::RenderThemeChromiumLinux::paintButton): (WebCore::RenderThemeChromiumLinux::paintTextField): (WebCore::RenderThemeChromiumLinux::paintMenuList): (WebCore::RenderThemeChromiumLinux::paintSliderTrack): (WebCore::RenderThemeChromiumLinux::paintSliderThumb): (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle): (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton): (WebCore::RenderThemeChromiumLinux::paintProgressBar): 2012-09-27 Bear Travis [CSS Exclusions] Rename RenderStyle::wrapShapeInside/Outside to shapeInside/Outside https://bugs.webkit.org/show_bug.cgi?id=97707 Reviewed by Antti Koivisto. The exclusions specification has renamed wrap-shape-inside and wrap-shape-outside to shape-inside and shape-outside. We should rename the getter/setter functions in RenderStyle, and update the derived variable and function names accordingly. For more information, see: http://dev.w3.org/csswg/css3-exclusions/#declaring-shapes Covered by existing tests. No new functionality. * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): * css/StyleBuilder.cpp: (WebCore::ApplyPropertyExclusionShape::applyValue): (WebCore::StyleBuilder::StyleBuilder): * rendering/ExclusionShapeInsideInfo.cpp: (WebCore::ExclusionShapeInsideInfo::exclusionShapeInsideInfoForRenderBlock): (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): (WebCore::ExclusionShapeInsideInfo::removeExclusionShapeInsideInfoForRenderBlock): (WebCore::ExclusionShapeInsideInfo::computeShapeSize): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::styleDidChange): (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): * rendering/RenderBlock.h: (WebCore::RenderBlock::exclusionShapeInsideInfo): * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::diff): * rendering/style/RenderStyle.h: * rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): (WebCore::StyleRareNonInheritedData::operator==): (WebCore::StyleRareNonInheritedData::reportMemoryUsage): * rendering/style/StyleRareNonInheritedData.h: (StyleRareNonInheritedData): 2012-09-27 Michael Saboff ApplicationCacheStorage does not optimally handle 8 bit strings https://bugs.webkit.org/show_bug.cgi?id=97733 Reviewed by Alexey Proskuryakov. Added 8 bit string paths. No functional change, therefore no new tests. * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::urlHostHash): (WebCore::ApplicationCacheStorage::store): (WebCore::parseHeader): (WebCore::parseHeaders): 2012-09-27 Stephen Chenney Unreviewed Chromium debug build fix. ASSERT contains an inequality of unmatched types. A cast should do the trick. * bindings/v8/V8Binding.h: (WebCore::toNativeArguments): 2012-09-27 Adam Klein Simplify and clarify MutationObserverRegistration interface and usage https://bugs.webkit.org/show_bug.cgi?id=97742 Reviewed by Ojan Vafai. Minor cleanups in MutationObserverRegistration: make const methods explicitly const, use C++ templates to avoid duplicating logic, improve usage of raw pointers vs PassRefPtr, remove the declaration of a no-longer-existing method. No change in behavior. * dom/MutationObserverRegistration.cpp: (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach): Take a raw pointer because we don't always ref the node. (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom): Make this a const method. * dom/MutationObserverRegistration.h: (MutationObserverRegistration): Removed declaration of non-existent caseInsensitiveAttributeFilter method. (WebCore::MutationObserverRegistration::hasTransientRegistrations): const method. (WebCore::MutationObserverRegistration::isSubtree): Remove superfluous "inline" keyword. (WebCore::MutationObserverRegistration::observer): const method. * dom/Node.cpp: (WebCore): (WebCore::collectMatchingObserversForMutation): Add a templatized function to reduce duplicated code. (WebCore::Node::getRegisteredMutationObserversOfType): (WebCore::Node::registerMutationObserver): Take a raw pointer because we don't always ref the observer. * dom/Node.h: (Node): Remove old method, replaced by templatized static function. 2012-09-27 Erik Arvidsson DOM4: Add support for rest parameters to DOMTokenList https://bugs.webkit.org/show_bug.cgi?id=97335 Reviewed by Ojan Vafai. This adds support for rest paramaters to DOMTokenList add and remove. http://dom.spec.whatwg.org/#domtokenlist The code generator has been updated to understand variadic methods. When a method has a rest parameter the remaining arguments are collected into a WTF::Vector. DOMTokenList, DOMSettableTokenList and ClassList were restructured a bit to allow code to be shared better. Updated existing tests and includes new binding tests. * bindings/js/JSDOMBinding.h: (WebCore::toNativeArray): (WebCore): (WebCore::toNativeArguments): Similar to toNativeArray but extracts the arguments instead. * bindings/scripts/CodeGeneratorJS.pm: (GenerateArgumentsCountCheck): Updated to treat rest paramaters as optional. (GenerateParametersCheck): Generate code for rest params. * bindings/scripts/CodeGeneratorV8.pm: (GenerateFunctionParametersCheck): Updated to treat rest paramaters as optional. (GenerateArgumentsCountCheck): Ditto. (GenerateParametersCheck): Generate code for rest params. * bindings/scripts/IDLParser.pm: (parseOptionalOrRequiredArgument): * bindings/scripts/IDLStructure.pm: * bindings/scripts/test/CPP/WebDOMTestObj.cpp: (WebDOMTestObj::variadicStringMethod): (WebDOMTestObj::variadicDoubleMethod): (WebDOMTestObj::variadicNodeMethod): * bindings/scripts/test/CPP/WebDOMTestObj.h: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_variadic_string_method): (webkit_dom_test_obj_variadic_double_method): (webkit_dom_test_obj_variadic_node_method): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore): (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod): (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod): (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod): * bindings/scripts/test/JS/JSTestObj.h: (WebCore): * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj variadicStringMethod:tail:]): (-[DOMTestObj variadicDoubleMethod:tail:]): (-[DOMTestObj variadicNodeMethod:tail:]): * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjV8Internal::variadicStringMethodCallback): (TestObjV8Internal): (WebCore::TestObjV8Internal::variadicDoubleMethodCallback): (WebCore::TestObjV8Internal::variadicNodeMethodCallback): (WebCore): (WebCore::ConfigureV8TestObjTemplate): * bindings/v8/V8Binding.h: (WebCore::toNativeArray): (WebCore): (WebCore::toNativeArguments): Similar to toNativeArray but extracts the arguments instead. * html/ClassList.cpp: (WebCore::ClassList::ClassList): * html/ClassList.h: (WebCore): (ClassList): * html/DOMSettableTokenList.cpp: (WebCore::DOMSettableTokenList::containsInternal): (WebCore::DOMSettableTokenList::add): (WebCore::DOMSettableTokenList::addInternal): (WebCore::DOMSettableTokenList::remove): (WebCore::DOMSettableTokenList::removeInternal): (WebCore::DOMSettableTokenList::setValue): * html/DOMSettableTokenList.h: (DOMSettableTokenList): * html/DOMTokenList.cpp: (WebCore::DOMTokenList::validateTokens): (WebCore): (WebCore::DOMTokenList::contains): Moved implementation to base class to allow code sharing. (WebCore::DOMTokenList::add): Ditto. (WebCore::DOMTokenList::remove): Ditto. (WebCore::DOMTokenList::toggle): Ditto. (WebCore::DOMTokenList::addInternal): Ditto. (WebCore::DOMTokenList::removeInternal): Ditto. (WebCore::DOMTokenList::addToken): Ditto. (WebCore::DOMTokenList::addTokens): (WebCore::DOMTokenList::removeToken): Ditto. (WebCore::DOMTokenList::removeTokens): * html/DOMTokenList.h: (DOMTokenList): (WebCore::DOMTokenList::toString): * html/DOMTokenList.idl: 2012-09-27 Andreas Kling 332kB below DocumentEventQueue::create() on Membuster3. Reviewed by Anders Carlsson. Give DocumentEventQueue::m_queuedEvents an inline capacity of 16 (the default is 256.) 312kB progression on Membuster3. * dom/DocumentEventQueue.h: * dom/DocumentEventQueue.cpp: (WebCore::DocumentEventQueue::pendingEventTimerFired): 2012-09-27 Vsevolod Vlasov Web Inspector: [REGRESSION] Breakpoints are not always shown in breakpoints sidebar pane. https://bugs.webkit.org/show_bug.cgi?id=97783 Reviewed by Pavel Feldman. BreakpointSidebarPane now explicitly adds all breakpoints that are available at the moment of its creation. * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations): (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode): (WebInspector.BreakpointManager.prototype.allBreakpointLocations): * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.JavaScriptBreakpointsSidebarPane): (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded): 2012-09-27 Mike West Dropping JSC references from InspectorInstrumentation.h by including 'ScriptState.h' https://bugs.webkit.org/show_bug.cgi?id=97759 Reviewed by Adam Barth. InspectorInstrumentation.h includes two '#if USE(JSC)' blocks, which I've been reliably informed should not appear in WebCore[1]. This patch drops both blocks, and includes 'ScriptState.h' instead, which should have the same practical effect. There's no functional change, so this should be covered by existing tests. [1]: https://bugs.webkit.org/show_bug.cgi?id=94433#c55 * inspector/InspectorInstrumentation.h: (WebCore): 2012-09-27 Erik Arvidsson Remove unused regular expressions from IDLStructure.pm https://bugs.webkit.org/show_bug.cgi?id=97790 Reviewed by Kentaro Hara. After http://trac.webkit.org/changeset/129723 these regular expressions are no longer used. No new tests, run-binding-tests generates the same output. * bindings/scripts/IDLStructure.pm: 2012-09-27 Tommy Widenflycht MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data https://bugs.webkit.org/show_bug.cgi?id=97559 Reviewed by Adam Barth. Instead of just returning the names, return a pair of name and value. Existing tests cover this patch. * Modules/mediastream/MediaConstraintsImpl.cpp: (WebCore::MediaConstraintsImpl::initialize): (WebCore::MediaConstraintsImpl::getMandatoryConstraints): (WebCore::MediaConstraintsImpl::getOptionalConstraints): (WebCore::MediaConstraintsImpl::getOptionalConstraintValue): * Modules/mediastream/MediaConstraintsImpl.h: (MediaConstraintsImpl): * platform/chromium/support/WebMediaConstraints.cpp: (WebKit::WebMediaConstraint::WebMediaConstraint): (WebKit): (WebKit::WebMediaConstraints::getMandatoryConstraints): (WebKit::WebMediaConstraints::getOptionalConstraints): * platform/mediastream/MediaConstraints.h: (WebCore::MediaConstraint::MediaConstraint): (MediaConstraint): (WebCore): (MediaConstraints): 2012-09-27 Ilya Tikhonovsky Web Inspector: NMI: move visited and countObjectSize methods implementation into separate class. https://bugs.webkit.org/show_bug.cgi?id=97461 Reviewed by Yury Semikhatsky. These methods and the data collected by them need to be used in the instrumentation code for other components. As example when we are visiting bitmaps we need to visit platform specific objects. These objects will be instrumented with help of component's own instrumentation code but we have to keep the single set of visited objects and the map of counters. * inspector/InspectorMemoryAgent.cpp: (WebCore): (WebCore::collectDomTreeInfo): (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution): * inspector/MemoryInstrumentationImpl.cpp: (WebCore::MemoryInstrumentationClientImpl::countObjectSize): (WebCore): (WebCore::MemoryInstrumentationClientImpl::visited): (WebCore::MemoryInstrumentationImpl::selfSize): * inspector/MemoryInstrumentationImpl.h: (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl): (WebCore::MemoryInstrumentationClientImpl::selfSize): (MemoryInstrumentationClientImpl): (WebCore::MemoryInstrumentationClientImpl::visitedObjects): (WebCore): (MemoryInstrumentationImpl): (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl): (WebCore::MemoryInstrumentationImpl::checkInstrumentedObjects): 2012-09-27 Jinwoo Song [CMAKE] Remove unnecessary header files from CMakeLists.txt https://bugs.webkit.org/show_bug.cgi?id=97771 Reviewed by Kentaro Hara. Remove the header files which are added in the source file list. * CMakeLists.txt: 2012-09-27 Andrey Kosyakov Unreviewed, re-landing r129633 with the proper order of calls. https://bugs.webkit.org/show_bug.cgi?id=97659 * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::paint): 2012-09-27 Andrey Kosyakov Unreviewed, rolling out r129633. http://trac.webkit.org/changeset/129633 https://bugs.webkit.org/show_bug.cgi?id=97659 Breaks inspector overlay in non-composited mode * inspector/InspectorOverlay.cpp: (WebCore::InspectorOverlay::paint): 2012-09-27 Christophe Dumez [EFL] Remove duplicated CSS between mediaControlsEfl.css and mediaControlsEflFullscreen.css https://bugs.webkit.org/show_bug.cgi?id=97770 Reviewed by Kenneth Rohde Christiansen. Some CSS rules were duplicated between mediaControlsEfl.css and mediaControlsEflFullscreen.css for no reason. This is an issue because it is easy to update mediaControlsEfl.css and forget to make the same update to mediaControlsEflFullscreen.css. As a matter of fact, the timeline display in fullscreen is currently off by a few pixels because its fullscreen CSS is not in sync with what is in mediaControlsEfl.css. We need to include in mediaControlsEflFullscreen.css only the CSS rules that are specific to fullscreen mode, that is to say, the hiding of some controls. No new tests, no behavior change for layout tests. * css/mediaControlsEflFullscreen.css: 2012-09-27 Vsevolod Vlasov Web Inspector: Open resource dialog should assume implicit wildcard in the beginning of the query. https://bugs.webkit.org/show_bug.cgi?id=97768 Reviewed by Pavel Feldman. Open resource dialog now assumes implicit wildcard in the beginning of the query. * inspector/front-end/FilteredItemSelectionDialog.js: (WebInspector.FilteredItemSelectionDialog.prototype._innerCreateSearchRegExp): 2012-09-27 Pavel Feldman Web Inspector: do not use InspectorInstrumentation::hasFrontends() check when collecting stacks https://bugs.webkit.org/show_bug.cgi?id=96730 Reviewed by Vsevolod Vlasov. - Introduced InspectorInstrumentation::console|timeline|runtime|canvasAgentEnabled - Using it all over the place instead of the hasFrontend (the latter is now only used once to guard hot path) - Introduced explicit "enabled" state of the console and runtime agents * bindings/js/JSHTMLCanvasElementCustom.cpp: (WebCore::JSHTMLCanvasElement::getContext): * bindings/js/JSMainThreadExecState.h: (WebCore::JSMainThreadExecState::instrumentFunctionCall): * bindings/js/ScheduledAction.cpp: (WebCore::ScheduledAction::create): * bindings/js/ScriptCallStackFactory.cpp: (WebCore::createScriptCallStackForConsole): * bindings/js/ScriptCallStackFactory.h: (WebCore): * bindings/scripts/CodeGeneratorJS.pm: (GenerateCallWith): * bindings/scripts/CodeGeneratorV8.pm: (GenerateCallWith): * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute): (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute): (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack): * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter): (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter): (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback): * bindings/v8/ScriptCallStackFactory.cpp: (WebCore::createScriptCallStackForConsole): * bindings/v8/ScriptCallStackFactory.h: (WebCore): * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::callFunctionWithInstrumentation): * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin): * bindings/v8/V8WorkerContextEventListener.cpp: (WebCore::V8WorkerContextEventListener::callListenerFunction): * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::WindowSetTimeoutImpl): * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: (WebCore::V8HTMLCanvasElement::getContextCallback): * bindings/v8/custom/V8WorkerContextCustom.cpp: (WebCore::SetTimeoutOrInterval): * inspector/Inspector.json: * inspector/InspectorConsoleAgent.cpp: (WebCore): (WebCore::InspectorConsoleAgent::InspectorConsoleAgent): (WebCore::InspectorConsoleAgent::enable): (WebCore::InspectorConsoleAgent::disable): (WebCore::InspectorConsoleAgent::clearMessages): (WebCore::InspectorConsoleAgent::clearFrontend): (WebCore::InspectorConsoleAgent::addConsoleMessage): * inspector/InspectorConsoleAgent.h: (WebCore::InspectorConsoleAgent::enabled): (InspectorConsoleAgent): * inspector/InspectorController.cpp: (WebCore::InspectorController::connectFrontend): (WebCore::InspectorController::disconnectFrontend): * inspector/InspectorInstrumentation.cpp: (WebCore): (WebCore::InspectorInstrumentation::canvasAgentEnabled): (WebCore::InspectorInstrumentation::consoleAgentEnabled): (WebCore::InspectorInstrumentation::runtimeAgentEnabled): (WebCore::InspectorInstrumentation::timelineAgentEnabled): * inspector/InspectorInstrumentation.h: (InspectorInstrumentation): (WebCore::InspectorInstrumentation::canvasAgentEnabled): (WebCore::InspectorInstrumentation::consoleAgentEnabled): (WebCore::InspectorInstrumentation::runtimeAgentEnabled): (WebCore::InspectorInstrumentation::timelineAgentEnabled): * inspector/InspectorRuntimeAgent.cpp: (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent): * inspector/InspectorRuntimeAgent.h: (WebCore::InspectorRuntimeAgent::enabled): (WebCore::InspectorRuntimeAgent::enable): (WebCore::InspectorRuntimeAgent::disable): (InspectorRuntimeAgent): * inspector/PageRuntimeAgent.cpp: (PageRuntimeAgentState): (WebCore::PageRuntimeAgent::clearFrontend): (WebCore::PageRuntimeAgent::restore): (WebCore): (WebCore::PageRuntimeAgent::enable): (WebCore::PageRuntimeAgent::disable): (WebCore::PageRuntimeAgent::didClearWindowObject): (WebCore::PageRuntimeAgent::didCreateIsolatedContext): (WebCore::PageRuntimeAgent::reportExecutionContextCreation): * inspector/PageRuntimeAgent.h: (PageRuntimeAgent): * inspector/WorkerRuntimeAgent.cpp: * inspector/WorkerRuntimeAgent.h: * inspector/front-end/RuntimeModel.js: (WebInspector.RuntimeModel.prototype._didLoadCachedResources): * page/DOMWindow.cpp: (WebCore::DOMWindow::postMessage): 2012-09-27 Allan Sandfeld Jensen Unify event handling of middle mouse button. https://bugs.webkit.org/show_bug.cgi?id=97690 Reviewed by Tony Chang. Implement a unified version of middle mouse button press that can be shared between all the ports with X11 support. * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEventSingleClick): (WebCore::EventHandler::handleMouseReleaseEvent): (WebCore::EventHandler::handlePasteGlobalSelection): * page/EventHandler.h: (EventHandler): 2012-09-27 Tommy Widenflycht MediaStream API: Update getUserMedia to match the latest specification https://bugs.webkit.org/show_bug.cgi?id=97540 Reviewed by Adam Barth. http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia Navigator.getUserMedia is changed so that the audio and video members can either be a bool or a constraints object. Existing tests expanded to cover the new change. * Modules/mediastream/MediaConstraintsImpl.cpp: (WebCore::MediaConstraintsImpl::create): (WebCore): * Modules/mediastream/MediaConstraintsImpl.h: (MediaConstraintsImpl): * Modules/mediastream/NavigatorMediaStream.cpp: (WebCore::NavigatorMediaStream::webkitGetUserMedia): * Modules/mediastream/UserMediaRequest.cpp: (WebCore::parseOptions): (WebCore): (WebCore::UserMediaRequest::create): (WebCore::UserMediaRequest::UserMediaRequest): (WebCore::UserMediaRequest::audio): (WebCore::UserMediaRequest::video): (WebCore::UserMediaRequest::audioConstraints): (WebCore::UserMediaRequest::videoConstraints): * Modules/mediastream/UserMediaRequest.h: (WebCore): (UserMediaRequest): * platform/chromium/support/WebMediaConstraints.cpp: (WebKit::WebMediaConstraints::WebMediaConstraints): (WebKit): 2012-09-27 Vsevolod Vlasov Unreviewed inspector front-end closure compilation fix. * inspector/front-end/UISourceCode.js: (WebInspector.UISourceCode.prototype.revertToOriginal): (WebInspector.UISourceCode.prototype.revertAndClearHistory): 2012-09-25 Alexander Pavlov CollectingRules and QueryingRules modes of SelectorChecker miss some complex selectors with pseudo elements https://bugs.webkit.org/show_bug.cgi?id=78595 Reviewed by Antti Koivisto. Do not use the same dynamicPseudo reference when recursively invoking checkSelector() for non-SubSelector selectors. Test: fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex.html * css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkSelector): Use new NOPSEUDO dynamic pseudoId values for each non-SubSelector selector further in the tag history. 2012-09-27 Christophe Dumez [EFL] No way to exit video fullscreen mode once entered https://bugs.webkit.org/show_bug.cgi?id=97631 Reviewed by Kenneth Rohde Christiansen. Show fullscreen media control in fullscreen so that we now have a way to exit fullscreen mode. No new tests, no behavior change for layout tests. * css/mediaControlsEflFullscreen.css: * platform/efl/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::emitMediaButtonSignal): (WebCore::RenderThemeEfl::paintMediaFullscreenButton): 2012-09-27 Yoshifumi Inoue [Forms] BaseMultipleFieldsDateAndTimeInputType class should inherit DateTimeEditElement::EditControlOwner rather than containing https://bugs.webkit.org/show_bug.cgi?id=97756 Reviewed by Kent Tamura. This patch changes class hierarchy of BaseMultipleFieldsDateAndTimeInputType to inherit from DateTimeEditElement::EditControlOwner rather than containing an instance of DateTimeEditElement::EditControlOwner for saving memory, although one pointer, and one memory fetch on using HTMLInputElement. Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_MULTIPLE_FIELDS_UI. No new tests. This patch doesn't change behavior. * html/BaseMultipleFieldsDateAndTimeInputType.cpp: DateTimeEditElement::EditControlOwner::DateTimeformatDateTimeFieldsState was removed. We no longer need to redirection. Each date/time input type classe implements it. (WebCore::BaseMultipleFieldsDateAndTimeInputType::didBlurFromControl): Moved from DateTimeEditControlOwnerImpl and removed reference of m_dateTimeInputType. (WebCore::BaseMultipleFieldsDateAndTimeInputType::didFocusOnControl): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Changed to pass BaseMultipleFieldsDateAndTimeInputType instead of DateTimeEditControlOwnerImpl. * html/BaseMultipleFieldsDateAndTimeInputType.h: Changed base class to have DateTImeEditElement::EditControlOwner. (BaseMultipleFieldsDateAndTimeInputType): Removed DateTimeEditControlOwnerImpl class and member variable m_dateTimeEditControlOwner. 2012-09-27 Keishi Hattori SuggestionPicker should support rtl https://bugs.webkit.org/show_bug.cgi?id=97555 Reviewed by Kent Tamura. Add support for rtl to SuggestionPicker. We add another parameter because text direction for the calendar picker should depend on the UI language but the text direction for suggestion picker should depend on the input element style. Test: platform/chromium/fast/forms/date/date-suggestion-picker-appearance-rtl.html * Resources/pagepopups/calendarPicker.js: (CalendarPicker.prototype._layout): * Resources/pagepopups/pickerCommon.css: (.rtl): Added so we can change styles when in rtl mode. * Resources/pagepopups/suggestionPicker.css: (.suggestion-list-entry .label): (.rtl .suggestion-list-entry .label): Change float direction to left. * Resources/pagepopups/suggestionPicker.js: (SuggestionPicker.prototype._layout): * html/shadow/CalendarPickerElement.cpp: (WebCore::CalendarPickerElement::openPopup): Set isAnchorElementRTL to true if the input element is rtl. * platform/DateTimeChooser.h: (DateTimeChooserParameters): Added isAnchorElementRTL. 2012-09-27 Takashi Sakamoto Follow-up to r129723 to once more allow parsing of scoped names in IDL files. Reviewed by Kentaro Hara. This functionality was supported by the old IDL parser but was lost in the rewrite of the parser in r129723. It is being reinstated to unbreak clients that currently depend on it, but will likely be removed in the future once those clients have a chance to adopt an approach that more closely follows the WebIDL syntax. * bindings/scripts/IDLParser.pm: (parseDefinition): (parseInheritance): (parseImplementsStatement): (parseExtendedAttribute): (parseExtendedAttribute2): (parseExtendedAttributeRest2): (parseExtendedAttributeRest3): (parseScopedNameListNoComma): (parseNonAnyType): (parseExceptionList): (parseDefinitionOld): (parseScopedName): (parseAbsoluteScopedName): (parseRelativeScopedName): (parseScopedNameParts): (parseScopedNameList): (parseScopedNames): 2012-09-27 Yury Semikhatsky Web Inspector: expose debug memory instrumentation debug data through the protocol https://bugs.webkit.org/show_bug.cgi?id=97683 Reviewed by Pavel Feldman. Memory.getProcessMemoryDistribution command now returns number of instrumented objects that were found and the number of the objects that were counted by the instrumentation but were not actually allocated by the memory allocator. These numbers are only added to the response if embedder provides access to the set of all live heap objects. These numbers are intended to be used for testing memory instrumentation. * inspector/InspectorMemoryAgent.cpp: (WebCore::collectDomTreeInfo): * inspector/MemoryInstrumentationImpl.cpp: (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl): (WebCore::MemoryInstrumentationImpl::checkCountedObject): * inspector/MemoryInstrumentationImpl.h: (WebCore::MemoryInstrumentationImpl::checkInstrumentedObjects): (WebCore::MemoryInstrumentationImpl::totalCountedObjects): (WebCore::MemoryInstrumentationImpl::totalObjectsNotInAllocatedSet): (MemoryInstrumentationImpl): 2012-09-27 Mihnea Ovidenie [CSSRegions]Refactor RenderFlowThread::contentLogical(Width/Height/Left)OfFirstRegion https://bugs.webkit.org/show_bug.cgi?id=97577 Reviewed by Andreas Kling. RenderFlowThread methods contentLogicalWidthOfFirstRegion, contentLogicalHeightOfFirstRegion, contentLogicalLeftOfFirstRegion were using code to get the first valid region associated with the flow. We can use RenderFlowThread::firstRegion() method instead. No new tests as this is just refactoring of existing code, the change is covered by existing regions tests. * rendering/RenderFlowThread.cpp: (WebCore::RenderFlowThread::contentLogicalWidthOfFirstRegion): (WebCore::RenderFlowThread::contentLogicalHeightOfFirstRegion): (WebCore): (WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion): (WebCore::RenderFlowThread::firstRegion): (WebCore::RenderFlowThread::lastRegion): (WebCore::RenderFlowThread::computeOverflowStateForRegions): (WebCore::RenderFlowThread::objectInFlowRegion): (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer): 2012-09-27 Patrick Gansterer Build fix for !USE(ICU_UNICODE) after r129662. Convert LChar to UChar so we can call the existing function until the other TextBreakIterator implemenations provide an overload for LChar. * platform/text/TextBreakIterator.cpp: (WebCore): (WebCore::acquireLineBreakIterator): 2012-09-26 Yoshifumi Inoue [Forms] Move multiple fields related functions to BaseDateAndTimeInputType from TimeInputType https://bugs.webkit.org/show_bug.cgi?id=97521 Reviewed by Kent Tamura. This patch introduces new class BaseMultipleFieldsDateAndTimeInputType for sharing code among multiple fields date/time input UI. Member functions in BaseMultipleFieldsDateAndTimeInputType are moved from TimeInputType. BaseMultipleFieldsDateAndTimeInputType.{cpp,h} were copied from TimeInputType.{cpp,h} by r129721. This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and ENABLE_INPUT_MULTIPLE_FIELDS_UI. No new tests. This patch doesn't change behavior. * WebCore.gypi: Changed to have html/BaseMultipleFieldsDateAndTimeInputType.{cpp,h} * html/BaseDateAndTimeInputType.h: (BaseDateAndTimeInputType): Exposed setMillisecondToDateComponents as protected for BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState(). * html/BaseMultipleFieldsDateAndTimeInputType.cpp: (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl): Moved from TimeInputType::DateTimeEditControlOwnerImpl. (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didBlurFromControl): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didFocusOnControl): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::formatDateTimeFieldsState): Moved from TimeInputType::DateTimeEditControlOwnerImpl and changed to call formatDateTimeFieldsState() in BaseMultipleFieldsDateAndTimeInputTypeInputType class. (WebCore::BaseMultipleFieldsDateAndTimeInputType::hasCustomFocusLogic): Moved from TimeInputType. (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::blur): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::createRenderer): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::focus): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::isMouseFocusable): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::minOrMaxAttributeChanged): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::isTextField): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::saveFormControlState): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldUseInputMethod): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::stepAttributeChanged): ditto. (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Moved from TimeInputType and changed to call setupLayoutParameters() to set date/time format by each input type. * html/BaseMultipleFieldsDateAndTimeInputType.h: (BaseMultipleFieldsDateAndTimeInputType): Added. (DateTimeEditControlOwnerImpl): Moved from TimeInputType. * html/TimeInputType.cpp: Moved multiple fields UI related functions to BaseMultipleFieldsDateAndTimeInputType. (WebCore::TimeInputType::TimeInputType): Changed base class name to BaseTimeInput. (WebCore::TimeInputType::formatDateTimeFieldsState): Moved from TimeINput::DateTImeEditControlOwnerImpl class. (WebCore::TimeInputType::setupLayoutParameters): Added for set time format. * html/TimeInputType.h: (TimeInputType): Chaned base class to BaseTimeInput which is alias of BaseDateAndTimeInputType or BaseMultipleFieldsDateAndTimeInputType. 2012-09-26 Yoshifumi Inoue [Forms] Adding localization texts for multiple fields date/time input UI https://bugs.webkit.org/show_bug.cgi?id=97633 Reviewed by Kent Tamura. This patch adds function declarations for getting localized strings used in multiple fields date/time input UI inside ENABLE_INPUT_MULTIPLE_FIELDS_UI. New functions are: - placeholderForDayOfMonthField() It returns localized placeholder text, e.g. "dd", for date field used in multiple fields "date", "datetime", and "datetime-local" input UI instead "--". - placeholderForfMonthField() It returns localized placeholder text, e.g. "mm", for month field used in multiple fields "date", "datetime", and "datetime-local" input UI instead "--". - placeholderForYearField() It returns localized placeholder text, e.g. "yyyy", for year field used in multiple fields "date", "datetime", and "datetime-local" input UI instead "----". - monthFormatInLDML() It returns month and year format in LDML, Unicode technical standard 35, Locale Data Markup Language, e.g. "MM-yyyyy" for "month" input type. - monthFormatInLDML() It returns week and year format in LDML, e.g. "WW-yyyyy" for "week" input type. No new tests. This patch doesn't change behavior. * platform/LocalizedStrings.h: (WebCore): Added declarations of placeholderForDayOfMonthField(), placeholderForMonthField(), placeholderForYearField(), monthFormatInLDML() and weekFormatInLDML(). 2012-09-26 Huang Dongsung [CSS Shaders] Remove an unused member variable m_program in FECustomFilter.h https://bugs.webkit.org/show_bug.cgi?id=97755 Reviewed by Kentaro Hara. No new tests. This patch doesn't change behavior. * platform/graphics/filters/FECustomFilter.h: (WebCore): 2012-08-09 Takashi Sakamoto Move IDL extended attributes to the location specified in WebIDL https://bugs.webkit.org/show_bug.cgi?id=26398 Reviewed by Kentaro Hara. Recreated a new IDLParser based on the WebIDL spec: http://dev.w3.org/2006/webapi/WebIDL/ Firstly merges two grammars (editors draft and WebKit current IDL) and generates IDL parser by using python script. The generated parser is modified to generate the same outputs as the previous IDLParser.pm. The new IDLParser.pm can parse both WebIDL grammar. No new tests. Tested by comparing with sources generated by the previous IDLParser.pm. * bindings/scripts/IDLParser.pm: (new): (assertTokenValue): (assertTokenType): (assertUnexpectedToken): (Parse): A method to start parsing a IDL file. Arguments and return values are the same as the previous IDLParser.pm's Parse method. (nextToken): Implemented to see a next token, because of LL(1). (getToken): Returns current token, and update next and current token. (getTokenInternal): According to the regular expressions defined in WebIDL spec, extracts one new token from a text string. The order of the regular expressions to be tested is important, i.e. "0." should be considered as a float token, but if firstly checks the integer regular expression, "0." is considered as "0" and ".". (parseDefinition): (parseCallbackOrInterface): (parseCallbackRestOrInterface): (parseInterface): (parsePartial): (parsePartialDefinition): (parsePartialInterface): (parseInterfaceMember): (parseDictionary): (parseDictionaryMember): (parsePartialDictionary): (parseDefaultValue): (parseException): (parseExceptionMembers): (parseEnum): (parseEnumValueList): (parseCallbackRest): (parseTypedef): (parseImplementsStatement): (parseConst): (parseConstValue): (parseBooleanLiteral): (parseFloatLiteral): (parseAttributeOrOperationOrIterator): (parseSerializer): (parseSerializationPattern): (parseQualifier): (parseAttributeOrOperationRest): (parseAttribute): (parseAttributeRest): (parseOperationOrIterator): (parseSpecialOperation): (parseSpecial): (parseOperationOrIteratorRest): (parseIteratorRest): (parseOptionalIteratorInterfaceOrObject): (parseOperationRest): (parseArguments): (parseArgument): (parseOptionalOrRequiredArgument): (parseArgumentName): (parseExceptionMember): (parseExceptionField): (parseExtendedAttributeList): (parseExtendedAttribute): (parseExtendedAttributeRest2): (parseArgumentNameKeyword): (parseType): (parseSingleType): (parseUnionType): (parseNonAnyType): (parsePrimitiveType): (parseUnrestrictedFloatType): (parseFloatType): (parseUnsignedIntegerType): (parseNull): (parseGet): (parseInheritsGetter): (parseSetGetRaises): (parseGetRaises2): (parseSetRaises): (parseSetRaises3): (parseDefinitionOld): (parseModule): (parseInterfaceOld): (parseInterfaceMemberOld): (parseDictionaryOld): (parseDictionaryMemberOld): (parseExceptionOld): (parseEnumOld): (parseAttributeOrOperationOrIteratorOld): (parseAttributeOrOperationRestOld): (parseAttributeOld): (parseIn): (parseOptionalSemicolon): (applyMemberList): (applyExtendedAttributeList): * bindings/scripts/test/CPP/WebDOMTestObj.cpp: (WebDOMTestObj::longAttr): (WebDOMTestObj::setLongAttr): (WebDOMTestObj::voidMethodWithArgs): (WebDOMTestObj::longMethod): (WebDOMTestObj::longMethodWithArgs): (WebDOMTestObj::objMethodWithArgs): (WebDOMTestObj::convert1): (WebDOMTestObj::convert2): (WebDOMTestObj::convert3): (WebDOMTestObj::convert4): (WebDOMTestObj::convert5): * 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_long_method): (webkit_dom_test_obj_long_method_with_args): (webkit_dom_test_obj_obj_method_with_args): (webkit_dom_test_obj_convert1): (webkit_dom_test_obj_convert2): (webkit_dom_test_obj_convert3): (webkit_dom_test_obj_convert4): (webkit_dom_test_obj_convert5): (webkit_dom_test_obj_get_long_attr): (webkit_dom_test_obj_set_long_attr): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore): (WebCore::jsTestObjLongAttr): (WebCore::setJSTestObjLongAttr): (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionLongMethod): (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs): (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2): (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4): (WebCore::jsTestObjPrototypeFunctionConvert1): (WebCore::jsTestObjPrototypeFunctionConvert2): (WebCore::jsTestObjPrototypeFunctionConvert3): (WebCore::jsTestObjPrototypeFunctionConvert4): (WebCore::jsTestObjPrototypeFunctionConvert5): * bindings/scripts/test/JS/JSTestObj.h: (WebCore): * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj longAttr]): (-[DOMTestObj setLongAttr:]): (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]): (-[DOMTestObj longMethod]): (-[DOMTestObj longMethodWithArgs:strArg:objArg:]): (-[DOMTestObj objMethodWithArgs:strArg:objArg:]): (-[DOMTestObj customMethodWithArgs:strArg:objArg:]): (-[DOMTestObj convert1:]): (-[DOMTestObj convert2:]): (-[DOMTestObj convert3:]): (-[DOMTestObj convert4:]): (-[DOMTestObj convert5:]): * bindings/scripts/test/TestObj.idl: Removed the line which has only "JSC, V8". Added argument to convert1, ... convert5. * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjV8Internal::longAttrAttrGetter): (WebCore::TestObjV8Internal::longAttrAttrSetter): (WebCore::TestObjV8Internal::voidMethodWithArgsCallback): (WebCore::TestObjV8Internal::longMethodCallback): (WebCore::TestObjV8Internal::longMethodWithArgsCallback): (WebCore::TestObjV8Internal::objMethodWithArgsCallback): (WebCore::TestObjV8Internal::methodReturningSequenceCallback): (WebCore::TestObjV8Internal::overloadedMethod2Callback): (WebCore::TestObjV8Internal::overloadedMethod4Callback): (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback): (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback): (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback): (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback): (WebCore::TestObjV8Internal::convert1Callback): (WebCore::TestObjV8Internal::convert2Callback): (WebCore::TestObjV8Internal::convert3Callback): (WebCore::TestObjV8Internal::convert4Callback): (WebCore::TestObjV8Internal::convert5Callback): (WebCore): (WebCore::ConfigureV8TestObjTemplate): * Modules/webaudio/AudioBufferSourceNode.idl: As only restricted extended attribute syntax is supported, modify the idl from [...] [...] to [..., ...]. 2012-09-26 Yoshifumi Inoue [Forms] Copy TimeInputType.{cpp,h} to BaseMultipleFieldsDateAndTimeInputType.{cpp,h} https://bugs.webkit.org/show_bug.cgi?id=97649 Reviewed by Kent Tamura. This patch copies TimeInput.{cpp,h} to BaseMultipleFieldsDateAndTimeInputType.{cpp,h} for sharing code related to multiple fields date/time input UI among date/time related input types, such as "date", "datetime", "month", "time" and "week". No new tests. This patch doesn't change behavior. * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Copied from Source/WebCore/html/TimeInputType.cpp. * html/BaseMultipleFieldsDateAndTimeInputType.h: Copied from Source/WebCore/html/TimeInputType.h. 2012-09-26 Kenneth Rohde Christiansen [Texmap][EFL] Accelerated compositing support using TextureMapper on EFL port https://bugs.webkit.org/show_bug.cgi?id=73111 Reviewed by Gyuyoung Kim. Remove unneeded files * PlatformEfl.cmake: Do not add the files any more. * platform/graphics/efl/GraphicsLayerEfl.cpp: Removed. * platform/graphics/efl/GraphicsLayerEfl.h: Removed. 2012-09-26 Simon Fraser Rename Page::frameCount() to subframeCount(), and related https://bugs.webkit.org/show_bug.cgi?id=97729 Reviewed by Alexey Proskuryakov. Rename member functions and variables on Page that refer to "frame count" to use "subframe count", since the main frame is not included in the count. * history/CachedFrame.cpp: (WebCore::CachedFrame::CachedFrame): (WebCore::CachedFrame::open): * history/CachedPage.cpp: (WebCore::CachedPage::restore): * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::isURLAllowed): * html/HTMLPlugInImageElement.cpp: (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL): * loader/FrameLoader.cpp: (WebCore::FrameLoader::closeAndRemoveChild): * page/Frame.cpp: (WebCore::Frame::Frame): (WebCore::Frame::disconnectOwnerElement): * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::checkSubframeCountConsistency): * page/Page.h: (WebCore::Page::incrementSubframeCount): (WebCore::Page::decrementSubframeCount): (WebCore::Page::subframeCount): (WebCore::Page::checkSubframeCountConsistency): 2012-09-26 Michael Saboff Unreviewed speculative build fix for clang. Added explicit static_cast from int64_t to int32_t. * platform/text/TextBreakIteratorICU.cpp: (WebCore::uTextLatin1Clone): (WebCore::uTextLatin1Extract): (WebCore::uTextLatin1MapNativeIndexToUTF16): 2012-09-26 Sheriff Bot Unreviewed, rolling out r129673. http://trac.webkit.org/changeset/129673 https://bugs.webkit.org/show_bug.cgi?id=97723 Causing window build breakage (Requested by alecf on #webkit). * platform/chromium/PlatformSupport.h: (PlatformSupport): * platform/graphics/skia/SkiaFontWin.cpp: (WebCore::paintSkiaText): 2012-09-26 David Barton [MathML] Implement rowspan and columnspan attributes https://bugs.webkit.org/show_bug.cgi?id=97401 Reviewed by Eric Seidel. These should behave like rowspan and colspan for HTMLTableCell. As in that case, RenderTableCell accesses these attributes of its element as needed. Tested by modifications to LayoutTests/mathml/presentation/tables.xhtml. * mathml/MathMLElement.cpp: (WebCore::MathMLElement::colSpan): (WebCore::MathMLElement::rowSpan): (WebCore::MathMLElement::parseAttribute): * mathml/MathMLElement.h: (MathMLElement): (WebCore::toMathMLElement): * mathml/mathattrs.in: * mathml/mathtags.in: * rendering/RenderTableCell.cpp: (WebCore::RenderTableCell::RenderTableCell): (WebCore::isMathMLElement): (WebCore::RenderTableCell::colSpan): (WebCore::RenderTableCell::rowSpan): (WebCore::RenderTableCell::colSpanOrRowSpanChanged): * rendering/RenderTableCell.h: (RenderTableCell): - Changed m_hasAssociatedTableCellElement to m_hasHTMLTableCellElement. 2012-09-26 Marcelo Lira [Qt] load event fires on XMLHttpRequestUpload twice with Qt5 https://bugs.webkit.org/show_bug.cgi?id=92669 Reviewed by Kenneth Rohde Christiansen. When finishing, after the upload have already been done, Qt5's QNetworkReply emits an uploadProgress signal with total bytes set to zero. Since 0 of 0 bytes doesn't make any sense as progress, a conditional was added to QNetworkReplyHandler::uploadProgress to make do nothing with such values. Unskip XMLHttpRequestUpload tests. * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::uploadProgress): 2012-09-26 Bear Travis [CSS Exclusions] Rename WrapShapeInfo to ExclusionShapeInfo https://bugs.webkit.org/show_bug.cgi?id=96157 Reviewed by Dirk Schulze. Rename WrapShapeInfo to the more specific ExclusionShapeInsideInfo, which is the only information the class is currently tracking. This patch updates build files, class instances and variable names. When shape-outside is added, there may be an additional ExclusionShapeOutsideInfo class that shares a common parent class with ExclusionShapeInsideInfo. This patch only changes names, there is no new functionality. Covered by existing tests * CMakeLists.txt: Rename files from WrapShapeInfo to ExclusionShapeInsideInfo. * GNUmakefile.list.am: Ditto. * Target.pri: Ditto. * WebCore.gypi: Ditto. * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * rendering/ExclusionShapeInsideInfo.cpp: Renamed from Source/WebCore/rendering/WrapShapeInfo.cpp. (WebCore): Renaming functions and variables to use ExclusionShapeInsideInfo rather than WrapShapeInfo. (WebCore::exclusionShapeInsideInfoMap): (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): (WebCore::ExclusionShapeInsideInfo::~ExclusionShapeInsideInfo): (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock): (WebCore::ExclusionShapeInsideInfo::exclusionShapeInsideInfoForRenderBlock): (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): (WebCore::ExclusionShapeInsideInfo::removeExclusionShapeInsideInfoForRenderBlock): (WebCore::ExclusionShapeInsideInfo::computeShapeSize): (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): * rendering/ExclusionShapeInsideInfo.h: Renamed from Source/WebCore/rendering/WrapShapeInfo.h. (WebCore): (ExclusionShapeInsideInfo): (WebCore::ExclusionShapeInsideInfo::create): (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom): (WebCore::ExclusionShapeInsideInfo::hasSegments): (WebCore::ExclusionShapeInsideInfo::segments): (WebCore::ExclusionShapeInsideInfo::dirtyShapeSize): (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): * rendering/LayoutState.cpp: (WebCore::LayoutState::LayoutState): * rendering/LayoutState.h: (WebCore): (WebCore::LayoutState::LayoutState): (WebCore::LayoutState::exclusionShapeInsideInfo): (LayoutState): * rendering/RenderBlock.cpp: (WebCore::RenderBlock::willBeDestroyed): (WebCore::RenderBlock::styleDidChange): (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize): (WebCore::RenderBlock::computeExclusionShapeSize): * rendering/RenderBlock.h: (WebCore::RenderBlock::exclusionShapeInsideInfo): (RenderBlock): * rendering/RenderBlockLineLayout.cpp: (WebCore::layoutExclusionShapeInsideInfo): (WebCore::LineWidth::LineWidth): (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): (WebCore::RenderBlock::layoutRunsAndFloatsInRange): * rendering/RenderView.h: (WebCore::RenderView::pushLayoutState): 2012-09-26 Christophe Dumez [EFL] Volume button should not be shown for videos without audio https://bugs.webkit.org/show_bug.cgi?id=97574 Reviewed by Kenneth Rohde Christiansen. The volume control is no longer shown for videos with no audio. No new tests, already tested by media/video-no-audio.html. * platform/efl/RenderThemeEfl.cpp: (WebCore::RenderThemeEfl::hasOwnDisabledStateHandlingFor): (WebCore): * platform/efl/RenderThemeEfl.h: (RenderThemeEfl): 2012-09-26 Gavin Barraclough Generalize JSGlobalThis as JSProxy https://bugs.webkit.org/show_bug.cgi?id=97716 Reviewed by Oliver Hunt. This patch moves window shell functionality up to JSC::JSProxy. * ForwardingHeaders/runtime/JSGlobalThis.h: Removed. * ForwardingHeaders/runtime/JSProxy.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSGlobalThis.h. * bindings/js/JSDOMGlobalObject.cpp: (WebCore::JSDOMGlobalObject::finishCreation): - JSGlobalThis -> JSObject * bindings/js/JSDOMGlobalObject.h: (JSDOMGlobalObject): - JSGlobalThis -> JSObject * bindings/js/JSDOMWindowBase.cpp: (WebCore): - Hoist toThisObject up into JSC. * bindings/js/JSDOMWindowBase.h: (JSDOMWindowBase): - Hoist toThisObject up into JSC. * bindings/js/JSDOMWindowShell.cpp: (WebCore): - JSGlobalThis -> JSProxy - moved JSObject callbacks to JSProxy * bindings/js/JSDOMWindowShell.h: (JSDOMWindowShell): - JSGlobalThis -> JSProxy - moved JSObject callbacks to JSProxy (WebCore::JSDOMWindowShell::window): - unwrappedObject() -> target() (WebCore::JSDOMWindowShell::setWindow): - setUnwrappedObject() -> setTarget() (WebCore::JSDOMWindowShell::createStructure): - GlobalThisType -> ProxyType 2012-09-26 Andreas Kling 4.95MB below RenderBlock::insertIntoTrackedRendererMaps() on Membuster3. Reviewed by Anders Carlsson. Give the TrackedRendererListHashSet typedef an inline capacity of 16 (the default is 256.) Browsing around the web, I saw almost no cases with more than 20 entries in these lists, and this simple change saves us ~4.68MB on the Membuster3 benchmark. * rendering/RenderBlock.h: 2012-09-26 Chris Rogers DelayNode must take sample-accurate delay times into account https://bugs.webkit.org/show_bug.cgi?id=97609 Reviewed by Kenneth Russell. Currently DelayNode simply uses a coarse-grained k-rate smoothing of .delayTime It should also be capable of supporting audio-rate control of .delayTime * Modules/webaudio/DelayDSPKernel.cpp: (WebCore::DelayDSPKernel::DelayDSPKernel): (WebCore::DelayDSPKernel::process): * Modules/webaudio/DelayDSPKernel.h: (DelayDSPKernel): 2012-09-26 Mark Pilgrim [Chromium][Win] Remove ensureFontLoaded from PlatformSupport https://bugs.webkit.org/show_bug.cgi?id=97696 Reviewed by Adam Barth. Part of a refactoring series. See tracking bug 82948. * platform/chromium/PlatformSupport.h: (PlatformSupport): * platform/graphics/skia/SkiaFontWin.cpp: (WebCore::paintSkiaText): 2012-09-26 Sheriff Bot Unreviewed, rolling out r129654. http://trac.webkit.org/changeset/129654 https://bugs.webkit.org/show_bug.cgi?id=97702 breaks chromium windows build (Requested by schenney on #webkit). * CMakeLists.txt: * GNUmakefile.list.am: * Modules/mediastream/RTCPeerConnection.cpp: * Modules/mediastream/RTCPeerConnection.h: (WebCore): (RTCPeerConnection): * Modules/mediastream/RTCPeerConnection.idl: * Modules/mediastream/RTCStatsCallback.h: Removed. * Modules/mediastream/RTCStatsCallback.idl: Removed. * Modules/mediastream/RTCStatsElement.cpp: Removed. * Modules/mediastream/RTCStatsElement.h: Removed. * Modules/mediastream/RTCStatsElement.idl: Removed. * Modules/mediastream/RTCStatsReport.cpp: Removed. * Modules/mediastream/RTCStatsReport.h: Removed. * Modules/mediastream/RTCStatsReport.idl: Removed. * Modules/mediastream/RTCStatsRequestImpl.cpp: Removed. * Modules/mediastream/RTCStatsRequestImpl.h: Removed. * Modules/mediastream/RTCStatsResponse.cpp: Removed. * Modules/mediastream/RTCStatsResponse.h: Removed. * Modules/mediastream/RTCStatsResponse.idl: Removed. * WebCore.gypi: * platform/chromium/support/WebRTCStatsRequest.cpp: Removed. * platform/mediastream/RTCPeerConnectionHandler.cpp: (RTCPeerConnectionHandlerDummy): * platform/mediastream/RTCPeerConnectionHandler.h: (WebCore): (RTCPeerConnectionHandler): * platform/mediastream/RTCStatsRequest.h: Removed. * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: (RTCPeerConnectionHandlerChromium): 2012-09-26 Philip Rogers Refactor SMILTimeContainer to maintain animation information instead of recalculating it every frame https://bugs.webkit.org/show_bug.cgi?id=96697 Reviewed by Eric Seidel. SVGTimeContainer can be improved by maintaining extra information about animations during schedule/unschedule instead of re-calculating it every frame. After this patch, SMILTimeContainer maintains a GroupedAnimationsMap instead of just a Vector. This map maps a list of animations to the specific ElementAttributePair that will be animated. On schedule/unschedule we modify this map instead of creating it in updateAnimations. As a result, we need to be careful about always notifying (or, re-scheduling) the time container when either an animation's target changes or an animation's attributeName changes. This notification is managed by tracking changes with targetElementWillChange and setAttributeName. After this patch, updateAnimations only iterates over m_scheduledAnimations. Furthermore, the sorting of animations by priority is now done over each Vector of SVGSMILElements affecting a {SVGElement*, QualifiedName} pair instead of over all the SVGSMILElements at once. Lastly, a guard (m_preventScheduledAnimationsChanges) has been added to prove that we do not modify the scheduled animations map out from under ourselves. No new tests as this is just a refactoring. * svg/SVGAnimateElement.cpp: (WebCore::SVGAnimateElement::hasValidAttributeType): * svg/SVGAnimateMotionElement.cpp: (WebCore::SVGAnimateMotionElement::hasValidAttributeName): Per the spec, AnimateMotion is not affected by attributeName. Instead of having a special case for this in SMILTimeContainer::updateAnimations we simply implement this method. (WebCore): * svg/SVGAnimateMotionElement.h: (SVGAnimateMotionElement): * svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::updateAnimation): * svg/animation/SMILTimeContainer.cpp: (WebCore): (WebCore::SMILTimeContainer::SMILTimeContainer): (WebCore::SMILTimeContainer::~SMILTimeContainer): This method now cleans up the map since we have dynamically allocated Vectors in it. (WebCore::SMILTimeContainer::schedule): Here we are just adding an entry to the map. There is some special handling for creating the Vector of one does not exist. (WebCore::SMILTimeContainer::unschedule): (WebCore::SMILTimeContainer::notifyIntervalsChanged): (WebCore::SMILTimeContainer::setElapsed): (WebCore::SMILTimeContainer::startTimer): (WebCore::SMILTimeContainer::updateAnimations): * svg/animation/SMILTimeContainer.h: (WebCore::SMILTimeContainer::create): (SMILTimeContainer): * svg/animation/SVGSMILElement.cpp: (WebCore::SVGSMILElement::~SVGSMILElement): (WebCore::SVGSMILElement::insertedInto): (WebCore::SVGSMILElement::removedFrom): (WebCore): (WebCore::SVGSMILElement::hasValidAttributeName): (WebCore::SVGSMILElement::svgAttributeChanged): (WebCore::SVGSMILElement::setAttributeName): (WebCore::SVGSMILElement::targetElementWillChange): (WebCore::SVGSMILElement::resetTargetElement): (WebCore::SVGSMILElement::resolveFirstInterval): (WebCore::SVGSMILElement::beginListChanged): (WebCore::SVGSMILElement::endListChanged): (WebCore::SVGSMILElement::progress): * svg/animation/SVGSMILElement.h: (SVGSMILElement): 2012-09-26 Michael Saboff Update SVGFontData for 8 bit TextRun changes https://bugs.webkit.org/show_bug.cgi?id=97379 Reviewed by Geoffrey Garen. Educated applySVGGlyphSelection to be 8 / 16 bit TextRun aware. No change in funcitonality, therefore no new tests. * svg/SVGFontData.cpp: (WebCore::SVGFontData::applySVGGlyphSelection): 2012-09-26 Michael Saboff Update ComplexTextController for 8 bit TextRun changes https://bugs.webkit.org/show_bug.cgi?id=97378 Reviewed by Geoffrey Garen. Since the ComplextTextController code is primarily used for UChar data, just upconvert an 8 bit TextRun into a new String and hold on to the String with a vector for the life of the controller. No change in functionality, therefore no new tests. * platform/graphics/mac/ComplexTextController.cpp: (WebCore::ComplexTextController::ComplexTextController): (WebCore::ComplexTextController::collectComplexTextRuns): * platform/graphics/mac/ComplexTextController.h: (ComplexTextController): 2012-09-26 Michael Saboff Add Latin-1 Line Break Iterator to TextBreakIteratorICU.cpp https://bugs.webkit.org/show_bug.cgi?id=96935 Reviewed by Geoffrey Garen. Added a Latin-1 UText implementation for the ICU library to use. Added a new acquireLineBreakIterator() for 8 bit strings that uses the Latin-1 UText implementation. This code path is not being called with the current ToT code. Subsequent changes will enable calling the new code. * platform/text/TextBreakIterator.h: (WebCore::LazyLineBreakIterator::LazyLineBreakIterator): (LazyLineBreakIterator): (WebCore::LazyLineBreakIterator::string): (WebCore::LazyLineBreakIterator::get): (WebCore::LazyLineBreakIterator::reset): * platform/text/TextBreakIteratorICU.cpp: (WebCore::uTextLatin1Clone): (WebCore::uTextLatin1NativeLength): (WebCore::uTextLatin1Access): (WebCore::uTextLatin1Extract): (WebCore::uTextLatin1MapOffsetToNative): (WebCore::uTextLatin1MapNativeIndexToUTF16): (WebCore::uTextLatin1Close): (WebCore::UTextOpenLatin1): (WebCore::acquireLineBreakIterator): * rendering/RenderBlockLineLayout.cpp: (WebCore::RenderBlock::LineBreaker::nextLineBreak): * rendering/RenderText.cpp: (WebCore::RenderText::computePreferredLogicalWidths): * rendering/break_lines.cpp: (WebCore::nextBreakablePosition): (WebCore::nextBreakablePositionIgnoringNBSP): 2012-09-26 Otto Derek Cheung [BlackBerry] Reverting implementation for 407 error pages https://bugs.webkit.org/show_bug.cgi?id=97455 Reviewed by Rob Buis. Last fix to NetworkJob to invoke AuthenticationChallenge by resetting BlackBerryPlatformSettings's proxy credentials to "" if authentication failed. * platform/network/blackberry/NetworkJob.cpp: (WebCore::NetworkJob::sendRequestWithCredentials): 2012-09-26 Kenneth Rohde Christiansen Reorder Cairo WebCore includes https://bugs.webkit.org/show_bug.cgi?id=97679 Reviewed by Simon Hausmann. * platform/graphics/cairo/FontCairo.cpp: * platform/graphics/cairo/GraphicsContextCairo.cpp: * platform/graphics/cairo/TransformationMatrixCairo.cpp: * platform/wx/wxcode/cairo/non-kerned-drawing.cpp: 2012-09-25 Emil A Eklund Change FractionalLayoutUnit denominator to 64 to reduce precision loss when converting to floating point https://bugs.webkit.org/show_bug.cgi?id=96139 Reviewed by Eric Seidel. We currently use a denominator of 60 in FractionalLayoutUnit, this causes a loss of precision when converting to floating point. By changing the denominator to 64 the values can better be represented as floating point (without loosing any precision for many values), this in turn allows us to remove the tolerance hack in the line break logic and avoids problems caused by this precision for web sites that do their own layout based on element measurements. Test: fast/sub-pixel/float-precision.html * platform/FractionalLayoutUnit.h: Change denominator to 64. * rendering/RenderBlockLineLayout.cpp: (WebCore::LineWidth::fitsOnLine): Remove epsilon tolerance hack. 2012-09-26 Csaba Osztrogonác [Qt] Unreviewed buildfix after r129647. * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: Revert incorrect include reordering. 2012-09-26 Harald Tveit Alvestrand Implement the GetStats interface on PeerConnection https://bugs.webkit.org/show_bug.cgi?id=95193 Specification: http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html Reviewed by Adam Barth. The implementation consists of a pure virtual platform object (RTCStatsRequest) that is implemented in WebCore, and stores its information in a straightforward data hierarchy. This patch adds the call path and the storage structures. It does not add filling in data. Test: fast/mediastream/RTCPeerConnection-stats.html * CMakeLists.txt: * Modules/mediastream/RTCPeerConnection.cpp: (WebCore::RTCPeerConnection::getStats): (WebCore): * Modules/mediastream/RTCPeerConnection.h: (WebCore): (RTCPeerConnection): * Modules/mediastream/RTCPeerConnection.idl: * Modules/mediastream/RTCStatsCallback.h: Added. (WebCore): (RTCStatsCallback): (WebCore::RTCStatsCallback::~RTCStatsCallback): * Modules/mediastream/RTCStatsCallback.idl: Added. * Modules/mediastream/RTCStatsElement.cpp: Added. (WebCore): (WebCore::RTCStatsElement::create): (WebCore::RTCStatsElement::RTCStatsElement): (WebCore::RTCStatsElement::stat): * Modules/mediastream/RTCStatsElement.h: Added. (WebCore): (RTCStatsElement): * Modules/mediastream/RTCStatsElement.idl: Added. * Modules/mediastream/RTCStatsReport.cpp: Added. (WebCore): (WebCore::RTCStatsReport::create): (WebCore::RTCStatsReport::RTCStatsReport): * Modules/mediastream/RTCStatsReport.h: Added. (WebCore): (RTCStatsReport): (WebCore::RTCStatsReport::local): (WebCore::RTCStatsReport::remote): * Modules/mediastream/RTCStatsReport.idl: Added. * Modules/mediastream/RTCStatsRequestImpl.cpp: Added. (WebCore): (WebCore::RTCStatsRequestImpl::create): (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl): (WebCore::RTCStatsRequestImpl::~RTCStatsRequestImpl): (WebCore::RTCStatsRequestImpl::requestSucceeded): (WebCore::RTCStatsRequestImpl::stop): (WebCore::RTCStatsRequestImpl::clear): * Modules/mediastream/RTCStatsRequestImpl.h: Added. (WebCore): (RTCStatsRequestImpl): * Modules/mediastream/RTCStatsResponse.cpp: Added. (WebCore): (WebCore::RTCStatsResponse::create): (WebCore::RTCStatsResponse::RTCStatsResponse): * Modules/mediastream/RTCStatsResponse.h: Added. (WebCore): (RTCStatsResponse): (WebCore::RTCStatsResponse::result): * Modules/mediastream/RTCStatsResponse.idl: Added. * WebCore.gypi: * platform/chromium/support/WebRTCStatsRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h. (WebKit): (WebKit::WebRTCStatsRequest::WebRTCStatsRequest): (WebKit::WebRTCStatsRequest::assign): (WebKit::WebRTCStatsRequest::reset): (WebKit::WebRTCStatsRequest::requestSucceeded): * platform/mediastream/RTCPeerConnectionHandler.h: (WebCore): (RTCPeerConnectionHandler): * platform/mediastream/RTCStatsRequest.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h. (WebCore): (RTCStatsRequest): (WebCore::RTCStatsRequest::~RTCStatsRequest): (WebCore::RTCStatsRequest::RTCStatsRequest): * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: (WebCore::RTCPeerConnectionHandlerChromium::getStats): (WebCore): * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: (RTCPeerConnectionHandlerChromium): 2012-09-26 Mikhail Pozdnyakov [WK2][WTR] Policy client: dumping from decidePolicyForResponse callback https://bugs.webkit.org/show_bug.cgi?id=97034 Reviewed by Kenneth Rohde Christiansen. Exported WebCore::ResourceResponseBase::isAttachment() method for MAC port. No new tests. No functionality added. * WebCore.exp.in: 2012-09-26 Brady Eidson (Threaded scrolling) WebKit not scrolling to the correct location upon going back on macsurfer.com and https://bugs.webkit.org/show_bug.cgi?id=97617 Reviewed by Anders Carlsson. In the asynchronous land of threaded scrolling we lose the information about whether or not a scroll is programmatic. This caused all scrolls to be treated as user scrolls and to generated scroll events. We can fix this by passing the programmatic bit to the scrolling thread and re-applying it back in the main thread. Unable to test threaded scrolling at this time. Include the "Is programmatic scroll" bit in the scroll state: * page/scrolling/ScrollingTreeState.cpp: (WebCore::ScrollingTreeState::ScrollingTreeState): (WebCore::ScrollingTreeState::setRequestedScrollPosition): Also set whether or not this represents a programmatic scroll. * page/scrolling/ScrollingTreeState.h: (ScrollingTreeState): (WebCore::ScrollingTreeState::requestedScrollPositionRepresentsProgrammaticScroll): Pass that bit back to the ScrollingCoordinator: * page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::ScrollingTree): (WebCore::ScrollingTree::commitNewTreeState): (WebCore::ScrollingTree::updateMainFrameScrollPosition): * page/scrolling/ScrollingTree.h: * page/scrolling/ScrollingCoordinator.cpp: (WebCore::ScrollingCoordinator::requestScrollPositionUpdate): Pass the "is programmatic scroll" bit to the scrolling thread. (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition): Reset the "is programmatic scroll" bit on the FrameView. * page/scrolling/ScrollingCoordinator.h: (ScrollingCoordinator): * page/FrameView.h: (FrameView): (WebCore::FrameView::inProgrammaticScroll): Expose setter/getters for the programmatic scroll flag. (WebCore::FrameView::setInProgrammaticScroll): 2012-09-26 Martin Robinson [GTK] Use XDamage to simplify RedirectedXCompositeWindow https://bugs.webkit.org/show_bug.cgi?id=97267 Reviewed by Alejandro G. Castro. Use XDamage to queue redraws of the widget when redirecting accelerated compositing to an offscreen window. This allows removing a finicky timer-based approach, improves performance, and allows simplifying things greatly. No new tests. This is covered by existing tests. * GNUmakefile.am: Add the XDamage CFLAGS in the appropriate place. * platform/gtk/RedirectedXCompositeWindow.cpp: (WebCore::getWindowHashMap): Added. (WebCore::filterXDamageEvent): Added. (WebCore::supportsXDamageAndXComposite): Added. (WebCore::RedirectedXCompositeWindow::create): Fail to create the window if the XServer doesn't support XDamage and XComposite. (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Add XDamage support and remove the m_usable size distinction. Add the window the window HashMap now. (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow): Remove the window from the window HashMap. (WebCore::RedirectedXCompositeWindow::resize): Now just immediately update the size. (WebCore::RedirectedXCompositeWindow::callDamageNotifyCallback): Added. * platform/gtk/RedirectedXCompositeWindow.h: (WebCore::RedirectedXCompositeWindow::setDamageNotifyCallback): Added. 2012-09-26 Ilya Tikhonovsky Web Inspector: NMI: replace manual JS external resources counting with MemoryInstrumentation https://bugs.webkit.org/show_bug.cgi?id=97662 Reviewed by Yury Semikhatsky. Old schema uses sizeInBytes method on StringImpl. This method works incorrect for substrings. Also we'd like to know exact pointers to strings and buffers for verification purposes. * dom/WebCoreMemoryInstrumentation.cpp: (WebCore): * dom/WebCoreMemoryInstrumentation.h: (WebCoreMemoryTypes): * inspector/InspectorMemoryAgent.cpp: (MemoryBlockName): (WebCore): (WebCore::collectDomTreeInfo): (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution): 2012-09-26 Vsevolod Vlasov Web Inspector: [REGRESSION] Revision support problems: revert and apply original content cause exceptions https://bugs.webkit.org/show_bug.cgi?id=97669 Reviewed by Pavel Feldman. Added missed callback parameters. Test: inspector/uisourcecode-revisions.html * inspector/front-end/UISourceCode.js: (WebInspector.UISourceCode.prototype.revertToOriginal): (WebInspector.UISourceCode.prototype.revertAndClearHistory): 2012-09-26 Kenneth Rohde Christiansen Reorder Qt WebCore includes https://bugs.webkit.org/show_bug.cgi?id=97678 Reviewed by Noam Rosenthal. * bridge/qt/qt_instance.cpp: * bridge/qt/qt_instance.h: * bridge/qt/qt_pixmapruntime.cpp: * bridge/qt/qt_runtime.cpp: * platform/graphics/qt/FontCacheQt.cpp: * platform/graphics/qt/FontCustomPlatformData.h: * platform/graphics/qt/ImageDecoderQt.cpp: * platform/graphics/qt/ImageDecoderQt.h: * platform/graphics/qt/PathQt.cpp: * platform/graphics/qt/TransformationMatrixQt.cpp: * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: * platform/network/qt/DnsPrefetchHelper.h: * platform/network/qt/QNetworkReplyHandler.cpp: * platform/network/qt/ResourceHandleQt.cpp: * platform/qt/ClipboardQt.cpp: * platform/qt/GamepadsQt.cpp: * platform/qt/PasteboardQt.cpp: * platform/qt/PlatformScreenQt.cpp: * platform/qt/RenderThemeQt.cpp: * platform/text/qt/TextBoundariesQt.cpp: * plugins/qt/PluginPackageQt.cpp: * plugins/qt/PluginViewQt.cpp: 2012-09-26 Christophe Dumez [EFL] mediaControlsEflFullscreen.css overrides regular media controls styling https://bugs.webkit.org/show_bug.cgi?id=97671 Reviewed by Kenneth Rohde Christiansen. Add missing ":-webkit-full-screen" in mediaControlsEflFullscreen.css so that regular media controls styling is not overridden by full screen styling when switching to full screen mode. This was causing a lot of flakiness in our media tests. No new tests, already covered by existing media tests. * css/mediaControlsEflFullscreen.css: (video:-webkit-full-screen::-webkit-media-controls-panel): (video:-webkit-full-screen:-webkit-full-page-media::-webkit-media-controls-panel): (video:-webkit-full-screen::-webkit-media-controls-mute-button): (video:-webkit-full-screen::-webkit-media-controls-play-button): (video:-webkit-full-screen::-webkit-media-controls-timeline-container): (video:-webkit-full-screen::-webkit-media-controls-current-time-display): (video:-webkit-full-screen::-webkit-media-controls-time-remaining-display): (video:-webkit-full-screen::-webkit-media-controls-timeline): (video:-webkit-full-screen::-webkit-media-controls-volume-slider-container): (video:-webkit-full-screen::-webkit-media-controls-volume-slider): (video:-webkit-full-screen::-webkit-media-controls-seek-back-button): (video:-webkit-full-screen::-webkit-media-controls-seek-forward-button): (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button): (video:-webkit-full-screen::-webkit-media-controls-rewind-button): (video:-webkit-full-screen::-webkit-media-controls-return-to-realtime-button): (video:-webkit-full-screen::-webkit-media-controls-toggle-closed-captions-button): 2012-09-26 Andrey Kosyakov Web Inspector: display stack of last layout invalidation instead of first one https://bugs.webkit.org/show_bug.cgi?id=97677 Reviewed by Vsevolod Vlasov. - add a call to InspectorInstrumentation::didInvalidateLayout() when upgrading relayout root; - do not suppress timeline's Invalidate Layout records other than first. * inspector/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::didInvalidateLayout): * page/FrameView.cpp: (WebCore::FrameView::scheduleRelayoutOfSubtree): 2012-09-25 Antti Koivisto Optimize stylesheet insertions https://bugs.webkit.org/show_bug.cgi?id=97627 Reviewed by Andreas Kling. We currently do scope analysis for stylesheets that are added to the end of the active stylesheet list to avoid unnecessary style recalcs and StyleResolver rebuilding. However it is somewhat common to insert
When processing the