_compare_image() swaps actual and expected images by mistake
https://bugs.webkit.org/show_bug.cgi?id=94567

Reviewed by Ojan Vafai.

Re-work the code so that we consistently pass (expected, actual)
across all of the compare/diff routines.

* Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner._run_compare_test):
(SingleTestRunner._compare_output):
(SingleTestRunner._compare_text):
(SingleTestRunner._compare_audio):
(SingleTestRunner._compare_image):
(SingleTestRunner._run_reftest):
(SingleTestRunner._compare_output_with_reference):
* Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(write_test_result):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Text Autosizing: ::first-letter pseudo-element is incorrectly sized
https://bugs.webkit.org/show_bug.cgi?id=94540

Reviewed by Ojan Vafai.

Revert the changes in bugs 94517 and 94396 so that we are
actually looking for stderr output from ImageDiff and doing
image compares on ref tests on the wk2 ports again.

Also, do an actual diff_image() call if the hash checks fail on
reftests, and only fail the test if we get real diffs (or don't,
for mismatches).

Lastly, clean up the log messages to be more helpful.

* Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner._compare_image):
(SingleTestRunner._compare_output_with_reference):
* Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(write_test_result):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed gardening. Rebaselines following r126110.

* platform/chromium-linux/editing/selection/select-from-textfield-outwards-expected.png:
* platform/chromium-linux/fast/forms/input-text-drag-down-expected.png:
* platform/chromium-linux/fast/forms/input-text-self-emptying-click-expected.png:
* platform/chromium-linux/fast/forms/placeholder-position-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/input-text-self-emptying-click-expected.png:
* platform/chromium-mac/editing/input/caret-at-the-edge-of-input-expected.png:
* platform/chromium-mac/editing/inserting/before-after-input-element-expected.png:
* platform/chromium-mac/editing/pasteboard/4806874-expected.png:
* platform/chromium-mac/editing/pasteboard/drop-text-without-selection-expected.png:
* platform/chromium-mac/editing/pasteboard/input-field-1-expected.png:
* platform/chromium-mac/editing/selection/3690703-2-expected.png:
* platform/chromium-mac/editing/selection/3690703-expected.png:
* platform/chromium-mac/editing/selection/3690719-expected.png:
* platform/chromium-mac/editing/selection/4895428-3-expected.png:
* platform/chromium-mac/editing/selection/4975120-expected.png:
* platform/chromium-mac/editing/selection/drag-select-1-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-1-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-2-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-3-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-4-expected.png:
* platform/chromium-mac/editing/selection/select-across-readonly-input-5-expected.png:
* platform/chromium-mac/editing/selection/select-from-textfield-outwards-expected.png:
* platform/chromium-mac/fast/block/margin-collapse/103-expected.png:
* platform/chromium-mac/fast/css/input-search-padding-expected.png:
* platform/chromium-mac/fast/css/line-height-determined-by-primary-font-expected.png:
* platform/chromium-mac/fast/css/line-height-expected.png:
* platform/chromium-mac/fast/css/square-button-appearance-expected.png:
* platform/chromium-mac/fast/css/text-overflow-input-expected.png:
* platform/chromium-mac/fast/dom/isindex-001-expected.png:
* platform/chromium-mac/fast/dom/isindex-002-expected.png:
* platform/chromium-mac/fast/events/autoscroll-expected.png:
* platform/chromium-mac/fast/events/context-no-deselect-expected.png:
* platform/chromium-mac/fast/forms/basic-buttons-expected.png:
* platform/chromium-mac/fast/forms/basic-inputs-expected.png:
* platform/chromium-mac/fast/forms/box-shadow-override-expected.png:
* platform/chromium-mac/fast/forms/button-sizes-expected.png:
* platform/chromium-mac/fast/forms/color/input-appearance-color-expected.png:
* platform/chromium-mac/fast/forms/date/date-appearance-expected.png:
* platform/chromium-mac/fast/forms/encoding-test-expected.png:
* platform/chromium-mac/fast/forms/fieldset-align-expected.png:
* platform/chromium-mac/fast/forms/floating-textfield-relayout-expected.png:
* platform/chromium-mac/fast/forms/form-element-geometry-expected.png:
* platform/chromium-mac/fast/forms/input-align-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-default-bkcolor-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-disabled-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-focus-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-height-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-preventDefault-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-readonly-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-selection-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-visibility-expected.png:
* platform/chromium-mac/fast/forms/input-appearance-width-expected.png:
* platform/chromium-mac/fast/forms/input-baseline-expected.png:
* platform/chromium-mac/fast/forms/input-disabled-color-expected.png:
* platform/chromium-mac/fast/forms/input-double-click-selection-gap-bug-expected.png:
* platform/chromium-mac/fast/forms/input-field-text-truncated-expected.png:
* platform/chromium-mac/fast/forms/input-placeholder-paint-order-expected.png:
* platform/chromium-mac/fast/forms/input-placeholder-visibility-1-expected.png:
* platform/chromium-mac/fast/forms/input-placeholder-visibility-3-expected.png:
* platform/chromium-mac/fast/forms/input-readonly-autoscroll-expected.png:
* platform/chromium-mac/fast/forms/input-readonly-dimmed-expected.png:
* platform/chromium-mac/fast/forms/input-readonly-empty-expected.png:
* platform/chromium-mac/fast/forms/input-spaces-expected.png:
* platform/chromium-mac/fast/forms/input-table-expected.png:
* platform/chromium-mac/fast/forms/input-text-click-inside-expected.png:
* platform/chromium-mac/fast/forms/input-text-click-outside-expected.png:
* platform/chromium-mac/fast/forms/input-text-double-click-expected.png:
* platform/chromium-mac/fast/forms/input-text-drag-down-expected.png:
* platform/chromium-mac/fast/forms/input-text-option-delete-expected.png:
* platform/chromium-mac/fast/forms/input-text-scroll-left-on-blur-expected.png:
* platform/chromium-mac/fast/forms/input-text-self-emptying-click-expected.png:
* platform/chromium-mac/fast/forms/input-text-word-wrap-expected.png:
* platform/chromium-mac/fast/forms/input-type-text-min-width-expected.png:
* platform/chromium-mac/fast/forms/input-value-expected.png:
* platform/chromium-mac/fast/forms/input-width-expected.png:
* platform/chromium-mac/fast/forms/minWidthPercent-expected.png:
* platform/chromium-mac/fast/forms/number/number-appearance-rtl-expected.png:
* platform/chromium-mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png:
* platform/chromium-mac/fast/forms/number/number-appearance-spinbutton-layer-expected.png:
* platform/chromium-mac/fast/forms/placeholder-position-expected.png:
* platform/chromium-mac/fast/forms/placeholder-pseudo-style-expected.png:
* platform/chromium-mac/fast/forms/plaintext-mode-2-expected.png:
* platform/chromium-mac/fast/forms/tabbing-input-iframe-expected.png:
* platform/chromium-mac/fast/forms/text-style-color-expected.png:
* platform/chromium-mac/fast/forms/textfield-focus-ring-expected.png:
* platform/chromium-mac/fast/forms/textfield-overflow-expected.png:
* platform/chromium-mac/fast/forms/validation-message-appearance-expected.png:
* platform/chromium-mac/fast/forms/visual-hebrew-text-field-expected.png:
* platform/chromium-mac/fast/frames/take-focus-from-iframe-expected.png:
* platform/chromium-mac/fast/html/details-no-summary4-expected.png:
* platform/chromium-mac/fast/html/details-open-javascript-expected.png:
* platform/chromium-mac/fast/html/details-open2-expected.png:
* platform/chromium-mac/fast/html/details-open4-expected.png:
* platform/chromium-mac/fast/lists/dynamic-marker-crash-expected.png:
* platform/chromium-mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.png:
* platform/chromium-mac/fast/repaint/subtree-root-skipped-expected.png:
* platform/chromium-mac/fast/replaced/replaced-breaking-expected.png:
* platform/chromium-mac/fast/replaced/replaced-breaking-mixture-expected.png:
* platform/chromium-mac/fast/replaced/width100percent-textfield-expected.png:
* platform/chromium-mac/fast/speech/input-appearance-numberandspeech-expected.png:
* platform/chromium-mac/fast/speech/input-appearance-speechbutton-expected.png:
* platform/chromium-mac/fast/speech/speech-bidi-rendering-expected.png:
* platform/chromium-mac/fast/table/003-expected.png:
* platform/chromium-mac/fast/table/colspanMinWidth-expected.png:
* platform/chromium-mac/fast/table/spanOverlapRepaint-expected.png:
* platform/chromium-mac/fast/table/text-field-baseline-expected.png:
* platform/chromium-mac/fast/text/textIteratorNilRenderer-expected.png:
* platform/chromium-mac/fast/transforms/transformed-focused-text-input-expected.png:
* platform/chromium-mac/plugins/mouse-click-plugin-clears-selection-expected.png:
* platform/chromium-mac/svg/custom/inline-svg-in-xhtml-expected.png:
* platform/chromium-mac/svg/hixie/mixed/003-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/45621-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug1188-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug12384-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug18359-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug24200-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug2479-2-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug2479-3-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug28928-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug4382-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug46368-1-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug46368-2-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug51037-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug55545-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug59354-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug7342-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug96334-expected.png:
* platform/chromium-mac/tables/mozilla/dom/tableDom-expected.png:
* platform/chromium-mac/tables/mozilla/other/move_row-expected.png:
* platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.png:
* platform/chromium-win/editing/selection/select-from-textfield-outwards-expected.png:
* platform/chromium-win/fast/forms/input-text-drag-down-expected.png:
* platform/chromium-win/fast/forms/input-text-self-emptying-click-expected.png:
* platform/chromium/TestExpectations:
* platform/qt-4.8/TestExpectations:
* platform/qt-mac/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126190 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Store CString data in the CStringBuffer to avoid the double indirection
https://bugs.webkit.org/show_bug.cgi?id=94562

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-08-21
Reviewed by Darin Adler.

