WebKit-https.git
7 years agoMove renderNamedFlowThreadWrapper() to RenderElement.
akling@apple.com [Wed, 12 Feb 2014 01:55:40 +0000 (01:55 +0000)]
Move renderNamedFlowThreadWrapper() to RenderElement.
<https://webkit.org/b/128634>

This function is only ever called on RenderElements so move it there
from RenderObject.

Reviewed by Antti Koivisto.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::renderNamedFlowThreadWrapper):
* rendering/RenderElement.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:

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

7 years agoPosition and thickness of underline as text size changes
mmaxfield@apple.com [Wed, 12 Feb 2014 01:54:19 +0000 (01:54 +0000)]
Position and thickness of underline as text size changes
https://bugs.webkit.org/show_bug.cgi?id=16768

Source/WebCore:

Reviewed by Dean Jackson.

This patch adopts the iOS codepath for underlines. It also reorganizes
drawLineForText to avoid a costly global state save & restore.

Test: fast/css3-text/css3-text-decoration/text-decoration-thickness.html

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::computeLineBoundsAndAntialiasingModeForText):
(WebCore::GraphicsContext::computeLineBoundsForText):
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::drawLinesForText):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):

LayoutTests:

This test draws underlined text at a very large font size. It then positions and clips
the text so that the underline should fill a box if the underline grows in proportion
to text size. The comparison is to a box that has its background color set.

Reviewed by Dean Jackson.

* fast/css3-text/css3-text-decoration/text-decoration-thickness-expected.html: Added.
* fast/css3-text/css3-text-decoration/text-decoration-thickness.html: Added.

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

7 years agoFrame::rectForSelection shouldn't instantiate FrameSelection
rniwa@webkit.org [Wed, 12 Feb 2014 01:53:03 +0000 (01:53 +0000)]
Frame::rectForSelection shouldn't instantiate FrameSelection
https://bugs.webkit.org/show_bug.cgi?id=128587

Reviewed by Enrica Casucci.

Source/WebCore:

Made VisiblePosition::absoluteCaretBounds more interoperable with the one in FrameSelection and made
iOS's Frame::rectForScrollToVisible use that function instead.

The above change allows us to remove:
- suppressCloseTyping(), restoreCloseTyping(), and m_closeTypingSuppressions in FrameSelection
- suppressSelectionNotifications() and restoreSelectionNotifications() in EditorClient

See inline comments below for more details.

* Source/WebCore/WebCore.exp.in:

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::CaretBase::updateCaretRect):
(WebCore::FrameSelection::caretRendererWithoutUpdatingLayout):
(WebCore::DragCaretController::caretRenderer):
(WebCore::repaintCaretForLocalRect):
(WebCore::FrameSelection::recomputeCaretRect): Merged FrameSelection::localCaretRect(). Modified
the code to update caretNode when and only when caret rect is updated. Also added an assertion to
ensure absoluteCaretBounds() on FrameSelection and VisiblePosition yield the same result.

(WebCore::CaretBase::paintCaret):
* editing/FrameSelection.h:

* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteCaretBounds): Fixed the bug where the old code wasn't respecting
the convention to use containing block as the renderer to paint caret.

* editing/htmlediting.cpp:
(WebCore::caretRendersInsideNode): Moved from FrameSelection.cpp.
(WebCore::rendererForCaretPainting): Ditto and renamed from caretRenderer.
(WebCore::localCaretRectInRendererForCaretPainting): Extracted from FrameSelection::updateCaretRect.
(WebCore::absoluteBoundsForLocalCaretRect): Ditto from CaretBase::absoluteBoundsForLocalRect.
* editing/htmlediting.h:

* loader/EmptyClients.h:
* page/EditorClient.h:
* page/Frame.h:

* page/ios/FrameIOS.mm:
(WebCore::Frame::rectForScrollToVisible): Reimplemented in its simplest form using VisiblePosition's
absoluteCaretBounds().

Source/WebKit/mac:

* WebCoreSupport/WebEditorClient.h:
* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::WebEditorClient):
(WebEditorClient::respondToChangedSelection):

Source/WebKit2:

* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:

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

7 years agoSupport WebSelections in WK2 on iOS.
enrica@apple.com [Wed, 12 Feb 2014 01:10:21 +0000 (01:10 +0000)]
Support WebSelections in WK2 on iOS.
https://bugs.webkit.org/show_bug.cgi?id=127015
<rdar://problem/15211964>

Reviewed by Benjamin Poulain.

Source/WebCore:

Adding few exports.

* WebCore.exp.in:

Source/WebKit2:

First step towards implementing block selections on iOS.
The main logic is in rangeForWebSelectionAtPosition that
decides whether we create a text or a block selection.

* Shared/ios/WKGestureTypes.h:
* UIProcess/API/ios/WKInteractionView.mm:
(toUIWKSelectionFlags):
(selectionChangedWithGesture):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition):
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::getPositionInformation):

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

7 years agoWeb Replay: upstream replay input code generator and EncodedValue class
bburg@apple.com [Wed, 12 Feb 2014 00:22:01 +0000 (00:22 +0000)]
Web Replay: upstream replay input code generator and EncodedValue class
https://bugs.webkit.org/show_bug.cgi?id=128215

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Add the replay inputs code generator. Most features of the input generator are
exercised by included generator regression tests, which produce useful but
non-compilable test replay inputs.

Add EncodedValue, the main replay input serialization class that encodes and
decodes inputs and their data between C++ types and the JSON-based replay recording
format. EncodedValue uses EncodingTraits specializations for type-specific encoding.
Relative to other WebKit marshalling mechanisms, EncodedValue is key/value based.
EncodedValue uses InspectorValue subclasses as its backing data structure.

Add some missing numerical conversions to InspectorValue.

* JavaScriptCore.xcodeproj/project.pbxproj:
* inspector/InspectorValues.cpp:
(Inspector::InspectorValue::asNumber):
(Inspector::InspectorBasicValue::asNumber):
* inspector/InspectorValues.h:
* replay/EncodedValue.cpp: Added.
(JSC::EncodedValue::asObject):
(JSC::EncodedValue::asArray):
(JSC::ScalarEncodingTraits<bool>::encodeValue):
(JSC::ScalarEncodingTraits<double>::encodeValue):
(JSC::ScalarEncodingTraits<float>::encodeValue):
(JSC::ScalarEncodingTraits<int32_t>::encodeValue):
(JSC::ScalarEncodingTraits<int64_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint32_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint64_t>::encodeValue):
(JSC::long>::encodeValue):
(JSC::EncodedValue::convertTo<bool>):
(JSC::EncodedValue::convertTo<double>):
(JSC::EncodedValue::convertTo<float>):
(JSC::EncodedValue::convertTo<int32_t>):
(JSC::EncodedValue::convertTo<int64_t>):
(JSC::EncodedValue::convertTo<uint32_t>):
(JSC::EncodedValue::convertTo<uint64_t>):
(JSC::long>):
(JSC::EncodedValue::convertTo<String>):
(JSC::EncodedValue::put<EncodedValue>):
(JSC::EncodedValue::append<EncodedValue>):
(JSC::EncodedValue::get<EncodedValue>):
* replay/EncodedValue.h: Added.
(JSC::EncodedValue::EncodedValue):
(JSC::EncodedValue::createObject):
(JSC::EncodedValue::createArray):
(JSC::EncodedValue::createString):
(JSC::EncodedValue::~EncodedValue):
(JSC::ScalarEncodingTraits::decodeValue):
(JSC::EncodingTraits<String>::encodeValue):
(JSC::EncodedValue::put):
(JSC::EncodedValue::append):
(JSC::EncodedValue::get):
* replay/scripts/CodeGeneratorReplayInputs.py: Added.
(ParseException):
(TypecheckException):
(Framework):
(Framework.__init__):
(Framework.setting):
(Framework.fromString):
(Frameworks):
(InputQueue):
(InputQueue.__init__):
(InputQueue.setting):
(InputQueue.fromString):
(InputQueues):
(Input):
(Input.__init__):
(Input.setting):
(InputMember):
(InputMember.__init__):
(InputMember.has_flag):
(TypeMode):
(TypeMode.__init__):
(TypeMode.fromString):
(TypeModes):
(Type):
(Type.__init__):
(Type.__eq__):
(Type.__hash__):
(Type.has_flag):
(Type.is_struct):
(Type.is_enum):
(Type.is_enum_class):
(Type.declaration_kind):
(Type.qualified_prefix):
(Type.qualified_prefix.is):
(Type.type_name):
(Type.storage_type):
(Type.borrow_type):
(Type.argument_type):
(check_properties):
(VectorType):
(VectorType.__init__):
(VectorType.has_flag):
(VectorType.is_struct):
(VectorType.is_enum):
(VectorType.is_enum_class):
(VectorType.qualified_prefix):
(VectorType.type_name):
(VectorType.argument_type):
(InputsModel):
(InputsModel.__init__):
(InputsModel.enum_types):
(InputsModel.get_type_for_member):
(InputsModel.parse_toplevel):
(InputsModel.parse_type_with_framework_name):
(InputsModel.parse_input):
(InputsModel.typecheck):
(InputsModel.typecheck_type):
(InputsModel.typecheck_input):
(InputsModel.typecheck_input_member):
(IncrementalFileWriter):
(IncrementalFileWriter.__init__):
(IncrementalFileWriter.write):
(IncrementalFileWriter.close):
(lcfirst):
(wrap_with_guard):
(Generator):
(Generator.__init__):
(Generator.setting):
(Generator.output_filename):
(Generator.write_output_files):
(Generator.generate_header):
(Generator.generate_implementation):
(Generator.generate_license):
(Generator.generate_includes):
(Generator.generate_includes.declaration):
(Generator.generate_includes.declaration.is):
(Generator.generate_type_forward_declarations):
(Generator.generate_type_forward_declarations.is):
(Generator.generate_class_declaration):
(Generator.generate_input_constructor_declaration):
(Generator.generate_input_destructor_declaration):
(Generator.generate_input_member_getter):
(Generator.generate_input_member_declaration):
(Generator.generate_input_member_tuples):
(Generator.qualified_input_name):
(Generator.generate_input_trait_declaration):
(Generator.generate_enum_trait_declaration):
(Generator.generate_for_each_macro):
(Generator.generate_class_implementation):
(Generator.generate_enum_trait_implementation):
(Generator.generate_enum_trait_implementation.is):
(Generator.generate_input_trait_implementation):
(Generator.generate_input_encode_implementation):
(Generator.generate_input_decode_implementation):
(Generator.generate_constructor_initializer_list):
(Generator.generate_constructor_formals_list):
(Generator.generate_member_borrow_expression):
(Generator.generate_member_move_expression):
(Generator.generate_constructor_arguments_list):
(generate_from_specification):
* replay/scripts/CodeGeneratorReplayInputsTemplates.py: Added.
(Templates):
* replay/scripts/tests/expected/JSInputs.json-TestReplayInputs.cpp: Added.
* replay/scripts/tests/expected/JSInputs.json-TestReplayInputs.h: Added.
* replay/scripts/tests/expected/fail-on-c-style-enum-no-storage.json-error: Added.
* replay/scripts/tests/expected/fail-on-duplicate-input-names.json-error: Added.
* replay/scripts/tests/expected/fail-on-duplicate-type-names.json-error: Added.
* replay/scripts/tests/expected/fail-on-enum-type-missing-values.json-error: Added.
* replay/scripts/tests/expected/fail-on-missing-input-member-name.json-error: Added.
* replay/scripts/tests/expected/fail-on-missing-input-name.json-error: Added.
* replay/scripts/tests/expected/fail-on-missing-input-queue.json-error: Added.
* replay/scripts/tests/expected/fail-on-missing-type-mode.json-error: Added.
* replay/scripts/tests/expected/fail-on-missing-type-name.json-error: Added.
* replay/scripts/tests/expected/fail-on-no-inputs.json-error: Added.
* replay/scripts/tests/expected/fail-on-no-types.json-error: Added.
* replay/scripts/tests/expected/fail-on-unknown-input-queue.json-error: Added.
* replay/scripts/tests/expected/fail-on-unknown-member-type.json-error: Added.
* replay/scripts/tests/expected/fail-on-unknown-type-mode.json-error: Added.
* replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.cpp: Added.
* replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.h: Added.
* replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.cpp: Added.
* replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.h: Added.
* replay/scripts/tests/expected/generate-enum-encoding-helpers.json-error: Added.
* replay/scripts/tests/expected/generate-event-loop-shape-types.json-error: Added.
* replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.cpp: Added.
* replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.h: Added.
* replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.cpp: Added.
* replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.h: Added.
* replay/scripts/tests/expected/generate-inputs-with-flags.json-error: Added.
* replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.cpp: Added.
* replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.h: Added.
* replay/scripts/tests/fail-on-c-style-enum-no-storage.json: Added.
* replay/scripts/tests/fail-on-duplicate-input-names.json: Added.
* replay/scripts/tests/fail-on-duplicate-type-names.json: Added.
* replay/scripts/tests/fail-on-enum-type-missing-values.json: Added.
* replay/scripts/tests/fail-on-missing-input-member-name.json: Added.
* replay/scripts/tests/fail-on-missing-input-name.json: Added.
* replay/scripts/tests/fail-on-missing-input-queue.json: Added.
* replay/scripts/tests/fail-on-missing-type-mode.json: Added.
* replay/scripts/tests/fail-on-missing-type-name.json: Added.
* replay/scripts/tests/fail-on-no-inputs.json: Added.
* replay/scripts/tests/fail-on-no-types.json: Added.
* replay/scripts/tests/fail-on-unknown-input-queue.json: Added.
* replay/scripts/tests/fail-on-unknown-member-type.json: Added.
* replay/scripts/tests/fail-on-unknown-type-mode.json: Added.
* replay/scripts/tests/generate-enum-encoding-helpers-with-guarded-values.json: Added.
* replay/scripts/tests/generate-enum-encoding-helpers.json: Added.
* replay/scripts/tests/generate-event-loop-shape-types.json: Added.
* replay/scripts/tests/generate-input-with-guard.json: Added.
* replay/scripts/tests/generate-input-with-vector-members.json: Added.
* replay/scripts/tests/generate-inputs-with-flags.json: Added.
* replay/scripts/tests/generate-memoized-type-modes.json: Added.

Tools:

Add an executable script to launch the replay input generator tests.
Add a test harness for running the code generator tests, mostly taken
from the bindings test harness (but simplified).

* Scripts/run-input-generator-tests: Added.
(main):
* Scripts/webkitpy/replay/__init__.py: Added.
* Scripts/webkitpy/replay/main.py: Added.
(InputGeneratorTests):
(InputGeneratorTests.__init__):
(InputGeneratorTests.generate_from_json):
(InputGeneratorTests.write_error_file):
(InputGeneratorTests.detect_changes):
(InputGeneratorTests.run_tests):
(InputGeneratorTests.main):

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

