add OVERRIDE annotations to CCThreadTask
https://bugs.webkit.org/show_bug.cgi?id=87074

Patch by Lu Guanqun <guanqun.lu@intel.com> on 2012-05-22
Reviewed by James Robinson.

No new tests required.

* platform/graphics/chromium/cc/CCThreadTask.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117990 268f45cc-cd09-0410-ab3c-d52691b4dbfc
add OVERRIDE annotations to classes derived from CCAnimationCurve
https://bugs.webkit.org/show_bug.cgi?id=87073

Patch by Lu Guanqun <guanqun.lu@intel.com> on 2012-05-22
Reviewed by James Robinson.

No new tests required.

* platform/graphics/chromium/cc/CCAnimationCurve.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117991 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: JavaScriptSourceFrame should be based on JavaScriptSource not UISourceCode.
https://bugs.webkit.org/show_bug.cgi?id=87135

Reviewed by Pavel Feldman.

Source/WebCore:

Renamed _uiSourceCode to _javaScriptSource in JavaScriptSourceFrame.
Removed unused uiSourceCode getter from JavaScriptSourceFrame.

* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame):
(WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
(WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
(WebInspector.JavaScriptSourceFrame.prototype._onContentChanged):
(WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
(WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
(WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
(WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
(WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
(WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
(WebInspector.JavaScriptSourceFrame.prototype.onTextViewerContentLoaded):
(WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
(WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._createSourceFrame):

LayoutTests:

* http/tests/inspector/debugger-test.js:
(initialize_DebuggerTest):
* inspector/debugger/script-formatter-breakpoints.html:
* inspector/debugger/script-formatter-console.html:
* inspector/debugger/source-frame-count.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117992 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Truncating multiplication on integers should not OSR exit every time
https://bugs.webkit.org/show_bug.cgi?id=85752

Reviewed by Gavin Barraclough.
        
Merge r116264 from dfgopt.

* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::mulShouldSpeculateInteger):
(Graph):
(JSC::DFG::Graph::mulImmediateShouldSpeculateInteger):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithMul):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117993 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Intent::create() throws is service is "url://a url"
https://bugs.webkit.org/show_bug.cgi?id=86873

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-05-22
Reviewed by Adam Barth.

Remove checks in webintents/web-intents-obj-constructor.html which are
valid for Google URL but fail with KURL.

* webintents/web-intents-obj-constructor-expected.txt:
* webintents/web-intents-obj-constructor.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117994 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Give FileInputType a setFiles() method, let Drag-n-Drop call it.
https://bugs.webkit.org/show_bug.cgi?id=87139

Reviewed by Ojan Vafai.

filesChosen(), the FileChooserClient callback, used to modify
m_fileList directly. Instead, convert the FileChooserClient
data to a FileList and pass that to a factored-out setFiles()
method. This is in preparation to making the files property
writable.

Pure refactoring, no functionality change.

* html/FileInputType.cpp:
(WebCore::FileInputType::toFileList):
(WebCore::FileInputType::setFiles):
(WebCore::FileInputType::filesChosen):
(WebCore):
* html/FileInputType.h:
(FileInputType):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Remove old staging enum value WebURLRequest::TargetType::TargetIsPrerender
https://bugs.webkit.org/show_bug.cgi?id=85021

Reviewed by Adam Barth.

* chromium/public/WebURLRequest.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Gardening of flaky media tests
https://bugs.webkit.org/show_bug.cgi?id=87138

Unreviewed gardening.

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-05-22

* platform/efl/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: provide content-related actions on the sources panel.
https://bugs.webkit.org/show_bug.cgi?id=87144

Reviewed by Vsevolod Vlasov.

Now that the authoring focus moved to the Source panel, context menu actions should follow:
- refactored context menu actions to be provider-based
- edited call sites to add applicable actions.

* English.lproj/localizedStrings.js:
* inspector/front-end/ContextMenu.js:
(WebInspector.ContextMenu.prototype.appendApplicableItems):
* inspector/front-end/HandlerRegistry.js:
(WebInspector.HandlerRegistry.prototype.unregisterHandler):
(WebInspector.HandlerRegistry.prototype.appendApplicableItems.doSave):
(WebInspector.HandlerRegistry.prototype.appendApplicableItems.save):
(WebInspector.HandlerRegistry.prototype.appendApplicableItems):
* inspector/front-end/JavaScriptSourceFrame.js:
(WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
* inspector/front-end/NavigatorView.js:
(WebInspector.NavigatorView.prototype.handleContextMenu):
(WebInspector.BaseNavigatorTreeElement.prototype.onattach):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkPanel):
(WebInspector.NetworkPanel.prototype.searchCanceled):
(WebInspector.NetworkPanel.prototype.appendApplicableItems.reveal):
(WebInspector.NetworkPanel.prototype.appendApplicableItems):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceSourceFrame.prototype._contentChanged):
(WebInspector.ResourceSourceFrame.prototype.populateTextAreaContextMenu):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.appendApplicableItems):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.populateTextAreaContextMenu):
* inspector/front-end/TextViewer.js:
(WebInspector.TextViewer.prototype._contextMenu):
* inspector/front-end/UIUtils.js:
* inspector/front-end/externs.js:
* inspector/front-end/inspector.js:
(WebInspector._doLoadedDoneWithCapabilities.get if):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@117999 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] EFL's DRT needs to print information about received Web Intents
https://bugs.webkit.org/show_bug.cgi?id=86864

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-05-22
Reviewed by Adam Barth.

.:

Enable Web Intents by default on EFL port.

* Source/cmake/OptionsEfl.cmake:

Source/WebKit/efl:

* ewk/ewk_intent.cpp:
(ewk_intent_suggestions_get): Add function to retrieve suggested
service URLs for an intent.
(ewk_intent_extra_names_get): Add function to retrieve names of
extra metadata for an intent.
(ewk_intent_new): Correctly initialize Ewk_Intent members to avoid
crashes.
(ewk_intent_free): Unref shared strings.
* ewk/ewk_intent.h:

Tools:

Catch "intent,new" signal in EFL's DumpRenderTree and dump information
about the intent. This output is expected by several webintents test
cases.

* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::createView):
(DumpRenderTreeChrome::onFrameCreated):
(DumpRenderTreeChrome::onFrameIntentNew):
* DumpRenderTree/efl/DumpRenderTreeChrome.h:
(DumpRenderTreeChrome):

LayoutTests:

Unskip a few Web Intents tests that are passing now that the
functionality is enabled by default on EFL port.

* platform/efl/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118000 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement DOM_KEY_LOCATION_LEFT and RIGHT of KeyboardEvent's location property
https://bugs.webkit.org/show_bug.cgi?id=86694

Source/WebCore:

As KeyboardEvent for left/right location key, e.g. left-control,
right-control, provides DOM_KEY_LOCATION_STANDARD as keyLocation property,
modified KeyCodeConversion to make PlatformKeyboardEvent
provide virtual keycodes with location information, e.g. VK_LCONTROL or
VK_RCONTROL, and modified KeyboardEvent to generate location information
from the virtual keycodes, e.g. genrating DOM_KEY_LOCATION_LEFT for
VK_LCONTROL. KeyboardEvent also removes location information from
the virtual keycodes, e.g. genrating VK_CONTROL for VK_LCONTROL.
The location property is defined in the W3C DOM3 specification:
http://www.w3.org/TR/DOM-Level-3-Events/#events-keyboardevents

Patch by Takashi Sakamoto <tasak@google.com> on 2012-05-22
Reviewed by Alexey Proskuryakov.

Test: fast/events/keydown-leftright-keys.html

* dom/KeyboardEvent.cpp:
(WebCore::windowsVirtualKeyCodeWithoutLocation):
Added a function which removes location information from a given
keycode. For example, when VK_LCONTROL is given, returns VK_CONTROL.
(WebCore::keyLocationCode):
Added a function which provides location information from a given
keycode. For example, when VK_LCONTROL is given,
returns DOM_KEY_LOCATION_LEFT.
(WebCore::KeyboardEvent::KeyboardEvent):
Initialized m_keyLocation by using the above keyLocationCode.
(WebCore::KeyboardEvent::keyCode):
Modified to use the above two functions to initialize keycode property
and keylocation property.
* platform/chromium/KeyCodeConversionAndroid.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
* platform/cocoa/KeyEventCocoa.mm:
(WebCore::windowsKeyCodeForKeyCode):
Modified these keycode conversions to return keycodes with location
information, e.g. modified keycode conversions returns VK_LCONTROL
for left control.

Tools:

Modify keyDown to create left- and right- control, shift, and alt
keyevent for a test to check that keyLocation property can have
DOM_KEY_LOCATION_LEFT for left-control, shift, and alt, and
DOM_KEY_LOCATION_RIGHT for right-control, shift, and alt.

Patch by Takashi Sakamoto <tasak@google.com> on 2012-05-22
Reviewed by Alexey Proskuryakov.

* DumpRenderTree/chromium/EventSender.cpp:
(EventSender::keyDown):
* DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController keyDown:withModifiers:withLocation:]):

