Layout Test: compositing/backface-visibility/backface-visibility-webgl.html is not supported on Windows.
No WebGL support.
https://bugs.webkit.org/show_bug.cgi?id=92929

Patch by Roger Fong <roger_fong@apple.com> on 2012-08-02
Reviewed by Tim Horton.

* platform/win/Skipped:
compositing/backface-visibility/backface-visibility-webgl.html added to Windows skip list.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124480 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium-Android] Run layout tests on multiple devices in parallel
https://bugs.webkit.org/show_bug.cgi?id=92877

Reviewed by Dirk Pranke.

Moved methods that run command on a particular device from ChromiumAndroidPort to ChromiumAndroidDriver.
The drivers run adb commands with the '-s serial_number' parameter which specifies the device according to the work_number.

* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidPort.__init__):
(ChromiumAndroidPort.default_child_processes): Default to the number of attached devices.
(ChromiumAndroidPort.test_expectations): Removed because it is unused.
(ChromiumAndroidPort.setup_test_run): Most contents moved into ChromiumAndroidDriver._setup_test()
(ChromiumAndroidPort.clean_up_test_run): Now the http server is stopped here.
(ChromiumAndroidPort._get_devices):
(ChromiumAndroidPort._get_device_serial):
(ChromiumAndroidDriver):
(ChromiumAndroidDriver.__init__):
(ChromiumAndroidDriver.__del__):
(ChromiumAndroidDriver._setup_test): Original contents of ChromiumAndroidPort.setup_test_run().
(ChromiumAndroidDriver._push_executable): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._push_fonts): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._push_test_resources): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._synchronize_datetime): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._run_adb_command): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._teardown_performance): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._get_crash_log): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver.cmd_line):
(ChromiumAndroidDriver._file_exists_on_device):
(ChromiumAndroidDriver._remove_all_pipes):
(ChromiumAndroidDriver._start):
(ChromiumAndroidDriver._start_once):
(ChromiumAndroidDriver.stop):
* Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py:
(MockRunCommand):
(MockRunCommand.__init__):
(MockRunCommand.mock_run_command_fn):
(MockRunCommand.mock_no_device):
(MockRunCommand.mock_one_device):
(MockRunCommand.mock_two_devices):
(MockRunCommand.mock_no_tombstone_dir):
(MockRunCommand.mock_no_tombstone_file):
(MockRunCommand.mock_ten_tombstones):
(MockRunCommand.mock_logcat):
(ChromiumAndroidPortTest):
(ChromiumAndroidPortTest.make_port):
(ChromiumAndroidPortTest.test_driver_cmd_line):
(ChromiumAndroidPortTest.test_get_devices_no_device):
(ChromiumAndroidPortTest.test_get_devices_one_device):
(ChromiumAndroidPortTest.test_get_devices_two_devices):
(ChromiumAndroidPortTest.test_get_device_serial_no_device):
(ChromiumAndroidPortTest.test_get_device_serial_one_device):
(ChromiumAndroidPortTest.test_get_device_serial_two_devices):
(ChromiumAndroidDriverTest):
(ChromiumAndroidDriverTest.setUp):
(ChromiumAndroidDriverTest.test_get_last_stacktrace):
(ChromiumAndroidDriverTest.test_get_crash_log):
(ChromiumAndroidDriverTest.test_cmd_line):
(ChromiumAndroidDriverTwoDriversTest):
(ChromiumAndroidDriverTwoDriversTest.test_two_drivers):
* Scripts/webkitpy/layout_tests/port/driver.py:
(Driver.run_test):
(Driver._get_crash_log): Added to allow subclasses to override.
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args): Removed the --adb-args command-line parameter because now we select device automatically. Added --adb-device to specify devices.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AXEnabled = false for AXIncrementors inside text fields
https://bugs.webkit.org/show_bug.cgi?id=93008

Reviewed by Anders Carlsson.

Source/WebCore:

Mock objects should return "enabled" by default, since they are valid objects.

* accessibility/AccessibilityMockObject.h:
(WebCore::AccessibilityMockObject::isEnabled):
(AccessibilityMockObject):

LayoutTests:

Update tests to reflect that mock objects should be enabled by default.

* platform/mac/accessibility/html5-input-number-expected.txt:
* platform/mac/accessibility/html5-input-number.html:
* platform/mac/accessibility/table-attributes-expected.txt:
* platform/mac/accessibility/table-sections-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124482 268f45cc-cd09-0410-ab3c-d52691b4dbfc
TypedArray set method is slow when called with another typed array
https://bugs.webkit.org/show_bug.cgi?id=92556