7 years agoCTTE: RenderNamedFlowThread always has a WebKitNamedFlow.
akling@apple.com [Wed, 12 Feb 2014 00:08:16 +0000 (00:08 +0000)]
CTTE: RenderNamedFlowThread always has a WebKitNamedFlow.
<https://webkit.org/b/128623>

Codify the fact that RenderNamedFlowThread always has a corresponding
WebKitNamedFlow by storing it in a Ref, and adding an accessor that
returns a reference to get rid of all the ->'s.

Also removed some unnecessary assertions exposed by this.

Reviewed by Antti Koivisto.

* dom/NamedFlowCollection.cpp:
(WebCore::NamedFlowCollection::ensureFlowWithName):
* dom/NamedFlowCollection.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::flowThreadName):
(WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):
(WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEvent):
(WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired):
(WebCore::RenderNamedFlowThread::regionOversetChangeEventTimerFired):
(WebCore::RenderNamedFlowThread::setMarkForDestruction):
(WebCore::RenderNamedFlowThread::resetMarkForDestruction):
(WebCore::RenderNamedFlowThread::isMarkedForDestruction):
* rendering/RenderNamedFlowThread.h:

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

7 years agoSource/WebCore: Convert position:fixed property to position:absolute upon copy
mmaxfield@apple.com [Wed, 12 Feb 2014 00:06:01 +0000 (00:06 +0000)]
Source/WebCore: Convert position:fixed property to position:absolute upon copy
https://bugs.webkit.org/show_bug.cgi?id=128194

Reviewed by Simon Fraser.

This adds a Setting and Preference that allows clients to opt-in to this behavior.

This new behavior is only activated if the entire body is copied. If there is a position:fixed
element in the copied selection, it is replaced with position:absolute, and a containing
block (position:relative) is wrapped around the copied text.

This patch originally converted position:-webkit-sticky to position:relative. However, we
currently don't support copying and pasting of position:-webkit-sticky content (See below).
Therefore, this patch only deals with position:fixed.

Right now we don't copy position:-webkit-sticky. This is because:
1. When copying styled elements, we parse the style properties again
2. CSSParserContext has a flag which can disable parsing -webkit-sticky
3. There are two constructors to CSSParserContext: one that takes a document and sets up the
aforementioned flag, and a simple one that doesn't take a document and sets all the enableFoo
flags to false
4. At the relevant place within copy code, we are far removed from the Document object, so we
instead call the second constructor, thereby disabling parsing of -webkit-sticky

Test: editing/pasteboard/copy-paste-converts-sticky-and-fixed.html

* WebCore.exp.in: Export the Setting setter
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::convertFixedAndStickyPosition): Converts a single style
* editing/EditingStyle.h:
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): Remember if we found
an element which needs the position:relative containing block
(WebCore::StyledMarkupAccumulator::appendElement): Surround with the position:relative
containing block if necessary
(WebCore::createMarkupInternal):
* page/Settings.cpp:
(WebCore::Settings::Settings): New setting to opt-in to this new behavior
(WebCore::Settings::setConvertPositionStyleOnCopy):
* page/Settings.h:
(WebCore::Settings::convertPositionStyleOnCopy):
* testing/InternalSettings.cpp: Allow setting the setting from a Layout Test
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setConvertPositionStyleOnCopy):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac: Convert position:sticky and position:fixed properties to position:static and position:absolute upon copy
https://bugs.webkit.org/show_bug.cgi?id=128194

Reviewed by Simon Fraser.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences convertPositionStyleOnCopy]):
(-[WebPreferences setConvertPositionStyleOnCopy:]):
* WebView/WebPreferencesPrivate.h: Opt-in to new behavior
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2: Convert position:sticky and position:fixed properties to position:static and position:absolute upon copy
https://bugs.webkit.org/show_bug.cgi?id=128194

Reviewed by Simon Fraser.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetConvertPositionStyleOnCopy):
(WKPreferencesGetConvertPositionStyleOnCopy):
* UIProcess/API/C/WKPreferencesPrivate.h: Opt-in to new behavior
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

LayoutTests: Convert position:sticky and position:fixed properties to position:static and position:absolute upon copy
https://bugs.webkit.org/show_bug.cgi?id=128194

Reviewed by Simon Fraser.

Checks that the style properties get converted.

* editing/pasteboard/copy-paste-converts-sticky-and-fixed-expected.txt: Added.
* editing/pasteboard/copy-paste-converts-sticky-and-fixed.html: Added.

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

7 years agoXMLHttpRequest should not send DNT header
commit-queue@webkit.org [Wed, 12 Feb 2014 00:02:31 +0000 (00:02 +0000)]
XMLHttpRequest should not send DNT header
https://bugs.webkit.org/show_bug.cgi?id=128533

Patch by Youenn Fablet <youennf@gmail.com> on 2014-02-11
Reviewed by Alexey Proskuryakov.

Source/WebCore:

Added DNT (Do Not Track) header to the list of forbidden headers.
Updated http/tests/xmlhttprequest/set-dangerous-headers.html to test that header.

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData):

LayoutTests:

Updated http/tests/xmlhttprequest/set-dangerous-headers.html to test that DNT header is not sent.

* http/tests/xmlhttprequest/set-dangerous-headers-expected.txt:
* http/tests/xmlhttprequest/set-dangerous-headers.html:

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

7 years agoBring third-party app cache blocking behavior in line with private browsing app cache...
jpfau@apple.com [Tue, 11 Feb 2014 23:07:49 +0000 (23:07 +0000)]
Bring third-party app cache blocking behavior in line with private browsing app cache blocking behavior
https://bugs.webkit.org/show_bug.cgi?id=128557

Reviewed by Alexey Proskuryakov.

Source/WebCore:

* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::cacheForMainRequest):
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadMainResource):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
(WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
(WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):
* loader/appcache/ApplicationCacheHost.h:

LayoutTests:

* http/tests/security/resources/cross-origin-iframe-for-appcache-allowed.html:
* http/tests/security/resources/cross-origin-iframe-for-appcache.html:
* http/tests/security/resources/same-origin-iframe-for-appcache-blocked.html:

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

7 years agoWeb Inspector: AX: Accessibility Node Inspection
joepeck@webkit.org [Tue, 11 Feb 2014 23:05:06 +0000 (23:05 +0000)]
Web Inspector: AX: Accessibility Node Inspection
https://bugs.webkit.org/show_bug.cgi?id=127447

Patch by James Craig <jcraig@apple.com> on 2014-02-11
Reviewed by Chris Fleizach.

Resolving build failure caused by r163891.

* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::computedRoleString):

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

7 years agoIDB: The test after storage/indexeddb/mozilla/object-identity.html fails in cleanup...
beidson@apple.com [Tue, 11 Feb 2014 23:01:09 +0000 (23:01 +0000)]
IDB: The test after storage/indexeddb/mozilla/object-identity.html fails in cleanup code
<rdar://problem/16040663> and https://bugs.webkit.org/show_bug.cgi?id=128621

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Covered by storage/indexeddb/mozilla/object-identity.html.

* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::abort): Clear the m_database pointer before calling the onAbort callback.
(WebCore::IDBTransactionBackend::commit): Don't run the abort code if there's no m_database pointer.

LayoutTests:

* platform/mac-wk2/TestExpectations: Enabled all of the storage/indexeddb/mozilla tests except 1.

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

7 years agoUnreviewed. Fix typo in layout test introduced in r163811.
rego@igalia.com [Tue, 11 Feb 2014 22:56:25 +0000 (22:56 +0000)]
Unreviewed. Fix typo in layout test introduced in r163811.

Patch by Diego Pino Garcia <dpino@igalia.com> on 2014-02-11

* inspector-protocol/debugger/hit-breakpoint-from-console.html:

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

7 years ago[Windows] Set ENABLE_CSS_SHAPE_INSIDE feature flag on Windows.
roger_fong@apple.com [Tue, 11 Feb 2014 22:00:14 +0000 (22:00 +0000)]
[Windows] Set ENABLE_CSS_SHAPE_INSIDE feature flag on Windows.

* win/tools/vsprops/FeatureDefines.props:

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

7 years ago[WK2] Rename screenToWindow to screenToRootView and windowToScreen to rootViewToScreen
benjamin@webkit.org [Tue, 11 Feb 2014 21:56:24 +0000 (21:56 +0000)]
[WK2] Rename screenToWindow to screenToRootView and windowToScreen to rootViewToScreen
https://bugs.webkit.org/show_bug.cgi?id=128575

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-11
Reviewed by Darin Adler.

In WebKit2, screenToRootView and rootViewToScreen were named screenToWindow and windowToScreen.
Those names were fine on ports were FrameView correspond to the scrollview, but they do not apply on iOS.

This patch renames screenToWindow and windowToScreen to their more generic WebCore counterpart.

* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/ios/PageClientImplIOS.h:
* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):
* UIProcess/API/mac/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::screenToRootView):
(WebKit::WebView::rootViewToScreen):
* UIProcess/CoordinatedGraphics/WebView.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::screenToRootView):
(WebKit::WebPageProxy::rootViewToScreen):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::screenToRootView):
(WebKit::WebChromeClient::rootViewToScreen):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::screenToRootView):
(WebKit::WebPage::rootViewToScreen):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
(-[WKAccessibilityWebPageObject _convertScreenPointToRootView:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):

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

7 years ago[EME][Mac] Move the implementation of CDMPrivateAVFoundation back into MediaPlayerPri...
jer.noble@apple.com [Tue, 11 Feb 2014 21:50:21 +0000 (21:50 +0000)]
[EME][Mac] Move the implementation of CDMPrivateAVFoundation back into MediaPlayerPrivateAVFoundationObjC.
https://bugs.webkit.org/show_bug.cgi?id=128559

Reviewed by Dean Jackson.

To prepare for multiple simultaneous CDMs with muliple MediaPlayer types, move the implementation for
CDMPrivateAVFoundation back into its media engine.

* Modules/encryptedmedia/CDMPrivateAVFoundation.mm:
(WebCore::MediaKeyExceptionToErrorCode): Added.
(WebCore::CDMSessionAVFoundation::generateKeyRequest): Moved to MediaPlayerPrivateAVFoundationObjC.
(WebCore::CDMSessionAVFoundation::releaseKeys): Ditto.
(WebCore::CDMSessionAVFoundation::update): Ditto.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::generateKeyRequest): Added, pass through to MediaPlayerPrivate.
(WebCore::MediaPlayer::releaseKeys): Ditto.
(WebCore::MediaPlayer::update): Ditto.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Added.
(WebCore::MediaPlayerPrivateInterface::releaseKeys): Ditto.
(WebCore::MediaPlayerPrivateInterface::update): Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Moved from CDMSessionAVFoundation.
(WebCore::MediaPlayerPrivateAVFoundationObjC::releaseKeys): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::update): Ditto.

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

7 years agoRun UserAgentScripts through jsmin rather than the css preprocessor
jer.noble@apple.com [Tue, 11 Feb 2014 21:36:06 +0000 (21:36 +0000)]
Run UserAgentScripts through jsmin rather than the css preprocessor
https://bugs.webkit.org/show_bug.cgi?id=127559

Reviewed by Tim Horton.

User Agent JavaScript files were being run through the c++ preprocessor to strip out
comments (and presumably to allow #if ENABLE macros, though that feature is entirely
unused). This had the side effect of removing important whitespace, namely newlines where
there would normally be an implicit semicolon.

Instead, .js files will now be run through the jsmin minifier, used by the inspector.
Jsmin will also strip comments and whitespace, but in a syntactically aware way which will
keep newlines when their presence adds an implied semicolon.

* DerivedSources.make:
* Scripts/make-js-file-arrays.py: Added.
(stringifyCodepoint):
(chunk):
(main):

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

7 years ago[Mac] connection:willStopBufferingData: no longer exists in NSURLConnectionDelegate
aestes@apple.com [Tue, 11 Feb 2014 21:28:55 +0000 (21:28 +0000)]
[Mac] connection:willStopBufferingData: no longer exists in NSURLConnectionDelegate
https://bugs.webkit.org/show_bug.cgi?id=128583

Reviewed by Anders Carlsson.

The delegate method was removed in Snow Leopard.

Source/WebCore:

* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h:
* platform/network/ResourceHandleClient.h:
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

Source/WebKit/mac:

* Misc/WebDownload.mm:

Source/WebKit2:

* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/NetworkResourceLoader.h:

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

7 years ago[Content Filter] Check for NULL before calling dispatch_release()
aestes@apple.com [Tue, 11 Feb 2014 21:28:51 +0000 (21:28 +0000)]
[Content Filter] Check for NULL before calling dispatch_release()
https://bugs.webkit.org/show_bug.cgi?id=128576

Reviewed by Darin Adler.

m_neFilterSourceQueue will be NULL if NEFilterSource isn't enabled, and
passing NULL to dispatch_release() is undefined.

* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::~ContentFilter):

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

7 years agoSource/WebKit: Fixed linking on Win64.
alex.christensen@flexsim.com [Tue, 11 Feb 2014 21:23:26 +0000 (21:23 +0000)]
Source/WebKit: Fixed linking on Win64.
https://bugs.webkit.org/show_bug.cgi?id=128211

Reviewed by Brent Fulgham.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Corrected Win64 linker symbols.

Source/WebKit/win: Fixed pointer truncation on Win64.
https://bugs.webkit.org/show_bug.cgi?id=128211

Reviewed by Brent Fulgham.

* WebCoreSupport/EmbeddedWidget.cpp:
(EmbeddedWidget::createWindow):
* WebCoreSupport/WebContextMenuClient.cpp:
(WebContextMenuClient::customizeMenu):
* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::createPlugin):
* WebCoreSupport/WebInspectorClient.cpp:
(WebInspectorClient::WebInspectorClient):
(WebInspectorClient::openInspectorFrontend):
(WebInspectorClient::highlight):
(WebInspectorClient::releaseFrontend):
(WebInspectorFrontendClient::setAttachedWindowHeight):
(WebInspectorFrontendClient::closeWindowWithoutNotifications):
* WebCoreSupport/WebInspectorClient.h:
* WebDropSource.cpp:
(generateMouseEvent):
* WebFrame.cpp:
(WebFrame::createSubframeWithOwnerElement):
(WebFrame::initWithWebView):
Removed all casts from &HWND to OLE_HANDLE*.

Tools: Fixed pointer truncation on Win64.
https://bugs.webkit.org/show_bug.cgi?id=128211

Reviewed by Brent Fulgham.

* DumpRenderTree/win/AccessibilityControllerWin.cpp:
(AccessibilityController::rootElement):
* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::setWindowIsKey):
Removed all casts from &HWND to OLE_HANDLE*.

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

7 years ago[MediaControls] Allow the media controls script to be debuggable by giving it a gener...
jer.noble@apple.com [Tue, 11 Feb 2014 21:14:16 +0000 (21:14 +0000)]
[MediaControls] Allow the media controls script to be debuggable by giving it a generated sourceURL
https://bugs.webkit.org/show_bug.cgi?id=127560

Reviewed by Eric Carlson.

