[GTK] Add unit tests for GtkInputMethodFilter
https://bugs.webkit.org/show_bug.cgi?id=88698

Reviewed by Carlos Garcia Campos.

Add unit tests for GtkInputMethodFilter in the WebCore platform layer.
This change adds the TestGtk test suite which will be used for all non-API
layer GTK unit tests.

* TestWebKitAPI/GNUmakefile.am: Update the build to include the new tests.
* TestWebKitAPI/Tests/gtk/InputMethodFilter.cpp: Added.
(TestWebKitAPI::PlatformWebView::PlatformWebView): Remove the call to gtk_init here
as it's now in main.cpp.
* TestWebKitAPI/gtk/main.cpp: Change the g_type_init call to gtk_init, because now
a majority of all unit tests depend on GTK+ being initialized.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121475 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[mac] WKTR windows still don't stay off screen sometimes
https://bugs.webkit.org/show_bug.cgi?id=90214
<rdar://problem/11760263>

Reviewed by Simon Fraser.

In some cases, the system itself will consult [WebKitTestRunnerWindow frame], so we should refrain from
overriding it and instead provide a different method to use when we want the web-facing "fake" window origin
(for PlatformWebView::windowFrame()).

* WebKitTestRunner/mac/PlatformWebViewMac.mm:
(-[WebKitTestRunnerWindow frameRespectingFakeOrigin]):
(WTR::PlatformWebView::windowFrame):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121476 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Hook up render-side key ASSERTing for get()
https://bugs.webkit.org/show_bug.cgi?id=90001

Patch by Alec Flett <alecflett@chromium.org> on 2012-06-28
Reviewed by Tony Chang.

Source/WebCore:

Hook up the new onSuccess and add it to the interface. For now,
simply assert that the right value is set. Add the same assertion
logic in the value-construction logic when the cursor advances.

No new tests, existing tests verify this refactor is correct.

* Modules/indexeddb/IDBCallbacks.h:
(IDBCallbacks):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::getInternal):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore):
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBRequest.h:
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromSerializedValueAndKeyPath):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):

Source/WebKit/chromium:

Hook up Chromium WebKit API to new onSuccess handler.

* src/WebIDBCallbacksImpl.cpp:
(WebKit::WebIDBCallbacksImpl::onSuccess):
* tests/IDBAbortOnCorruptTest.cpp:
(WebCore::MockIDBCallbacks::onSuccess):
* tests/IDBDatabaseBackendTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121477 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Cleanup HTMLFormCollection
https://bugs.webkit.org/show_bug.cgi?id=90111

Reviewed by Andreas Kling.

Source/WebCore: 

Got rid of getNamedItem and enamed getNamedFormItem to firstNamedItem and got rid of duplicateNumber argument since
it's always 0. Also made it a static local function. In addition, removed nextItem() since it's not used anywhere.

WebKit API Test: WebKit1.HTMLFormCollectionNamedItemTest

* html/HTMLFormCollection.cpp:
(WebCore::firstNamedItem):
(WebCore):
(WebCore::HTMLFormCollection::namedItem):
* html/HTMLFormCollection.h:
(HTMLFormCollection):

Tools: 

Add a WebKit API test using copy-paste design pattern per kling's request.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.html: Added.
* TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.mm: Added.
(-[HTMLFormCollectionNamedItemTest webView:didFinishLoadForFrame:]):
(TestWebKitAPI):
(TestWebKitAPI::TEST):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121478 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix a typo in the change log per review comment.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121479 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Adding a commenting utility to record BytecodeGenerator comments
with opcodes that are emitted.  Presently, the comments can only
be constant strings.  Adding comments for opcodes is optional.
If a comment is added, the comment will be printed following the
opcode when CodeBlock::dump() is called.

This utility is disabled by default, and is only meant for VM
development purposes.  It should not be enabled for product builds.

To enable this utility, set ENABLE_BYTECODE_COMMENTS in CodeBlock.h
to 1.

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

