WebKit-https.git
6 years agoIDB: storage/indexeddb/mozilla/versionchange-abort.html fails
beidson@apple.com [Sun, 9 Feb 2014 00:01:16 +0000 (00:01 +0000)]
IDB: storage/indexeddb/mozilla/versionchange-abort.html fails
<rdar://problem/16018887> and https://bugs.webkit.org/show_bug.cgi?id=128442

Reviewed by Dan Bernstein.

Source/WebCore:

Tested by storage/indexeddb/mozilla/versionchange-abort.html (and probably others)

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::version): If the version is NoIntVersion, return DefaultIntVersion to script.

LayoutTests:

* platform/mac-wk2/TestExpectations: Enable the test.
  Also add all the other storage/indexeddb/mozilla test with expectations as they
  are what I’m focusing on right now.

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

6 years agoIDB: storage/indexeddb/mozilla/cursors.html fails
beidson@apple.com [Sun, 9 Feb 2014 00:00:30 +0000 (00:00 +0000)]
IDB: storage/indexeddb/mozilla/cursors.html fails
<rdar://problem/16017998> and https://bugs.webkit.org/show_bug.cgi?id=128423

Reviewed by Dan Bernstein.

Source/WebCore:

Tested by storage/indexeddb/mozilla/cursors.html (And probably others)

* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::OpenCursorOperation::perform): Distinguish between an error while opening the cursor
  and opening a cursor that points to no records.

Source/WebKit2:

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::internalAdvanceOnce): Store the primary key for object store cursors.
(WebKit::SQLiteIDBCursor::iterate): We’re not supposed to check for equality to the target key.
  Depending on the direction of the cursor we should check for the next highest or next lowest key.

LayoutTests:

* platform/mac-wk2/TestExpectations: Unskip storage/indexeddb/mozilla/cursors.html.

Revert the change to storage/indexeddb/mozilla/clear.html as it is now clear how a
null cursor might be returned from openCursor:
* storage/indexeddb/mozilla/clear-expected.txt:
* storage/indexeddb/mozilla/resources/clear.js:

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

6 years agoStop using getCharactersWithUpconvert in JavaScriptCore
andersca@apple.com [Sat, 8 Feb 2014 23:31:35 +0000 (23:31 +0000)]
Stop using getCharactersWithUpconvert in JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=128457

Reviewed by Andreas Kling.

Source/JavaScriptCore:

Change substituteBackreferencesSlow to take StringViews and use a StringBuilder instead of upconverting
if the source or replacement strings area 16-bit.

* runtime/StringPrototype.cpp:
(JSC::substituteBackreferencesSlow):
(JSC::substituteBackreferences):

Source/WTF:

* wtf/text/StringBuilder.h:
(WTF::StringBuilder::append):
Add a new overload that takes a StringView.

* wtf/text/StringView.h:
(WTF::StringView::find):
Add new find member function.

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

6 years agoRemove unused ChromeClient::layoutUpdated().
akling@apple.com [Sat, 8 Feb 2014 22:29:34 +0000 (22:29 +0000)]
Remove unused ChromeClient::layoutUpdated().
<https://webkit.org/b/128470>

Nobody listens for this callback anymore so remove it.

Reviewed by Anders Carlsson.

* page/Chrome.cpp:
* page/Chrome.h:
* page/ChromeClient.h:
* page/FrameView.cpp:
(WebCore::FrameView::layout):

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

6 years agoStop using PLATFORM(MAC) in WebCore except where it means “OS X but not iOS”
mitz@apple.com [Sat, 8 Feb 2014 22:26:50 +0000 (22:26 +0000)]
Stop using PLATFORM(MAC) in WebCore except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128464

Reviewed by Anders Carlsson.

* Modules/webaudio/AudioContext.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::AudioContext::constructCommon):
* accessibility/AccessibilityNodeObject.cpp: Ditto.
(WebCore::AccessibilityNodeObject::visibleText):
* accessibility/AccessibilityObject.h: Ditto.
* accessibility/AccessibilityRenderObject.cpp: Ditto.
(WebCore::AccessibilityRenderObject::clickPoint):
(WebCore::AccessibilityRenderObject::visiblePositionForPoint):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h: Ditto.
* bindings/js/JSInspectorFrontendHostCustom.cpp:
(WebCore::JSInspectorFrontendHost::platform): Made it explicit that this function returns
"mac" when built for iOS.
* bindings/js/ScriptController.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::ScriptController::ScriptController):
* bindings/js/ScriptController.h: Ditto.
* crypto/CryptoKey.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) &&
!PLATFORM(GTK) when checking for whether to use CoreCrypto.
* crypto/keys/CryptoKeyRSA.h: Ditto.
* dom/Clipboard.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* dom/Document.cpp: Ditto.
(WebCore::Document::implicitClose):
* dom/KeyboardEvent.h: Ditto.
* editing/Editor.cpp: Ditto.
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::copyImage):
* editing/Editor.h: Ditto.
* editing/FrameSelection.h: Ditto.
* editing/TypingCommand.cpp: Ditto.
(WebCore::TypingCommand::typingAddedToOpenCommand):
* history/HistoryItem.h: Ditto.
* html/HTMLMediaElement.cpp: Ditto.
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h: Ditto.
* html/HTMLPlugInElement.cpp: Ditto.
(WebCore::registeredPluginReplacements):
* html/HTMLPlugInImageElement.cpp: Ditto.
(WebCore::HTMLPlugInImageElement::setDisplayState):
* html/HTMLSelectElement.cpp: Ditto.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
* html/shadow/MediaControlElements.cpp: Ditto.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
* html/shadow/MediaControlElements.h: Ditto.
* inspector/InspectorIndexedDBAgent.cpp: Ditto.
* loader/CookieJar.cpp: Ditto.
* loader/DocumentLoader.cpp: Ditto.
(WebCore::DocumentLoader::dataReceived):
* loader/DocumentLoader.h: Ditto.
(WebCore::DocumentLoader::didTellClientAboutLoad):
* loader/EmptyClients.h: Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadArchive): Added !PLATFORM(IOS) around Mac-only workaround.
(WebCore::FrameLoader::defaultObjectContentType): Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::FrameLoader::subresourceCachePolicy): Ditto.
* loader/ResourceBuffer.h: Changed PLATFORM(MAC) to USE(FOUNDATION) around functions that
are implemented using Foundation.
* loader/ResourceLoadScheduler.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::ResourceLoadScheduler::scheduleLoad):
* loader/ResourceLoader.cpp: Ditto.
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
* loader/ResourceLoader.h: Ditto.
* loader/archive/cf/LegacyWebArchive.cpp: Ditto.
* loader/cache/CachedResource.cpp: Changed PLATFORM(MAC) to USE(FOUNDATION) around function
that is implemented using other USE(FOUNDATION)-guarded code.
* loader/cache/CachedResource.h: Ditto.
* page/Chrome.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* page/ChromeClient.h: Ditto.
* page/ContextMenuClient.h: Ditto.
* page/ContextMenuController.cpp: Ditto.
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::createAndAppendFontSubMenu):
(WebCore::ContextMenuController::createAndAppendSpellingAndGrammarSubMenu):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
* page/DragClient.h: Ditto.
* page/DragController.cpp: Ditto.
(WebCore::dragLocForDHTMLDrag):
(WebCore::dragLocForSelectionDrag):
(WebCore::DragController::startDrag):
(WebCore::DragController::doImageDrag):
* page/EditorClient.h: Ditto.
* page/EventHandler.cpp: Ditto.
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::logicalScrollRecursively):
(WebCore::EventHandler::clearDragState):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::defaultWheelEventHandler):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
* page/EventHandler.h: Ditto.
* page/FrameView.cpp: Ditto.
(WebCore::FrameView::layout):
* page/Page.h: Ditto.
* page/Settings.cpp: Ditto.
* page/Settings.h: Ditto.
* page/scrolling/ScrollingCoordinator.cpp: Ditto.
* page/scrolling/ScrollingCoordinator.h: Ditto.
* page/scrolling/ScrollingStateNode.h: Removed unused #include.
* page/scrolling/ScrollingThread.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::ScrollingThread::createThreadIfNeeded):
* page/scrolling/ScrollingThread.h: Ditto.
* platform/network/cf/ResourceRequest.h: Added !PLATFORM(IOS) around
applyWebArchiveHackForMail.
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Ditto.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Ditto.
* plugins/PluginViewNone.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA)
* rendering/RenderBox.cpp: Ditto.
(WebCore::RenderBox::logicalScroll):
* rendering/RenderLayerBacking.cpp: Ditto.
(WebCore::RenderLayerBacking::createGraphicsLayer):
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
* rendering/RenderMenuList.h: Ditto.
* rendering/RenderText.cpp: Ditto.
(WebCore::RenderText::previousOffsetForBackwardDeletion):
* rendering/break_lines.cpp: Removed unused #include.
* testing/js/WebCoreTestSupport.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* xml/XSLStyleSheetLibxslt.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) &&
!PLATFORM(GTK) around soft-linking libxslt.
* xml/XSLTExtensions.cpp: Ditto.
* xml/XSLTProcessorLibxslt.cpp: Ditto.
* xml/XSLTUnicodeSort.cpp: Ditto.

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

6 years agoRemove unused ChromeClient::formStateDidChange().
akling@apple.com [Sat, 8 Feb 2014 22:20:07 +0000 (22:20 +0000)]
Remove unused ChromeClient::formStateDidChange().
<https://webkit.org/b/128469>

Nobody listens for this callback anymore so remove it and stop
spamming no-op virtual dispatches in forms code.

Reviewed by Anders Carlsson.

* html/FileInputType.cpp:
(WebCore::FileInputType::setFiles):
* html/HTMLFormControlElementWithState.cpp:
* html/HTMLFormControlElementWithState.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::setValue):
(WebCore::HTMLInputElement::setValueFromRenderer):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::selectOption):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updateValue):
(WebCore::HTMLTextAreaElement::setValueCommon):
* loader/EmptyClients.h:
* page/ChromeClient.h:

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

6 years agoWeb Inspector: Find evaluates attributes in a case sensitive manner
commit-queue@webkit.org [Sat, 8 Feb 2014 22:11:20 +0000 (22:11 +0000)]
Web Inspector: Find evaluates attributes in a case sensitive manner
https://bugs.webkit.org/show_bug.cgi?id=128405

Patch by Chris J. Shull <chrisjshull@gmail.com> on 2014-02-08
Reviewed by Timothy Hatcher.

Source/WebCore:

Changed matchesAttribute to ignore case.

Updated existing test with additional cases:
inspector-protocol/dom/dom-search.html

* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::matchesAttribute):

LayoutTests:

Added checks for searches where capitalization in the attributes did not match the capitalization in the search. Also fleshed out other search types with checks for valid capitalization differences.

* inspector-protocol/dom/dom-search-expected.txt:
* inspector-protocol/dom/resources/dom-search-queries.js:

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

6 years agoRemove unused FrameLoaderClient::dispatchWillOpenSocketStream().
akling@apple.com [Sat, 8 Feb 2014 22:05:38 +0000 (22:05 +0000)]
Remove unused FrameLoaderClient::dispatchWillOpenSocketStream().
<https://webkit.org/b/128472>

Nobody listens for this callback anymore so remove it.

Reviewed by Anders Carlsson.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::willOpenSocketStream):
* loader/FrameLoaderClient.h:

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

6 years agoSplit UserTriggered into FireSelectEvent and RevealSelection for selection options
rniwa@webkit.org [Sat, 8 Feb 2014 21:40:32 +0000 (21:40 +0000)]
Split UserTriggered into FireSelectEvent and RevealSelection for selection options
https://bugs.webkit.org/show_bug.cgi?id=128441

Reviewed by Darin Adler.

Split UserTriggered by FireSelectEvent and RevealSelection for selection options.

Also added defaultSetSelectionOptions() to abstract away the default options.

* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
* editing/Editor.cpp:
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::reappliedEditing):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveTo):
(WebCore::FrameSelection::setSelectionByMouseIfDifferent): UserTriggered | DoNotRevealSelection
is replaced by FireSelectEvent.
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Check options & FireSelectEvent
instead of options & UserTriggered.
(WebCore::FrameSelection::setSelection): Check options & RevealSelection instead of
options & UserTriggered && !(options & DoNotRevealSelection).
(WebCore::FrameSelection::prepareForDestruction):
(WebCore::FrameSelection::setBase):
(WebCore::FrameSelection::setExtent):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::wordSelectionContainingCaretSelection):
* editing/FrameSelection.h:
(WebCore::FrameSelection::defaultSetSelectionOptions): Added.
* editing/SpellingCorrectionCommand.cpp:
(WebCore::SpellingCorrectionCommand::doApply):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::selectionChanged): Renamed the argument.
* html/HTMLTextFormControlElement.h:

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

6 years agoAdded project.xcworkspace to the svn:ignore property of gtest.xcodeproj.
mitz@apple.com [Sat, 8 Feb 2014 20:58:54 +0000 (20:58 +0000)]
Added project.xcworkspace to the svn:ignore property of gtest.xcodeproj.

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

6 years agoMove TreeScope, IdTargetObserverRegistry to std::unique_ptr
zandobersek@gmail.com [Sat, 8 Feb 2014 20:10:00 +0000 (20:10 +0000)]
Move TreeScope, IdTargetObserverRegistry to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=127276

Reviewed by Andreas Kling.

Replace uses of OwnPtr in the TreeScope and IdTargetObserverRegistry classes with std::unique_ptr.

* dom/IdTargetObserverRegistry.cpp:
(WebCore::IdTargetObserverRegistry::addObserver):
* dom/IdTargetObserverRegistry.h:
(WebCore::IdTargetObserverRegistry::IdTargetObserverRegistry):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::destroyTreeScopeData):
(WebCore::TreeScope::addElementById):
(WebCore::TreeScope::addElementByName):
(WebCore::TreeScope::addImageMap):
(WebCore::TreeScope::labelElementForId):
* dom/TreeScope.h:
(WebCore::TreeScope::shouldCacheLabelsByForAttribute):

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

6 years agoSlight CTTE in PingLoader
andersca@apple.com [Sat, 8 Feb 2014 20:02:40 +0000 (20:02 +0000)]
Slight CTTE in PingLoader
https://bugs.webkit.org/show_bug.cgi?id=128462

