Occasional assertion in JSNPObject::invalidate() running plugins/object-embed-plugin-scripting.html
https://bugs.webkit.org/show_bug.cgi?id=112518

Mark this test as [ Crash Pass ] in debug.

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146008 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mark some more tests as asserting in debug, because of
https://bugs.webkit.org/show_bug.cgi?id=105986

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146009 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[ENCHANT] Invalid charset encoding used for spelling guess context menu items
https://bugs.webkit.org/show_bug.cgi?id=112516

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2013-03-17
Reviewed by Gustavo Noronha Silva.

Convert spelling guesses returned by enchant to UTF-16 before
passing them to WebCore.

* platform/text/enchant/TextCheckerEnchant.cpp:
(WebCore::TextCheckerEnchant::getGuessesForWord): Use
String::fromUTF8().

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146010 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Invalid charset encoding using when substituting a misspelled word in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=112517

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2013-03-17
Reviewed by Alexey Proskuryakov.

The problem is that we are creating the WebContextMenuItemData
with the GtkAction label as UTF-8.

* UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::contextMenuItemActivatedCallback): Use String::fromUTF8()
to convert the GtkAction label to UTF-16.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146011 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Remove the zoom filter operation ifdef
https://bugs.webkit.org/show_bug.cgi?id=112390

Reviewed by Darin Fisher.

This ifdef is not needed once the change that introduced it is
rolled into chromium, and the chromium side guards on the ifdef
are removed. Then it just does nothing and should be deleted.

* chromium/public/WebFilterOperation.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move font-family applying code to StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=112441

Reviewed by Allan Sandfeld Jensen.

Many of the font related properties were moved to StyleBuilder in r87362
two years ago. Move font-family as well so that all font properties are
handled the same way.

No new tests, no change in functionality.

* css/StyleBuilder.cpp:
(ApplyPropertyFontFamily):
(WebCore::ApplyPropertyFontFamily::applyInheritValue):
(WebCore::ApplyPropertyFontFamily::applyInitialValue):
(WebCore::ApplyPropertyFontFamily::applyValue):
(WebCore::ApplyPropertyFontFamily::createHandler):
(WebCore::StyleBuilder::StyleBuilder):
Add ApplyPropertyFontFamily for CSSPropertyFontFamily.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
Remove CSSPropertyFontFamily from the giant switch statement.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146014 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=97124
Mark a couple of WK2 tests as possibly asserting in debug.

* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Fix and improve dist hooks for translations
https://bugs.webkit.org/show_bug.cgi?id=112519

Reviewed by Carlos Garcia Campos.

Source/WebCore:

* GNUmakefile.am: move translation-related rules and lists to the po directory's
GNUmakefile.am.

Source/WebCore/platform/gtk/po:

* GNUmakefile.am: move dist-related rules here; also move translation-related files
to this file's EXTRA_DIST, making sure to only list the files we actually want
shipped, so junk such as .orig, .rej and backup files do not end up in the tarball.

Source/WebKit/gtk:

* GNUmakefile.am: removed left-over translation files from EXTRA_DIST

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add reload button (and F5 accelerator) to the GtkLauncher toolbar
https://bugs.webkit.org/show_bug.cgi?id=112442

Patch by Morten Stenshorne <mstensho@opera.com> on 2013-03-17
Reviewed by Gustavo Noronha Silva.

* GtkLauncher/main.c:
(reloadCb):
(createToolbar):
(createWindow):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146019 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

Adding failure expectations for the two reftests added in r145982, failing due to disabled subpixel layout.
Triaging/enhancing failure expectations for spellcheck tests after r145940.

* platform/gtk/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146022 268f45cc-cd09-0410-ab3c-d52691b4dbfc
BUILD FIX (r145592): AutodrainedPool.h moved to WTF
<http://webkit.org/b/112171>

Fixes the following build failure:

    Source/WebCore/platform/audio/mac/AudioBusMac.mm:32:9: fatal error: 'AutodrainedPool.h' file not found
    #import "AutodrainedPool.h"
            ^
    1 error generated.

* platform/audio/mac/AudioBusMac.mm: Fix include.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
fast/frames/sandboxed-iframe-navigation-allowed.html sometimes
asserts in debug.

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Legacy CSS vendor prefixes should only work for Dashboard
https://bugs.webkit.org/show_bug.cgi?id=111890

Reviewed by Eric Seidel.

Source/WebCore:

Our experience with the Chromium port is that these legacy CSS vendor
prefixes (-apple- and -khtml-) are not needed for web compatibility.
There is reason to believe, however, that they are needed for
compatibility with Mac OS X Dashboard widgets.

