⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Dec 7, 2008:

10:58 PM Changeset in webkit [39090] by Simon Fraser
  • 5 edits
    2 adds in trunk

2008-12-07 Simon Fraser <Simon Fraser>

Reviewed by Dan Bernstein

https://bugs.webkit.org/show_bug.cgi?id=22594

Fix issues which break reading inline style for -webkit-transition
and -webkit-transform-origin.

Test: fast/css/transform-inline-style.html

  • css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::getPropertyValue): Add cases for CSSPropertyWebkitTransformOrigin and CSSPropertyWebkitTransition so that these shorthand properties are returned correctly.
  • css/CSSParser.cpp: (WebCore::CSSParser::parseAnimationProperty): Create CSSPrimitiveValues with the correct CSSValueAll and CSSValueNone identifiers, not the RenderStyle-level cAnimateAll, cAnimateNone.
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::mapAnimationProperty): Special-case CSSValueAll and CSSValueNone values to set cAnimateAll and cAnimateNone transition properties.
8:16 PM Changeset in webkit [39089] by oliver@apple.com
  • 2 edits in trunk/JavaScriptCore

Fix non-WREC builds

5:29 PM Changeset in webkit [39088] by Antti Koivisto
  • 3 edits in trunk/WebCore

2008-12-07 Antti Koivisto <Antti Koivisto>

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=22717
Make CSS values use less memory


Share CSSPrimitiveValue objects for commonly used values including

  • idents
  • colors
  • small integers


This reduces the amount CSSPrimitiveValue instances by > 80%.

  • css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::createIdentifier): (WebCore::CSSPrimitiveValue::createColor): (WebCore::CSSPrimitiveValue::create):
  • css/CSSPrimitiveValue.h: (WebCore::CSSPrimitiveValue::create):
5:28 PM Changeset in webkit [39087] by oliver@apple.com
  • 4 edits in trunk/JavaScriptCore

Put ENABLE(ASSEMBLER) guards around use of ExecutableAllocator in global data
Correct Qt and Gtk project files

5:27 PM Changeset in webkit [39086] by Antti Koivisto
  • 8 edits in trunk/WebCore

2008-12-07 Antti Koivisto <Antti Koivisto>

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=22717
Make CSS values use less memory

Get CSSValues off from the common StyleBase base class. They don't
need a parent pointer or anything else there and there is no real
reason to have them in same data structures with other CSSOM objects.


Disabled (instead of refactoring around the lack of common base) the ability
to have style declaration blocks as CSS variable values. They don't exist in
the spec so I wasn't sure if they have future or not. It would not be hard to
get them back. CSS variables are in any case an experimental feature and
not enabled by default.

  • css/CSSInitialValue.h: (WebCore::CSSInitialValue::createExplicit): (WebCore::CSSInitialValue::createImplicit):
  • css/CSSParser.cpp: (WebCore::CSSParser::addVariableDeclarationBlock):
  • css/CSSParser.h:
  • css/CSSValue.h: (WebCore::CSSValue::~CSSValue): (WebCore::CSSValue::parserValue):
  • css/CSSVariablesDeclaration.cpp: (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration): (WebCore::CSSVariablesDeclaration::getVariableValue): (WebCore::CSSVariablesDeclaration::removeVariable): (WebCore::CSSVariablesDeclaration::addParsedVariable): (WebCore::CSSVariablesDeclaration::getParsedVariable): (WebCore::CSSVariablesDeclaration::getParsedVariableDeclarationBlock):
  • css/CSSVariablesDeclaration.h: (WebCore::CSSVariablesDeclaration::create):
  • css/StyleBase.h:
4:39 PM Changeset in webkit [39085] by oliver@apple.com
  • 3 edits in trunk/JavaScriptCore

Add new files to other projects.

Reviewed by NOBODY (Build fix).

4:35 PM Changeset in webkit [39084] by oliver@apple.com
  • 2 edits
    1 move in trunk/JavaScriptCore

Rename ExecutableAllocatorMMAP to the more sensible ExecutableAllocatorPosix

Rubber stamped by Mark Rowe.