Reviewed by Dan Bernstein.

PingLoader always wants a non-null frame.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::sendPings):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::continueAfterPingLoader):
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
(WebCore::PingLoader::createPingLoader):
(WebCore::PingLoader::PingLoader):
* loader/PingLoader.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):

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

6 years agoRemove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
mitz@apple.com [Sat, 8 Feb 2014 19:58:21 +0000 (19:58 +0000)]
Remove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
https://bugs.webkit.org/show_bug.cgi?id=128456

Reviewed by Anders Carlsson.

Source/WebCore:

Updated fast/css/getComputedStyle and svg/css results.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Removed CSSPropertyWebKitHighlight case.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Ditto.
* css/CSSPropertyNames.in: Removed -webkit-highlight.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Removed
CSSPropertyWebKitHighlight handler.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty): Removed CSSPropertyWebKitHighlight case.
* page/Chrome.cpp: Removed customHighlightRect and paintCustomHighlight.
* page/ChromeClient.h: Ditto.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Removed painting custom highlight.
* rendering/InlineTextBox.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns): Removed adding overflow for custom
highlights.
* rendering/RenderBox.cpp: Removed paintCustomHighlight.
* rendering/RenderBox.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced): Removed painting custom highlight.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Ditto.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot): Ditto.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint): Ditto.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::paint): Ditto.
* rendering/RootInlineBox.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout): Removed highlight comparison.
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Removed initializer.
(WebCore::StyleRareInheritedData::operator==): Removed highlight comparison.
* rendering/style/StyleRareInheritedData.h: Removed highlight member variable.

Source/WebInspectorUI:

* UserInterface/CSSKeywordCompletions.js: Removed -webkit-highlight.

Source/WebKit/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm: Removed customHighlightRect and paintCustomHighlight.
* WebView/WebHTMLView.mm:
(-[WebHTMLViewPrivate dealloc]): Removed highlighters ivar.
(-[WebHTMLViewPrivate clear]): Ditto.
* WebView/WebHTMLViewInternal.h: Removed declaration.
* WebView/WebHTMLViewPrivate.h: Removed WebHTMLHighlighter protocol and method declarations.

Source/WebKit2:

* WebProcess/WebCoreSupport/WebChromeClient.cpp: Removed customHighlightRect and
paintCustomHighlight.
* WebProcess/WebCoreSupport/WebChromeClient.h:

LayoutTests:

* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* svg/css/getComputedStyle-basic-expected.txt:

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

6 years agoOne more build fix fix.
mitz@apple.com [Sat, 8 Feb 2014 18:37:27 +0000 (18:37 +0000)]
One more build fix fix.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):

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

6 years agoSource/WebCore: More (and more correct) iOS build fix after r163712.
mitz@apple.com [Sat, 8 Feb 2014 18:35:17 +0000 (18:35 +0000)]
Source/WebCore: More (and more correct) iOS build fix after r163712.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
* page/ios/FrameIOS.mm:
(WebCore::Frame::wordsInCurrentParagraph):

Source/WebKit/mac: iOS build fix after r163712.

* WebCoreSupport/WebEditorClient.h:
* WebCoreSupport/WebEditorClient.mm:

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

6 years agoiOS build fix after r163712
mitz@apple.com [Sat, 8 Feb 2014 18:06:45 +0000 (18:06 +0000)]
iOS build fix after r163712

* page/ios/FrameIOS.mm:
(WebCore::Frame::indexCountOfWordPrecedingSelection):
(WebCore::Frame::wordsInCurrentParagraph):

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

6 years agoConvert current MHTML tests into reftests
zandobersek@gmail.com [Sat, 8 Feb 2014 17:08:08 +0000 (17:08 +0000)]
Convert current MHTML tests into reftests
https://bugs.webkit.org/show_bug.cgi?id=116443

Reviewed by Andreas Kling.

Convert the current set of MHTML tests into reference tests. Reference files are copied from the *_original files
where available (with the *_original files removed) or from the source markup and code that's stored in the archive.
Both the archives and the reference files are adjusted to now dump pixel output instead of text.

* mhtml/check_domain-expected.html: Added.
* mhtml/check_domain-expected.txt: Removed.
* mhtml/check_domain.mht:
* mhtml/frame_4.html_original: Removed.
* mhtml/multi_frames.html_original: Removed.
* mhtml/multi_frames_binary-expected.html: Added.
* mhtml/multi_frames_binary-expected.txt: Removed.
* mhtml/multi_frames_binary.mht:
* mhtml/multi_frames_ie-expected.html: Added.
* mhtml/multi_frames_ie-expected.txt: Removed.
* mhtml/multi_frames_ie.mht:
* mhtml/multi_frames_unmht-expected.html: Added.
* mhtml/multi_frames_unmht-expected.txt: Removed.
* mhtml/multi_frames_unmht.mht:
* mhtml/page_with_css_and_js_ie-expected.html: Copied from LayoutTests/mhtml/page_with_css_and_js.html_original.
* mhtml/page_with_css_and_js_ie-expected.txt: Removed.
* mhtml/page_with_css_and_js_ie.mht:
* mhtml/page_with_css_and_js_unmht-expected.html: Renamed from LayoutTests/mhtml/page_with_css_and_js.html_original.
* mhtml/page_with_css_and_js_unmht-expected.txt: Removed.
* mhtml/page_with_css_and_js_unmht.mht:
* mhtml/page_with_image.html_original: Removed.
* mhtml/page_with_image_ie-expected.html: Added.
* mhtml/page_with_image_ie-expected.txt: Removed.
* mhtml/page_with_image_ie.mht:
* mhtml/page_with_image_unmht-expected.html: Added.
* mhtml/page_with_image_unmht-expected.txt: Removed.
* mhtml/page_with_image_unmht.mht:
* mhtml/resources/frame_0.html: Renamed from LayoutTests/mhtml/frame_0.html_original.
* mhtml/resources/frame_1.html: Renamed from LayoutTests/mhtml/frame_1.html_original.
* mhtml/resources/frame_2.html: Renamed from LayoutTests/mhtml/frame_2.html_original.
* mhtml/resources/frame_4.html: Added.
* mhtml/resources/hide_image.css: Added.
(#secondDiv):
* mhtml/resources/remove_image_script.js: Added.
(onLoad):
* mhtml/resources/style.css: Copied from LayoutTests/mhtml/shared_buffer_bug.mht.
(h1):
* mhtml/shared_buffer_bug-expected.html: Added.
* mhtml/shared_buffer_bug-expected.txt: Removed.
* mhtml/shared_buffer_bug.mht:
* mhtml/simple_page_ie-expected.html: Copied from LayoutTests/mhtml/simple_page.html_original.
* mhtml/simple_page_ie-expected.txt: Removed.
* mhtml/simple_page_ie.mht:
* mhtml/simple_page_unmht-expected.html: Renamed from LayoutTests/mhtml/simple_page.html_original.
* mhtml/simple_page_unmht-expected.txt: Removed.
* mhtml/simple_page_unmht.mht:

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

6 years agoChange TextIterator to use StringView, preparing to wean it from deprecatedCharacters
darin@apple.com [Sat, 8 Feb 2014 16:32:05 +0000 (16:32 +0000)]
Change TextIterator to use StringView, preparing to wean it from deprecatedCharacters
https://bugs.webkit.org/show_bug.cgi?id=128233

Reviewed by Anders Carlsson.

Source/WebCore:

* accessibility/AccessibilityNodeObject.cpp: Removed unneeded TextIterator.h include.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasMisspelling): Updated to use StringView for checkSpelling.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling): Changed to take a StringView.
(AXAttributedStringAppendText): Ditto.
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Pass StringView.

* editing/Editor.cpp:
(WebCore::Editor::misspelledWordAtCaretOrRange): Pass StringView.
(WebCore::Editor::misspelledSelectionString): Ditto.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Ditto.

* editing/TextCheckingHelper.cpp:
(WebCore::findGrammaticalErrors): Renamed this function. Changed to use StringView.
(WebCore::findMisspellings): Use StringView.
(WebCore::TextCheckingHelper::findFirstMisspelling): Ditto. Also separated out assertions
that were asserting multiple things with &&.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.
(WebCore::TextCheckingHelper::findFirstGrammarDetail): Ditto.
(WebCore::TextCheckingHelper::findFirstBadGrammar): Ditto.
(WebCore::TextCheckingHelper::isUngrammatical): Ditto.
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange): Ditto.
(WebCore::checkTextOfParagraph): Ditto.

* editing/TextCheckingHelper.h: Made TextCheckingParagraph::text public. Deleted
TextCheckingParagraph::textDeprecatedCharacters. Added comments about additional
TextCheckingParagraph refinements. Changed checkTextOfParagraph to take a client
reference instead of pointer and StringView instead of characters pointer with length.

* editing/TextIterator.cpp:
(WebCore::TextIterator::appendTextToStringBuilder): Use data members directly,
rather than using functions, since we already checked m_textCharacters for null.
(WebCore::CharacterIterator::string): Use text() instead of characters().
(WebCore::WordAwareIterator::WordAwareIterator): Removed initialization of
m_previousText now that it's a StringView rather than a pointer.
(WebCore::WordAwareIterator::advance): Use TextIterator::text instead of
TextIterator::characters. Also added a FIXME about a fundamental problem
with the implementation of this class!
(WebCore::WordAwareIterator::length): Updated for m_previousText change.
(WebCore::WordAwareIterator::text): Replaced WordAwareIterator::characters with this.
(WebCore::SearchBuffer::append): Changed to take a StringView.
(WebCore::SearchBuffer::prependContext): Ditto.
(WebCore::SearchBuffer::isWordStartMatch): Use StringView.
(WebCore::SearchBuffer::search): Ditto.
(WebCore::findPlainText): Ditto.

* editing/TextIterator.h: Added TextIterator::text that returns a StringView, and
renamed TextIterator::characters to TextIterator::deprecatedTextIteratorCharacters
(easy to search for in source code). Added SimplifiedBackwardsTextIterator::text
and removed SimplifiedBackwardsTextIterator::characters. Added CharacterIterator::text,
and removed CharacterIterator::characters. Added WordAwareIterator::text and removed
WorkdAwareIterator::characters. Changed WordAwareIterator data members to use StringView.

* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::appendTrailingWhitespace): Use TextIterator::text instead
of TextIterator::characters.

* editing/VisibleUnits.cpp:
(WebCore::previousBoundary): Updated to use StringView.
(WebCore::nextBoundary): Ditto.
(WebCore::startWordBoundary): Ditto.
(WebCore::startOfWord): Ditto.
(WebCore::endWordBoundary): Ditto.
(WebCore::endOfWord): Fixed formatting.
(WebCore::previousWordPositionBoundary): Updated to use StringView.
(WebCore::previousWordPosition): Fixed formatting and got rid of local variable.
(WebCore::nextWordPositionBoundary): Updated to use StringView.
(WebCore::nextWordPosition): Fixed formatting and got rid of local variable.
(WebCore::inSameLine): Fixed formatting.
(WebCore::isStartOfLine): Ditto.
(WebCore::isEndOfLine): Ditto.
(WebCore::absoluteLineDirectionPointToLocalPointInBlock): Changed to take a reference.
(WebCore::previousLinePosition): Fixed formatting chand changed to pass a reference.
(WebCore::nextLinePosition): Ditto.
(WebCore::startSentenceBoundary): Updated to use StringView and got rid of a local.
(WebCore::startOfSentence): Fixed formatting.
(WebCore::endSentenceBoundary): Updated to use StringView and got rid of a local.
(WebCore::endOfSentence): Fixed formatting.
(WebCore::previousSentencePositionBoundary): Updated to use StringView and got rid of
a local.
(WebCore::previousSentencePosition): Ditto.
(WebCore::nextSentencePositionBoundary): Ditto.
(WebCore::nextSentencePosition): Fixed formatting.
(WebCore::endOfParagraph): Ditto.
(WebCore::inSameParagraph): Ditto.
(WebCore::isStartOfParagraph): Ditto.
(WebCore::isEndOfParagraph): Ditto.
(WebCore::inSameBlock): Ditto.
(WebCore::isStartOfBlock): Ditto.
(WebCore::isEndOfBlock): Ditto.
(WebCore::startOfDocument): Ditto.
(WebCore::endOfDocument): Ditto.
(WebCore::inSameDocument): Ditto.
(WebCore::isStartOfDocument): Ditto.
(WebCore::isEndOfDocument): Ditto.
(WebCore::isEndOfEditableOrNonEditableContent): Ditto.

* loader/EmptyClients.h: Use StringView.

* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter editingAttributedStringFromRange:]): Use StringView.

* platform/text/TextBoundaries.cpp:
(WebCore::endOfFirstWordBoundaryContext): Use StringView and unsigned.
(WebCore::startOfLastWordBoundaryContext): Ditto.

* platform/text/TextBoundaries.h: Change interfaces to use StringView,
and in some cases, unsigned instead of int. All call sites were better off
with unsigned.

* platform/text/TextCheckerClient.h: Use StringView.

* platform/text/mac/TextBoundaries.mm: Changed conditionals to say
USE(APPKIT) instead of PLATFORM(IOS), since that's the real issue.
(WebCore::isSkipCharacter): Tweaked formatting.
(WebCore::isWhitespaceCharacter): Ditto.
(WebCore::isWordDelimitingCharacter): Ditto, also removed local variable.
(WebCore::isSymbolCharacter): Ditto.
(WebCore::tokenizerForString): Ditto.
(WebCore::findSimpleWordBoundary): Use StringView. Also changed to mostly
use unsigned instead of int.
(WebCore::findComplexWordBoundary): Use StringView. Also restructured to
be much more readable, with early returns and such.
(WebCore::findWordBoundary): Use StringView and unsigned.
(WebCore::findEndWordBoundary): Removed redudant copy of the findWordBoundary
function and changed this to just call findWordBoundary. The reason this
function exists is to optimize this case for some non-Mac, non-iOS platforms.
We can always do that for Mac and/or iOS later if we like.
(WebCore::findNextWordFromIndex): Use StringView. Also use wordBreakIterator
instead of using UBreakIterator directly so we get a cached iterator instead
of creating and destroying a new one each time this function is called.