This patch makes the code for these legacy CSS vendor prefixes
enabled at runtime and only enables them when running in Dashboard
compatibility mode. This is the first step towards the plan outlined in
https://lists.webkit.org/pipermail/webkit-dev/2013-March/024085.html.

This patch also removes support for ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
from the V8 bindings because V8 is never used with Dashboard.

* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore):
* bindings/generic/RuntimeEnabledFeatures.h:
(RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::setLegacyCSSVendorPrefixesEnabled):
(WebCore::RuntimeEnabledFeatures::legacyCSSVendorPrefixesEnabled):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::getCSSPropertyNamePrefix):
(WebCore::cssPropertyIDForJSCSSPropertyName):
* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::cssPropertyInfo):
* css/CSSParser.cpp:
(WebCore::CSSParser::rewriteSpecifiers):

Source/WebKit/mac:

Enable legacy CSS vendor prefixes when we've been asked to turn on
Dashboard compatibility mode.

* WebView/WebView.mm:
(-[WebView _setDashboardBehavior:to:]):

LayoutTests:

* inspector/styles/vendor-prefixes-expected.txt:
    - Update results to show our new behavior now that -apple- and
      -khtml- are not supported.
* platform/mac/TestExpectations:
    - Skip a test that is testing that we support -apple- prefixes.
* platform/mac/fast/css/dashboard-region-parser.html:
    - Update test to use -webkit- rather than -apple-.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add tests for calendar picker month popup
https://bugs.webkit.org/show_bug.cgi?id=112107

Adding tests to check if mouse and keyboard operations work on the month popup.

Reviewed by Kent Tamura.

* platform/chromium/fast/forms/calendar-picker/calendar-picker-key-operations-expected.txt:
* platform/chromium/fast/forms/calendar-picker/calendar-picker-key-operations.html:
* platform/chromium/fast/forms/calendar-picker/calendar-picker-mouse-operations-expected.txt:
* platform/chromium/fast/forms/calendar-picker/calendar-picker-mouse-operations.html:
* platform/chromium/fast/forms/calendar-picker/month-picker-key-operations-expected.txt:
* platform/chromium/fast/forms/calendar-picker/month-picker-key-operations.html:
* platform/chromium/fast/forms/calendar-picker/month-picker-mouse-operations-expected.txt:
* platform/chromium/fast/forms/calendar-picker/month-picker-mouse-operations.html:
* platform/chromium/fast/forms/calendar-picker/resources/calendar-picker-common.js:
(clickMonthPopupButton): Clicks the month popup button to open the month popup.
(clickYearListCell): Clicks the year list cell for the given year to reveal the month buttons.
(hoverOverMonthButton): Moves the mouse over to the month button for the given month.
(clickMonthButton): Clicks the month button for the given month.
(checkYearListViewScrollOffset): Checks the year list view scroll offset and returns the difference from the last time it was called.
* platform/chromium/fast/forms/calendar-picker/week-picker-key-operations-expected.txt:
* platform/chromium/fast/forms/calendar-picker/week-picker-key-operations.html:
* platform/chromium/fast/forms/calendar-picker/week-picker-mouse-operations-expected.txt:
* platform/chromium/fast/forms/calendar-picker/week-picker-mouse-operations.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146026 268f45cc-cd09-0410-ab3c-d52691b4dbfc
fast/frames/flattening/frameset-flattening-subframesets.html is flakey

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146027 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[HTMLTemplateElement] prevent </template> from matching "template" in a non-HTML tags on the stack of open elements
https://bugs.webkit.org/show_bug.cgi?id=112487

Reviewed by Adam Barth.

Source/WebCore:

When processing an end template tag, the parser now pops until a "template" tag is parsed, but now ensures that
the "template" it pops is in the HTML namespace.

Tests added to the html5lib test suite.

* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popUntil):
(WebCore):
(WebCore::HTMLElementStack::popUntilPopped):
* html/parser/HTMLElementStack.h:
(HTMLElementStack):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processTemplateEndTag):

LayoutTests:

* html5lib/resources/template.dat:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
INPUT_MULTIPLE_FIELDS_UI: Don't update shadow tree by updating any attribute
https://bugs.webkit.org/show_bug.cgi?id=111990

Reviewed by Hajime Morrita.

Source/WebCore:

Bug detail:
Typing '1' then '1' into an hour field doesn't set the field to
'11' if an attribute is updated during these two keyboard inputs
because we always re-construct a shadow DOM tree by updating any
attributes and a shadow node records keyboard input state.