Patch by Arnaud Renevier <a.renevier@sisa.samsung.com> on 2012-08-02
Reviewed by Kenneth Russell.

PerformanceTests:

* Bindings/typed-array-set-from-typed.html: Added.

Source/WebCore:

When setting multiples values to a typed array from an array like
element, try to determine if the argument is a typed array. If so,
cast the argument to a typed array, and read each element with .item()
method. That avoid reading the value as a JSValue, and speedups set
method by approximatively 10x.

Introduce setWebGLArrayWithTypedArrayArgument template function which
checks if argument is a typed array. If so, it copies the data to
target typed array and returns true. Otherwise, it returns false.

Introduce copyTypedArrayBuffer template function which copies data
from a typed array to another one. This function is also used from
constructArrayBufferViewWithTypedArrayArgument.

* bindings/js/JSArrayBufferViewHelper.h:
(WebCore):
(WebCore::copyTypedArrayBuffer):
(WebCore::setWebGLArrayWithTypedArrayArgument):
(WebCore::setWebGLArrayHelper):
(WebCore::constructArrayBufferViewWithTypedArrayArgument):
* bindings/js/JSFloat32ArrayCustom.cpp:
(WebCore::JSFloat32Array::set):
* bindings/js/JSFloat64ArrayCustom.cpp:
(WebCore::JSFloat64Array::set):
* bindings/js/JSInt16ArrayCustom.cpp:
(WebCore::JSInt16Array::set):
* bindings/js/JSInt32ArrayCustom.cpp:
(WebCore::JSInt32Array::set):
* bindings/js/JSInt8ArrayCustom.cpp:
(WebCore::JSInt8Array::set):
* bindings/js/JSUint16ArrayCustom.cpp:
(WebCore::JSUint16Array::set):
* bindings/js/JSUint32ArrayCustom.cpp:
(WebCore::JSUint32Array::set):
* bindings/js/JSUint8ArrayCustom.cpp:
(WebCore::JSUint8Array::set):
* bindings/js/JSUint8ClampedArrayCustom.cpp:
(WebCore::JSUint8ClampedArray::set):

Source/WTF:

Add an checkInboundData function to TypedArrayBase to check if a
position will be not be out of bound or overflow from the typed array.

* wtf/TypedArrayBase.h:
(WTF::TypedArrayBase::checkInboundData):
(TypedArrayBase):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Override the DeviceOrientation
https://bugs.webkit.org/show_bug.cgi?id=91008

Reviewed by Pavel Feldman.

Source/WebCore:

Re-added the m_page member variable to DeviceOrientationController and
added InspectorInstrumentation to see if the DeviceOrientationData
should be overridden or not.

Added UI to the web inspector front-end to allow users to override the
device orientation.  This is currently hidden behind an experiment.

Test: inspector/device-orientation-success.html

* English.lproj/localizedStrings.js:
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::create):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::provideDeviceOrientationTo):
* dom/DeviceOrientationController.h:
(DeviceOrientationController):
* inspector/Inspector.json:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::overrideDeviceOrientationImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::overrideDeviceOrientation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::setDeviceOrientationOverride):
(WebCore):
(WebCore::InspectorPageAgent::clearDeviceOrientationOverride):
(WebCore::InspectorPageAgent::canOverrideDeviceOrientation):
(WebCore::InspectorPageAgent::overrideDeviceOrientation):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.UserAgentSettingsTab):
(WebInspector.UserAgentSettingsTab.prototype._createInput):
(WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
(WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
(WebInspector.UserAgentSettingsTab.prototype._onDeviceOrientationOverrideCheckboxClicked):
(WebInspector.UserAgentSettingsTab.prototype._applyDeviceOrientationUserInput):
(WebInspector.UserAgentSettingsTab.prototype._setDeviceOrientation.set if):
(WebInspector.UserAgentSettingsTab.prototype._setDeviceOrientation):
(WebInspector.UserAgentSettingsTab.prototype._createDeviceOrientationOverrideElement):
* inspector/front-end/UserAgentSupport.js:
(WebInspector.UserAgentSupport.DeviceOrientation):
(WebInspector.UserAgentSupport.DeviceOrientation.prototype.toSetting):
(WebInspector.UserAgentSupport.DeviceOrientation.parseSetting):
(WebInspector.UserAgentSupport.DeviceOrientation.parseUserInput):
(WebInspector.UserAgentSupport.DeviceOrientation.clearDeviceOrientationOverride):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):

LayoutTests:

New tests for Device Orientation override.

* inspector/device-orientation-success-expected.txt: Added.
* inspector/device-orientation-success.html: Added.


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