* bindings/objc/DOMUIKitExtensions.mm: Removed unneeded includes.
* dom/Element.cpp: Ditto.
* dom/PositionIterator.cpp: Ditto.
* editing/ApplyBlockElementCommand.cpp: Ditto.
* editing/IndentOutdentCommand.cpp: Ditto.
* editing/InsertListCommand.cpp: Ditto.
* editing/markup.cpp: Ditto.
* html/HTMLElement.cpp: Ditto.
* html/HTMLTextAreaElement.cpp: Ditto.
* page/Frame.cpp: Ditto.
* rendering/RenderTextControl.cpp: Ditto.

Source/WebKit/efl:

* WebCoreSupport/EditorClientEfl.cpp:
(WebCore::EditorClientEfl::checkSpellingOfString): Use StringView.
(WebCore::EditorClientEfl::checkGrammarOfString): Ditto.
* WebCoreSupport/EditorClientEfl.h: Ditto.

Source/WebKit/gtk:

* WebCoreSupport/TextCheckerClientGtk.cpp:
(WebKit::TextCheckerClientGtk::checkSpellingOfString): Use StringView.
(WebKit::TextCheckerClientGtk::checkGrammarOfString): Ditto.
* WebCoreSupport/TextCheckerClientGtk.h: Ditto.

Source/WebKit/mac:

* WebCoreSupport/WebEditorClient.h: Made most data members private. Moved inlines
for iOS out of the class definition. Fixed formatting. Added missing virtual keyword.
Changed interfaces to use StringView.

* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::checkTextOfParagraph): Use the new StringView::createNSStringWithoutCopying
function instead of a similar function that was local in this file.
(WebEditorClient::ignoreWordInSpellDocument): Tweaked formatting.
(WebEditorClient::checkSpellingOfString): Changed to take a StringView.
(WebEditorClient::checkGrammarOfString): Ditto.

* WebView/WebTextIterator.mm:
(-[WebTextIterator currentTextPointer]): Call TextIterator::deprecatedTextIteratorCharacters.
(-[WebTextIterator currentText]): Convert a the text to an NSString with TextIterator::text
instead of with TextIterator::characters/length.

Source/WebKit/win:

* WebCoreSupport/WebEditorClient.cpp:
(WebEditorClient::checkSpellingOfString): Use StringView.
(WebEditorClient::checkGrammarOfString): Ditto.
* WebCoreSupport/WebEditorClient.h: Ditto.

Source/WebKit/wince:

* WebCoreSupport/EditorClientWinCE.cpp:
(WebKit::EditorClientWinCE::checkSpellingOfString): Use StringView.
(WebKit::EditorClientWinCE::checkGrammarOfString): Ditto.
* WebCoreSupport/EditorClientWinCE.h: Ditto.

Source/WebKit2:

* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
(-[WKDOMTextIterator currentTextPointer]): Call TextIterator::deprecatedTextIteratorCharacters.

* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::checkSpellingOfString): Use StringView.
(WebKit::WebEditorClient::checkGrammarOfString): Ditto.
* WebProcess/WebCoreSupport/WebEditorClient.h: Ditto.

Source/WTF:

* WTF.xcodeproj/project.pbxproj: Added new source files.

* wtf/text/StringView.h: Added operator[], createCFStringWithoutCopying, and
createNSStringWithoutCopying.
* wtf/text/cf/StringViewCF.cpp:
(WTF::StringView::createCFStringWithoutCopying): Added.
* wtf/text/mac/StringViewObjC.mm:
(WTF::StringView::createNSString): Added.
(WTF::StringView::createNSStringWithoutCopying): Added.

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

6 years ago[GTK] Add stdlib include file to fix ImageDiff build with libc++
commit-queue@webkit.org [Sat, 8 Feb 2014 16:14:53 +0000 (16:14 +0000)]
[GTK] Add stdlib include file to fix ImageDiff build with libc++
https://bugs.webkit.org/show_bug.cgi?id=128454

Patch by Rajaram Gaunker <zimbabao@gmail.com> on 2014-02-08
Reviewed by Darin Adler.

* ImageDiff/gtk/ImageDiff.cpp:

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

6 years ago<https://webkit.org/b/128452> Don't duplicate the list of input files for postprocess...
mrowe@apple.com [Sat, 8 Feb 2014 10:33:02 +0000 (10:33 +0000)]
<https://webkit.org/b/128452> Don't duplicate the list of input files for postprocess-headers.sh

Reviewed by Dan Bernstein.

* postprocess-headers.sh: Pull the list of headers to process out of the environment.

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

6 years agoFix the iOS build.
mrowe@apple.com [Sat, 8 Feb 2014 10:03:39 +0000 (10:03 +0000)]
Fix the iOS build.

* API/WebKitAvailability.h: Skip the workarounds specific to OS X when we're building for iOS.

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

6 years ago[GTK] Build break in WebKitWebViewBase.cpp::webkitWebViewBaseCreateWebPage
commit-queue@webkit.org [Sat, 8 Feb 2014 09:26:44 +0000 (09:26 +0000)]
[GTK] Build break in WebKitWebViewBase.cpp::webkitWebViewBaseCreateWebPage
https://bugs.webkit.org/show_bug.cgi?id=128449

Patch by Piotr Grad <p.grad@samsung.com> on 2014-02-08
Reviewed by Carlos Garcia Campos.

Parameter passed to context->createWebPage was inproper.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCreateWebPage):

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

6 years ago<https://webkit.org/b/128448> Fix use of availability macros on recently-added APIs
mrowe@apple.com [Sat, 8 Feb 2014 09:01:14 +0000 (09:01 +0000)]
<https://webkit.org/b/128448> Fix use of availability macros on recently-added APIs

Reviewed by Dan Bernstein.

* API/JSContext.h: Remove some #ifs.
* API/JSManagedValue.h: Ditto.
* API/WebKitAvailability.h: #define the macros that availability macros mentioning
newer OS X versions would expand to when building on older OS versions.
* JavaScriptCore.xcodeproj/project.pbxproj: Call the new postprocess-headers.sh.
* postprocess-headers.sh: Extracted from the Xcode project. Updated to remove content
from headers based on the __MAC_OS_X_VERSION_MIN_REQUIRED macro, and to
process WebKitAvailability.h.

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

6 years agoRemove two unused function declarations.
akling@apple.com [Sat, 8 Feb 2014 08:53:17 +0000 (08:53 +0000)]
Remove two unused function declarations.

Scrub "highQualityRepaintTimerFired" declarations from RenderImage
and RenderBoxModelObject since they're not actually defined.

* rendering/RenderBoxModelObject.h:
* rendering/RenderImage.h:

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

6 years agoCTTE: SVGTRefTargetEventListener is always owned by SVGTRefElement.
akling@apple.com [Sat, 8 Feb 2014 08:50:00 +0000 (08:50 +0000)]
CTTE: SVGTRefTargetEventListener is always owned by SVGTRefElement.
<https://webkit.org/b/128432>

Tighten up the relationship between SVGTRefElement and its internal
event listener helper by storing the listener in a Ref, and making
the listeners backpointer to the element be a reference.

Reviewed by Anders Carlsson.

* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefTargetEventListener::create):
(WebCore::SVGTRefTargetEventListener::SVGTRefTargetEventListener):
(WebCore::SVGTRefTargetEventListener::operator==):
(WebCore::SVGTRefTargetEventListener::handleEvent):
(WebCore::SVGTRefElement::SVGTRefElement):
* svg/SVGTRefElement.h:

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

6 years agoDevirtualize RenderBlockFlowRareData.
akling@apple.com [Sat, 8 Feb 2014 08:48:51 +0000 (08:48 +0000)]
Devirtualize RenderBlockFlowRareData.
<https://webkit.org/b/128427>

This class had a virtual destructor for no reason. Removing it
shrinks RenderBlockFlowRareData by 8 bytes.

Reviewed by Anders Carlsson.

* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::~RenderBlockFlowRareData):

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

6 years agoUse renderer iterators in two more places.
akling@apple.com [Sat, 8 Feb 2014 08:45:47 +0000 (08:45 +0000)]
Use renderer iterators in two more places.
<https://webkit.org/b/128371>

Reviewed by Antti Koivisto.

* dom/Position.cpp:
(WebCore::Position::primaryDirection):

    Use lineageOfType instead of walking the parent chain.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::insertOnlyThisLayer):

    Use childrenOfType instead of walking the children.

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

6 years agoFont size-related preference values should be CGFloats backed by doubles
mitz@apple.com [Sat, 8 Feb 2014 08:42:07 +0000 (08:42 +0000)]
Font size-related preference values should be CGFloats backed by doubles
https://bugs.webkit.org/show_bug.cgi?id=128445

Reviewed by Filip Pizlo.

* Shared/WebPreferencesStore.h: Changed minimumFontSize, minimumLogicalFontSize,
defaultFontSize, and defaultFixedFontSize into double-value preferences.
* UIProcess/API/Cocoa/WKPreferences.h: Changed minimumFontSize into CGFloat.
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences minimumFontSize]): Changed return type.
(-[WKPreferences setMinimumFontSize:]): Changed parameter type.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Changed to use double getters.

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

6 years agoRemove unused ENABLE(REPAINT_THROTTLING) flag.
akling@apple.com [Sat, 8 Feb 2014 08:36:29 +0000 (08:36 +0000)]
Remove unused ENABLE(REPAINT_THROTTLING) flag.
<https://webkit.org/b/128329>

Reviewed by Antti Koivisto.

.:

* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/WTF:

* wtf/FeatureDefines.h:

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

6 years agoJSLock should not "restore" VM stack values if it did not re-grab locks.
mark.lam@apple.com [Sat, 8 Feb 2014 08:27:13 +0000 (08:27 +0000)]
JSLock should not "restore" VM stack values if it did not re-grab locks.
<https://webkit.org/b/128447>

Reviewed by Geoffrey Garen.

In the existing code, if DropAllLocks is instantiate with DontAlwaysDropLocks
in a thread that does not own the JSLock, then a bug will manifest where:

1. The DropAllLocks constructor will save the VM's stackPointerAtEntry,
   lastStackTop, and reservedZoneSize even though it will not drop the JSLock.
2. The DropAllLocks destructor will restore those 3 values to the VM even
   though the JSLock will not grab its internal lock.

The former only causes busy work but does not impact correctness. The latter
however, will corrupt those 3 VM values which belong to the thread that
actually owns the JSLock.

The fix is to only save the values when the JSLock will actually drop its
internal lock, and only restore the values if it did re-grab the internal lock.

* runtime/JSLock.cpp:
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::dropAllLocksUnconditionally):
(JSC::JSLock::grabAllLocks):
(JSC::JSLock::DropAllLocks::DropAllLocks):
- Moved the saving of VM stack values to dropAllLocks() and
  dropAllLocksUnconditionally().
(JSC::JSLock::DropAllLocks::~DropAllLocks):
- Moved the restoring of VM stack values to grabAllLocks().

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

6 years ago[GTK] Minibrowser: Matched words of a searched text are not highlighted after reopeni...
commit-queue@webkit.org [Sat, 8 Feb 2014 08:26:57 +0000 (08:26 +0000)]
[GTK] Minibrowser: Matched words of a searched text are not highlighted after reopening search bar
https://bugs.webkit.org/show_bug.cgi?id=128380

Patch by Diego Pino Garcia <dpino@igalia.com> on 2014-02-08
Reviewed by Carlos Garcia Campos.

When open the search bar, perform last search if there is any.

* MiniBrowser/gtk/BrowserSearchBar.c:
(browser_search_bar_open):

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

6 years ago[GTK] Make process model names properly meaningful
commit-queue@webkit.org [Sat, 8 Feb 2014 08:25:22 +0000 (08:25 +0000)]
[GTK] Make process model names properly meaningful
https://bugs.webkit.org/show_bug.cgi?id=128389

Patch by Adrian Perez de Castro <aperez@igalia.com> on 2014-02-08
Reviewed by Carlos Garcia Campos.

The name WEBKIT_PROCESS_MODEL_ONE_SECONDARY_PROCESS_PER_WEB_VIEW
is misleading because there are situations in which web views may
share the same web process even when multi-process mode is enabled;
for example when opening a related view and both interact using JS.

Source/WebKit2:

* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_process_model):
(webkit_web_context_get_process_model):
Update names of WebKitProcessModel enum values.
* UIProcess/API/gtk/WebKitWebContext.h:
Ditto.

Tools:

* MiniBrowser/gtk/main.c:
(main):
Update usage of WebKitProcessModel enum values.
* TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp:
(beforeAll):
Ditto.

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

6 years ago[GTK] build-webkit script always generate-gtk-doc even if '--disable-gtk-doc' param...
commit-queue@webkit.org [Sat, 8 Feb 2014 08:24:08 +0000 (08:24 +0000)]
[GTK] build-webkit script always generate-gtk-doc even if '--disable-gtk-doc' param is passed
https://bugs.webkit.org/show_bug.cgi?id=128376

Patch by Diego Pino Garcia <dpino@igalia.com> on 2014-02-08
Reviewed by Carlos Garcia Campos.

* Scripts/webkitdirs.pm:
(buildAutotoolsProject):

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

6 years ago[GTK] Build break in WebKitSettings
commit-queue@webkit.org [Sat, 8 Feb 2014 08:21:43 +0000 (08:21 +0000)]
[GTK] Build break in WebKitSettings
https://bugs.webkit.org/show_bug.cgi?id=128446

Patch by Piotr Grad <p.grad@samsung.com> on 2014-02-08
Reviewed by Ryosuke Niwa.

Argument for WebPreferences::create was missing

* UIProcess/API/gtk/WebKitSettings.cpp:
(_WebKitSettingsPrivate::_WebKitSettingsPrivate):

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

6 years agoDon't throw away code if there is code on the worklists
fpizlo@apple.com [Sat, 8 Feb 2014 06:56:12 +0000 (06:56 +0000)]
Don't throw away code if there is code on the worklists
https://bugs.webkit.org/show_bug.cgi?id=128443

Reviewed by Joseph Pecoraro.

If we throw away compiled code and there is code currently being JITed then the JIT
will get confused after it resumes: it will see a code block that had claimed to belong
to an executable except that it doesn't belong to any executables anymore.

* dfg/DFGWorklist.h:
(JSC::DFG::Worklist::isActive):
* heap/Heap.cpp:
(JSC::Heap::deleteAllCompiledCode):

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

