Fix a warning in TestWebKitAPI's MediaTime test-suite
https://bugs.webkit.org/show_bug.cgi?id=94096

Reviewed by Adam Barth.

This warning is visible when building the file with certain GCC versions,
including the one used by Chromium for Android. The warning is visible in
the cr-android build bot output:

MediaTime.cpp:152: warning: this decimal constant is unsigned only in ISO C90

* TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
There is additional space not belonged to a table between the table cells
https://bugs.webkit.org/show_bug.cgi?id=74864

Patch by Arpita Bahuguna <arpitabahuguna@gmail.com> on 2012-08-15
Reviewed by Julien Chaffraix.

Source/WebCore:

Hittest for a point on the edge, i.e. between two table columns, currently
does not return any matching underlying element.

A hittest on such a point (on the edge of two table columns) should return
the column that lies either on the logical right/bottom of the said point.

Tests: fast/table/hittest-tablecell-bottom-edge.html
       fast/table/hittest-tablecell-right-edge.html
       fast/table/hittest-tablecell-with-borders-bottom-edge.html
       fast/table/hittest-tablecell-with-borders-right-edge.html

* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::spannedRows):
Removed the FIXME regarding the correctness of the usage of the upper_bound algorithm
since that is now verified by the testcases in this patch. Also, the comment
regarding the inconsistency between the algorithms used in spannedRows and spannedColumns
is no longer valid.

(WebCore::RenderTableSection::spannedColumns):
Changed lower_bound() algorithm to upper_bound() for obtaining the next column.
This is now similar to what is used for obtaining the next row in spannedRows().

LayoutTests:

* fast/table/hittest-tablecell-bottom-edge-expected.txt: Added.
* fast/table/hittest-tablecell-bottom-edge.html: Added.
* fast/table/hittest-tablecell-right-edge-expected.txt: Added.
* fast/table/hittest-tablecell-right-edge.html: Added.
Testcases added for verifying that the proper node is returned upon hit test
carried out at a point lying on the edge of two table cells.

* fast/table/hittest-tablecell-with-borders-bottom-edge-expected.txt: Added.
* fast/table/hittest-tablecell-with-borders-bottom-edge.html: Added.
* fast/table/hittest-tablecell-with-borders-right-edge-expected.txt: Added.
* fast/table/hittest-tablecell-with-borders-right-edge.html: Added.
These testcases verify the aforementioned behavior when the table cells
also have border specified for them.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125684 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Gtk] atk_text_get_text_at_offset() fails to provide the correct line for paragraphs in list items whose text wraps
https://bugs.webkit.org/show_bug.cgi?id=83435

Patch by Joanmarie Diggs <jdiggs@igalia.com> on 2012-08-15
Reviewed by Chris Fleizach.

Source/WebCore:

Fix a logic error when checking if an object is a list marker.

* accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
(textForRenderer):

Source/WebKit/gtk:

Updated unit test to include a paragraph in a list item when testing atk_text_get_text_at_offset().

* tests/testatk.c:
(testWebkitAtkGetTextAtOffsetWithSpecialCharacters):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125685 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update TestExpectations entry to refer to an actual bug.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
https://bugs.webkit.org/show_bug.cgi?id=93884

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of 
MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines, 
we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined 
objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject). 
For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not 
masquerade as undefined within frame B, but it will continue to masquerade in frame A.

There are two primary changes that are taking place here. One is to thread the ExecState* through 
JSValue::toBoolean and JSCell::toBoolean so that JSCell::toBoolean can check the object's 
JSGlobalObject to compare it to the lexical JSGlobalObject of the currently running code. If the two 
are distinct, then the object cannot MasqueradeAsUndefined.

The other change is to perform this comparison of JSGlobalObjects everywhere where the MasqueradesAsUndefined
flag in the Structure is checked. For C++ code, this check has been factored into its own function in 
Structure::masqueradesAsUndefined. We only perform this check in the DFG if the current JSGlobalObject has 
had a MasqueradesAsUndefined object allocated within its context. This conditional compilation is managed 
through the use of a WatchpointSet in each JSGlobalObject and alternate create() functions for JS DOM wrappers
that are MasqueradesAsUndefined.

