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

Timeline



Dec 25, 2007:

11:25 PM Changeset in webkit [28990] by weinig@apple.com
  • 9 edits in trunk/WebCore

Reviewed by Eric Seidel.

Clean up the files relating to NodeLists.

  • dom/ChildNodeList.cpp: (WebCore::ChildNodeList::ChildNodeList): (WebCore::ChildNodeList::length): (WebCore::ChildNodeList::item): (WebCore::ChildNodeList::nodeMatches):
  • dom/ChildNodeList.h:
  • dom/DynamicNodeList.cpp: (WebCore::DynamicNodeList::itemForwardsFromCurrent): (WebCore::DynamicNodeList::itemBackwardsFromCurrent): (WebCore::DynamicNodeList::itemWithName):
  • dom/DynamicNodeList.h: (WebCore::DynamicNodeList::needsNotifications):
  • dom/NameNodeList.cpp: (WebCore::NameNodeList::NameNodeList): (WebCore::NameNodeList::rootNodeAttributeChanged): (WebCore::NameNodeList::nodeMatches):
  • dom/NameNodeList.h:
  • dom/NodeList.h:
  • dom/SelectorNodeList.h:
10:44 PM Changeset in webkit [28989] by weinig@apple.com
  • 4 edits in trunk/WebCore

Fix non-mac builds.

  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCoreSources.bkl:
10:33 PM Changeset in webkit [28988] by weinig@apple.com
  • 3 edits
    2 copies in trunk/WebCore

Rubber stamped by Eric Seidel.

Move TagNodeList into its own file.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Node.cpp:
  • dom/TagNodeList.cpp: Copied from dom/Node.cpp. (WebCore::TagNodeList::TagNodeList):
  • dom/TagNodeList.h: Copied from dom/Node.cpp.
10:18 PM Changeset in webkit [28987] by weinig@apple.com
  • 8 edits in trunk/WebCore

Reviewed by Eric Seidel.