6 years agoUnreviewed EFL WebKit2 build fix after r163671.
jinwoo7.song@samsung.com [Sat, 8 Feb 2014 05:59:36 +0000 (05:59 +0000)]
Unreviewed EFL WebKit2 build fix after r163671.

* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::WebView): Use WebPageConfiguration in creating WebPage.

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

6 years ago[ASan] Use new/delete in PODFreeListArena
ddkilzer@apple.com [Sat, 8 Feb 2014 05:33:05 +0000 (05:33 +0000)]
[ASan] Use new/delete in PODFreeListArena
<http://webkit.org/b/128437>

Reviewed by Oliver Hunt.

* platform/PODFreeListArena.h:
(WebCore::PODFreeListArena::allocateObject): Use new when
ADDRESS_SANITIZER is defined.
(WebCore::PODFreeListArena::freeObject): Use delete when
ADDRESS_SANITIZER is defined.

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

6 years agoMerge updateSelectionCachesIfSelectionIsInsideTextFormControl into setSelectionWithou...
rniwa@webkit.org [Sat, 8 Feb 2014 05:27:17 +0000 (05:27 +0000)]
Merge updateSelectionCachesIfSelectionIsInsideTextFormControl into setSelectionWithoutUpdatingAppearance
https://bugs.webkit.org/show_bug.cgi?id=128439

Reviewed by Anders Carlsson.

FrameSelection::selectAll had a superfluous call to updateSelectionCachesIfSelectionIsInsideTextFormControl
because it wasn't setting UserTriggered option to avoid revealing selection.

Call setSelection with UserTriggered and recently added DoNotRevealSelection option and merge
updateSelectionCachesIfSelectionIsInsideTextFormControl into setSelectionWithoutUpdatingAppearance.

Also rename local variables in setSelectionWithoutUpdatingAppearance, newSelection to
newSelectionPossiblyWithoutDirection and s to newSelection so that they're self explanatory.

In addition, we now update the input element's selection caches before calling
selectFrameElementInParentIfFullySelected but this should be fine because selection cannot simultaneously
select the entire document and be inside a text form control.

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::selectAll):

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

6 years agoGC should safepoint the DFG worklist in a smarter way rather than just waiting for...
fpizlo@apple.com [Sat, 8 Feb 2014 05:06:33 +0000 (05:06 +0000)]
GC should safepoint the DFG worklist in a smarter way rather than just waiting for everything to complete
https://bugs.webkit.org/show_bug.cgi?id=128297

Reviewed by Oliver Hunt.

This makes DFG worklist threads have a rightToRun lock that gives them the ability to
be safepointed by the GC in much the same way as you'd expect from a fully
multithreaded VM.

The idea is that the worklist threads's roots are the DFG::Plan. They only touch those
roots when holding the rightToRun lock. They currently grab that lock to run the
compiler, but relinquish it when accessing - and waiting on - the worklist.

* bytecode/CodeBlock.h:
(JSC::CodeBlockSet::mark):
* dfg/DFGCompilationKey.cpp:
(JSC::DFG::CompilationKey::visitChildren):
* dfg/DFGCompilationKey.h:
* dfg/DFGDesiredStructureChains.cpp:
(JSC::DFG::DesiredStructureChains::visitChildren):
* dfg/DFGDesiredStructureChains.h:
* dfg/DFGDesiredTransitions.cpp:
(JSC::DFG::DesiredTransition::visitChildren):
(JSC::DFG::DesiredTransitions::visitChildren):
* dfg/DFGDesiredTransitions.h:
* dfg/DFGDesiredWeakReferences.cpp:
(JSC::DFG::DesiredWeakReferences::visitChildren):
* dfg/DFGDesiredWeakReferences.h:
* dfg/DFGDesiredWriteBarriers.cpp:
(JSC::DFG::DesiredWriteBarrier::visitChildren):
(JSC::DFG::DesiredWriteBarriers::visitChildren):
* dfg/DFGDesiredWriteBarriers.h:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::visitChildren):
* dfg/DFGPlan.h:
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::~Worklist):
(JSC::DFG::Worklist::finishCreation):
(JSC::DFG::Worklist::suspendAllThreads):
(JSC::DFG::Worklist::resumeAllThreads):
(JSC::DFG::Worklist::visitChildren):
(JSC::DFG::Worklist::runThread):
(JSC::DFG::Worklist::threadFunction):
* dfg/DFGWorklist.h:
(JSC::DFG::numberOfWorklists):
(JSC::DFG::worklistForIndexOrNull):
* heap/CodeBlockSet.h:
* heap/Heap.cpp:
(JSC::Heap::markRoots):
(JSC::Heap::collect):
* runtime/IntendedStructureChain.cpp:
(JSC::IntendedStructureChain::visitChildren):
* runtime/IntendedStructureChain.h:
* runtime/VM.cpp:
(JSC::VM::~VM):
(JSC::VM::prepareToDiscardCode):

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

6 years agoEFL build fix attempt after r163662.
rniwa@webkit.org [Sat, 8 Feb 2014 03:54:37 +0000 (03:54 +0000)]
EFL build fix attempt after r163662.

* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeIDBKey):

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

6 years agoFrameSelection's destructor shouldn't notify accessibility
rniwa@webkit.org [Sat, 8 Feb 2014 03:50:22 +0000 (03:50 +0000)]
FrameSelection's destructor shouldn't notify accessibility
https://bugs.webkit.org/show_bug.cgi?id=128421

Reviewed by Benjamin Poulain.

Extracted setSelectionWithoutUpdatingAppearance out of setSelection and called it in prepareForDestruction
instead of setting DoNotUpdateAppearance option. This new function doesn't reveal selection or notify
accessibility code in addition to not updating appearance.

Note that all implementations of notifyAccessibilityForSelectionChange in FrameSelectionAtk.cpp and
FrameSelectionMac.mm exit early when the selection type is not caret or either start or end is null,
which is already the case inside FrameSelection's destructor. In addition, revealSelection is never called
when selection change was not triggered by user so there should be no behavioral change from this patch.

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::prepareForDestruction):
* editing/FrameSelection.h:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Added the trivial implementation in the case
accessibility is disabled to tidy up call sites.

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

6 years agoMerge database-common.js and utility.js into run-tests.js.
rniwa@webkit.org [Sat, 8 Feb 2014 03:11:53 +0000 (03:11 +0000)]
Merge database-common.js and utility.js into run-tests.js.

Reviewed by Matthew Hanson.

Now that run-tests is the only node.js script, merged database-common.js and utility.js into it.
Also moved init-database.sql out of the database directory and removed the directory entirely.

* database: Removed.
* database/database-common.js: Removed.
* database/utility.js: Removed.
* init-database.sql: Moved from database/init-database.sql.
* run-tests.js:
(connect): Moved from database-common.js.
(pathToDatabseSQL): Extracted from pathToLocalScript.
(pathToTests): Moved from database-common.js.
(config): Ditto.
(TaskQueue): Ditto.
(SerializedTaskQueue): Ditto.
(main):
(initializeDatabase):
(TestEnvironment.it):
(TestEnvironment.queryAndFetchAll):
(sendHttpRequest):

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

6 years agoBuild fix for the GTK+ CMake build
mrobinson@webkit.org [Sat, 8 Feb 2014 03:11:49 +0000 (03:11 +0000)]
Build fix for the GTK+ CMake build

* PlatformGTK.cmake: VTTCue.idl was unintentionally added to the list of GObject DOM bindings
output files. Remove it.

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

6 years agoPer CSSOM, computed rect() function values must be comma separated
krit@webkit.org [Sat, 8 Feb 2014 03:01:19 +0000 (03:01 +0000)]
Per CSSOM, computed rect() function values must be comma separated
https://bugs.webkit.org/show_bug.cgi?id=128401

Reviewed by Simon Fraser.

Updated tests.

* css/Rect.h:
(WebCore::Rect::generateCSSString):

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

6 years agoUnify JSLock implementation for iOS and non-iOS ports.
mark.lam@apple.com [Sat, 8 Feb 2014 02:52:05 +0000 (02:52 +0000)]
Unify JSLock implementation for iOS and non-iOS ports.
<https://webkit.org/b/128409>

Reviewed by Michael Saboff.

The iOS and non-iOS implementations of dropAllLocks(),
dropAllLocksUnconditionally(), and grabAllLocks() effectively do the
same work. The main difference is that the iOS implementation acquires
the JSLock spin lock in the DropAllLocks class while the other ports
acquire it when it calls JSLock::lock() and unlock().

The other difference is that the iOS implementation will only increment
m_locksDropDepth if it actually drops locks, whereas other ports will
increment it unconditionally. Analogously, iOS decrements the depth only
when needed while other ports will decrement it unconditionally when
re-grabbing locks.

We can unify the 2 implementations by having both use the iOS
implementation for a start.

* runtime/JSLock.cpp:
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::dropAllLocksUnconditionally):
(JSC::JSLock::grabAllLocks):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):

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

6 years agoAdd better comments to code that boosts the NetworkProcess
barraclough@apple.com [Sat, 8 Feb 2014 02:51:15 +0000 (02:51 +0000)]
Add better comments to code that boosts the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=128431

Rubber stamped by Tim Horton

* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
(WebKit::XPCServiceEventHandler):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):

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

6 years agoBuild fix.
timothy_horton@apple.com [Sat, 8 Feb 2014 02:42:43 +0000 (02:42 +0000)]
Build fix.

* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView initWithFrame:configuration:]):

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

6 years ago[CSS Shapes] Add initial performance tests for inset shape
zoltan@webkit.org [Sat, 8 Feb 2014 02:39:12 +0000 (02:39 +0000)]
[CSS Shapes] Add initial performance tests for inset shape
https://bugs.webkit.org/show_bug.cgi?id=128378

Reviewed by Ryosuke Niwa.

* Layout/Shapes/ShapeOutsideContentBox.html: Move js to shapes.js.
* Layout/Shapes/ShapeOutsideInset.html: Added.
* Layout/Shapes/resources/shapes.js: Added.
(.):

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

6 years agoPass the preferences through from the WKWebViewConfiguration object
andersca@apple.com [Sat, 8 Feb 2014 02:38:02 +0000 (02:38 +0000)]
Pass the preferences through from the WKWebViewConfiguration object
https://bugs.webkit.org/show_bug.cgi?id=128430

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences init]):
Don't return nil if [super init] returns a valid object.

(-[WKPreferences minimumFontSize]):
(-[WKPreferences setMinimumFontSize:]):
Change this property to be unsigned.

* UIProcess/API/Cocoa/WKPreferencesInternal.h:
Use @package.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
Set up a WebKit::WebPageConfiguration and use the new -[WKView initWithFrame:context:configuration:] method.

* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView initWithFrame:configuration:]):
Set the preferences.

* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:context:configuration:]):
Add a new initializer that takes a WebContext and a WebPageConfiguration.

(-[WKView _registerDraggedTypes]):
This shouldn't be in the private category.

(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
Call the new initializer.

* UIProcess/API/mac/WKViewInternal.h:

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

6 years agoFix the WebKit2 build after r163671.
timothy_horton@apple.com [Sat, 8 Feb 2014 02:28:08 +0000 (02:28 +0000)]
Fix the WebKit2 build after r163671.

* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):

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

6 years agoRemove isInitialState flag from Page::setViewState
barraclough@apple.com [Sat, 8 Feb 2014 02:25:03 +0000 (02:25 +0000)]
Remove isInitialState flag from Page::setViewState
https://bugs.webkit.org/show_bug.cgi?id=128428

Reviewed by Sam Weinig.

Source/WebCore:

* WebCore.exp.in:
    - removed isInitialState.
* page/Page.cpp:
(WebCore::Page::setViewState):
    - removed isInitialState.
(WebCore::Page::setIsVisible):
    - removed isInitialState.
(WebCore::Page::setIsVisibleInternal):
    - removed isInitialState.
* page/Page.h:
    - removed isInitialState.

Source/WebKit/efl:

* ewk/ewk_view.cpp:
(ewk_view_visibility_state_set):
    - don't pass isInitialState to setViewState.

Source/WebKit/gtk:

* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
(DumpRenderTreeSupportGtk::setPageVisibility):
    - don't pass isInitialState to setViewState.

Source/WebKit/mac:

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _updateVisibilityState]):
(-[WebView _setIsVisible:]):
(-[WebView _setVisibilityState:isInitialState:]):
(-[WebView _windowWillOrderOnScreen:]):
(-[WebView _windowWillOrderOffScreen:]):
    - don't pass isInitialState to setViewState.

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
    - don't pass isInitialState to setViewState.
(WebKit::WebPage::reinitializeWebPage):
    - if the viewState changes this should fire a visibility event.
(WebKit::WebPage::setViewState):
    - merged with setViewStateInternal.
* WebProcess/WebPage/WebPage.h:
    - removed setViewStateInternal.

LayoutTests:

* fast/events/page-visibility-iframe-delete-test.html:
* fast/events/page-visibility-iframe-move-test.html:
    - resetPageVisibility will now cause additional visibiliy events to fire;
      clean up the event listeners to avoid this affecting the test results.

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

6 years agoEncode requestedScrollPosition on ScrollingStateScrollingNodes to send to the UI...
simon.fraser@apple.com [Sat, 8 Feb 2014 02:19:42 +0000 (02:19 +0000)]
Encode requestedScrollPosition on ScrollingStateScrollingNodes to send to the UI process
https://bugs.webkit.org/show_bug.cgi?id=128416

Source/WebCore:

Reviewed by Tim Horton.

Change requestedScrollPosition() to be a FloatPoint, and export
ScrollingStateScrollingNode::setRequestedScrollPosition(WebCore::FloatPoint const&, bool)
for WK2.

* WebCore.exp.in:
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
* page/scrolling/ScrollingStateScrollingNode.h:

Source/WebKit2:

Reviewed by Tim Horton.

Encode and decode requestedScrollPosition() and requestedScrollPositionRepresentsProgrammaticScroll(),
which can't use the macros because the setter takes both arguments.

The UI process needs this to notice programmatic scrolls.

* Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):

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

6 years agoAdd typesafe casts for DrawingAreaProxy classes
simon.fraser@apple.com [Sat, 8 Feb 2014 02:19:39 +0000 (02:19 +0000)]
Add typesafe casts for DrawingAreaProxy classes
https://bugs.webkit.org/show_bug.cgi?id=128419