Patch by Mark Lam <mark.lam@apple.com> on 2012-06-28
Reviewed by Geoffrey Garen.

* GNUmakefile.list.am:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecodeCommentAndNewLine): Dumps the comment.
(JSC):
(JSC::CodeBlock::printUnaryOp): Add comment dumps.
(JSC::CodeBlock::printBinaryOp): Add comment dumps.
(JSC::CodeBlock::printConditionalJump): Add comment dumps.
(JSC::CodeBlock::printCallOp): Add comment dumps.
(JSC::CodeBlock::printPutByIdOp): Add comment dumps.
(JSC::CodeBlock::dump): Add comment dumps.
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::commentForBytecodeOffset):
    Finds the comment for an opcode if available.
(JSC::CodeBlock::dumpBytecodeComments):
    For debugging whether comments are collected.
    It is not being called anywhere.
* bytecode/CodeBlock.h:
(CodeBlock):
(JSC::CodeBlock::bytecodeComments):
* bytecode/Comment.h: Added.
(JSC):
(Comment):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitOpcode): Calls emitComment().
(JSC):
(JSC::BytecodeGenerator::emitComment): Adds comment to CodeBlock.
(JSC::BytecodeGenerator::prependComment):
    Registers a comment for emitComemnt() to use later.
* bytecompiler/BytecodeGenerator.h:
(BytecodeGenerator):
(JSC::BytecodeGenerator::emitComment):
(JSC::BytecodeGenerator::prependComment):
    These are inlined versions of these functions that nullify them
    when ENABLE_BYTECODE_COMMENTS is 0.
(JSC::BytecodeGenerator::comments):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121480 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CompositeShadowTreeWalker should use InsertionPoint::hasDistribution() instead of InsertionPoint::isActive().
https://bugs.webkit.org/show_bug.cgi?id=89177

Reviewed by Dimitri Glazkov.

Source/WebCore:

Prevents ComposedShadowTreeWalker from escaping out of an
insertion point (which has distributed nodes) from a non-used
fallback element in the insertion point.  Such a fallback element
should be treated as in an orphaned subtree.

ComposedShadowTreeParentWalker will be also fixed in a follow-up patch.

Test: fast/dom/shadow/composed-shadow-tree-walker.html

* dom/ComposedShadowTreeWalker.cpp:
(WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):

LayoutTests:

* fast/dom/shadow/composed-shadow-tree-walker-expected.txt:
* fast/dom/shadow/composed-shadow-tree-walker.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<https://bugs.webkit.org/show_bug.cgi?id=90216>
<rdar://problem/11766518>
Undo handling in WebKit2 is not robust against some page-closing code paths

Reviewed by Enrica Casucci.

* UIProcess/API/mac/PageClientImpl.h:
Declared public function viewWillMoveToAnotherWindow().
        
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::viewWillMoveToAnotherWindow):
New function, calls clearAllEditCommands() to remove any Undo actions from the stack.
This guarantees that no Undo actions will be abandoned when the PageClientImpl is dealloc'ed.

* UIProcess/API/mac/WKView.mm:
(-[WKView viewWillMoveToWindow:]):
Now informs PageClientImpl via new function PageClientImpl::viewWillMoveToAnotherWindow().



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121482 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] On Android, we should be able to ask the embedder what intents exist in a region of the page
https://bugs.webkit.org/show_bug.cgi?id=90210

Reviewed by Dimitri Glazkov.

This patch introduces a function that asks the embedder to analyze the
region around a hit test result for interesting content, like phone
numbers, email addresses, or physical addresses. The embedder then
responds with the "most interesting" content, together with an intent
URL for enacting the intent embodied by that content.

This function will be used in a subsequent patch to detect content
after touch events.