Source/Platform: 

* chromium/src/WebCString.cpp:
(WebKit::WebCString::length): Update the length() computation following the changes
in CStringBuffer.

Source/WebCore: 

* bindings/cpp/WebDOMCString.cpp:
(WebDOMCString::length): With the patch, CStringBuffer hold the real string length instead of the
size of the buffer including the terminating zero. WebDOMCString is updated accordingly.

Source/WTF: 

Previously, any non-trivial CString would require two allocations:
1) CStringBuffer (ref-counted container for CString's data).
2) VectorBuffer's m_buffer (the actual char data).

This patches changes CStringBuffer to hold the data previously owned by
WTF::Vector and WTF::VectorBuffer. This makes CString more efficient
both in CPU time and memory use.

* wtf/text/CString.cpp:
(WTF::CStringBuffer::createUninitialized): This new method allocate the memory
for CStringBuffer and its data. We simply allocate more memory after CStringBuffer
to hold the data.

The extra memory needed to store the terminating zero is now handled by design.
(WTF::CString::CString): Move the test for "str" one level up the stack from CString::init().
This avoid double checking the pointer when using the other constructor.
(WTF::CString::init):
(WTF::CString::newUninitialized):
(WTF::CString::copyBufferIfNeeded):
* wtf/text/CString.h:
(WTF::CStringBuffer::data):
(WTF::CStringBuffer::length):
(CStringBuffer):
(WTF::CStringBuffer::CStringBuffer):
(WTF::CStringBuffer::mutableData):
(WTF::CString::length):