Reviewed by Andreas Kling.

Add typesafe casts, and use one in RemoteScrollingCoordinatorProxy::layerTreeHost().

* UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::layerTreeHost):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:

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

6 years agoShould get rid of TileController's CoverageForSlowScrolling mode
bdakin@apple.com [Sat, 8 Feb 2014 02:12:43 +0000 (02:12 +0000)]
Should get rid of TileController's CoverageForSlowScrolling mode
https://bugs.webkit.org/show_bug.cgi?id=128339

Reviewed by Simon Fraser.

Source/WebCore:

This patch gets rid of CoverageForSlowScrolling in the TileController. It also
makes sure that margin tiles are properly invalidated on pages with slow repaint
objects that cause slow scrolling.

When we invalidate because of slow scrolling, don’t clip the update rect to the
layer bounds.
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsSlowPath):

Call new RenderObject paint function repaintSlowRepaintObject() instead of the
more-generic repaint().
(WebCore::FrameView::repaintSlowRepaintObjects):

Remove CoverageForSlowScrolling.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):

Handle repainting a slow repaint object. Don’t clip when we shouldn’t, use the
RenderView’s backgroundRect as a repaintRect when this is the root background
since that will take the extended background rect into consideration.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintSlowRepaintObject):
* rendering/RenderObject.h:

LayoutTests:

Slow scrolling no longer creates tiles of a different size.

* platform/mac-wk2/tiled-drawing/fixed-background/fixed-non-propagated-body-background-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:

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

6 years agoMore FTL build scaffolding
fpizlo@apple.com [Sat, 8 Feb 2014 02:11:22 +0000 (02:11 +0000)]
More FTL build scaffolding
https://bugs.webkit.org/show_bug.cgi?id=128330

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:
* llvm/library/LLVMAnchor.cpp:

Source/WebCore:

The FTL already has tests.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/Platform.h:

Tools:

* Scripts/copy-webkitlibraries-to-product-directory:

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

6 years agoMove allowsBackForwardNavigationGestures back to private because apparently our build...
timothy_horton@apple.com [Sat, 8 Feb 2014 02:02:22 +0000 (02:02 +0000)]
Move allowsBackForwardNavigationGestures back to private because apparently our build systems are broken.

* UIProcess/API/Cocoa/WKView.h:
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView allowsBackForwardNavigationGestures]):

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

6 years agoiOS port needs to clear VM::stackPointerAtVMEntry when it drops locks.
mark.lam@apple.com [Sat, 8 Feb 2014 02:01:22 +0000 (02:01 +0000)]
iOS port needs to clear VM::stackPointerAtVMEntry when it drops locks.
<https://webkit.org/b/128424>

Reviewed by Geoffrey Garen.

The iOS code path for dropping locks differ from the non-iOS code path
in that it (iOS) does not clear m_vm->stackPointerAtVMEntry nor reset the
VM stack limit. This is now fixed by copying that snippit from
JSLock::unlock().

* runtime/JSLock.cpp:
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::dropAllLocksUnconditionally):

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

6 years agoSimplify web page creation
andersca@apple.com [Sat, 8 Feb 2014 01:57:02 +0000 (01:57 +0000)]
Simplify web page creation
https://bugs.webkit.org/show_bug.cgi?id=128425

Reviewed by Andreas Kling.

Add a WebPageConfiguration class and stick the page group, preferences, session etc there
instead of adding more and more parameters to the WebPageProxy constructor.

Make WebContext::createWebPage fill in the missing pieces in the WebPageConfiguration object.

* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView initWithFrame:configuration:]):
(-[WKContentView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createWebPage):
* UIProcess/WebContext.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createWebPage):
* UIProcess/WebProcessProxy.h:

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

6 years agoTouch Minibrowser for a hopeful build fix.
timothy_horton@apple.com [Sat, 8 Feb 2014 01:49:17 +0000 (01:49 +0000)]
Touch Minibrowser for a hopeful build fix.

* MiniBrowser/mac/WK2BrowserWindowController.m:

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

6 years agoBuild fix. Wrong section of the file.
timothy_horton@apple.com [Sat, 8 Feb 2014 01:25:04 +0000 (01:25 +0000)]
Build fix. Wrong section of the file.

* UIProcess/API/mac/WKView.mm:
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView allowsBackForwardNavigationGestures]):

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

6 years ago[WK2] The WebPageProxy's copy of pageScaleFactor is not update when the scale is...
benjamin@webkit.org [Sat, 8 Feb 2014 01:10:52 +0000 (01:10 +0000)]
[WK2] The WebPageProxy's copy of pageScaleFactor is not update when the scale is changed from the viewport configuration
https://bugs.webkit.org/show_bug.cgi?id=128415

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

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportConfigurationChanged):
The scale needs to be updated through WebPage::scalePage().

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

6 years agoRemove some unused functions from SerializedScriptValue
ap@apple.com [Sat, 8 Feb 2014 01:09:56 +0000 (01:09 +0000)]
Remove some unused functions from SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=128407

Reviewed by Anders Carlsson.

* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::undefinedValue):
(WebCore::SerializedScriptValue::nullValue):
* bindings/js/SerializedScriptValue.h:

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

6 years agoWebKit2 View Gestures (Swipe): Support for iOS
timothy_horton@apple.com [Sat, 8 Feb 2014 00:58:08 +0000 (00:58 +0000)]
WebKit2 View Gestures (Swipe): Support for iOS
https://bugs.webkit.org/show_bug.cgi?id=128363
<rdar://problem/15194194>

Reviewed by Anders Carlsson.

* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::renderTreeSize):
(WebKit::RemoteLayerTreeTransaction::setRenderTreeSize):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Send the render tree size along with remote layer tree commits,
so that we can act upon it (to hide snapshots) in the UI process
in sync with layer commits.

* UIProcess/API/Cocoa/WKViewPrivate.h:
We want allowsBackForwardNavigationGestures for both platforms.

* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::takeViewSnapshot):
* UIProcess/API/ios/WKContentView.h:
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView _takeViewSnapshot]):
* UIProcess/API/ios/WKContentViewInternal.h:
Plumb snapshotting through to WKViewIOS.

* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView allowsBackForwardNavigationGestures]):
Create/destroy the gesture controller when we turn on/off back-forward swipe.
Tell WebPageProxy to save snapshots if swipe is enabled.

(-[WKView contentView:didCommitLayerTree:]):
Forward the current transaction's render tree size to ViewGestureController.

(-[WKView takeViewSnapshotForContentView:]):
Snapshot the view. This is not the best SPI to use, we should consider
using one of those which returns an IOSurface and plumbing it through
to ViewSnapshotStore, but all of our PageClient abstraction makes that annoying.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::recordNavigationSnapshot):
Record snapshots on iOS as well.

* UIProcess/ios/ViewGestureControllerIOS.mm: Added.
(-[WKSwipeInteractiveTransitionDelegate initWithViewGestureController:WebKit::swipingView:]):
(-[WKSwipeInteractiveTransitionDelegate WebKit::ViewGestureController::directionForTransition:]):
(-[WKSwipeInteractiveTransitionDelegate startInteractiveTransition:]):
(-[WKSwipeInteractiveTransitionDelegate shouldBeginInteractiveTransition:]):
(-[WKSwipeInteractiveTransitionDelegate interactiveTransition:gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKSwipeInteractiveTransitionDelegate interactiveTransition:gestureRecognizer:shouldReceiveTouch:]):
(-[WKSwipeInteractiveTransitionDelegate gestureRecognizerForInteractiveTransition:WithTarget:action:]):
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::ViewGestureController::installSwipeHandler):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::canSwipeInDirection):
(WebKit::ViewGestureController::endSwipeGesture):
(WebKit::ViewGestureController::setRenderTreeSize):
(WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
(WebKit::ViewGestureController::removeSwipeSnapshot):

* UIProcess/mac/ViewGestureController.h:
Add iOS-specific methods, and don't include all of the Mac-specific code.
We can move towards sharing more logic in the future.

* UIProcess/mac/ViewGestureController.messages.in:
* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::ViewGestureController):
* UIProcess/mac/ViewSnapshotStore.h:
* UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::recordSnapshot):
(WebKit::ViewSnapshotStore::snapshotAndRenderTreeSize):
Make ViewSnapshotStore build/work without IOSurface.

* WebKit2.xcodeproj/project.pbxproj:

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

6 years agoRemoved superflous JSLock::entryStackPointer field.
mark.lam@apple.com [Sat, 8 Feb 2014 00:55:15 +0000 (00:55 +0000)]
Removed superflous JSLock::entryStackPointer field.
<https://webkit.org/b/128413>

Reviewed by Geoffrey Garen.

* runtime/JSLock.cpp:
(JSC::JSLock::lock):
* runtime/JSLock.h:

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

6 years agoRevert workaround committed in http://trac.webkit.org/r163595.
mark.lam@apple.com [Sat, 8 Feb 2014 00:46:28 +0000 (00:46 +0000)]
Revert workaround committed in trac.webkit.org/r163595.
<https://webkit.org/b/128408>

Reviewed by Geoffrey Garen.

Now that we have fixed the bugs in JSLock's stack limit adjusments
in https://bugs.webkit.org/show_bug.cgi?id=128406, we can revert the
workaround in r163595.

* API/JSContextRef.cpp:
(JSContextGroupCreate):
(JSGlobalContextCreateInGroup):
* API/tests/testapi.js:
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::updateStackLimitWithReservedZoneSize):
* runtime/VM.h:

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

6 years agoImplement more of WKPreferences
andersca@apple.com [Sat, 8 Feb 2014 00:37:32 +0000 (00:37 +0000)]
Implement more of WKPreferences
https://bugs.webkit.org/show_bug.cgi?id=128411

Reviewed by Tim Horton.

Give WKPreferences an underlying WebKit::WebPreferences object, add a minimumFontSize preference
and make sure that WKWebView's initializer creates a WKPreferences object if the configuration doesn't specify one.

* UIProcess/API/Cocoa/WKPreferences.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences init]):
(-[WKPreferences minimumFontSize]):
(-[WKPreferences setMinimumFontSize:]):
* UIProcess/API/Cocoa/WKPreferencesInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKPreferences.mm.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:

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

6 years agoIDB: Some Mozilla cursor mutation tests fail
beidson@apple.com [Sat, 8 Feb 2014 00:30:50 +0000 (00:30 +0000)]
IDB: Some Mozilla cursor mutation tests fail
<rdar://problem/16011680> and https://bugs.webkit.org/show_bug.cgi?id=128374

Reviewed by Sam Weinig.

Source/WebCore:

Tested by:
storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html
storage/indexeddb/mozilla/cursor-mutation.html

The previous comment about LevelDB was wrong.
Apparently calling onSuccess() with a null SharedBuffer means the cursor reached the end.
Update to distinguish between an error and reaching the end:
* Modules/indexeddb/IDBCursorBackendOperations.cpp:
(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):

Add a new IDBKey type - Maximum - To be used in comparisons between keys.
This will allow the DatabaseProcess to operate on the range of all keys:
* Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::compare):
* Modules/indexeddb/IDBKey.h:

* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::IDBKeyData):
(WebCore::IDBKeyData::maybeCreateIDBKey):
(WebCore::IDBKeyData::isolatedCopy):
(WebCore::IDBKeyData::encode):
(WebCore::IDBKeyData::decode):
(WebCore::IDBKeyData::compare):
(WebCore::IDBKeyData::loggingString):
* Modules/indexeddb/IDBKeyData.h:
(WebCore::IDBKeyData::minimum):
(WebCore::IDBKeyData::maximum):

* bindings/js/IDBBindingUtilities.cpp:
(WebCore::idbKeyToJSValue):

Remove an unused callback:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBRequest.h:

Source/WebKit2:

After a SQLite statement is prepared, stepping it will not pick up any subsequent changes
to the object store.

By keeping track of the current record we’re looking at in the object store and being told
that the object store changed its contents, we can reset the statement to pick up where it
left off but with the new object store contents.

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::putRecordInBackingStore): Tell the backing store to notify
  its cursors that the object store changed its records.
(WebKit::UniqueIDBDatabase::deleteRangeInBackingStore): Ditto.

* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::notifyCursorsOfChanges): Tell the transaction
  to notify its cursors that the object store changed its records.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp:
(WebKit::SQLiteIDBTransaction::notifyCursorsOfChanges): Tell the relevant cursors that their
  object store changed its records.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h:

* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::SQLiteIDBCursor):
(WebKit::getIndexStatement): All statements now have a lower and upper range. By default we bind
  IDBKey::Minimum to the lower range and IDBKey::Maximum to the upper range.
(WebKit::getObjectStoreStatement): Ditto.
(WebKit::SQLiteIDBCursor::establishStatement):
(WebKit::SQLiteIDBCursor::createSQLiteStatement):
(WebKit::SQLiteIDBCursor::objectStoreRecordsChanged): Set the flag indicating the statement
  needs to be reset and rebound.
(WebKit::SQLiteIDBCursor::resetAndRebindStatement):
(WebKit::SQLiteIDBCursor::bindArguments): Factored out to be shared between statement prepare()
  and statement reset().
(WebKit::SQLiteIDBCursor::advance):
(WebKit::SQLiteIDBCursor::advanceOnce): If the statement needs to be reset, do so before advancing it.
(WebKit::SQLiteIDBCursor::internalAdvanceOnce): In a few cases, tell advanceOnce that it needs to
  try again because it is on a missing record or is repeating a record.
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h:
(WebKit::SQLiteIDBCursor::objectStoreID):

Make sure Maximum and Minimum keys are never sent across IPC, as that doesn’t make sense:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<IDBKeyData>::encode):
(IPC::ArgumentCoder<IDBKeyData>::decode):

LayoutTests:

* platform/mac-wk2/TestExpectations: Add two tests that now pass.

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

6 years agoFix bug in stack limit adjustments in JSLock.
mark.lam@apple.com [Sat, 8 Feb 2014 00:24:13 +0000 (00:24 +0000)]
Fix bug in stack limit adjustments in JSLock.
<https://webkit.org/b/128406>

Reviewed by Geoffrey Garen.