* API/JSValueRef.cpp:
(JSValueToBoolean):
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* bytecode/Watchpoint.h:
(WatchpointSet):
* debugger/DebuggerCallFrame.h:
(JSC::DebuggerCallFrame::callFrame):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::run):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::compile):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::privateExecute):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncFilter):
(JSC::arrayProtoFuncEvery):
(JSC::arrayProtoFuncSome):
* runtime/BooleanConstructor.cpp:
(JSC::constructBoolean):
(JSC::callBooleanConstructor):
* runtime/JSCell.h:
(JSCell):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
* runtime/JSGlobalObject.h:
(JSGlobalObject):
(JSC::JSGlobalObject::masqueradesAsUndefinedWatchpoint):
* runtime/JSString.h:
(JSC::JSCell::toBoolean):
(JSC::JSValue::toBoolean):
* runtime/JSValue.h:
* runtime/ObjectConstructor.cpp:
(JSC::toPropertyDescriptor):
* runtime/Operations.cpp:
(JSC::jsTypeStringForValue):
(JSC::jsIsObjectType):
* runtime/Operations.h:
(JSC):
(JSC::JSValue::equalSlowCaseInline):
* runtime/RegExpConstructor.cpp:
(JSC::setRegExpConstructorMultiline):
* runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncToString):
* runtime/Structure.h:
(Structure):
(JSC::Structure::globalObjectOffset):
(JSC::Structure::masqueradesAsUndefined):
(JSC):

Source/WebCore: 

With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of 
MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines, 
we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined 
objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject). 
For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not 
masquerade as undefined within frame B, but it will continue to masquerade in frame A.

Test: fast/js/document-all-between-frames.html

All of the changes in WebCore are simply passing the additional ExecState argument to JSValue::toBoolean.

* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
(WebCore::JSSQLStatementErrorCallback::handleEvent):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::addEventListener):
(WebCore::JSDOMWindow::removeEventListener):
* bindings/js/JSDataViewCustom.cpp:
(WebCore::getDataViewMember):
* bindings/js/JSDeviceMotionEventCustom.cpp:
(WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
* bindings/js/JSDeviceOrientationEventCustom.cpp:
(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDirectoryEntryCustom.cpp:
(WebCore::JSDirectoryEntry::getFile):
(WebCore::JSDirectoryEntry::getDirectory):
* bindings/js/JSDirectoryEntrySyncCustom.cpp:
(WebCore::getFlags):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/js/JSInspectorFrontendHostCustom.cpp:
(WebCore::populateContextMenuItems):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::handleInitMessageEvent):
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::dataFunctionMatrix):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::open):
* bindings/js/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::exec):
(WebCore):
* bindings/js/JavaScriptCallFrame.h:
(JavaScriptCallFrame):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::hasBreakpoint):
* bindings/scripts/CodeGeneratorJS.pm: Also add the custom create function for MasqueradesAsUndefined JS DOM wrappers.
(GenerateEventListenerCall):
(GenerateHeader):
(JSValueToNative):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
* bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::JSTestEventTarget::create):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
* bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
* bridge/jni/jni_jsobject.mm:
(JavaJSObject::convertValueToJObject):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant):

Source/WebKit/mac: 

With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of 
MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines, 
we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined 
objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject). 
For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not 
masquerade as undefined within frame B, but it will continue to masquerade in frame A.

* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::addValueToArray): Passing ExecState to toBoolean call.

Source/WebKit2: 

With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of 
MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines, 
we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined 
objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject). 
For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not 
masquerade as undefined within frame B, but it will continue to masquerade in frame A.

* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): Passing ExecState to toBoolean call.

LayoutTests: 

Added a test that uses a variety of ways of checking whether something is correctly 
masquerading as undefined (or not) in a subframe.

* fast/js/document-all-between-frames-expected.txt: Added.
* fast/js/document-all-between-frames.html: Added.
* fast/js/resources/document-all-between-frames-subframe.html: Added.
* platform/chromium/TestExpectations: Chromium treats document.all differently, so skip our new test.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSDOMWrapper should ASSERT that it has an associated ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=94053

Reviewed by Sam Weinig.

Previously we were unable have this ASSERT because DOMWindow needed a
Frame to find Document. Now that we can find the Document without a
Frame, we can include the ASSERT and sanity will rein across the land.

* bindings/js/JSDOMWrapper.h:
(WebCore::JSDOMWrapper::globalObject):
(WebCore::JSDOMWrapper::scriptExecutionContext):
(WebCore::JSDOMWrapper::JSDOMWrapper):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update expectations to match the bots. This test hasn't timed out in over 500 runs.
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125689 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Upstream BlackBerry build fixes
https://bugs.webkit.org/show_bug.cgi?id=94121