When evaluating a script through ScriptController, if that script does not have an
explicit sourceURL, it will not appear in the resources section of the Web Inspector.
For debug builds only, give the media controls script a generated (i.e. fake) sourceURL.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):

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

7 years agoAX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaPar...
samuel_white@apple.com [Tue, 11 Feb 2014 20:44:03 +0000 (20:44 +0000)]
AX: Add text replacement activity support to NSAccessibilitySelectTextWithCriteriaParameterizedAttribute.
https://bugs.webkit.org/show_bug.cgi?id=128397

Reviewed by Chris Fleizach.

Source/WebCore:

Added text replacement support for the AXSelectTextWithCriteria parameterized attribute.

No new test. Updated platform/mac/accessibility/select-text.html to test the added functionality.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectText):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilitySelectTextCriteria::AccessibilitySelectTextCriteria):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):

Tools:

Updated testing methods to accept a replacement string. This enables us to test text
replacement support for the AXSelectTextWithCriteria parameterized attribute.

* DumpRenderTree/AccessibilityUIElement.cpp:
(selectTextWithCriteriaCallback):
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::selectTextWithCriteria):
* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::selectTextWithCriteria):
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(selectTextParameterizedAttributeForCriteria):
(AccessibilityUIElement::selectTextWithCriteria):
* DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::selectTextParameterizedAttributeForCriteria):
(WTR::AccessibilityUIElement::selectTextWithCriteria):

LayoutTests:

Updated test and expectations to handle text replacement.

* platform/mac/accessibility/select-text-expected.txt:
* platform/mac/accessibility/select-text.html:

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

7 years agoAdd Availability Macros to new JSC APIs
commit-queue@webkit.org [Tue, 11 Feb 2014 20:32:09 +0000 (20:32 +0000)]
Add Availability Macros to new JSC APIs
https://bugs.webkit.org/show_bug.cgi?id=128615

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-02-11
Reviewed by Mark Rowe.

* API/JSContext.h:
* API/JSContextRef.h:

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

7 years agoFTL should support CompareEq(ObjectOrOther:, Object:)
fpizlo@apple.com [Tue, 11 Feb 2014 20:28:59 +0000 (20:28 +0000)]
FTL should support CompareEq(ObjectOrOther:, Object:)
https://bugs.webkit.org/show_bug.cgi?id=127752

Reviewed by Oliver Hunt.

Also introduce some helpers for reasoning about nullness and truthyness.

* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::LowerDFGToLLVM::compareEqObjectOrOtherToObject):
(JSC::FTL::LowerDFGToLLVM::speculateTruthyObject):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isNotNully):
(JSC::FTL::LowerDFGToLLVM::isNully):
(JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
* tests/stress/compare-eq-object-or-other-to-object.js: Added.
(foo):
(test):
* tests/stress/compare-eq-object-to-object-or-other.js: Added.
(foo):
(test):

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

7 years ago[Windows] Unreviewed. Speculative test fix.
roger_fong@apple.com [Tue, 11 Feb 2014 20:26:43 +0000 (20:26 +0000)]
[Windows] Unreviewed. Speculative test fix.

* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::pixelSnappingFactor):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):

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

7 years ago[ASan] Fix build failures in Tools due to missing $(inherited) values
ddkilzer@apple.com [Tue, 11 Feb 2014 20:12:30 +0000 (20:12 +0000)]
[ASan] Fix build failures in Tools due to missing $(inherited) values
<http://webkit.org/b/128485>

Reviewed by Dean Jackson.

* DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
- Move $(inherited) from OTHER_LDFLAGS_macosx to OTHER_LDFLAGS.

* DumpRenderTree/mac/Configurations/ImageDiff.xcconfig:
* DumpRenderTree/mac/Configurations/LayoutTestHelper.xcconfig:
- Add $(inherited) to OTHER_LDFLAGS.

* WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
* WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
- Add $(inherited) to OTHER_LDFLAGS, or move from
  OTHER_LDFLAGS_BASE to OTHER_LDFLAGS.
- Extract $(OTHER_LDFLAGS_BASE) from platform-specific settings
  into OTHER_LDFLAGS.

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

7 years agoiOS build fix.
mitz@apple.com [Tue, 11 Feb 2014 19:49:52 +0000 (19:49 +0000)]
iOS build fix.

* platform/ios/TileGrid.mm:
(WebCore::TileGrid::dropTilesBetweenRects):
(WebCore::TileGrid::dropDistantTiles):
(WebCore::TileGrid::dropInvalidTiles):

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

7 years agoIndexedDB tests on some bots are flakey (timeouts)
beidson@apple.com [Tue, 11 Feb 2014 19:31:46 +0000 (19:31 +0000)]
IndexedDB tests on some bots are flakey (timeouts)
<rdar://problem/16038745> and https://bugs.webkit.org/show_bug.cgi?id=128612

Reviewed by Sam Weinig.

Source/WebKit2:

When messing with JSC VM’s and such, always use APIEntryShim instead of JSLockHolder.
*ESPECIALLY* when dealing with multiple threads.

* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::~UniqueIDBDatabaseBackingStoreSQLite):
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):

LayoutTests:

* platform/mac-wk2/TestExpectations: Reenable the tests.

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

7 years agoWeb Inspector: AX: Accessibility Node Inspection
commit-queue@webkit.org [Tue, 11 Feb 2014 19:27:12 +0000 (19:27 +0000)]
Web Inspector: AX: Accessibility Node Inspection
https://bugs.webkit.org/show_bug.cgi?id=127447

Patch by James Craig <jcraig@apple.com> on 2014-02-11
Reviewed by Timothy Hatcher.

Source/WebCore:

New methods supporting WebCore::AccessibilityObject::computedRoleString()
used for Accessibility section in WebInspector Node Inspector. Other updates
support the JSON interface for the WebInspectorUI feature.

Test: accessibility/roles-computedRoleString.html

* accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
(WebCore::ariaRoleMap):
(WebCore::reverseAriaRoleMap):
(WebCore::AccessibilityObject::ariaRoleToWebCoreRole):
(WebCore::AccessibilityObject::computedRoleString):
* accessibility/AccessibilityObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper computedRoleString]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/InspectorDOMAgent.h:
* inspector/protocol/DOM.json:

Source/WebInspectorUI:

New Accessibility section in WebInspector Node Inspector.
Version 1.0 only shows computed role. Computed label should come soon.

Removed CSS fixed table layout b/c CSS bug: http://webkit.org/b/128294

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/DOMNode.js:
* UserInterface/DOMNodeDetailsSidebarPanel.js:
* UserInterface/DetailsSection.css:
* UserInterface/InspectorWebBackendCommands.js:

Tools:

New computedRoleString interfaces in DumpRenderTree/WebKitTestRunner
to support LayoutTest coverage of AccessibilityObject::computedRoleString()

* DumpRenderTree/AccessibilityUIElement.cpp:
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
* DumpRenderTree/mac/AccessibilityUIElementMac.mm:
* DumpRenderTree/win/AccessibilityUIElementWin.cpp:
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

LayoutTests:

New layout verifying AccessibilityObject::computedRoleString()

* accessibility/roles-computedRoleString-expected.txt: Added.
* accessibility/roles-computedRoleString.html: Added.

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

7 years agoStop throwing when attempting to read instance properties directly from the prototype
oliver@apple.com [Tue, 11 Feb 2014 18:59:17 +0000 (18:59 +0000)]
Stop throwing when attempting to read instance properties directly from the prototype
https://bugs.webkit.org/show_bug.cgi?id=128568

Reviewed by Mark Lam.

Source/WebCore:

A number of websites expect to be able to access instance properties
directly through the prototype.  This is broken behavior but if we
throw an exception the entire site breaks.  This patch simply makes us
return undefined when reading, and logs the error to the console.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorTestSubObj):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjCustomAttr):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjConditionalAttr4Constructor):
(WebCore::jsTestObjConditionalAttr5Constructor):
(WebCore::jsTestObjConditionalAttr6Constructor):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjStrictFloat):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):

LayoutTests:

Update tests to match required behavior.

* js/dom/dom-as-prototype-assignment-exception-expected.txt:
* js/dom/script-tests/dom-as-prototype-assignment-exception.js:

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

7 years agoAnimation tests are flaky in Release on EWS, too.
ap@apple.com [Tue, 11 Feb 2014 18:37:33 +0000 (18:37 +0000)]
Animation tests are flaky in Release on EWS, too.

* platform/mac/TestExpectations: Removed [ Debug ] from several animation test
expectations.

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

7 years ago[CSS Grid Layout] Support calc() breadth size type
svillar@igalia.com [Tue, 11 Feb 2014 18:25:05 +0000 (18:25 +0000)]
[CSS Grid Layout] Support calc() breadth size type
https://bugs.webkit.org/show_bug.cgi?id=103761

Reviewed by Dean Jackson.

Source/WebCore:

We now support using calc() in
-webkit-grid-template-{columns|rows}. This means that we now
match the specification and support all the possible ways to
specify the track breadths.

This includes a fix to CSSCalculationValue that was converting
Length values to CalcExpressionNumber and thus removing all the
info regarding length units (px, em, pt...). That's why things
like calc(10px + 20%) were shown as calc(10 + 20%) in
getComputedStyle() output.

* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcPrimitiveValue::toCalcValue):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::zoomAdjustedPixelValueForLength):
(WebCore::specifiedValueForGridTrackBreadth):
(WebCore::specifiedValueForGridTrackSize):
* css/StyleResolver.cpp:
(WebCore::createGridTrackBreadth):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfMinLength):
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
(WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):

LayoutTests:

Added some more tests for track breadths specified with calc().

* fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/grid-columns-rows-get-set.html:
* fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html:
* fast/css-grid-layout/non-grid-columns-rows-get-set.html:
* fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:

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

7 years ago32-bit LLInt writeBarrierOnGlobalObject is wrong
mhahnenberg@apple.com [Tue, 11 Feb 2014 18:09:36 +0000 (18:09 +0000)]
32-bit LLInt writeBarrierOnGlobalObject is wrong
https://bugs.webkit.org/show_bug.cgi?id=128556

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm: Also fixed the value check on 64-bit.

Source/WTF:

* wtf/Platform.h: Removed OBJECT_MARK_LOGGING from Platform.h since it already exists in FeatureDefines.h

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

7 years agoStop using PLATFORM(MAC) in WebKit2/Shared except where it means “OS X but not iOS”
mitz@apple.com [Tue, 11 Feb 2014 18:00:45 +0000 (18:00 +0000)]
Stop using PLATFORM(MAC) in WebKit2/Shared except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128582

Reviewed by Darin Adler.

* Shared/API/c/WKContextMenuItem.cpp: Removed workaround for Mac Safari 6 compatibility.
(WKContextMenuItemGetTag):
* Shared/API/c/WKDeprecatedFunctions.cpp: Added && !PLATFORM(IOS), because these functions
are not needed on iOS.
* Shared/API/c/WKSharedAPICast.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebKit::toAPI):
(WebKit::toImpl):
* Shared/APIObject.h: Ditto.
* Shared/ChildProcess.cpp: Ditto.
* Shared/ChildProcess.h: Changed PLATFORM(MAC) to PLATFORM(COCOA) around
setApplicationIsDaemon and setQOS. Changed it to USE(APPKIT) around stopNSAppRunLoop.
* Shared/CommandLine.h: Changed PLATFORM(MAC) to OS(UNIX) around parse().
* Shared/DictionaryPopupInfo.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebKit::DictionaryPopupInfo::encode):
(WebKit::DictionaryPopupInfo::decode):
* Shared/DictionaryPopupInfo.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* Shared/Downloads/Download.h: Ditto.
* Shared/DrawingAreaInfo.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* Shared/FontInfo.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebKit::FontInfo::encode):
(WebKit::FontInfo::decode):
* Shared/FontInfo.h: Ditto.
* Shared/LayerTreeContext.h: Ditto.
* Shared/NativeWebKeyboardEvent.h: Changed PLATFORM(MAC) to USE(APPKIT) around
forward-declaration of NSView.
* Shared/NativeWebMouseEvent.h: Ditto.
* Shared/NativeWebWheelEvent.h: Ditto.
* Shared/Network/CustomProtocols/Cocoa: Renamed from mac.
* Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: Renamed from CustomProtocolManagerMac.mm.
* Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerMac.mm: Removed.
* Shared/Network/CustomProtocols/CustomProtocolManager.h: Changed PLATFORM(MAC) to
PLATFORM(COCOA).
* Shared/Network/CustomProtocols/mac: Removed.
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm: Removed.
* Shared/PlatformPopupMenuData.cpp:  Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebKit::PlatformPopupMenuData::encode):
(WebKit::PlatformPopupMenuData::decode):
* Shared/PlatformPopupMenuData.h: Ditto.
* Shared/Plugins/Netscape/PluginInformation.cpp: Ditto.
* Shared/Plugins/PluginModuleInfo.h: Ditto.
* Shared/Plugins/PluginProcessCreationParameters.cpp: Ditto.
(WebKit::PluginProcessCreationParameters::encode):
(WebKit::PluginProcessCreationParameters::decode):
* Shared/Plugins/PluginProcessCreationParameters.h: Ditto.
* Shared/PrintInfo.h: Changed PLATFORM(MAC) to USE(APPKIT) around forward declaration of
NSPrintInfo.
* Shared/SandboxInitializationParameters.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* Shared/TextCheckerState.h: Changed PLATFORM(MAC) to USE(APPKIT).
* Shared/WebArchive.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* Shared/WebArchive.h: Ditto.
* Shared/WebArchiveResource.cpp: Ditto.
* Shared/WebArchiveResource.h: Ditto.
* Shared/WebCoreArgumentCoders.cpp: Ditto.
(IPC::ArgumentCoder<ResourceResponse>::encode):
(IPC::ArgumentCoder<ResourceResponse>::decode):
* Shared/WebCoreArgumentCoders.h: Ditto.
* Shared/WebEvent.h: Ditto.
* Shared/WebEventConversion.cpp: Ditto.
(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
* Shared/WebKit2Initialize.cpp: Ditto.
(WebKit::InitializeWebKit2):
* Shared/WebPageCreationParameters.cpp: Ditto.
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h: Ditto.
* Shared/WebPreferencesStore.h: Ditto.
* Shared/WebProcessCreationParameters.cpp: Ditto.
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h: Ditto.
* Shared/WebWheelEvent.cpp: Ditto.
(WebKit::WebWheelEvent::WebWheelEvent):
(WebKit::WebWheelEvent::encode):
(WebKit::WebWheelEvent::decode):
* Shared/cf/ArgumentCodersCF.cpp: Changed PLATFORM(MAC) to USE(FOUNDATION).
(IPC::decode):
* Shared/mac/CommandLineMac.cpp: Removed.
* Shared/mac/PDFKitImports.h: Removed PLATFORM(MAC)
* Shared/posix: Added.
* Shared/posix/CommandLinePOSIX.cpp: Renamed from mac/CommandLineMac.cpp and removed
comment.
* WebKit2.xcodeproj/project.pbxproj: Updated for moves and renames.

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

7 years ago[WinCairo] Compile error related to toString function.
commit-queue@webkit.org [Tue, 11 Feb 2014 17:50:52 +0000 (17:50 +0000)]
[WinCairo] Compile error related to toString function.
https://bugs.webkit.org/show_bug.cgi?id=128607

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-02-11
Reviewed by Brent Fulgham.

* WebView.cpp:
(toString): Added another toString function to make sure we are not trying to use WTF::toString.

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

7 years agoiOS build fix.
ap@apple.com [Tue, 11 Feb 2014 17:36:10 +0000 (17:36 +0000)]
iOS build fix.

* WebCoreSupport/WebChromeClient.mm: Fixed incorrectly nested ifdefs.

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

7 years agoCorrect some uses of 'auto'
bfulgham@apple.com [Tue, 11 Feb 2014 17:36:07 +0000 (17:36 +0000)]
Correct some uses of 'auto'
https://bugs.webkit.org/show_bug.cgi?id=128578

Reviewed by Anders Carlsson.

Correct the following instances of "for (auto ...)" to use reference or
const references to avoid copies.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::elementsFromAttribute):
* css/CSSGridTemplateValue.cpp:
(WebCore::stringForPosition):
* dom/Node.cpp:
(WebCore::NodeListsNodeData::invalidateCaches):
* inspector/PageInjectedScriptManager.cpp:
(WebCore::PageInjectedScriptManager::discardInjectedScriptsFor):
* page/WheelEventDeltaTracker.cpp:
(WebCore::WheelEventDeltaTracker::dominantScrollGestureDirection):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
* platform/graphics/mac/WebLayer.mm:
(WebCore::drawLayerContents):
* platform/ios/TileGrid.mm:
(WebCore::TileGrid::dropTilesBetweenRects):
(WebCore::TileGrid::dropDistantTiles):
(WebCore::TileGrid::dropInvalidTiles):
* rendering/InlineTextBox.cpp:
(WebCore::translateIntersectionPointsToSkipInkBoundaries):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):

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