3:55 PM Changeset in webkit [39083] by oliver@apple.com
  • 27 edits
    4 adds in trunk/JavaScriptCore

<rdar://problem/6309878> Need more granular control over allocation of executable memory (21783)
<https://bugs.webkit.org/show_bug.cgi?id=21783>

Reviewed by Cameron Zwarich and Sam Weinig

Add a new allocator for use by the JIT that provides executable pages, so
we can get rid of the current hack that makes the entire heap executable.

1-2% progression on SunSpider-v8, 1% on SunSpider. Reduces memory usage as well!

11:16 AM Changeset in webkit [39082] by zecke@webkit.org
  • 3 edits
    2 adds in trunk

[Gtk+] Use glib's unit test facilities to test the WebKit/Gtk+ API

https://bugs.webkit.org/show_bug.cgi?id=22491

Add the skeleton to WebKit/gtk/tests and integrate that into the
buildsystem. Testing support was added in glib 2.16. For versions
using glib < 2.16 we compile an empty application.

10:41 AM Changeset in webkit [39081] by zecke@webkit.org
  • 2 edits in trunk

[GTK] Define ENABLE_JIT_OPTIMIZE_CALL, ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS, ENABLE_JIT_OPTIMIZE_ARITHMETIC

When building the jit on i*86 also enable the above optimizations.

1:23 AM Changeset in webkit [39080] by krit@webkit.org
  • 3 edits
    3 adds in trunk

2008-12-07 Dirk Schulze <krit@webkit.org>

Reviewed by Oliver Hunt.

WebCore:

Add gradient and pattern support for strokeRect on canvas/Cg.

Canvas strokeRect() doesn't support gradients
https://bugs.webkit.org/show_bug.cgi?id=19790

Test: fast/canvas/canvas-strokeRect.html

  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::strokeRect):

LayoutTests:

Tests strokeRect with patterns and gradients.

  • fast/canvas/canvas-strokeRect-expected.txt: Added.
  • fast/canvas/canvas-strokeRect.html: Added.
  • fast/canvas/resources/canvas-strokeRect.js: Added.

Dec 6, 2008:

11:48 PM Changeset in webkit [39079] by krit@webkit.org
  • 9 edits
    3 adds in trunk

2008-12-06 Dirk Schulze <krit@webkit.org>

Reviewed by Oliver Hunt.

WebCore:

Add support for setTransform() in canvas.

<canvas> lacks transform() and setTransform()
https://bugs.webkit.org/show_bug.cgi?id=16604

Test: fast/canvas/canvas-setTransform.html

  • html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::State::State): (WebCore::CanvasRenderingContext2D::setStrokeStyle): (WebCore::CanvasRenderingContext2D::setFillStyle): (WebCore::CanvasRenderingContext2D::scale): (WebCore::CanvasRenderingContext2D::rotate): (WebCore::CanvasRenderingContext2D::translate): (WebCore::CanvasRenderingContext2D::transform): (WebCore::CanvasRenderingContext2D::setTransform): (WebCore::CanvasRenderingContext2D::beginPath): (WebCore::CanvasRenderingContext2D::closePath): (WebCore::CanvasRenderingContext2D::moveTo): (WebCore::CanvasRenderingContext2D::lineTo): (WebCore::CanvasRenderingContext2D::quadraticCurveTo): (WebCore::CanvasRenderingContext2D::bezierCurveTo): (WebCore::CanvasRenderingContext2D::arcTo): (WebCore::CanvasRenderingContext2D::arc): (WebCore::CanvasRenderingContext2D::rect): (WebCore::CanvasRenderingContext2D::fill): (WebCore::CanvasRenderingContext2D::stroke): (WebCore::CanvasRenderingContext2D::clip): (WebCore::CanvasRenderingContext2D::isPointInPath): (WebCore::CanvasRenderingContext2D::clearRect): (WebCore::CanvasRenderingContext2D::fillRect): (WebCore::CanvasRenderingContext2D::strokeRect): (WebCore::CanvasRenderingContext2D::drawImage): (WebCore::CanvasRenderingContext2D::drawImageFromRect): (WebCore::CanvasRenderingContext2D::willDraw): (WebCore::CanvasRenderingContext2D::drawTextInternal):
  • html/CanvasRenderingContext2D.h:
  • html/CanvasRenderingContext2D.idl:
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::baseTransform):
  • html/HTMLCanvasElement.h:
  • platform/graphics/ImageBuffer.h: (WebCore::ImageBuffer::baseTransform):

