Keep ElementAttributeData sharing cache open for a while after document parsing finishes.
<http://webkit.org/b/103720>

Reviewed by Antti Koivisto.

Allow web pages that generate content dynamically to benefit more from the ElementAttributeData sharing
cache by keeping it open for 10 seconds after document parsing finishes. This enables elements constructed
from HTML fragments to share attribute data with other identical elements.

Elements created via Document.createElement are still unsupported since we don't know the list of attributes
at the time of construction.

401kB progression on Membuster3.

Document now holds on to a DocumentSharedObjectPool, accessible via Document::sharedObjectPool().
It is non-null during parsing and for some time afterwards, and can be used to implement additional
caches that are not worth holding on to permanently.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcproj/WebCore.vcproj:

    Add new class DocumentSharedObjectPool.

* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::setParsing):
(WebCore::Document::finishedParsing):
(WebCore::Document::sharedObjectPoolClearTimerFired):
* dom/Document.h:
(WebCore::Document::sharedObjectPool):

    Create DocumentSharedObjectPool when parsing starts, kill it on a 10s timer after parsing finishes.

* dom/DocumentSharedObjectPool.cpp: Added.
(ImmutableElementAttributeDataCacheKey):
(WebCore::ImmutableElementAttributeDataCacheKey::ImmutableElementAttributeDataCacheKey):
(WebCore::ImmutableElementAttributeDataCacheKey::operator!=):
(WebCore::ImmutableElementAttributeDataCacheKey::hash):
(ImmutableElementAttributeDataCacheEntry):
(WebCore::ImmutableElementAttributeDataCacheEntry::ImmutableElementAttributeDataCacheEntry):
(WebCore::DocumentSharedObjectPool::cachedImmutableElementAttributeData):
(WebCore::DocumentSharedObjectPool::DocumentSharedObjectPool):
(WebCore::DocumentSharedObjectPool::~DocumentSharedObjectPool):
* dom/DocumentSharedObjectPool.h: Added.
(DocumentSharedObjectPool):
(WebCore::DocumentSharedObjectPool::create):
* dom/Element.cpp:
(WebCore::Element::parserSetAttributes):

    Moved the ElementAttributeData cache to DocumentSharedObjectPool.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136334 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Fix build warning in GraphicsContext3DEfl.cpp
https://bugs.webkit.org/show_bug.cgi?id=103807

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2012-12-02
Reviewed by Laszlo Gombos.

Because GraphicsContext3D::ImageExtractor::extractImage is not implemented yet,
comment out the parameter names for removing -Wunused-parameter warnings.

* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136335 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows, WinCairo] Revise export definitions to match mac.
https://bugs.webkit.org/show_bug.cgi?id=103687

Reviewed by Tim Horton.

Update export definition files to use the same feature exclusion
macros as other generated ports.

* win/WebKit2.def.in: Added additional build macro guards.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136336 268f45cc-cd09-0410-ab3c-d52691b4dbfc