1. JSLock::unlock() was only clearing the VM::stackPointerAtEntry when
   m_vm->stackPointerAtVMEntry == entryStackPointer. FYI,
   entryStackPointer is a field in JSLock.

   When DropAllLocks::~DropAllLocks() will call JSLock::grabAllLocks()
   to relock the JSLock, JSLock::grabAllLocks() will set a new
   entryStackPointer value. Thereafter, DropAllLocks::~DropAllLocks() will
   restore the saved VM::stackPointerAtEntry, which will now defer from
   the JSLock's entryStackPointer value.

   It turns out that when m_vm->stackPointerAtVMEntry was initialized,
   it was set to whatever value entryStackPointer is set to. At no time
   do we ever expect the 2 values to differ. The only time it differs is
   when this bug manifests.

   The fix is to remove the entryStackPointer field in JSLock and its uses
   altogether.

2. DropAllLocks was unconditionally clearing VM::stackPointerAtEntry in
   its constructor instead of letting JSLock::unlock() do the clearing.

   However, DropAllLocks will not actually drop locks if it isn't required
   to (e.g. when alwaysDropLocks is DontAlwaysDropLocks), and when we've
   already drop locks once (i.e. JSLock::m_lockDropDepth is not 0).

   We should not have cleared VM::stackPointerAtEntry here if we don't
   actually drop the locks.

* runtime/JSLock.cpp:
(JSC::JSLock::unlock):
(JSC::JSLock::DropAllLocks::DropAllLocks):

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

6 years agoiOS build fix.
mitz@apple.com [Sat, 8 Feb 2014 00:19:49 +0000 (00:19 +0000)]
iOS build fix.

* Misc/WebElementDictionary.mm:
(+[WebElementDictionary initializeLookupTable]):
(-[WebElementDictionary _image]):
(-[WebElementDictionary _imageRect]):

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

6 years agoCGContextGetUserSpaceToDeviceSpaceTransform returns the wrong value on Windows.
roger_fong@apple.com [Sat, 8 Feb 2014 00:16:51 +0000 (00:16 +0000)]
CGContextGetUserSpaceToDeviceSpaceTransform returns the wrong value on Windows.
https://bugs.webkit.org/show_bug.cgi?id=128395.

Rubberstamped by Zalan Bujtas.

The call essentially returns 0 and causes an assertion failure when running many layout tests.

* platform/graphics/cg/GraphicsContextCG.cpp: Don't make the call on Windows. We default to 1.
(WebCore::GraphicsContext::platformInit):

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

6 years agoiOS build fix.
mitz@apple.com [Sat, 8 Feb 2014 00:07:48 +0000 (00:07 +0000)]
iOS build fix.

* platform/PlatformKeyboardEvent.h: Fixed a typo.

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

6 years agoStop using PLATFORM(MAC) in WebCore/platform except where it means “OS X but not...
mitz@apple.com [Fri, 7 Feb 2014 23:37:54 +0000 (23:37 +0000)]
Stop using PLATFORM(MAC) in WebCore/platform except where it means “OS X but not iOS”
https://bugs.webkit.org/show_bug.cgi?id=128404

Reviewed by Anders Carlsson.

* Configurations/WebCore.xcconfig: Removed KeyEventMac.mm from
EXCLUDED_SOURCE_FILE_NAMES_iphoneos, because that file contains !PLATFORM(IOS) guards.
Removed WheelEventMac.mm from the same definition, because that file no longer exists.
* platform/ContentFilter.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/ContextMenu.h: Ditto.
* platform/ContextMenuItem.h: Ditto.
* platform/Cursor.cpp: Ditto.
* platform/Cursor.h: Ditto.
* platform/DragData.cpp: Ditto.
* platform/DragImage.cpp: Ditto.
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): Changed PLATFORM(MAC) to USE(CF) && !PLATFORM(WIN).
* platform/LocalizedStrings.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::contextMenuItemTagSearchWeb):
* platform/LocalizedStrings.h: Ditto.
* platform/MIMETypeRegistry.cpp: Ditto.
(WebCore::initializeSupportedImageMIMETypesForEncoding):
* platform/PasteboardStrategy.h: Ditto.
* platform/PlatformKeyboardEvent.h: Ditto.
* platform/PlatformMenuDescription.h: Ditto.
* platform/PlatformSpeechSynthesizer.h: Ditto.
* platform/PlatformWheelEvent.h: Ditto.
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
* platform/SchemeRegistry.cpp: Ditto.
(WebCore::localURLSchemes):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::SchemeRegistry::shouldCacheResponsesFromURLSchemeIndefinitely):
* platform/ScrollAnimator.cpp: Ditto.
(WebCore::ScrollAnimator::handleWheelEvent):
* platform/ScrollAnimator.h: Ditto.
* platform/ScrollView.cpp: Ditto.
* platform/ScrollView.h: Ditto.
* platform/ScrollbarThemeComposite.h: Ditto.
* platform/SharedBuffer.h: Changed PLATFORM(MAC) to USE(FOUNDATION) around NSData-related
code.
* platform/URL.h: Changed PLATFORM(MAC) to USE(FOUNDATION) around NSURL-related code.
* platform/Widget.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/Widget.h: Ditto.
* platform/audio/AudioSession.cpp: Changed !PLATFORM(MAC) && !PLATFORM(IOS) to
!PLATFORM(COCOA).
* platform/audio/HRTFElevation.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/audio/MediaSessionManager.cpp: Ditto.
* platform/audio/mac/AudioSessionMac.cpp: Updated comment.
* platform/audio/mac/MediaSessionManagerMac.cpp: Removed PLATFORM(MAC) from Cocoa-only file.
* platform/cf/SharedBufferCF.cpp: Changed !PLATFORM(MAC) to !USE(FOUNDATION) and updated
comment.
* platform/cf/URLCF.cpp: Changed !PLATFORM(MAC) to !USE(FOUNDATION).
* platform/graphics/BitmapImage.h: Changed one instance of PLATFORM(MAC) to
USE(CG) || USE(APPKIT), and another to PLATFORM(COCOA).
* platform/graphics/DisplayRefreshMonitor.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
* platform/graphics/DisplayRefreshMonitor.h: Ditto.
* platform/graphics/FloatPoint.h: Collapsed nested #ifs into a single #if.
* platform/graphics/FloatRect.h: Ditto.
* platform/graphics/FloatSize.h: Ditto.
* platform/graphics/Font.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/graphics/Font.h: Ditto.
* platform/graphics/FontCache.cpp: Ditto.
(WebCore::FontCache::getFontData):
* platform/graphics/FontCache.h: Ditto. Also removed redundant friend class declaration.
* platform/graphics/FontGlyphs.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::FontGlyphs::glyphDataAndPageForCharacter):
* platform/graphics/GlyphPage.h: Ditto.
* platform/graphics/GraphicsContext3D.h: Ditto.
* platform/graphics/Image.h: Changed PLATFORM(MAC) to USE(APPKIT) around use of NSImage.
Changed another PLATFORM(MAC) to PLATFORM(COCOA).
* platform/graphics/IntRect.h: Collapsed nested #ifs into a single #if.
* platform/graphics/IntSize.h: Ditto.
* platform/graphics/MediaPlayer.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).
(WebCore::installedMediaEngines):
(WebCore::MediaPlayer::supportsType):
* platform/graphics/SimpleFontData.cpp: Ditto.
(WebCore::SimpleFontData::nonSyntheticItalicFontData):
(WebCore::SimpleFontData::DerivedFontData::~DerivedFontData):
* platform/graphics/SimpleFontData.h: Ditto.
* platform/graphics/TiledBacking.h: Ditto.
* platform/graphics/ca/GraphicsLayerCA.cpp: Ditto.
(WebCore::GraphicsLayerCA::filtersCanBeComposited):
(WebCore::GraphicsLayerCA::createPlatformCALayer):
* platform/graphics/ca/LayerFlushScheduler.h: Ditto.
* platform/graphics/ca/PlatformCAAnimation.h: Ditto.
* platform/graphics/ca/PlatformCAFilters.h: Ditto.
* platform/graphics/ca/PlatformCALayer.h: Ditto.
* platform/graphics/cg/BitmapImageCG.cpp: Ditto.
* platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
(WebCore::GraphicsContext::setAllowsFontSmoothing):
* platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Ditto.
* platform/graphics/cg/ImageBufferCG.cpp: Ditto.
* platform/graphics/cg/ImageBufferDataCG.h: Ditto.
* platform/graphics/cg/ImageCG.cpp: Ditto.
* platform/graphics/cg/ImageSourceCG.cpp: Ditto.
(WebCore::ImageSource::setData):
* platform/graphics/cg/ImageSourceCG.h: Ditto.
* platform/graphics/cg/PathCG.cpp: Ditto.
(WebCore::Path::platformAddPathForRoundedRect):
* platform/graphics/cg/PatternCG.cpp: Ditto.
* platform/graphics/gpu/DrawingBuffer.h: Ditto.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::createQTMovieView): Removed PLATFORM(MAC) guards, since
this file is only used on Mac and iOS.
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension): Changed the GL_EXT_draw_buffers check to
match the implementation.
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: Changed PLATFORM(MAC) to
PLATFORM(COCOA).
* platform/mac/KeyEventMac.mm: Added !PLATFORM(IOS).
* platform/mac/PlatformEventFactoryMac.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/mac/WebCoreSystemInterface.h: Ditto. Removed redundant check for PLATFORM(MAC).
* platform/mac/WebCoreSystemInterface.mm: Removed redundant check for PLATFORM(MAC).
* platform/network/Credential.h: Changed PLATFORM(IOS) || PLATFORM(MAC) to PLATFORM(COCOA).
* platform/network/NetworkStateNotifier.h: Changed PLATFORM(MAC) to PLATFORM(COCOA).
* platform/network/NetworkStorageSession.h: Ditto.
* platform/network/NetworkingContext.h: Ditto.
* platform/network/ProtectionSpace.cpp: Ditto.
(WebCore::ProtectionSpace::receivesCredentialSecurely):
* platform/network/ResourceHandle.cpp: Ditto.
(WebCore::ResourceHandle::clearAuthentication):
(WebCore::ResourceHandle::shouldContentSniffURL):
* platform/network/ResourceHandle.h: Ditto.
* platform/network/ResourceHandleClient.cpp: Ditto.
* platform/network/ResourceHandleClient.h: Ditto.
* platform/network/ResourceHandleInternal.h: Ditto.
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/ResourceRequestBase.cpp: Ditto.
* platform/network/cf/AuthenticationCF.h: Ditto.
* platform/network/cf/CookieStorageCFNet.cpp: Ditto.
* platform/network/cf/CredentialStorageCFNet.cpp: Ditto.
* platform/network/cf/FormDataStreamCFNet.cpp: Ditto.
* platform/network/cf/NetworkStorageSessionCFNet.cpp: Ditto.
(WebCore::NetworkStorageSession::switchToNewTestingSession):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
* platform/network/cf/ResourceError.h: Ditto.
* platform/network/cf/ResourceHandleCFNet.cpp: Ditto.
(WebCore::ResourceHandle::createCFURLConnection):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
* platform/network/cf/ResourceRequest.h: Ditto.
(WebCore::ResourceRequest::ResourceRequest):
* platform/network/cf/ResourceRequestCFNet.cpp: Ditto.
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::setStorageSession):
* platform/network/cf/ResourceResponse.h: Ditto.
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
* platform/network/mac/ResourceResponseMac.mm: Ditto.
* platform/posix/FileSystemPOSIX.cpp: Changed PLATFORM(MAC) to OS(DARWIN) &&
!PLATFORM(EFL) && !PLATFORM(GTK).
* platform/text/TextBoundaries.cpp: Changed PLATFORM(MAC) to PLATFORM(COCOA).

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

6 years agoMake it possible for each web page to have different preferences
andersca@apple.com [Fri, 7 Feb 2014 23:26:25 +0000 (23:26 +0000)]
Make it possible for each web page to have different preferences
https://bugs.webkit.org/show_bug.cgi?id=128403

Reviewed by Tim Horton.

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesCreate):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureNetworkProcess):
(WebKit::WebContext::createNewWebProcess):
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::setDatabasePath):
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::WebPageGroup):
(WebKit::WebPageGroup::~WebPageGroup):
(WebKit::WebPageGroup::setPreferences):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::setPreferences):
(WebKit::WebPageProxy::preferencesDidChange):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::~WebPreferences):
(WebKit::WebPreferences::addPage):
(WebKit::WebPreferences::removePage):
(WebKit::WebPreferences::update):
(WebKit::WebPreferences::updatePrivateBrowsingValue):
(WebKit::WebPreferences::anyPagesAreUsingPrivateBrowsing):
* UIProcess/WebPreferences.h:

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

6 years agoRevert r154384 and r154674 as they broke selection rect computations for text with...
rniwa@webkit.org [Fri, 7 Feb 2014 23:07:29 +0000 (23:07 +0000)]
Revert r154384 and r154674 as they broke selection rect computations for text with ligatures.

Source/WebCore:

* platform/graphics/Font.cpp:
(WebCore::Font::drawText):
(WebCore::Font::drawEmphasisMarks):
(WebCore::Font::selectionRectForText):
(WebCore::Font::offsetForPosition):
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText):
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::offsetForPositionForSimpleText):
* platform/graphics/GlyphBuffer.h:
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advanceOneCharacter):
* platform/graphics/WidthIterator.h:

LayoutTests:

* fast/text/partial-textruns-expected.html: Removed.
* fast/text/partial-textruns.html: Removed.
* fast/text/resources/PTS55F-webfont.ttf: Removed.

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

6 years ago[WK2] Add support for text document viewport configuration
benjamin@webkit.org [Fri, 7 Feb 2014 23:03:03 +0000 (23:03 +0000)]
[WK2] Add support for text document viewport configuration
https://bugs.webkit.org/show_bug.cgi?id=128359

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

Source/WebCore:

Define a set of ViewportParameters suitable for displaying text documents.
Add a documents class for text document to differentiate them from other type of documents.

* WebCore.exp.in:
* dom/Document.h:
(WebCore::Document::isTextDocument):
* html/TextDocument.cpp:
(WebCore::TextDocument::TextDocument):
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::webpageParameters):
(WebCore::ViewportConfiguration::plainTextParameters):
* page/ViewportConfiguration.h:

Source/WebKit2:

When a text document is being loaded, use the plainText viewport parameters.