* WebKit.gyp:
* public/WebContentDetectionResult.h: Added.
(WebKit):
(WebContentDetectionResult):
(WebKit::WebContentDetectionResult::WebContentDetectionResult):
(WebKit::WebContentDetectionResult::isValid):
(WebKit::WebContentDetectionResult::range):
(WebKit::WebContentDetectionResult::string):
(WebKit::WebContentDetectionResult::intent):
* public/WebViewClient.h:
(WebViewClient):
(WebKit::WebViewClient::detechContentAround):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaselines after http://trac.webkit.org/changeset/119507.
These were all done using "webkit-patch rebaseline-expectations".

* platform/chromium-mac-leopard/tables/mozilla/bugs/bug131020-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug131020-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug131020-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug131020-expected.txt:
* platform/chromium-win/tables/mozilla/bugs/bug131020-expected.png:
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/efl/tables/mozilla/bugs/bug131020-expected.txt: Copied from LayoutTests/tables/mozilla/bugs/bug131020-expected.txt.
* platform/gtk/TestExpectations:
* platform/gtk/tables/mozilla/bugs/bug131020-expected.txt: Renamed from LayoutTests/tables/mozilla/bugs/bug131020-expected.txt.
* platform/mac/TestExpectations:
* platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
* platform/qt/TestExpectations:
* platform/qt/tables/mozilla/bugs/bug131020-expected.txt:
* platform/win/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121484 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Mark a test as failing on Linux debug

fast/forms/select/select-state-restore.html is failing on Linux debug because of timeout.

Not reviewed.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121485 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Split WebScrollbar into WebPluginScrollbar and WebScrollbar
https://bugs.webkit.org/show_bug.cgi?id=90117

Reviewed by James Robinson.

Source/Platform:

Move WebScrollbar from client API to Platform.

* Platform.gypi:
* chromium/public/WebScrollbar.h: Copied from Source/WebKit/chromium/public/WebPluginScrollbarClient.h.
(WebKit):
(WebScrollbar):
(WebKit::WebScrollbar::~WebScrollbar):

Source/WebCore:

Make WebCore also depend on Platform.

* WebCore.gyp/WebCore.gyp:

Source/WebKit/chromium:

Convert WebScrollbar/WebScrollbarClient/WebScrollbarImpl to be
WebPluginScrollbar, WebPluginScrollbarClient, and
WebPluginScrollbarImpl. Modify ScrollbarGroup
to use this instead.

WebScrollbar is now the base interface for a pre-existing scrollbar
that is accessed in a const manner. It also provides all of the common
WebKit ScrollTypes.h enums. WebPluginScrollbar is now a scrollbar that
has been externally created and is externally modified in terms of its
position, invalidation, and painting.

This is a pre-refactoring for adding Web versions of ScrollbarTheme
into the Platform directory which will operate on WebScrollbar, but
that don't need all of what WebPluginScrollbar provides.

As WebScrollbar is moved to Platform, WebKit.gyp now must depend on
Platform as well.