LayoutTests:

Added tests for canvas's setTransform() and updated an existing one.

  • fast/canvas/canvas-setTransform-expected.txt: Added.
  • fast/canvas/canvas-setTransform.html: Added.
  • fast/canvas/resources/canvas-setTransform.js: Added.
  • fast/dom/Window/window-properties-expected.txt:
10:15 PM Changeset in webkit [39078] by Simon Fraser
  • 3 edits
    4 adds in trunk

2008-12-06 Simon Fraser <Simon Fraser>

Reviewed by Antti Koivisto, Dan Bernstein

https://bugs.webkit.org/show_bug.cgi?id=22088

Fix logic related to repainting when transform changes:
If an object has a layer, and the transform changes, then we need
to do a repaintIncludingDescendants(), not just a repaint.

Test: fast/repaint/transform-repaint-descendants.html

  • rendering/RenderObject.cpp: (WebCore::RenderObject::styleWillChange):
8:20 PM Changeset in webkit [39077] by weinig@apple.com
  • 2 edits in trunk/JavaScriptCore

2008-12-06 Sam Weinig <sam@webkit.org>

Fix the Gtk build.

  • jit/JITPropertyAccess.cpp: (JSC::JIT::compileGetByIdHotPath): (JSC::JIT::compilePutByIdHotPath):
6:05 PM Changeset in webkit [39076] by Antti Koivisto
  • 2 edits in trunk/WebCore

2008-12-06 Antti Koivisto <Antti Koivisto>

Reviewed by Darin Adler.

Also copy m_implicit field. Darin wanted this change commited separately.

  • css/CSSProperty.h: (WebCore::CSSProperty::operator=):
5:40 PM Changeset in webkit [39075] by Antti Koivisto
  • 14 edits in trunk

WebCore:

2008-12-06 Antti Koivisto <Antti Koivisto>

Reviewed by Darin Adler.

https://bugs.webkit.org/show_bug.cgi?id=22379
Make CSSOM use less memory


Use vector instead of a double linked list for properties in CSSMutableStyleDeclaration.