* UIProcess/API/ios/WKContentView.h:
* UIProcess/API/ios/WKContentView.mm:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):

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

6 years agoFloatingObject::unsafeClone should not copy m_originatingLine
bjonesbe@adobe.com [Fri, 7 Feb 2014 23:01:19 +0000 (23:01 +0000)]
FloatingObject::unsafeClone should not copy m_originatingLine
https://bugs.webkit.org/show_bug.cgi?id=128381

Reviewed by Andreas Kling.

Copying the originatingLine allows to break the invariant that the
floating object must only contain lines that are owned by the renderer
it is attached to.

* rendering/FloatingObjects.cpp:
(WebCore::FloatingObject::unsafeClone):

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

6 years agoUpdate TextTrack API to current spec
b.long@cablelabs.com [Fri, 7 Feb 2014 22:32:45 +0000 (22:32 +0000)]
Update TextTrack API to current spec
https://bugs.webkit.org/show_bug.cgi?id=122218

Refactoring VTTCue out of TextTrackCue.

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/track/track-vttcue.html

* CMakeLists.txt: Add VTTCue and rename RenderTextTrackCue to RenderVTTCue.
* DerivedSources.cpp: Same.
* DerivedSources.make: Same.
* GNUmakefile.list.am: Same.
* PlatformGTK.cmake:  Same.
* WebCore.vcxproj/WebCore.vcxproj: Same.
* WebCore.vcxproj/WebCore.vcxproj.filters: Same.
* WebCore.xcodeproj/project.pbxproj: Same.
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJS): Use VTTCue DOM wrapper for VTTCue and its subclasses.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Convert to VTTCue as needed.
(WebCore::HTMLMediaElement::textTrackRemoveCue): Same.
* html/HTMLMediaElement.h: Only print cue.text in debug output if the cue type has a .text attribute
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Convert to VTTCue as needed, and fix TextTrackCueBox to VTTCueBox.
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Convert to VTTCue as needed.
* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::addGenericCue): Use refactored VTTCue attributes.
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Use VTTCue's constructor instead of deprecated TextTrackCue constructor.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::setMode): Convert to VTTCue as needed.
(WebCore::TextTrack::hasCue): Make this function only accept VTTCues, since it's only used for them anyway, and convert existing cues to VTTCues as needed.
* html/track/TextTrack.h: Same as hasCue above.
* html/track/TextTrackCue.cpp: Refactor a lot of code out. Everything that was removed went to VTTCue.cpp.
(WebCore::TextTrackCue::create): For backwards compatibility, just call VTTCue::create().
(WebCore::TextTrackCue::TextTrackCue): Refactor a lot of code out.
(WebCore::TextTrackCue::~TextTrackCue): Same.
(WebCore::TextTrackCue::didChange): Same.
(WebCore::TextTrackCue::setIsActive): Same.
* html/track/TextTrackCue.h: Same.
* html/track/TextTrackCue.idl: Remove VTTCue attributes and add custom toJS function.
* html/track/TextTrackCueGeneric.cpp: Use VTTCue instead of TextTrackCue.
* html/track/TextTrackCueGeneric.h: Same.
* html/track/VTTCue.cpp: Copied from Source/WebCore/html/track/TextTrackCue.cpp.
* html/track/VTTCue.h: Copied from Source/WebCore/html/track/TextTrackCue.h.
* html/track/VTTCue.idl: Copied from Source/WebCore/html/track/TextTrackCue.idl.
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::getNewCues): Use VTTCue instead of TextTrackCue.
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride): Use VTTCueBox instead of TextTrackCueBox.
* rendering/RenderVTTCue.cpp: Renamed from Source/WebCore/rendering/RenderTextTrackCue.cpp. Changed to use VTTCue instead of TextTrackCue.
* rendering/RenderVTTCue.h: Renamed from Source/WebCore/rendering/RenderTextTrackCue.h. Changed to use VTTCue instead of TextTrackCue.
* rendering/RenderingAllInOne.cpp: Rename RenderTextTrackCue to RenderVTTCue.

LayoutTests:

* js/dom/constructor-length.html: Add VTTCue constructor.
* platform/efl/js/dom/global-constructors-attributes-expected.txt: Same.
* platform/efl/js/dom/constructor-length-expected.txt: Same.
* js/dom/global-constructors-attributes-expected.txt: Same.
* platform/gtk-wk2/js/dom/constructor-length-expected.txt:  Same.
* platform/gtk-wk2/js/dom/global-constructors-attributes-expected.txt: Same.
* platform/gtk/js/dom/constructor-length-expected.txt: Same.
* platform/gtk/js/dom/global-constructors-attributes-expected.txt: Same.
* platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt: Same.
* platform/mac/js/dom/constructor-length-expected.txt: Same.
* platform/mac/js/dom/global-constructors-attributes-expected.txt: Same.
* platform/win/js/dom/global-constructors-attributes-expected.txt: Same.
* media/track/track-cues-cuechange-expected.txt: Cues are of type VTTCue now.
* media/track/track-cues-enter-exit-expected.txt: Same.
* media/track/track-vttcue-expected.txt: Test VTTCue interface.
* media/track/track-vttcue.html: Same.
* media/video-test.js:
(testExpected): Add "instanceof" as a valid operator.

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

6 years ago[iOS] Eliminate race between XPC connection queue and Notification queue
commit-queue@webkit.org [Fri, 7 Feb 2014 22:31:00 +0000 (22:31 +0000)]
[iOS] Eliminate race between XPC connection queue and Notification queue
https://bugs.webkit.org/show_bug.cgi?id=128384

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

* inspector/remote/RemoteInspector.h:
* inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::RemoteInspector):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
Create the queue to use for RemoteInspector xpc connection
management and the connection itself.

* inspector/remote/RemoteInspectorXPCConnection.h:
* inspector/remote/RemoteInspectorXPCConnection.mm:
(Inspector::RemoteInspectorXPCConnection::RemoteInspectorXPCConnection):
Use the passed in queue instead of creating one for itself.

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

6 years agoShould report user input to PageThrottler
barraclough@apple.com [Fri, 7 Feb 2014 22:27:06 +0000 (22:27 +0000)]
Should report user input to PageThrottler
https://bugs.webkit.org/show_bug.cgi?id=128398

Reviewed by Tim Horton.

Make sure we wake from AppNap if there is user interaction.

Source/WebCore:

* page/PageThrottler.h:
(WebCore::PageThrottler::didReceiveUserInput):
(WebCore::PageThrottler::pluginDidEvaluate):
    - added, these call reportInterestingEvent()

Source/WebKit2:

* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::evaluate):
    - reportInterestingEvent() -> pluginDidEvaluate()
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::keyEvent):
    - call didReceiveUserInput()

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

6 years agoWebGL doesn't update with remotely hosted layers
dino@apple.com [Fri, 7 Feb 2014 22:12:03 +0000 (22:12 +0000)]
WebGL doesn't update with remotely hosted layers
https://bugs.webkit.org/show_bug.cgi?id=128390

Reviewed by Simon Fraser.

PlatformCALayerRemote was intercepting the setNeedsDisplay calls to
WebGL layers, and thus causing them to not draw. Fix this by adding an
override in PlatformCALayerRemoteCustom to check if it is a WebGLLayer
and call setNeedsDisplay directly.

* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
(PlatformCALayerRemoteCustom::setNeedsDisplay):

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

6 years ago[WK2] Fitler touch events only based on touch start
benjamin@webkit.org [Fri, 7 Feb 2014 22:01:38 +0000 (22:01 +0000)]
[WK2] Fitler touch events only based on touch start
https://bugs.webkit.org/show_bug.cgi?id=128354

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

Touch Events track their target, we should not test the touch regions
again after a touch sequence starts.

This patch adds a boolean flag to know if we are sending events to the WebProcess
(m_isTrackingTouchEvents). The flag is updated every time a touch sequence starts.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::shouldStartTrackingTouchEvents):
(WebKit::WebPageProxy::handleTouchEvent):
* UIProcess/WebPageProxy.h:

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

6 years agoSimplify WebPreferences creation inside WebPageGroup
andersca@apple.com [Fri, 7 Feb 2014 21:42:30 +0000 (21:42 +0000)]
Simplify WebPreferences creation inside WebPageGroup
https://bugs.webkit.org/show_bug.cgi?id=128392

Reviewed by Andreas Kling.

Always create a WebPreferences object when creating the web page group.
This is another step towards letting WebPageProxy manage web preferences.

* UIProcess/WebPageGroup.cpp:
(WebKit::pageGroupData):
(WebKit::WebPageGroup::WebPageGroup):
(WebKit::WebPageGroup::~WebPageGroup):
(WebKit::WebPageGroup::setPreferences):
(WebKit::WebPageGroup::preferences):
* UIProcess/WebPageGroup.h:

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

6 years agoReenable AppNap
barraclough@apple.com [Fri, 7 Feb 2014 21:39:16 +0000 (21:39 +0000)]
Reenable AppNap
https://bugs.webkit.org/show_bug.cgi?id=128394

Reviewed by Tim Horton.

* Shared/WebPreferencesStore.h:
    - pageVisibilityBasedProcessSuppressionEnabled shoud default to true.

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

6 years agoBuild fix after r163632
k.czech@samsung.com [Fri, 7 Feb 2014 21:23:58 +0000 (21:23 +0000)]
Build fix after r163632

Unreviewed EFL build fix

Added empty stub to WKTR to not break EFL build.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::selectTextWithCriteria):

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

6 years agoUnreviewed build fix for 32-bit iOS.
jer.noble@apple.com [Fri, 7 Feb 2014 21:17:08 +0000 (21:17 +0000)]
Unreviewed build fix for 32-bit iOS.

Use magic ? values to allow the exported symbol to be different on 32- and 64-bit builds.

* WebCore.exp.in:

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

6 years agoRename ViewGestureController.mm to ViewGestureControllerMac.mm
timothy_horton@apple.com [Fri, 7 Feb 2014 20:14:13 +0000 (20:14 +0000)]
Rename ViewGestureController.mm to ViewGestureControllerMac.mm
https://bugs.webkit.org/show_bug.cgi?id=128387

Reviewed by Anders Carlsson.

As a precursor to having a second nearly completely divergent
ViewGestureController implementation for iOS.

* UIProcess/mac/ViewGestureControllerMac.mm: Renamed from Source/WebKit2/UIProcess/mac/ViewGestureController.mm.
* WebKit2.xcodeproj/project.pbxproj:
Rename ViewGestureController.mm to ViewGestureControllerMac.mm.
Unfortunately, since we're not renaming the class, the header
has to keep its name (and will be the recipient of a giant #if in a later
patch), because the message receiver generated code will try to import
ViewGestureController.h (without the Mac suffix).

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

6 years agoREGRESSION (r160628): LLint does not appear to handle impure get own property properly
oliver@apple.com [Fri, 7 Feb 2014 19:59:58 +0000 (19:59 +0000)]
REGRESSION (r160628): LLint does not appear to handle impure get own property properly
https://bugs.webkit.org/show_bug.cgi?id=127943

Reviewed by Filip Pizlo.

Make sure the LLINT doesn't attempt to cache property
access on structures with impureGetOwnPropertySlot set.

* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

6 years agoConvert ProgressTracker to std::chrono
andersca@apple.com [Fri, 7 Feb 2014 19:57:09 +0000 (19:57 +0000)]
Convert ProgressTracker to std::chrono
https://bugs.webkit.org/show_bug.cgi?id=128377

Reviewed by Andreas Kling.

* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::ProgressTracker):
(WebCore::ProgressTracker::reset):
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::incrementProgress):
* loader/ProgressTracker.h:

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

6 years agoWeb Inspector: Clean up DataGrid and add table columns incrementally
bburg@apple.com [Fri, 7 Feb 2014 19:49:41 +0000 (19:49 +0000)]
Web Inspector: Clean up DataGrid and add table columns incrementally
https://bugs.webkit.org/show_bug.cgi?id=128332

Reviewed by Timothy Hatcher.

Miscellaneous improvements to DataGrid to make it more maintainable.
In particular, it now uses a `Map` to store column settings, and the
construction sequence has been simplified so that it is safe to add
columns at the end of the constructor (or any later time).

DataGrid stores a bunch of settings per-column, but before this was done
by both storing properties on the provided `column` objects as well as
keeping several `columnIdentifier`-keyed maps for properties like `group`
and `hidden`.

Improve code readability by using for..of loops, destructuring assignment,
`Node.createElement`, and updating variable names. All variables that refer
to DOM nodes now have a `Element` suffix to distinguish them from model objects.

* UserInterface/DataGrid.js:
(.sortDataGrid):
(WebInpector.DataGrid): Create all DOM elements before populating columns.
Remove redundant objects for storing per-column values. Copy column settings
into a map rather than mutating the passed-in JSON-like settings data structure.

(WebInspector.DataGrid.createSortableDataGrid):
(WebInspector.DataGrid.prototype.get length):
(WebInspector.DataGrid.prototype.updateLayout):
(WebInspector.DataGrid.prototype.get scrollContainer):
(WebInspector.DataGrid.prototype.isScrolledToLastRow):
(WebInspector.DataGrid.prototype.scrollToLastRow):
(WebInspector.DataGrid.prototype._positionResizerElements):
(WebInspector.DataGrid.prototype.addCreationNode):
(WebInspector.DataGrid.prototype.):
(WebInspector.DataGrid.prototype.sortNodes):
(WebInspector.DataGrid.prototype.dataGridNodeFromPoint):
(WebInspector.DataGrid.prototype._clickInHeaderCell):
(WebInspector.DataGrid.prototype.isColumnSortColumn):
(WebInspector.DataGrid.prototype.headerTableHeader):
(WebInspector.DataGrid.prototype._copyTextForDataGridNode):
(WebInspector.DataGrid.prototype._resizerDragging):
(WebInspector.DataGridNode.prototype.createCells):
(WebInspector.DataGridNode.prototype.createCell.get var):
(WebInspector.DataGridNode.prototype.elementWithColumnIdentifier):
(WebInspector.DataGridNode.prototype._attach):
* UserInterface/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters.scopeBar.this.columns.get scopeBar):
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):

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

6 years agoCopying a WebPreferences object should be done through a member function
andersca@apple.com [Fri, 7 Feb 2014 19:43:26 +0000 (19:43 +0000)]
Copying a WebPreferences object should be done through a member function
https://bugs.webkit.org/show_bug.cgi?id=128385