Tools: 

Add test coverage for WTF::CString.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/GNUmakefile.am:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WTF/CString.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-6.html fails
https://bugs.webkit.org/show_bug.cgi?id=50797

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-08-21
Reviewed by Andreas Kling.

Source/WebCore:

Add a check in fast-path parseAlphaValue() to return early
if the CSS <alphavalue> ended with an invalid digit.

Test: canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-6.html

* css/CSSParser.cpp:
(WebCore::parseAlphaValue):

LayoutTests:

Unskipped tests that are now passing after this fix and removed
wrong expectations.

* platform/chromium/TestExpectations:
* platform/chromium/canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-6-expected.txt: Removed.
* platform/efl/Skipped:
* platform/gtk/TestExpectations:
* platform/mac/canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-6-expected.txt: Removed.
* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126192 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Split out crumb list part of styles from elementsPanel.css
https://bugs.webkit.org/show_bug.cgi?id=94301

Patch by Taiju Tsuiki <tzik@chromium.org> on 2012-08-21
Reviewed by Pavel Feldman.

As a preparation to use BreadcrumbList on FileSystem, introduce breadcrumbList.css and
move crumb-related style entries into it from elementsPanel.css.

No new tests. This change does not make functional change.

* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/ElementsPanel.js:
* inspector/front-end/WebKit.qrc:
* inspector/front-end/breadcrumbList.css: Added.
(.crumbs):
(.crumbs .crumb):
(.crumbs .crumb.collapsed > *):
(.crumbs .crumb.collapsed::before):
(.crumbs .crumb.compact .extra):
(.crumbs .crumb.dimmed):
(.crumbs .crumb.start):
(.crumbs .crumb.end):
(.crumbs .crumb.selected):
(.crumbs .crumb.selected:hover):
(.crumbs .crumb.selected.end, .crumbs .crumb.selected.end:hover):
(.crumbs .crumb:hover):
(.crumbs .crumb.dimmed:hover):
(.crumbs .crumb.end:hover):
* inspector/front-end/elementsPanel.css:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126193 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Blocking a resource via Content Security Policy should trigger an Error event.
https://bugs.webkit.org/show_bug.cgi?id=89440