LayoutTests:

Patch by Takashi Sakamoto <tasak@google.com> on 2012-05-22
Reviewed by Alexey Proskuryakov.

* fast/events/keydown-leftright-keys-expected.txt: Added.
* fast/events/keydown-leftright-keys.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ASSERTs in RenderInline::layout()
https://bugs.webkit.org/show_bug.cgi?id=63365

Patch by Rob Buis <rbuis@rim.com> on 2012-05-22
Reviewed by Nikolas Zimmermann.

Source/WebCore:

Do not allow creation of renderers for text content children in elements by default.
Subclasses like SVGTextElement override this behavior.
This also fixes the <a><textPath</a> case because the <a> parent decides to allow <textPath> or not:
http://www.w3.org/2003/01/REC-SVG11-20030114-errata#linking-text-environment

Test: svg/custom/disallowed-text-content-rendering.svg

* svg/SVGElement.cpp:
(WebCore::SVGElement::childShouldCreateRenderer):
* svg/SVGElement.h:
(SVGElement):

LayoutTests:

Test text content element children inside elements.

* svg/custom/disallowed-text-content-rendering-expected.txt: Added.
* svg/custom/disallowed-text-content-rendering.svg: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118002 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=87145
REGRESSION (r117815) fast/css/zoom-in-length-round-trip.html fails on Mac bots