Reviewed by Andreas Kling.

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesCreateCopy):
* UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::copy):
* UIProcess/WebPreferences.h:

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

6 years agoWebPageGroup::setPreferences should set the preferences on all pages in the group
andersca@apple.com [Fri, 7 Feb 2014 19:10:47 +0000 (19:10 +0000)]
WebPageGroup::setPreferences should set the preferences on all pages in the group
https://bugs.webkit.org/show_bug.cgi?id=128383

Reviewed by Alexey Proskuryakov.

* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::setPreferences):

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

6 years ago32-bit build fix.
ap@apple.com [Fri, 7 Feb 2014 18:53:01 +0000 (18:53 +0000)]
32-bit build fix.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):

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

6 years ago[CSS Background Blending] Unprefix the -webkit-background-blend-mode property
commit-queue@webkit.org [Fri, 7 Feb 2014 18:46:47 +0000 (18:46 +0000)]
[CSS Background Blending] Unprefix the -webkit-background-blend-mode property

https://bugs.webkit.org/show_bug.cgi?id=128270

Patch by Mihai Tica <mitica@adobe.com> on 2014-02-07
Reviewed by Dean Jackson.

Source/WebCore:

This patch consist of unprefixing the -webkit-background-blend-mode.
The property now changes to background-blend-mode.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillProperty):
* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

Source/WebInspectorUI:

* UserInterface/CSSKeywordCompletions.js: Refactor -webkit-background-blend-mode to background-blend-mode.

LayoutTests:

This patch consist of unprefixing the -webkit-background-blend-mode.
The property now changes to background-blend-mode.

* css3/compositing/background-blend-mode-background-attachement-fixed-expected.html:
* css3/compositing/background-blend-mode-background-attachement-fixed.html:
* css3/compositing/background-blend-mode-background-clip-content-box-expected.html:
* css3/compositing/background-blend-mode-background-clip-content-box.html:
* css3/compositing/background-blend-mode-background-clip-padding-box-expected.html:
* css3/compositing/background-blend-mode-background-clip-padding-box.html:
* css3/compositing/background-blend-mode-background-origin-border-box-expected.html:
* css3/compositing/background-blend-mode-background-origin-border-box.html:
* css3/compositing/background-blend-mode-background-position-percentage-expected.html:
* css3/compositing/background-blend-mode-background-position-percentage.html:
* css3/compositing/background-blend-mode-background-repeat-no-repeat-expected.html:
* css3/compositing/background-blend-mode-background-repeat-no-repeat.html:
* css3/compositing/background-blend-mode-background-size-contain-expected.html:
* css3/compositing/background-blend-mode-background-size-contain.html:
* css3/compositing/background-blend-mode-background-size-cover-expected.html:
* css3/compositing/background-blend-mode-background-size-cover.html:
* css3/compositing/background-blend-mode-crossfade-image.html:
* css3/compositing/background-blend-mode-data-uri-svg-image.html:
* css3/compositing/background-blend-mode-default-value.html:
* css3/compositing/background-blend-mode-different-image-formats.html:
* css3/compositing/background-blend-mode-gif-color-2.html:
* css3/compositing/background-blend-mode-gif-color.html:
* css3/compositing/background-blend-mode-gradient-color.html:
* css3/compositing/background-blend-mode-gradient-gradient.html:
* css3/compositing/background-blend-mode-gradient-image.html:
* css3/compositing/background-blend-mode-image-color.html:
* css3/compositing/background-blend-mode-image-image.html:
* css3/compositing/background-blend-mode-image-svg.html:
* css3/compositing/background-blend-mode-multiple-background-layers.html:
* css3/compositing/background-blend-mode-property-expected.txt:
* css3/compositing/background-blend-mode-property-parsing-expected.txt:
* css3/compositing/background-blend-mode-separate-layer-declaration.html:
* css3/compositing/background-blend-mode-single-layer-no-blending.html:
* css3/compositing/background-blend-mode-svg-color.html:
* css3/compositing/background-blend-mode-svg.html:
* css3/compositing/background-blend-mode-tiled-layers.html:
* css3/compositing/blend-mode-layers.html:
* css3/compositing/effect-background-blend-mode-stacking.html:
* css3/compositing/effect-background-blend-mode-tiled.html:
* css3/compositing/effect-background-blend-mode.html:
* css3/compositing/script-tests/background-blend-mode-property-parsing.js:
(testBlendModeRule):
* css3/compositing/script-tests/background-blend-mode-property.js:
(testblendmode):

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

6 years agoAX: Find and select text with respect to insertion point using accessibility API.
samuel_white@apple.com [Fri, 7 Feb 2014 18:43:38 +0000 (18:43 +0000)]
AX: Find and select text with respect to insertion point using accessibility API.
https://bugs.webkit.org/show_bug.cgi?id=128026

Reviewed by Chris Fleizach.

Source/WebCore:

Added facilities to support semi-ambiguous text selection through the accessibility API. All
requests are handled with respect to the current selection. The requests are disambiguated in
WebCore using passed parameters such as: SelectStringAfterSelection , ..Before.., ..ClosestTo...,
etc. Callers can also supply an array of strings to select and the closest that matches the
disambiguation criteria will be used.

Test: platform/mac/accessibility/select-text.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::rangeClosestToRange):
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection):
(WebCore::AccessibilityObject::selectionRange):
(WebCore::AccessibilityObject::selectText):
(WebCore::AccessibilityObject::frame):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilitySelectTextCriteria::AccessibilitySelectTextCriteria):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
* dom/Position.cpp:
(WebCore::Position::positionCountBetweenPositions):
* dom/Position.h:

Tools:

Added method to AccessibilityUIElement to enable testing of accessibility text selection.

* DumpRenderTree/AccessibilityUIElement.cpp:
(selectTextWithCriteriaCallback):
(AccessibilityUIElement::getJSClass):
* 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/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::uiElementCountForSearchPredicate):
(WTR::AccessibilityUIElement::uiElementForSearchPredicate):
(WTR::AccessibilityUIElement::selectTextWithCriteria):
* WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::selectTextParameterizedAttributeForCriteria):
(WTR::AccessibilityUIElement::selectTextWithCriteria):

LayoutTests:

Tests that text selection via the accessibility API works as expected.

* platform/mac/accessibility/bounds-for-range-expected.txt:
* platform/mac/accessibility/select-text-expected.txt: Added.
* platform/mac/accessibility/select-text.html: Added.

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

6 years agoFloatingObject m_paginationStrut should be LayoutUnit
bjonesbe@adobe.com [Fri, 7 Feb 2014 18:37:55 +0000 (18:37 +0000)]
FloatingObject m_paginationStrut should be LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=119808

Reviewed by Andreas Kling.

Make the paginationStrut in FloatingObject have the same type as all
of the other paginationStruts in the code.

* rendering/FloatingObjects.h:
(WebCore::FloatingObject::paginationStrut):
(WebCore::FloatingObject::setPaginationStrut):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::positionNewFloatOnLine):

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

6 years ago[Cocoa] WKRemoteObjectInterface doesn’t support aribtrary argument classes
mitz@apple.com [Fri, 7 Feb 2014 18:32:38 +0000 (18:32 +0000)]
[Cocoa] WKRemoteObjectInterface doesn’t support aribtrary argument classes
https://bugs.webkit.org/show_bug.cgi?id=128368

Reviewed by Anders Carlsson.

* Shared/API/Cocoa/WKRemoteObjectInterface.h: Declared new methods.
* Shared/API/Cocoa/WKRemoteObjectInterface.mm:
(propertyListClasses): Removed NSNull, which is not really a property list class.
(classesForSelectorArgument): Added helper function.
(-[WKRemoteObjectInterface classesForSelector:argumentIndex:]): Added.
(-[WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]): Added.

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

6 years ago[Cocoa] API::FrameHandle has a generic wrapper
mitz@apple.com [Fri, 7 Feb 2014 18:32:04 +0000 (18:32 +0000)]
[Cocoa] API::FrameHandle has a generic wrapper
https://bugs.webkit.org/show_bug.cgi?id=128366

Reviewed by Anders Carlsson.

Added WKFrameHandle.

* Shared/API/Cocoa/WKFrameHandle.h: Added.
* Shared/API/Cocoa/WKFrameHandle.mm: Added.
(-[WKFrameHandle dealloc]): Calls the API::FrameHandle destructor.
(-[WKFrameHandle isEqual:]): Checks for frame ID equality.
(-[WKFrameHandle hash]): Returns the frame ID.
(-[WKFrameHandle _frameID]): Ditto.
(-[WKFrameHandle copyWithZone:]): Retains self.
(+[WKFrameHandle supportsSecureCoding]): Returns YES.
(-[WKFrameHandle initWithCoder:]): Decodes the frame ID and constructs an API::FrameHandle
with it.
(-[WKFrameHandle encodeWithCoder:]): Encodes the frame ID.
(-[WKFrameHandle _apiObject]): Returns the wrapped API::FrameHandle.
* Shared/API/Cocoa/WKFrameHandleInternal.h: Added.
(WebKit::wrapper): Added. Returns an API::FrameHandle’s wrapper as a WKFrameHandle.

* Shared/APIFrameHandle.cpp:
(API::FrameHandle::create): Changed to return a PassRefPtr.
* Shared/APIFrameHandle.h: Made the constructor public for -[WKFrameHandle initWithCoder:].

* Shared/Cocoa/APIObject.mm:
(API::Object::newObject): Allocate a WKFrameHandle if the object is an API::FrameHandle.

* WebKit2.xcodeproj/project.pbxproj: Added references to new files.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h: Declared handle property.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]): Added. Calls WebProcess::webFrame to
look up a frame with the given handle’s frame ID.
(-[WKWebProcessPlugInFrame handle]): Added. Returns a new handle with the frame’s ID.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrameInternal.h: Updated #import.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h: Added.

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

6 years ago[Cocoa] WKWebProcessPlugInNodeHandle methods leak and may crash
mitz@apple.com [Fri, 7 Feb 2014 18:31:29 +0000 (18:31 +0000)]
[Cocoa] WKWebProcessPlugInNodeHandle methods leak and may crash
https://bugs.webkit.org/show_bug.cgi?id=128365

Reviewed by Anders Carlsson.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(+[WKWebProcessPlugInNodeHandle nodeHandleWithJSValue:inContext:]): Null-check the result
of InjectedBundleNodeHandle::getOrCreate, and autorelease the return value.
(-[WKWebProcessPlugInNodeHandle htmlIFrameElementContentFrame]): Null-check the result of
InjectedBundleNodeHandle::htmlIFrameElementContentFrame, and autorelease the return value.

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

6 years agoIDB: storage/indexeddb/create-index-with-integer-keys.html fails
beidson@apple.com [Fri, 7 Feb 2014 18:26:48 +0000 (18:26 +0000)]
IDB: storage/indexeddb/create-index-with-integer-keys.html fails
<rdar://problem/16002857> and https://bugs.webkit.org/show_bug.cgi?id=128316

Reviewed by Geoff Garen.

Source/WebCore:

Tested by storage/indexeddb/create-index-with-integer-keys.html (and probably some others)

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update): Update createIDBKeyFromScriptValueAndKeyPath usage.
(WebCore::IDBCursor::setValueReady): Update createIDBKeyFromScriptValueAndKeyPath usage.

* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put): Update usage of binding utilities.

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess): Update createIDBKeyFromScriptValueAndKeyPath usage.

* bindings/js/IDBBindingUtilities.cpp:
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::createIDBKeyFromScriptValueAndKeyPath): Changed to take an ExecState*.
(WebCore::deserializeIDBValueBuffer): Added new version that starts with ExecState* and Vector<uint8_t>
  instead of RequestState and SharedBuffer.
(WebCore::generateIndexKeysForValue): Moved from IDBObjectStore.cpp and changed to take an ExecState*
* bindings/js/IDBBindingUtilities.h:

Added new blob fetcher that works with uint8_t buffers:
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::getColumnBlobAsVector):
* platform/sql/SQLiteStatement.h:

* WebCore.exp.in:

Source/WebKit2:

Update Vector<char> to Vector<uint8_t> throughout:
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::openCursorInBackingStore):
(WebKit::UniqueIDBDatabase::didOpenCursorInBackingStore):
(WebKit::UniqueIDBDatabase::advanceCursorInBackingStore):
(WebKit::UniqueIDBDatabase::didAdvanceCursorInBackingStore):
(WebKit::UniqueIDBDatabase::iterateCursorInBackingStore):
(WebKit::UniqueIDBDatabase::didIterateCursorInBackingStore):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:

Update Vector<char> to Vector<uint8_t> throughout:
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::SQLiteIDBCursor::advanceOnce):
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h:
(WebKit::SQLiteIDBCursor::currentValueBuffer):

* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex): Create a script value from the value data, use
  generateIndexKeysForValue to get the index keys, and then write the resulting index records.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::putIndexRecord): Call through to uncheckedPutIndexRecord.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::uncheckedPutIndexRecord): Version of putIndexRecord that doesn’t
  validate the transaction or its mode.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::openCursor): Update Vector<char> to Vector<uint8_t>.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::advanceCursor): Ditto.
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::iterateCursor): Ditto.
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:

LayoutTests:

* platform/mac-wk2/TestExpectations: Enable the test.

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

6 years agochildShouldCreateRenderer should return false for the mspace element
commit-queue@webkit.org [Fri, 7 Feb 2014 18:20:01 +0000 (18:20 +0000)]
childShouldCreateRenderer should return false for the mspace element
https://bugs.webkit.org/show_bug.cgi?id=128325

Patch by Frédéric Wang <fred.wang@free.fr> on 2014-02-07
Reviewed by Chris Fleizach.

Source/WebCore:

The mspace element can not have children so this makes its
childShouldCreateRenderer always return false.

Test: mathml/presentation/mspace-children.html

* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::childShouldCreateRenderer):

LayoutTests:

Add tests to ensure that the mspace element does not have renderer
children.

* mathml/presentation/mspace-children-expected.png: Added.
* mathml/presentation/mspace-children-expected.txt: Added.
* mathml/presentation/mspace-children.html: Added.
* platform/mathml/presentation/mspace-children-expected.txt: Added.

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