7 years agoLLInt typo error after r139004.
rgabor@webkit.org [Tue, 11 Feb 2014 17:34:39 +0000 (17:34 +0000)]
LLInt typo error after r139004.
https://bugs.webkit.org/show_bug.cgi?id=128592

Reviewed by Michael Saboff.

* offlineasm/arm.rb: change immediate to register in the condition

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

7 years ago[CSS Regions] clipping rectangle for "overflow: hidden" should be based on the paddin...
stavila@adobe.com [Tue, 11 Feb 2014 17:33:41 +0000 (17:33 +0000)]
[CSS Regions] clipping rectangle for "overflow: hidden" should be based on the padding box, not the content box
https://bugs.webkit.org/show_bug.cgi?id=119546

Reviewed by Anders Carlsson.

Added tests for the correct painting of region overflow over the region's padding.
This problem was solved by https://bugs.webkit.org/show_bug.cgi?id=118665 and
https://bugs.webkit.org/show_bug.cgi?id=128590.
Two writing modes (horiz-bt and vert-rl) are still not working properly and a separate
issue has been created for them (https://bugs.webkit.org/show_bug.cgi?id=128600).

* fast/regions/clip-to-padding-box-expected.html: Added.
* fast/regions/clip-to-padding-box-margins-expected.html: Added.
* fast/regions/clip-to-padding-box-margins.html: Added.
* fast/regions/clip-to-padding-box-vertical-lr-expected.html: Added.
* fast/regions/clip-to-padding-box-vertical-lr.html: Added.
* fast/regions/clip-to-padding-box.html: Added.

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

7 years agoLICM should gracefully handle unprofiled code
fpizlo@apple.com [Tue, 11 Feb 2014 16:57:09 +0000 (16:57 +0000)]
LICM should gracefully handle unprofiled code
https://bugs.webkit.org/show_bug.cgi?id=127848

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::run):

LayoutTests:

* js/regress/script-tests/unprofiled-licm.js: Added.
(foo):
* js/regress/unprofiled-licm-expected.txt: Added.
* js/regress/unprofiled-licm.html: Added.

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

7 years ago[New Multicolumn] Make columns work with line grids
hyatt@apple.com [Tue, 11 Feb 2014 16:51:45 +0000 (16:51 +0000)]
[New Multicolumn] Make columns work with line grids
https://bugs.webkit.org/show_bug.cgi?id=128555

Reviewed by Antti Koivisto.

Added line-snap-into-columns.html and line-snap-inside-columns.html

Source/WebCore:

* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
(WebCore::LayoutState::pageOffset):
(WebCore::LayoutState::setLineGridPaginationOrigin):
Change the LayoutState to call into the renderer to compute the line
grid pagination origin instead of doing it directly. Added the
appropriate getters and setters to enable the renderer to do this.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeLineGridPaginationOrigin):
 * rendering/RenderBlock.h:
An implementation for the old multi-column code. The logic is the
same with tweaks made now that the method is on the renderer instead.

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::pageLogicalTopForOffset):
Fix a bug with flow threads and pageLogicalTopForOffset. Normal CSS region-based
flow threads are never embedded in an enclosing pagination context, so they
didn't add in the firstPageLogicalTop (or subtract it when computing the region
hit). Multi-column flow threads do need to subtract out the firstPageLogicalTop,
since it can occur somewhere on the page.

Ultimately regions will need to get smarter here too if they want to work with
line grids, but for now I just fixed multi-column.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::isUnsplittableForPagination):
Undo this change, since it prevents the inheritance of line grids into the
multi-column layout.

* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::computeLineGridPaginationOrigin):
* rendering/RenderMultiColumnFlowThread.h:
An implementation for the new multi-column code. The logic is the
same as the old code. Code duplication is ok, since the old multi-column method
in RenderBlock will just be deleted once the new code is turned on, and it's easier
not to intertwine them.

LayoutTests:

* fast/multicol/newmulticol/line-grid-inside-columns-expected.html: Added.
* fast/multicol/newmulticol/line-grid-inside-columns.html: Added.
* fast/multicol/newmulticol/line-grid-into-columns-expected.html: Added.
* fast/multicol/newmulticol/line-grid-into-columns.html: Added.

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

7 years agoIDB: storage/indexeddb/mozilla/cursor-update-updates-indexes.html ASSERTs
beidson@apple.com [Tue, 11 Feb 2014 16:27:41 +0000 (16:27 +0000)]
IDB: storage/indexeddb/mozilla/cursor-update-updates-indexes.html ASSERTs
<rdar://problem/16034112> and https://bugs.webkit.org/show_bug.cgi?id=128581

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::getRecordFromBackingStore): Always store keyPath for Index get results.

LayoutTests:

* platform/mac-wk2/TestExpectations: Add the test to the enabled list.

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

7 years agoObj-C API: JSExport doesn't work for methods that contain protocols in their type...
mhahnenberg@apple.com [Tue, 11 Feb 2014 16:27:40 +0000 (16:27 +0000)]
Obj-C API: JSExport doesn't work for methods that contain protocols in their type signature
https://bugs.webkit.org/show_bug.cgi?id=128540

Reviewed by Oliver Hunt.

The bug is in parseObjCType in ObjcRuntimeExtras.h. When we see an '@' in the
type signature of a method, we assume that what follows the '@' is a class name,
so we call objc_getClass, and if that returns nil then we give up on the method
and don't export it.

This assumption doesn't work in the case of id<Protocol> because it's the name
of the protocol that follows the '@', not the name of a class. We should have
another fallback case for protocol names.

There's another case that also doesn't work, and that's the case of a named class
with a specified prototype in a method signature (e.g. NSObject<MyProtocol>).
There the substring of the type signature that represents the class is "NSObject<MyProtocol>",
which will also cause objc_getClass to return nil.

* API/ObjcRuntimeExtras.h:
(parseObjCType):
* API/tests/DateTests.mm: Also fixed an issue I noticed where we don't use an autorelease pool
for the DateTests.
* API/tests/JSExportTests.h: Added.
* API/tests/JSExportTests.mm: Added.
(-[TruthTeller returnTrue]):
(-[ExportMethodWithIdProtocol methodWithIdProtocol:]):
(-[ExportMethodWithClassProtocol methodWithClassProtocol:]):
(+[JSExportTests exportInstanceMethodWithIdProtocolTest]):
(+[JSExportTests exportInstanceMethodWithClassProtocolTest]):
(runJSExportTests):
* API/tests/testapi.mm:
* JavaScriptCore.xcodeproj/project.pbxproj:

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

7 years agoO_CLOEXEC in shm_open does not work on FreeBSD
berto@igalia.com [Tue, 11 Feb 2014 16:14:55 +0000 (16:14 +0000)]
O_CLOEXEC in shm_open does not work on FreeBSD
https://bugs.webkit.org/show_bug.cgi?id=128572

Reviewed by Darin Adler.

The O_CLOEXEC is not supported by shm_open() and is also not
necessary since FD_CLOEXEC is already set by default when the new
file descriptor is created.

* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::create):

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

7 years ago[WinCairo] Compile error, deleted file in WTF.
commit-queue@webkit.org [Tue, 11 Feb 2014 16:12:22 +0000 (16:12 +0000)]
[WinCairo] Compile error, deleted file in WTF.
https://bugs.webkit.org/show_bug.cgi?id=128601

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-02-11
Reviewed by Csaba Osztrogonác.

* WTF.vcxproj/WTF.vcxproj: Removed reference to deleted file.
* WTF.vcxproj/WTF.vcxproj.filters: Ditto.

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

7 years ago[CSS Regions] Overflow above the first region is not properly painted for regions...
stavila@adobe.com [Tue, 11 Feb 2014 16:12:08 +0000 (16:12 +0000)]
[CSS Regions] Overflow above the first region is not properly painted for regions with padding
https://bugs.webkit.org/show_bug.cgi?id=128590

Reviewed by Andrei Bucur.

Source/WebCore:

Painting is done using the layer of the region's container, so offsetting using the content box
of the region itself is incorrect.

Test: fast/regions/region-padding-overflow-hidden.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::regionContainer):
(WebCore::RenderRegion::regionContainerLayer):
* rendering/RenderRegion.h:

LayoutTests:

Added test for the correct painting of overflow above the first region
when the region has padding.

* fast/regions/region-padding-overflow-hidden-expected.html: Added.
* fast/regions/region-padding-overflow-hidden.html: Added.

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

7 years agoquerySelector() does not use the compiler correctly
benjamin@webkit.org [Tue, 11 Feb 2014 10:21:12 +0000 (10:21 +0000)]
querySelector() does not use the compiler correctly
https://bugs.webkit.org/show_bug.cgi?id=128588

Reviewed by Andreas Kling.

* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::execute):
I messed up the refactoring when I landed SelectorQuery. The compiled
code was not used the first time through SelectorDataList::execute.

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

7 years ago[GStreamer] High playback rate causes crash
commit-queue@webkit.org [Tue, 11 Feb 2014 10:09:22 +0000 (10:09 +0000)]
[GStreamer] High playback rate causes crash
https://bugs.webkit.org/show_bug.cgi?id=128453

Patch by Piotr Grad <p.grad@samsung.com> on 2014-02-11
Reviewed by Philippe Normand.

Source/WebCore:

To high playback rate passed to GStreamer was causing crash.
Added guard in setRate method.

Test: media/video-extreme-playbackrate-crash.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setRate):

LayoutTests:

Test checks if passing high playback rate causes crash.

* media/video-extreme-playbackrate-crash-expected.txt: Added.
* media/video-extreme-playbackrate-crash.html: Added.

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

7 years agoUnreviewed. Fix /webkit2/WebKitWebExtension/isolated-world after r163797.
carlosgc@webkit.org [Tue, 11 Feb 2014 08:37:17 +0000 (08:37 +0000)]
Unreviewed. Fix /webkit2/WebKitWebExtension/isolated-world after r163797.

Use a global variable for the script result.

* TestWebKitAPI/Tests/WebKit2Gtk/TestWebExtensions.cpp:
(scriptDialogCallback):
(testWebExtensionIsolatedWorld):

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

7 years agoSkip IndexedDB tests again, they are failing.
ap@apple.com [Tue, 11 Feb 2014 08:32:57 +0000 (08:32 +0000)]
Skip IndexedDB tests again, they are failing.

* platform/mac-wk2/TestExpectations:

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

7 years agoAdd hooks for wrapping CryptoKeys in SerializedScriptValue
ap@apple.com [Tue, 11 Feb 2014 08:30:06 +0000 (08:30 +0000)]
Add hooks for wrapping CryptoKeys in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128567

* platform/mac/TestExpectations: Forgot to include this in the patch, skipping a
worker test that no longer works.

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

7 years agoUnreviewed, rolling out r163856.
commit-queue@webkit.org [Tue, 11 Feb 2014 07:48:16 +0000 (07:48 +0000)]
Unreviewed, rolling out r163856.
http://trac.webkit.org/changeset/163856
https://bugs.webkit.org/show_bug.cgi?id=128585

The build fix depends on r163848, which has been reverted
(Requested by notbenjamin on #webkit).

* UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):

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

7 years agoIndexedDB assertion at IDBTransactionBackend::~IDBTransactionBackend()
beidson@apple.com [Tue, 11 Feb 2014 06:37:36 +0000 (06:37 +0000)]
IndexedDB assertion at IDBTransactionBackend::~IDBTransactionBackend()
https://bugs.webkit.org/show_bug.cgi?id=128341

Reviewed by Maciej Stachowiak.

Source/WebCore:

* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::~IDBTransactionBackend): "Finished" is not the only
  valid value here - In WK2, "Unused" is also valid. Update the ASSERT.

LayoutTests:

* platform/mac-wk2/TestExpectations: Reenable the indexeddb tests that are known to pass.

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

7 years agoAdd hooks for wrapping CryptoKeys in SerializedScriptValue
ap@apple.com [Tue, 11 Feb 2014 06:32:39 +0000 (06:32 +0000)]
Add hooks for wrapping CryptoKeys in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128567

Reviewed by Anders Carlsson.

Source/WebCore:

* bindings/js/SerializedScriptValue.cpp: Changed SerializedScriptValue to serialize
wrapped keys. Added a version number to crypto key serialization.

* dom/Document.cpp:
(WebCore::Document::wrapCryptoKey):
(WebCore::Document::unwrapCryptoKey):
* dom/Document.h:
* dom/ScriptExecutionContext.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::wrapCryptoKey):
(WebCore::ChromeClient::unwrapCryptoKey):
Hand wrapping/unwrapping over to client code.

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::wrapCryptoKey):
(WebCore::WorkerGlobalScope::unwrapCryptoKey):
* workers/WorkerGlobalScope.h:
Not implemented in workers. SubtleCrypto is currently not exposed in workers. It used
to be possible in WebKit implementation to post a CryptoKey to a worker anyway,
but this doesn't work any more.

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::wrapCryptoKey):
(WebChromeClient::unwrapCryptoKey):
Dummy implementation, to be filled in later.