Patch by Joshua Netterfield <jnetterfield@rim.com> on 2012-08-15
Reviewed by Rob Buis.

This includes several build fixes due to incorrect upstream patches.
These mistakes were never present downstream.

No new tests, because no new functionality is added.

Source/WebCore:

* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
* platform/graphics/GraphicsContext3D.h:
(GraphicsContext3D):
(WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry):
* platform/graphics/blackberry/LayerFilterRenderer.cpp:
(WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
* platform/graphics/blackberry/LayerFilterRenderer.h:
(LayerFilterRendererAction):

Source/WebKit/blackberry:

* WebCoreSupport/AboutDataEnableFeatures.in:
* WebCoreSupport/AboutTemplate.html.cpp:
(writeHeader):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125690 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename window.internals.fastMallocStatistics to mallocStatistics
https://bugs.webkit.org/show_bug.cgi?id=94033

Patch by Scott Graham <scottmg@chromium.org> on 2012-08-15
Reviewed by Adam Barth.

PerformanceTests:

* resources/runner.js:
(PerfTestRunner.storeHeapResults):
(PerfTestRunner.getUsedMallocHeap):
(PerfTestRunner.getAndPrintMemoryStatistics):
(PerfTestRunner.initAndStartLoop):

Source/WebCore:

Mechanical rename. In preparation for plumbing allocation information
from allocators that aren't "fastMalloc".

* CMakeLists.txt:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.vcproj/WebCoreTestSupport.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::didTellClientAboutLoad):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadResource):
* testing/FastMallocStatistics.h: Removed.
* testing/FastMallocStatistics.idl: Removed.
* testing/Internals.cpp:
(WebCore::Internals::mallocStatistics):
* testing/Internals.h:
(WebCore):
(Internals):
* testing/Internals.idl:
* testing/MallocStatistics.h: Added.
* testing/MallocStatistics.idl: Added.

Tools:

* GNUmakefile.am:
* Scripts/webkitpy/performance_tests/perftest.py:
(PerfTest):
* Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(test_run_memory_test):

LayoutTests:

* fast/harness/fastmallocstatistics-object.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Gtk] atk_text_set_caret_offset() fails for table cells
https://bugs.webkit.org/show_bug.cgi?id=83501

Patch by Joanmarie Diggs <jdiggs@igalia.com> on 2012-08-15
Reviewed by Chris Fleizach.

Source/WebCore:

Allow using text ranges in accessible table cells.

* accessibility/gtk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::allowsTextRanges):
Add table cells to the list of accessibility objects supporting text ranges.

Source/WebKit/gtk:

Update unit test to include setting the caret in a table cell via the AtkText interface.

* tests/testatk.c:
(testWebkitAtkCaretOffsets): Add setting the caret inside the text of a table cell.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125692 268f45cc-cd09-0410-ab3c-d52691b4dbfc
z-index should work without position on flexitems
https://bugs.webkit.org/show_bug.cgi?id=91405

Reviewed by Tony Chang.

Source/WebCore:

Require a layer on any RenderBox that has a non-auto z-index.
Statically positioned, non-flex-item's have their z-index coerced to auto,
so it's safe to check z-index unconditionally.

Test: css3/flexbox/z-index.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
-Don't coerce z-index to auto on statically positioned flex-items.
-Use the parentStyle to determine if the parent is a flexbox instead of
looking at the element's parentNode's renderer.
* rendering/RenderBox.h:
-Add having a non-auto z-index to the list of things that require a layer.

LayoutTests:

* css3/flexbox/z-index-expected.html: Added.
* css3/flexbox/z-index.html: Added.
Use a ref-test since we want to be sure that the elements get painted in the right order.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125693 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AutoTableLayout truncates preferred widths for cells when it needs to ceil them to contain the contents
https://bugs.webkit.org/show_bug.cgi?id=93911

Reviewed by Eric Seidel.

Source/WebCore: 

Avoiding truncation of sub-pixel accumulated values when determining the preferred width of a table cell
in AutoTableLayout. Since we continue to layout tables using integers, we need to ceil the contents to
prevent premature wrapping of the contents.

This only affects ports with sub-pixel layout enabled, and fixes regressions of a handful of tests that
were missed when updating expectations when sub-pixel was enabled.

Test: fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping.html

* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):

LayoutTests: 

This only affects ports with sub-pixel layout enabled, and fixes regressions of a handful of tests that
were missed when updating expectations when sub-pixel was enabled.

* fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping-expected.txt: Added.
* fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping.html: Added.
* platform/chromium-mac/editing/deleting/5144139-2-expected.txt:
* platform/chromium-mac/fast/forms/001-expected.png:
* platform/chromium-mac/fast/forms/001-expected.txt:
* platform/chromium-mac/fast/forms/button-white-space-expected.txt:
* platform/chromium-mac/fast/forms/form-element-geometry-expected.png:
* platform/chromium-mac/fast/forms/form-element-geometry-expected.txt:
* platform/chromium-mac/fast/forms/formmove3-expected.txt:
* platform/chromium-mac/fast/replaced/width100percent-button-expected.png:
* platform/chromium-mac/fast/replaced/width100percent-button-expected.txt:
* platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.png:
* platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.txt:
* platform/chromium-mac/fast/replaced/width100percent-radio-expected.png:
* platform/chromium-mac/fast/replaced/width100percent-radio-expected.txt:
* platform/chromium-mac/fast/table/rowindex-expected.png:
* platform/chromium-mac/fast/table/rowindex-expected.txt:
* platform/chromium-mac/fast/text/international/bidi-LDB-2-CSS-expected.png:
* platform/chromium-mac/fast/text/international/bidi-LDB-2-CSS-expected.txt:
* platform/chromium-mac/fast/text/international/bidi-LDB-2-HTML-expected.png:
* platform/chromium-mac/fast/text/international/bidi-LDB-2-HTML-expected.txt:
* platform/chromium-mac/fast/text/international/bidi-LDB-2-formatting-characters-expected.png:
* platform/chromium-mac/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
* platform/chromium-mac/fast/text/international/bidi-layout-across-linebreak-expected.png:
* platform/chromium-mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
* platform/chromium-mac/fast/text/international/bidi-override-expected.png:
* platform/chromium-mac/fast/text/international/bidi-override-expected.txt:
* platform/chromium-mac/fast/text/textIteratorNilRenderer-expected.png:
* platform/chromium-mac/fast/text/textIteratorNilRenderer-expected.txt:
* platform/chromium-mac/fast/transforms/bounding-rect-zoom-expected.txt:
* platform/chromium-mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
* platform/chromium-mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
* platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug138725-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug18359-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug33855-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug33855-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug39209-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug39209-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.txt:
* platform/chromium-mac/tables/mozilla/bugs/bug55527-expected.png:
* platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
* platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
* platform/chromium/TestExpectations:
* platform/mac/tables/mozilla/bugs/bug55527-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125694 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Removing a plug-in element from a page opened in a background tab in Safari crashes
<rdar://problem/12057991> and https://bugs.webkit.org/show_bug.cgi?id=93913

Reviewed by Beth Dakin.

.:

* Source/autotools/symbols.filter: Allow this symbol through for DRT's sake.

Source/WebCore:

Expose Page::setCanStartMedia to regression tests so they can pretend to be in a non-windowed WebView.

Test: platform/mac-wk2/plugins/asynchronous-destroy-before-initialization.html

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setCanStartMedia):
(WebCore):
* testing/InternalSettings.h:
(Backup):
(InternalSettings):
* testing/InternalSettings.idl:

Source/WebKit2:

This only happens in WebKit2 with asynchronous plug-in initialization enabled.

* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::destroy): Null-check m_connection, as it might not have been created yet.

* win/WebKit2.def: Export Page::setCanStartMedia for InternalSettings/DRT use.

LayoutTests:

Using internal setting setCanStartMedia, pretend the page is in an unwindowed WebView then remove
the plug-in element.

* platform/mac-wk2/plugins/asynchronous-destroy-before-initialization-expected.txt: Added.
* platform/mac-wk2/plugins/asynchronous-destroy-before-initialization.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125695 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] IndexedDB: Delete unused WebKit API cursor accessors
https://bugs.webkit.org/show_bug.cgi?id=94134

Reviewed by Adam Barth.

Last bit of refactor work from http://webkit.org/b/92278 that ships the
cursor key/primaryKey/value to the front end via success messages, eliminating
the need for these accessors and the old success messages.