Simplify the NodeList architecture.

  • Rename recursiveItem() to item(), since it is not recursive.
  • Make recursiveLength() iterative and rename to length().
  • Remove now unneeded overrides of item() and length() that used to call the recursive variants.
  • dom/ClassNodeList.cpp:
  • dom/ClassNodeList.h:
  • dom/DynamicNodeList.cpp: (WebCore::DynamicNodeList::length): (WebCore::DynamicNodeList::item): (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation into the .cpp file since virtual methods can't be inlined.
  • dom/DynamicNodeList.h:
  • dom/NameNodeList.cpp:
  • dom/NameNodeList.h:
  • dom/Node.cpp:
6:55 PM Changeset in webkit [28986] by alp@webkit.org
  • 4 edits in trunk/WebCore

2007-12-25 Alp Toker <alp@atoker.com>

More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
r28981.

  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCoreSources.bkl:
6:33 PM Changeset in webkit [28985] by alp@webkit.org
  • 2 edits in trunk/WebCore

2007-12-25 Alp Toker <alp@atoker.com>

Win build fix for breakage introduced in r28981.

  • WebCore.vcproj/WebCore.vcproj:
6:30 PM Changeset in webkit [28984] by alp@webkit.org
  • 2 edits in trunk/WebCore

2007-12-25 Alp Toker <alp@atoker.com>

Wx build fix for breakage introduced in r28981.

  • WebCoreSources.bkl:
6:28 PM Changeset in webkit [28983] by alp@webkit.org
  • 2 edits in trunk/WebCore

2007-12-25 Alp Toker <alp@atoker.com>

GTK+/Qt build fix for breakage introduced in r28981.

  • WebCore.pro:
5:05 PM Changeset in webkit [28982] by mitz@apple.com
  • 2 edits in trunk/WebKit/mac

Reviewed by Oliver Hunt.

  • fix an assertion failure when pressing the num lock key
  • WebView/WebHTMLView.mm: (-[WebHTMLView flagsChanged:]): Avoid passing key code 10 down to WebCore.
4:46 PM Changeset in webkit [28981] by dsmith@webkit.org
  • 18 edits
    2 copies
    1 move
    4 adds
    30 deletes in trunk

WebCore:

Reviewed by Oliver.


  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
  • dom/ChildNodeList.cpp: (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
  • dom/ChildNodeList.h:
  • dom/ClassNodeList.cpp: (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
  • dom/ClassNodeList.h:
  • dom/Document.idl: Add the new functions
  • dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp. (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList (WebCore::DynamicNodeList::~DynamicNodeList): (WebCore::DynamicNodeList::recursiveLength): (WebCore::DynamicNodeList::itemForwardsFromCurrent): (WebCore::DynamicNodeList::itemBackwardsFromCurrent): (WebCore::DynamicNodeList::recursiveItem): (WebCore::DynamicNodeList::itemWithName): (WebCore::DynamicNodeList::rootNodeChildrenChanged): (WebCore::DynamicNodeList::Caches::Caches): (WebCore::DynamicNodeList::Caches::reset):
  • dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h. (WebCore::DynamicNodeList::rootNodeAttributeChanged):
  • dom/Element.idl: Add the new functions
  • dom/NameNodeList.cpp: Change to being a DynamicNodeList (WebCore::NameNodeList::NameNodeList):
  • dom/NameNodeList.h: (WebCore::NameNodeList::rootNodeAttributeChanged):
  • dom/Node.cpp: (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList (WebCore::Node::registerDynamicNodeList): (WebCore::Node::unregisterDynamicNodeList): (WebCore::Node::getElementsByName): (WebCore::Node::getElementsByClassName): (WebCore::Node::querySelector): new (WebCore::Node::querySelectorAll): new
  • dom/Node.h:
  • dom/NodeList.cpp: Removed.
  • dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList (WebCore::NodeList::NodeList): (WebCore::NodeList::~NodeList):
  • dom/SelectorNodeList.cpp: Added. (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
  • dom/SelectorNodeList.h: Added.
  • dom/StaticNodeList.cpp: Added. (WebCore::StaticNodeList::length): (WebCore::StaticNodeList::item): (WebCore::StaticNodeList::itemWithName):
  • dom/StaticNodeList.h: Added. (WebCore::StaticNodeList::StaticNodeList): (WebCore::StaticNodeList::~StaticNodeList):

LayoutTests:

Reviewed by Oliver.


  • fast/dom/SelectorAPI: Copied from LayoutTests/fast/dom/getElementsByClassName.
  • fast/dom/SelectorAPI/dumpNodeList-expected.txt:
  • fast/dom/SelectorAPI/dumpNodeList.html: Modified to test querySelector and querySelectorAll instead of getElementsByClassName
  • fast/dom/Window/window-properties-expected.txt: Added querySelector and querySelectorAll
2:54 PM Changeset in webkit [28980] by mjs@apple.com
  • 2 edits in trunk/JavaScriptCore

Reviewed by Oliver.



1.3% speedup on SunSpider.


  • kjs/object.cpp: (KJS::JSObject::put): Don't do canPut check when not needed; let the PropertyMap handle it. (KJS::JSObject::canPut): Don't check the static property table. lookupPut does that already.

Dec 24, 2007:

10:55 PM Changeset in webkit [28979] by mrowe@apple.com
  • 2 edits in trunk/WebCore

Fix Bug 16596: ThreadSafeShared should be lock-free where possible.

Reviewed by Sam Weinig.

Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.

This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
access to a single ThreadSafeShared object.

The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.

10:00 PM Changeset in webkit [28978] by alp@webkit.org
  • 3 edits in trunk/WebKit/gtk

2007-12-24 Christian Dywan <christian@twotoasts.de>

Reviewed by Alp Toker.

http://bugs.webkit.org/attachment.cgi?id=18099
There are no NULL checks for strings in public api

Add missing NULL checks for string parameters.

Provide sensible defaults when NULL is passed for the optional
parameters in webkit_web_view_load_string(). UTF-8 is the default
encoding used by GLib and text/html is a reasonable default content
type.

  • WebView/webkitnetworkrequest.cpp:
  • WebView/webkitwebview.cpp:
5:05 PM Changeset in webkit [28977] by Darin Adler
  • 3 edits in trunk/WebCore
  • platform/text/PlatformString.h: Removed now-incorrect comment. Added a comment about copy().
  • platform/text/StringImpl.h: Added a comment about copy().
5:02 PM Changeset in webkit [28976] by Darin Adler
  • 13 edits in trunk/WebCore

Reviewed by Maciej.

I tried to keep the changes to a minimum. In some cases there is
room for optimization -- I didn't try to add in the "single ref count"
optimizations and there might be a tiny bit more string copying than
we had before.

  • WebCore.base.exp: Updated.
  • dom/CharacterData.cpp: (WebCore::CharacterData::appendData): Changed to use String since StringImpl doesn't have mutating functions any more. (WebCore::CharacterData::insertData): Ditto. (WebCore::CharacterData::deleteData): Ditto. (WebCore::CharacterData::replaceData): Ditto.
  • dom/Text.cpp: (WebCore::Text::splitText): Changed to use substring instead of remove since StringImpl does't have mutating functions any more.
  • editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::deleteInsignificantText): Changed to use String instead of StringImpl so we can use remove.
  • platform/text/PlatformString.h: Removed newUninitialized. Added append that takes a character pointer and length.
  • platform/text/String.cpp: (WebCore::String::insert): Added an implementation that does not rely on an underlying StringImpl function. (WebCore::String::append): Ditto. (WebCore::String::truncate): Ditto. (WebCore::String::remove): Ditto. (WebCore::String::charactersWithNullTermination): Added an implementation that uses the new StringImpl null termination feature, which does not require modifying a string.
  • platform/text/StringImpl.cpp: (WebCore::isSpace): Fix comment. (WebCore::StringImpl::StringImpl): Added a new constructor that makes a string with a trailing null character. (WebCore::StringImpl::substring): Marked const. (WebCore::StringImpl::replace): Marked const; had to add quite a few const_cast. Also rewrote one of these to work without modifying the existing string.
  • platform/text/StringImpl.h: Fixed a mistake where the empty string had m_hasTerminatingNullCharacter uninitialized. Added a type and constructor for creating strings that have a trailing null character. Added a hasTerminatingNullCharacter function. Removed newUninitialized, charactersWithNullTermination, append, insert, truncate, and remove. Marked lots of other functions const.
  • platform/text/TextCodecLatin1.cpp: (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of newUninitialized.
  • platform/text/TextCodecUTF16.cpp: (WebCore::TextCodecUTF16::decode): Ditto.
  • platform/text/TextCodecUserDefined.cpp: (WebCore::TextCodecUserDefined::decode): Ditto.
  • rendering/RenderStyle.cpp: (WebCore::RenderStyle::setContent): Changed to use String since StringImpl doesn't have mutating functions any more.
10:31 AM Changeset in webkit [28975] by alp@webkit.org
  • 2 edits in trunk/JavaScriptCore

2007-12-24 Alp Toker <alp@atoker.com>

Fix builds that don't use AllInOneFile.cpp following breakage
introduced in r28973.

  • kjs/grammar.y:
4:16 AM Changeset in webkit [28974] by ap@webkit.org
  • 4 edits in trunk

Reviewed by Oliver.

Fix fast/events/arrow-keys-on-body.html, failing on Windows.

  • DumpRenderTree/win/EventSender.cpp: (keyDownCallback): Add KF_EXTENDED flag to arrow keys. Also add a count of 1, even though WebKit currently ignores it.
2:13 AM Changeset in webkit [28973] by mjs@apple.com
  • 7 edits in trunk/JavaScriptCore

Reviewed by Eric.


3.5% speedup on SunSpider.

var statements now result in either assignments or empty statements.


This allows a couple of optimization opportunities:

  • No need to branch at runtime to check if there is an initializer
  • EmptyStatementNodes can be removed entirely (also done in this patch)
  • Assignment expressions get properly optimized for local variables


This patch also includes some code cleanup:

  • Most of the old VarStatement/VarDecl logic is now only used for const declarations, thus it is renamed appropriately
  • AssignExprNode is gone


  • JavaScriptCore.exp:
  • kjs/NodeInfo.h:
  • kjs/grammar.y:
  • kjs/nodes.cpp: (KJS::SourceElements::append): (KJS::ConstDeclNode::ConstDeclNode): (KJS::ConstDeclNode::optimizeVariableAccess): (KJS::ConstDeclNode::handleSlowCase): (KJS::ConstDeclNode::evaluateSingle): (KJS::ConstDeclNode::evaluate): (KJS::ConstStatementNode::optimizeVariableAccess): (KJS::ConstStatementNode::execute): (KJS::VarStatementNode::optimizeVariableAccess): (KJS::VarStatementNode::execute): (KJS::ForInNode::ForInNode): (KJS::ForInNode::optimizeVariableAccess): (KJS::ForInNode::execute): (KJS::FunctionBodyNode::initializeSymbolTable): (KJS::ProgramNode::initializeSymbolTable): (KJS::FunctionBodyNode::processDeclarations): (KJS::ProgramNode::processDeclarations): (KJS::EvalNode::processDeclarations):
  • kjs/nodes.h: (KJS::DeclarationStacks::): (KJS::StatementNode::): (KJS::ConstDeclNode::): (KJS::ConstStatementNode::): (KJS::EmptyStatementNode::): (KJS::VarStatementNode::): (KJS::ForNode::):
  • kjs/nodes2string.cpp: (KJS::ConstDeclNode::streamTo): (KJS::ConstStatementNode::streamTo): (KJS::ScopeNode::streamTo): (KJS::VarStatementNode::streamTo): (KJS::ForNode::streamTo): (KJS::ForInNode::streamTo):
Note: See TracTimeline for information about the timeline view.