Support new TestExpectations format alongside old one
https://bugs.webkit.org/show_bug.cgi?id=96588

Reviewed by Ojan Vafai.

This patch adds support for actually reading in lines formatted
in the new style, and when we re-serialize/write out the file,
all lines will be written in the new style. Note that reading in
the old style is still supported, and no updates are being made
to the actual TestExpectations files as part of this change.

This change updates most but not all of the unit tests to use
the new syntax. I will update the rest when (or before where
possible) I drop support for the old format.

* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser):
(TestExpectationParser._tokenize_line):
(TestExpectationParser._tokenize_line_using_new_format):
(TestExpectationLine.to_string):
(TestExpectationLine._format_line):
(TestExpectations):
* Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
(test_parse_warning):
(SkippedTests.test_skipped_entry_dont_exist):
(NewExpectationSyntaxTests.test_warnings):
(RemoveConfigurationsTest.test_remove):
(test_remove_line):
(RebaseliningTest.test_remove):
(RebaseliningTest.test_no_get_rebaselining_failures):
(TestExpectationParserTests.test_tokenize_blank):
(TestExpectationParserTests.test_tokenize_extra_colon):
(TestExpectationParserTests.test_tokenize_missing_equal):
(TestExpectationParserTests.test_tokenize_extra_equal):
(TestExpectationSerializationTests.test_unparsed_to_string):
(TestExpectationSerializationTests.test_unparsed_list_to_string):
(TestExpectationSerializationTests.test_parsed_to_string):
(TestExpectationSerializationTests.test_format_line):
(TestExpectationSerializationTests.test_string_roundtrip):
(TestExpectationSerializationTests.test_list_roundtrip):
(TestExpectationSerializationTests.test_reconstitute_only_these):
(TestExpectationSerializationTests.test_string_whitespace_stripping):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(LintTest.test_lint_test_files__errors):
* Scripts/webkitpy/tool/commands/queries_unittest.py:
(PrintExpectationsTest.test_basic):
(PrintExpectationsTest.test_multiple):
(PrintExpectationsTest.test_full):
(PrintExpectationsTest.test_exclude):
* Scripts/webkitpy/tool/commands/rebaseline.py:
(RebaselineExpectations.execute):
* Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
(TestRebaseline.test_rebaseline_updates_expectations_file_noop):
(test_rebaseline_updates_expectations_file):
(test_rebaseline_does_not_include_overrides):
(test_rebaseline_expectations_noop):
(test_overrides_are_included_correctly):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129052 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG should not assume that a ByVal access is generic just because it was unprofiled
https://bugs.webkit.org/show_bug.cgi?id=97088

Reviewed by Geoffrey Garen.
        
We were not disambiguating between "Undecided" in the sense that the array profile
has no useful information versus "Undecided" in the sense that the array profile
knows that the access has not executed. That's an important distinction, since
the former form of "Undecided" means that we should consult value profiling, while
the latter means that we should force exit unless the value profiling indicates
that the access must be generic (base is not cell or property is not int).

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGArrayMode.cpp:
(JSC::DFG::fromObserved):
(JSC::DFG::refineArrayMode):
(JSC::DFG::modeAlreadyChecked):
(JSC::DFG::modeToString):
* dfg/DFGArrayMode.h:
(JSC::DFG::canCSEStorage):
(JSC::DFG::modeIsSpecific):
(JSC::DFG::modeSupportsLength):
(JSC::DFG::benefitsFromStructureCheck):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129053 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Store the contents scale factor in PlatformContextSkia on initialization
https://bugs.webkit.org/show_bug.cgi?id=96137

Patch by Terry Anderson <tdanderson@chromium.org> on 2012-09-19
Reviewed by Stephen White.

Source/WebCore:

When the compositor creates a PlatformContextSkia, the scale on |canvas| will
be equal to the content scale factor (which, without pinch-to-zoom, will be
the same as the device scale factor). Set this value as a member on PlatformContextSkia,
which will be used to correctly render glyphs when hinting is used and the device
scale factor is not 1.

Tests: added two new unit tests.

* platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
(WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::PlatformContextSkia):
(WebCore::PlatformContextSkia::setupPaintCommon):
* platform/graphics/skia/PlatformContextSkia.h:
(PlatformContextSkia):
(WebCore::PlatformContextSkia::setHintingScaleFactor):
(WebCore::PlatformContextSkia::hintingScaleFactor):

Source/WebKit/chromium:

Define SK_SUPPORT_HINTING_SCALE_FACTOR by default. This is also used
for the skia patch here: https://codereview.appspot.com/6506099/.
Also added two new unit tests.

* features.gypi:
* tests/OpaqueRectTrackingContentLayerDelegateTest.cpp:
(WebCore):
(WebCore::HintingScaleCallback::HintingScaleCallback):
(HintingScaleCallback):
(WebCore::HintingScaleCallback::operator()):
(WebCore::TEST_F):
* tests/PlatformContextSkiaTest.cpp:
(WebCore):
(WebCore::TEST):

LayoutTests:

These tests will fail due to a font hinting/rasterization issue with
chromium DRT pixel tests having a page/device scale factor of 2.
See crbug.com/150682.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION: run-perf-tests no longer reports the total test time
https://bugs.webkit.org/show_bug.cgi?id=97138

Reviewed by Tony Chang.

Report the finished time as a info-level log as opposed to a debug level log.

* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._run_single_test):
* Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(MainTest.normalizeFinishedTime): Added. It replaces all finished times by 0.1 seconds.
(test_run_test_pause_before_testing):
(test_run_test_set_for_parser_tests):
(test_run_memory_test):
(_test_run_with_json_output):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed - remove debugging code from a pair of tests.

During development these tests had their own timers to terminate early
rather than timing out, so partial script output could be seen. Removing,
as it could cause the tests to flake under load.

* storage/indexeddb/lazy-index-population.html:
* storage/indexeddb/resources/cursor-finished.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: convert chromium TestExpectations to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=97139

Tools:

Reviewed by Ryosuke Niwa.

Add in a file temporarily that does the conversion of
test expectations formats

* Tools/Scripts/convert-test-expectations: Added.

LayoutTests:

Reviewed by Ryosuke Niwa.

This does a wholesale change of the file from

  BUGS MODIFIERS : test = EXPECTATIONS

to

  Bugs [ Modifiers] test [ Expectations ]

as per the new syntax.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: convert Qt TestExpectations to the new format
https://bugs.webkit.org/show_bug.cgi?id=97140

Unreviewed, expectations change.

Files were converted using Tools/Scripts/convert-test-expectations.

* platform/qt-4.8/TestExpectations:
* platform/qt-5.0-wk2/TestExpectations:
* platform/qt-arm/TestExpectations:
* platform/qt-mac/TestExpectations:
* platform/qt/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
convert Gtk TestExpectations files to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=97141

Unreviewed, expectations change.

Files converted with Tools/Scripts/convert-test-expectations.

* platform/gtk-wk2/TestExpectations:
* platform/gtk/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129059 268f45cc-cd09-0410-ab3c-d52691b4dbfc
convert Efl TestExpectations to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=97142

Unreviewed, expectations change.

Files converted with Tools/Scripts/convert-test-expectations.

* platform/efl-wk1/TestExpectations:
* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
convert apple mac TestExpectations files to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=97143

Unreviewed, expectations change.

Files converted with Tools/Scripts/convert-test-expectations.

* platform/mac-lion/TestExpectations:
* platform/mac-snowleopard/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129061 268f45cc-cd09-0410-ab3c-d52691b4dbfc
convert apple win TestExpectations files to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=97144

Unreviewed, expectations change.

Files converted with Tools/Scripts/convert-test-expectations.

* platform/win-wk2/TestExpectations:
* platform/win-xp/TestExpectations:
* platform/win/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129062 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: convert chromium TestExpectations to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=97139

Reviewed by Ryosuke Niwa.

Actually land the file supposedly landed below :).

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129063 268f45cc-cd09-0410-ab3c-d52691b4dbfc
convert chromium android TestExpectations to the new syntax
https://bugs.webkit.org/show_bug.cgi?id=97145

Unreviewed, expectations change.

Files converted with Tools/Scripts/convert-test-expectations.

* platform/chromium-android/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129064 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r128802): It made some JS tests crash
https://bugs.webkit.org/show_bug.cgi?id=97001

Reviewed by Mark Hahnenberg.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::visitChildren):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Remove "current transaction" concept from backing store
https://bugs.webkit.org/show_bug.cgi?id=96663

Reviewed by Tony Chang.

Source/WebCore:

IndexedDB should allow multiple transactions to run in parallel within and
across databases within an origin. As an initial step to enabling this, the
backing store should not hold a "current transaction" - instead, operations
should be done relative to a transaction managed by the database.

No new tests - no functional changes.

* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
(WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
(WebCore::IDBDatabaseBackendImpl::setVersionInternal):
(WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::openCursorInternal):
(WebCore::IDBIndexBackendImpl::countInternal):
(WebCore::IDBIndexBackendImpl::count):
(WebCore::IDBIndexBackendImpl::getInternal):
(WebCore::IDBIndexBackendImpl::getKeyInternal):
(WebCore::IDBIndexBackendImpl::get):
(WebCore::IDBIndexBackendImpl::getKey):
* Modules/indexeddb/IDBIndexBackendImpl.h:
(IDBIndexBackendImpl):
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::createObjectStore):
(WebCore::IDBLevelDBBackingStore::deleteObjectStore):
(WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
(WebCore):
(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::clearObjectStore):
(WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::createIndex):
(WebCore::IDBLevelDBBackingStore::deleteIndex):
(WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
(WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
(WebCore::IDBLevelDBBackingStore::findKeyInIndex):
(WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
(WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
(WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
(WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
(WebCore::IDBLevelDBBackingStore::openIndexCursor):
(WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
(WebCore::IDBLevelDBBackingStore::Transaction::begin):
(WebCore::IDBLevelDBBackingStore::Transaction::commit):
(WebCore::IDBLevelDBBackingStore::Transaction::rollback):
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
(WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransaction):
(Transaction):
(WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::get):
(WebCore::IDBObjectStoreBackendImpl::getInternal):
(WebCore):
(WebCore::makeIndexWriters):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteFunction):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
(WebCore::IDBObjectStoreBackendImpl::clear):
(WebCore::IDBObjectStoreBackendImpl::clearInternal):
(WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
(WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
(WebCore::IDBObjectStoreBackendImpl::count):
(WebCore::IDBObjectStoreBackendImpl::countInternal):
(WebCore::IDBObjectStoreBackendImpl::generateKey):
(WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(IDBObjectStoreBackendImpl):

Source/WebKit/chromium:

Update fake class with new method signatures.

* tests/IDBFakeBackingStore.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@129066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix lines missed (??) in mac-wk2/TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=97143

Unreviewed, expectations change.

* platform/mac-wk2/TestExpectations:

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