* WebKit.gyp:
* public/WebPluginScrollbar.h:
(WebKit):
(WebPluginScrollbar):
(WebKit::WebPluginScrollbar::~WebPluginScrollbar):
* public/WebPluginScrollbarClient.h:
(WebKit):
(WebPluginScrollbarClient):
* public/WebScrollbar.h: Removed.
* public/WebScrollbarClient.h: Removed.
* src/AssertMatchingEnums.cpp:
* src/ScrollbarGroup.cpp:
(WebKit::ScrollbarGroup::scrollbarCreated):
(WebKit::ScrollbarGroup::scrollbarDestroyed):
(WebKit::ScrollbarGroup::scrollSize):
(WebKit::ScrollbarGroup::scrollPosition):
(WebKit::ScrollbarGroup::contentsSize):
* src/ScrollbarGroup.h:
(WebKit):
(ScrollbarGroup):
* src/WebPluginScrollbarImpl.cpp: Renamed from Source/WebKit/chromium/src/WebScrollbarImpl.cpp.
(WebKit):
(WebKit::WebPluginScrollbar::createForPlugin):
(WebKit::WebPluginScrollbar::defaultThickness):
(WebKit::WebPluginScrollbarImpl::WebPluginScrollbarImpl):
(WebKit::WebPluginScrollbarImpl::~WebPluginScrollbarImpl):
(WebKit::WebPluginScrollbarImpl::setScrollOffset):
(WebKit::WebPluginScrollbarImpl::invalidateScrollbarRect):
(WebKit::WebPluginScrollbarImpl::getTickmarks):
(WebKit::WebPluginScrollbarImpl::convertFromContainingViewToScrollbar):
(WebKit::WebPluginScrollbarImpl::scrollbarStyleChanged):
(WebKit::WebPluginScrollbarImpl::isOverlay):
(WebKit::WebPluginScrollbarImpl::value):
(WebKit::WebPluginScrollbarImpl::setLocation):
(WebKit::WebPluginScrollbarImpl::setValue):
(WebKit::WebPluginScrollbarImpl::setDocumentSize):
(WebKit::WebPluginScrollbarImpl::scroll):
(WebKit::WebPluginScrollbarImpl::paint):
(WebKit::WebPluginScrollbarImpl::handleInputEvent):
(WebKit::WebPluginScrollbarImpl::onMouseDown):
(WebKit::WebPluginScrollbarImpl::onMouseUp):
(WebKit::WebPluginScrollbarImpl::onMouseMove):
(WebKit::WebPluginScrollbarImpl::onMouseLeave):
(WebKit::WebPluginScrollbarImpl::onMouseWheel):
(WebKit::WebPluginScrollbarImpl::onKeyDown):
* src/WebPluginScrollbarImpl.h: Added.
(WebCore):
(WebKit):
(WebPluginScrollbarImpl):
(WebKit::WebPluginScrollbarImpl::scrollOffset):
(WebKit::WebPluginScrollbarImpl::scrollbar):
* src/WebScrollbarImpl.h: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121486 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Replace a BUG_OJAN with a proper tracking bug and unskip two
tests in preparation for rebaselining them.
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121487 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: IDBDatabase should have a close pending field.
https://bugs.webkit.org/show_bug.cgi?id=71129

Reviewed by Tony Chang.

Source/WebCore:

Handle the IDB spec case that "versionchange" events should not be fired
against connections that have the internal "closePending" flag set but
are not yet closed due to running transactions.

Test: storage/indexeddb/database-closepending-flag.html

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::onVersionChange):

LayoutTests:

* storage/indexeddb/database-closepending-flag-expected.txt: Added.
* storage/indexeddb/database-closepending-flag.html: Added.
* storage/indexeddb/resources/database-closepending-flag.js: Added.
(test):
(openConnection.request.onsuccess.request.onsuccess):
(openConnection.request.onsuccess):
(openConnection):
(testIDBDatabaseName):
(testIDBDatabaseObjectStoreNames.request.onsuccess.request.onsuccess.transaction.oncomplete):
(testIDBDatabaseObjectStoreNames.request.onsuccess.request.onsuccess):
(testIDBDatabaseObjectStoreNames.request.onsuccess):
(testIDBDatabaseObjectStoreNames):
(testIDBDatabaseTransaction):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess.request.onblocked):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess.request.onsuccess.transaction.oncomplete):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess.request.onsuccess):
(testVersionChangeTransactionSteps.request.onsuccess.request.onsuccess):
(testDatabaseDeletion.request.onsuccess.request.onblocked):
(testDatabaseDeletion.request.onsuccess.request.onsuccess):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121488 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Reset the device scale factor to 1 before each test is run
https://bugs.webkit.org/show_bug.cgi?id=90212

Patch by Terry Anderson <tdanderson@chromium.org> on 2012-06-28
Reviewed by Adam Barth.

Some tests change the device scale factor, so this needs to be reset to
1.0 at the start of each test to avoid test flakiness.

* DumpRenderTree/chromium/LayoutTestController.cpp:
(LayoutTestController::reset):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update buildbot config for new hardware.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Prevent crash in animate resource handling
https://bugs.webkit.org/show_bug.cgi?id=90042