* platform/mac/Skipped: Skipping until Levi Weintraub can explore the regression.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] jquery/attributes.html SLOW -> TIMEOUT

Unreviewed gardening.

* platform/chromium/test_expectations.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118004 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Assertion failure (toRenderBox() called on a RenderInline) beneath RenderBlock::blockBeforeWithinSelectionRoot()
https://bugs.webkit.org/show_bug.cgi?id=86500

Reviewed by Ojan Vafai.

Source/WebCore:


Test: fast/block/line-layout/selection-highlight-crash.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::blockBeforeWithinSelectionRoot): Demoted the object local variable to
RenderObject, changed use of parentBox() to parent(), and added toRenderBlock() in two places.

LayoutTests:

* fast/block/line-layout/selection-highlight-crash-expected.txt: Added.
* fast/block/line-layout/selection-highlight-crash.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][DRT] Key modifier bit flags have enum type.
https://bugs.webkit.org/show_bug.cgi?id=86838

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-05-22
Reviewed by Antonio Gomes.

Refactoring. Key modifier flags are unsigned int.
Key modifier bit flags used have enum type. It caused problems as a key can have several modifiers
at the same time and the union of modifiers (i.e. EvasKeyModifierControl | EvasKeyModifierShift)
would have been out of EvasKeyModifier enum.

* DumpRenderTree/efl/EventSender.cpp:
(KeyEventInfo::KeyEventInfo):
(KeyEventInfo):
(MouseEventInfo::MouseEventInfo):
(MouseEventInfo):
(setEvasModifiers):
(modifiersFromJSValue):
(mouseDownCallback):
(mouseUpCallback):
(keyPadNameFromJSValue):
(keyNameFromJSValue):
(createKeyEventInfo):
(sendKeyDown):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118006 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][DRT] Wrong cache model is taken in LayoutTestController's setCacheModel()
https://bugs.webkit.org/show_bug.cgi?id=86962

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-05-22
Reviewed by Gustavo Noronha Silva.

* DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
(LayoutTestController::setCacheModel): Sets WEBKIT_CACHE_MODEL_WEB_BROWSER if argument is 2.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118007 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix a small syntax error in the GTK+ API test runner.

Reviewed by Gustavo Noronha Silva.

* gtk/run-api-tests:
(TestRunner._setup_testing_environment): When reporting the error use
the correct Python format string syntax.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118009 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] REGRESSION(r116135): Keys that confirm composition trigger a default action
https://bugs.webkit.org/show_bug.cgi?id=86925

Reviewed by Gustavo Noronha Silva.

Source/WebCore:

No new tests. Creating tests for GTK+ input methods is quite difficult, as they
can differ from machine to machine. It's also hard to simulate composition
sequences.

* platform/gtk/CompositionResults.h: Instead of holding composition results, just
keep a flag describing whether or not this event had results.
(CompositionResults):

Source/WebKit/gtk:

Instead of sending composition results with a keydown event, simply send whether
or not the event had results. Activate the results after processing the event. This
allows for input methods to modify the DOM after the keydown event and to still
prevent the default action during handleInputMethodKeydown.

* WebCoreSupport/EditorClientGtk.cpp:
(WebKit::EditorClient::respondToChangedSelection): This patch removes the m_updatingComposition
so we no longer have to check it here.
(WebKit::EditorClient::keyboardEventHadCompositionResults): Added.
(WebKit::EditorClient::handleInputMethodKeydown): Now prevent the default action when
the keyboard event had composition results.
(WebKit::EditorClient::EditorClient):
* WebCoreSupport/EditorClientGtk.h: Remove the m_updatingComposition member, as it's no
longer used.
* WebCoreSupport/WebViewInputMethodFilter.cpp:
(WebKit::WebViewInputMethodFilter::sendKeyEventWithCompositionResults): Now send the
composition results after the key event.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118010 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Support Array-type key paths
https://bugs.webkit.org/show_bug.cgi?id=84207

Reviewed by Tony Chang.

Source/WebCore:

Implement IDB spec behavior that key paths can be arrays of strings; when
evaluated, these yield arrays of keys, providing compound key support. Also
changes exception types to match the spec.

Test: storage/indexeddb/keypath-arrays.html
Test: storage/indexeddb/keypath-basics.html

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::createObjectStore): Look for both string and array in option dict,
throw exceptions for forbidden combinations of key generator and key paths.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex): Handle special cases (accepted and forbidden).
(WebCore):
* Modules/indexeddb/IDBObjectStore.h:
(IDBObjectStore):
(WebCore::IDBObjectStore::createIndex): Overloads to satisfy IDL overloads and optional dicts.
* Modules/indexeddb/IDBObjectStore.idl: Add DOMString array overload.
* bindings/v8/IDBBindingUtilities.cpp: Implement spec logic for evaluating array key paths.
(WebCore::createIDBKeyFromSerializedValueAndKeyPath):
(WebCore):

LayoutTests:

* storage/indexeddb/keypath-arrays-expected.txt: Added.
* storage/indexeddb/keypath-arrays.html: Added.
* storage/indexeddb/keypath-basics-expected.txt:
* storage/indexeddb/mozilla/create-objectstore-basics-expected.txt:
* storage/indexeddb/mozilla/resources/create-objectstore-basics.js:
(cleanDatabase):
* storage/indexeddb/objectStore-required-arguments-expected.txt:
* storage/indexeddb/resources/keypath-arrays.js: Added.
(test.request.onsuccess):
(test):
(openSuccess.request.onsuccess):
(openSuccess):
(testKeyPaths.checkStore.request.onsuccess):
(testKeyPaths.checkStore):
(testKeyPaths.checkIndex.request.onsuccess):
(testKeyPaths.checkIndex):
(testKeyPaths):
* storage/indexeddb/resources/keypath-basics.js:


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