* public/WebIDBCallbacks.h:
* public/WebIDBCursor.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125696 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use literal initialization for CSS's pseudo types
https://bugs.webkit.org/show_bug.cgi?id=94066

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-08-15
Reviewed by Kenneth Rohde Christiansen.

Initialize CSS pseudo type strings with the new initialization from literal.

The first invocation of nameToPseudoTypeMap() becomes 20% faster and we use
less memory to store the strings.

* css/CSSSelector.cpp:
(WebCore::nameToPseudoTypeMap):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125697 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Add rfong to Bugzilla CC "contributor" list.

        * Scripts/webkitpy/common/config/committers.py:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=93693
[WK2] REGRESSION(125091): pixel results don't sow scrollbars 
anymore

Reviewed by Sam Weinig.

Source/WebCore: 

This is a regression from http://trac.webkit.org/changeset/125091 
in which I failed to noticed that 
WKBundlePageCreateSnapshotInViewCoordinates() did actually do 
something different than 
WKBundlePageCreateSnapshotInDocumentCoordinates(). Specifically, 
it used ScrollView::paint() to paint instead of 
FrameView::paintContents(). So this patch restores that 
functionality by adding a value to SnapshotOptions indicating 
whether the snapshot should be taken in ViewCoordinates 
(otherwise it defaults to DocumentCoordinates).

FrameView:: paintContentsForSnapshot() now takes a new parameter 
that indicates whether to take the snapshot in document 
coordinates or view coordinates.
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::paintContentsForSnapshot):
* page/FrameView.h:

Source/WebKit2: 

This is a regression from http://trac.webkit.org/changeset/125091 
in which I failed to noticed that 
WKBundlePageCreateSnapshotInViewCoordinates() did actually do 
something different than 
WKBundlePageCreateSnapshotInDocumentCoordinates(). Specifically, 
it used ScrollView::paint() to paint instead of 
FrameView::paintContents(). So this patch restores that 
functionality by adding a value to SnapshotOptions indicating 
whether the snapshot should be taken in ViewCoordinates 
(otherwise it defaults to DocumentCoordinates).

* Shared/API/c/WKImage.h:
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toSnapshotOptions):
* Shared/ImageOptions.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scaledSnapshotWithOptions):

Even though we plan to deprecate this API, it should keep doing 
the right thing until it's gone.
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCreateSnapshotInViewCoordinates):

Tools: 

Use new API WKBundlePageCreateSnapshotWithOptions().
* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dump):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Use the unconverted attribute instead of composing when deciding to how to handle key input.
https://bugs.webkit.org/show_bug.cgi?id=94132

Reviewed by Rob Buis.

PR 139838.

Switch direct key input handling to be based on the unconverted
attribute being present.  Converted keys, even during composition
are now input directly.

Reviewed Internally by Nima Ghanavatian.

* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::setText):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Must account for empty transformation lists when checking for big rotations.
https://bugs.webkit.org/show_bug.cgi?id=93975

Reviewed by James Robinson.

Source/WebCore:

AnimationTranslationUtil.cpp is supposed to reject large rotations
(>= 180 degrees between keyframes). The current code assumes that if
the lists of transforms at two consecutive keyframes do not match
(i.e., are different types), then do not need to reject. The rationale
is that we will revert to matrix blending -- we will collapse the lists
of transform operations to matrices at each keyframe and blend those.
Unfortunately, this is not true if a list is empty. It can be the case
that we transition from no transform to a rotation about the z axis of
360 degrees. In this case, the first list of transform operations will
be empty and the second will have a single rotation of 360 degrees. An
empty list should be treated as a rotation of zero degrees.

Unit tested in: GraphicsLayerChromiumTest.createTransformAnimationWithBigRotationAndEmptyTransformOperationList

* platform/graphics/chromium/AnimationTranslationUtil.cpp:
(WebCore::causesRotationOfAtLeast180Degrees):

Source/WebKit/chromium:

Adds a test to check that creating an animation with a big (> 180
degree) rotation, where the transform operations list in the 1st
keyframe is empty fails as expected.

* tests/AnimationTranslationUtilTest.cpp:
(WebKit::TEST):
(WebKit):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125702 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mark Skia and Compositor Contexts
https://bugs.webkit.org/show_bug.cgi?id=94129

Patch by Gregg Tavares <gman@google.com> on 2012-08-15
Reviewed by James Robinson.

Marks the Skia and Compositor contexts to aid in debugging.

No new tests as no new functionality.

* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::createAcceleratedCanvas):

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