Reviewed by Abhishek Arya.

Source/WebCore:

This patch adds a check that we are in a document before registering animation
resources and creating a target element in SVGSMILElement. This prevents a crash where
we would register resources and create the target when we were not in a document
but fail to deregister / reset the target when we were removed from a document.
In failing to reset the target, we can crash when trying to deregister resources that
were not created after being inserted into a document and then removed.

The existence of m_targetResources and registered animation resources is now
tied to being in a document.

Test: svg/custom/animate-reference-crash.html

* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::targetElement):

LayoutTests:

* svg/custom/animate-reference-crash-expected.txt: Added.
* svg/custom/animate-reference-crash.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121491 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Implement IDBTransaction internal active flag
https://bugs.webkit.org/show_bug.cgi?id=89379

Reviewed by Tony Chang.

Source/WebCore:

IDB transactions should only be "active" during IDB success/error callbacks;
attempts to make new requests otherwise (e.g. in a setTimeout callback)
should fail even if the transaction has not yet finished. Implement this logic,
and the closely related requirement that transactions are deactivated when
the context they were created in returns to the event loop, and finally that
when so deactivated they should commit rather than abort (as previously
implemented) if no requests have been filed.

Tests: storage/indexeddb/transaction-active-flag.html
       storage/indexeddb/transaction-complete-with-js-recursion-cross-frame.html
       storage/indexeddb/transaction-complete-with-js-recursion.html
       storage/indexeddb/transaction-complete-workers.html

* Modules/indexeddb/IDBPendingTransactionMonitor.cpp: Simplify API.
(WebCore::transactions):
(WebCore::IDBPendingTransactionMonitor::addNewTransaction):
(WebCore::IDBPendingTransactionMonitor::deactivateNewTransactions):
* Modules/indexeddb/IDBPendingTransactionMonitor.h:
(WebCore):
(IDBPendingTransactionMonitor):
* Modules/indexeddb/IDBRequest.cpp: Unregisters from transaction when done,
not on destruction. No longer responsible for working with the pending monitor.
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::~IDBRequest):
(WebCore::IDBRequest::markEarlyDeath):
(WebCore::IDBRequest::resetReadyState):
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::dispatchEvent): Set active flag on transaction during callback.
* Modules/indexeddb/IDBTransaction.cpp: Use state enum to better track lifecycle, and
take ownership of relationship with pending monitor.
(WebCore::IDBTransaction::IDBTransaction): Special cases for version change
transactions.
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::error):
(WebCore::IDBTransaction::setError):
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::objectStoreCreated):
(WebCore::IDBTransaction::objectStoreDeleted):
(WebCore::IDBTransaction::setActive): Let IDBRequest and IDBPendingTransactionMonitor
toggle the active state. Needs some smarts because (1) state may move to Finishing during
the request's dispatch phase due to an implicit/explicit abort, and (2) a monitor call
will only trigger a commit if the transaction hasn't had any requests filed.
(WebCore):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::registerRequest):
(WebCore::IDBTransaction::unregisterRequest):
(WebCore::IDBTransaction::onAbort):
(WebCore::IDBTransaction::onComplete):
(WebCore::IDBTransaction::hasPendingActivity):
(WebCore::IDBTransaction::dispatchEvent):
(WebCore::IDBTransaction::canSuspend):
(WebCore::IDBTransaction::enqueueEvent):
* Modules/indexeddb/IDBTransaction.h:
(WebCore::IDBTransaction::isFinished):
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::commit): Allow explicit commit() calls from the front end
if no requests have been filed.
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(IDBTransactionBackendInterface): Expose commit() method.
* bindings/js/JSMainThreadExecState.cpp:
(WebCore::JSMainThreadExecState::didLeaveScriptContext): Change target function name.
* bindings/v8/V8RecursionScope.cpp:
(WebCore::V8RecursionScope::didLeaveScriptContext): Change target function name.

Source/WebKit/chromium:

To match the IDB spec, transactions that have had no requests
filed against them should commit, not abort. This requires plumbing
through the commit() call from front-end to back-end.

* src/IDBTransactionBackendProxy.cpp:
(WebKit::IDBTransactionBackendProxy::commit):
(WebKit):
* src/IDBTransactionBackendProxy.h:
(IDBTransactionBackendProxy):
* src/WebIDBTransactionImpl.cpp:
(WebKit::WebIDBTransactionImpl::commit):
(WebKit):
* src/WebIDBTransactionImpl.h:

LayoutTests:

* storage/indexeddb/resources/transaction-active-flag.js: Added.
* storage/indexeddb/resources/transaction-basics.js:
(completeCallback): Empty transactions now commit rather than abort.
(emptyCompleteCallback):
* storage/indexeddb/resources/transaction-complete-workers.js: Renamed from LayoutTests/storage/indexeddb/resources/transaction-abort-workers.js.
* storage/indexeddb/structured-clone.html: Assumed empty transactions aborted.
* storage/indexeddb/transaction-active-flag-expected.txt: Added.
* storage/indexeddb/transaction-active-flag.html: Added.
* storage/indexeddb/transaction-basics-expected.txt:
* storage/indexeddb/transaction-complete-with-js-recursion-cross-frame-expected.txt: Renamed from LayoutTests/storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt.
* storage/indexeddb/transaction-complete-with-js-recursion-cross-frame.html: Renamed from LayoutTests/storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html.
* storage/indexeddb/transaction-complete-with-js-recursion-expected.txt: Renamed from LayoutTests/storage/indexeddb/transaction-abort-with-js-recursion-expected.txt.
* storage/indexeddb/transaction-complete-with-js-recursion.html: Renamed from LayoutTests/storage/indexeddb/transaction-abort-with-js-recursion.html.
* storage/indexeddb/transaction-complete-workers-expected.txt: Renamed from LayoutTests/storage/indexeddb/transaction-abort-workers-expected.txt.
* storage/indexeddb/transaction-complete-workers.html: Renamed from LayoutTests/storage/indexeddb/transaction-abort-workers.html.
* storage/indexeddb/tutorial.html: Assumed empty transactions aborted.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
run-bindings-tests should return non-zero exit code on test failure
https://bugs.webkit.org/show_bug.cgi?id=90205

Reviewed by Adam Barth.

* Scripts/run-bindings-tests:
(main):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
frameborder="no" on frameset is ignored if border attribute set
https://bugs.webkit.org/show_bug.cgi?id=17767

Patch by Elliott Sprehn <esprehn@gmail.com> on 2012-06-28
Reviewed by Tony Chang.

Source/WebCore:

Fixes <frameset> frameborder and border handling. Previously we'd
override the frameborder=no setting if border was set. We also
treated frameborder="anything" the same as frameborder=0 since we
we just converted it to a number so frameborder=yes was incorrectly
treated the same as frameborder=no.

Tests: fast/frames/frameset-frameborder-boolean-values.html
       fast/frames/frameset-frameborder-inheritance.html
       fast/frames/frameset-frameborder-overrides-border.html

* html/HTMLFrameSetElement.cpp: Proper parsing of yes,no,1,0 values.
(WebCore::HTMLFrameSetElement::parseAttribute):
* html/HTMLFrameSetElement.h:
(WebCore::HTMLFrameSetElement::border): Border should be 0 if frameborder=no.

LayoutTests:

Add lots of tests for <frameset> frameborder and border handling.

* fast/frames/frameset-frameborder-boolean-values-expected.txt: Added.
* fast/frames/frameset-frameborder-boolean-values.html: Added.
* fast/frames/frameset-frameborder-inheritance-expected.txt: Added.
* fast/frames/frameset-frameborder-inheritance.html: Added.
* fast/frames/frameset-frameborder-overrides-border-expected.txt: Added.
* fast/frames/frameset-frameborder-overrides-border.html: Added.

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