Source/WebKit2:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::wrapCryptoKey):
(WebKit::WebPageProxy::unwrapCryptoKey):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::wrapCryptoKey):
(WebKit::WebChromeClient::unwrapCryptoKey):
* WebProcess/WebCoreSupport/WebChromeClient.h:
Dummy implementation, to be filled in later.

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

7 years agoStop using PLATFORM(MAC) in WebKit2/platform except where it means “OS X but not...
mitz@apple.com [Tue, 11 Feb 2014 06:21:41 +0000 (06:21 +0000)]
Stop using PLATFORM(MAC) in WebKit2/platform except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128513

Reviewed by Dean Jackson.

* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForSyncReply): Changed PLATFORM(MAC) to PLATFORM(COCOA) around use of
RunLoop::runForDuration, matching the guard around that function.
* Platform/Logging.cpp: Deleted unused definition of logLevelString.
* Platform/Module.cpp:
(WebKit::Module::Module): Changed PLATFORM(MAC) to USE(CF).
* Platform/Module.h: Changed PLATFORM(MAC) to USE(CF), since the “Mac” implementation is
just a CFBundle-based implementation.
* Platform/PlatformProcessIdentifier.h: Changed PLATFORM(MAC) to PLATFORM(COCOA). Arguably
this should be OS(DARWIN) && !PLATFORM(EFL) && !PLATFORM(GTK).
* Platform/cf: Added.
* Platform/cf/ModuleCF.cpp: Renamed from Platform/mac/ModuleMac.mm. This file did not
contain any Objective-C code.
* Platform/foundation: Added.
* Platform/foundation/LoggingFoundation.mm: Renamed from Platform/mac/Logging.mac.mm.
* Platform/mac/Logging.mac.mm: Removed.
* Platform/mac/ModuleMac.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj: Updated for renames.

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

7 years agosvg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html and svg/css/font-face...
ap@apple.com [Tue, 11 Feb 2014 06:20:56 +0000 (06:20 +0000)]
svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html and svg/css/font-face-crash.html
frequently assert in ComplexTextController::offsetForPosition
https://bugs.webkit.org/show_bug.cgi?id=119747

* platform/mac/TestExpectations: Skipped the latter test in debug builds.

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

7 years agoUnreviewed, rolling out r163848.
commit-queue@webkit.org [Tue, 11 Feb 2014 06:17:59 +0000 (06:17 +0000)]
Unreviewed, rolling out r163848.
http://trac.webkit.org/changeset/163848
https://bugs.webkit.org/show_bug.cgi?id=128580

Caused a lot of crashes on tests (Requested by ap on #webkit).

* Shared/APIString.h:
* UIProcess/TextChecker.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::checkTextOfParagraph):
(WebKit::WebPageProxy::checkSpellingOfString):
(WebKit::WebPageProxy::checkGrammarOfString):
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):

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

7 years agoRe-enable ARM Thumb2 disassembler
msaboff@apple.com [Tue, 11 Feb 2014 05:43:48 +0000 (05:43 +0000)]
Re-enable ARM Thumb2 disassembler
https://bugs.webkit.org/show_bug.cgi?id=128577

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Changed signature of tryToDisassemble() to match updates.
Fixed typo in disassembler.

* disassembler/ARMv7/ARMv7DOpcode.cpp:
* disassembler/ARMv7Disassembler.cpp:
(JSC::tryToDisassemble):

Source/WTF:

Added definition of WTF_USE_ARMV7_DISASSEMBLER back to Platform.h

* wtf/Platform.h:

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

7 years agoSupport ANGLE_instanced_arrays for linux
changseok.oh@collabora.com [Tue, 11 Feb 2014 05:24:44 +0000 (05:24 +0000)]
Support ANGLE_instanced_arrays for linux
https://bugs.webkit.org/show_bug.cgi?id=127465

Reviewed by Martin Robinson.

Support the instanced drawing WebGL extension, ANGLE_instanced_arrays for linux platform.
This is a following patch for r162565. Relevant opengl APIs are exposed
for WebGLRenderingContext to access them.

Covered by fast/canvas/webgl/angle-instanced-arrays.html

* html/canvas/ANGLEInstancedArrays.cpp:
(WebCore::ANGLEInstancedArrays::supported):
* platform/graphics/OpenGLShims.cpp:
(WebCore::initializeOpenGLShims):
* platform/graphics/OpenGLShims.h:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension):
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::drawArraysInstanced):
(WebCore::GraphicsContext3D::drawElementsInstanced):
(WebCore::GraphicsContext3D::vertexAttribDivisor):

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

7 years agoIDB: storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put...
beidson@apple.com [Tue, 11 Feb 2014 05:17:15 +0000 (05:17 +0000)]
IDB: storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put.html fails
<rdar://problem/16033286> and https://bugs.webkit.org/show_bug.cgi?id=128574

Reviewed by Maciej Stachowiak.

Source/WebKit2:

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::getRecordFromBackingStore): If there is no value in an object-store get,
  don’t return *any* results.

LayoutTests:

* platform/mac-wk2/TestExpectations:  Add the test (still skipped for now due to unrelated reasons).

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

7 years agoFix the iOS build after r163848
benjamin@webkit.org [Tue, 11 Feb 2014 05:09:42 +0000 (05:09 +0000)]
Fix the iOS build after r163848

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-10

* UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):

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

7 years agoSource/JavaScriptCore: Removing limitation on JSLock's lockDropDepth.
mark.lam@apple.com [Tue, 11 Feb 2014 04:48:01 +0000 (04:48 +0000)]
Source/JavaScriptCore: Removing limitation on JSLock's lockDropDepth.
<https://webkit.org/b/128570>

Reviewed by Geoffrey Garen.

Now that we've switched to using the C stack, we no longer need to limit
the JSLock::lockDropDepth to 2.

For C loop builds which still use the separate JSStack, the JSLock will
enforce ordering for re-grabbing the lock after dropping it. Re-grabbing
must occur in the reverse order of the dropping of the locks.

Ordering is achieved by JSLock::dropAllLocks() stashing away the
JSLock:: m_lockDropDepth in its DropAllLocks instance's m_dropDepth
before unlocking the lock. Subsequently, JSLock::grabAllLocks() will
ensure that JSLocks::m_lockDropDepth equals its DropAllLocks instance's
m_dropDepth before allowing the lock to be re-grabbed. Otherwise, it
will yield execution and retry again later.

Note: because JSLocks::m_lockDropDepth is protected by the JSLock's
mutex, grabAllLocks() will optimistically lock the JSLock before doing
the check on m_lockDropDepth. If the check fails, it will unlock the
JSLock, yield, and then relock it again later before retrying the check.
This ensures that m_lockDropDepth remains under the protection of the
JSLock's mutex.

* runtime/JSLock.cpp:
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::grabAllLocks):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):
* runtime/JSLock.h:
(JSC::JSLock::DropAllLocks::setDropDepth):
(JSC::JSLock::DropAllLocks::dropDepth):

Source/WebCore: Removing limitation on JSLock’s lockDropDepth.
<https://webkit.org/b/128570>

Reviewed by Geoffrey Garen.

No new tests.

* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
* platform/ios/wak/WebCoreThread.mm:
(SendDelegateMessage):
(WebThreadRunOnMainThread):
- No longer need to specify AlwaysDropLocks, because DropAllLocks is
  now always unconditional.

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

7 years agoClean up MarkupAccumulator::appendCharactersReplacingEntities
benjamin@webkit.org [Tue, 11 Feb 2014 02:47:49 +0000 (02:47 +0000)]
Clean up MarkupAccumulator::appendCharactersReplacingEntities
https://bugs.webkit.org/show_bug.cgi?id=128440

Reviewed by Ryosuke Niwa.

Some cleanup:
-Remove the copied code for the loops. Instead, use a template with the loop
 parametrized by the characters type.
-Move EntityDescription from the header to the implementation.
-Make the 5 substitution strings compile-time literals. Replacement is not hot enough
 to justify the static here.

* editing/MarkupAccumulator.cpp:
(WebCore::appendCharactersReplacingEntitiesInternal):
(WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
* editing/MarkupAccumulator.h:

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

7 years agoAdd a few pseudo type to the selector compiler through function calls
benjamin@webkit.org [Tue, 11 Feb 2014 02:46:04 +0000 (02:46 +0000)]
Add a few pseudo type to the selector compiler through function calls
https://bugs.webkit.org/show_bug.cgi?id=128514

Reviewed by Dean Jackson.

Certain pseudo type checkers rely on virtual function calls. Since those types
are uncommon, and this code generator cannot currently make virtual function calls,
the checker are added by generating a function call to a wrapper function.

To avoid code duplication between SelectorChecker and the compiler, all the relevant checking
code has been moved to a common header, SelectorCheckerTestFunctions.h.
SelectorChecker still inline the functions, while the SelectorCompiler generate local static functions
and generate calls to them as needed.

* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/SelectorCheckerTestFunctions.h: Added.
(WebCore::isAutofilled):
(WebCore::isDefaultButtonForForm):
(WebCore::isDisabled):
(WebCore::isEnabled):
(WebCore::isChecked):
(WebCore::isInvalid):
(WebCore::isOptionalFormControl):
(WebCore::isRequiredFormControl):
(WebCore::isValid):
(WebCore::matchesReadOnlyPseudoClass):
(WebCore::matchesReadWritePseudoClass):
(WebCore::shouldAppearIndeterminate):
(WebCore::matchesFullScreenPseudoClass):
(WebCore::matchesFutureCuePseudoClass):
(WebCore::matchesPastCuePseudoClass):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::nonConstTestFunctionWrapper):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
* dom/Element.h:
(WebCore::Element::isValidFormControlElement):
* dom/Node.h:
(WebCore::Node::toInputElement):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::isValidFormControlElement):
* html/HTMLFormControlElement.h:

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

7 years agoMake it possible to run tests with --llvmSimpleOpt=false
fpizlo@apple.com [Tue, 11 Feb 2014 02:45:46 +0000 (02:45 +0000)]
Make it possible to run tests with --llvmSimpleOpt=false
https://bugs.webkit.org/show_bug.cgi?id=128571

Reviewed by Mark Lam.

This also makes it so all run functions for the FTL are safe to call with FTL disabled,
because they do their own $enableFTL check.

* Scripts/run-jsc-stress-tests:

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

7 years agoFTL should support ToThis
fpizlo@apple.com [Tue, 11 Feb 2014 02:41:46 +0000 (02:41 +0000)]
FTL should support ToThis
https://bugs.webkit.org/show_bug.cgi?id=127751

Reviewed by Oliver Hunt.

* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileToThis):
* tests/stress/to-this-polymorphic.js: Added.
(foo):

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

7 years agoAdd the basic infrastructure to compile attributes matching in selectors
benjamin@webkit.org [Tue, 11 Feb 2014 02:41:00 +0000 (02:41 +0000)]
Add the basic infrastructure to compile attributes matching in selectors
https://bugs.webkit.org/show_bug.cgi?id=128484

Reviewed by Gavin Barraclough.

Source/WebCore:

Tests: fast/selectors/querySelector-attribute-match-with-child-backtracking.html
       fast/selectors/querySelector-long-attribute-match-with-child-backtracking.html
       fast/selectors/querySelector-long-multiple-attribute-match-with-child-backtracking.html
       fast/selectors/querySelector-multiple-attribute-match-with-child-backtracking.html

Add the infrastructure to match attributes. This only add basic support for the 'Set' match
type, the other match types will have to be built on top.

* cssjit/RegisterAllocator.h:
(WebCore::RegisterAllocator::availableRegisterCount):
(WebCore::RegisterAllocator::allocateRegister):
(WebCore::RegisterAllocator::deallocateRegister):
(WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
(WebCore::RegisterAllocator::restoreCalleeSavedRegisters):
(WebCore::RegisterAllocator::allocatedRegisters):
(WebCore::RegisterAllocator::RegisterAllocator):
(WebCore::RegisterAllocator::~RegisterAllocator):
In the worst case, matching attributes can take up to 10 registers. On x86_64, we have
8 caller-saved registers. The extra 2 registers are simply added by taking callee-saved registers.

RegisterAllocator is modified to know support saving and restoring callee saved registers.
The list of available registers is changed from a vector to a HashSet because the registers
are removed from arbitrary locations in restoreCalleeSavedRegisters(). The m_allocatedRegisters
remain a vector since the allocation/release pattern remain ordered.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):

(WebCore::SelectorCompiler::minimumRegisterRequirements):
This new utility finds the minimum number of registers needed to compile the input. In most
cases we have plenty enough. In rare cases we need to saved a few registers to the stack.

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
(WebCore::SelectorCompiler::testIsHTMLFlagOnNode):
(WebCore::SelectorCompiler::canMatchStyleAttribute):

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
The style attribute and certain SVG attributes can be modified lazily. In those cases,
the element needs to be updated before querying the attributes.

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributesMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
Generate the attribute matching. For each CSSSelector matching an attribute, we generate
a loop over all the attributes of the element, maching the particular CSSSelector.
This makes no attempt at grouping related queries since those do not seem to happen a lot
in practice.

* dom/Attribute.h:
(WebCore::Attribute::nameMemoryOffset):
(WebCore::Attribute::nameMatchesFilter):
(WebCore::Attribute::matches):
* dom/ElementData.h:
(WebCore::ElementData::isUniqueFlag):
(WebCore::ElementData::arraySizeAndFlagsMemoryOffset):
(WebCore::ElementData::styleAttributeIsDirtyFlag):
(WebCore::ElementData::animatedSVGAttributesAreDirtyFlag):
(WebCore::ElementData::arraySizeOffset):
(WebCore::ShareableElementData::attributeArrayMemoryOffset):
(WebCore::UniqueElementData::attributeVectorMemoryOffset):
* dom/Node.h:
(WebCore::Node::flagIsHTML):
* dom/StyledElement.cpp:
(WebCore::StyledElement::synchronizeStyleAttributeInternal):
* dom/StyledElement.h:
(WebCore::StyledElement::synchronizeStyleAttributeInternal):
* svg/SVGElement.cpp:
(WebCore::SVGElement::synchronizeAllAnimatedSVGAttribute):
(WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
* svg/SVGElement.h:

Source/WTF:

* wtf/Vector.h:
(WTF::VectorBufferBase::bufferMemoryOffset):
(WTF::Vector::sizeMemoryOffset):
(WTF::Vector::dataMemoryOffset):
Expose the memory offsets of Vector::size() and the memory buffer pointer for the JIT.

LayoutTests:

Tests the various cases requiring more register than what is available from the caller-saved pool.

* fast/selectors/querySelector-attribute-match-with-child-backtracking-expected.txt: Added.
* fast/selectors/querySelector-attribute-match-with-child-backtracking.html: Added.
* fast/selectors/querySelector-long-attribute-match-with-child-backtracking-expected.txt: Added.
* fast/selectors/querySelector-long-attribute-match-with-child-backtracking.html: Added.
* fast/selectors/querySelector-long-multiple-attribute-match-with-child-backtracking-expected.txt: Added.
* fast/selectors/querySelector-long-multiple-attribute-match-with-child-backtracking.html: Added.
* fast/selectors/querySelector-multiple-attribute-match-with-child-backtracking-expected.txt: Added.
* fast/selectors/querySelector-multiple-attribute-match-with-child-backtracking.html: Added.

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

7 years agoIDB: storage/indexeddb/mozilla/indexes.html fails
beidson@apple.com [Tue, 11 Feb 2014 02:29:22 +0000 (02:29 +0000)]
IDB: storage/indexeddb/mozilla/indexes.html fails
<rdar://problem/16031590> and https://bugs.webkit.org/show_bug.cgi?id=128563

Reviewed by Tim Horton.

Source/WebCore:

Tested by storage/indexeddb/mozilla/indexes.html (and probably others)

* Modules/indexeddb/IDBGetResult.h:
(WebCore::IDBGetResult::IDBGetResult): Add a constructor that takes an IDBKeyData argument.

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): If there’s no keyPath then skip the injection step.