Patch by Mike West <mkwst@chromium.org> on 2012-08-21
Reviewed by Jochen Eisinger.

Source/WebCore:

If a CSP directive is violated, CachedResourceLoader will trigger a
console error, and return a null image. In that case, we now dispatch
an error on the relevant element.

Adjusted http/tests/security/contentSecurityPolicy/image-blocked.html
and http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html
to test the new behavior.

This has the side-effect of also generating errors for images blocked by
Chromium's content settings. Adjusted
platform/chromium/permissionclient/image-permissions.html to agree with
the new behavior.

* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):

LayoutTests:

* http/tests/security/contentSecurityPolicy/image-blocked-expected.txt:
* http/tests/security/contentSecurityPolicy/image-blocked.html:
* http/tests/security/contentSecurityPolicy/register-bypassing-scheme-expected.txt:
* http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html:
    Adjusting existing tests to use the error event, as opposed to
    hacking around the fact that it wasn't triggered.
* platform/chromium/permissionclient/image-permissions-expected.txt:
* platform/chromium/permissionclient/image-permissions.html:
    Error events are now also generated for images blocked by Chromium's
    content settings.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: Completion events of InspectorFileSystemAgent should be fired asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=93933

Patch by Taiju Tsuiki <tzik@chromium.org> on 2012-08-21
Reviewed by Yury Semikhatsky.

InspectorFileSystemAgent fires completion event too early in error case. It should wait
until JS code is ready.

Source/WebCore:

Test: http/tests/inspector/filesystem/request-directory-content.html
      http/tests/inspector/filesystem/request-file-content.html
      http/tests/inspector/filesystem/request-metadata.html

* inspector/InspectorFileSystemAgent.cpp:
(WebCore): Add ReportErrorTask class

LayoutTests:

* http/tests/inspector/filesystem/request-directory-content-expected.txt:
* http/tests/inspector/filesystem/request-directory-content.html: Add more error case test.
* http/tests/inspector/filesystem/request-file-content-expected.txt:
* http/tests/inspector/filesystem/request-file-content.html: Add more error case test.
* http/tests/inspector/filesystem/request-filesystem-root-expected.txt:
* http/tests/inspector/filesystem/request-metadata-expected.txt:
* http/tests/inspector/filesystem/request-metadata.html: Add more error case test.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126195 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer constructed and destructed
https://bugs.webkit.org/show_bug.cgi?id=92993

Patch by Ulan Degenbaev <ulan@chromium.org> on 2012-08-21
Reviewed by Kenneth Russell.

Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer
is constructed and destructed so that V8's garbage collection
heuristics can account for the memory held by these objects.

.:

* ManualTests/typed-array-memory.html: Added.

Source/WebCore:

* WebCore.gypi:
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBufferDeallocationObserver::instance):
(WebCore):
(WebCore::V8ArrayBuffer::constructorCallback):
* bindings/v8/custom/V8ArrayBufferCustom.h: Added.
(WebCore):
* bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::initMessageEvent):

Source/WTF:

* wtf/ArrayBuffer.h:
(WTF):
(ArrayBufferDeallocationObserver):
(WTF::ArrayBufferContents::ArrayBufferContents):
(WTF::ArrayBufferContents::transfer):
(ArrayBufferContents):
(ArrayBuffer):
(WTF::ArrayBuffer::setDeallocationObserver):
(WTF::ArrayBufferContents::~ArrayBufferContents):

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