diff options
Diffstat (limited to 'Source/WebCore/ChangeLog')
| -rw-r--r-- | Source/WebCore/ChangeLog | 4676 |
1 files changed, 4675 insertions, 1 deletions
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 45f8cf911..c8b1b688b 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,4677 @@ +2012-11-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r136111. + http://trac.webkit.org/changeset/136111 + https://bugs.webkit.org/show_bug.cgi?id=103620 + + Broke compilation on Mac (unused private field m_matchMode) + (Requested by apavlov on #webkit). + + * CMakeLists.txt: + * GNUmakefile.list.am: + * Target.pri: + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * html/HTMLSelectElement.cpp: + (WebCore): + (WebCore::HTMLSelectElement::HTMLSelectElement): + (WebCore::stripLeadingWhiteSpace): + (WebCore::HTMLSelectElement::typeAheadFind): + * html/HTMLSelectElement.h: + (HTMLSelectElement): + * html/TypeAhead.cpp: Removed. + * html/TypeAhead.h: Removed. + * html/shadow/DateTimeSymbolicFieldElement.cpp: + (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement): + (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent): + * html/shadow/DateTimeSymbolicFieldElement.h: + (DateTimeSymbolicFieldElement): + +2012-11-29 Keishi Hattori <keishi@webkit.org> + + Better type ahead for DateTimeSymbolicFieldElement + https://bugs.webkit.org/show_bug.cgi?id=103031 + + Reviewed by Kent Tamura. + + This cuts out the type ahead code that will be used by HTMLSelectElement + and DateTimeSymbolicFieldElement into a TypeAhead class. This will + improve DateTimeSymbolicFieldElement type ahead which was first + character match only, by adding cycling, prefix match and index number + match. + + Added tests to month-multiple-fields-keyboard-events.html. + + * GNUmakefile.list.am: Added TypeAhead.{h,cpp} + * Target.pri: Ditto. + * WebCore.gypi: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * CMakeLists.txt: Ditto. + * html/HTMLSelectElement.cpp: + (WebCore): + (WebCore::HTMLSelectElement::HTMLSelectElement): + (WebCore::HTMLSelectElement::indexOfSelectedOption): Returns index of current selection. + (WebCore::HTMLSelectElement::optionCount): Returns total number of options. + (WebCore::HTMLSelectElement::optionAtIndex): Returns option at index. + (WebCore::HTMLSelectElement::typeAheadFind): Use TypeAhead. + * html/HTMLSelectElement.h: + (HTMLSelectElement): + * html/TypeAhead.cpp: Added. + (WebCore): + (WebCore::TypeAhead::TypeAhead): + (WebCore::stripLeadingWhiteSpace): Moved from HTMLSelectElement.cpp. + (WebCore::TypeAhead::handleEvent): Returns index for match. + * html/TypeAhead.h: Added. + (WebCore): + (TypeAheadDataSource): Provide the data about the options that TypeAhead should match against. + (TypeAhead): + * html/shadow/DateTimeSymbolicFieldElement.cpp: + (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement): + (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent): + (WebCore::DateTimeSymbolicFieldElement::indexOfSelectedOption): + (WebCore): + (WebCore::DateTimeSymbolicFieldElement::optionCount): + (WebCore::DateTimeSymbolicFieldElement::optionAtIndex): + * html/shadow/DateTimeSymbolicFieldElement.h: + (DateTimeSymbolicFieldElement): + +2012-11-29 Andrei Bucur <abucur@adobe.com> + + [CSS Regions] Fix content node renderers ordering inside the named flow thread + https://bugs.webkit.org/show_bug.cgi?id=103501 + + Reviewed by David Hyatt. + + This patch fixes two issues with how content nodes renderers are added to a named flow thread. + The first issue was about determining the insertion position of a renderer inside the children list of a named flow thread. Before this patch, the + insertion point was based on both the DOM ordering of the elements and insertion order of previous renderers. + The patch fixes this and makes the renderer position just a function of the DOM ordering of elements. + The second issue appeared when next/previousRenderer methods were skipping nodes because they had the flow-into property as a side effect + of copying the style of the parent element (e.g. Text nodes). The patch ensures the skipped nodes are also elements. + + Tests: fast/regions/named-flow-content-order-1.html + fast/regions/named-flow-content-order-2.html + fast/regions/named-flow-content-order-3.html + + * dom/NodeRenderingContext.cpp: + (WebCore::NodeRenderingContext::nextRenderer): Skip only elements. + (WebCore::NodeRenderingContext::previousRenderer): Skip only elements. + * rendering/RenderNamedFlowThread.cpp: + (WebCore::RenderNamedFlowThread::addFlowChild): Insert the renderer in the list based on the DOM position of the owner element. + * rendering/RenderNamedFlowThread.h: + (RenderNamedFlowThread): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::renderNamedFlowThreadWrapper): Rename to eliminate the confusion with enclosingRenderFlowThread. + (WebCore::RenderObject::insertedIntoTree): + (WebCore::RenderObject::willBeRemovedFromTree): + * rendering/RenderObject.h: + (RenderObject): + +2012-11-28 Mike West <mkwst@chromium.org> + + Add a test to ensure that 'seamless' iframes do not inherit contenteditable. + https://bugs.webkit.org/show_bug.cgi?id=95890 + + Reviewed by Ojan Vafai. + + We don't currently support inheriting contenteditable into a seamless + frame. http://html5.org/tools/web-apps-tracker?from=7318&to=7319 + brought the spec in line with WebKit's behavior (ha!). This patch + defends the behavior by adding a test, and removes a FIXME comment + now that the question is settled. + + It also exposes a brand new bug: https://bugs.webkit.org/show_bug.cgi?id=103539 + How exciting. + + Test: fast/frames/seamless/seamless-contenteditable-not-inherited.html + + * css/StyleResolver.cpp: + (WebCore::StyleResolver::styleForDocument): + No functional change, just dropping a FIXME comment. + +2012-11-28 Mike West <mkwst@chromium.org> + + Web Inspector: Console message's anchor element should be trimmed for readability. + https://bugs.webkit.org/show_bug.cgi?id=100095 + + Reviewed by Pavel Feldman. + + We're currently trimming URLs that go through + 'WebInspector.linkifyURLAsNode' down to 150 characters total. Not all + URLs go that path, however. We were missing a few cases that dropped + back to the default Linkifier (which especially showed up for "Live" + anchor elements). + + This patch ensures that anything using WebInspector.Linkifier is also + trimmed by default. It adds a new constant to do so in order to avoid + magic numbers in the code. + + Test: http/tests/inspector/network/script-as-text-loading-long-url.html + + * inspector/front-end/Linkifier.js: + (WebInspector.Linkifier): + Pass the max length into the default formatter that's created and + stored when creating a 'WebInspector.Linkifier' object. + * inspector/front-end/ResourceUtils.js: + (WebInspector.linkifyURLAsNode): + Use the new maxlength constant rather than hard-coding 150. + +2012-11-28 Kentaro Hara <haraken@chromium.org> + + Unreviewed. Rebaselined run-bindings-tests. + + * bindings/scripts/test/V8/V8TestNode.h: + (WebCore::toV8Fast): + +2012-11-28 Shinya Kawanaka <shinyak@chromium.org> + + [Shadow] ShadowRoot should cache InsertionPointList. + https://bugs.webkit.org/show_bug.cgi?id=103212 + + Reviewed by Hajime Morita. + + When distributing or invalidating distribution, we used to traverse all descendent nodes in Shadow DOM. + If ShadowRoot has a InsertionPoint list, we can just traverse the list. + + No new tests, should be covered by existing tests. + + * dom/ShadowRoot.cpp: + (WebCore::ShadowRoot::insertionPointList): + (WebCore): + * dom/ShadowRoot.h: + (ShadowRoot): + * html/shadow/ContentDistributor.cpp: + (WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData): + (WebCore::ShadowRootContentDistributionData::invalidateInsertionPointList): + (WebCore): + (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList): Creates InsertionPoint list + if it's not created and return it. + (WebCore::ContentDistributor::distribute): Traverse InsertionPointList instead of all descendent nodes in Shadow DOM. + (WebCore::ContentDistributor::invalidate): ditto. + * html/shadow/ContentDistributor.h: + (WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren): Invalidate InsertionPointList cache. + (WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren): ditto. + (WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren): ditto. + (WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren): ditto. + (ShadowRootContentDistributionData): + +2012-11-28 Michael Pruett <michael@68k.org> + + IndexedDB: Remove duplicate toWireString() and createFromWire() methods in JSC SerializedScriptValue + https://bugs.webkit.org/show_bug.cgi?id=103554 + + Reviewed by Kentaro Hara. + + In r135022, duplicate createFromWire() and toWireString() methods + were added to the JSC version of SerializedScriptValue. In + order to allow the JSC SerializedScriptValue to compile when + ENABLE(INDEXED_DATABASE) is turned on, these new methods have + been removed and the old methods have been moved outside the + ENABLE(INDEXED_DATABASE) guard. + + No new tests. No change in functionality. + + * WebCore.exp.in: + * bindings/js/SerializedScriptValue.cpp: + (WebCore::SerializedScriptValue::toWireString): + (WebCore): + (WebCore::SerializedScriptValue::createFromWire): + * bindings/js/SerializedScriptValue.h: + +2012-11-28 Hajime Morrita <morrita@google.com> + + [Shadow DOM] Element.createShadowRoot() should be prefixed. + https://bugs.webkit.org/show_bug.cgi?id=103595 + + Reviewed by Kentaro Hara. + + No new tests, updated shadow-aware-create-shadow-root.html to follow the change. + + * dom/Element.idl: + +2012-11-28 Hayato Ito <hayato@chromium.org> + + Node::compareDocumentPosition returns wrong value for a node in the different shadow tree. + https://bugs.webkit.org/show_bug.cgi?id=103502 + + Reviewed by Dimitri Glazkov. + + Make Node::compareDocumentPosition() return the correct value when two nodes are in the different shadow trees. + + Test: fast/dom/shadow/compare-document-position.html + + * dom/Node.cpp: + (WebCore::Node::compareDocumentPosition): + +2012-11-28 Joshua Bell <jsbell@chromium.org> + + [Chromium] IndexedDB: Assert/crash in indexing layout tests in content_shell + https://bugs.webkit.org/show_bug.cgi?id=103562 + + Reviewed by Tony Chang. + + In multi-process ports, an commit request or setIndexesReady request may arrive from the + front-end after the back-end has already aborted. Don't freak out if those occur. + + Tests: storage/indexeddb/index-population.html + storage/indexeddb/lazy-index-population.html + storage/indexeddb/transaction-error.html + + * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: + (WebCore::IDBObjectStoreBackendImpl::setIndexKeys): Ensure transaction hasn't finished before continuing. + (WebCore::IDBObjectStoreBackendImpl::setIndexesReady): Ditto. + * Modules/indexeddb/IDBTransactionBackendImpl.cpp: + (WebCore::IDBTransactionBackendImpl::commit): Ignore a commit request if already aborted. + +2012-11-28 Shinya Kawanaka <shinyak@chromium.org> + + [Shadow] Move Distribution requirements from ShadowRoot + https://bugs.webkit.org/show_bug.cgi?id=103481 + + Reviewed by Hajime Morita. + + We would like to shrink the ShadowRoot memory size in this patch. ShadowRoot had several distribution related members, + however they were used only if ShadowRoot has <content>, <shadow>, or nested ShadowRoot. + Since <input> or <textarea> do not have such requirements, the members consume a few amount of memory. + + We remove them from ShadowRoot and introduce some RareData-like data structure for ShadowRoot. + This will reduce memory footprint in most cases. + + No new tests, refactoring. + + * WebCore.exp.in: + * dom/ShadowRoot.cpp: + (SameSizeAsShadowRoot): Reduced 3 * sizeof(unsigned) bytes from ShadowRoot. + (WebCore::ShadowRoot::ShadowRoot): DistributionData is created only when necessary. <input> or <textarea> won't + create such data. + (WebCore::ShadowRoot::assignedTo): + (WebCore): + (WebCore::ShadowRoot::setAssignedTo): + (WebCore::ShadowRoot::ensureDistributionData): + (WebCore::ShadowRoot::registerShadowElement): + (WebCore::ShadowRoot::unregisterShadowElement): + (WebCore::ShadowRoot::hasShadowInsertionPoint): + (WebCore::ShadowRoot::registerContentElement): + (WebCore::ShadowRoot::unregisterContentElement): + (WebCore::ShadowRoot::hasContentElement): + (WebCore::ShadowRoot::registerElementShadow): + (WebCore::ShadowRoot::unregisterElementShadow): + (WebCore::ShadowRoot::hasElementShadow): + (WebCore::ShadowRoot::countElementShadow): + (WebCore::ShadowRoot::reportMemoryUsage): + * dom/ShadowRoot.h: + (WebCore): + (ShadowRoot): + (WebCore::ShadowRoot::distributionData): + * html/shadow/ContentDistributor.cpp: + (WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData): + (WebCore): + * html/shadow/ContentDistributor.h: + (ShadowRootContentDistributionData): Distribution related fields in ShadowRoot are moved to here. + (WebCore::ShadowRootContentDistributionData::insertionPointAssignedTo): + (WebCore::ShadowRootContentDistributionData::setInsertionPointAssignedTo): + (WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren): + (WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren): + (WebCore::ShadowRootContentDistributionData::numberOfShadowElementChildren): + (WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren): + (WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren): + (WebCore::ShadowRootContentDistributionData::numberOfContentElementChildren): + (WebCore::ShadowRootContentDistributionData::incrementNumberOfElementShadowChildren): + (WebCore::ShadowRootContentDistributionData::decrementNumberOfElementShadowChildren): + (WebCore::ShadowRootContentDistributionData::numberOfElementShadowChildren): + (WebCore): + +2012-11-23 Dirk Schulze <krit@webkit.org> + + Remove -webkit-mask-attachment + https://bugs.webkit.org/show_bug.cgi?id=67137 + + Reviewed by David Hyatt. + + Remove CSS property '-webkit-attachment'. The CSS WG agreed that this should not be + part of the CSS Masking specification. WebKit never implemented the behavior of + attached masks either. The property was just exposed in CSSOM. + + Test: Added negative tests to fast/masking/parsing-mask.html. + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore): + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): + * css/CSSParser.cpp: + (WebCore::CSSParser::parseValue): + (WebCore::CSSParser::parseFillProperty): + * css/CSSProperty.cpp: + (WebCore::CSSProperty::isInheritedProperty): + * css/CSSPropertyNames.in: + * css/StyleBuilder.cpp: + (WebCore::StyleBuilder::StyleBuilder): + * css/StylePropertySet.cpp: + (WebCore::StylePropertySet::asText): + * css/StylePropertyShorthand.cpp: + (WebCore::webkitMaskShorthand): + * css/StyleResolver.cpp: + (WebCore::StyleResolver::applyProperty): + * rendering/style/RenderStyle.h: + +2012-11-28 Michael Pruett <michael@68k.org> + + IndexedDB: Add forward declaration of SecurityOrigin to IDBBackingStore.h + https://bugs.webkit.org/show_bug.cgi?id=103578 + + Reviewed by Kentaro Hara. + + Add forward declaration of SecurityOrigin to IDBBackingStore.h + in order to enable compilation of IndexedDB for JSC. + + Tests: storage/indexeddb/* + + * Modules/indexeddb/IDBBackingStore.h: + (WebCore): + +2012-11-28 Hajime Morrita <morrita@google.com> + + checkAcceptChild() needs fewer virtual calls + https://bugs.webkit.org/show_bug.cgi?id=103372 + + Reviewed by Ojan Vafai. + + This change reorganizes checkAcceptChild family for speed. + + - Made Node::checkAddChild and Node::checkReplaceChild() static inline functions + in ContainerNode.cpp. checkAcceptChild() was also moved to the same file. This allows us + more aggressive inlining. + + - Added a fast path in checkAcceptChild(), where we can assume that the parent is element + and the new child is element or text. Under this assumption, we need no extra type checks + and just needs a cycle prevention through Node::contains(). This is faster than current generic version. + + - Moved extra checks from checkAddChild() and checkReplaceChild() to + checkAcceptChild(). This allows the fast path skips even these extra checks. + + - Node::canReplaceChild() is devirtualized. Since the only override is on + Document, we can check isDocumentNode() to call it directly. + + - The default implemenation of Node::canReplaceChild() just calls isChildTypeAllowed(). + That is what an extra check for checkAddChild() did. So we can share these code path in checkAcceptChild(). + + This gains 2-3% win on Dromaeo dom-modify.html. + + No new tests, covered by existing tests. + + * dom/ContainerNode.cpp: + (WebCore::isChildTypeAllowed): Moved from Node.cpp + (WebCore::checkAcceptChild): Moved from Node.cpp, Added a fast path. + (WebCore::checkAddChild): Moved from Node.cpp + (WebCore::checkReplaceChild): Moved from Node.cpp + (WebCore::ContainerNode::insertBefore): Followed the signature change. + (WebCore::ContainerNode::replaceChild): Followed the signature change, moved null check from checkReplaceChild to here. + (WebCore::ContainerNode::appendChild): Followed the signature change. + * dom/Document.h: + (Document): + * dom/Node.cpp: + * dom/Node.h: + (WebCore::Node::isDocumentTypeNode): Added for better readability of call sites. + +2012-11-28 Kenichi Ishibashi <bashi@chromium.org> + + StyleResolver should not set NaN to font size + https://bugs.webkit.org/show_bug.cgi?id=99506 + + Reviewed by Abhishek Arya. + + fixedScaleFactor could be NaN since settings->defaultFixedFontSize() + and settings->defaultFontSize() are zero in some case. This turns + out setting NaN to font size. Add a zero checks so that + fixedScaleFactor won't be NaN. + + Test: fast/css/font-size-nan.html + + * css/StyleResolver.cpp: + (WebCore::StyleResolver::checkForGenericFamilyChange): + +2012-11-28 Tim Horton <timothy_horton@apple.com> + + [mac] WebHTMLConverter should maintain font size even when there is no related NSFont + https://bugs.webkit.org/show_bug.cgi?id=103568 + + Reviewed by Alexey Proskuryakov. + + WebHTMLConverter should use the default font at the correct size when it + encounters a font that cannot be backed by an NSFont (e.g. a WebFont). + + * platform/mac/HTMLConverter.mm: + (+[WebHTMLConverter editingAttributedStringFromRange:]): + +2012-11-23 Dirk Schulze <krit@webkit.org> + + CSS parser does not support -webkit-mask-size for -webkit-mask shorthand + https://bugs.webkit.org/show_bug.cgi?id=103020 + + Reviewed by David Hyatt. + + Harmonize the syntax of '-webkit-mask' property with 'background' according to the + CSS Masking specification[1]. This should make it easier to maintain both shorthand + properties in the long term. + It is very unlikely that a lot of content (if any) is affected by this change. The + computed style still is not implemented and this change should rather make it easier + for developers. + + With the harmonization, the '-webkit-mask-size' property is part of the shorthand as + well now. + + parsing-mask.html covers all the changes. Added new tests for the changed syntax and + '-webkit-mask-size' + + [1] http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseValue): + (WebCore::CSSParser::parseFillShorthand): + * css/StylePropertySet.cpp: + (WebCore::StylePropertySet::getLayeredShorthandValue): + * css/StylePropertyShorthand.cpp: + (WebCore::webkitMaskShorthand): + +2012-11-28 Alec Flett <alecflett@chromium.org> + + IndexedDB: Change frontend to call IDBDatabaseBackendInterface::createTransaction() + https://bugs.webkit.org/show_bug.cgi?id=102732 + + Reviewed by Tony Chang. + + Use the new createTransaction, now that it has been stubbed + out. This is part 2 of 3 of a refactor. See + https://bugs.webkit.org/show_bug.cgi?id=102733 for part 3. + + No new tests as this refactor simply keeps and propagates a + counter that is currently unused. + + * Modules/indexeddb/IDBDatabase.cpp: + (WebCore::IDBDatabase::nextTransactionId): + (WebCore): + (WebCore::IDBDatabase::transaction): + * Modules/indexeddb/IDBDatabase.h: + (IDBDatabase): + * Modules/indexeddb/IDBOpenDBRequest.cpp: + (WebCore::IDBOpenDBRequest::onUpgradeNeeded): + * Modules/indexeddb/IDBRequest.cpp: + (WebCore::IDBRequest::onSuccess): + * Modules/indexeddb/IDBTransaction.cpp: + (WebCore::IDBTransaction::create): + (WebCore::IDBTransaction::IDBTransaction): + * Modules/indexeddb/IDBTransaction.h: + (IDBTransaction): + +2012-11-28 Michael Saboff <msaboff@apple.com> + + HTMLFontElement font size parsing should directly handle 8 bit strings + https://bugs.webkit.org/show_bug.cgi?id=103315 + + Reviewed by Oliver Hunt. + + Split parseFontSize() into a templated function based on character type and a wrapper that determines + a string's bitness before calling the template. + + No new tests. No change in functionality. + + * html/HTMLFontElement.cpp: + (WebCore::parseFontSize): + +2012-11-28 Robert Kroeger <rjkroege@chromium.org> + + remove unused PlatformGestureCurve code + https://bugs.webkit.org/show_bug.cgi?id=103296 + + Reviewed by Adam Barth. + + Previous CLs have made the Chromium embedder provide gesture fling + curve implementation to WebKit. Consequently no platform uses the + gestural fling code currently found in WebKit. This CL removes this code. + + Code removal only: covered by existing tests. + + * CMakeLists.txt: + * GNUmakefile.list.am: + * WebCore.gypi: + * platform/ActivePlatformGestureAnimation.cpp: Removed. + * platform/ActivePlatformGestureAnimation.h: Removed. + * platform/PlatformGestureCurve.h: Removed. + * platform/PlatformGestureCurveTarget.h: Removed. + * platform/ScrollAnimatorNone.cpp: References to removed code removed. + * platform/ScrollAnimatorNone.h: + * platform/TouchFlingPlatformGestureCurve.cpp: Removed. + * platform/TouchFlingPlatformGestureCurve.h: Removed. + * platform/WheelFlingPlatformGestureCurve.cpp: Removed. + * platform/WheelFlingPlatformGestureCurve.h: Removed. + * platform/chromium/support/PlatformGestureCurveFactory.cpp: Removed. + * platform/chromium/support/PlatformGestureCurveFactory.h: Removed. + * platform/chromium/support/WebFlingAnimatorToGestureCurveAdapter.h: Removed. + +2012-11-28 Abhishek Arya <inferno@chromium.org> + + Heap-use-after-free in WebCore::EventHandler::handleMousePressEvent + https://bugs.webkit.org/show_bug.cgi?id=101098 + + Reviewed by Adam Barth. + + |subframe| can be blown away inside passMousePressEventToSubframe + call. Use RefPtr to protect it in handleMousePressEvent function. + We use similar approach in handleMouseMoveEvent function. + + No new tests. Test is extremely time dependent and needs to trigger + interaction gesture. Reproduced on ClusterFuzz. + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMousePressEvent): + +2012-11-28 Tom Sepez <tsepez@chromium.org> + + XSSAuditor bypass with script src=data: URL ending in <!-- + https://bugs.webkit.org/show_bug.cgi?id=103548 + + Reviewed by Adam Barth. + + This fixes an additional case where characters from the page itself are + included with the snippet to match against the reflected vector, and the + JS remains legitimate because of a <!--- comment. Truncate the snippet at + such a comment. + + Test: http/tests/security/xssAuditor/script-tag-with-source-data-url3.html + + * html/parser/XSSAuditor.cpp: + (WebCore::XSSAuditor::decodedSnippetForAttribute): + +2012-11-28 Abhishek Arya <inferno@chromium.org> + + Heap-use-after-free in WebCore::RenderLayerModelObject::hasSelfPaintingL +ayer + https://bugs.webkit.org/show_bug.cgi?id=101970 + + Reviewed by David Hyatt. + + RenderInline::splitFlow and RenderBlock::splitFlow re-use |pre| + block in some cases. In those cases, |pre| might hold floating objects + and those floating descendants might get moved to |post| block. If + the |pre| block does not get a layout later, then the floating + descendant will never get removed since it is now part of |post| + ancestor chain. We don't want failing-to-layout bugs turned into + security bugs and hence clear floating objects list since we expect + it to be rebuilt in subsequent layout. + + Test: fast/block/float/float-not-removed-from-pre-block.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::splitFlow): Call removeFloatingObjects on |pre| block. + (WebCore::RenderBlock::removeFloatingObjects): Clear all floating objects from our list. + (WebCore): + * rendering/RenderBlock.h: + (RenderBlock): + * rendering/RenderInline.cpp: + (WebCore::RenderInline::splitFlow): Call removeFloatingObjects on |pre| block. + +2012-11-28 Mark Pilgrim <pilgrim@chromium.org> + + [Chromium] Remove pluginsScriptableObject from PlatformSupport + https://bugs.webkit.org/show_bug.cgi?id=103542 + + Reviewed by Adam Barth. + + Part of a refactoring series. See tracking bug 82948. + + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::createScriptInstanceForWidget): + * platform/chromium/PlatformSupport.h: + (PlatformSupport): + * plugins/PluginViewBase.h: + (PluginViewBase): + (WebCore::PluginViewBase::scriptableObject): + +2012-11-28 Otto Derek Cheung <otcheung@rim.com> + + [BlackBerry] CookieJarBlackBerry will use document settings for cookiesEnabled + https://bugs.webkit.org/show_bug.cgi?id=103560 + + Reviewed by Rob Buis. + + PR 253490 + + CookieJarBlackBerry will now use page settings to check whether + cookie is enabled. + + Tested setting/reading cookies on different client cookie settings using + javascript and HTTP. Cookie behaviour is now back to spec. + + * loader/blackberry/CookieJarBlackBerry.cpp: + (WebCore::cookies): + (WebCore::cookieRequestHeaderFieldValue): + +2012-11-28 Mark Pilgrim <pilgrim@chromium.org> + + [Chromium][Win] Remove ensureFontLoaded from PlatformSupport + https://bugs.webkit.org/show_bug.cgi?id=97696 + + Reviewed by Adam Barth. + + Move ensureFontLoaded() from PlatformSupport to + FontPlatformDataChromiumWin. Part of a refactoring series; see + tracking bug 82948. + + * platform/chromium/PlatformSupport.h: + (PlatformSupport): + * platform/graphics/chromium/FontCacheChromiumWin.cpp: + (WebCore::fontContainsCharacter): + * platform/graphics/chromium/FontChromiumWin.cpp: + (WebCore::drawGlyphsWin): + * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp: + (WebCore::FontPlatformData::scriptFontProperties): + (WebCore): + (WebCore::FontPlatformData::ensureFontLoaded): + * platform/graphics/chromium/FontPlatformDataChromiumWin.h: + (FontPlatformData): + * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp: + (WebCore::getGlyphIndices): + (WebCore::fillBMPGlyphs): + * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::determinePitch): + (WebCore::SimpleFontData::platformBoundsForGlyph): + (WebCore::SimpleFontData::platformWidthForGlyph): + * platform/graphics/chromium/UniscribeHelperTextRun.cpp: + (WebCore::UniscribeHelperTextRun::tryToPreloadFont): + * platform/graphics/skia/SkiaFontWin.cpp: + (WebCore::paintSkiaText): + +2012-11-28 peavo@outlook.com <peavo@outlook.com> + + [WinCairo] Crash when requesting favicon. + https://bugs.webkit.org/show_bug.cgi?id=102689 + + Reviewed by Brent Fulgham. + + * platform/graphics/BitmapImage.h: Made frameCount() method virtual, subclasses made for testing can then override it. + * platform/graphics/win/ImageCairoWin.cpp: + (WebCore::BitmapImage::getHBITMAPOfSize): Added NULL pointer check. + (WebCore::BitmapImage::drawFrameMatchingSourceSize): Added NULL pointer check. + +2012-11-28 Tony Chang <tony@chromium.org> + + Move internals.settings.setPageScaleFactor to internals.setPageScaleFactor + https://bugs.webkit.org/show_bug.cgi?id=103559 + + Reviewed by Jochen Eisinger. + + This method doesn't alter the Settings object, so move it to internals. + + No new tests, this is a refactor. + + * testing/InternalSettings.cpp: Remove. + * testing/InternalSettings.h: Remove. + * testing/InternalSettings.idl: Remove. + * testing/Internals.cpp: + (WebCore::Internals::resetToConsistentState): Add reset code. + (WebCore::Internals::setPageScaleFactor): Add method. + * testing/Internals.h: Add method. + * testing/Internals.idl: Add method. + +2012-11-28 Alexandru Chiculita <achicu@adobe.com> + + [CSS Regions] Elements using transforms are not repainted correctly when rendered in a region + https://bugs.webkit.org/show_bug.cgi?id=102826 + + Reviewed by Dave Hyatt. + + Follow up update of a comment after the patch was landed by the commit queue in r135921. + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::containerForRepaint): + +2012-11-28 Christophe Dumez <christophe.dumez@intel.com> + + CSS3 Multicolumn: column-span should accept value 'none' (instead of '1') + https://bugs.webkit.org/show_bug.cgi?id=101462 + + Reviewed by David Hyatt. + + According to the latest CSS3 Multi-column specification: + http://www.w3.org/TR/2011/CR-css3-multicol-20110412/#column-span + + column-span should accept values [ none | all ], instead of + [ 1 | all ]. This patch updates WebKit implementation to reflect + this change in the specification. The value 1 is still supported + for compatibility reasons and is mapped to none. + + No new tests, already covered by existing tests. + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): + * css/CSSParser.cpp: + (WebCore::CSSParser::parseValue): + * css/CSSPrimitiveValueMappings.h: + (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): + (WebCore::CSSPrimitiveValue::operator ColumnSpan): + * rendering/style/RenderStyle.h: + * rendering/style/RenderStyleConstants.h: + +2012-11-28 Anton Vayvod <avayvod@chromium.org> + + Text Autosizing: Clusters should use width of LCA of their text nodes + https://bugs.webkit.org/show_bug.cgi?id=102562 + + Reviewed by Kenneth Rohde Christiansen. + + Many pages set a max-width on their content. So especially for the + RenderView, instead of just taking the width of |cluster| we find + the lowest common ancestor of the first and last descendant text node of + the cluster (i.e. the deepest wrapper block that contains all the text), + and use its width instead. + + Tests: fast/text-autosizing/cluster-with-narrow-lca-and-cluster.html + fast/text-autosizing/cluster-with-narrow-lca.html + fast/text-autosizing/cluster-with-wide-lca.html + fast/text-autosizing/list-item-out-of-flow.html + fast/text-autosizing/wide-in-narrow-overflow-scroll.html + + * rendering/TextAutosizer.cpp: + (WebCore::TextAutosizer::processCluster): use text nodes LCA instead of cluster for width calculation + (WebCore::TextAutosizer::isAutosizingContainer): list items that are out of parent list element's flow are valid containers (that therefore become clusters in isAutosizingCluster) + (WebCore::TextAutosizer::findDeepestBlockContainingAllText): searches for LCA of text nodes ignoring descendant clusters + (WebCore::TextAutosizer::findFirstTextLeafNotInCluster): searches for the first or the last (depending on specified direction) text leaf node in-order ignoring any descendant clusters + * rendering/TextAutosizer.h: new private methods declarations and an enum for tree traversal direction. + +2012-11-28 Sadrul Habib Chowdhury <sadrul@chromium.org> + + cleanup: Change some code to be cleaner, more readable and style conforming + https://bugs.webkit.org/show_bug.cgi?id=103543 + + Reviewed by Antonio Gomes. + + Use more appropriate function name and more meaningful variable names to make the code cleaner. + This is covered by existing tests. This does not make any behavioural changes, so no new tests. + + * page/EventHandler.cpp: + (WebCore::closestScrollableNodeInDocumentIfPossible): + (WebCore::EventHandler::handleWheelEvent): + +2012-11-28 Alexandru Chiculita <achicu@adobe.com> + + [CSS Regions] Crash when using hover and first-letter inside a flow-thread + https://bugs.webkit.org/show_bug.cgi?id=102957 + + Reviewed by David Hyatt. + + Some RenderObjects use a different path when they are destroyed. That's because they are dynamically + added just before layout happens and their parent is usually not their actual owner. In those cases the parent + will remove the object from the tree, but it's actually the owner that will destroy the object and all its + children. + + RenderFlowThread maintains a RenderBoxRegionInfo object for each RenderObject that is rendered inside the + flow-thread. When the RenderObject is removed from the RenderFlowThread, the associated RenderBoxRegionInfo object + also needs to be removed. + + In these special cases (list-marker, first-letter), the object itself was removed from the RenderFlowThread, + but its children were still left in the flow-thread. When the these special objects were later destroyed, + they will remove their own children. Removing their children means it will try to remove them from the + associated RenderFlowThread. However, in this cases there would be no link back to the parent flow-thread, + as the tree is now detached from the enclosing RenderFlowThread. + + Added code that recursively removes the whole children tree from the RenderFlowThread when the root is removed. + + Tests: fast/regions/firstletter-inside-flowthread.html + fast/regions/listmarker-inside-flowthread.html + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::willBeRemovedFromTree): + (WebCore::RenderObject::removeFromRenderFlowThread): + (WebCore): + (WebCore::RenderObject::removeFromRenderFlowThreadRecursive): + * rendering/RenderObject.h: + (RenderObject): + +2012-11-28 Alexandru Chiculita <achicu@adobe.com> + + [CSS Regions] Auto-height regions will not calculate the height correctly when the content changes dynamically + https://bugs.webkit.org/show_bug.cgi?id=102954 + + Reviewed by David Hyatt. + + Whenever the flow changes, we need to reset the region computed auto-heights. + However, when we reset the region heights to "auto" or "un-computed", we also need to make + sure that all the region breaks are counted again, so that we split regions correctly during the new layout. + I've reused the m_regionsInvalidated property to force the flow do a complete layout. + + Test: fast/regions/autoheight-dynamic-update.html + + * rendering/RenderFlowThread.cpp: + (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight): + +2012-11-28 Alexandru Chiculita <achicu@adobe.com> + + [CSS Regions] InRenderFlowThread returns false in the first setStyle + https://bugs.webkit.org/show_bug.cgi?id=102839 + + Reviewed by Dave Hyatt. + + Some render objects use the "inRenderFlowThread" during the first styleWillChange/styleDidChange. + The first call to these methods comes from NodeRendererFactory::createRenderer. That happens before the RenderObject is + attached to the parent renderer, meaning that inRenderFlowThread is false. That means a RenderLayerBacking will be + created for renderers inside the RenderFlowThread, but composited layers inside the RenderFlowThread are not supported yet. + https://bugs.webkit.org/show_bug.cgi?id=84900 + + Test: fast/repaint/region-painting-composited-element.html + + * dom/NodeRenderingContext.cpp: + (WebCore::NodeRendererFactory::createRenderer): + Added code to propagate the inRenderFlowThread flag from the parent node before the style is set for the first time. + +2012-11-28 Dan Bernstein <mitz@apple.com> + + <rdar://problem/12645085> REGRESSION (r130851): With kerning enabled, a white-space: pre-wrap inline starting with tab+space has the wrong width + https://bugs.webkit.org/show_bug.cgi?id=103541 + + Reviewed by Anders Carlsson. + + Test: fast/text/tab-with-kerning.html + + When kerning is enabled, words are measured with their trailing space, then the width of a + space is subtracted. The logic to do this was incorrectly being invoked even when the + trailing whitespace character was a tab or a newline. + + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::LineBreaker::nextLineBreak): Changed to check only for the space + character, not other space-like characters. + +2012-11-28 Nate Chapin <japhet@chromium.org> + + Move empty loading to DocumentLoader, simplify FrameLoader::init() + https://bugs.webkit.org/show_bug.cgi?id=101512 + + Reviewed by Adam Barth. + + No new tests, though several outputs changed because we no longer send resource + load callbacks for empty loads. + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::DocumentLoader): + (WebCore::DocumentLoader::~DocumentLoader): + (WebCore::DocumentLoader::finishedLoading): + (WebCore::DocumentLoader::commitData): + (WebCore::DocumentLoader::clearMainResourceLoader): + (WebCore::DocumentLoader::isLoadingInAPISense): + (WebCore::DocumentLoader::documentURL): + (WebCore::DocumentLoader::isLoadingMainResource): + (WebCore::DocumentLoader::maybeLoadEmpty): + (WebCore): + (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource + loads directly here. + * loader/DocumentLoader.h: + (WebCore::DocumentLoader::serverRedirectSourceForHistory): + (DocumentLoader): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values + were previously being reset in init(). Given that the FrameLoader is in + an inconsistent state before init() is called anyway, there doesn't seem + to be a disadvantage to just initializing them to their post-init() values. + (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of + doing a bunch of direct calls to functions FrameLoader shouldn't know about. + * loader/FrameLoaderStateMachine.cpp: + (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine): + * loader/FrameLoaderStateMachine.h: + * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load. + (WebCore::MainResourceLoader::loadNow): This only returned true when an empty + load got deferred, which won't happen now. Return void and always treat + as returning false. + * loader/MainResourceLoader.h: + (MainResourceLoader): + +2012-11-28 Antoine Quint <graouts@apple.com> + + Calling .removeCue() for a cue that was never added should raise a NOT_FOUND_ERR + https://bugs.webkit.org/show_bug.cgi?id=103412 + + Reviewed by Eric Carlson. + + Updating the .removeCue() implementation to match the latest spec. This means we now + raise a NOT_FOUND_ERR exception when trying to remove a cue that wasn't present in the + cue list instead of a INVALID_STATE_ERR exception like the spec used to mandate. + + * html/track/TextTrack.cpp: + (WebCore::TextTrack::removeCue): + +2012-11-28 Zeno Albisser <zeno@webkit.org> + + [Qt][Win] Enable usage of QTWEBKIT_PLUGIN_PATH. + https://bugs.webkit.org/show_bug.cgi?id=103529 + + This patch enables the same behavior for Windows + as it is currently implemented for all other operating + systems supported by Qt. + Directories listed in the environment variable + QTWEBKIT_PLUGIN_PATH are being searched for additional + plugins. + The only difference is that directories on Windows + need to be separated by a semicolon instead of a colon. + + Reviewed by Kenneth Rohde Christiansen. + + * plugins/win/PluginDatabaseWin.cpp: + (WebCore): + (WebCore::addQtWebKitPluginPath): + (WebCore::PluginDatabase::defaultPluginDirectories): + +2012-11-28 Adam Barth <abarth@webkit.org> + + [v8] 4% regression in dom_traverse tests + https://bugs.webkit.org/show_bug.cgi?id=102858 + + Unreviewed. + + This patch is a manual rollout of + http://trac.webkit.org/changeset/134729. We can't do a mechanical + rollout because V8DOMWrapper::getCachedWrapper no longer exists. + + * bindings/scripts/CodeGeneratorV8.pm: + (GenerateHeader): + +2012-11-28 Denis Nomiyama <d.nomiyama@samsung.com> + + Removed extra definition of GLXContext. + https://bugs.webkit.org/show_bug.cgi?id=103500 + + Reviewed by Martin Robinson. + + A minor cleanup to remove a spare definition of GLXContext in GLContextGLX.h. + + No new tests. This doesn't change any behavior. + + * platform/graphics/glx/GLContextGLX.h: + +2012-11-28 Sadrul Habib Chowdhury <sadrul@chromium.org> + + Fix gesture scrolling when the target-element of scroll-begin is removed + https://bugs.webkit.org/show_bug.cgi?id=103355 + + Reviewed by Antonio Gomes. + + When a touch-scroll starts, the node under the touch-point gets latched, and + subsequent scroll-update events are dispatched to that node. But if the node is + removed while the gesture event is in progress (e.g. in a dynamically updated + list), then the scrolling stops, although there are enough elements to still + enable scrolling. So instead of latching on to the node immediately under the + touch point, latch on to the scrollable node under the touch point. + + Test: fast/events/touch/gesture/touch-gesture-scroll-remove-node.html + + * page/EventHandler.cpp: + (WebCore::getClosestScrollableNodeInDocumentIfPossible): + (WebCore): + (WebCore::EventHandler::handleWheelEvent): + +2012-11-28 Anton Obzhirov <a.obzhirov@samsung.com> + + Fix .libs/libwebkitgtk-3.0.so: undefined reference to `WebCore::validationMessageBadInputForNumberText(). + https://bugs.webkit.org/show_bug.cgi?id=103509 + + Reviewed by Philippe Normand. + + GTK build fix after r136001. + + * platform/gtk/LocalizedStringsGtk.cpp: + (WebCore::validationMessageBadInputForNumberText): + (WebCore): + +2012-11-28 Byungwoo Lee <bw80.lee@samsung.com> + + [EFL] Use mutex locker in wakeUp() to ensure thread-safety. + https://bugs.webkit.org/show_bug.cgi?id=101132 + + Reviewed by Gyuyoung Kim. + + Add mutex locker for the ecore pipe to ensure thread-safety of + RunLoop::wakeUp(). + + RunLoop::wakeUp() can be called by multiple thread. It uses + ecore_pipe_write() function but the function is not thread-safe. + + * platform/RunLoop.h: + (RunLoop): + * platform/efl/RunLoopEfl.cpp: + (WebCore::RunLoop::wakeUp): + +2012-11-28 Ryuan Choi <ryuan.choi@gmail.com> + + [EFL] Refactor theme to choose whether to support foreground color of selection + https://bugs.webkit.org/show_bug.cgi?id=102037 + + Reviewed by Kenneth Rohde Christiansen. + + If foreground selection color is supported, selected text is painted to + SelectionForegroundColor instead of text color. If not, text can be painted + to text color. + + However, EFL port does not have a way to disable support of foreground + selection color. So this patch refactors color classes of theme from + active and inactive to foreground and background in order to disable support + of foreground selection color when foreground color class is not specified. + + * platform/efl/RenderThemeEfl.cpp: + (WebCore::fillColorsFromEdjeClass): + Returned false without error message when colorClass is not specified. + (WebCore::RenderThemeEfl::setColorFromThemeClass): + (WebCore::RenderThemeEfl::loadTheme): + (WebCore::RenderThemeEfl::RenderThemeEfl): + (WebCore::RenderThemeEfl::supportsSelectionForegroundColors): + (WebCore): + * platform/efl/RenderThemeEfl.h: + (RenderThemeEfl): + +2012-11-28 Allan Sandfeld Jensen <allan.jensen@digia.com> + + Move childrenAffectedBy bits from RenderStyle to Element + https://bugs.webkit.org/show_bug.cgi?id=101448 + + Unreviewed buildfix. + + To use renderStyle() on some Macs we need to include NodeRenderStyle.h. + + * dom/ContainerNode.cpp: + +2012-11-28 Allan Sandfeld Jensen <allan.jensen@digia.com> + + Move childrenAffectedBy bits from RenderStyle to Element + https://bugs.webkit.org/show_bug.cgi?id=101448 + https://bugs.webkit.org/show_bug.cgi?id=98021 + + Reviewed by Antti Koivisto. + + Moves facts observed about restyling dependencies out of RenderStyle and + into RareData for Node and Element. This also enables further cleanup + in related code that tried to deal with problems caused with the placement + of the data. + + Test: fast/css/nth-child-not-in-rightmost.html + + * css/SelectorChecker.cpp: + (WebCore::SelectorChecker::checkSelector): + (WebCore::SelectorChecker::checkOneSelector): + * css/SiblingTraversalStrategies.h: + (WebCore::DOMSiblingTraversalStrategy::countElementsBefore): + * css/StyleResolver.cpp: + (WebCore::StyleResolver::sortAndTransferMatchedRules): + (WebCore::StyleResolver::canShareStyleWithElement): + (WebCore::parentElementPreventsSharing): + (WebCore::StyleResolver::locateSharedStyle): + * dom/ContainerNode.cpp: + (WebCore::ContainerNode::setActive): + (WebCore::ContainerNode::setHovered): + * dom/Element.cpp: + (WebCore::Element::detach): + (WebCore::Element::recalcStyle): + (WebCore::checkForEmptyStyleChange): + (WebCore::checkForSiblingStyleChanges): + (WebCore::Element::setChildrenAffectedByHover): + (WebCore::Element::setChildrenAffectedByActive): + (WebCore::Element::setChildrenAffectedByDrag): + (WebCore::Element::setChildrenAffectedByFirstChildRules): + (WebCore::Element::setChildrenAffectedByLastChildRules): + (WebCore::Element::setChildrenAffectedByDirectAdjacentRules): + (WebCore::Element::setChildrenAffectedByForwardPositionalRules): + (WebCore::Element::setChildrenAffectedByBackwardPositionalRules): + (WebCore::Element::setChildIndex): + (WebCore::Element::rareDataStyleAffectedByEmpty): + (WebCore::Element::rareDataChildrenAffectedByHover): + (WebCore::Element::rareDataChildrenAffectedByActive): + (WebCore::Element::rareDataChildrenAffectedByDrag): + (WebCore::Element::rareDataChildrenAffectedByFirstChildRules): + (WebCore::Element::rareDataChildrenAffectedByLastChildRules): + (WebCore::Element::rareDataChildrenAffectedByDirectAdjacentRules): + (WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules): + (WebCore::Element::rareDataChildrenAffectedByBackwardPositionalRules): + (WebCore::Element::rareDataChildIndex): + * dom/Element.h: + (Element): + (WebCore::Element::styleAffectedByEmpty): + (WebCore::Element::childrenAffectedByHover): + (WebCore::Element::childrenAffectedByActive): + (WebCore::Element::childrenAffectedByDrag): + (WebCore::Element::childrenAffectedByPositionalRules): + (WebCore::Element::childrenAffectedByFirstChildRules): + (WebCore::Element::childrenAffectedByLastChildRules): + (WebCore::Element::childrenAffectedByDirectAdjacentRules): + (WebCore::Element::childrenAffectedByForwardPositionalRules): + (WebCore::Element::childrenAffectedByBackwardPositionalRules): + (WebCore::Element::childIndex): + * dom/ElementRareData.h: + (ElementRareData): + (WebCore::ElementRareData::resetComputedStyle): + (WebCore::ElementRareData::resetDynamicRestyleObservations): + * dom/Node.cpp: + (WebCore::Node::diff): + * dom/NodeRareData.h: + (WebCore::NodeRareData::NodeRareData): + (WebCore::NodeRareData::childrenAffectedByHover): + (WebCore::NodeRareData::setChildrenAffectedByHover): + (WebCore::NodeRareData::childrenAffectedByActive): + (WebCore::NodeRareData::setChildrenAffectedByActive): + (WebCore::NodeRareData::childrenAffectedByDrag): + (WebCore::NodeRareData::setChildrenAffectedByDrag): + (NodeRareData): + (WebCore::NodeRareData::childrenAffectedByFirstChildRules): + (WebCore::NodeRareData::setChildrenAffectedByFirstChildRules): + (WebCore::NodeRareData::childrenAffectedByLastChildRules): + (WebCore::NodeRareData::setChildrenAffectedByLastChildRules): + (WebCore::NodeRareData::childrenAffectedByDirectAdjacentRules): + (WebCore::NodeRareData::setChildrenAffectedByDirectAdjacentRules): + (WebCore::NodeRareData::childrenAffectedByForwardPositionalRules): + (WebCore::NodeRareData::setChildrenAffectedByForwardPositionalRules): + (WebCore::NodeRareData::childrenAffectedByBackwardPositionalRules): + (WebCore::NodeRareData::setChildrenAffectedByBackwardPositionalRules): + (WebCore::NodeRareData::childIndex): + (WebCore::NodeRareData::setChildIndex): + * dom/NodeRenderingContext.cpp: + (WebCore::NodeRenderingContext::createRendererForElementIfNeeded): + * page/TouchAdjustment.cpp: + (WebCore::TouchAdjustment::nodeRespondsToTapGesture): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::updateDragState): + * rendering/style/RenderStyle.cpp: + (WebCore::RenderStyle::copyNonInheritedFrom): + * rendering/style/RenderStyle.h: + +2012-11-28 Zeno Albisser <zeno@webkit.org> + + GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1. + https://bugs.webkit.org/show_bug.cgi?id=103497 + + Unreviewed buildfix. + + Any usage of GraphicsSurface needs to be wrapped with USE(GRAPHICS_SURFACE). + + * platform/graphics/qt/GraphicsContext3DQt.cpp: + (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): + +2012-11-28 Zeno Albisser <zeno@webkit.org> + + GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1. + https://bugs.webkit.org/show_bug.cgi?id=103497 + + This is a temporary workaround for an issue with GraphicsSurfaceMac. + GraphicsSurfaceMac is currently implemented using CGL only. + CGL does not allow us to properly restore the NSView a context was made current with. + Therefore we have to go through QOpenGLContext to ensure the context + is being restored correctly. + As soon as we are updating GraphicsSurfaceMac to use NSOpenGL, + we should revert this patch. + + Reviewed by Simon Hausmann. + + * platform/graphics/qt/GraphicsContext3DQt.cpp: + (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): + +2012-11-28 Zeno Albisser <zeno@webkit.org> + + GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1. + https://bugs.webkit.org/show_bug.cgi?id=103497 + + Using GraphicsSurface for WebGL in WK1 allows us to share + the code with the WK2 implementation. + + Reviewed by Simon Hausmann. + + * platform/graphics/qt/GraphicsContext3DQt.cpp: + (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate): + Remove obsolete code. + (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): + After blitting the multisample framebuffer, + we can copy the contents onto the GraphicsSurface. + Right after that we can use the GraphicsSurface + as a texture origin to paint to the TextureMapper. + Flags related to flipping and blending are being resolved + by GraphicsSurface, and do not need to be handled here anymore. + (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface): + Remove a redundant makeCurrentIfNeeded call. + The original context is being restored by + blitMultisampleFramebufferAndRestoreContext anyway. + Instead of explicitly calling swapBuffers here, + we call swapBuffers on the GraphicsSurface implicitly + after in GraphicsSurfacePrivate::copyFromTexture(). + * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp: + Add members to hold the reading end texture IDs. + The texture on the reading side are in a different + context than the texture on the writing side. + By using GraphicsSurface in WK1 we have to distinguish + between these textures, as a single instance serves + for reading and writing. + (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate): + (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate): + (WebCore::GraphicsSurfacePrivate::swapBuffers): + (WebCore::GraphicsSurfacePrivate::copyFromTexture): + Add an implicit call to swapBuffers(). + (WebCore::GraphicsSurfacePrivate::frontBufferTextureID): + (GraphicsSurfacePrivate): + * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: + (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate): + Add a flag to distinguish between sending and receiving/reading + side of the surface. This flag is being initialized in the constructor + which is the only place where we know if an instance will be used for + writing or reading. + The purpose of this flag is to avoid erroneously swapping the buffers + on the reading side. We can no longer rely on m_xPixmap for this purpose. + (WebCore::GraphicsSurfacePrivate::swapBuffers): + (WebCore::GraphicsSurfacePrivate::copyFromTexture): + (WebCore::GraphicsSurfacePrivate::glxPixmap): + Lazily create the GLX pixmap on demand. + (GraphicsSurfacePrivate): + (WebCore::GraphicsSurface::platformImport): + +2012-11-28 Roger Fong <roger_fong@apple.com> + + Unreviewed. Fix extra spaces in SimpleFontData::initGDIFont(). + + * platform/graphics/win/SimpleFontDataWin.cpp: + (WebCore::SimpleFontData::initGDIFont): + +2012-11-28 Dan Carney <dcarney@google.com> + + [V8] Crash wrapping media element when MediaPlayer isn't available + https://bugs.webkit.org/show_bug.cgi?id=103431 + + Reviewed by Kentaro Hara. + + Call HTMLElement::createWrapper directly when dispatching a + disabled MediaElement wrap. + + No new tests. Testing this must apparently be manual. + + * bindings/scripts/CodeGeneratorV8.pm: + (GenerateHeader): + * dom/make_names.pl: + (printWrapperFunctions): + (printWrapperFactoryHeaderFile): + +2012-11-28 Roger Fong <roger_fong@apple.com> + + Initialize identity matrix in SimpleFontData::initGDIFont() properly. + https://bugs.webkit.org/show_bug.cgi?id=103499 + <rdar://problem/12400700> + + Reviewed by Timothy Horton. + + We are incorrectly initializing the matrix passed into GetGlyphOutline. + This patch fixes MAT2 initialization to match the way we initialize the + identity matrix in SimpleFontData::boundsForGDIGlyph and SimpleFontData::widthForGDIGlyph. + + * platform/graphics/win/SimpleFontDataWin.cpp: + (WebCore::SimpleFontData::initGDIFont): + +2012-11-28 Huang Dongsung <luxtella@company100.net> + + [Texmap] REGRESSION(r135620) QtTestBrowser crashes on Google-gravity. + https://bugs.webkit.org/show_bug.cgi?id=103410 + + Reviewed by Noam Rosenthal. + + GraphicsLayerTextureMapper::updateBackingStore() should return early + before TextureMapper is set. + + GraphicsLayer::FlushCompositingState() can be called by RenderLayerBacking. It + means this method can be called before creating TextureMapper. So + TextureMapperLayer::flushCompositingState() checks and returns early if + TextureMapper was not created. + + However, GraphicsLayerTextureMapper::updateBackingStore() expects that TextureMapper + always exists. updateBackingStore should also return early when TextureMapper + was not created. + + No new tests. Covered by existing tests. + + * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: + (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay): + (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect): + (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState): + (WebCore::GraphicsLayerTextureMapper::prepareBackingStore): + +2012-11-28 Tommy Widenflycht <tommyw@google.com> + + Add basic implementation for MediaStreamAudioDestinationNode + https://bugs.webkit.org/show_bug.cgi?id=101815 + + Reviewed by Chris Rogers. + + Implements an audio destination node which has a MediaStream. + This can be added to a PeerConnection with peerConnection.addStream(). + Please see use case (3): + https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html + + Test: webaudio/mediastreamaudiodestinationnode.html + + * Modules/webaudio/AudioContext.cpp: + (WebCore): + (WebCore::AudioContext::createMediaStreamDestination): + * Modules/webaudio/AudioContext.h: + (WebCore): + (AudioContext): + * Modules/webaudio/AudioContext.idl: + * Modules/webaudio/AudioNode.h: + * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: Added. + (WebCore): + (WebCore::MediaStreamAudioDestinationNode::create): + (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): + (WebCore::MediaStreamAudioDestinationNode::mediaStreamSource): + (WebCore::MediaStreamAudioDestinationNode::~MediaStreamAudioDestinationNode): + (WebCore::MediaStreamAudioDestinationNode::process): + (WebCore::MediaStreamAudioDestinationNode::reset): + * Modules/webaudio/MediaStreamAudioDestinationNode.h: Added. + (WebCore): + (MediaStreamAudioDestinationNode): + (WebCore::MediaStreamAudioDestinationNode::stream): + * Modules/webaudio/MediaStreamAudioDestinationNode.idl: Added. + * WebCore.gypi: + * platform/audio/AudioDestinationConsumer.h: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.cpp. + (WebCore): + (AudioDestinationConsumer): + (WebCore::AudioDestinationConsumer::~AudioDestinationConsumer): + * platform/chromium/support/WebMediaStreamSource.cpp: + (WebKit::WebMediaStreamSource::extraData): + (WebKit::WebMediaStreamSource::setExtraData): + (WebKit::WebMediaStreamSource::requiresAudioConsumer): + (WebKit): + (ConsumerWrapper): + (WebKit::ConsumerWrapper::create): + (WebKit::ConsumerWrapper::consumer): + (WebKit::ConsumerWrapper::ConsumerWrapper): + (WebKit::ConsumerWrapper::consumeAudio): + (WebKit::WebMediaStreamSource::addAudioConsumer): + (WebKit::WebMediaStreamSource::removeAudioConsumer): + * platform/mediastream/MediaStreamSource.cpp: + (WebCore::MediaStreamSource::create): + (WebCore::MediaStreamSource::MediaStreamSource): + (WebCore::MediaStreamSource::addAudioConsumer): + (WebCore): + (WebCore::MediaStreamSource::removeAudioConsumer): + (WebCore::MediaStreamSource::consumeAudio): + * platform/mediastream/MediaStreamSource.h: + (WebCore): + (MediaStreamSource): + (WebCore::MediaStreamSource::requiresAudioConsumer): + (WebCore::MediaStreamSource::audioConsumers): + +2012-11-27 Mike West <mkwst@chromium.org> + + Improve WebSocketChannel connection failure console messages. + https://bugs.webkit.org/show_bug.cgi?id=103448 + + Reviewed by Adam Barth. + + When a WebSocket connection fails, the current implementation of + WebSocketChannel::fail binds the generated console message to the + document's URL, but doesn't give much indication as to the connection + itself. This patch adjusts the console message to explicitly show the + URL of the failed connection to give developers a better chance of + debugging and resolving errors. + + * Modules/websockets/WebSocketChannel.cpp: + (WebCore::WebSocketChannel::fail): + Drop the URL parameter from addConsoleMessage, in favour of adding + the WebSocketHandshake's URL to the message text. + +2012-11-27 Zan Dobersek <zandobersek@gmail.com> + + Unreviewed functionality fix, return the height in ImageFrame::height() + on non-Skia platforms. + + * platform/image-decoders/ImageDecoder.h: + (WebCore::ImageFrame::height): + +2012-11-27 Viatcheslav Ostapenko <v.ostapenko@samsung.com> + + Optimization in image decoding + https://bugs.webkit.org/show_bug.cgi?id=88424 + + Reviewed by Brent Fulgham. + + Optimization in image decoding. + Reduce branching and multiplications in GIF image decoding loops and functions. + Rebase and update of original patch by Misha Tyutyunik <michael.tyuytunik@nokia.com> + + Covered by existing tests. + + * platform/image-decoders/gif/GIFImageDecoder.cpp: + (WebCore::GIFImageDecoder::haveDecodedRow): + +2012-11-27 Michael Saboff <msaboff@apple.com> + + TextIterator unnecessarily converts 8 bit strings to 16 bits + https://bugs.webkit.org/show_bug.cgi?id=103295 + + Reviewed by Brent Fulgham. + + Changed TextIterator to use the contained string instead of calling characters() on that string. + Other sources of text, like emitCharacter() still use the contained UChar* buffer. + Added appendTextToStringBuilder() to append the text contents of the current iterator to a string builder + irrespective of the source of the text. + + No new tests as functionality covered by existing tests. + + * WebCore.exp.in: Updated plainText export and eliminated plainTextToMallocAllocatedBuffer export + * accessibility/AccessibilityObject.cpp: + (WebCore::AccessibilityObject::stringForVisiblePositionRange): Updated to use TextIterator::appendTextToStringBuilder() + * editing/TextIterator.cpp: + (WebCore::TextIterator::characterAt): New function to return the indexed character of the current TextIterator + (WebCore::TextIterator::appendTextToStringBuilder): Added method to append whatever the current text to a StringBuilder + (WebCore::TextIterator::emitText): Eliminated accessing the character data via characters(). + (WebCore::TextIterator::rangeFromLocationAndLength): Changed to use characterAt(). + (WebCore::plainText): Combined with plainTextToMallocAllocatedBuffer(). + * editing/TextIterator.h: + (WebCore::TextIterator::startOffset): New getter. + (WebCore::TextIterator::string): New getter. + (WebCore::TextIterator::characters): Updated to use correct test source. + * page/ContextMenuController.cpp: + (WebCore::selectionContainsPossibleWord): Changed to use characterAt(). + +2012-11-27 Noel Gordon <noel.gordon@gmail.com> + + Inline ImageFrame width() and height() + https://bugs.webkit.org/show_bug.cgi?id=103401 + + Reviewed by Brent Fulgham. + + Inline ImageFrame width() and height() to improve the performance of ImageFrame + function getAddr(x,y) per https://bugs.webkit.org/show_bug.cgi?id=88424#c38 + + No new tests. Covered by many existing tests. + + * platform/image-decoders/ImageDecoder.cpp: Remove width() and height() routines + since they now inlined in the ImageFrame class definition in ImageDecoder.h. + * platform/image-decoders/ImageDecoder.h: Add inline definitions of width() and + height() for all ports. + * platform/image-decoders/skia/ImageDecoderSkia.cpp: + (WebCore::ImageFrame::width): Remove. + (WebCore::ImageFrame::height): Remove. + +2012-11-27 Michael Pruett <michael@68k.org> + + Remove ASSERT_NOT_REACHED() from IDBCursorBackendImpl::postSuccessHandlerCallback() + https://bugs.webkit.org/show_bug.cgi?id=103461 + + Reviewed by Kentaro Hara. + + The assertion is applicable only to the Chromium port. + + Tests: storage/indexeddb/* + + * Modules/indexeddb/IDBCursorBackendImpl.h: + (WebCore::IDBCursorBackendImpl::postSuccessHandlerCallback): + +2012-11-27 Shinya Kawanaka <shinyak@chromium.org> + + [Refactoring] HasSelectorForClassStyleFunctor in Element.cpp seems verbose + https://bugs.webkit.org/show_bug.cgi?id=103474 + + Reviewed by Hajime Morita. + + The code introduced in r135174 looks verbose. We would like to make it simpler. + We have removed several inline functions and unnecessary structs. + + No new tests, simple refactoring. + + * dom/Element.cpp: + (WebCore): + (WebCore::checkSelectorForClassChange): + (WebCore::Element::classAttributeChanged): + (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged): + +2012-11-27 Julien Chaffraix <jchaffraix@webkit.org> + + Support proper <percent> / calc() resolution for grid items + https://bugs.webkit.org/show_bug.cgi?id=102968 + + Reviewed by Ojan Vafai. + + This change introduces a mechanism similar to logical height / width override + but for containing block. This is required as we don't have a renderer for the + grid area but any <percent> or calc() size should be resolved against the grid + area size (which is sized after the grid tracks). + + Tests: fast/css-grid-layout/calc-resolution-grid-item.html + fast/css-grid-layout/percent-resolution-grid-item.html + fast/css-grid-layout/percent-grid-item-in-percent-grid-track.html + fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::willBeDestroyed): + Remove any containing block size override. + + (WebCore::RenderBox::overrideContainingBlockContentLogicalWidth): + (WebCore::RenderBox::overrideContainingBlockContentLogicalHeight): + (WebCore::RenderBox::hasOverrideContainingBlockLogicalWidth): + (WebCore::RenderBox::hasOverrideContainingBlockLogicalHeight): + (WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth): + (WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight): + (WebCore::RenderBox::clearContainingBlockOverrideSize): + Containing block override size functions. + + (WebCore::RenderBox::containingBlockLogicalWidthForContent): + Updated the function to check for any override logical width. + + (WebCore::RenderBox::containingBlockLogicalHeightForContent): + New function, similar to RenderBox::containingBlockLogicalWidthForContent. + + (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight): + (WebCore::RenderBox::computePercentageLogicalHeight): + Updated these function to return overrideContainingBlockContentLogicalHeight as needed. + + (WebCore::RenderBox::computeReplacedLogicalHeightUsing): + (WebCore::RenderBox::availableLogicalHeightUsing): + Updated these functions to use the new containingBlockLogicalHeightForContent instead + of availableLogicalHeight. + + * rendering/RenderBox.h: + Added the previous new functions. + + * rendering/RenderGrid.cpp: + (WebCore::RenderGrid::layoutGridItems): + Updated to override the containing block size so that we properly size our grid items. + +2012-11-27 Kent Tamura <tkent@chromium.org> + + Fix build errors by r135955. + + * dom/ShadowRoot.cpp: Use struct instead of class. + * dom/TreeScope.cpp: Ditto. + +2012-11-27 Eugene Klyuchnikov <eustas@chromium.com> + + Web Inspector: [Timeline] "Show CPU activity on the ruler" settings checkbox does not take effect until Inspector restart + https://bugs.webkit.org/show_bug.cgi?id=102210 + + Reviewed by Pavel Feldman. + + The checkbox changes should take effect in the real time. + + * inspector/front-end/SettingsScreen.js: + (WebInspector.GenericSettingsTab): + Do not show checkpox if browser is not capable. + * inspector/front-end/TimelinePanel.js: + Added setting change listener. + +2012-11-27 Andreas Kling <akling@apple.com> + + Compile time size assertions for TreeScope, ShadowRoot and ElementAttributeData. + + Rubber-stamped by Anders Carlsson. + + * dom/ShadowRoot.cpp: + (SameSizeAsShadowRoot): + * dom/TreeScope.cpp: + (SameSizeAsTreeScope): + * dom/ElementAttributeData.cpp: Derp. + +2012-11-27 James Simonsen <simonjam@chromium.org> + + Consolidate FrameLoader::load() into one function taking a FrameLoadRequest + https://bugs.webkit.org/show_bug.cgi?id=102151 + + Reviewed by Adam Barth. + + There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1. + There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as + the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches + the refactoring done with CachedResourceRequest and CachedResourceLoader. + + No new tests. No change in functionality. + + * WebCore.exp.in: + * loader/FrameLoadRequest.h: + (WebCore::FrameLoadRequest::FrameLoadRequest): + (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load(). + (WebCore::FrameLoadRequest::lockHistory): Ditto. + (FrameLoadRequest): + (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto. + (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto. + (WebCore::FrameLoadRequest::substituteData): Ditto. + (WebCore::FrameLoadRequest::setSubstituteData): Ditto. + (WebCore::FrameLoadRequest::hasSubstituteData): Ditto. + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function. + * loader/FrameLoader.h: + (FrameLoader): + * page/DragController.cpp: + (WebCore::DragController::performDrag): + +2012-11-27 Jer Noble <jer.noble@apple.com> + + Unreviewed build fix; NSSize is not a CGSize in 32-bit. + + * platform/mac/WebCoreFullScreenWarningView.mm: + +2012-11-27 Dean Jackson <dino@apple.com> + + Attempted build fix for my last commit. The private member variable + is only used on MAC (at the moment) so guard it with #if PLATFORM. + I did this rather than having another constructor, because I expect + other platforms will follow the MAC code soon. + + * html/shadow/MediaControlElements.cpp: + (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): + * html/shadow/MediaControlElements.h: + +2012-11-14 Jer Noble <jer.noble@apple.com> + + Add a new shared class WebCoreFullScreenPlaceholderView, for use in WebKit and WebKit2. + https://bugs.webkit.org/show_bug.cgi?id=102300 + + Reviewed by Anders Carlsson. + + Add a new shared class WebCoreFullScreenPlaceholderView, which presents the contents of the + WebView prior to full screen with a message informing the user how to exit from full screen mode. + + * platform/mac/WebCoreFullScreenPlaceholderView.mm: + (-[WebCoreFullScreenPlaceholderView initWithFrame:]): Create the warning view and set up the placeholder layer. + (-[WebCoreFullScreenPlaceholderView setContents:]): Pass along to content view layer. + (-[WebCoreFullScreenPlaceholderView contents]): Ditto. + (-[WebCoreFullScreenPlaceholderView setExitWarningVisible:]): Show or hide the exit warning. + (-[WebCoreFullScreenPlaceholderView mouseDown:]): Call the target with action. + + Add a localized string entry for the "click to exit" text: + * English.lproj/Localizable.strings: + * platform/LocalizedStrings.cpp: + (WebCore::clickToExitFullScreenText): + * platform/LocalizedStrings.h: + * English.lproj/Localizable.strings: + + Add the new files to the project and exports list: + * WebCore.exp.in: + * WebCore.xcodeproj/project.pbxproj: + +2012-11-27 Andreas Kling <akling@apple.com> + + Shrink ShadowRoot and TreeScope. + <http://webkit.org/b/103459> + + Reviewed by Antti Koivisto. + + We're creating ~1500 ShadowRoots on Apple's PLT3 content (from <input> and <textarea> elements) + and a lot of this is wasted space. + + Shrink ShadowRoot and TreeScope a bit by making TreeScope's DocumentOrderedMaps heap-allocated + and packing the counters on ShadowRoot harder together with the bits. + + 202kB progression on Membuster3. + + * dom/ShadowRoot.cpp: + (WebCore::ShadowRoot::ShadowRoot): + * dom/ShadowRoot.h: + (WebCore::ShadowRoot::countElementShadow): + (ShadowRoot): + * dom/TreeScope.cpp: + (WebCore::TreeScope::TreeScope): + (WebCore::TreeScope::getElementById): + (WebCore::TreeScope::addElementById): + (WebCore::TreeScope::removeElementById): + (WebCore::TreeScope::addImageMap): + (WebCore::TreeScope::removeImageMap): + (WebCore::TreeScope::getImageMap): + (WebCore::TreeScope::addLabel): + (WebCore::TreeScope::removeLabel): + (WebCore::TreeScope::labelElementForId): + * dom/TreeScope.h: + (WebCore::TreeScope::shouldCacheLabelsByForAttribute): + (TreeScope): + (WebCore::TreeScope::hasElementWithId): + (WebCore::TreeScope::containsMultipleElementsWithId): + +2012-11-14 Jer Noble <jer.noble@apple.com> + + Add a new shared class WebCoreFullScreenWarningView which presents a styled warning message. + https://bugs.webkit.org/show_bug.cgi?id=102299 + + Reviewed by Alexey Proskuryakov. + + Add a shared implementation of a warning view for use in WebKit and WebKit2. + + * platform/mac/WebCoreFullScreenWarningView.h: Added. + * platform/mac/WebCoreFullScreenWarningView.mm: Added. + (-[WebCoreFullScreenWarningView initWithTitle:]): Create the view. + + Add the new files to the project and exports list: + * WebCore.exp.in: + * WebCore.xcodeproj/project.pbxproj: + +2012-11-27 Dean Jackson <dino@apple.com> + + Make track list control active + https://bugs.webkit.org/show_bug.cgi?id=101670 + + Reviewed by Eric Carlson. + + Hook up the event handler for the captions menu so that it enables or + disables tracks in the associated HTMLMediaElement. + + Test: media/video-controls-captions-trackmenu.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::toggleTrackAtIndex): New method to toggle the state of a track, by index. + * html/HTMLMediaElement.h: + (HTMLMediaElement): Ditto. + (WebCore::HTMLMediaElement::textTracksOffIndex): Static method to return the "Off" value. + * html/shadow/MediaControlElements.cpp: + (WebCore::trackListIndexForElement): Helper function to take a track list <li> element and return the value of the custom attribute. + (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType): Toggle the state of the button based on captions visibility. + (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler): On Mac platforms show the captions menu. On other platforms, toggle captions. + (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Now has a reference to the controls. + (WebCore::MediaControlClosedCaptionsTrackListElement::create): + (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): When the user clicks on a track list item, look + for the custom attribute that identifies the associated track, and then toggle that track. + (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Set a class on the track list elements so they can be + styled by the injected CSS (with tick marks to represent visibility). + (WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): When building the list of track menu items, add + a custom HTML attribute to the element so that the corresponding track can be found in the event handler. + * html/shadow/MediaControlElements.h: + (MediaControlClosedCaptionsTrackListElement): Add a list of elements representing the track list. + * html/shadow/MediaControlsApple.cpp: + (WebCore::MediaControlsApple::createControls): + (WebCore::MediaControlsApple::changedClosedCaptionsVisibility): Make sure to update the track menu. + (WebCore::MediaControlsApple::reset): + * html/shadow/MediaControlsApple.h: + (MediaControlsApple): + +2012-11-27 Joshua Bell <jsbell@chromium.org> + + IndexedDB: Simplify transaction timers and event tracking + https://bugs.webkit.org/show_bug.cgi?id=102984 + + Reviewed by Tony Chang. + + Now that the transaction "commit" decision is made on the front-end, the back end no-longer + needs to be aware of when individual IDBRequests have dispatched to script or track pending + events (except for preemptive ones like createIndex). This also lets two timers be collapsed + into one which significantly simplifies the code flow in IDBTransactionBackendImpl. + + No new tests - just simplification. Exercised by storage/indexeddb/transaction-*.html etc. + + * Modules/indexeddb/IDBCursorBackendImpl.cpp: + (WebCore::IDBCursorBackendImpl::prefetchContinueInternal): No more tracking. + (WebCore::IDBCursorBackendImpl::prefetchReset): No more tracking. + * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: + (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal): No more tracking. + (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal): No more tracking. + * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: + (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal): No more tracking. + (WebCore::IDBObjectStoreBackendImpl::createIndexInternal): No more tracking. + (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal): No more tracking. + * Modules/indexeddb/IDBRequest.cpp: + (WebCore::IDBRequest::dispatchEvent): Order must be: + 1. request is unregistered from transaction (so request list may be empty) + 2. abort transaction if event being dispatched was an error + 3. deactivate transaction (which may commit if #1 left it empty and #2 didn't abort) + * Modules/indexeddb/IDBTransactionBackendImpl.cpp: + (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Need to track if commit + was requested; previously the front end would have triggered an event timer which, on + completion, would be the signal that the front end was finished. + (WebCore::IDBTransactionBackendImpl::scheduleTask): Schedule a timer to service the new + task, if necessary. + (WebCore::IDBTransactionBackendImpl::abort): + (WebCore::IDBTransactionBackendImpl::hasPendingTasks): + (WebCore::IDBTransactionBackendImpl::commit): + (WebCore::IDBTransactionBackendImpl::taskTimerFired): Picks up "commit" responsibilities + from the now deleted taskEventTimerFired, if everything is truly complete done. + * Modules/indexeddb/IDBTransactionBackendImpl.h: + (IDBTransactionBackendImpl): + * Modules/indexeddb/IDBTransactionBackendInterface.h: + (WebCore::IDBTransactionBackendInterface::didCompleteTaskEvents): Removed from interface. + +2012-11-27 Kentaro Hara <haraken@chromium.org> + + [V8] Replace toWebCoreString()/toWebCoreAtomicString() in CodeGeneratorV8.pm with V8StringResource + https://bugs.webkit.org/show_bug.cgi?id=103391 + + Reviewed by Adam Barth. + + This is an incremental effort for fixing bug 103331. + I confirmed that this patch causes no performance regression + for the micro benchmarks (https://bugs.webkit.org/attachment.cgi?id=176178). + + No tests. No change in behavior. + + * bindings/scripts/CodeGeneratorV8.pm: + (GenerateNormalAttrSetter): + (GenerateEventListenerCallback): + * bindings/scripts/test/V8/V8TestEventTarget.cpp: + (WebCore::TestEventTargetV8Internal::addEventListenerCallback): + (WebCore::TestEventTargetV8Internal::removeEventListenerCallback): + * bindings/scripts/test/V8/V8TestObj.cpp: + (WebCore::TestObjV8Internal::addEventListenerCallback): + (WebCore::TestObjV8Internal::removeEventListenerCallback): + +2012-11-27 Alexandru Chiculita <achicu@adobe.com> + + [CSS Regions] Elements using transforms are not repainted correctly when rendered in a region + https://bugs.webkit.org/show_bug.cgi?id=102826 + + Reviewed by David Hyatt. + + When the page is composited, all the elements will have a composited repaint container. In that case we will + never catch the repaints in the RenderFlowThread, but they will go directly to the RenderView. + There's a single case when the parent composited layer of an element inside the RenderFlowThread will get + its own repaints. That case only happens when the parent composited layer is also part of the same flow thread. + Right now compositing is disabled for elements inside the RenderFlowThread, so that case doesn't even happen yet. + That will be fixed in https://bugs.webkit.org/show_bug.cgi?id=84900. + + Test: fast/repaint/region-painting-in-composited-view.html + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::containerForRepaint): + +2012-11-27 Tony Chang <tony@chromium.org> + + Unreviewed, win compile fix take 2. + + Try again to force this file to recompile. + + * rendering/RenderingAllInOne.cpp: + +2012-11-27 Tony Chang <tony@chromium.org> + + Unreviewed, win compile fix. + + Touch RenderingAllInOne.cpp to force it to rebuild. + + * rendering/RenderingAllInOne.cpp: + +2012-11-27 Tim Horton <timothy_horton@apple.com> + + PDFPlugin: Scroll bars do not grow on hover + https://bugs.webkit.org/show_bug.cgi?id=103382 + <rdar://problem/12555262> + + Reviewed by Beth Dakin. + + Export a few WebCore::Scrollbar methods to WebKit(2). + + * WebCore.exp.in: + +2012-11-27 Tom Sepez <tsepez@chromium.org> + + Regression(r129406): Fix the scope of the WidgetHierarchyUpdateSuspensionScope in Element::Attach(). + https://bugs.webkit.org/show_bug.cgi?id=100803 + + Reviewed by Abhishek Arya. + + Ensures that the suspension scope has gone out of scope before calling into + resumePostAttachCallbacks(). + + Test: fast/dom/adopt-node-crash-2.html + + * dom/Element.cpp: + (WebCore::Element::attach): + +2012-11-27 Tony Chang <tony@chromium.org> + + Remove hidden limiter div in the input slider shadow DOM + https://bugs.webkit.org/show_bug.cgi?id=102993 + + Reviewed by Ojan Vafai. + + The shadow DOM for input sliders would have a hidden div (the TrackLimiterElement) + the size of the thumb which would limit the position of thumb since the width of + the thumb takes up space in the track. This patch simplifies the shadow DOM by + removing this hidden div and computing the position of the thumb taking the size of + the thumb into account. + + No new tests, covered by existing tests in fast/forms. + + * css/mediaControlsChromium.css: + (input[type="range"]::-webkit-media-slider-container > div): We were depending on the behavior of the limiter having negative margins, causing the slider div + to overflow. Moving the negative margin to the slider produces the same effect. + * css/mediaControlsChromiumAndroid.css: + (input[type="range"]::-webkit-media-slider-container > div): Ditto. + * html/RangeInputType.cpp: + (WebCore::RangeInputType::createShadowSubtree): Remove limiter div. + * html/shadow/SliderThumbElement.cpp: + (WebCore::RenderSliderContainer::layout): Adjust the available space for the thumb and correctly position in the vertical case. + (WebCore::SliderThumbElement::setPositionFromPoint): Adjust the usable track size and simplify RTL code (no need to account for the limiter). + (WebCore): Delete limiter code. + * html/shadow/SliderThumbElement.h: + (WebCore): Delete limiter code. + * rendering/RenderSlider.cpp: + (WebCore::RenderSlider::layout): Delete limiter code. + * rendering/RenderTheme.cpp: + (WebCore::RenderTheme::paintSliderTicks): Simplify code for painting tick marks. + +2012-11-27 Alpha Lam <hclam@chromium.org> + + [chromium] Implement full-featured image cache + https://bugs.webkit.org/show_bug.cgi?id=99784 + + Reviewed by Stephen White. + + Implement a thread-safe image cache to be used with deferred image + decoding. Image cache can now be accessed on any thread. + + The patch implements the following logic: + 1. Mutex to protect all cache operations. + 2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize) + 3. Cache lookup. + 4. Cache insertion. + 5. Generation of cache entry by scaling full size image. + 6. Generation of cache entries by decoding and scaling. + + Classes involved: + + ImageDecodingStore + + Responsible for owning cache entries and indexing. Pruning and memory + management will be added later. + + ImageFrameGenerator + + Responsible for generating new cache enties and insert them into + ImageDecodingStore. + + LazyDecodingPixelRef + + Responsible for cache lookup and lazy generation of cache entries + using ImageFrameGenerator. There is a mutex to protect concurrent + lock operations. + + These items are not implemented in this patch: + 1. Cache pruning. + 2. Setting cache memory limit. + 3. Cache deletion. + 4. Caching incomplete images and ImageDecoder. + + Unit tests added in ImageFrameGeneratorTest.cpp. + Layout tests are under platform/chromium/virtual/fast/images. + + * platform/graphics/chromium/DeferredImageDecoder.cpp: + (WebCore::DeferredImageDecoder::~DeferredImageDecoder): + (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap): + (WebCore::DeferredImageDecoder::setEnabled): + (WebCore): + (WebCore::DeferredImageDecoder::frameBufferAtIndex): + (WebCore::DeferredImageDecoder::createLazyDecodingBitmap): + * platform/graphics/chromium/DeferredImageDecoder.h: + (DeferredImageDecoder): + * platform/graphics/chromium/ImageDecodingStore.cpp: + (WebCore::ImageDecodingStore::instance): + (WebCore::ImageDecodingStore::initializeOnce): + (WebCore::ImageDecodingStore::shutdown): + (WebCore::ImageDecodingStore::lockCompleteCache): + Lookup complete cache entry using hash key, increment use count. + (WebCore::ImageDecodingStore::lockIncompleteCache): TODO. + (WebCore::ImageDecodingStore::unlockCache): + Lookup cache entry using hash key, decrement use count. + (WebCore): + (WebCore::ImageDecodingStore::insertAndLockCache): + Insert new cache entry and increment use count. + (WebCore::ImageDecodingStore::prune): TODO. + * platform/graphics/chromium/ImageDecodingStore.h: + (WebCore): + (ImageDecodingStore): + (WebCore::ImageDecodingStore::CacheEntry::create): + (WebCore::ImageDecodingStore::CacheEntry::createAndUse): + (CacheEntry): + (WebCore::ImageDecodingStore::CacheEntry::CacheEntry): + (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry): + * platform/graphics/chromium/ImageFrameGenerator.cpp: + (WebCore::ImageFrameGenerator::ImageFrameGenerator): + (WebCore::ImageFrameGenerator::setData): + (WebCore::ImageFrameGenerator::decodeAndScale): + Method for creating new cache entries. This is protected by a mutex + to prevent concurrent operations. Which means only one thread can + generate new cache entries for a set of encoded data. + (WebCore): + (WebCore::ImageFrameGenerator::tryToLockCache): + Tries to lookup a cache entry. + (WebCore::ImageFrameGenerator::tryToScale): + Tries to lookup a full size cache entry and generate a scaled version. + (WebCore::ImageFrameGenerator::tryToDecodeAndScale): + Tries to decode and scale. + * platform/graphics/chromium/ImageFrameGenerator.h: + (WebCore): + (ImageDecoderFactory): + (WebCore::ImageFrameGenerator::create): + (ImageFrameGenerator): + (WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting): + * platform/graphics/chromium/LazyDecodingPixelRef.cpp: + (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef): + (WebCore::LazyDecodingPixelRef::onLockPixels): + (WebCore::LazyDecodingPixelRef::onUnlockPixels): + * platform/graphics/chromium/LazyDecodingPixelRef.h: + (WebCore): + (LazyDecodingPixelRef): + * platform/graphics/chromium/ScaledImageFragment.cpp: + (WebCore::ScaledImageFragment::ScaledImageFragment): + * platform/graphics/chromium/ScaledImageFragment.h: + (WebCore): + (WebCore::ScaledImageFragment::create): + (ScaledImageFragment): + (WebCore::ScaledImageFragment::scaledSize): + * platform/graphics/chromium/SkSizeHash.h: Added. + (WTF): + +2012-11-27 Mike West <mkwst@chromium.org> + + Expanding variable names in ConsoleMessage. + https://bugs.webkit.org/show_bug.cgi?id=103436 + + Reviewed by Adam Barth. + + Variable names like 'm' should be replaced with full words, like + 'myOhMyThisIsAnAwesomeVariable' (or something more descriptive). + + * inspector/ConsoleMessage.cpp: + (WebCore::ConsoleMessage::ConsoleMessage): + * inspector/ConsoleMessage.h: + (ConsoleMessage): + +2012-11-27 Aaron Colwell <acolwell@chromium.org> + + Use-after-free in media player handling + https://bugs.webkit.org/show_bug.cgi?id=103426 + + Reviewed by Eric Carlson. + + Fixed use-after-free bugs caused by the MediaSource not being closed before the HTMLMediaElement or the MediaPlayer + is destroyed. Closing the MediaSource causes it to clear its reference to the MediaPlayer which prevents + the use-after-free problems from happening. + + Test: http/tests/media/media-source/video-media-source-closed-on-htmlmediaelement-destruction.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::~HTMLMediaElement): + (WebCore::HTMLMediaElement::clearMediaPlayer): + +2012-11-27 David Grogan <dgrogan@chromium.org> + + IndexedDB: Remove IDBDatabase.setVersion API + https://bugs.webkit.org/show_bug.cgi?id=94972 + + Reviewed by Tony Chang. + + This has been out of the spec for over a year. No other browser has + implemented it for close to a year. + + Tests - removed.html + + * Modules/indexeddb/IDBCallbacks.h: + (IDBCallbacks): + * Modules/indexeddb/IDBDatabase.cpp: + (WebCore::IDBDatabase::IDBDatabase): + * Modules/indexeddb/IDBDatabase.h: + (IDBDatabase): + * Modules/indexeddb/IDBDatabase.idl: + * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: + (WebCore::IDBDatabaseBackendImpl::processPendingCalls): + * Modules/indexeddb/IDBDatabaseBackendImpl.h: + (IDBDatabaseBackendImpl): + * Modules/indexeddb/IDBDatabaseBackendInterface.h: + (IDBDatabaseBackendInterface): + * Modules/indexeddb/IDBRequest.cpp: + * Modules/indexeddb/IDBRequest.h: + +2012-11-27 Mike West <mkwst@chromium.org> + + Log to console when autofocus is blocked by sandbox attribute. + https://bugs.webkit.org/show_bug.cgi?id=103255 + + Reviewed by Ojan Vafai. + + Adding a short log message when autofocus is blocked by a document's + sandbox flags, as it's currently a black box. + + Test: fast/forms/autofocus-in-sandbox-without-allow-scripts.html + + * html/HTMLFormControlElement.cpp: + (WebCore::shouldAutofocus): + +2012-11-27 Dean Jackson <dino@apple.com> + + Attempted build fix after http://trac.webkit.org/changeset/135888. + + * WebCore.exp.in: + * WebCore.order: + +2012-11-27 Ryosuke Niwa <rniwa@webkit.org> + + Build fix after r135890. #else, not #elif. + + * platform/graphics/ca/PlatformCALayer.h: + (PlatformCALayer): + +2012-11-27 Ryosuke Niwa <rniwa@webkit.org> + + HTMLCollection on Document should be stored on NodeListsNodeData like other HTMLCollections and LiveNodeLists + https://bugs.webkit.org/show_bug.cgi?id=103364 + + Reviewed by Anders Carlsson. + + Replaced the HTMLCollection storage in Document by NodeListsNodeData used by other HTMLCollection's + and LiveNodeList's. Now NodeListsNodeData is the only storage for HTMLCollection and LiveNodeList. + + * dom/Document.cpp: + (WebCore::Document::Document): Removed code for m_collection since it has been removed. + (WebCore::Document::~Document): Ditto. + (WebCore::Document::registerNodeList): Renamed. + (WebCore::Document::unregisterNodeList): Ditto. + (WebCore::Document::ensureCachedCollection): Renamed from cachedCollection to match the convetion + used elsewhere. Also use NodeListNodeData::addCacheWithAtomicName now that m_collection is gone. + (WebCore::Document::images): + (WebCore::Document::applets): + (WebCore::Document::embeds): + (WebCore::Document::plugins): + (WebCore::Document::scripts): + (WebCore::Document::links): + (WebCore::Document::forms): + (WebCore::Document::anchors): + (WebCore::Document::all): + (WebCore::Document::windowNamedItems): Use addCacheWithAtomicName. + (WebCore::Document::documentNamedItems): Ditto. + (WebCore::Document::reportMemoryUsage): Removed code for m_collection since it has been removed. + * dom/Document.h: + (WebCore::Document): Removed m_collections, m_documentNamedItemCollections, and + m_windowNamedItemCollections. + * dom/Element.cpp: + (WebCore::Element::ensureCachedHTMLCollection): Merged ElementRareData::ensureCachedHTMLCollection. + (WebCore::Element::cachedHTMLCollection): Merged ElementRareData::cachedHTMLCollection. + * Source/WebCore/dom/ElementRareData.h: Removed ensureCachedHTMLCollection, cachedHTMLCollection, + and removeCachedHTMLCollection since they're no longer used. + * dom/LiveNodeList.h: + (WebCore::LiveNodeListBase::LiveNodeListBase): Call registerNodeList now that LiveNodeList + and HTMLCollection share the same storage in all nodes. + (WebCore::LiveNodeListBase::~LiveNodeListBase): Ditto about unregisterNodeList. + (WebCore::LiveNodeList): Removed the calls to registerNodeList and unregisterNodeList since they + are now called in the base class. + * dom/NameNodeList.h: + (WebCore::NameNodeList::create): + * dom/NodeRareData.h: + (WebCore::NodeListsNodeData::addCacheWithAtomicName): Pass in CollectionType as the second argument + to T::create. This is used in HTMLNameCollection::create. Sevearl LiveNodeList constructors and + create functions have been modified to support this. + (WebCore::NodeListsNodeData::adoptTreeScope): + (WebCore::NodeListsNodeData::namedNodeListKey): CollectionType is no longer restricted in its range. + * dom/TagNodeList.h: + (WebCore::TagNodeList::create): + (WebCore::HTMLTagNodeList::create): + * html/CollectionType.h: Deleted a bunch of unused inline functions and constants, and cleanup enum. + * html/HTMLCollection.cpp: + (WebCore::HTMLCollection::HTMLCollection): Removed the call to registerNodeListCache since it's called + in LiveNodeListBase now. + (WebCore::HTMLCollection::~HTMLCollection): Ditto. Also replaced calls to removeCachedHTMLCollection + of Element and Document by a call to NodeListsNodeData::removeCacheWithAtomicName. + * html/HTMLFormControlsCollection.cpp: + (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection): + (WebCore::HTMLFormControlsCollection::create): + * html/HTMLFormControlsCollection.h: + (HTMLFormControlsCollection): + * html/HTMLNameCollection.cpp: + (WebCore::HTMLNameCollection::HTMLNameCollection): + (WebCore::HTMLNameCollection::~HTMLNameCollection): + * html/HTMLNameCollection.h: + (WebCore::HTMLNameCollection::create): + (HTMLNameCollection): + * html/HTMLOptionsCollection.cpp: + (WebCore::HTMLOptionsCollection::HTMLOptionsCollection): + (WebCore::HTMLOptionsCollection::create): + * html/HTMLOptionsCollection.h: + (HTMLOptionsCollection): + * html/HTMLTableRowsCollection.cpp: + (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection): + (WebCore::HTMLTableRowsCollection::create): + * html/HTMLTableRowsCollection.h: + (HTMLTableRowsCollection): + * html/LabelsNodeList.h: + (WebCore::LabelsNodeList::create): + * html/RadioNodeList.h: + (WebCore::RadioNodeList::create): + +2012-11-27 Pravin D <pravind.2k4@gmail.com> + + max-height property not respected in case of tables + https://bugs.webkit.org/show_bug.cgi?id=98633 + + Reviewed by Julien Chaffraix. + + The max-height property determines the maximum computed height an element can have. In case of tables + the computed height was not being limited by the max-height property. The current patch fixes the same. + + Test: fast/table/css-table-max-height.html + + * rendering/RenderTable.cpp: + (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight): + Helper function to compute height from the given style height. + This function handles style height of type fixed, percent and viewport percent. + As height of type 'calculated' gets internally resolved to either fixed or percent + there is no special handling required for the same. + + (WebCore): + (WebCore::RenderTable::layout): + Logic to compute the logical height of an element such that it does not exceed the max-height value given that + min-width < Content height < max-height, when min-height < max-height. + However max-height value is not respected if either min-height > max-height or Content height > max-height. + + * rendering/RenderTable.h: + (RenderTable): + Function definition for the newly add function convertStyleLogicalHeightToComputedHeight(). + +2012-11-27 Roger Fong <roger_fong@apple.com> + + Windows specific implementation of usesTileCacheLayer needed after r133056. + https://bugs.webkit.org/show_bug.cgi?id=103321 + + Reviewed by Simon Fraser. + + After r133056 it no longer suffices to use the existing usesTileCacheLayer method on Windows. + The change resulted in 3 crashing tests: + compositing/rotated-tiled-clamped + compositing/rotated-tiled-preserve3d-clamped + fast/events/tabindex-focus-blur-all + + * platform/graphics/ca/PlatformCALayer.h: + (WebCore::PlatformCALayer::usesTileCacheLayer): + (PlatformCALayer): + Adding in platform specific method for Windows that returns false for this method. + +2012-11-27 Christophe Dumez <christophe.dumez@intel.com> + + Canvas does not draw any text if the font is not fully loaded yet + https://bugs.webkit.org/show_bug.cgi?id=103392 + + Reviewed by Kenneth Rohde Christiansen. + + Update CanvasRenderingContext2D::drawTextInternal() so that the + text is being drawn, even if custom fonts are still being loaded. + Without this, WebKit was not drawing any text on the canvas if + the needed font is custom and is not fully loaded yet. This seems + broken. + + The new behavior is according to specification: + http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html + + The specification says: "If a font is used before it is fully + loaded, or if the font style source object does not have that + font in scope at the time the font is to be used, then it must be + treated as if it was an unknown font, falling back to another as + described by the relevant CSS specifications." + + Test: http/tests/canvas/canvas-slow-font-loading.html + + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::drawTextInternal): + * platform/graphics/Font.cpp: + (WebCore::Font::drawText): Add argument to specify the behavior + when custom fonts are not ready. By default, it will not draw + anything (same behavior as before). However, the Canvas code + can now request that a fallback font is used if the custom + font is not fully loaded yet. + * platform/graphics/Font.h: #undef Complex if defined to avoid + conflicting with Complex value in CodePath enum. X11/X.h is + defining Complex to 0. + * platform/graphics/GraphicsContext.cpp: + (WebCore::GraphicsContext::drawBidiText): + * platform/graphics/GraphicsContext.h: + (WebCore): + (GraphicsContext): + +2012-11-27 Dean Jackson <dino@apple.com> + + No need for ExceptionCode in HTMLMediaElement::load + https://bugs.webkit.org/show_bug.cgi?id=103438 + + Reviewed by Eric Carlson. + + After https://bugs.webkit.org/show_bug.cgi?id=103318, there is no + need for the ExceptionCode parameter in load(). The HTML5 spec says + that all errors in loading are communicated via state. + http://dev.w3.org/html5/spec/media-elements.html#dom-media-load + + Of the 29 tests exercising load(), none of them were exercising + exceptions (obviously). + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::load): + (WebCore::HTMLMediaElement::resume): + * html/HTMLMediaElement.h: + * html/HTMLMediaElement.idl: + +2012-11-27 Robert Hogan <robert@webkit.org> + + REGRESSION (r125578): word-wrapping in absolute position with nbsp, word-spacing and custom font + https://bugs.webkit.org/show_bug.cgi?id=101443 + + Reviewed by David Hyatt. + + Leading non-breaking space in a text run should always get word-spacing applied. When RenderText + calculates the preferred with of a run of text it breaks it up into word segments that contain + no breaking spaces and calculates the width of each. So when calculating the width of ' b' + it needs to add word-spacing to the leading non-breaking space as it does not get collapsed away. + + Test: fast/text/word-space-nbsp.html + + * platform/graphics/WidthIterator.cpp: + (WebCore::WidthIterator::advanceInternal): + +2012-11-27 Yong Li <yoli@rim.com> + + [BlackBerry] EventLoop should end when WebKit thread is exiting + https://bugs.webkit.org/show_bug.cgi?id=103301 + + Reviewed by Rob Buis. + RIM PR# 194379. + Internally reviewed by Joe Mason. + + Break the nested event loop when WebKit thread has been asked to quit. + + * platform/blackberry/EventLoopBlackBerry.cpp: + (WebCore::EventLoop::cycle): + +2012-11-27 Pratik Solanki <psolanki@apple.com> + + objc/objc-runtime.h does not exist on all PLATFORM(MAC) + https://bugs.webkit.org/show_bug.cgi?id=101780 + + Reviewed by Brent Fulgham. + + Clean up header includes so we don't include objc/objc-runtime.h. + + No new tests because no functional changes. + + * bridge/objc/objc_header.h: + * page/mac/EventHandlerMac.mm: + * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: + * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: + * platform/graphics/ca/mac/PlatformCALayerMac.mm: + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + * platform/graphics/mac/WebLayer.mm: + * platform/mac/WebCoreObjCExtras.mm: + * platform/mac/WebVideoFullscreenController.mm: + +2012-11-27 Eberhard Graether <egraether@google.com> + + Plumbing showPaintRects out of InspectorPageAgent to use a different drawing implementation if available. + https://bugs.webkit.org/show_bug.cgi?id=102452 + + Reviewed by Pavel Feldman. + + This change makes the showPaintRects setting in the Web Inspector's settings notify InspectorClient + when changed. And the default paint rects drawing is not used if an alternative is available. + This allows Chromium to draw the paint rects in the compositor's HUDLayer. + + No new tests. + + * inspector/InspectorClient.h: + (WebCore::InspectorClient::overridesShowPaintRects): + (WebCore::InspectorClient::setShowPaintRects): + (InspectorClient): + * inspector/InspectorPageAgent.cpp: + (PageAgentState): + (WebCore::InspectorPageAgent::restore): + (WebCore::InspectorPageAgent::disable): + (WebCore::InspectorPageAgent::setShowPaintRects): + (WebCore::InspectorPageAgent::didPaint): + +2012-11-27 Allan Sandfeld Jensen <allan.jensen@digia.com> + + Unreviewed cleanup. + + Remove leftover file that was replaced by PlatformScreenQt.cpp 4 years ago. + + * platform/qt/ScreenQt.cpp: Removed. + +2012-11-27 Istiaque Ahmed <lazyboy@chromium.org> + + freeV8NPObject: Skip trying to remove object from per context data's ObjectMap if the object does not exist in the map. + https://bugs.webkit.org/show_bug.cgi?id=103356 + + Reviewed by Adam Barth. + + Before introducing per context data, it used to be the case that we would ignore removing v8 object + from context data's map if we couldn't find it. With perContextData change, this turned into an ASSERT + instead and we had crash reports. + Related crbug.com/154462. + + Test: platform/chromium/plugins/release-frame-content-window.html + + * bindings/v8/NPV8Object.cpp: + (WebCore::freeV8NPObject): + +2012-11-27 Marja Hölttä <marja@chromium.org> + + Add callbacks to the FrameLoaderClient when a resource is requested + https://bugs.webkit.org/show_bug.cgi?id=92761 + + Reviewed by Adam Barth. + + In Chromium, when an extension script cancels a network + request (which happens out of process), we'd like to + notify content scripts running on the current page about + which elements failed to load because the requests were + cancelled (as opposed to e.g. the network request just + didn't work). Since the resource request itself does not + carry any information what DOM element is was made for, + currently a content script has to search the DOM tree and + guess which requests will be cancelled by its counter + part. By adding these callbacks, the embedder can make + this connection explictly. + + Test: platform/chromium/fast/loader/resource-request-callbacks.html + + * loader/FrameLoaderClient.h: + (WebCore): + (WebCore::FrameLoaderClient::dispatchWillRequestResource): + (FrameLoaderClient): + * loader/cache/CachedResourceLoader.cpp: + (WebCore::CachedResourceLoader::requestResource): + +2012-11-27 Dean Jackson <dino@apple.com> + + Unreviewed build fix for r135866. + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::load): + +2012-11-27 Leo Yang <leoyang@rim.com> + + [BlackBerry] Adapt to the change of BlackBerry::Platform::FilterStream::notifyHeadersReceived + https://bugs.webkit.org/show_bug.cgi?id=103425 + + Reviewed by Yong Li. + + A const has been added for HeaderList parameter of BlackBerry::Platform::FilterStream::notifyHeadersReceived. + The patch is adapting to this change. + + No functionalities changed no new tests. + + * platform/network/blackberry/NetworkJob.cpp: + (WebCore::NetworkJob::notifyHeadersReceived): + * platform/network/blackberry/NetworkJob.h: + (NetworkJob): + * platform/network/blackberry/rss/RSSFilterStream.cpp: + (WebCore::RSSFilterStream::notifyHeadersReceived): + * platform/network/blackberry/rss/RSSFilterStream.h: + +2012-11-27 Min Qin <qinmin@chromium.org> + + Don't throw an exception if user gesture is required for load + https://bugs.webkit.org/show_bug.cgi?id=103318 + + Reviewed by Eric Carlson. + + There is no need to throw an exception if media load requires user gesture. + Since chrome does not render the poster and media control after an exception is thrown, throwing an exception may break a lot of sites on android. + Change a current test to match the new behavior: media/video-load-require-user-gesture.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::load): + +2012-11-27 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> + + [GStreamer] Verify if GStreamer was previously initialized + https://bugs.webkit.org/show_bug.cgi?id=103151 + + Reviewed by Philippe Normand. + + This patch calls gst_is_initialized() before calling gst_init_check() + in order to verify if GStreamer has not been initialized before. + + This is useful particularly for WebKit1 so the applications could + initialize GStreamer before. + + As the API call was added in GStreamer v0.10.31, the patch fences the + call only in that version of GStreamer or above. + + No new tests, existing media tests cover this change. + + * platform/graphics/gstreamer/GStreamerUtilities.cpp: + (WebCore::initializeGStreamer): + +2012-11-27 Kentaro Hara <haraken@chromium.org> + + [V8] Remove V8StringResource::m_string + https://bugs.webkit.org/show_bug.cgi?id=103367 + + Reviewed by Adam Barth. + + This patch cleans up V8StringResource and removes V8StringResource::m_string. + This patch won't change performance. (This patch just adds one redundant IsString() + check and one IsInt32() check.) I confirmed no performance regression in micro benchmarks + (https://bugs.webkit.org/attachment.cgi?id=176178). + + No tests. No change in behavior. + + * bindings/v8/V8Binding.cpp: + (WebCore::v8NonStringValueToWebCoreString): + * bindings/v8/V8StringResource.cpp: + (WebCore::int32ToWebCoreStringFast): + (WebCore::String): + (WebCore::AtomicString): + (WebCore): + * bindings/v8/V8StringResource.h: + (WebCore::V8StringResource::V8StringResource): + (WebCore::V8StringResource::prepareBase): + (WebCore::V8StringResource::toString): + (V8StringResource): + (WebCore::::prepare): + +2012-11-27 Alec Flett <alecflett@chromium.org> + + IndexedDB: stub out IDBDatabaseBackendInterface::createTransaction + https://bugs.webkit.org/show_bug.cgi?id=102730 + + Reviewed by Darin Fisher. + + Stub out and support passing a 64-bit transaction id + so the frontend can refer to transactions by id rather than + a proxy object or a direct pointer reference. This will ultimately + loosen ownership and lifetime of transactions from the frontend + and backend. + + No new tests, this is just part of a refactor. + + * Modules/indexeddb/IDBDatabase.cpp: + * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: + (WebCore): + (WebCore::IDBDatabaseBackendImpl::transaction): + (WebCore::IDBDatabaseBackendImpl::createTransaction): + * Modules/indexeddb/IDBDatabaseBackendImpl.h: + (IDBDatabaseBackendImpl): + * Modules/indexeddb/IDBDatabaseBackendInterface.h: + (IDBDatabaseBackendInterface): + * Modules/indexeddb/IDBTransactionBackendImpl.cpp: + (WebCore::IDBTransactionBackendImpl::create): + (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): + * Modules/indexeddb/IDBTransactionBackendImpl.h: + (IDBTransactionBackendImpl): + (WebCore::IDBTransactionBackendImpl::id): + +2012-11-27 Andrei Bucur <abucur@adobe.com> + + [CSS Regions] Crash when dispatching regionlayoutupdate + https://bugs.webkit.org/show_bug.cgi?id=102944 + + Reviewed by Andreas Kling. + + The event dispatch function was incorrectly assuming the RenderNamedFlowThread is valid. Because the event is asynchronous it's + possible for the flow to be in the "NULL" state (the renderer is 0) while the regionlayoutupdate event is dispatched. + + Test: fast/regions/webkit-named-flow-event-crash.html + + * dom/WebKitNamedFlow.cpp: + (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Remove the ASSERT and don't dispatch the event if the flow is + in the "NULL" state. + +2012-11-27 Mihnea Ovidenie <mihnea@adobe.com> + + [CSS Regions] Absolutely positioned regions do not expand to fill their container + https://bugs.webkit.org/show_bug.cgi?id=102385 + + Reviewed by Julien Chaffraix. + + In the case of an absolutely positioned region with height auto, height computation should follow + the path of block elements instead of replaced elements. + + Tests: fast/regions/autosize-abspos-anchoredregion-vertlr.html + fast/regions/autosize-abspos-anchoredregion.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::computePositionedLogicalHeight): Skip replaced element height computation when a region has height auto. + * rendering/RenderRegion.h: + (WebCore::RenderRegion::shouldHaveAutoLogicalHeight): Make it private since it is not accessed from outside. + +2012-11-27 Alexander Pavlov <apavlov@chromium.org> + + Incorrect value of CSSStyleDeclaration#length when a shorthand property is inherit or initial + https://bugs.webkit.org/show_bug.cgi?id=73002 + + Reviewed by Alexis Menard. + + Before the patch, "inherit" and "initial" shorthands would get added to the StylePropertySet as-is, their longhands unspecified. + This patch tackles two aspects of the problem: + - When parsing "initial" and "inherit" shorthands, their longhands are added to the property set with the corresponding values. + - When querying "initial" and "inherit" shorthands, their values are reconstructed from the longhands as usual, but if all of the longhands + are found to have the same explicit "initial" or "inherit" value, the respective single value is returned as the shorthand value. + + When reconstructing shorthands, a "common value" is tracked. If all longhands involved have the same explicit value, it becomes the + "common value", otherwise it is a String(). The "inherit" or "initial" common value ultimately becomes the shorthand value + (except for the "background-position" shorthand, which is a special case). + + * css/CSSParser.cpp: + (WebCore::parseKeywordValue): Parse shorthands' "initial" and "inherit" values using the CSSParser. + (WebCore::CSSParser::addExpandedPropertyForValue): Add simple property or all sharthand's longhands with given value and priority. + (WebCore::CSSParser::parseValue): For "initial" and "inherit" shorthands, add their longhands with the respective value, not the shorthands proper. + * css/CSSParser.h: Add addExpandedPropertyForValue(). + * css/StylePropertySet.cpp: + (WebCore::isInitialOrInherit): Check if the value is "initial" or "inherit". + (WebCore): + (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit): Modified to track the common value for the "font" shorthand. + (WebCore::StylePropertySet::fontValue): Ditto. + (WebCore::StylePropertySet::get4Values): Return "inherit" or "initial" if all 4 values are explicitly "inherit" or "initial". + (WebCore::StylePropertySet::getLayeredShorthandValue): Use the common value approach for layered shorthands. + (WebCore::StylePropertySet::getShorthandValue): Ditto for ordinary shorthands. + (WebCore::StylePropertySet::borderPropertyValue): Ditto for the "border" shorthand. + * css/StylePropertySet.h: Modify the appendFontLonghandValueIfExplicit() signature. + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::setFont): Now that "inherit" and "initial" shorthands are represented by their longhands, + we need to check the string value of the "font" shorthand for being "inherit" or "initial" instead: getPropertyCSSValue() no longer works, + since the shorthand itself is no longer added to the StylePropertySet. + +2012-11-27 Kentaro Hara <haraken@chromium.org> + + Unreviewed. Renamed TRYCATCH => V8TRYCATCH. + (I forgot to apply reviewer's comment in bug 103352 when landing r135817.) + + * bindings/scripts/CodeGeneratorV8.pm: + (GenerateParametersCheck): + (GenerateEventConstructorCallback): + (ConvertToV8StringResource): + * bindings/scripts/test/V8/V8Float64Array.cpp: + (WebCore::Float64ArrayV8Internal::fooCallback): + * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: + (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback): + (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback): + * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp: + (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback): + * bindings/scripts/test/V8/V8TestEventConstructor.cpp: + (WebCore::V8TestEventConstructor::constructorCallback): + * bindings/scripts/test/V8/V8TestEventTarget.cpp: + (WebCore::TestEventTargetV8Internal::itemCallback): + (WebCore::TestEventTargetV8Internal::dispatchEventCallback): + * bindings/scripts/test/V8/V8TestInterface.cpp: + (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter): + (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter): + (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback): + (WebCore::V8TestInterface::constructorCallback): + * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: + (WebCore::TestMediaQueryListListenerV8Internal::methodCallback): + * bindings/scripts/test/V8/V8TestNamedConstructor.cpp: + (WebCore::V8TestNamedConstructorConstructorCallback): + * bindings/scripts/test/V8/V8TestObj.cpp: + (WebCore::TestObjV8Internal::staticStringAttrAttrSetter): + (WebCore::TestObjV8Internal::stringAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter): + (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter): + (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter): + (WebCore::TestObjV8Internal::voidMethodWithArgsCallback): + (WebCore::TestObjV8Internal::longMethodWithArgsCallback): + (WebCore::TestObjV8Internal::objMethodWithArgsCallback): + (WebCore::TestObjV8Internal::methodWithSequenceArgCallback): + (WebCore::TestObjV8Internal::methodReturningSequenceCallback): + (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback): + (WebCore::TestObjV8Internal::idbKeyCallback): + (WebCore::TestObjV8Internal::optionsObjectCallback): + (WebCore::TestObjV8Internal::methodWithOptionalArgCallback): + (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback): + (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback): + (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback): + (WebCore::TestObjV8Internal::overloadedMethod1Callback): + (WebCore::TestObjV8Internal::overloadedMethod2Callback): + (WebCore::TestObjV8Internal::overloadedMethod3Callback): + (WebCore::TestObjV8Internal::overloadedMethod4Callback): + (WebCore::TestObjV8Internal::overloadedMethod6Callback): + (WebCore::TestObjV8Internal::overloadedMethod7Callback): + (WebCore::TestObjV8Internal::overloadedMethod8Callback): + (WebCore::TestObjV8Internal::overloadedMethod9Callback): + (WebCore::TestObjV8Internal::overloadedMethod10Callback): + (WebCore::TestObjV8Internal::overloadedMethod11Callback): + (WebCore::TestObjV8Internal::classMethodWithOptionalCallback): + (WebCore::TestObjV8Internal::overloadedMethod12Callback): + (WebCore::TestObjV8Internal::classMethodWithClampCallback): + (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback): + (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback): + (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback): + (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback): + (WebCore::TestObjV8Internal::stringArrayFunctionCallback): + (WebCore::TestObjV8Internal::convert1Callback): + (WebCore::TestObjV8Internal::convert2Callback): + (WebCore::TestObjV8Internal::convert4Callback): + (WebCore::TestObjV8Internal::convert5Callback): + (WebCore::TestObjV8Internal::strictFunctionCallback): + (WebCore::TestObjV8Internal::variadicStringMethodCallback): + (WebCore::TestObjV8Internal::variadicDoubleMethodCallback): + (WebCore::TestObjV8Internal::variadicNodeMethodCallback): + * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: + (WebCore::V8TestOverloadedConstructors::constructor1Callback): + (WebCore::V8TestOverloadedConstructors::constructor2Callback): + (WebCore::V8TestOverloadedConstructors::constructor3Callback): + (WebCore::V8TestOverloadedConstructors::constructor4Callback): + * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: + (WebCore::V8TestSerializedScriptValueInterface::constructorCallback): + * bindings/v8/V8Binding.h: + (WebCore::toV8Sequence): + * bindings/v8/V8BindingMacros.h: + * bindings/v8/custom/V8BlobCustom.cpp: + (WebCore::V8Blob::constructorCallbackCustom): + * bindings/v8/custom/V8ConsoleCustom.cpp: + (WebCore::V8Console::profileCallback): + (WebCore::V8Console::profileEndCallback): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::handlePostMessageCallback): + * bindings/v8/custom/V8DataViewCustom.cpp: + (WebCore::V8DataView::getInt8Callback): + (WebCore::V8DataView::getUint8Callback): + (WebCore::V8DataView::setInt8Callback): + (WebCore::V8DataView::setUint8Callback): + * bindings/v8/custom/V8DeviceMotionEventCustom.cpp: + (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback): + * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp: + (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback): + * bindings/v8/custom/V8DocumentCustom.cpp: + (WebCore::V8Document::evaluateCallback): + * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: + (WebCore::V8HTMLOptionsCollection::addCallback): + * bindings/v8/custom/V8HistoryCustom.cpp: + (WebCore::V8History::pushStateCallback): + (WebCore::V8History::replaceStateCallback): + * bindings/v8/custom/V8IntentCustom.cpp: + (WebCore::V8Intent::constructorCallbackCustom): + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + (WebCore::V8SQLTransaction::executeSqlCallback): + * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp: + (WebCore::V8SQLTransactionSync::executeSqlCallback): + * bindings/v8/custom/V8SVGLengthCustom.cpp: + (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): + * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: + (WebCore::V8WebGLRenderingContext::getExtensionCallback): + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::V8WorkerContext::importScriptsCallback): + +2012-11-27 Dan Carney <dcarney@google.com> + + [V8] add contextForWorld helper function to ScriptController + https://bugs.webkit.org/show_bug.cgi?id=103376 + + Reviewed by Kentaro Hara. + + Reducing some commonly occuring code with an inline function. + + No new tests. No change in functionality. + + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::contextForWorld): + (WebCore): + (WebCore::ScriptController::currentWorldContext): + (WebCore::ScriptController::mainWorldContext): + * bindings/v8/ScriptController.h: + (ScriptController): + +2012-11-26 Allan Sandfeld Jensen <allan.jensen@digia.com> + + [Qt] Implement the mimetype icon methods + https://bugs.webkit.org/show_bug.cgi?id=103260 + + Reviewed by Simon Hausmann. + + * platform/graphics/Icon.h: + (Icon): + * platform/graphics/qt/IconQt.cpp: + (WebCore::Icon::createIconForFiles): + (WebCore::Icon::paint): + +2012-09-17 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Incorrect rect-based hit-test result when hit-test region includes culled inlines + https://bugs.webkit.org/show_bug.cgi?id=88376 + + Reviewed by Dave Hyatt. + + Move the handling of culled inlines from HitTestResult::addNodeToRectBasedTestResult to + InlineFlowBox::nodeAtPoint. This makes it possible to fix a number of bugs with how + culled inlines were handled. They are now checked after all their children, and may + terminate area-based hit-testing if they contain the whole area. + + Tests: fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html + fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html + + * rendering/HitTestResult.cpp: + (WebCore::HitTestLocation::HitTestLocation): + (WebCore::HitTestResult::addNodeToRectBasedTestResult): + * rendering/HitTestResult.h: + (HitTestLocation): + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::nodeAtPoint): + * rendering/RenderInline.cpp: + (WebCore::RenderInline::hitTestCulledInline): + * rendering/RenderInline.h: + (RenderInline): + +2012-11-27 Kenneth Rohde Christiansen <kenneth@webkit.org> + + REGRESSION(134887) [Qt][EFL][WK2] Repaint counter not working + https://bugs.webkit.org/show_bug.cgi?id=103261 + + Reviewed by Noam Rosenthal. + + Fixed regression introduced in 134887, which introduced the + updateContentsNoSwizzle method and called it directly from + the repaint counter. + + This method obviously needs to bind the texture. + + * platform/graphics/texmap/TextureMapperGL.cpp: + (WebCore::BitmapTextureGL::updateContentsNoSwizzle): + +2012-11-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r135786. + http://trac.webkit.org/changeset/135786 + https://bugs.webkit.org/show_bug.cgi?id=103379 + + It made 3 plugin tests timeout on several platforms (Requested + by Ossy on #webkit). + + * CMakeLists.txt: + * GNUmakefile.list.am: + * Target.pri: + * WebCore.exp.in: + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * loader/FrameLoadRequest.cpp: Removed. + * loader/FrameLoadRequest.h: + (WebCore::FrameLoadRequest::FrameLoadRequest): + (FrameLoadRequest): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::load): + * loader/FrameLoader.h: + (FrameLoader): + * page/DragController.cpp: + (WebCore::DragController::performDrag): + * plugins/PluginView.cpp: + (WebCore::PluginView::performRequest): + +2012-11-27 Kent Tamura <tkent@chromium.org> + + Implement ValidityState::badInput + https://bugs.webkit.org/show_bug.cgi?id=102861 + + Reviewed by Hajime Morita. + + Add ValidityState::badInput, add hasBadInput, which always returns + false, to FormAssociatedElement, HTMLInputElement, and InputType. + + For NumberInputType, we had hasUnacceptableValue, which was a hack to + make an input element match to :invalid if the element had non-number + strings. We don't need the hack any more because badInput affects :invalid + style. hasUnacceptableValue is re-used for hasBadInput implementation. + We cleared invalid numbers when elements lost focus to tell users that + the element had invalid numbers. We don't need this behavior because the + interactive validation tells it. + + For date/time input types, we should make an input badInput when the + input has empty value but its sub-fields have values. It covers both of + partial input cases such as 12/--/2012 and invalid dates such as + 02/31/2012. + + For other types, ValidityState::badInput always returns false. + + This patch doesn't contain tests for badInput validation messages. They + will be added later. + + Tests: fast/forms/date-multiple-fields/date-multiple-fields-validity-badinput.html + fast/forms/datetime-multiple-fields/datetime-multiple-fields-validity-badinput.html + fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-validity-badinput.html + fast/forms/month-multiple-fields/month-multiple-fields-validity-badinput.html + fast/forms/number/number-validity-badinput.html + fast/forms/time-multiple-fields/time-multiple-fields-validity-badinput.html + fast/forms/week-multiple-fields/week-multiple-fields-validity-badinput.html + + * html/ValidityState.idl: Add badInput IDL attribute. + * html/ValidityState.h: + (ValidityState): Add badInput. + * html/ValidityState.cpp: + (WebCore::ValidityState::badInput): + Added. Calls FormAssociatedElement::hasBadInput. + + * html/FormAssociatedElement.h: + (FormAssociatedElement): Add hasBadInput. + * html/FormAssociatedElement.cpp: + (WebCore::FormAssociatedElement::hasBadInput): + Added. It always returns false. + (WebCore::FormAssociatedElement::valid): Takes account of hasBadInput(). + + * html/HTMLInputElement.h: + (HTMLInputElement): + Remove hasUnacceptableValue, and add hasBadInput override. + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::hasBadInput): + Added. Delegate to InputType::hasBadInput. + (WebCore): Remove hasUnacceptableValue. + + * html/InputType.h: + (InputType): Add hasBadInput and badInputText, and remove + hasUnacceptableValue. + * html/InputType.cpp: + (WebCore::InputType::hasBadInput): Added. Returns false. + (WebCore::InputType::badInputText): + Added. This function should not be called because hasBadInput always + returns false. + (WebCore::InputType::validationMessage): + Supports badInput. This returns badInputText if hasBadInput is true. + + * html/NumberInputType.h: + (NumberInputType): Add hasBadInput and badInputTest. Remove + handleBlurEvent and hasUnacceptableValue. + * html/NumberInputType.cpp: + Remove handleBlurEvent, which cleared invalid number strings. + (WebCore::NumberInputType::hasBadInput): + Added. We don't need to check existence of a renderer. The standard form + validation feature doesn't care of it. + (WebCore::NumberInputType::badInputText): Returns + validationMessageBadInputForNumberText defined in LocalizedStrings.h. + * css/SelectorChecker.cpp: + (WebCore::SelectorChecker::checkOneSelector): + Remove a hack for hasUnacceptableValue. isValidFormControlElement takes + account of badInput. + * dom/Element.h: Remove hasUnacceptableValue. + + * html/BaseMultipleFieldsDateAndTimeInputType.h: + (BaseMultipleFieldsDateAndTimeInputType): Add hasBadInput and badInputText. + * html/BaseMultipleFieldsDateAndTimeInputType.cpp: + (WebCore::BaseMultipleFieldsDateAndTimeInputType::badInputText): + Returns validationMessageBadInputForDateTimeText defined in LocalizedStrings.h. + (WebCore::BaseMultipleFieldsDateAndTimeInputType::hasBadInput): + Added. + (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue): + Add setNeedsValidityCheck call. It is needed because + updateInnerTextValue can modify subfields empty state. + + * html/TextFieldInputType.cpp: + (WebCore::TextFieldInputType::subtreeHasChanged): Update a comment. + * platform/LocalizedStrings.h: + (WebCore): Add validationMessageBadInputForNumberText and + validationMessageBadInputForDateTimeText. + * platform/LocalizedStrings.cpp: + (WebCore::validationMessageBadInputForNumberText): + Added a placeholder implementation. This should be fixed later. + * platform/blackberry/LocalizedStringsBlackBerry.cpp: + (WebCore::validationMessageBadInputForNumberText): Ditto. + * platform/efl/LocalizedStringsEfl.cpp: + (WebCore::validationMessageBadInputForNumberText): Ditto. + * platform/qt/LocalizedStringsQt.cpp: + (WebCore::validationMessageBadInputForNumberText): Ditto. + +2012-11-27 Hajime Morrita <morrita@google.com> + + [Refactoring] NodeFlags::IsShadowRootFlag should be Node::IsDocumentFragmentFlag + https://bugs.webkit.org/show_bug.cgi?id=103370 + + Reviewed by Kentaro Hara. + + This chagne introduces Node::IsDocumentFragmentFlag so that we can + have fast Node::isDocumentFragment(). + + Note that Node::isShadowRoot() can become slightly slower when it + returns true, but that is minor in terms of the number of calls at runtime. + + No new tests. No behavior change. + + * dom/DocumentFragment.cpp: + (WebCore::DocumentFragment::create): + * dom/DocumentFragment.h: + * dom/Node.cpp: + (WebCore::Node::documentFragmentIsShadowRoot): + (WebCore): + * dom/Node.h: + (Node): + (WebCore::Node::isDocumentFragment): + (WebCore::Node::isShadowRoot): + (WebCore::Node::parentNode): + (WebCore::Node::parentNodeGuaranteedHostFree): + * dom/ShadowRoot.h: + +2012-11-26 Kent Tamura <tkent@chromium.org> + + :read-only selector should match to date/time input types + https://bugs.webkit.org/show_bug.cgi?id=103350 + + Reviewed by Kentaro Hara. + + We supported :read-only and :read-write only for text form controls; + i.e. <textarea> and text-field <input>. According to [1], we should + support them for date/time types. So, this patch removes + isTextFormControl check in SelectorChecker, and just relies on + shouldMatchRead{Only,Write}Selector virtual functions. + + Tests: Update fast/forms/*/*-appearance-pseudo-classes.html. + + [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + + * css/SelectorChecker.cpp: + (WebCore::SelectorChecker::checkOneSelector): + Remove isFormControlElement check and isTextFormControl check. + + * html/HTMLFormControlElement.cpp: + Remove shouldMatchRead{Only,Write}Selector functions. We don't need + common implementations any more. + * html/HTMLFormControlElement.h: Ditto. + + * html/HTMLTextAreaElement.h: + (HTMLTextAreaElement): Add shouldMatchRead{Only,Write}Selector overrides. + * html/HTMLTextAreaElement.cpp: + (WebCore::HTMLTextAreaElement::shouldMatchReadOnlySelector): Added. + (WebCore::HTMLTextAreaElement::shouldMatchReadWriteSelector): Added. + + * html/HTMLInputElement.h: + (HTMLInputElement): Add shouldMatchRead{Only,Write}Selector overrides. + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::shouldMatchReadOnlySelector): + Added. This checks InputType::supportsReadOnly and readOnly. + (WebCore::HTMLInputElement::shouldMatchReadWriteSelector): Ditto. + + * html/InputType.h: + (InputType): Add supportsReadOnly. + * html/InputType.cpp: + (WebCore::InputType::supportsReadOnly): Added. Returns false by default. + + * html/BaseDateAndTimeInputType.h: + (BaseDateAndTimeInputType): Add supportsReadOnly. + * html/BaseDateAndTimeInputType.cpp: + (WebCore::BaseDateAndTimeInputType::supportsReadOnly): Added. Returns true. + * html/TextFieldInputType.h: + (TextFieldInputType): Add supportsReadOnly. + * html/TextFieldInputType.cpp: + (WebCore::TextFieldInputType::supportsReadOnly): Added. Returns true. + +2012-11-26 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r135822. + http://trac.webkit.org/changeset/135822 + https://bugs.webkit.org/show_bug.cgi?id=103369 + + Undo the revert of r135818, since that change does not affect + code used by Chromium (Requested by apavlov on #webkit). + + * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: + (WebCore::GraphicsLayerTextureMapper::setMaskLayer): + (WebCore::GraphicsLayerTextureMapper::setContentsVisible): + +2012-11-26 Michael Pruett <michael@68k.org> + + [GTK] Fix build error on GTK due to r135749 + https://bugs.webkit.org/show_bug.cgi?id=103365 + + Reviewed by Dean Jackson. + + In r135749, many files which were already included + in webcore_built_sources were erroneously added to + webcore_svg_built_sources in GNUmakefile.list.am. + + * GNUmakefile.list.am: + +2012-11-26 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r135818. + http://trac.webkit.org/changeset/135818 + https://bugs.webkit.org/show_bug.cgi?id=103368 + + platform/chromium/virtual/threaded/compositing/visibility + /visibility-simple-webgl-layer.html crash on Mountain Lion + (Requested by apavlov on #webkit). + + * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: + (WebCore::GraphicsLayerTextureMapper::setMaskLayer): + (WebCore::GraphicsLayerTextureMapper::setContentsVisible): + +2012-11-26 Huang Dongsung <luxtella@company100.net> + + Coordinated Graphics: Set visibility to a mask layer in GraphicsLayer::setContentsVisible(). + https://bugs.webkit.org/show_bug.cgi?id=103297 + + Reviewed by Noam Rosenthal. + + GraphicsLayerTextureMapper and CoordinatedGraphicsLayer set the visibility of a + mask layer in setContentsVisible() and setMaskLayer() like setting a size. + This patch is needed because RenderLayerBacking does not set the visibility to a + mask layer like the size. + + This patch does not change user experience because an invisible layer is not + rendered although the mask layer is rendered. In that sense, it is an + optimization patch. + + No new tests. It is an optimization patch. + + * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: + (WebCore::GraphicsLayerTextureMapper::setMaskLayer): + (WebCore::GraphicsLayerTextureMapper::setContentsVisible): + +2012-11-26 Kentaro Hara <haraken@chromium.org> + + [V8] Rename EXCEPTION_BLOCK() macros + https://bugs.webkit.org/show_bug.cgi?id=103352 + + Reviewed by Adam Barth. + + Since V8Parameter was renamed to V8StringResource, + we rename macros that use V8Parameter. + + EXCEPTION_BLOCK() => V8TRYCATCH() + STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() => V8TRYCATCH_FOR_V8STRINGRESOURCE() + STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID() => V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID() + + No tests. No change in behavior. + + * bindings/scripts/CodeGeneratorV8.pm: + (GenerateParametersCheck): + (GenerateEventConstructorCallback): + (ConvertToV8StringResource): + * bindings/scripts/test/V8/V8Float64Array.cpp: + (WebCore::Float64ArrayV8Internal::fooCallback): + * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: + (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback): + (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback): + * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp: + (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback): + * bindings/scripts/test/V8/V8TestEventConstructor.cpp: + (WebCore::V8TestEventConstructor::constructorCallback): + * bindings/scripts/test/V8/V8TestEventTarget.cpp: + (WebCore::TestEventTargetV8Internal::itemCallback): + (WebCore::TestEventTargetV8Internal::dispatchEventCallback): + * bindings/scripts/test/V8/V8TestInterface.cpp: + (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter): + (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter): + (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback): + (WebCore::V8TestInterface::constructorCallback): + * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: + (WebCore::TestMediaQueryListListenerV8Internal::methodCallback): + * bindings/scripts/test/V8/V8TestNamedConstructor.cpp: + (WebCore::V8TestNamedConstructorConstructorCallback): + * bindings/scripts/test/V8/V8TestObj.cpp: + (WebCore::TestObjV8Internal::staticStringAttrAttrSetter): + (WebCore::TestObjV8Internal::stringAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter): + (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter): + (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter): + (WebCore::TestObjV8Internal::voidMethodWithArgsCallback): + (WebCore::TestObjV8Internal::longMethodWithArgsCallback): + (WebCore::TestObjV8Internal::objMethodWithArgsCallback): + (WebCore::TestObjV8Internal::methodWithSequenceArgCallback): + (WebCore::TestObjV8Internal::methodReturningSequenceCallback): + (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback): + (WebCore::TestObjV8Internal::idbKeyCallback): + (WebCore::TestObjV8Internal::optionsObjectCallback): + (WebCore::TestObjV8Internal::methodWithOptionalArgCallback): + (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback): + (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback): + (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback): + (WebCore::TestObjV8Internal::overloadedMethod1Callback): + (WebCore::TestObjV8Internal::overloadedMethod2Callback): + (WebCore::TestObjV8Internal::overloadedMethod3Callback): + (WebCore::TestObjV8Internal::overloadedMethod4Callback): + (WebCore::TestObjV8Internal::overloadedMethod6Callback): + (WebCore::TestObjV8Internal::overloadedMethod7Callback): + (WebCore::TestObjV8Internal::overloadedMethod8Callback): + (WebCore::TestObjV8Internal::overloadedMethod9Callback): + (WebCore::TestObjV8Internal::overloadedMethod10Callback): + (WebCore::TestObjV8Internal::overloadedMethod11Callback): + (WebCore::TestObjV8Internal::classMethodWithOptionalCallback): + (WebCore::TestObjV8Internal::overloadedMethod12Callback): + (WebCore::TestObjV8Internal::classMethodWithClampCallback): + (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback): + (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback): + (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback): + (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback): + (WebCore::TestObjV8Internal::stringArrayFunctionCallback): + (WebCore::TestObjV8Internal::convert1Callback): + (WebCore::TestObjV8Internal::convert2Callback): + (WebCore::TestObjV8Internal::convert4Callback): + (WebCore::TestObjV8Internal::convert5Callback): + (WebCore::TestObjV8Internal::strictFunctionCallback): + (WebCore::TestObjV8Internal::variadicStringMethodCallback): + (WebCore::TestObjV8Internal::variadicDoubleMethodCallback): + (WebCore::TestObjV8Internal::variadicNodeMethodCallback): + * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: + (WebCore::V8TestOverloadedConstructors::constructor1Callback): + (WebCore::V8TestOverloadedConstructors::constructor2Callback): + (WebCore::V8TestOverloadedConstructors::constructor3Callback): + (WebCore::V8TestOverloadedConstructors::constructor4Callback): + * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: + (WebCore::V8TestSerializedScriptValueInterface::constructorCallback): + * bindings/v8/V8Binding.h: + (WebCore::toV8Sequence): + * bindings/v8/V8BindingMacros.h: + * bindings/v8/custom/V8BlobCustom.cpp: + (WebCore::V8Blob::constructorCallbackCustom): + * bindings/v8/custom/V8ConsoleCustom.cpp: + (WebCore::V8Console::profileCallback): + (WebCore::V8Console::profileEndCallback): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::handlePostMessageCallback): + * bindings/v8/custom/V8DataViewCustom.cpp: + (WebCore::V8DataView::getInt8Callback): + (WebCore::V8DataView::getUint8Callback): + (WebCore::V8DataView::setInt8Callback): + (WebCore::V8DataView::setUint8Callback): + * bindings/v8/custom/V8DeviceMotionEventCustom.cpp: + (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback): + * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp: + (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback): + * bindings/v8/custom/V8DocumentCustom.cpp: + (WebCore::V8Document::evaluateCallback): + * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: + (WebCore::V8HTMLOptionsCollection::addCallback): + * bindings/v8/custom/V8HistoryCustom.cpp: + (WebCore::V8History::pushStateCallback): + (WebCore::V8History::replaceStateCallback): + * bindings/v8/custom/V8IntentCustom.cpp: + (WebCore::V8Intent::constructorCallbackCustom): + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + (WebCore::V8SQLTransaction::executeSqlCallback): + * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp: + (WebCore::V8SQLTransactionSync::executeSqlCallback): + * bindings/v8/custom/V8SVGLengthCustom.cpp: + (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback): + * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: + (WebCore::V8WebGLRenderingContext::getExtensionCallback): + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::V8WorkerContext::importScriptsCallback): + +2012-11-26 Andreas Kling <akling@apple.com> + + Node: Move AreSVGAttributesValidFlag to ElementAttributeData. + <http://webkit.org/b/103349> + + Reviewed by Anders Carlsson. + + Moved AreSVGAttributesValidFlag to ElementAttributeData and change it to use "dirty" semantics. + This frees up a bit on Node, and we will always have ElementAttributeData if the animated + attributes are dirty anyway. + + * dom/Element.cpp: + (WebCore::Element::getAttribute): + * dom/Element.h: + (WebCore::Element::updateInvalidAttributes): + * dom/ElementAttributeData.cpp: + (WebCore::ElementAttributeData::ElementAttributeData): + * dom/ElementAttributeData.h: + (WebCore::ElementAttributeData::ElementAttributeData): + (ElementAttributeData): + * dom/Node.h: + (Node): + * svg/SVGElement.cpp: + (WebCore::SVGElement::updateAnimatedSVGAttribute): + * svg/SVGElement.h: + (WebCore::SVGElement::invalidateSVGAttributes): + +2012-11-26 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r135798. + http://trac.webkit.org/changeset/135798 + https://bugs.webkit.org/show_bug.cgi?id=103354 + + Broke the chrome mac build (Requested by noel_ on #webkit). + + * platform/graphics/chromium/DeferredImageDecoder.cpp: + (WebCore::DeferredImageDecoder::~DeferredImageDecoder): + (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap): + (WebCore::DeferredImageDecoder::frameBufferAtIndex): + (WebCore::DeferredImageDecoder::createLazyDecodingBitmap): + * platform/graphics/chromium/DeferredImageDecoder.h: + (DeferredImageDecoder): + * platform/graphics/chromium/ImageDecodingStore.cpp: + (WebCore::ImageDecodingStore::instanceOnMainThread): + (WebCore::ImageDecodingStore::initializeOnMainThread): + (WebCore::ImageDecodingStore::shutdown): + (WebCore::ImageDecodingStore::calledOnValidThread): + (WebCore::ImageDecodingStore::lookupFrameCache): + (WebCore::ImageDecodingStore::deleteFrameCache): + * platform/graphics/chromium/ImageDecodingStore.h: + (WebCore): + (ImageDecodingStore): + * platform/graphics/chromium/ImageFrameGenerator.cpp: + (WebCore::ImageFrameGenerator::ImageFrameGenerator): + (WebCore::ImageFrameGenerator::~ImageFrameGenerator): + (WebCore::ImageFrameGenerator::setData): + (WebCore::ImageFrameGenerator::decodeAndScale): + * platform/graphics/chromium/ImageFrameGenerator.h: + (WebCore): + (WebCore::ImageFrameGenerator::create): + (ImageFrameGenerator): + * platform/graphics/chromium/LazyDecodingPixelRef.cpp: + (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef): + (WebCore::LazyDecodingPixelRef::onLockPixels): + (WebCore::LazyDecodingPixelRef::onUnlockPixels): + * platform/graphics/chromium/LazyDecodingPixelRef.h: + (WebCore): + (LazyDecodingPixelRef): + * platform/graphics/chromium/ScaledImageFragment.cpp: + (WebCore::ScaledImageFragment::ScaledImageFragment): + (WebCore::ScaledImageFragment::isEqual): + (WebCore): + * platform/graphics/chromium/ScaledImageFragment.h: + (WebCore): + (WebCore::ScaledImageFragment::create): + (ScaledImageFragment): + * platform/graphics/chromium/SkSizeHash.h: Removed. + +2012-11-26 Huang Dongsung <luxtella@company100.net> + + [TexMap] GraphicsLayerTextureMapper::setSize() sets the size of a mask layer. + https://bugs.webkit.org/show_bug.cgi?id=103297 + + Reviewed by Noam Rosenthal. + + Currently, CoordinatedGraphicsLayer sets the size of a mask layer in setSize() + and setMaksLayer(). GraphicsLayerTextureMapper follows the behavior. If so we + don't have to check the size of the mask layer in TextureMapperLayer::flushCompositingState(). + + No new tests. Covered by existing tests. + + * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp: + (WebCore::GraphicsLayerTextureMapper::setMaskLayer): + (WebCore::GraphicsLayerTextureMapper::setSize): + * platform/graphics/texmap/TextureMapperLayer.cpp: + (WebCore::TextureMapperLayer::flushCompositingState): + +2012-11-26 Kentaro Hara <haraken@chromium.org> + + [V8] Remove V8Parameter::object() + https://bugs.webkit.org/show_bug.cgi?id=103340 + + Reviewed by Adam Barth. + + V8Parameter can use m_v8Object directly. + + No tests. No change in behavior. + + * bindings/v8/V8StringResource.h: + (WebCore::::prepare): + +2012-11-26 Kentaro Hara <haraken@chromium.org> + + [V8] Rename V8Parameter to V8StringResource + https://bugs.webkit.org/show_bug.cgi?id=103341 + + Reviewed by Adam Barth. + + We can rename V8Parameter to V8StringResource. In a follow-up patch, + I will rename macros around V8Parameter. + + No tests. No change in behavior. + + * bindings/scripts/CodeGeneratorV8.pm: + (GenerateNormalAttrGetter): + (GenerateNormalAttrSetter): + (GenerateParametersCheck): + (GenerateEventConstructorCallback): + (GetNativeTypeFromSignature): + (GetNativeType): + (ConvertToV8StringResource): + * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: + (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback): + * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp: + (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback): + * bindings/scripts/test/V8/V8TestEventConstructor.cpp: + (WebCore::V8TestEventConstructor::constructorCallback): + * bindings/scripts/test/V8/V8TestInterface.cpp: + (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter): + (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter): + (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback): + (WebCore::V8TestInterface::constructorCallback): + * bindings/scripts/test/V8/V8TestNamedConstructor.cpp: + (WebCore::V8TestNamedConstructorConstructorCallback): + * bindings/scripts/test/V8/V8TestObj.cpp: + (WebCore::TestObjV8Internal::staticStringAttrAttrSetter): + (WebCore::TestObjV8Internal::stringAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter): + (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter): + (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter): + (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter): + (WebCore::TestObjV8Internal::voidMethodWithArgsCallback): + (WebCore::TestObjV8Internal::longMethodWithArgsCallback): + (WebCore::TestObjV8Internal::objMethodWithArgsCallback): + (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback): + (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback): + (WebCore::TestObjV8Internal::overloadedMethod1Callback): + (WebCore::TestObjV8Internal::overloadedMethod3Callback): + (WebCore::TestObjV8Internal::overloadedMethod11Callback): + (WebCore::TestObjV8Internal::overloadedMethod12Callback): + (WebCore::TestObjV8Internal::strictFunctionCallback): + (WebCore::TestObjV8Internal::variadicStringMethodCallback): + * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: + (WebCore::V8TestOverloadedConstructors::constructor4Callback): + * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: + (WebCore::V8TestSerializedScriptValueInterface::constructorCallback): + * bindings/v8/V8StringResource.h: + (WebCore::V8StringResource::V8StringResource): + (WebCore::::prepare): + * bindings/v8/custom/V8ConsoleCustom.cpp: + (WebCore::V8Console::profileCallback): + (WebCore::V8Console::profileEndCallback): + * bindings/v8/custom/V8DOMWindowCustom.cpp: + (WebCore::handlePostMessageCallback): + * bindings/v8/custom/V8DeviceMotionEventCustom.cpp: + (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback): + * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp: + (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback): + * bindings/v8/custom/V8HistoryCustom.cpp: + (WebCore::V8History::pushStateCallback): + (WebCore::V8History::replaceStateCallback): + * bindings/v8/custom/V8IntentCustom.cpp: + (WebCore::V8Intent::constructorCallbackCustom): + * bindings/v8/custom/V8SQLTransactionCustom.cpp: + (WebCore::V8SQLTransaction::executeSqlCallback): + * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp: + (WebCore::V8SQLTransactionSync::executeSqlCallback): + * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: + (WebCore::V8WebGLRenderingContext::getExtensionCallback): + +2012-11-26 Andreas Kling <akling@apple.com> + + HTMLOptionElement: Remove two unused members. + <http://webkit.org/b/103337> + + Reviewed by Kent Tamura. + + Remove two unused members from HTMLOptionElement, m_value and m_label. + 40kB progression on Membuster3. + + * html/HTMLOptionElement.h: + (HTMLOptionElement): + +2012-11-26 Stephen White <senorblanco@chromium.org> + + [Chromium] Shared graphics context should only pushGroupMarker() once + https://bugs.webkit.org/show_bug.cgi?id=103082 + + Reviewed by James Robinson. + + GraphicsContext3D's pushGroupMarkerEXT() is being called every time + an ImageBuffer is created, leading to unlimited memory growth, since + they share a common GraphicsContext3D. It should be called only once, + on context creation. + + Tested by manually checking the memory usage in Chrome's TaskManager. + (Sorry, I can't think of a way to test this automatically.) + + * platform/graphics/gpu/SharedGraphicsContext3D.cpp: + (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext): + * platform/graphics/skia/ImageBufferSkia.cpp: + (WebCore::createAcceleratedCanvas): + +2012-11-26 Kentaro Hara <haraken@chromium.org> + + [V8] Remove WorkerContextExecutionProxy.{h,cpp} + https://bugs.webkit.org/show_bug.cgi?id=103325 + + Reviewed by Adam Barth. + + Now WorkerContextExecutionProxy.{h,cpp} are empty. + + No tests. No change in behavior. + + * UseV8.cmake: + * WebCore.gypi: + * bindings/v8/ScheduledAction.cpp: + * bindings/v8/V8AbstractEventListener.cpp: + * bindings/v8/V8DOMWrapper.cpp: + * bindings/v8/V8WorkerContextEventListener.h: + (WebCore): + * bindings/v8/WorkerContextExecutionProxy.cpp: Removed. + * bindings/v8/WorkerContextExecutionProxy.h: Removed. + * bindings/v8/WorkerScriptController.cpp: + * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp: + * bindings/v8/custom/V8MessageChannelCustom.cpp: + * bindings/v8/custom/V8MessagePortCustom.cpp: + * bindings/v8/custom/V8WorkerCustom.cpp: + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + +2012-11-26 Michael Saboff <msaboff@apple.com> + + Grapheme cluster functions can be simplified for 8 bit Strings + https://bugs.webkit.org/show_bug.cgi?id=102996 + + Reviewed by Alexey Proskuryakov. + + For 8 bit strings, check for the uncommon CR-LF by looking for any CR. If there aren't any CR characters, + the number of Extended Grapheme Clusters is equal to the string length. If we need to handle Tailored + Graheme Clusters, then this will need to change. + + No new tests. No change in functionality. + + * platform/text/TextBreakIterator.cpp: + (WebCore::numGraphemeClusters): + (WebCore::numCharactersInGraphemeClusters): + +2012-11-26 Istiaque Ahmed <lazyboy@chromium.org> + + Check for empty perContextData while creating NP V8 Object. + https://bugs.webkit.org/show_bug.cgi?id=98448 + + Reviewed by Adam Barth. + + Fixes crash in npCreateV8ScriptObject(), if NP Invoke is called from a document + that is no longer displayed in frame (isCurrentlyDisplayedInFrame() == + false), we have empty perContextData and this results in invalid memory access. + + Test: platform/chromium/plugins/empty-per-context-data.html + + * bindings/v8/NPV8Object.cpp: + (WebCore::npCreateV8ScriptObject): + +2012-11-26 Michael Saboff <msaboff@apple.com> + + HTML/XML parser helper unconsumeCharacters() can push back 8 bit text as 16 bit text + https://bugs.webkit.org/show_bug.cgi?id=103317 + + Reviewed by Oliver Hunt. + + Changed to use the String directly from the StringBuilder instead of creating our own. + Used toStringPreserveCapacity() in case the caller may want to add to the StringBuilder + even though current callers don't. + + No new tests. No change in functionality. + + * xml/parser/CharacterReferenceParserInlines.h: + (WebCore::unconsumeCharacters): + +2012-11-26 Noel Gordon <noel.gordon@gmail.com> + + PNG decode performance: avoid using frame buffer.setRGBA(x,y) + https://bugs.webkit.org/show_bug.cgi?id=103216 + + Reviewed by Brent Fulgham. + + Writing decoded row pixels to the frame buffer with buffer.setRGBA(x,y) is slow compared + to writing direct to the frame buffer address. Use buffer.getAddr() to obtain the output + pixel row address, write the decoded row pixels to that address. + + No new tests. Covered by many existing tests. + + * platform/image-decoders/ImageDecoder.h: + (WebCore::ImageFrame::setRGBA): Make routine setRGBA(PixelData* dest, ...) public. Test + m_premultiplyAlpha once to minimize code branching in this routine. + * platform/image-decoders/png/PNGImageDecoder.cpp: + (WebCore::PNGImageDecoder::rowAvailable): Write decoded row pixels to the frame buffer + using the pixel address form: buffer.setRGBA(address++, ...). + +2012-11-26 Alpha Lam <hclam@chromium.org> + + [chromium] Implement full-featured image cache + https://bugs.webkit.org/show_bug.cgi?id=99784 + + Reviewed by James Robinson. + + Implement a thread-safe image cache to be used with deferred image + decoding. Image cache can now be accessed on any thread. + + The patch implements the following logic: + 1. Mutex to protect all cache operations. + 2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize) + 3. Cache lookup. + 4. Cache insertion. + 5. Generation of cache entry by scaling full size image. + 6. Generation of cache entries by decoding and scaling. + + Classes involved: + + ImageDecodingStore + + Responsible for owning cache entries and indexing. Pruning and memory + management will be added later. + + ImageFrameGenerator + + Responsible for generating new cache enties and insert them into + ImageDecodingStore. + + LazyDecodingPixelRef + + Responsible for cache lookup and lazy generation of cache entries + using ImageFrameGenerator. There is a mutex to protect concurrent + lock operations. + + These items are not implemented in this patch: + 1. Cache pruning. + 2. Setting cache memory limit. + 3. Cache deletion. + 4. Caching incomplete images and ImageDecoder. + + Unit tests added in ImageFrameGeneratorTest.cpp. + Layout tests are under platform/chromium/virtual/fast/images. + + * platform/graphics/chromium/DeferredImageDecoder.cpp: + (WebCore::DeferredImageDecoder::~DeferredImageDecoder): + (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap): + (WebCore::DeferredImageDecoder::setEnabled): + (WebCore): + (WebCore::DeferredImageDecoder::frameBufferAtIndex): + (WebCore::DeferredImageDecoder::createLazyDecodingBitmap): + * platform/graphics/chromium/DeferredImageDecoder.h: + (DeferredImageDecoder): + * platform/graphics/chromium/ImageDecodingStore.cpp: + (WebCore::ImageDecodingStore::instance): + (WebCore::ImageDecodingStore::initializeOnce): + (WebCore::ImageDecodingStore::shutdown): + (WebCore::ImageDecodingStore::lockCompleteCache): + Lookup complete cache entry using hash key, increment use count. + (WebCore::ImageDecodingStore::lockIncompleteCache): TODO. + (WebCore::ImageDecodingStore::unlockCache): + Lookup cache entry using hash key, decrement use count. + (WebCore): + (WebCore::ImageDecodingStore::insertAndLockCache): + Insert new cache entry and increment use count. + (WebCore::ImageDecodingStore::prune): TODO. + * platform/graphics/chromium/ImageDecodingStore.h: + (WebCore): + (ImageDecodingStore): + (WebCore::ImageDecodingStore::CacheEntry::create): + (WebCore::ImageDecodingStore::CacheEntry::createAndUse): + (CacheEntry): + (WebCore::ImageDecodingStore::CacheEntry::CacheEntry): + (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry): + * platform/graphics/chromium/ImageFrameGenerator.cpp: + (WebCore::ImageFrameGenerator::ImageFrameGenerator): + (WebCore::ImageFrameGenerator::setData): + (WebCore::ImageFrameGenerator::decodeAndScale): + Method for creating new cache entries. This is protected by a mutex + to prevent concurrent operations. Which means only one thread can + generate new cache entries for a set of encoded data. + (WebCore): + (WebCore::ImageFrameGenerator::tryToLockCache): + Tries to lookup a cache entry. + (WebCore::ImageFrameGenerator::tryToScale): + Tries to lookup a full size cache entry and generate a scaled version. + (WebCore::ImageFrameGenerator::tryToDecodeAndScale): + Tries to decode and scale. + * platform/graphics/chromium/ImageFrameGenerator.h: + (WebCore): + (ImageDecoderFactory): + (WebCore::ImageFrameGenerator::create): + (ImageFrameGenerator): + (WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting): + * platform/graphics/chromium/LazyDecodingPixelRef.cpp: + (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef): + (WebCore::LazyDecodingPixelRef::onLockPixels): + (WebCore::LazyDecodingPixelRef::onUnlockPixels): + * platform/graphics/chromium/LazyDecodingPixelRef.h: + (WebCore): + (LazyDecodingPixelRef): + * platform/graphics/chromium/ScaledImageFragment.cpp: + (WebCore::ScaledImageFragment::ScaledImageFragment): + * platform/graphics/chromium/ScaledImageFragment.h: + (WebCore): + (WebCore::ScaledImageFragment::create): + (ScaledImageFragment): + (WebCore::ScaledImageFragment::scaledSize): + * platform/graphics/chromium/SkSizeHash.h: Added. + (WTF): + +2012-11-26 Andreas Kling <akling@apple.com> + + Node: Remove IsSynchronizingSVGAttributesFlag. + <http://webkit.org/b/103328> + + Reviewed by Antti Koivisto. + + Animated SVG attributes used to be synchronized by using DOM API which could use unwanted re-entrancy + via callbacks below Element::attributeChanged(). The "is synchronizing SVG attributes" flag was used + to protect against such re-entrancy. + + These days, lazy attributes are synchronized using Element::setSynchronizedLazyAttribute() to avoid + issues like this. The flag does nothing, so we can just remove it. + + * dom/Node.h: + (WebCore): + * svg/SVGElement.cpp: + (WebCore::SVGElement::attributeChanged): + (WebCore::SVGElement::updateAnimatedSVGAttribute): + +2012-11-26 Kentaro Hara <haraken@chromium.org> + + [V8] Refactor WorkerScriptController + https://bugs.webkit.org/show_bug.cgi?id=103330 + + Reviewed by Adam Barth. + + r135703 just moved methods from WorkerContextExecutionProxy + to WorkerScriptController. We should refactor the methods as a follow-up. + + No tests. No change in behavior. + + * bindings/v8/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::~WorkerScriptController): + (WebCore::WorkerScriptController::disposeContext): + (WebCore::WorkerScriptController::initializeContextIfNeeded): + (WebCore::WorkerScriptController::evaluate): + (WebCore::WorkerScriptController::disableEval): + * bindings/v8/WorkerScriptController.h: + (WorkerScriptController): + +2012-11-26 Varun Jain <varunjain@chromium.org> + + LongPress and LongTap gestures should start drag/drop and open context menu respectively. + https://bugs.webkit.org/show_bug.cgi?id=101545 + + Reviewed by Antonio Gomes. + + For LongPress, we simulate drag by sending a mouse down and mouse drag + events. If a drag is not started (because maybe there is no draggable + element), then we show context menu instead (which is the current + behavior for LongPress). For LongTap, we use the existing functions that + LongPress uses to summon the context menu. LongPress initiated drag and + drop can be enabled/disabled by the platform using the Setting + touchDragDropEnabled which is disabled by default. + + Tests: fast/events/touch/gesture/context-menu-on-long-tap.html + fast/events/touch/gesture/long-press-on-draggable-element-triggers-drag.html + + * page/EventHandler.cpp: + (WebCore::EventHandler::EventHandler): + (WebCore::EventHandler::clear): + (WebCore::EventHandler::handleMouseDraggedEvent): + (WebCore::EventHandler::handleGestureEvent): + (WebCore::EventHandler::handleGestureLongPress): + (WebCore::EventHandler::handleGestureLongTap): + (WebCore): + (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu): + (WebCore::EventHandler::adjustGesturePosition): + (WebCore::EventHandler::handleDrag): + * page/EventHandler.h: + (EventHandler): + * page/Settings.in: + +2012-11-26 Andreas Kling <akling@apple.com> + + RenderStyle: Move 'list-style-image' to rare inherited data. + <http://webkit.org/b/103300> + + Reviewed by Antti Koivisto. + + list-style-image is not nearly common enough to merit a spot in StyleInheritedData. + Move it to StyleRareInheritedData. + + 134kB progression on Membuster3. + + * rendering/style/RenderStyle.cpp: + (WebCore::RenderStyle::diff): + (WebCore::RenderStyle::listStyleImage): + (WebCore::RenderStyle::setListStyleImage): + * rendering/style/StyleInheritedData.cpp: + (WebCore::StyleInheritedData::StyleInheritedData): + (WebCore::StyleInheritedData::operator==): + * rendering/style/StyleInheritedData.h: + (StyleInheritedData): + * rendering/style/StyleRareInheritedData.h: + * rendering/style/StyleRareInheritedData.cpp: + (SameSizeAsStyleRareInheritedData): + (WebCore::StyleRareInheritedData::StyleRareInheritedData): + (WebCore::StyleRareInheritedData::operator==): + +2012-11-26 James Simonsen <simonjam@chromium.org> + + Consolidate FrameLoader::load() into one function taking a FrameLoadRequest + https://bugs.webkit.org/show_bug.cgi?id=102151 + + Reviewed by Adam Barth. + + There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1. + There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as + the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches + the refactoring done with CachedResourceRequest and CachedResourceLoader. + + No new tests. No change in functionality. + + * WebCore.exp.in: + * loader/FrameLoadRequest.h: + (WebCore::FrameLoadRequest::FrameLoadRequest): + (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load(). + (WebCore::FrameLoadRequest::lockHistory): Ditto. + (FrameLoadRequest): + (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto. + (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto. + (WebCore::FrameLoadRequest::substituteData): Ditto. + (WebCore::FrameLoadRequest::setSubstituteData): Ditto. + (WebCore::FrameLoadRequest::hasSubstituteData): Ditto. + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function. + * loader/FrameLoader.h: + (FrameLoader): + * page/DragController.cpp: + (WebCore::DragController::performDrag): + +2012-11-24 Genevieve Mak <gmak@rim.com> + + [BlackBerry] Stop sending touch events to plugins. + https://bugs.webkit.org/show_bug.cgi?id=103188 + + Reviewed by Rob Buis. + + Reviewed internally by Jeff Rogers and Mike Lattanzio. + No tests required. + PR #248605 + + * plugins/blackberry/PluginViewBlackBerry.cpp: + (WebCore::PluginView::handleTouchEvent): + (WebCore::PluginView::handleMouseEvent): + +2012-11-26 Adenilson Cavalcanti <cavalcantii@gmail.com> + + Removing unnecessary friend classes in RenderObject: LayoutRepainter, RenderSVGContainer + https://bugs.webkit.org/show_bug.cgi?id=103164 + + Reviewed by Simon Fraser. + + Removing some of classes marked as friend of RenderObject. This patch solves this issue + for 2 classes: RenderSVGContainer (that is derived from RenderObject) and LayoutRepainter + (that accesses one const member function in RenderObject that is now made public). + + No new tests, no changes in functionality. + + * rendering/RenderObject.h: + (RenderObject): + (WebCore::RenderObject::outlineBoundsForRepaint): + +2012-11-26 Jon Lee <jonlee@apple.com> + + Pass clicks through to the restarted plugin + https://bugs.webkit.org/show_bug.cgi?id=102150 + <rdar://problem/12695575> + + Reviewed by Simon Fraser. + + Add a new state to the machine for plugin snapshotting, called PlayingWithPendingMouseClick. + This represents the state where the plugin is playing, but before the pending mouse click + has been fired. Once the click is sent, the plugin state transitions to Playing. For + situations where the plugin just runs normally without a simulated click, the plugin state + jumps from DisplayingSnapshot straight to Playing, as before. + + * html/HTMLPlugInElement.h: Add new display state to represent when the plugin is running, + but a pending mouse click is about to be sent to the plugin. + (WebCore::HTMLPlugInElement::dispatchPendingMouseClick): Called by the plugin when it is + ok for the element to send the pending mouse click. + * html/HTMLPlugInElement.cpp: + (WebCore::HTMLPlugInElement::defaultEventHandler): Update the handler to pass the event + to the renderer to handle if the state is before PlayingWithPendingMouseClick. + + * html/HTMLPlugInImageElement.h: + * html/HTMLPlugInImageElement.cpp: Add a click timer to delay the mouse click so that the + plugin has some time to initialize. + (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialize the mouse timer. + (WebCore::HTMLPlugInImageElement::setPendingClickEvent): Keep track of the click event + the user made to restart the plugin. + (WebCore::HTMLPlugInImageElement::dispatchPendingMouseClick): Start the timer. + (WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): When the timer fires, + dispatch the simulated click, with mouse over, mouse down, and mouse up events. Transition + to the Playing state, and we no longer need the click event. + + * rendering/RenderSnapshottedPlugIn.cpp: Change the threshold state to PlayingWithPendingMouseClick + instead of Playing, since that is the earliest state where the plugin is playing. + (WebCore::RenderSnapshottedPlugIn::paint): + (WebCore::RenderSnapshottedPlugIn::paintReplaced): + (WebCore::RenderSnapshottedPlugIn::getCursor): + (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the button, jump to + Playing, and don't send a simulated click. Otherwise, transition to PlayingWithPendingMouseClick, + and keep track of that mouse event. + + * WebCore.exp.in: Export MouseRelatedEvent::offsetX() and offsetY(). + +2012-11-26 Dan Carney <dcarney@google.com> + + Refactor V8 bindings to allow content scripts to access subframes + https://bugs.webkit.org/show_bug.cgi?id=93646 + + Reviewed by Adam Barth. + + Isolated window shells are now initialized on the fly + as needed. + + No new tests. Existing test modified. + + * bindings/v8/DOMWrapperWorld.cpp: + (WebCore::DOMWrapperWorld::ensureIsolatedWorld): + * bindings/v8/DOMWrapperWorld.h: + (WebCore::DOMWrapperWorld::createdFromUnitializedWorld): + (DOMWrapperWorld): + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::currentWorldContext): + +2012-11-26 Alex Christensen <alex.christensen@flexsim.com> + + clipboardwin compile error for win64 + https://bugs.webkit.org/show_bug.cgi?id=94124 + + Reviewed by Brent Fulgham. + + The clipboard utilities code uses std::min with one unsigned int parameter and one size_t parameter. + This causes a problem when compiling for 64-bit Windows because the two types are not the same size. + To resolve this issue, we specify the template type as the type the return value is being cast into + + Fixed a few compile errors for Windows x64 by specifying template parameters. + + * platform/win/ClipboardUtilitiesWin.cpp: + (WebCore::setFileDescriptorData): Specify the types for the std::min macro to avoid compiler errors + under 64-bit builds. + +2012-11-26 Arnaud Renevier <a.renevier@sisa.samsung.com> + + [GTK] GtkSocket is leaked until webview is destroyed. + https://bugs.webkit.org/show_bug.cgi?id=102564 + + Reviewed by Martin Robinson. + + Remove GtkSocket from its parent when pluginview is destroyed. Then, + the GtkSocket and it's possible child widgets are realeased when it is + no more needed. + + No new tests, already covered by existing tests. + + * plugins/gtk/PluginViewGtk.cpp: + (WebCore::PluginView::platformDestroy): + +2012-11-26 Luke Macpherson <macpherson@chromium.org> + + Make StyleResolver::applyProperty use isInherit in CSSPropertyWebkitMarquee instead of calculating equivalent in-place. + https://bugs.webkit.org/show_bug.cgi?id=102446 + + Reviewed by Tony Chang. + + !m_parentNode || !value->isInheritedValue() is equivalent to !isInherit (by De Morgan's law). + + No new tests / code is provably equivalent. + + * css/StyleResolver.cpp: + (WebCore::StyleResolver::applyProperty): + +2012-11-26 Pratik Solanki <psolanki@apple.com> + + Add ResourceBuffer::append(CFDataRef) to get code to compile with USE(NETWORK_CFDATA_ARRAY_CALLBACK) + https://bugs.webkit.org/show_bug.cgi?id=102706 + + Reviewed by Brent Fulgham. + + No new tests because the flag isn't enabled. Also the functionality should be covered by + existing tests. + + * loader/ResourceBuffer.cpp: + (WebCore): + (WebCore::ResourceBuffer::append): + * loader/ResourceBuffer.h: + (ResourceBuffer): + * loader/mac/ResourceLoaderMac.mm: + +2012-11-26 Tony Chang <tony@chromium.org> + + Move more functions from internals.settings to internals + https://bugs.webkit.org/show_bug.cgi?id=102976 + + Reviewed by Adam Barth. + + Move functions that don't have to do with Settings off of internals.settings. + setPagination and configurationForViewport were defined on internals, so we + can inline the functions (no test change). + + setEnableMockPagePopup is moved to Internals. + + No new tests, this is a refactor. + + * testing/InternalSettings.cpp: + (WebCore::InternalSettings::reset): Move reset code into Internals. + * testing/InternalSettings.h: + (InternalSettings): Remove code for setPagination, configurationForViewport and setEnableMockPagePopup. + * testing/InternalSettings.idl: Remove setPagination and setEnableMockPagePopup. + * testing/Internals.cpp: + (WebCore): Use a static to keep track of the MockPagePopupDriver. + (WebCore::Internals::resetToConsistentState): Code from InternalSettings::reset + (WebCore::Internals::setEnableMockPagePopup): Code copied from InternalSettings. + (WebCore::Internals::pagePopupController): Code copied from InternalSettings. + (WebCore::Internals::setPagination): Code copied from InternalSettings. + (WebCore::Internals::configurationForViewport): Code copied from InternalSettings. + * testing/Internals.h: + (Internals): Add setEnableMockPagePopup. + * testing/Internals.idl: Add setEnableMockPagePopup. + +2012-11-26 Andrei Bucur <abucur@adobe.com> + + [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data + https://bugs.webkit.org/show_bug.cgi?id=101332 + + Reviewed by David Hyatt. + + Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though + the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data, + including two new members, the containing Region for the line and a boolean that states if the line was laid out in a Region or not. + The flag is necessary because the sanitize function on LineFragmentationData resets the containing Region to 0 if the Region was removed from + chain (so a value of 0 for the containing Region means two things). The sanitize function should prevent access to an invalid address. + The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region + styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ). + A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate + the task of updating the containing Region to the block. + + Tests: fast/regions/line-containing-region-crash.html + + * rendering/InlineFlowBox.cpp: + (SameSizeAsInlineFlowBox): + * rendering/InlineFlowBox.h: + (WebCore::InlineFlowBox::InlineFlowBox): + (InlineFlowBox): + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::lineWidthForPaginatedLineChanged): + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::layoutRunsAndFloatsInRange): + (WebCore::RenderBlock::linkToEndLineIfNeeded): + (WebCore::RenderBlock::determineStartPosition): + * rendering/RootInlineBox.cpp: + (WebCore::RootInlineBox::RootInlineBox): + (WebCore::RootInlineBox::setContainingRegion): + (WebCore): + (WebCore::RootInlineBox::LineFragmentationData::sanitize): This is an O(1) function that checks if the containig Region is still valid pointer. + * rendering/RootInlineBox.h: + (WebCore): + (WebCore::RootInlineBox::paginationStrut): + (WebCore::RootInlineBox::setPaginationStrut): + (WebCore::RootInlineBox::isFirstAfterPageBreak): + (WebCore::RootInlineBox::setIsFirstAfterPageBreak): + (WebCore::RootInlineBox::paginatedLineWidth): + (WebCore::RootInlineBox::setPaginatedLineWidth): + (RootInlineBox): + (WebCore::RootInlineBox::containingRegion): + (WebCore::RootInlineBox::hasContainingRegion): Use this to determine if the line has a region or not. + (WebCore::RootInlineBox::ensureLineFragmentationData): + (LineFragmentationData): + (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData): + + +2012-11-26 Michelangelo De Simone <michelangelo@webkit.org> + + [CSS Shaders] Add IDL file and bindings for mix function + https://bugs.webkit.org/show_bug.cgi?id=93011 + + Reviewed by Dean Jackson. + + JavaScript bindings have been added for the Custom Filter mix() + function (WebKitCSSMixFunctionValue). As of now, this is only a + placeholder that extends CSSValueList without adding any new + property. + + Test: css3/filters/custom/custom-filter-mix-bindings.html + + * CMakeLists.txt: mix() IDL has been added to the Generator; + DerivedSources have been included. + * DerivedSources.cpp: Ditto. + * DerivedSources.make: Ditto. + * DerivedSources.pri: Ditto. + * GNUmakefile.list.am: Ditto. + * WebCore.gypi: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * bindings/js/JSCSSValueCustom.cpp: + (WebCore::toJS): return a JSC DOM wrapper for WebKitCSSMixFunctionValue. + * bindings/v8/custom/V8CSSValueCustom.cpp: + (WebCore::V8CSSValue::dispatchWrapCustom): Ditto, for V8. + * css/WebKitCSSMixFunctionValue.idl: Added. + +2012-11-26 Simon Fraser <simon.fraser@apple.com> + + Optimize layer updates after scrolling + https://bugs.webkit.org/show_bug.cgi?id=102635 + + Reviewed by Sam Weinig. + + updateLayerPositionsAfterScroll() previously unconditionally cleared clip + rects, and recomputed repaint rects too often. Recomputing both of these + can be very expensive, as they involve tree walks up to the root. + + We can optimize layer updates after document scrolling by only clearing clip + rects, and recomputing repaint rects, if we encounter a fixed- or sticky-position + element. For overflow scroll, we have to clear clip rects and recompute repaint rects. + + * page/FrameView.cpp: + (WebCore::FrameView::repaintFixedElementsAfterScrolling): Call updateLayerPositionsAfterDocumentScroll(). + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::updateLayerPositions): Call clearClipRects() because + updateLayerPosition() no longer does. + (WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll): Version of updateLayerPositionsAfterScroll() + that is for document scrolls. It has no need to push layers to the geometry map. + (WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll): Pushes layers to the geometry map, + and calls updateLayerPositionsAfterScroll() with the IsOverflowScroll flag. + (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Set the HasChangedAncestor flag + if our location changed, and use that as a hint to clear cached rects. Be more conservative + than before about when to clear cached clip rects. + (WebCore::RenderLayer::updateLayerPosition): Move responsibility for calling + clearClipRects() ouf of this function and into callers. + (The one caller outside RenderLayer will be removed via bug 102624). + Return a bool indicating whether our position changed. + (WebCore::RenderLayer::scrollTo): Call updateLayerPositionsAfterOverflowScroll(). + (WebCore::RenderLayer::updateClipRects): Added some #ifdeffed out code that is useful + to verify that cached clips are correct; it's too slow to leave enabled in debug builds. + * rendering/RenderLayer.h: + (WebCore::RenderLayer::setLocation): Change to take a LayoutPoint, rather than separate + x and y. + +2012-11-26 Rafael Brandao <rafael.lobo@openbossa.org> + + [Cairo] Surface should not be destroyed before its usage + https://bugs.webkit.org/show_bug.cgi?id=103273 + + Reviewed by Brent Fulgham. + + * platform/graphics/texmap/TextureMapperGL.cpp: + (WebCore::TextureMapperGL::drawRepaintCounter): There's some calls to get + the bits and stride from surface right after its destructions. It should + be postponed to avoid annoying bugs. + +2012-11-26 Julien Chaffraix <jchaffraix@webkit.org> + + RenderBox::computePercentageLogicalHeight should use containingBlockLogicalWidthForContent + https://bugs.webkit.org/show_bug.cgi?id=103075 + + Reviewed by Ojan Vafai. + + Using the containing block's content logical block was working for most renderers but 2 renderers + were special and were broken in orthogonal writing modes: + - captions as they override containingBlockLogicalWidthForContent to return the table's logical width. + - multi-column renderers as they override availableLogicalWidth to constrain the child to the column logical width. + + By switching to containingBlockLogicalWidthForContent, we got those 2 cases covered. + + Tests: fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html + fast/table/caption-orthogonal-writing-mode-sizing.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::computePercentageLogicalHeight): + Updated the function to track which renderer's containing block we use and call + containingBlockLogicalWidthForContent on it. + +2012-11-26 Abhishek Arya <inferno@chromium.org> + + Crash in Frame::dispatchVisibilityStateChangeEvent. + https://bugs.webkit.org/show_bug.cgi?id=102053 + + Reviewed by Adam Barth. + + Child frame can go away inside webkitvisibilitychange + event handler. Store it in a ref counted vector. + + Test: fast/frames/page-visibility-crash.html + + * page/Frame.cpp: + (WebCore::Frame::dispatchVisibilityStateChangeEvent): + +2012-11-26 Hurnjoo Lee <hurnjoo.lee@samsung.com> + + [Cairo] fillRectWithColor with Color::transparent doesn't perform anything + https://bugs.webkit.org/show_bug.cgi?id=101911 + + Reviewed by Kenneth Rohde Christiansen. + + fillRectWithColor with Color::transparent doesn't perform anything + because fillRectWithColor does early-return if the alpha value of + color is zero. But we expect that fill the rect with transparent color + in case the cairo_operator is CAIRO_OPERATOR_SOURCE. + + Covered by existing tests. + + * platform/graphics/cairo/GraphicsContextCairo.cpp: + (WebCore::fillRectWithColor):Add condition to prevent early-return if + cairo_operator is not CAIRO_OPERATOR_OVER + +2012-11-26 Jae Hyun Park <jae.park@company100.net> + + Remove redundant assignment in TextureMapperLayer::flushCompositingStateSelf + https://bugs.webkit.org/show_bug.cgi?id=103233 + + Reviewed by Noam Rosenthal. + + This patch removes redundant assignment in TextureMapperLayer::flushCompositingStateSelf. + + No new tests, because no change in bahavior. + + * platform/graphics/texmap/TextureMapperLayer.cpp: + (WebCore::TextureMapperLayer::flushCompositingStateSelf): + +2012-11-26 Tamas Czene <tczene@inf.u-szeged.hu> + + OpenCL version of SourceAlpha, SourceGraphics and FETurbulence filter effects + https://bugs.webkit.org/show_bug.cgi?id=99829 + + Reviewed by Zoltan Herczeg. + + This patch contains the OpenCL implementation of SourceAlpha, SourceGraphic, FETurbulence and a simple OpenCL environment. + At the moment only the Qt build system is supported + ~3x speed-up (depending on hardware configuration) + + * Target.pri: + * WebCore.pri: + * platform/graphics/filters/FETurbulence.h: Added platformApplyOpenCL() virtual function. + (FETurbulence): + * platform/graphics/filters/FilterEffect.cpp: Added platform specific apply. + (WebCore::FilterEffect::apply): + (WebCore): + (WebCore::FilterEffect::platformApplyOpenCL): A function to use software computing if a filter is not implemented on OpenCL. It will be deleted after all of the filters are implemented. + (WebCore::FilterEffect::clearResult): + (WebCore::FilterEffect::asImageBuffer): + (WebCore::FilterEffect::openCLImageToImageBuffer): Gets the result of the filter from the OpenCL device and converts it to ImageBuffer type. + (WebCore::FilterEffect::createOpenCLImageResult): Allocates memory on OpenCL device and if it gets an image as a parameter, it uploads the image to the OpenCL device. + (WebCore::FilterEffect::transformResultColorSpace): + * platform/graphics/filters/FilterEffect.h: + (FilterEffect): + (WebCore::FilterEffect::openCLImage): + (WebCore::FilterEffect::setOpenCLImage): + (WebCore::FilterEffect::hasResult): + * platform/graphics/filters/SourceAlpha.h: + (SourceAlpha): + * platform/graphics/filters/SourceGraphic.h: + (SourceGraphic): + * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp: Added. + (WebCore): + (WebCore::FilterContextOpenCL::context): Configures the OpenCL environment. + (WebCore::FilterContextOpenCL::createOpenCLImage): Allocates memory on OpenCL device. + (WebCore::FilterContextOpenCL::openCLTransformColorSpace): OpenCL implementation of transformColorSpace. + (WebCore::FilterContextOpenCL::compileProgram): + * platform/graphics/gpu/opencl/FilterContextOpenCL.h: Added. + (WebCore): + (FilterContextOpenCL): + (WebCore::FilterContextOpenCL::deviceId): + (WebCore::FilterContextOpenCL::deviceContext): + (WebCore::FilterContextOpenCL::commandQueue): + (RunKernel): + (WebCore::FilterContextOpenCL::RunKernel::RunKernel): + (WebCore::FilterContextOpenCL::RunKernel::addArgument): + (WebCore::FilterContextOpenCL::RunKernel::run): + (WebCore::FilterContextOpenCL::kernelByName): Returns the reference of a function in the OpenCL program. + * platform/graphics/gpu/opencl/OpenCLFESourceAlpha.cpp: Added. + (WebCore): + (WebCore::SourceAlpha::platformApplyOpenCL): + * platform/graphics/gpu/opencl/OpenCLFESourceGraphic.cpp: Added. + (WebCore): + (WebCore::SourceGraphic::platformApplyOpenCL): + * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp: Added. + (WebCore): + (WebCore::FilterContextOpenCL::compileFETurbulence): + (WebCore::FilterContextOpenCL::applyFETurbulence): + (WebCore::FETurbulence::platformApplyOpenCL): + * platform/graphics/gpu/opencl/OpenCLHandle.h: Added. + (WebCore): + (OpenCLHandle): + (WebCore::OpenCLHandle::OpenCLHandle): + (WebCore::OpenCLHandle::operator cl_mem): + (WebCore::OpenCLHandle::operator=): + (WebCore::OpenCLHandle::operator UnspecifiedBoolType): + (WebCore::OpenCLHandle::handleAddress): + (WebCore::OpenCLHandle::clear): + +2012-11-26 'Pavel Feldman' <pfeldman@chromium.org> + + Not reviewed: follow up for r135720, fixing node highlight. + + * inspector/InspectorOverlayPage.html: + +2012-11-26 Viatcheslav Ostapenko <v.ostapenko@samsung.com> + + [EFL] Crashes in compositing layout tests with AC on. + https://bugs.webkit.org/show_bug.cgi?id=103144 + + Reviewed by Noam Rosenthal. + + Application could leave texture packing parameters in non-zero state before + texture mapper drawing/texture uploading. To avoid crash texture upload should + specify packing parameters before each texture upload if packing is supported. + + Covered by existing tests. + + * platform/graphics/texmap/TextureMapperGL.cpp: + (WebCore::BitmapTextureGL::updateContentsNoSwizzle): + +2012-11-26 George Staikos <staikos@webkit.org> + + [BlackBerry] Remove a lot of unnecessary and incorrect code causing crashes + https://bugs.webkit.org/show_bug.cgi?id=103199 + + Reviewed by Yong Li. + + This is the first big step to unforking this code. It's very close to + where it needs to be now, but the first step is to get rid of the + crashes by deleting code that isn't needed and makes bad assumptions + about object lifetime. Crashes were found by automation without + test case or reproduction steps. + + * loader/blackberry/CookieJarBlackBerry.cpp: + (WebCore::cookies): delete most code + (WebCore::setCookies): delete most code + +2012-11-26 Thiago Marcos P. Santos <thiago.santos@intel.com> + + Viewport CSS rules should not clamp values like Viewport META + https://bugs.webkit.org/show_bug.cgi?id=103068 + + Reviewed by Kenneth Rohde Christiansen. + + CSS Device Adaption does not clamp the length and zoom values the + same way as the Viewport META. In fact, they are not clamped at all, + but instead, we just make sure that length values are at least 1px. + + Tests: css3/device-adapt/opera/constrain-018.xhtml + css3/device-adapt/opera/constrain-019.xhtml + css3/device-adapt/opera/constrain-023.xhtml + css3/device-adapt/opera/constrain-024.xhtml + + * dom/ViewportArguments.cpp: + (WebCore::ViewportArguments::resolve): + +2012-11-26 Mike West <mkwst@chromium.org> + + Web Inspector: URLs containing '^' are improperly linked in console messages. + https://bugs.webkit.org/show_bug.cgi?id=103248 + + Reviewed by Yury Semikhatsky. + + This patch adds '^' to WebInspector's regex of acceptable characters for + URLs that it knows how to display. + + Test: http/tests/inspector/network/script-as-text-loading-with-caret.html + + * inspector/front-end/ResourceUtils.js: + (WebInspector.linkifyStringAsFragmentWithCustomLinkifier): + +2012-11-26 Yury Semikhatsky <yurys@chromium.org> + + Unreviewed. Fix Qt minimal compilation after r135713. + + * inspector/InspectorController.h: hid file content behind ENABLE(INSPECTOR) + +2012-11-26 Pavel Feldman <pfeldman@chromium.org> + + Web Inspector: object preview does not render node id, className; logs too many functions for jQuery. + https://bugs.webkit.org/show_bug.cgi?id=103222 + + Reviewed by Yury Semikhatsky. + + - Added node class name and id into the preview + - Now keeps track of properties separately from array indexes. + + * inspector/InjectedScriptSource.js: + (.): + * inspector/InspectorOverlayPage.html: + * inspector/front-end/ConsoleMessage.js: + (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview): + (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview): + +2012-11-26 Florin Malita <fmalita@chromium.org> + + RenderSVGResourceContainer does not clear cached data on removal + https://bugs.webkit.org/show_bug.cgi?id=102620 + + Reviewed by Dirk Schulze. + + RenderSVGResourceContainer::removeClient needs to also remove the client from specialized + caches, otherwise we can end up with stale references. + + Test: svg/custom/stale-resource-data-crash.svg + + * rendering/svg/RenderSVGResourceContainer.cpp: + (WebCore::RenderSVGResourceContainer::removeClient): + +2012-11-26 'Pavel Feldman' <pfeldman@chromium.org> + + Not reviewed: rolling out r135714 and r135712 for breaking debug tests. + + * inspector/InjectedScriptSource.js: + (.): + * inspector/InspectorOverlayPage.html: + * inspector/front-end/ConsoleMessage.js: + (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview): + +2012-11-26 Zeno Albisser <zeno@webkit.org> + + [Qt][Win] buildfix after r135706. + https://bugs.webkit.org/show_bug.cgi?id=103249 + + The Windows implementation of GraphicsSurface cannot use + m_size anymore, as this member has been removed. + Further it needs to implement a platformSize() function. + + Reviewed by Kenneth Rohde Christiansen. + + * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: + (WebCore::GraphicsSurfacePrivate::size): + (WebCore::GraphicsSurface::platformPaintToTextureMapper): + (WebCore::GraphicsSurface::platformSize): + (WebCore): + +2012-11-26 Yury Semikhatsky <yurys@chromium.org> + + Web Inspector: unify agents handling in Page and Worker inspector controllers + https://bugs.webkit.org/show_bug.cgi?id=103238 + + Reviewed by Alexander Pavlov. + + Introduced a class that represents a collection of inspector agents and allows + to call methods declared on InspectorAgentBaseInterface for all registered agents. + InspectorController and WorkerInspectorController switched to this class. + + * inspector/InspectorBaseAgent.cpp: + (WebCore::InspectorAgentRegistry::append): + (WebCore): + (WebCore::InspectorAgentRegistry::setFrontend): + (WebCore::InspectorAgentRegistry::clearFrontend): + (WebCore::InspectorAgentRegistry::restore): + (WebCore::InspectorAgentRegistry::registerInDispatcher): + (WebCore::InspectorAgentRegistry::discardAgents): + * inspector/InspectorBaseAgent.h: + (InspectorAgentRegistry): + (WebCore): + * inspector/InspectorController.cpp: + (WebCore::InspectorController::~InspectorController): + (WebCore::InspectorController::connectFrontend): + (WebCore::InspectorController::disconnectFrontend): + (WebCore::InspectorController::reconnectFrontend): + * inspector/InspectorController.h: + (InspectorController): + +2012-11-26 Pavel Feldman <pfeldman@chromium.org> + + Web Inspector: object preview does not render node id, className; logs too many functions for jQuery. + https://bugs.webkit.org/show_bug.cgi?id=103222 + + Reviewed by Yury Semikhatsky. + + - Added node class name and id into the preview + - Now keeps track of properties separately from array indexes. + + * inspector/InjectedScriptSource.js: + (.): + * inspector/InspectorOverlayPage.html: + * inspector/front-end/ConsoleMessage.js: + (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview): + (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview): + +2012-11-26 Andrey Adaikin <aandrey@chromium.org> + + Web Inspector: [WebGL] Save WebGL extensions and restore on replay + https://bugs.webkit.org/show_bug.cgi?id=103141 + + Reviewed by Yury Semikhatsky. + + Save WebGL extensions that were enabled by the application, and restore it before the replay. + Drive-by: remove redundant if- checks in WebGL custom function wrappers (similar to 2D canvas). + + * inspector/InjectedScriptCanvasModuleSource.js: + (.): + +2012-11-26 Allan Sandfeld Jensen <allan.jensen@digia.com> + + HitTestResult should not be a HitTestLocation + https://bugs.webkit.org/show_bug.cgi?id=101590 + + Reviewed by Sam Weinig. + + Change HitTestResult from being a HitTestLocation to having a HitTestLocation. + A result of a test should not be a special case of the location of the test. + + No change in functionality. No new tests. + + * rendering/HitTestResult.cpp: + (WebCore::HitTestResult::HitTestResult): + (WebCore::HitTestResult::operator=): + (WebCore::HitTestResult::isSelected): + (WebCore::HitTestResult::spellingToolTip): + (WebCore::HitTestResult::replacedString): + * rendering/HitTestResult.h: + (WebCore::HitTestResult::isRectBasedTest): + (WebCore::HitTestResult::pointInInnerNodeFrame): + (WebCore::HitTestResult::hitTestLocation): + (HitTestResult): + +2012-11-26 Marja Hölttä <marja@chromium.org> + + Circular reference between Document and MediaQueryMatcher. + https://bugs.webkit.org/show_bug.cgi?id=103242 + + Reviewed by Kenneth Rohde Christiansen. + + It's not enough to clean up listeners in MediaQueryMatcher in ~Document, + since MediaQueryListListener keeps the Document alive. This caused + www.crbug.com/113983. + + No new tests: No visible change in behavior (except that it doesn't leak memory). + + * dom/Document.cpp: + (WebCore::Document::~Document): + (WebCore::Document::detach): + +2012-11-26 Eugene Klyuchnikov <eustas@chromium.org> + + Web Inspector: HeapProfiler: remove snapshotView reference from data-grids. + https://bugs.webkit.org/show_bug.cgi?id=103240 + + Reviewed by Yury Semikhatsky. + + Cleanup: remove redundant dependency. + + * inspector/front-end/HeapSnapshotDataGrids.js: Do not store view ref. + * inspector/front-end/HeapSnapshotGridNodes.js: + Removed unused assignments. + * inspector/front-end/HeapSnapshotView.js: + Do not pass self to data-grids. + +2012-11-26 Zeno Albisser <zeno@webkit.org> + + GraphicsSurface should only store its size in a single place. + https://bugs.webkit.org/show_bug.cgi?id=103143 + + Reviewed by Kenneth Rohde Christiansen. + + * platform/graphics/qt/GraphicsContext3DQt.cpp: + (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate): + Cosmetics only. + * platform/graphics/surfaces/GraphicsSurface.cpp: + (WebCore::GraphicsSurface::size): + Return the size as received from the platform abstraction. + (WebCore): + (WebCore::GraphicsSurface::GraphicsSurface): + * platform/graphics/surfaces/GraphicsSurface.h: + (GraphicsSurface): + Remove data member m_size. + * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp: + (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate): + Always take the size of the GraphicsSurface as an argument. + (WebCore::GraphicsSurfacePrivate::size): + (GraphicsSurfacePrivate): + (WebCore::GraphicsSurface::platformPaintToTextureMapper): + Retrieve the size from GraphicsSurfacePrivate where necessary. + (WebCore::GraphicsSurface::platformSize): + (WebCore): + (WebCore::GraphicsSurface::platformImport): + * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: + (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate): + Add a constructor that takes a window id as an argument + for the receiving side of the GraphcisSurface. + The GraphicsSurface can then determine its dimensions + from the provided XWindow. + (WebCore::GraphicsSurfacePrivate::createPixmap): + (WebCore::GraphicsSurfacePrivate::size): + Query the size of the GraphicsSurface backing from X. + (WebCore::GraphicsSurface::platformPaintToTextureMapper): + Retrieve the size from GraphicsSurfacePrivate where necessary. + (WebCore::GraphicsSurface::platformSize): + (WebCore): + (WebCore::GraphicsSurface::platformImport): + +2012-11-26 Thiago Santos <thiago.sousa.santos@collabora.com> + + [GStreamer] Floating reference handling fix + https://bugs.webkit.org/show_bug.cgi?id=101349 + + Reviewed by Philippe Normand. + + GStreamer 0.10 and 1.0 differ when creating GstGhostPad from pad + templates, the 1.0 doesn't take ownership on the passed + GstPadTemplate, while 0.10 does. So this patch adds a + GStreamerVersioning function to handle this different approach + transparently in Webkit gstreamer elements. + + Existing media tests cover this change. + + * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp: + (webkit_web_audio_src_init): + * platform/graphics/gstreamer/GStreamerVersioning.cpp: + (webkitGstGhostPadFromStaticTemplate): + * platform/graphics/gstreamer/GStreamerVersioning.h: + * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: + (webkit_web_src_init): + +2012-11-26 Kentaro Hara <haraken@chromium.org> + + [V8] Remove WorkerContextExecutionProxy + https://bugs.webkit.org/show_bug.cgi?id=103210 + + Reviewed by Adam Barth. + + This patch moves all methods in WorkerContextExecutionProxy + to WorkerScriptController. + + Due to the dependency between WorkerContextExecutionProxy's methods, + it is a bit difficult to split this patch into pieces. + This patch simply moves methods without changing their logic. + Also this patch doesn't remove empty WorkerContextExecutionProxy.{h,cpp} + to keep the diff sane. I will address these issues in a follow-up patch. + + Tests: fast/worker/* + + * bindings/v8/ScriptState.cpp: + (WebCore::scriptStateFromWorkerContext): + * bindings/v8/V8Binding.cpp: + (WebCore::toV8Context): + * bindings/v8/V8WorkerContextEventListener.cpp: + (WebCore::V8WorkerContextEventListener::handleEvent): + * bindings/v8/WorkerContextExecutionProxy.cpp: + * bindings/v8/WorkerContextExecutionProxy.h: + * bindings/v8/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::WorkerScriptController): + (WebCore::WorkerScriptController::~WorkerScriptController): + (WebCore::WorkerScriptController::dispose): + (WebCore): + (WebCore::WorkerScriptController::initializeIfNeeded): + (WebCore::WorkerScriptController::evaluate): + (WebCore::WorkerScriptController::setEvalAllowed): + (WebCore::WorkerScriptController::disableEval): + * bindings/v8/WorkerScriptController.h: + (WebCore): + (WebCore::WorkerContextExecutionState::WorkerContextExecutionState): + (WorkerContextExecutionState): + (WorkerScriptController): + (WebCore::WorkerScriptController::context): + * bindings/v8/WorkerScriptDebugServer.cpp: + (WebCore::WorkerScriptDebugServer::addListener): + * bindings/v8/custom/V8WorkerContextCustom.cpp: + (WebCore::SetTimeoutOrInterval): + (WebCore::toV8): + 2012-11-26 Hajime Morrita <morrita@google.com> [Refactoring] Some Node::isDescendant calls can be replaced with Node::contains() @@ -5378,7 +10052,7 @@ Unreviewed. Fix Chromium Win compilation after r135255. https://bugs.webkit.org/show_bug.cgi?id=97803 - * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which + * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which was deleted in the aforementioned change. 2012-11-19 Kentaro Hara <haraken@chromium.org> |