Taught setter functions to use existing slots to avoid memory moves, plus some
other optimizations.

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSMutableStyleDeclaration.cpp: (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration): (WebCore::CSSMutableStyleDeclaration::operator=): (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue): (WebCore::CSSMutableStyleDeclaration::removeShorthandProperty): (WebCore::CSSMutableStyleDeclaration::removeProperty): (WebCore::CSSMutableStyleDeclaration::getPropertyPriority): (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand): (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit): (WebCore::CSSMutableStyleDeclaration::setProperty): (WebCore::CSSMutableStyleDeclaration::setPropertyInternal): (WebCore::CSSMutableStyleDeclaration::setStringProperty): (WebCore::CSSMutableStyleDeclaration::setImageProperty): (WebCore::CSSMutableStyleDeclaration::parseDeclaration): (WebCore::CSSMutableStyleDeclaration::addParsedProperties): (WebCore::CSSMutableStyleDeclaration::addParsedProperty): (WebCore::CSSMutableStyleDeclaration::setLengthProperty): (WebCore::CSSMutableStyleDeclaration::length): (WebCore::CSSMutableStyleDeclaration::item): (WebCore::CSSMutableStyleDeclaration::cssText): (WebCore::CSSMutableStyleDeclaration::setCssText): (WebCore::CSSMutableStyleDeclaration::merge): (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet): (WebCore::CSSMutableStyleDeclaration::copy): (WebCore::CSSMutableStyleDeclaration::findPropertyWithId):
  • css/CSSMutableStyleDeclaration.h: (WebCore::CSSMutableStyleDeclarationConstIterator::operator*): (WebCore::CSSMutableStyleDeclarationConstIterator::operator->): (WebCore::CSSMutableStyleDeclarationConstIterator::operator!=): (WebCore::CSSMutableStyleDeclarationConstIterator::operator==): (WebCore::CSSMutableStyleDeclaration::create): (WebCore::CSSMutableStyleDeclaration::begin): (WebCore::CSSMutableStyleDeclaration::end): (WebCore::CSSMutableStyleDeclarationConstIterator::CSSMutableStyleDeclarationConstIterator): (WebCore::CSSMutableStyleDeclarationConstIterator::~CSSMutableStyleDeclarationConstIterator): (WebCore::CSSMutableStyleDeclarationConstIterator::operator=): (WebCore::CSSMutableStyleDeclarationConstIterator::operator++): (WebCore::CSSMutableStyleDeclarationConstIterator::operator--):
  • css/CSSProperty.h: (WTF::):
  • css/CSSStyleDeclaration.cpp: (WebCore::CSSStyleDeclaration::diff): (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::resolveVariablesForDeclaration): (WebCore::CSSStyleSelector::keyframeStylesForAnimation): (WebCore::CSSStyleSelector::applyDeclarations):
  • dom/EventTarget.h:
  • editing/ApplyStyleCommand.cpp: (WebCore::StyleChange::init): (WebCore::ApplyStyleCommand::isHTMLStyleNode): (WebCore::ApplyStyleCommand::removeHTMLFontStyle): (WebCore::ApplyStyleCommand::removeCSSStyle):
  • editing/Editor.cpp: (WebCore::Editor::selectionStartHasStyle): (WebCore::updateState):
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::handleStyleSpans):
  • editing/markup.cpp: (WebCore::appendStartMarkup):

LayoutTests:

2008-12-06 Antti Koivisto <Antti Koivisto>

Reusing property slots changed property ordering in this text.

  • editing/pasteboard/5780697-2-expected.txt:
5:07 PM Changeset in webkit [39074] by Simon Fraser
  • 3 edits in trunk/LayoutTests

2008-12-06 Simon Fraser <Simon Fraser>

Update expected image now that the caret renders in transformed
content.

https://bugs.webkit.org/show_bug.cgi?id=15671

  • platform/mac/fast/forms/search-transformed-expected.checksum:
  • platform/mac/fast/forms/search-transformed-expected.png:
5:03 PM Changeset in webkit [39073] by Simon Fraser
  • 3 edits
    4 adds in trunk

2008-12-06 Simon Fraser <Simon Fraser>

Reviewed by Dan Bernstein

https://bugs.webkit.org/show_bug.cgi?id=15739

When painting the selection on a replaced element, paint
using local coordinates so that the selection is correctly
painted for transformed elements.

Test: fast/replaced/selection-rect-transform.html

  • rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::paint):
2:31 PM Changeset in webkit [39072] by weinig@apple.com
  • 3 edits in trunk/JavaScriptCore

2008-12-06 Sam Weinig <sam@webkit.org>

Reviewed by Cameron Zwarich,

Move CodeBlock constructor into the .cpp file.

Sunspider reports a .7% progression, but I can only assume this
is noise.

  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::CodeBlock):
  • bytecode/CodeBlock.h:
2:19 PM Changeset in webkit [39071] by weinig@apple.com
  • 8 edits
    2 copies in trunk/JavaScriptCore

2008-12-06 Sam Weinig <sam@webkit.org>

Reviewed by Cameron Zwarich.

Split JumpTable code into its own file.

  • GNUmakefile.am:
  • JavaScriptCore.pri:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • JavaScriptCoreSources.bkl:
  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:
  • bytecode/JumpTable.cpp: Copied from bytecode/CodeBlock.cpp.
  • bytecode/JumpTable.h: Copied from bytecode/CodeBlock.h.
2:01 PM Changeset in webkit [39070] by weinig@apple.com
  • 19 edits in trunk/JavaScriptCore

2008-12-05 Sam Weinig <sam@webkit.org>

Reviewed by Cameron Zwarich.