How to fix:
We should not re-construct a shadow DOM tree by updating
unaffected attributes. For example, we should re-construct it by
updating 'min' attribute, but we should not by updating 'class'
attribute.
We have InputType::updateInnerTextValue call in parseAttribute for
text field input types. The multiple fields input types
re-construct shadow DOM tree in updateInnerTextValue. The
updateInnerTextValue call is unnecessary for the multiple fields
input types, and we should call it when it is necessary. So, we
add InputType::attributeChange and text field input types call
updateInnerTextValue in it, and other input types don't.
Also, multiple fields input types need to call
updateInnerTextValue by 'value' attribute change. We add
InputType::valueAttributeChanged.

Tests: Update
fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html. The
value attribute change behavior is covered by
time-multiple-fields-change-layout-by-value.html and
time-multiple-fields-spinbutton-change-and-input-events.html.

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
- Add a valueAttributeChanged call.
- Calls InputType::attributeChanged
* html/InputType.cpp:
(WebCore::InputType::attributeChanged): Added an empty implementation.
(WebCore::InputType::valueAttributeChanged): Ditto.
* html/InputType.h:
(InputType): Declare attributeChanged and valueAttributeChanged.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::attributeChanged):
Added. Always call updateInnerTextValue.
* html/TextFieldInputType.h:
(TextFieldInputType): Declare attributeChanged.
* html/BaseMultipleFieldsDateAndTimeInputType.cpp:
(WebCore::BaseMultipleFieldsDateAndTimeInputType::valueAttributeChanged):
Added. Re-construct shadow DOM tree if the input has no dirty value.
* html/BaseMultipleFieldsDateAndTimeInputType.h:
(BaseMultipleFieldsDateAndTimeInputType): Declare valueAttributeChanged.

LayoutTests:

* fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146029 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Encapsulate PlatformMessagePortChannel a little better yet
https://bugs.webkit.org/show_bug.cgi?id=112479

Reviewed by Sam Weinig.

* dom/MessagePortChannel.h: We no longer expose PlatformMessagePortChannel in
public functions in cross-platform code.

* dom/default/PlatformMessagePortChannel.cpp:
(WebCore::MessagePortChannel::createChannel): Tweaked the factory method to avoid
using the old create() function.
(WebCore::MessagePortChannel::~MessagePortChannel): Removed an unhelpful comment.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Remove unused WebNode::hasEventListeners API
https://bugs.webkit.org/show_bug.cgi?id=112529

Reviewed by James Robinson.

This API no longer has any callers and can be removed.

* public/WebNode.h:
* src/WebNode.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of minute/second/millisecond fields should respect min/max attributes
https://bugs.webkit.org/show_bug.cgi?id=112527

Patch by Kunihiko Sakamoto <ksakamoto@chromium.org> on 2013-03-17
Reviewed by Kent Tamura.

Source/WebCore:

Make step-up/-down of the minute, second, and millisecond field
respect the min/max attributes of the element.
Note that it still accepts any keyboard inputs (the element
becomes 'invalid' state when out-of-range values entered).
Also, disable these fields when there is only single possible value.

Tests: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
       fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html

* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder): Add fields for min/max of minute/second/millisecond.
(WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set min/max for the fields.
(WebCore::DateTimeEditBuilder::visitField): Pass min/max parameters to the field constructors.
(WebCore::DateTimeEditBuilder::shouldHourFieldDisabled): Does not disable if minute, second, millisecond fields are all disabled, because we need at least one editable field.
(WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled): Disables if min, max, and value are equal.
(WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled): Ditto.
(WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled): Ditto.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
(WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
(WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
(WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
(WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
(WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
(WebCore::DateTimeMillisecondFieldElement::create):
(WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
(WebCore::DateTimeMinuteFieldElement::create):
(WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):
(WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
(WebCore::DateTimeSecondFieldElement::create):
(WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement):
(WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
* html/shadow/DateTimeFieldElements.h:
(DateTimeDayFieldElement):
(DateTimeHourFieldElementBase):
(DateTimeHour11FieldElement):
(DateTimeHour12FieldElement):
(DateTimeHour23FieldElement):
(DateTimeHour24FieldElement):
(DateTimeMillisecondFieldElement): Add minimum/maximum parameters.
(DateTimeMinuteFieldElement): Add minimum/maximum parameters.
(DateTimeMonthFieldElement):
(DateTimeSecondFieldElement): Add minimum/maximum parameters.
(DateTimeWeekFieldElement):
(DateTimeYearFieldElement):
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
(WebCore::DateTimeNumericFieldElement::formatValue): Use hard-limit value instead of m_range.maximum, because millisecond field with max<100 will be displayed in two digits otherwise.
(WebCore::DateTimeNumericFieldElement::setValueAsInteger):
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement): Changed to have hard limits as a data member.

LayoutTests:

* fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield-expected.txt:
* fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html:
* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt:
* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html:

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