Destroy CSS decoded data more eagerly once they become dead caches.
https://bugs.webkit.org/show_bug.cgi?id=91733

Patch by Huang Dongsung <luxtella@company100.net> on 2012-07-23
Reviewed by Geoffrey Garen.

Internal review by Kwang Yul Seo.

There are three CachedResources with decoded data: CachedImage, CachedScript
and CachedCSSStyleSheet. In the cases of CachedImage and CachedScript, we
eagerly destroy the decoded data using Timer in CacehdResource::allClientsRemoved().
We must apply the same policy here in CachedCSSStyleSheet because priority
inversion can occur. For example, we can't destroy the decoded data of CachedImages
when they are referenced by CachedCSSStyleSheet as background, mask or border
images.

No new tests - no new testable functionality.

* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
(WebCore::CachedCSSStyleSheet::didAddClient):
(WebCore::CachedCSSStyleSheet::allClientsRemoved):
(WebCore::CachedCSSStyleSheet::destroyDecodedData):
(WebCore):
(WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
* loader/cache/CachedCSSStyleSheet.h:
(CachedCSSStyleSheet):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MediaController.currentTime should be kept stable during script execution.
https://bugs.webkit.org/show_bug.cgi?id=88555

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-controller-time-constant.html

To keep MediaController.currentTime stable, add a new m_position variable and
a new m_clearPositionTimer timer.  Both must be mutable variables as they will
be updated from within const functions.  Calls to currentTime() will result in
stable values until the next runloop iteration.

* html/MediaController.cpp:
(MediaController::MediaController):
(MediaController::currentTime):
(MediaController::setCurrentTime):
(MediaController::clearPositionTimerFired):
* html/MediaController.h:

LayoutTests:

* media/media-controller-time-constant-expected.txt: Added.
* media/media-controller-time-constant.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
https://bugs.webkit.org/show_bug.cgi?id=91667

Patch by Scott Graham <scottmg@google.com> on 2012-07-23
Reviewed by Tony Chang.

Using native tools instead of cygwin version improves build time
performance by roughly 50% (on top of previous cl-instead-of-gcc
change).

Also, use - instead of / for cl flags because a layer of project
generator converts them to \ otherwise, which causes the preprocessing
to fail (very slowly because of the cygwin-loop with a sleep 1).

No new tests.

* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/rule_bison.py:
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
* make-hash-tools.pl:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
More unreviewed chromium expectation changes to mark tests as failing/slow.
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123388 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Ref-count AtomicHTMLToken
https://bugs.webkit.org/show_bug.cgi?id=91981

Reviewed by Adam Barth.

Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.

No new tests - no functional changes.

* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
(WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
(WebCore::HTMLConstructionSite::insertDoctype):
(WebCore::HTMLConstructionSite::insertComment):
(WebCore::HTMLConstructionSite::insertCommentOnDocument):
(WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
(WebCore::HTMLConstructionSite::insertHTMLFormElement):
(WebCore::HTMLConstructionSite::insertHTMLElement):
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
(WebCore::HTMLConstructionSite::insertFormattingElement):
(WebCore::HTMLConstructionSite::insertScriptElement):
(WebCore::HTMLConstructionSite::insertForeignElement):
(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLConstructionSite::createHTMLElement):
(WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
* html/parser/HTMLConstructionSite.h:
(HTMLConstructionSite):
* html/parser/HTMLToken.h:
(WebCore::AtomicHTMLToken::create):
(AtomicHTMLToken):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processFakeStartTag):
(WebCore::HTMLTreeBuilder::processFakeEndTag):
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
(WebCore::HTMLTreeBuilder::attributesForIsindexInput):
(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
(WebCore):
(WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::defaultForBeforeHead):
(WebCore::HTMLTreeBuilder::defaultForInHead):
(WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
(WebCore::HTMLTreeBuilder::defaultForAfterHead):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
(WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
(WebCore::HTMLTreeBuilder::processTokenInForeignContent):
(WebCore::HTMLTreeBuilder::parseError):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::insertFakePreElement):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r123360.
http://trac.webkit.org/changeset/123360
https://bugs.webkit.org/show_bug.cgi?id=91890

broke the chromium bots

* Scripts/webkitpy/layout_tests/port/chromium.py:
(ChromiumPort._static_build_path):
(ChromiumPort.default_results_directory):
(ChromiumPort._build_path):
(ChromiumPort._path_to_image_diff):
* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidPort._build_path):
(ChromiumAndroidPort._path_to_driver):
(ChromiumAndroidPort._path_to_forwarder):
(ChromiumAndroidPort._push_executable):
(ChromiumAndroidPort._push_fonts):
* Scripts/webkitpy/layout_tests/port/chromium_linux.py:
(ChromiumLinuxPort._determine_driver_path_statically):
(ChromiumLinuxPort._modules_to_search_for_symbols):
(ChromiumLinuxPort._path_to_driver):
* Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py:
(ChromiumLinuxPortTest.test_build_path):
* Scripts/webkitpy/layout_tests/port/chromium_mac.py:
(ChromiumMacPort._modules_to_search_for_symbols):
(ChromiumMacPort._path_to_driver):
(ChromiumMacPort._path_to_helper):
* Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py:
(ChromiumMacPortTest.test_build_path):
* Scripts/webkitpy/layout_tests/port/chromium_win.py:
(ChromiumWinPort._path_to_driver):
(ChromiumWinPort._path_to_helper):
(ChromiumWinPort._path_to_image_diff):
* Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py:
(ChromiumWinTest.test_build_path):

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