Fix for https://bugs.webkit.org/show_bug.cgi?id=22715
Encapsulate more CodeBlock members in preparation
of moving some of them to a rare data structure.

  • bytecode/CodeBlock.cpp: (JSC::locationForOffset): (JSC::printConditionalJump): (JSC::printGetByIdOp): (JSC::printPutByIdOp): (JSC::CodeBlock::printStructure): (JSC::CodeBlock::printStructures): (JSC::CodeBlock::dump): (JSC::CodeBlock::~CodeBlock): (JSC::CodeBlock::unlinkCallers): (JSC::CodeBlock::derefStructures): (JSC::CodeBlock::refStructures): (JSC::CodeBlock::mark): (JSC::CodeBlock::getHandlerForVPC): (JSC::CodeBlock::nativeExceptionCodeForHandlerVPC): (JSC::CodeBlock::lineNumberForVPC): (JSC::CodeBlock::expressionRangeForVPC): (JSC::CodeBlock::shrinkToFit):
  • bytecode/CodeBlock.h: (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::addCaller): (JSC::CodeBlock::removeCaller): (JSC::CodeBlock::isKnownNotImmediate): (JSC::CodeBlock::isConstantRegisterIndex): (JSC::CodeBlock::getConstant): (JSC::CodeBlock::isTemporaryRegisterIndex): (JSC::CodeBlock::getStubInfo): (JSC::CodeBlock::getCallLinkInfo): (JSC::CodeBlock::instructions): (JSC::CodeBlock::setJITCode): (JSC::CodeBlock::jitCode): (JSC::CodeBlock::ownerNode): (JSC::CodeBlock::setGlobalData): (JSC::CodeBlock::setThisRegister): (JSC::CodeBlock::thisRegister): (JSC::CodeBlock::setNeedsFullScopeChain): (JSC::CodeBlock::needsFullScopeChain): (JSC::CodeBlock::setUsesEval): (JSC::CodeBlock::usesEval): (JSC::CodeBlock::setUsesArguments): (JSC::CodeBlock::usesArguments): (JSC::CodeBlock::codeType): (JSC::CodeBlock::source): (JSC::CodeBlock::sourceOffset): (JSC::CodeBlock::addGlobalResolveInstruction): (JSC::CodeBlock::numberOfPropertyAccessInstructions): (JSC::CodeBlock::addPropertyAccessInstruction): (JSC::CodeBlock::propertyAccessInstruction): (JSC::CodeBlock::numberOfCallLinkInfos): (JSC::CodeBlock::addCallLinkInfo): (JSC::CodeBlock::callLinkInfo): (JSC::CodeBlock::numberOfJumpTargets): (JSC::CodeBlock::addJumpTarget): (JSC::CodeBlock::jumpTarget): (JSC::CodeBlock::lastJumpTarget): (JSC::CodeBlock::numberOfExceptionHandlers): (JSC::CodeBlock::addExceptionHandler): (JSC::CodeBlock::exceptionHandler): (JSC::CodeBlock::addExpressionInfo): (JSC::CodeBlock::numberOfLineInfos): (JSC::CodeBlock::addLineInfo): (JSC::CodeBlock::lastLineInfo): (JSC::CodeBlock::jitReturnAddressVPCMap): (JSC::CodeBlock::numberOfIdentifiers): (JSC::CodeBlock::addIdentifier): (JSC::CodeBlock::identifier): (JSC::CodeBlock::numberOfConstantRegisters): (JSC::CodeBlock::addConstantRegister): (JSC::CodeBlock::constantRegister): (JSC::CodeBlock::addFunction): (JSC::CodeBlock::function): (JSC::CodeBlock::addFunctionExpression): (JSC::CodeBlock::functionExpression): (JSC::CodeBlock::addUnexpectedConstant): (JSC::CodeBlock::unexpectedConstant): (JSC::CodeBlock::addRegExp): (JSC::CodeBlock::regexp): (JSC::CodeBlock::symbolTable): (JSC::CodeBlock::evalCodeCache): New inline setters/getters.