Source/WebKit2:

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::getRecordFromBackingStore): Pass the cursor type to the backing store.

* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::getIndexRecord): If it’s a key-only cursor,
  return only the key result.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::getIndexStatement): Fix index statement selection so ascending, unique cursors sort correctly.

LayoutTests:

* platform/mac-wk2/TestExpectations: Add the test (still skipped for now due to unrelated reasons).

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

7 years agoRemove a couple of deprecatedCharacters() from WebKit2
andersca@apple.com [Tue, 11 Feb 2014 02:12:42 +0000 (02:12 +0000)]
Remove a couple of deprecatedCharacters() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=128569

Reviewed by Andreas Kling.

* Shared/APIString.h:
* UIProcess/TextChecker.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::checkTextOfParagraph):
(WebKit::WebPageProxy::checkSpellingOfString):
(WebKit::WebPageProxy::checkGrammarOfString):
* UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):

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

7 years agoSpeed up DatasetDOMStringMap::item() when the element has multiple attributes
benjamin@webkit.org [Tue, 11 Feb 2014 02:11:44 +0000 (02:11 +0000)]
Speed up DatasetDOMStringMap::item() when the element has multiple attributes
https://bugs.webkit.org/show_bug.cgi?id=128058

Reviewed by Darin Adler.

Accessing data attributes by name through DatasetDOMStringMap involes the conversion
from JavaScript property name to attribute name (done with propertyNameMatchesAttributeName()).

When there is a single data attribute, that method is efficient. When there are several attributes,
comparing names character by character becomes a bottleneck.

This patch add an efficent path for this case: instead of converting the attribute name on the fly,
the JavaScript property name is converted to an attribute name so that it can compared by its
AtomicStringImpl pointer.

This method puts a lot more pressure on convertPropertyNameToAttributeName()'s speed. The method was
improved accordingly to compensate for its new caller.

When enumerating multiple attributes by name, this patch provides about 80% speedup.
I could not measure any slow down on the simple cases.

* dom/DatasetDOMStringMap.cpp:
(WebCore::convertPropertyNameToAttributeName):
(WebCore::DatasetDOMStringMap::item):
* dom/ElementData.h:
(WebCore::AttributeIteratorAccessor::attributeCount):

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

7 years agoAddress the review comments for r163825.
rniwa@webkit.org [Tue, 11 Feb 2014 01:56:31 +0000 (01:56 +0000)]
Address the review comments for r163825.

* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
(WebCore::positionForIndex):

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

7 years agoTry to fix the 32-bit build.
simon.fraser@apple.com [Tue, 11 Feb 2014 01:46:39 +0000 (01:46 +0000)]
Try to fix the 32-bit build.

* WebCore.exp.in:

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

7 years agoRename Operations.h to JSCInlines.h
fpizlo@apple.com [Tue, 11 Feb 2014 01:45:50 +0000 (01:45 +0000)]
Rename Operations.h to JSCInlines.h
https://bugs.webkit.org/show_bug.cgi?id=128543

Source/JavaScriptCore:

Rubber stamped by Geoffrey Garen.

Well, what this actually does is it splits Operations.h into a real Operations.h that
actually contains "operations", and JSCInlines.h, which serves the role of being an
inlines umbrella.

* API/JSBase.cpp:
* API/JSCTestRunnerUtils.cpp:
* API/JSCallbackConstructor.cpp:
* API/JSCallbackFunction.cpp:
* API/JSCallbackObject.cpp:
* API/JSClassRef.cpp:
* API/JSContext.mm:
* API/JSContextRef.cpp:
* API/JSManagedValue.mm:
* API/JSObjectRef.cpp:
* API/JSScriptRef.cpp:
* API/JSValue.mm:
* API/JSValueRef.cpp:
* API/JSWeakObjectMapRefPrivate.cpp:
* API/JSWrapperMap.mm:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/LinkBuffer.cpp:
* bindings/ScriptFunctionCall.cpp:
* bindings/ScriptObject.cpp:
* bytecode/ArrayAllocationProfile.cpp:
* bytecode/ArrayProfile.cpp:
* bytecode/BytecodeBasicBlock.cpp:
* bytecode/CallLinkInfo.cpp:
* bytecode/CallLinkStatus.cpp:
* bytecode/CodeBlock.cpp:
* bytecode/CodeBlockJettisoningWatchpoint.cpp:
* bytecode/CodeOrigin.cpp:
* bytecode/ExecutionCounter.cpp:
* bytecode/GetByIdStatus.cpp:
* bytecode/LazyOperandValueProfile.cpp:
* bytecode/MethodOfGettingAValueProfile.cpp:
* bytecode/PreciseJumpTargets.cpp:
* bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp:
* bytecode/PutByIdStatus.cpp:
* bytecode/SamplingTool.cpp:
* bytecode/SpecialPointer.cpp:
* bytecode/SpeculatedType.cpp:
* bytecode/StructureStubClearingWatchpoint.cpp:
* bytecode/UnlinkedCodeBlock.cpp:
* bytecode/ValueRecovery.cpp:
* bytecompiler/BytecodeGenerator.cpp:
* bytecompiler/NodesCodegen.cpp:
* debugger/Debugger.cpp:
* debugger/DebuggerActivation.cpp:
* debugger/DebuggerCallFrame.cpp:
* dfg/DFGAbstractHeap.cpp:
* dfg/DFGAbstractValue.cpp:
* dfg/DFGArgumentsSimplificationPhase.cpp:
* dfg/DFGArithMode.cpp:
* dfg/DFGArrayMode.cpp:
* dfg/DFGAtTailAbstractState.cpp:
* dfg/DFGAvailability.cpp:
* dfg/DFGBackwardsPropagationPhase.cpp:
* dfg/DFGBasicBlock.cpp:
* dfg/DFGBinarySwitch.cpp:
* dfg/DFGBlockInsertionSet.cpp:
* dfg/DFGByteCodeParser.cpp:
* dfg/DFGCFAPhase.cpp:
* dfg/DFGCFGSimplificationPhase.cpp:
* dfg/DFGCPSRethreadingPhase.cpp:
* dfg/DFGCSEPhase.cpp:
* dfg/DFGCapabilities.cpp:
* dfg/DFGClobberSet.cpp:
* dfg/DFGClobberize.cpp:
* dfg/DFGCommon.cpp:
* dfg/DFGCommonData.cpp:
* dfg/DFGCompilationKey.cpp:
* dfg/DFGCompilationMode.cpp:
* dfg/DFGConstantFoldingPhase.cpp:
* dfg/DFGCriticalEdgeBreakingPhase.cpp:
* dfg/DFGDCEPhase.cpp:
* dfg/DFGDesiredIdentifiers.cpp:
* dfg/DFGDesiredStructureChains.cpp:
* dfg/DFGDesiredTransitions.cpp:
* dfg/DFGDesiredWatchpoints.cpp:
* dfg/DFGDesiredWeakReferences.cpp:
* dfg/DFGDesiredWriteBarriers.cpp:
* dfg/DFGDisassembler.cpp:
* dfg/DFGDominators.cpp:
* dfg/DFGDriver.cpp:
* dfg/DFGEdge.cpp:
* dfg/DFGFailedFinalizer.cpp:
* dfg/DFGFinalizer.cpp:
* dfg/DFGFixupPhase.cpp:
* dfg/DFGFlushFormat.cpp:
* dfg/DFGFlushLivenessAnalysisPhase.cpp:
* dfg/DFGFlushedAt.cpp:
* dfg/DFGGraph.cpp:
* dfg/DFGGraphSafepoint.cpp:
* dfg/DFGInPlaceAbstractState.cpp:
* dfg/DFGInvalidationPointInjectionPhase.cpp:
* dfg/DFGJITCode.cpp:
* dfg/DFGJITCompiler.cpp:
* dfg/DFGJITFinalizer.cpp:
* dfg/DFGJumpReplacement.cpp:
* dfg/DFGLICMPhase.cpp:
* dfg/DFGLazyJSValue.cpp:
* dfg/DFGLivenessAnalysisPhase.cpp:
* dfg/DFGLongLivedState.cpp:
* dfg/DFGLoopPreHeaderCreationPhase.cpp:
* dfg/DFGMinifiedNode.cpp:
* dfg/DFGNaturalLoops.cpp:
* dfg/DFGNode.cpp:
* dfg/DFGNodeFlags.cpp:
* dfg/DFGOSRAvailabilityAnalysisPhase.cpp:
* dfg/DFGOSREntry.cpp:
* dfg/DFGOSREntrypointCreationPhase.cpp:
* dfg/DFGOSRExit.cpp:
* dfg/DFGOSRExitBase.cpp:
* dfg/DFGOSRExitCompiler.cpp:
* dfg/DFGOSRExitCompiler32_64.cpp:
* dfg/DFGOSRExitCompiler64.cpp:
* dfg/DFGOSRExitCompilerCommon.cpp:
* dfg/DFGOSRExitJumpPlaceholder.cpp:
* dfg/DFGOSRExitPreparation.cpp:
* dfg/DFGOperations.cpp:
* dfg/DFGPhase.cpp:
* dfg/DFGPlan.cpp:
* dfg/DFGPredictionInjectionPhase.cpp:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGResurrectionForValidationPhase.cpp:
* dfg/DFGSSAConversionPhase.cpp:
* dfg/DFGSSALoweringPhase.cpp:
* dfg/DFGSafepoint.cpp:
* dfg/DFGSpeculativeJIT.cpp:
* dfg/DFGSpeculativeJIT32_64.cpp:
* dfg/DFGSpeculativeJIT64.cpp:
* dfg/DFGStackLayoutPhase.cpp:
* dfg/DFGStoreBarrierElisionPhase.cpp:
* dfg/DFGStrengthReductionPhase.cpp:
* dfg/DFGThreadData.cpp:
* dfg/DFGThunks.cpp:
* dfg/DFGTierUpCheckInjectionPhase.cpp:
* dfg/DFGToFTLDeferredCompilationCallback.cpp:
* dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:
* dfg/DFGTypeCheckHoistingPhase.cpp:
* dfg/DFGUnificationPhase.cpp:
* dfg/DFGUseKind.cpp:
* dfg/DFGValidate.cpp:
* dfg/DFGValueSource.cpp:
* dfg/DFGVariableAccessDataDump.cpp:
* dfg/DFGVariableEvent.cpp:
* dfg/DFGVariableEventStream.cpp:
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
* dfg/DFGWatchpointCollectionPhase.cpp:
* dfg/DFGWorklist.cpp:
* ftl/FTLAbstractHeap.cpp:
* ftl/FTLAbstractHeapRepository.cpp:
* ftl/FTLExitValue.cpp:
* ftl/FTLLink.cpp:
* ftl/FTLLowerDFGToLLVM.cpp:
* ftl/FTLOSREntry.cpp:
* ftl/FTLOSRExit.cpp:
* ftl/FTLOSRExitCompiler.cpp:
* ftl/FTLSlowPathCall.cpp:
* heap/BlockAllocator.cpp:
* heap/CodeBlockSet.cpp:
* heap/ConservativeRoots.cpp:
* heap/CopiedSpace.cpp:
* heap/CopyVisitor.cpp:
* heap/DeferGC.cpp:
* heap/GCThread.cpp:
* heap/GCThreadSharedData.cpp:
* heap/HandleSet.cpp:
* heap/HandleStack.cpp:
* heap/Heap.cpp:
* heap/HeapStatistics.cpp:
* heap/HeapTimer.cpp:
* heap/IncrementalSweeper.cpp:
* heap/JITStubRoutineSet.cpp:
* heap/MachineStackMarker.cpp:
* heap/MarkStack.cpp:
* heap/MarkedAllocator.cpp:
* heap/MarkedBlock.cpp:
* heap/MarkedSpace.cpp:
* heap/SlotVisitor.cpp:
* heap/SuperRegion.cpp:
* heap/Weak.cpp:
* heap/WeakBlock.cpp:
* heap/WeakHandleOwner.cpp:
* heap/WeakSet.cpp:
* heap/WriteBarrierBuffer.cpp:
* heap/WriteBarrierSupport.cpp:
* inspector/InjectedScript.cpp:
* inspector/InjectedScriptBase.cpp:
* inspector/JSGlobalObjectScriptDebugServer.cpp:
* inspector/JSInjectedScriptHost.cpp:
* inspector/ScriptArguments.cpp:
* inspector/ScriptCallStackFactory.cpp:
* interpreter/AbstractPC.cpp:
* interpreter/CallFrame.cpp:
* interpreter/Interpreter.cpp:
* interpreter/JSStack.cpp:
* interpreter/ProtoCallFrame.cpp:
* interpreter/StackVisitor.cpp:
* interpreter/VMInspector.cpp:
* jit/ArityCheckFailReturnThunks.cpp:
* jit/AssemblyHelpers.cpp:
* jit/ClosureCallStubRoutine.cpp:
* jit/ExecutableAllocator.cpp:
* jit/ExecutableAllocatorFixedVMPool.cpp:
* jit/GCAwareJITStubRoutine.cpp:
* jit/HostCallReturnValue.cpp:
* jit/JIT.cpp:
* jit/JITArithmetic.cpp:
* jit/JITArithmetic32_64.cpp:
* jit/JITCall.cpp:
* jit/JITCall32_64.cpp:
* jit/JITCode.cpp:
* jit/JITDisassembler.cpp:
* jit/JITExceptions.cpp:
* jit/JITInlineCacheGenerator.cpp:
* jit/JITInlines.h:
* jit/JITOperations.cpp:
* jit/JITOperationsMSVC64.cpp:
* jit/JITStubRoutine.cpp:
* jit/JITStubs.cpp:
* jit/JITThunks.cpp:
* jit/JITToDFGDeferredCompilationCallback.cpp:
* jit/RegisterPreservationWrapperGenerator.cpp:
* jit/RegisterSet.cpp:
* jit/Repatch.cpp:
* jit/TempRegisterSet.cpp:
* jit/ThunkGenerators.cpp:
* jsc.cpp:
* llint/LLIntExceptions.cpp:
* llint/LLIntSlowPaths.cpp:
* llint/LowLevelInterpreter.cpp:
* parser/Lexer.cpp:
* parser/Nodes.cpp:
* parser/Parser.cpp:
* parser/ParserArena.cpp:
* parser/SourceCode.cpp:
* parser/SourceProvider.cpp:
* parser/SourceProviderCache.cpp:
* profiler/LegacyProfiler.cpp:
* profiler/ProfileGenerator.cpp:
* profiler/ProfilerBytecode.cpp:
* profiler/ProfilerBytecodeSequence.cpp:
* profiler/ProfilerBytecodes.cpp:
* profiler/ProfilerCompilation.cpp:
* profiler/ProfilerCompiledBytecode.cpp:
* profiler/ProfilerDatabase.cpp:
* profiler/ProfilerOSRExit.cpp:
* profiler/ProfilerOSRExitSite.cpp:
* profiler/ProfilerOrigin.cpp:
* profiler/ProfilerOriginStack.cpp:
* profiler/ProfilerProfiledBytecodes.cpp:
* runtime/ArgList.cpp:
* runtime/Arguments.cpp:
* runtime/ArgumentsIteratorPrototype.cpp:
* runtime/ArrayBuffer.cpp:
* runtime/ArrayBufferNeuteringWatchpoint.cpp:
* runtime/ArrayConstructor.cpp:
* runtime/ArrayPrototype.cpp:
* runtime/BooleanConstructor.cpp:
* runtime/BooleanObject.cpp:
* runtime/BooleanPrototype.cpp:
* runtime/CallData.cpp:
* runtime/CodeCache.cpp:
* runtime/CommonSlowPaths.cpp:
* runtime/CommonSlowPathsExceptions.cpp:
* runtime/Completion.cpp:
* runtime/ConstructData.cpp:
* runtime/DateConstructor.cpp:
* runtime/DateInstance.cpp:
* runtime/DatePrototype.cpp:
* runtime/Error.cpp:
* runtime/ErrorConstructor.cpp:
* runtime/ErrorInstance.cpp:
* runtime/ErrorPrototype.cpp:
* runtime/ExceptionHelpers.cpp:
* runtime/Executable.cpp:
* runtime/FunctionConstructor.cpp:
* runtime/FunctionPrototype.cpp:
* runtime/GetterSetter.cpp:
* runtime/Identifier.cpp:
* runtime/IntendedStructureChain.cpp:
* runtime/InternalFunction.cpp:
* runtime/JSActivation.cpp:
* runtime/JSArgumentsIterator.cpp:
* runtime/JSArray.cpp:
* runtime/JSArrayBuffer.cpp:
* runtime/JSArrayBufferConstructor.cpp:
* runtime/JSArrayBufferPrototype.cpp:
* runtime/JSArrayBufferView.cpp:
* runtime/JSBoundFunction.cpp:
* runtime/JSCInlines.h: Copied from Source/JavaScriptCore/runtime/Operations.h.
* runtime/JSCell.cpp:
* runtime/JSDataView.cpp:
* runtime/JSDataViewPrototype.cpp:
* runtime/JSDateMath.cpp:
* runtime/JSFunction.cpp:
* runtime/JSGlobalObject.cpp:
* runtime/JSGlobalObjectFunctions.cpp:
* runtime/JSLock.cpp:
* runtime/JSNameScope.cpp:
* runtime/JSNotAnObject.cpp:
* runtime/JSONObject.cpp:
* runtime/JSObject.cpp:
* runtime/JSPropertyNameIterator.cpp:
* runtime/JSPropertyNameIterator.h:
* runtime/JSProxy.cpp:
* runtime/JSScope.cpp:
* runtime/JSSegmentedVariableObject.cpp:
* runtime/JSString.cpp:
* runtime/JSStringJoiner.cpp:
* runtime/JSSymbolTableObject.cpp:
* runtime/JSTypedArrayConstructors.cpp:
* runtime/JSTypedArrayPrototypes.cpp:
* runtime/JSTypedArrays.cpp:
* runtime/JSVariableObject.cpp:
* runtime/JSWithScope.cpp:
* runtime/JSWrapperObject.cpp:
* runtime/LiteralParser.cpp:
* runtime/Lookup.cpp:
* runtime/MathObject.cpp:
* runtime/NameConstructor.cpp:
* runtime/NameInstance.cpp:
* runtime/NamePrototype.cpp:
* runtime/NativeErrorConstructor.cpp:
* runtime/NativeErrorPrototype.cpp:
* runtime/NumberConstructor.cpp:
* runtime/NumberObject.cpp:
* runtime/NumberPrototype.cpp:
* runtime/ObjectConstructor.cpp:
* runtime/ObjectPrototype.cpp:
* runtime/Operations.cpp:
* runtime/Operations.h:
* runtime/PropertyDescriptor.cpp:
* runtime/PrototypeMap.cpp:
* runtime/RegExp.cpp:
* runtime/RegExpCache.cpp:
* runtime/RegExpCachedResult.cpp:
* runtime/RegExpConstructor.cpp:
* runtime/RegExpMatchesArray.cpp:
* runtime/RegExpObject.cpp:
* runtime/RegExpPrototype.cpp:
* runtime/SimpleTypedArrayController.cpp:
* runtime/SmallStrings.cpp:
* runtime/SparseArrayValueMap.cpp:
* runtime/StrictEvalActivation.cpp:
* runtime/StringConstructor.cpp:
* runtime/StringObject.cpp:
* runtime/StringPrototype.cpp:
* runtime/StringRecursionChecker.cpp:
* runtime/Structure.cpp:
* runtime/StructureChain.cpp:
* runtime/StructureRareData.cpp:
* runtime/SymbolTable.cpp:
* runtime/TestRunnerUtils.cpp:
* runtime/VM.cpp:
* testRegExp.cpp:

Source/WebCore:

Rubber stamped by Geoffrey Garen.

No new tests because no change in behavior.

* ForwardingHeaders/runtime/JSCInlines.h: Added.
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
* bindings/js/JSCryptoKeySerializationJWK.cpp:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDictionary.h:
* bindings/js/JSMessagePortCustom.cpp:
* bindings/js/JSMessagePortCustom.h:
* bindings/js/JSNodeFilterCondition.h:
* bindings/js/SerializedScriptValue.cpp:
* bindings/js/WebCoreTypedArrayController.cpp:
* bridge/c/c_utility.h:
* bridge/jsc/BridgeJSC.h:
* dom/CustomEvent.cpp:
* dom/Node.cpp:
* html/HTMLCanvasElement.cpp:
* html/HTMLImageLoader.cpp:
* html/canvas/WebGLRenderingContext.cpp:
* inspector/InspectorDOMAgent.cpp:
* inspector/WebConsoleAgent.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/filters/FEGaussianBlur.cpp:
* platform/graphics/filters/FilterEffect.cpp:
* testing/MockCDM.cpp:
* xml/XMLHttpRequest.cpp:

Source/WebKit2:

Rubber stamped by Geoffrey Garen.

* Shared/linux/WebMemorySamplerLinux.cpp:
* UIProcess/WebContext.cpp:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/efl/WebProcessMainEfl.cpp:

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

7 years agoRemoves the inline assert from SpeculativeJIT's ReallocatePropertyStorage
commit-queue@webkit.org [Tue, 11 Feb 2014 01:41:44 +0000 (01:41 +0000)]
Removes the inline assert from SpeculativeJIT's ReallocatePropertyStorage
https://bugs.webkit.org/show_bug.cgi?id=128566

Patch by Matthew Mirman <mmirman@apple.com> on 2014-02-10
Reviewed by Filip Pizlo.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):

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

7 years agoRename getRecordMap to computeRecordMap.
fpizlo@apple.com [Tue, 11 Feb 2014 01:33:47 +0000 (01:33 +0000)]
Rename getRecordMap to computeRecordMap.

Rubber stamped by Michael Saboff.

"get" is such a weird prefix. It implies a getter. We don't prefix our getters with
anything in WebKit. Also, this isn't a getter. It actually does work to transform
the stackmaps into a hashmap. So, computeRecordMap is a much better name.

* ftl/FTLCompile.cpp:
(JSC::FTL::compile):
* ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalizeFunction):
* ftl/FTLStackMaps.cpp:
(JSC::FTL::StackMaps::computeRecordMap):
* ftl/FTLStackMaps.h:

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

7 years agoReallocatePropertyStorage in FTL
commit-queue@webkit.org [Tue, 11 Feb 2014 01:31:41 +0000 (01:31 +0000)]
ReallocatePropertyStorage in FTL
https://bugs.webkit.org/show_bug.cgi?id=128352

Patch by Matthew Mirman <mmirman@apple.com> on 2014-02-10
Reviewed by Filip Pizlo.

* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileReallocatePropertyStorage):
* tests/stress/ftl-reallocatepropertystorage.js: Added.
(foo):

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

7 years agoUpdate aspect-ratio property to have constraining keywords
dino@apple.com [Tue, 11 Feb 2014 01:20:28 +0000 (01:20 +0000)]
Update aspect-ratio property to have constraining keywords
https://bugs.webkit.org/show_bug.cgi?id=128262

Reviewed by Simon Fraser.

Source/WebCore:

Add support for "from-dimensions" and "from-intrinsic"
property values to "-webkit-aspect-ratio". I also changed
the default value from "none" to "auto", because "none" doesn't
make sense any more.

Covered by enhancing existing tests.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): New keywords.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseAspectRatio): Support new keywords.
* css/CSSValueKeywords.in: Add from-dimensions and from-intrinsic.
* css/DeprecatedStyleBuilder.cpp: This now has to handle the new
values. I also changed "none" to "auto".
(WebCore::ApplyPropertyAspectRatio::applyInheritValue):
(WebCore::ApplyPropertyAspectRatio::applyInitialValue):
(WebCore::ApplyPropertyAspectRatio::applyValue):
* rendering/style/RenderStyle.h: hasAspectRatio is now aspectRatioType
and indicates one of the three keywords, or a specified number.
* rendering/style/RenderStyleConstants.h: New enum.
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Add tests for new from-intrinsic and from-dimensions
property values.

* fast/css/aspect-ratio-inheritance-expected.txt:
* fast/css/aspect-ratio-inheritance.html:
* fast/css/aspect-ratio-parsing-tests-expected.txt:
* fast/css/aspect-ratio-parsing-tests.html:

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

7 years ago[WK2] Add support for image document viewport configuration
benjamin@webkit.org [Tue, 11 Feb 2014 01:10:18 +0000 (01:10 +0000)]
[WK2] Add support for image document viewport configuration
https://bugs.webkit.org/show_bug.cgi?id=128565

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-10
Reviewed by Simon Fraser.

Source/WebCore:

Add proper default settings for displaying images.

* WebCore.exp.in:
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::imageDocumentParameters):
(WebCore::ViewportConfiguration::textDocumentParameters):
* page/ViewportConfiguration.h:

Source/WebKit2:

* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::screenToWindow):
(WebKit::PageClientImpl::windowToScreen):
Add the implementation for ImageDocument.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
Use the right default settings when dealing with image documents.

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

7 years agoFail FTL compilation if the required stack is too big
msaboff@apple.com [Tue, 11 Feb 2014 00:47:34 +0000 (00:47 +0000)]
Fail FTL compilation if the required stack is too big
https://bugs.webkit.org/show_bug.cgi?id=128560

Reviewed by Filip Pizlo.

Added StackSize struct to FTLStackMaps and populated it.  Added and updated
related dump functions.  Use the stack size found at the end of the compilation
to compare against the value of a new option, llvmMaxStackSize.  We fail the
compile if the function's stack size is greater than llvmMaxStackSize.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* ftl/FTLStackMaps.cpp:
(JSC::FTL::StackMaps::StackSize::parse):
(JSC::FTL::StackMaps::StackSize::dump):
(JSC::FTL::StackMaps::parse):
(JSC::FTL::StackMaps::dump):
(JSC::FTL::StackMaps::dumpMultiline):
(JSC::FTL::StackMaps::getStackSize):
* ftl/FTLStackMaps.h:
* runtime/Options.h:

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

7 years agoShow a debug tile map indicator for UI-side compositing
simon.fraser@apple.com [Tue, 11 Feb 2014 00:24:58 +0000 (00:24 +0000)]
Show a debug tile map indicator for UI-side compositing
https://bugs.webkit.org/show_bug.cgi?id=128553

Reviewed by Tim Horton.

Implement a tiled scrolling indicator for UI-side compositing.

The indicator is created by making another RemoteLayerTreeHost,
and decoding the transaction in it a second time to create a cloned
layer tree. In that clone commit, we modify some layer properties to
make things easier to see.

The cloned layer tree is hosted in the root layer of the main
RemoteLayerTreeHost.

RemoteLayerTreeHost was changed to not need a pointer to the WebPageProxy,
which it only used in the "root layer changed" case; instead, it now just
returns a bool from updateLayerTree() in that situation.

* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: Explanatory comment.
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::setExposedRect):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicatorPosition):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorScale):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
* UIProcess/mac/RemoteLayerTreeHost.h:
(WebKit::RemoteLayerTreeHost::rootLayer):
(WebKit::RemoteLayerTreeHost::setIsDebugLayerTreeHost):
(WebKit::RemoteLayerTreeHost::isDebugLayerTreeHost):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost):
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::createLayer):

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

7 years agoPut a delegatesScrolling flag on WebPageProxy so that the UI process knows when scrol...
simon.fraser@apple.com [Tue, 11 Feb 2014 00:24:55 +0000 (00:24 +0000)]
Put a delegatesScrolling flag on WebPageProxy so that the UI process knows when scrolling is delegated
https://bugs.webkit.org/show_bug.cgi?id=128429

Reviewed by Sam Weinig.

Add delegatesScrolling() which defaults to false, but is set to true for iOS
by WKContentView.

* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView initWithFrame:configuration:]):
(-[WKContentView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::setDelegatesScrolling):
(WebKit::WebPageProxy::delegatesScrolling):

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

7 years ago[CSS Shapes] Add initial performance tests for polygon shape
zoltan@webkit.org [Tue, 11 Feb 2014 00:19:58 +0000 (00:19 +0000)]
[CSS Shapes] Add initial performance tests for polygon shape
https://bugs.webkit.org/show_bug.cgi?id=128554

Reviewed by Ryosuke Niwa.

This patch adds performance testing for simple polygon shape-outside.
The Shapes performance tests directory is skipped by default.

* Layout/Shapes/ShapeOutsideSimplePolygon.html: Added.

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

7 years agoREGRESSION(r163660-r163664): js/dom/stack-trace.html fails.
mark.lam@apple.com [Mon, 10 Feb 2014 23:55:19 +0000 (23:55 +0000)]
REGRESSION(r163660-r163664): js/dom/stack-trace.html fails.
<https://webkit.org/b/128544>

Reviewed by Alexey Proskuryakov.

The failing test is fragile. The test intends to test a recursion pattern
i.e. the top of the stack trace should show a repeated cycle of certain
function calls. However, the test makes a faulty assumption about which
function in that recursion pattern will be the one that overflows the
stack.

The fix is to make the test check for repetition of that recursion pattern
instead of making a specific assumption as to which function within that
recursion pattern will overflow the stack.

* TestExpectations: reverted skipped test.
* js/dom/script-tests/stack-trace.js:
(stackTraceLineFor):
- refactored this code to generated the stack trace line out of printStack.
(printStack):
- updated to use stackTraceLineFor.
(dumpPattern):
- utility function to dump the recursion pattern being matched.
(matchesPatternAtLine):
(matchPattern):
(checkStackForPattern):
- utility functions for testing if the stack trace matches the expected
  recursion pattern. The pattern is an array of stack trace lines that
  we should see repeated in the stack trace starting from the top.

  The top line of the stack trace may match any line in the pattern.
  Thereafter, subsequent lines much patch lines in the pattern starting
  with the line after the first match. When we run out of pattern lines,
  we'll go back to the first pattern line and continue the matching test
  until we run out of stack trace lines to match.

  If any mismatch is found, the test fails.

* js/dom/stack-trace-expected.txt:
- updates baseline for expected results.

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

7 years agoUnreviewed GTK build fix after r163816.
b.long@cablelabs.com [Mon, 10 Feb 2014 23:48:24 +0000 (23:48 +0000)]
Unreviewed GTK build fix after r163816.

* GNUmakefile.list.am: Remove HTMLMediaSource.h and HTMLMediaSource.cpp

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

7 years agoUnreviewed EFL WebKit2 build fix after r163816.
jinwoo7.song@samsung.com [Mon, 10 Feb 2014 23:34:13 +0000 (23:34 +0000)]
Unreviewed EFL WebKit2 build fix after r163816.

* CMakeLists.txt: Remove HTMLMediaSource.cpp

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

7 years agoHTMLTextFormControlElement::setSelectionRange shouldn't use VisiblePosition
rniwa@webkit.org [Mon, 10 Feb 2014 23:05:19 +0000 (23:05 +0000)]
HTMLTextFormControlElement::setSelectionRange shouldn't use VisiblePosition
https://bugs.webkit.org/show_bug.cgi?id=128478

Reviewed by Darin Adler.

Added positionForIndex to compute Position given a selection index. This function doesn't
synchronously trigger like visiblePositionForIndex.

Also added assertions in visiblePositionForIndex and visiblePositionForIndex to make sure
they are inverse of one another.

* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange): Use positionForIndex. Also removed
the now tautological assertions since we would never create a position outside the inner text
element.

(WebCore::HTMLTextFormControlElement::indexForVisiblePosition): Fixed the bug where this
function could return a selection index beyond innerTextElement in some types of input
elements such as search fields. fast/forms/search-disabled-readonly.html hits the newly
added assertion without this change. Note we can't use visiblePositionForIndex here as that
would result in a mutual recursion with the assertion in visiblePositionForIndex.

(WebCore::HTMLTextFormControlElement::visiblePositionForIndex): Added an assertion.

(WebCore::positionForIndex): Added. It's here with prototype at the beginning of the file
so that it's right next to HTMLTextFormControlElement::innerText() where we do a similar
DOM traversal to obtain the inner text value.

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

7 years agosvg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html frequently asserts
ap@apple.com [Mon, 10 Feb 2014 22:58:29 +0000 (22:58 +0000)]
svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html frequently asserts
in ComplexTextController::offsetForPosition
https://bugs.webkit.org/show_bug.cgi?id=119747

* platform/mac/TestExpectations: Skipped it in debug builds.

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

7 years agoDisable access to application cache when in private browsing
jpfau@apple.com [Mon, 10 Feb 2014 22:55:47 +0000 (22:55 +0000)]
Disable access to application cache when in private browsing
https://bugs.webkit.org/show_bug.cgi?id=128426

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Tests: http/tests/security/appcache-in-private-browsing.html
       http/tests/security/appcache-switching-private-browsing.html

* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::cacheForMainRequest):
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
(WebCore::ApplicationCacheGroup::update):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::isApplicationCacheEnabled):

LayoutTests:

* http/tests/security/appcache-in-private-browsing-expected.txt: Added.
* http/tests/security/appcache-in-private-browsing.html: Added.
* http/tests/security/appcache-switching-private-browsing-expected.txt: Added.
* http/tests/security/appcache-switching-private-browsing.html: Added.
* http/tests/security/resources/frame-for-appcache-in-private-browsing.html: Added.

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

7 years agoMove animation tests that have similar failing behavior in debug builds together,
ap@apple.com [Mon, 10 Feb 2014 22:46:40 +0000 (22:46 +0000)]
Move animation tests that have similar failing behavior in debug builds together,
and mark them as passing in release.

* platform/mac/TestExpectations:

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

7 years agoRemove WKPageSetVisibilityState
barraclough@apple.com [Mon, 10 Feb 2014 22:30:33 +0000 (22:30 +0000)]
Remove WKPageSetVisibilityState
https://bugs.webkit.org/show_bug.cgi?id=128551

Reviewed by Anders Carlsson.

Source/WebKit2:

Made prerender state automatic. We should move this further
up into WebCore, but this requires refactoring for the Page
construction order.

* Shared/API/c/WKDeprecatedFunctions.cpp:
(WKPageSetVisibilityState):
    - deprecated.
* UIProcess/API/C/WKPage.cpp:
    - removed WKPageSetVisibilityState.
* UIProcess/API/C/WKPage.h:
    - removed WKPageSetVisibilityState.
* UIProcess/WebPageProxy.cpp:
    - removed setVisibilityStatePrerender.
* UIProcess/WebPageProxy.h:
    - removed setVisibilityStatePrerender.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
    - removed setVisibilityStatePrerender.
    - When creating a Page, automatically set the prerender state.
* WebProcess/WebPage/WebPage.h:
    - removed setVisibilityStatePrerender.
* WebProcess/WebPage/WebPage.messages.in:
    - removed SetVisibilityStatePrerender.

Tools:

* TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView):
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):
    - visibilityState of offs-creen WKView is automatically prerender.
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::setHidden):
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPageVisibility):
(WTR::TestRunner::resetPageVisibility):
* WebKitTestRunner/TestController.cpp:
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
    - removed calls to WKPageSetVisibilityState.

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

7 years agoChange JSLock::dropAllLocks() and friends to use lock() and unlock().
mark.lam@apple.com [Mon, 10 Feb 2014 22:27:10 +0000 (22:27 +0000)]
Change JSLock::dropAllLocks() and friends to use lock() and unlock().
<https://webkit.org/b/128451>

Reviewed by Geoffrey Garen.

Currently, JSLock's dropAllLocks(), dropAllLocksUnconditionally(), and
grabAllLocks() implement locking / unlocking by duplicating the code from
lock() and unlock(). Instead, they should just call lock() and unlock().

* runtime/JSLock.cpp:
(JSC::JSLock::lock):
(JSC::JSLock::unlock):
- Modified lock() and unlock() into a version that takes an entry count
  to lock / unlock. The previous lock() and unlock() now calls these
  new versions with an entry count of 1.

(JSC::JSLock::dropAllLocks):
(JSC::JSLock::dropAllLocksUnconditionally):
(JSC::JSLock::grabAllLocks):
- Delegate to unlock() and lock() instead of duplicating the lock / unlock
  code.
- There a some differences with calling lock() instead of duplicating its
  code in grabAllLock() i.e. lock() does the following additional work:

  1. lock() does a re-entry check that is not needed by grabAllLocks().
     However, this is effectively a no-op since we never own the JSLock
     before calling grabAllLocks().

  2. set VM stackPointerAtVMEntry.
  3. update VM stackLimit and reservedZoneSize.
  4. set VM lastStackTop.
     These 3 steps are just busy work which are also effective no-ops
     because immediately after lock() returns, grabAllLocks() will write
     over those values with their saved versions in the threadData.

* runtime/JSLock.h:

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

7 years agoFlaky Test: animations/play-state-suspend.html
ap@apple.com [Mon, 10 Feb 2014 22:24:32 +0000 (22:24 +0000)]
Flaky Test: animations/play-state-suspend.html
https://bugs.webkit.org/show_bug.cgi?id=50959

* platform/mac/TestExpectations: Marked it as such.

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

7 years agoIDB: storage/indexeddb/mozilla/object-store-remove-values.html fails
beidson@apple.com [Mon, 10 Feb 2014 22:19:20 +0000 (22:19 +0000)]
IDB: storage/indexeddb/mozilla/object-store-remove-values.html fails
<rdar://problem/16029319> and https://bugs.webkit.org/show_bug.cgi?id=128487

Missed one piece of review feedback before landing.

* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::~UniqueIDBDatabaseBackingStoreSQLite):

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

7 years agoIDB: storage/indexeddb/mozilla/object-store-remove-values.html fails
beidson@apple.com [Mon, 10 Feb 2014 22:15:37 +0000 (22:15 +0000)]
IDB: storage/indexeddb/mozilla/object-store-remove-values.html fails
<rdar://problem/16029319> and https://bugs.webkit.org/show_bug.cgi?id=128487

Reviewed by Tim Horton.

Source/WebKit2:

* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess):
(WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata): Update logging.
(WebKit::DatabaseProcessIDBConnection::deleteDatabase): If deleteDatabase succeeds,
  also disconnect from the UniqueIDBDatabase so it can be cleaned up properly.
(WebKit::DatabaseProcessIDBConnection::close): New message from the WebProcess to handle
  clean closures.
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::shutdown): Move most of the cleanup to didShutdownBackingStore.
(WebKit::UniqueIDBDatabase::didShutdownBackingStore): Execute all remaining mainThreadTasks
  (as they represent real results from the backing store thread).
(WebKit::UniqueIDBDatabase::deleteDatabase): Add an ASSERT.
(WebKit::UniqueIDBDatabase::performNextMainThreadTask): Call through to performNextMainThreadTaskWithoutAdoptRef.
(WebKit::UniqueIDBDatabase::performNextMainThreadTaskWithoutAdoptRef): Execute a task,
  returning true if there are more tasks left to execute.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:

* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::~UniqueIDBDatabaseBackingStoreSQLite): Properly
  handle JSC cleanup.

* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::close): Implement this.

LayoutTests:

* platform/mac-wk2/TestExpectations: Add the now-passing test (skipped because of
  unrelated flakiness in IDB tests)

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

7 years ago[MSE] Fix layering violations in MediaSource
jer.noble@apple.com [Mon, 10 Feb 2014 22:08:55 +0000 (22:08 +0000)]
[MSE] Fix layering violations in MediaSource
https://bugs.webkit.org/show_bug.cgi?id=128546

Reviewed by Eric Carlson.

Code in Modules should be considered part of html/ and should have the
same layering properties. Get rid of HTMLMediaSource (which was intended
to allow Modules/mediasource to be considered part of platform/) and add
a new client interface allowing communication from platform/ ->
Modules/mediasource.

Replace HTMLMediaSource -> MediaSourcePrivateClient:
* html/HTMLMediaSource.cpp: Removed.
* html/HTMLMediaSource.h: Removed.
* platform/graphics/MediaSourcePrivateClient.h: Added.
(WebCore::MediaSourcePrivateClient::~MediaSourcePrivateClient):

Move registry support from HTMLMediaSource -> MediaSource.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::setRegistry): Moved from HTMLMediaSource.cpp.
* Modules/mediasource/MediaSource.h:
(WebCore::MediaSource::lookup): Ditto.

Update references to HTMLMediaSource -> MediaSource:
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::MediaSourceRegistry):
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource):
* html/HTMLMediaElement.h:

Update references to HTMLMediaSource -> MediaSourcePrivateClient:
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::load):
(WebCore::MediaPlayer::load): Ditto.
(WebCore::MediaPlayer::loadWithNextMediaEngine):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::load):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
(WebCore::MediaSourceGStreamer::open):
* platform/graphics/gstreamer/MediaSourceGStreamer.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::load):
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::load):
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:

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

7 years agoTry to fix the Windows build.
andersca@apple.com [Mon, 10 Feb 2014 22:04:23 +0000 (22:04 +0000)]
Try to fix the Windows build.

* heap/UnconditionalFinalizer.h:
* runtime/SymbolTable.h:

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

7 years ago[iOS][WK2] Add empty definition for an API allowing clients to define obscured edges...
benjamin@webkit.org [Mon, 10 Feb 2014 21:57:44 +0000 (21:57 +0000)]
[iOS][WK2] Add empty definition for an API allowing clients to define obscured edges over the scrollview
https://bugs.webkit.org/show_bug.cgi?id=128396

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-10
Reviewed by Simon Fraser.

ObscuredInset defines the area of the scrollview unusable for positioning content.
The API is unused in this patch.

* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _obscuredInset]):
(-[WKWebView _setObscuredInset:]):
(-[WKWebView _commitObscuredInset]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _obscuredInset]):
(-[WKView _setObscuredInset:]):
(-[WKView _commitObscuredInset]):

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

7 years agoChange tools.html to say Xcode 5 is required to build
bjonesbe@adobe.com [Mon, 10 Feb 2014 21:45:13 +0000 (21:45 +0000)]
Change tools.html to say Xcode 5 is required to build
https://bugs.webkit.org/show_bug.cgi?id=128545

Reviewed by Andreas Kling.

The Mac port doesn't build with Xcode 4.6 anymore, so update to tell
people to get Xcode 5. It looks like Xcode 5 doesn't have the command
line tools in the downloads pane anymore, so direct folks to use
xcode-select to install the command line tools as well.

* building/tools.html:

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

7 years agoWeb Inspector: Update License copyrights in minified JavaScript
commit-queue@webkit.org [Mon, 10 Feb 2014 21:43:42 +0000 (21:43 +0000)]
Web Inspector: Update License copyrights in minified JavaScript
https://bugs.webkit.org/show_bug.cgi?id=128547

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-02-10
Reviewed by Timothy Hatcher.

* Scripts/copy-user-interface-resources.sh:

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

7 years agoWeb Inspector: add test for hitting breakpoints from functions called via console
commit-queue@webkit.org [Mon, 10 Feb 2014 21:37:19 +0000 (21:37 +0000)]
Web Inspector: add test for hitting breakpoints from functions called via console
https://bugs.webkit.org/show_bug.cgi?id=126845

Patch by Diego Pino Garcia <dpino@igalia.com> on 2014-02-10
Reviewed by Timothy Hatcher.

* inspector-protocol/debugger/hit-breakpoint-from-console-expected.txt: Added.
* inspector-protocol/debugger/hit-breakpoint-from-console.html: Added.

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

7 years agoRemove some unused functions from SerializedScriptValue
ap@apple.com [Mon, 10 Feb 2014 21:37:00 +0000 (21:37 +0000)]
Remove some unused functions from SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128407

Reviewed by Oliver Hunt.

Removed functions that used Deprecated::ScriptValue

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValue):
(WebCore::deserializeIDBValueBuffer):
* bindings/js/SerializedScriptValue.cpp:
* bindings/js/SerializedScriptValue.h:

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