(JSC::ProgramCodeBlock::ProgramCodeBlock):
(JSC::ProgramCodeBlock::~ProgramCodeBlock):
(JSC::ProgramCodeBlock::clearGlobalObject):

  • bytecode/SamplingTool.cpp: (JSC::ScopeSampleRecord::sample): (JSC::SamplingTool::dump):
  • bytecompiler/BytecodeGenerator.cpp:
  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/Label.h:
  • interpreter/CallFrame.cpp:
  • interpreter/Interpreter.cpp:
  • jit/JIT.cpp:
  • jit/JITCall.cpp:
  • jit/JITInlineMethods.h:
  • jit/JITPropertyAccess.cpp:
  • parser/Nodes.cpp:
  • runtime/Arguments.h:
  • runtime/ExceptionHelpers.cpp:
  • runtime/JSActivation.cpp:
  • runtime/JSActivation.h:
  • runtime/JSGlobalObject.cpp: Change direct access to use new getter/setters.
11:58 AM Changeset in webkit [39069] by Simon Fraser
  • 37 edits
    4 adds in trunk

2008-12-06 Simon Fraser <Simon Fraser>

Reviewed by Dave Hyatt

https://bugs.webkit.org/show_bug.cgi?id=15671

Fix caret rendering to behave correctly with transforms:

  • Rename caretRect() methods to localCaretRect() and absoluteCaretBounds() as appropriate
  • Fix localCaretRect() methods to return a rect in the appropriate coordinates.
  • Pass tx, ty down through the paintCaret() methods, after fixing them up to account for differences between contents coords, and renderer-local coords (via RenderBlock::offsetForContents()).
  • Remove m_caretPositionOnLayout from SelectionController, and instead call invalidateSelection() from RenderLayer::scrollToOffset(), because we can no longer assume simple x/y offsets from scrolling with transforms.
  • Move the logic to compute which RenderObject actually paints the caret into SelectionController::caretRenderer(), rather than having it in RenderBlock.
  • SelectionController now computes and caches a local caret rect. For invalidation, it computes the absolute bounds of that (possibly transformed) local rect. The local rect is computed in the coordinate system of the RenderObject that will paint the caret (this may require offsetting from the actual renderer at the start of the selection).
  • Fix LayoutState(RenderObject* root) to take transforms into account
  • Make offsetFromContainer() a virtual method on RenderObject, and implement the RenderObject version. It's used to map from selection start renderer to caret renderer.

Test: fast/transforms/transformed-caret.html

9:20 AM Changeset in webkit [39068] by ddkilzer@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

Added reference to bugs.webkit.org bug.

9:15 AM Changeset in webkit [39067] by ddkilzer@apple.com
  • 2 edits in trunk/WebCore

BUILD FIX for r39065: Forgot parentheses after "document".

Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives
<https://bugs.webkit.org/show_bug.cgi?id=22666>

  • svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Changed document to document().
8:04 AM Changeset in webkit [39066] by ap@webkit.org
  • 2 edits in trunk/WebCore

2008-12-06 Dmitry Titov <dimich@chromium.org>

Reviewed by Alexey Proskuryakov.

https://bugs.webkit.org/show_bug.cgi?id=22710
Memory leak due to circular reference Document->DOMTimer->ScheduledAction->[JS objects]->Document

  • bindings/js/DOMTimer.cpp: (WebCore::DOMTimer::stop): Delete ScheduledAction, which contains a protected object.
3:54 AM Changeset in webkit [39065] by ddkilzer@apple.com
  • 43 edits in trunk

Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives

<https://bugs.webkit.org/show_bug.cgi?id=22666>

Reviewed by Darin Adler.

WebCore:

When creating a webarchive from WebCore::LegacyWebArchive::create(),
HashSet<String>, Vector<KURL> and Vector<String> were all used to
store a list of URLs for resources found in the document. Instead
use a single ListHashSet<KURL> to store the list and resolve the
relative URLs as they're added. We use a new inline method called
WebCore::addSubresourceURL() to add KURL objects to the ListHashSet
to prevent "null" KURL objects from crashing in the KURL hashing
function.

  • WebCore.base.exp: Changed export of WebCore::Node::getSubresourceURLs() to take a ListHashSet<KURL> argument instead of a Vector<KURL>.
  • WebCore.xcodeproj/project.pbxproj: Marked KURLHash.h as a private header for use in WebKit.
  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Renamed from addSubresourceURLStrings(). Changed to use ListHashSet<KURL> instead of HashSet<String>. Cleaned up code.
  • css/CSSStyleSheet.h: (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Ditto.
  • css/StyleSheet.h: (WebCore::StyleSheet::addSubresourceStyleURLs): Ditto.
  • dom/Node.cpp: (WebCore::Node::getSubresourceURLs): Changed to use ListHashSet<KURL> instead of Vector<KURL>. Cleaned up code.
  • dom/Node.h: (WebCore::Node::getSubresourceURLs): Ditto. (WebCore::Node::addSubresourceAttributeURLs): Renamed from getSubresourceAttributeStrings(). Changed to use ListHashSet<KURL> instead of Vector<String>. (WebCore::addSubresourceURL): Added. Safely adds new KURL objects to a ListHashSet<KURL> object. A "null" KURL object will cause the hash function to crash since it contains a null StringImpl. Used in Node::addSubresourceAttributeURLs() and addSubresourceStyleURLs() in the style subsystem.
  • dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::addSubresourceAttributeURLs): Renamed from getSubresourceAttributeStrings(). Changed to use ListHashSet<KURL> instead of Vector<String>. Use WebCore::addSubresourceURL() to add new KURL objects.
  • dom/ProcessingInstruction.h: Ditto.
  • html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLBodyElement.h: Ditto.
  • html/HTMLEmbedElement.cpp: (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLEmbedElement.h: Ditto.
  • html/HTMLImageElement.cpp: (WebCore::HTMLImageElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLImageElement.h: Ditto.
  • html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLInputElement.h: Ditto.
  • html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLLinkElement.h: Ditto.
  • html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLObjectElement.h: Ditto.
  • html/HTMLParamElement.cpp: (WebCore::HTMLParamElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLParamElement.h: Ditto.
  • html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLScriptElement.h: Ditto.
  • html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLStyleElement.h: Ditto.
  • html/HTMLTableCellElement.cpp: (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLTableCellElement.h: Ditto.
  • html/HTMLTableElement.cpp: (WebCore::HTMLTableElement::addSubresourceAttributeURLs): Ditto.
  • html/HTMLTableElement.h: Ditto.
  • loader/archive/cf/LegacyWebArchive.cpp: (WebCore::LegacyWebArchive::create): Changed from using HashSet<String> to ListHashSet<KURL> for tracking unique subresources. Changed from using Vector<KURL> to ListHashSet<KURL> when calling WebCore::Node::getSubresourceURLs(). Cleaned up code.
  • svg/SVGCursorElement.cpp: (WebCore::SVGCursorElement::addSubresourceAttributeURLs): Renamed from getSubresourceAttributeStrings(). Changed to use ListHashSet<KURL> instead of Vector<String>. Use WebCore::addSubresourceURL() to add new KURL objects.
  • svg/SVGCursorElement.h: Ditto.
  • svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Ditto.
  • svg/SVGFEImageElement.h: Ditto.
  • svg/SVGImageElement.cpp: (WebCore::SVGImageElement::addSubresourceAttributeURLs): Ditto.
  • svg/SVGImageElement.h: Ditto.
  • svg/SVGScriptElement.cpp: (WebCore::SVGScriptElement::addSubresourceAttributeURLs): Ditto.
  • svg/SVGScriptElement.h: Ditto.

WebKit/mac:

  • DOM/WebDOMOperations.mm: (-[DOMNode _subresourceURLs]): Changed from using Vector<KURL> to ListHashSet<KURL> when calling WebCore::Node::getSubresourceURLs().
3:51 AM Changeset in webkit [39064] by ddkilzer@apple.com
  • 1 edit in trunk/WebCore/ChangeLog

Fixed ChangeLog date.

Note: See TracTimeline for information about the timeline view.