WebKit-https.git
7 years agoCrash fix for Windows XP.
commit-queue@webkit.org [Thu, 17 Oct 2013 22:47:02 +0000 (22:47 +0000)]
Crash fix for Windows XP.
https://bugs.webkit.org/show_bug.cgi?id=122790

Patch by Anthony Johnson <anthony.johnson@flexsim.com> on 2013-10-17
Reviewed by Geoffrey Garen.

* win/tools/vsprops/common.props:
Replaced stack and heap sizes of zero with blank stack and heap sizes.

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

7 years agoRun JavaScriptCore tests again on Windows.
commit-queue@webkit.org [Thu, 17 Oct 2013 22:28:32 +0000 (22:28 +0000)]
Run JavaScriptCore tests again on Windows.
https://bugs.webkit.org/show_bug.cgi?id=122787

Patch by Alex Christensen <achristensen@webkit.org> on 2013-10-17
Reviewed by Tim Horton.

Source/JavaScriptCore:

* JavaScriptCore.vcxproj/JavaScriptCore.sln: Added.
* jit/JITStubsMSVC64.asm: Removed reference to cti_vm_throw unused since r157581.

Tools:

* Scripts/build-jsc:
(buildMyProject): Use JavaScriptCore.sln to build JavaScriptCore and WTF.
* Scripts/run-javascriptcore-tests: Don't run stress tests on WinCairo.
* Scripts/webkitdirs.pm:
(determineConfigurationForVisualStudio):
(determineConfigurationProductDir):
Build directory should end with bin64 and configuration should end with |x64 on Win64.
(isAppleWinWebKit):
(copyInspectorFrontendFiles):
(setPathForRunningWebKitApp):
Separated WinCairo directories and options from AppleWin.

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

7 years agoTidied up the Vector<T> move constructor
ggaren@apple.com [Thu, 17 Oct 2013 22:10:36 +0000 (22:10 +0000)]
Tidied up the Vector<T> move constructor
https://bugs.webkit.org/show_bug.cgi?id=122998

Reviewed by Anders Carlsson.

* wtf/Vector.h:
(WTF::::Vector): Don't call swap() "weird". It's the way most std types
implement move constructors.

Do inline this function, so the compiler can optimize away a logical
move into a physical no-op.

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

7 years agoWeb Inspector: [CSS Regions] Crash when highlighting a node of a flow with no regions
achicu@adobe.com [Thu, 17 Oct 2013 22:08:18 +0000 (22:08 +0000)]
Web Inspector: [CSS Regions] Crash when highlighting a node of a flow with no regions
https://bugs.webkit.org/show_bug.cgi?id=122993

Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: inspector-protocol/dom/highlight-flow-with-no-region.html

Even if a named flow has no regions the content of the flow will still have renderer objects created.
Removed the assumption that all renderers inside a RenderFlowThread will always have an enclosing RenderRegion.

* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForRendererFragments):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode):

LayoutTests:

Added test to check that DOM.highlightNode is not crashing WebCore when the node is inside
a flow with no associated regions.

* inspector-protocol/dom/highlight-flow-with-no-region-expected.txt: Added.
* inspector-protocol/dom/highlight-flow-with-no-region.html: Added.

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

7 years agoRemoved restoreArgumentReference (another use of JITStackFrame)
ggaren@apple.com [Thu, 17 Oct 2013 21:45:40 +0000 (21:45 +0000)]
Removed restoreArgumentReference (another use of JITStackFrame)
https://bugs.webkit.org/show_bug.cgi?id=122997

Reviewed by Oliver Hunt.

* jit/JSInterfaceJIT.h: Removed an unused function. This is a step
toward using the C stack.

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

7 years agoRemove JITStubCall.h
oliver@apple.com [Thu, 17 Oct 2013 21:39:39 +0000 (21:39 +0000)]
Remove JITStubCall.h
https://bugs.webkit.org/show_bug.cgi?id=122991

Reviewed by Geoff Garen.

Happily this is no longer used

* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* jit/JIT.cpp:
* jit/JITArithmetic.cpp:
* jit/JITArithmetic32_64.cpp:
* jit/JITCall.cpp:
* jit/JITCall32_64.cpp:
* jit/JITOpcodes.cpp:
* jit/JITOpcodes32_64.cpp:
* jit/JITPropertyAccess.cpp:
* jit/JITPropertyAccess32_64.cpp:
* jit/JITStubCall.h: Removed.

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

7 years ago[BlackBerry] Improve the viewport of some websites like mobilesyrup.com/2013/08/25...
zhajiang@rim.com [Thu, 17 Oct 2013 21:38:41 +0000 (21:38 +0000)]
[BlackBerry] Improve the viewport of some websites like mobilesyrup.com/2013/08/25/moto-x-review/
https://bugs.webkit.org/show_bug.cgi?id=122995

Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-10-17.
Reviewed by George Staikos.
Internally reviewed by George Staikos and Eli Fidler.

JIRA 523949
Force to respect the viewport when there is viewport meta tag but width
is not specified even though the viewport is broken. By doing that, We
want to improve the user experience of some websites that use a reasonable
initial-scale, but have some overly-wide contents

The contents of those websites like mobilesyrup.com/2013/08/25/moto-x-review
should be improved by the contents provider eventually.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::recomputeVirtualViewportFromViewportArguments):

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

7 years agoWeb Inspector: Go to line keyboard command and dialog
graouts@apple.com [Thu, 17 Oct 2013 21:38:21 +0000 (21:38 +0000)]
Web Inspector: Go to line keyboard command and dialog
https://bugs.webkit.org/show_bug.cgi?id=122893

Reviewed by Timothy Hatcher.

Add a text input over source code text editors, centered within the width of the editor
and towards the top of the editor, upon pressing Command+L or Control+G to match the
behavior in Chrome.

* Localizations/en.lproj/localizedStrings.js:
New localized string "Line Number".

* UserInterface/GoToLineDialog.css: Added.
Styling for the go-to-line dialog.

* UserInterface/GoToLineDialog.js: Added.
(WebInspector.GoToLineDialog):
Generate the DOM structure for the dialog.

(WebInspector.GoToLineDialog.prototype.present):
Present the dialog as a child of a parent element. The dialog's text field automatically
gets focus and resets to be empty.

(WebInspector.GoToLineDialog.prototype.dismiss):
Dismiss the dialog if visible, this triggers the goToLineDialogWasDismissed delegate method.

(WebInspector.GoToLineDialog.prototype.handleEvent):
Route the various events registered in the dialog's DOM tree: input, keydown, blur, mousedown
and click.

(WebInspector.GoToLineDialog.prototype._handleInputEvent):
Update the "non-empty" class on the dialog's element depending on the content of the dialog's
text field. If there is content in the text field, this will make the clear icon visible.

(WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
If the Esc. key is pressed when there is text in the dialog's input field, clear the input field.
If no text is in the input field, dismiss the input field. When the Enter key is pressed, we call
the isGoToLineDialogValueValid() method on the delegate to figure out if the text field value is
valid. If it's not, we select the text field value so that it may be easily replaced and play
en error sound. If it's valid, we call the goToLineDialogValueWasValidated() delegate method
and dismiss the dialog.

(WebInspector.GoToLineDialog.prototype._handleBlurEvent):
Dismiss the dialog when its text field loses focus. This ensures that clicking anywhere outside
of the dialog removes it from display.

(WebInspector.GoToLineDialog.prototype._handleMousedownEvent):
Upon pressing the mouse down on the clear icon, select the entire text field content (matches
the behavior of Xcode) and prevent the default event action that would blur the text field
which would dismiss the dialog.

(WebInspector.GoToLineDialog.prototype._handleClickEvent):
Clear the content of the dialog's text field upon clicking on its clear button.

(WebInspector.GoToLineDialog.prototype._clear):
Reset the dialog's text field's value to an empty string and remove the "non-empty" CSS class name
controlling the display of the clear button.

* UserInterface/Images/CloseWhite.svg: Added.
Variation of the Close.svg icon with a white cross.

* UserInterface/Main.html:
Link to the newly added resources for GoToLineDialog.

* UserInterface/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
Register the Command+L and Control+G keyboard shortcuts to bring up the go-to-line dialog.

(WebInspector.SourceCodeTextEditor.prototype.showGoToLineDialog):
Method called upon pressing the Command+L and Control+G keyboard shorcuts creating an instance
of a GoToDialog if necessary, becoming its delegate and presenting it in the context of the
editor's root element.

(WebInspector.SourceCodeTextEditor.prototype.isGoToLineDialogValueValid):
Delegate method called to validate the line number presently set in the go-to-dialog's text field,
checking it's a number between 1 and the number of lines in the source code.

(WebInspector.SourceCodeTextEditor.prototype.goToLineDialogValueWasValidated):
Delegate method called when the line number set in the go-to-dialog's text field has been validated.
We reveal and select the line at the number provided.

(WebInspector.SourceCodeTextEditor.prototype.goToLineDialogWasDismissed):
Ensure the source code editor regains focus upon dismissing the go-to-dialog.

* UserInterface/TextEditor.js:
(WebInspector.TextEditor.prototype.revealPosition):
Add a new opt-in option to not highlight the revealed position. The code in goToLineDialogValueWasValidated()
sets that new flag to true to avoid an unnecessary highlight on top of the selection.

(WebInspector.TextEditor.prototype.get lineCount):
Expose the lineCount() method on the private CodeMirror instance.

(WebInspector.TextEditor.prototype.focus):
Expose the focus() method on the private CodeMirror instance.

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

7 years agoWeb Inspector: logged objects are highlighted in blue
graouts@apple.com [Thu, 17 Oct 2013 21:29:33 +0000 (21:29 +0000)]
Web Inspector: logged objects are highlighted in blue
https://bugs.webkit.org/show_bug.cgi?id=122897

Reviewed by Joseph Pecoraro.

Switch to using the system highlight color for the background selected messages.
Also removing SVG assets no longer needed since we won't be showing white prompt
and result icons anymore as well as a few generated canvas states.

* UserInterface/Images/UserInputPromptPreviousSelected.svg: Removed.
* UserInterface/Images/UserInputResultSelected.svg: Removed.
* UserInterface/LogContentView.css:
(.console-messages:focus .console-item.selected):
* UserInterface/Main.js:
(WebInspector._generateDisclosureTriangleImages):

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

7 years agoCTTE: RenderMathMLOperator always has a MathMLElement.
akling@apple.com [Thu, 17 Oct 2013 21:21:02 +0000 (21:21 +0000)]
CTTE: RenderMathMLOperator always has a MathMLElement.
<https://webkit.org/b/122988>

Reviewed by Antti Koivisto.

The renderer is never anonymous and always has a corresponding
MathMLElement. Overload element() with a tighter return type.

Also marked the class FINAL and made most methods private.

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

7 years agoFix three bugs in the equals() implementations for css gradients.
thakis@chromium.org [Thu, 17 Oct 2013 21:14:46 +0000 (21:14 +0000)]
Fix three bugs in the equals() implementations for css gradients.
https://bugs.webkit.org/show_bug.cgi?id=122987

Reviewed by Andreas Kling.

1. Linear gradients were considered equal if the first gradient has no x and y
   position and the second has no x but does have y.
2. Same as 1, for radial gradients. (This doesn't happen in practice as
   CSSParser::parseRadialGradient rejects such input, so no test for this case.)
3. Radial gradients without x and y position weren't considered equal even if
   they were.

Source/WebCore:

* css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::equals):
(WebCore::CSSRadialGradientValue::equals):

LayoutTests:

Merges https://codereview.chromium.org/26147006/

* cssom/cssvalue-comparison-expected.txt:
* cssom/cssvalue-comparison.html:

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

7 years agoWeb Inspector: allow front-end to trigger the system beep sound to signal an error
graouts@apple.com [Thu, 17 Oct 2013 21:07:59 +0000 (21:07 +0000)]
Web Inspector: allow front-end to trigger the system beep sound to signal an error
https://bugs.webkit.org/show_bug.cgi?id=122955

Reviewed by Timothy Hatcher.

Source/WebCore:

New beep() method exposed on InspectorFrontendHost calling into WebCore's systemBeep().

* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::beep):
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:

Provide a stub method for the new InspectorFrontendHost.beep() method.

* UserInterface/InspectorFrontendHostStub.js:
(WebInspector.InspectorFrontendHostStub.prototype.beep):

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

7 years ago[WK2] Speculative buildfixes for GTK and EFL after r157582.
ossy@webkit.org [Thu, 17 Oct 2013 21:03:42 +0000 (21:03 +0000)]
[WK2] Speculative buildfixes for GTK and EFL after r157582.

* CMakeLists.txt:
* GNUmakefile.am:

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

7 years agoRefactor stored website data APIs
commit-queue@webkit.org [Thu, 17 Oct 2013 20:51:57 +0000 (20:51 +0000)]
Refactor stored website data APIs
https://bugs.webkit.org/show_bug.cgi?id=122781

Patch by Martin Hock <mhock@apple.com> on 2013-10-17
Reviewed by Brady Eidson.

Add WebOriginDataManager along with corresponding class
WebOriginDataManagerProxy and API WKOriginDataManager.

Currently, the new files are unused.

WKOriginDataManager should subsume the functionality of:
WKApplicationCacheManager, WKCookieManager, WKDatabaseManager,
WKKeyValueStorageManager, WKMediaCacheManager,
WKPluginSiteDataManager, and WKResourceCacheManager.

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Shared/API/c/WKBase.h:
* Shared/APIObject.h:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetOriginDataManager):
* UIProcess/API/C/WKContext.h:
* UIProcess/API/C/WKOriginDataManager.cpp: Added.
(WKOriginDataManagerGetTypeID):
(WKOriginDataManagerGetOrigins):
(WKOriginDataManagerDeleteEntriesForOrigin):
(WKOriginDataManagerDeleteAllEntries):
(WKOriginDataManagerStartObservingChanges):
(WKOriginDataManagerStopObservingChanges):
(WKOriginDataManagerSetChangeClient):
* UIProcess/API/C/WKOriginDataManager.h: Added.
* UIProcess/WebOriginDataManagerProxy.cpp: Added.
(WebKit::WebOriginDataManagerProxy::supplementName):
(WebKit::WebOriginDataManagerProxy::create):
(WebKit::WebOriginDataManagerProxy::WebOriginDataManagerProxy):
(WebKit::WebOriginDataManagerProxy::~WebOriginDataManagerProxy):
(WebKit::WebOriginDataManagerProxy::contextDestroyed):
(WebKit::WebOriginDataManagerProxy::processDidClose):
(WebKit::WebOriginDataManagerProxy::shouldTerminate):
(WebKit::WebOriginDataManagerProxy::refWebContextSupplement):
(WebKit::WebOriginDataManagerProxy::derefWebContextSupplement):
(WebKit::WebOriginDataManagerProxy::getOrigins):
(WebKit::WebOriginDataManagerProxy::didGetOrigins):
(WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin):
(WebKit::WebOriginDataManagerProxy::deleteAllEntries):
(WebKit::WebOriginDataManagerProxy::startObservingChanges):
(WebKit::WebOriginDataManagerProxy::stopObservingChanges):
(WebKit::WebOriginDataManagerProxy::setChangeClient):
(WebKit::WebOriginDataManagerProxy::didChange):
* UIProcess/WebOriginDataManagerProxy.h: Added.
* UIProcess/WebOriginDataManagerProxy.messages.in: Added.
* UIProcess/WebOriginDataManagerProxyChangeClient.cpp: Added.
(WebKit::WebOriginDataManagerProxyChangeClient::didChange):
* UIProcess/WebOriginDataManagerProxyChangeClient.h: Added.
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/OriginData/WebOriginDataManager.cpp: Added.
(WebKit::WebOriginDataManager::supplementName):
(WebKit::WebOriginDataManager::WebOriginDataManager):
(WebKit::WebOriginDataManager::getOrigins):
(WebKit::WebOriginDataManager::deleteEntriesForOrigin):
(WebKit::WebOriginDataManager::deleteAllEntries):
(WebKit::WebOriginDataManager::startObservingChanges):
(WebKit::WebOriginDataManager::stopObservingChanges):
* WebProcess/OriginData/WebOriginDataManager.h: Added.
* WebProcess/OriginData/WebOriginDataManager.messages.in: Added.

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

7 years agoRemove PlatformCAAnimation::supportsValueFunction()
andersca@apple.com [Thu, 17 Oct 2013 20:36:19 +0000 (20:36 +0000)]
Remove PlatformCAAnimation::supportsValueFunction()
https://bugs.webkit.org/show_bug.cgi?id=122990

Reviewed by Tim Horton.

PlatformCAAnimation::supportsValueFunction always returns true now, so there's no need for it to exist anymore.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:

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

7 years agoCTTE: RenderMathMLFenced always has a MathMLInlineContainerElement.
akling@apple.com [Thu, 17 Oct 2013 20:08:46 +0000 (20:08 +0000)]
CTTE: RenderMathMLFenced always has a MathMLInlineContainerElement.
<https://webkit.org/b/122986>

This renderer is never anonymous and always has a corresponding
MathMLInlineContainerElement. Overload element() with a tighter
return type.

Also marked the class FINAL and made most methods private.

Reviewed by Anders Carlsson.

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

7 years agoRemoved a use of JITSTACKFRAME_ARGS_INDEX
ggaren@apple.com [Thu, 17 Oct 2013 20:04:03 +0000 (20:04 +0000)]
Removed a use of JITSTACKFRAME_ARGS_INDEX
https://bugs.webkit.org/show_bug.cgi?id=122989

Reviewed by Oliver Hunt.

* jit/JITStubCall.h: Removed an unused function. This is one step closer
to using the C stack.

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

7 years agoChange emit_op_catch to use another method to materialize VM
ggaren@apple.com [Thu, 17 Oct 2013 19:53:01 +0000 (19:53 +0000)]
Change emit_op_catch to use another method to materialize VM
https://bugs.webkit.org/show_bug.cgi?id=122977

Reviewed by Oliver Hunt.

* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_catch):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_catch): Use a constant. It removes our dependency
on JITStackFrame. It is also faster and simpler.

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

7 years agoEliminate emitGetJITStubArg() - dead code
ggaren@apple.com [Thu, 17 Oct 2013 19:42:37 +0000 (19:42 +0000)]
Eliminate emitGetJITStubArg() - dead code
https://bugs.webkit.org/show_bug.cgi?id=122975

Reviewed by Anders Carlsson.

* jit/JIT.h:
* jit/JITInlines.h: Removed unused, deprecated function.

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

7 years agoComment AffineTransform::xScale() and yScale() to make their meanings clearer
commit-queue@webkit.org [Thu, 17 Oct 2013 19:22:35 +0000 (19:22 +0000)]
Comment AffineTransform::xScale() and yScale() to make their meanings clearer
https://bugs.webkit.org/show_bug.cgi?id=122981

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2013-10-17
Reviewed by Simon Fraser.

* platform/graphics/transforms/AffineTransform.h:

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

7 years agoEliminate all ASSERT references to OBJECT_OFFSETOF(struct JITStackFrame,...) in JITSt...
mark.lam@apple.com [Thu, 17 Oct 2013 19:22:27 +0000 (19:22 +0000)]
Eliminate all ASSERT references to OBJECT_OFFSETOF(struct JITStackFrame,...) in JITStubsXXX.h.
https://bugs.webkit.org/show_bug.cgi?id=122979.

Reviewed by Michael Saboff.

* jit/JITStubs.cpp:
* jit/JITStubs.h:
* jit/JITStubsARM.h:
* jit/JITStubsARM64.h:
* jit/JITStubsARMv7.h:
* jit/JITStubsMIPS.h:
* jit/JITStubsSH4.h:
* jit/JITStubsX86.h:
* jit/JITStubsX86_64.h:
* runtime/VM.cpp:
(JSC::VM::VM):

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

7 years agoRemove unnecessary check for RenderLayer and rename ensureLayer to createLayer in...
vivek.vg@samsung.com [Thu, 17 Oct 2013 19:15:20 +0000 (19:15 +0000)]
Remove unnecessary check for RenderLayer and rename ensureLayer to createLayer in RenderLayerModelObject.
https://bugs.webkit.org/show_bug.cgi?id=122928

Reviewed by Darin Adler.

No new tests due to code refactoring.

RenderLayerModelObject::styleDidChange invokes the ensureLayer() only in case of !layer().
Again checking for layer existence would be deemed redundant in ensureLayer.
Replacing it with an ASSERT(!m_layer) and also renaming it to createLayer.

Blink review URL: https://codereview.chromium.org/27246003/

* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::createLayer):
(WebCore::RenderLayerModelObject::styleDidChange):
* rendering/RenderLayerModelObject.h:

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

7 years agoRemove saving callFrameRegister to JITStackFrame in JITCompiler::compileFunction()
msaboff@apple.com [Thu, 17 Oct 2013 18:57:41 +0000 (18:57 +0000)]
Remove saving callFrameRegister to JITStackFrame in JITCompiler::compileFunction()
https://bugs.webkit.org/show_bug.cgi?id=122974

Reviewed by Geoffrey Garen.

Eliminated unneeded storing to JITStackFrame.

* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileFunction):

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

7 years agoUnreviewed gardening of Apple Windows port.
roger_fong@apple.com [Thu, 17 Oct 2013 18:52:57 +0000 (18:52 +0000)]
Unreviewed gardening of Apple Windows port.

* platform/win/TestExpectations:

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

7 years agoRemove PlatformCALayerMac workaround for <rdar://problem/7390716>
timothy_horton@apple.com [Thu, 17 Oct 2013 18:51:35 +0000 (18:51 +0000)]
Remove PlatformCALayerMac workaround for <rdar://problem/7390716>
https://bugs.webkit.org/show_bug.cgi?id=122983

Reviewed by Simon Fraser.

Remove a workaround for a bug fixed in Lion.

* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::setSublayers):
(PlatformCALayerMac::removeAllSublayers):
(PlatformCALayerMac::adoptSublayers):

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

7 years agoBlind attempt at gtk-wk2 build fix.
beidson@apple.com [Thu, 17 Oct 2013 18:33:26 +0000 (18:33 +0000)]
Blind attempt at gtk-wk2 build fix.

* GNUmakefile.am:

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

7 years agoAdd scaffolding for IDBDatabaseBackends in Web and Database processes
beidson@apple.com [Thu, 17 Oct 2013 18:30:00 +0000 (18:30 +0000)]
Add scaffolding for IDBDatabaseBackends in Web and Database processes
https://bugs.webkit.org/show_bug.cgi?id=122971

Reviewed by Tim Horton.

This patch:
- Adds a WebProcessIDBDatabaseBackend
- Adds a DatabaseProcessIDBDatabaseBackend
- Establishes the basic messaging between them
- Actually creates those backends as the result of an indexedDB.open() call from javascript

* DerivedSources.make:
* WebKit2.xcodeproj/project.pbxproj:
* Platform/Logging.h:

Hook up messaging so (Web/Database)ProcessIDBDatabaseBackends can message each other:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
(WebKit::DatabaseToWebProcessConnection::establishIDBDatabaseBackend):
* DatabaseProcess/DatabaseToWebProcessConnection.h:
(WebKit::DatabaseToWebProcessConnection::connection):
* DatabaseProcess/DatabaseToWebProcessConnection.messages.in: Added.

DatabaseProcess side of an IDBDatabaseBackend:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBDatabaseBackend.cpp:
(WebKit::DatabaseProcessIDBDatabaseBackend::DatabaseProcessIDBDatabaseBackend):
(WebKit::DatabaseProcessIDBDatabaseBackend::~DatabaseProcessIDBDatabaseBackend):
(WebKit::DatabaseProcessIDBDatabaseBackend::openConnection):
(WebKit::DatabaseProcessIDBDatabaseBackend::messageSenderConnection):
* DatabaseProcess/IndexedDB/DatabaseProcessIDBDatabaseBackend.h: Added.
(WebKit::DatabaseProcessIDBDatabaseBackend::create):
* DatabaseProcess/IndexedDB/DatabaseProcessIDBDatabaseBackend.messages.in: Added.

WebProcess side of an IDBDatabaseBackend:
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp: Added.
(WebKit::generateBackendIdentifier):
(WebKit::WebProcessIDBDatabaseBackend::WebProcessIDBDatabaseBackend):
(WebKit::WebProcessIDBDatabaseBackend::~WebProcessIDBDatabaseBackend):
(WebKit::WebProcessIDBDatabaseBackend::openConnection):
(WebKit::WebProcessIDBDatabaseBackend::createObjectStore):
(WebKit::WebProcessIDBDatabaseBackend::deleteObjectStore):
(WebKit::WebProcessIDBDatabaseBackend::createTransaction):
(WebKit::WebProcessIDBDatabaseBackend::close):
(WebKit::WebProcessIDBDatabaseBackend::commit):
(WebKit::WebProcessIDBDatabaseBackend::abort):
(WebKit::WebProcessIDBDatabaseBackend::createIndex):
(WebKit::WebProcessIDBDatabaseBackend::deleteIndex):
(WebKit::WebProcessIDBDatabaseBackend::get):
(WebKit::WebProcessIDBDatabaseBackend::put):
(WebKit::WebProcessIDBDatabaseBackend::setIndexKeys):
(WebKit::WebProcessIDBDatabaseBackend::setIndexesReady):
(WebKit::WebProcessIDBDatabaseBackend::openCursor):
(WebKit::WebProcessIDBDatabaseBackend::count):
(WebKit::WebProcessIDBDatabaseBackend::deleteRange):
(WebKit::WebProcessIDBDatabaseBackend::clear):
(WebKit::WebProcessIDBDatabaseBackend::messageSenderConnection):
(WebKit::WebProcessIDBDatabaseBackend::establishDatabaseProcessBackend):
* WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h: Added.
(WebKit::WebProcessIDBDatabaseBackend::create):

Basic shared utilities that multiple processes will need going forward:
* Shared/Databases/IndexedDB/IDBUtilities.cpp:
(WebKit::uniqueDatabaseIdentifier):
* Shared/Databases/IndexedDB/IDBUtilities.h:

* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::sharedDatabaseBackendMap):
(WebKit::WebIDBFactoryBackend::open): Actually establish an IDBDatabaseBackend in the DatabaseProcess
  when indexedDB.open() is called, even if it does nothing for now.

* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
* WebProcess/Databases/WebToDatabaseProcessConnection.h:

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

7 years agoTransition cti_op_throw and cti_vm_throw to a JIT operation
msaboff@apple.com [Thu, 17 Oct 2013 18:12:28 +0000 (18:12 +0000)]
Transition cti_op_throw and cti_vm_throw to a JIT operation
https://bugs.webkit.org/show_bug.cgi?id=122931

Reviewed by Filip Pizlo.

Moved cti_op_throw to operationThrow.  Made the caller responsible for jumping to the
catch handler.  Eliminated cti_op_throw_static_error, cti_vm_throw, ctiVMThrowTrampoline()
and their callers as it is now dead code.  There is some work needed on the Microsoft X86
callOperation to handle the need to provide space for structure return value.

* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_throw):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/JITStubs.cpp:
* jit/JITStubs.h:
* jit/JITStubsARM.h:
* jit/JITStubsARM64.h:
* jit/JITStubsARMv7.h:
* jit/JITStubsMIPS.h:
* jit/JITStubsMSVC64.asm:
* jit/JITStubsSH4.h:
* jit/JITStubsX86.h:
* jit/JITStubsX86_64.h:
* jit/JSInterfaceJIT.h:

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

7 years ago[WK2] REGRESSION(r156472): scrolling coordinator is always enabled incorrectly.
commit-queue@webkit.org [Thu, 17 Oct 2013 18:00:07 +0000 (18:00 +0000)]
[WK2] REGRESSION(r156472): scrolling coordinator is always enabled incorrectly.
https://bugs.webkit.org/show_bug.cgi?id=122958

Patch by Attila Dusnoki <h047679@stud.u-szeged.hu> on 2013-10-17
Reviewed by Tim Horton.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Missing ENABLE(THREADED_SCROLLING) guard added.

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

7 years ago"border-collapse: collapse;" for table removes part of its border (was: Border disapp...
robert@webkit.org [Thu, 17 Oct 2013 17:44:20 +0000 (17:44 +0000)]
"border-collapse: collapse;" for table removes part of its border (was: Border disappears when close to some elements)
https://bugs.webkit.org/show_bug.cgi?id=8914

Reviewed by David Hyatt.

Source/WebCore:

The table section's side of a collapsed border won't get painted if there are no cells there to paint it. So instead
of relying solely on cells to paint the collapsed border paint the appropriate section of the border if there's no
cell to take care of it.

Tests: fast/table/paint-section-borders-without-cells-rtl.html
       fast/table/paint-section-borders-without-cells-vertical-lr-rtl.html
       fast/table/paint-section-borders-without-cells-vertical-lr.html
       fast/table/paint-section-borders-without-cells-vertical-rl.html
       fast/table/paint-section-borders-without-cells.html

* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintRowGroupBorder):
(WebCore::RenderTableSection::offsetLeftForRowGroupBorder):
(WebCore::RenderTableSection::offsetTopForRowGroupBorder):
(WebCore::RenderTableSection::verticalRowGroupBorderHeight):
(WebCore::RenderTableSection::horizontalRowGroupBorderWidth):
(WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
(WebCore::physicalBorderForDirection):
(WebCore::RenderTableSection::paintObject):
* rendering/RenderTableSection.h:

LayoutTests:

* fast/table/paint-section-borders-without-cells-expected.html: Added.
* fast/table/paint-section-borders-without-cells-rtl-expected.html: Added.
* fast/table/paint-section-borders-without-cells-rtl.html: Added.
* fast/table/paint-section-borders-without-cells-vertical-lr-expected.html: Added.
* fast/table/paint-section-borders-without-cells-vertical-lr-rtl-expected.html: Added.
* fast/table/paint-section-borders-without-cells-vertical-lr-rtl.html: Added.
* fast/table/paint-section-borders-without-cells-vertical-lr.html: Added.
* fast/table/paint-section-borders-without-cells-vertical-rl-expected.html: Added.
* fast/table/paint-section-borders-without-cells-vertical-rl.html: Added.
* fast/table/paint-section-borders-without-cells.html: Added.

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

7 years agocertain http media tests doesn't receive the expected "Content-Length" header
commit-queue@webkit.org [Thu, 17 Oct 2013 16:19:19 +0000 (16:19 +0000)]
certain http media tests doesn't receive the expected "Content-Length" header
https://bugs.webkit.org/show_bug.cgi?id=122965

Patch by Andres Gomez <agomez@igalia.com> on 2013-10-17
Reviewed by Eric Carlson.

Fixed PHP syntax so "Content-Length" HTTP Header is included in
the response.

* http/tests/media/resources/serve-video.php:

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

7 years agoSource/JavaScriptCore: Remove JITStackFrame references in the C Loop LLINT.
fpizlo@apple.com [Thu, 17 Oct 2013 15:47:22 +0000 (15:47 +0000)]
Source/JavaScriptCore: Remove JITStackFrame references in the C Loop LLINT.
https://bugs.webkit.org/show_bug.cgi?id=122950.

Patch by Mark Lam <mark.lam@apple.com> on 2013-10-17
Reviewed by Michael Saboff.

* jit/JITStubs.h:
* llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
* offlineasm/cloop.rb:

Source/WTF: Introduce WTF::Bag and start using it for InlineCallFrameSet
https://bugs.webkit.org/show_bug.cgi?id=122941

Reviewed by Geoffrey Garen.

Introduce WTF::Bag, which is basically an allocation pool. No POD restrictions. Does one
malloc per entry. No need to shrink afterwards.

* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.xcodeproj/project.pbxproj:
* wtf/Bag.h: Added.
(WTF::Bag::Bag):
(WTF::Bag::~Bag):
(WTF::Bag::add):
(WTF::Bag::iterator::iterator):
(WTF::Bag::iterator::operator!):
(WTF::Bag::iterator::operator*):
(WTF::Bag::iterator::operator++):
(WTF::Bag::iterator::operator==):
(WTF::Bag::begin):
(WTF::Bag::end):
(WTF::Bag::isEmpty):
* wtf/CMakeLists.txt:

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

7 years agoStyleRuleFoo::mutableProperties() should return a reference.
akling@apple.com [Thu, 17 Oct 2013 15:17:23 +0000 (15:17 +0000)]
StyleRuleFoo::mutableProperties() should return a reference.
<https://webkit.org/b/122962>

The mutableProperties() functions always return objects, so make
them return MutableStylePropertySet&.

Also tweaked the StyleRuleCSSStyleDeclaration constructor to take
references to both the properties and the owner rule since both
are required.

Reviewed by Antti Koivisto.

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

7 years ago[CSS Shapes] Improve the performance of image valued shapes with large shape-margins
hmuller@adobe.com [Thu, 17 Oct 2013 14:45:47 +0000 (14:45 +0000)]
[CSS Shapes] Improve the performance of image valued shapes with large shape-margins
https://bugs.webkit.org/show_bug.cgi?id=122613

Reviewed by Andreas Kling.

The cost of computing the shape-margin boundary of an image-valued shape-outside
is now proportional to (2 * shape-margin + image.height) rather than
(2 * shape-margin * image.height). The performance improvement comes from skipping
sequences of rounded-rectangle intervals that will not contribute to the final
result. Each non-empty row in the original image contributes one rounded-rectangle
whose corner radius is shape-margin, height is 2 * shape-margin, and width is
2 * shape-margin plus the width of the limits of the intervals on the row.

Renamed private method RasterShape::getIntervals() to intervalsAt() to be a little
more consistent with WebKit naming conventions.

There are no new tests since is just an internal refactoring.

* rendering/shapes/RasterShape.cpp:
(WebCore::MarginIntervalGenerator::set): Changed the x1,x2 parameters to an IntShapeInterval.
(WebCore::RasterShapeIntervals::contains): Refactor for the getIntervals() => intervalsAt() rename.
(WebCore::RasterShapeIntervals::getIntervalX1Values): Ditto.
(WebCore::RasterShapeIntervals::getIncludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::getExcludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals): Performance tuning.
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::intervalsAt): Renamed getIntervals().
(WebCore::RasterShapeIntervals::limitIntervalAt): Return the min/max limits of the intervals at Y.
* rendering/shapes/ShapeInterval.h:
(WebCore::ShapeInterval::isEmpty): Added.

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

7 years ago[GTK] Add URLMediaStream in the build
philn@webkit.org [Thu, 17 Oct 2013 14:02:11 +0000 (14:02 +0000)]
[GTK] Add URLMediaStream in the build
https://bugs.webkit.org/show_bug.cgi?id=122833

Reviewed by Carlos Garcia Campos.

* GNUmakefile.am: Add mediastream/gstreamer in include directories list.
* GNUmakefile.list.am: Add DOMURLMediaStream files in the build.

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

7 years agoRemove JITStackFrame references in the C Loop LLINT.
mark.lam@apple.com [Thu, 17 Oct 2013 13:47:25 +0000 (13:47 +0000)]
Remove JITStackFrame references in the C Loop LLINT.
https://bugs.webkit.org/show_bug.cgi?id=122950.

Reviewed by Michael Saboff.

* jit/JITStubs.h:
* llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
* offlineasm/cloop.rb:

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

7 years agoRemove JITStackFrame references in JIT probes.
mark.lam@apple.com [Thu, 17 Oct 2013 13:43:20 +0000 (13:43 +0000)]
Remove JITStackFrame references in JIT probes.
https://bugs.webkit.org/show_bug.cgi?id=122947.

Reviewed by Michael Saboff.

* assembler/MacroAssemblerARM.cpp:
(JSC::MacroAssemblerARM::ProbeContext::dump):
* assembler/MacroAssemblerARM.h:
* assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssemblerARMv7::ProbeContext::dump):
* assembler/MacroAssemblerARMv7.h:
* assembler/MacroAssemblerX86Common.cpp:
(JSC::MacroAssemblerX86Common::ProbeContext::dump):
* assembler/MacroAssemblerX86Common.h:
* jit/JITStubsARM.h:
* jit/JITStubsARMv7.h:
* jit/JITStubsX86.h:
* jit/JITStubsX86Common.h:
* jit/JITStubsX86_64.h:

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

7 years agoMassage the Gtk build.
akling@apple.com [Thu, 17 Oct 2013 12:58:44 +0000 (12:58 +0000)]
Massage the Gtk build.

* WebCoreSupport/EditorClientGtk.cpp:
(WebKit::EditorClient::shouldApplyStyle):

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

7 years agoUse PassRef for constructing StylePropertySets.
akling@apple.com [Thu, 17 Oct 2013 12:38:45 +0000 (12:38 +0000)]
Use PassRef for constructing StylePropertySets.
<https://webkit.org/b/122948>

Make functions that construct StylePropertySets return PassRef
instead of PassRefPtr. Since they never return null, this gets rid
of the extra branch in ~PassRefPtr everywhere.

Also StyleRule* classes now hold a Ref<StylePropertySet>, codifying
the fact that they always have a property set.

Reviewed by Antti Koivisto.

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

7 years agoDataRef<T> should use Ref<T> internally.
akling@apple.com [Thu, 17 Oct 2013 12:15:36 +0000 (12:15 +0000)]
DataRef<T> should use Ref<T> internally.
<https://webkit.org/b/122953>

DataRef is used to hold RenderStyle substructures, and due to the
way style inheritance is implemented, DataRef will always point to
a live object.

Codify this by making DataRef::m_data a Ref, and making all methods
that create substructure objects return PassRef.

Reviewed by Antti Koivisto.

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

7 years ago[CSS Regions] Anonymous nested regions
mihnea@adobe.com [Thu, 17 Oct 2013 09:02:19 +0000 (09:02 +0000)]
[CSS Regions] Anonymous nested regions
https://bugs.webkit.org/show_bug.cgi?id=119135

Reviewed by David Hyatt.

Source/WebCore:

Tests: fast/regions/table-caption-as-region.html
       fast/regions/table-cell-as-region.html

This patch allows any non-replaced block to behave like a region. When an element is styled with the
-webkit-flow-from property, instead of making the renderer a RenderRegion, we let the original
renderer be created the same way and we add a region as an anonymous child for the renderer.
The anonymous block child, modeled by the new RenderNamedFlowFragment class, will be responsible
for the fragmentation of the named flow thread content.

A RenderBlockFlow object will keep a reference to a RenderNamedFlowFragment(RenderRegion) inside its
rare data structures.

Contains code contributed by Catalin Badea.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Element.cpp: Changed to take the anonymous region into account.
(WebCore::Element::renderRegion):
(WebCore::Element::webkitGetRegionFlowRanges):
* dom/WebKitNamedFlow.cpp: Ditto.
(WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
* inspector/InspectorOverlay.cpp: Take into account the new model for regions, with an anonymous region inside a block.
(WebCore::buildObjectForRegionHighlight):
(WebCore::buildObjectForElementInfo):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeShapeSize): For a render named flow fragment, there is no need to recompute the shape inside
we can take it from the parent.
(WebCore::RenderBlock::renderName): Make the block that contains a render named flow fragment (region) report RenderRegion.
A future patch that will change this will need to rebase a lot of tests.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::insertedIntoTree): Create the anonymous region if needed (change of -webkit-flow-from determines Node reattach).
(WebCore::RenderBlockFlow::willBeDestroyed): Clean-up the anonymous region if necessary.
(WebCore::RenderBlockFlow::clearFloats): Small style change to make sure that check-webkit-style reports 0 failures on RenderBlockFlow.cpp.
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::styleDidChange): Update the style of the anonymous region too.
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded): Helper function to create the anonymous region
and to add it as a child to the block.
(WebCore::RenderBlockFlow::canHaveChildren):
(WebCore::RenderBlockFlow::canHaveGeneratedChildren):
(WebCore::RenderBlockFlow::namedFlowFragmentNeedsUpdate): Force a layout of the anonymous region if the
parent block has percentage height (similar to RenderBlock::updateBlockChildDirtyBitsBeforeLayout)
(WebCore::RenderBlockFlow::updateLogicalHeight): Update the logical height of anonymous region when the height of parent is updated.
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
(WebCore::RenderBlockFlow::renderNamedFlowFragment):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor): Remove the direct creation of RenderRegion objects since they will be
created as anonymous children of block flow objects.
* rendering/RenderElement.h:
(WebCore::RenderElement::generatingElement): Account for anonymous region if necessary.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent): Take anonymous region into account
and use the anonymous region parent offset/border.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly): Check for style instead of isRenderRegion since
the parent of the anonymous region will get the layer.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::insertedIntoTree): Call RenderBlockFlow method instead.
* rendering/RenderNamedFlowFragment.cpp: Added. Model the behaviour of the anonymous region.
Has RenderRegion as a base class.
(WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::~RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::setStyleForNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::styleDidChange):
(WebCore::RenderNamedFlowFragment::shouldHaveAutoLogicalHeight):
(WebCore::RenderNamedFlowFragment::maxPageLogicalHeight):
* rendering/RenderNamedFlowFragment.h: Added.
(WebCore::RenderNamedFlowFragment::isPseudoElementRegion):
(WebCore::RenderNamedFlowFragment::renderName):
(WebCore::toRenderNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isRenderNamedFlowFragmentContainer):
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderNamedFlowFragment):
* rendering/RenderRegion.h:
* rendering/RenderTableCaption.cpp: Call RenderBlockFlow method instead.
(WebCore::RenderTableCaption::insertedIntoTree):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::writeRenderRegionList):
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::shapeSize):
* style/StyleResolveTree.cpp:
(WebCore::Style::elementInsideRegionNeedsRenderer):

LayoutTests:

Add new tests for making a table-cell and a table-caption a region.
Change expected results for repaint tests of fixed elements since the parent of the region gets layer.

* fast/regions/element-in-named-flow-absolute-from-fixed-expected.txt:
* fast/regions/element-in-named-flow-fixed-from-absolute-expected.txt:
* fast/regions/element-inflow-fixed-from-outflow-static-expected.txt:
* fast/regions/element-outflow-static-from-inflow-fixed-expected.txt:
* fast/regions/table-caption-as-region-expected.html: Added.
* fast/regions/table-caption-as-region.html: Added.
* fast/regions/table-cell-as-region-expected.html: Added.
* fast/regions/table-cell-as-region.html: Added.

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

7 years agoFix build when NUMBER_OF_ARGUMENT_REGISTERS == 4.
commit-queue@webkit.org [Thu, 17 Oct 2013 08:53:08 +0000 (08:53 +0000)]
Fix build when NUMBER_OF_ARGUMENT_REGISTERS == 4.
https://bugs.webkit.org/show_bug.cgi?id=122949

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-17
Reviewed by Andreas Kling.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):

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

7 years agoUnreviewed. Add myself as a reviewer.
mihnea@adobe.com [Thu, 17 Oct 2013 08:48:02 +0000 (08:48 +0000)]
Unreviewed. Add myself as a reviewer.

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

7 years ago[EFL] Properly expose tables in accessibility
commit-queue@webkit.org [Thu, 17 Oct 2013 08:06:33 +0000 (08:06 +0000)]
[EFL] Properly expose tables in accessibility
https://bugs.webkit.org/show_bug.cgi?id=122894

Patch by Krzysztof Czech <k.czech@samsung.com> on 2013-10-17
Reviewed by Chris Fleizach.

Source/WebCore:

All tables should exposed as tables.

* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
(WebCore::AccessibilityTable::addChildren):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored):

LayoutTests:

Added new accessibility expectations after r153432.

* platform/efl-wk2/TestExpectations:
* platform/efl-wk2/accessibility/table-detection-expected.txt: Added.
* platform/efl-wk2/accessibility/table-one-cell-expected.txt: Added.
* platform/efl-wk2/accessibility/table-with-rules-expected.txt: Added.
* platform/efl/accessibility/table-detection-expected.txt: Added.
* platform/efl/accessibility/table-one-cell-expected.txt: Added.
* platform/efl/accessibility/table-with-rules-expected.txt: Added.

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

7 years agoMake it possible to assign a PassRef to a RefPtr.
akling@apple.com [Thu, 17 Oct 2013 07:55:09 +0000 (07:55 +0000)]
Make it possible to assign a PassRef to a RefPtr.
<https://webkit.org/b/122943>

Source/WTF:

We have to use std::move when constructing a RefPtr from a PassRef
since there is no copy constructor for the latter.

Reviewed by Antti Koivisto.

Tools:

Added a small API test for RefPtr=(PassRef) so we know this code
will compile (and work.)

Reviewed by Antti Koivisto.

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

7 years ago[CMAKE] Update code to take advantage of CMake version 2.8.3+.
commit-queue@webkit.org [Thu, 17 Oct 2013 07:46:22 +0000 (07:46 +0000)]
[CMAKE] Update code to take advantage of CMake version 2.8.3+.
https://bugs.webkit.org/show_bug.cgi?id=97516

Patch by Afonso R. Costa Jr. <afonso.costa@samsung.com> on 2013-10-17
Reviewed by Gyuyoung Kim.

CMake's version was changed to 2.8.3. So, these files below
can be simplified to take advantage of CMake's new version.

* Source/cmake/FindCairo.cmake: Simplified according to CMake 2.8.3+.
* Source/cmake/FindGStreamer.cmake: Ditto.

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

7 years ago<rdar://problem/15183901> WebKit2 XPC services load the wrong frameworks when running
mrowe@apple.com [Thu, 17 Oct 2013 07:28:37 +0000 (07:28 +0000)]
<rdar://problem/15183901> WebKit2 XPC services load the wrong frameworks when running
from the staged frameworks location.

Build the XPC services with DYLD_VERSIONED_FRAMEWORK_PATH when USE_STAGING_INSTALL_PATH
is set to YES. This is necessary because there's no way to specify environment variables
to be used when an XPC service is launched.

Reviewed by Anders Carlsson.

* Configurations/BaseTarget.xcconfig: Set OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH to contain the
DYLD_VERSIONED_FRAMEWORK_PATH value when USE_STAGING_INSTALL_PATH is YES.
* Configurations/BaseXPCService.xcconfig: Include OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH in the
value of OTHER_LDFLAGS.
* Configurations/PluginService.32.xcconfig: Ditto.
* Configurations/PluginService.64.xcconfig: Ditto.

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

7 years ago[GStreamer] Too many arguments for format in WebKitWebAudioSourceGStreamer.cpp
commit-queue@webkit.org [Thu, 17 Oct 2013 07:22:00 +0000 (07:22 +0000)]
[GStreamer] Too many arguments for format in WebKitWebAudioSourceGStreamer.cpp
https://bugs.webkit.org/show_bug.cgi?id=122932

Patch by Brendan Long <b.long@cablelabs.com> on 2013-10-17
Reviewed by Philippe Normand.

No new tests because this just fixes a build warning.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop): Add another %s for the second part of the pad name.

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

7 years agoTransition remaining op_get* JITStubs to JIT operations.
mark.lam@apple.com [Thu, 17 Oct 2013 07:20:20 +0000 (07:20 +0000)]
Transition remaining op_get* JITStubs to JIT operations.
https://bugs.webkit.org/show_bug.cgi?id=122925.

Reviewed by Geoffrey Garen.

Transitioning:
    cti_op_get_by_id_generic
    cti_op_get_by_val
    cti_op_get_by_val_generic
    cti_op_get_by_val_string

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_get_arguments_length):
(JSC::JIT::emitSlow_op_get_argument_by_val):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_get_arguments_length):
(JSC::JIT::emitSlow_op_get_argument_by_val):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_pname):
(JSC::JIT::privateCompileGetByVal):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_pname):
* jit/JITStubs.cpp:
* jit/JITStubs.h:
* runtime/Executable.cpp:
(JSC::setupLLInt): Added some UNUSED_PARAMs to fix the no LLINT build.
* runtime/Options.cpp:
(JSC::Options::initialize):

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

7 years agolibllvmForJSC shouldn't call exit(1) on report_fatal_error()
fpizlo@apple.com [Thu, 17 Oct 2013 03:47:27 +0000 (03:47 +0000)]
libllvmForJSC shouldn't call exit(1) on report_fatal_error()
https://bugs.webkit.org/show_bug.cgi?id=122905
<rdar://problem/15237856>

Source/JavaScriptCore:

Reviewed by Michael Saboff.

Expose the new LLVMInstallFatalErrorHandler() API through the soft linking magic and
then always call it to install something that calls CRASH().

* llvm/InitializeLLVM.cpp:
(JSC::llvmCrash):
(JSC::initializeLLVMOnce):
(JSC::initializeLLVM):
* llvm/LLVMAPIFunctions.h:

WebKitLibraries:

Reviewed by Michael Saboff.

* LLVMIncludesMountainLion.tar.bz2:
* LLVMLibrariesMountainLion.tar.bz2:

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

7 years agoWe need test coverage for just the Baseline JIT
fpizlo@apple.com [Thu, 17 Oct 2013 03:36:40 +0000 (03:36 +0000)]
We need test coverage for just the Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=122929

Reviewed by Sam Weinig.

Adds no-LLInt versions of all tests. For the Mozilla tests, also add a BaselineJIT-only
variant.

* Scripts/run-jsc-stress-tests:

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

7 years agoPrototype chain repatching in the polymorphic case fails to check if the receiver...
fpizlo@apple.com [Thu, 17 Oct 2013 03:29:38 +0000 (03:29 +0000)]
Prototype chain repatching in the polymorphic case fails to check if the receiver is a dictionary
https://bugs.webkit.org/show_bug.cgi?id=122938

Reviewed by Sam Weinig.

This fixes jsc-layout-tests.yaml/js/script-tests/dictionary-prototype-caching.js.layout-no-llint.

* jit/Repatch.cpp:
(JSC::tryBuildGetByIDList):

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

7 years agoAdd a new flakiness dashboard clone
rniwa@webkit.org [Thu, 17 Oct 2013 03:10:47 +0000 (03:10 +0000)]
Add a new flakiness dashboard clone
https://bugs.webkit.org/show_bug.cgi?id=122936

Reviewed by Anders Carlsson.

Added the initial prototype.

* Websites/test-results: Added.
* Websites/test-results/.htaccess: Added.
* Websites/test-results/admin: Added.
* Websites/test-results/admin/index.php: Added.
* Websites/test-results/api: Added.
* Websites/test-results/api/manifest.php: Added.
* Websites/test-results/api/report.php: Added.
* Websites/test-results/api/results.php: Added.
* Websites/test-results/include: Added.
* Websites/test-results/include/config.json: Added.
* Websites/test-results/include/db.php: Added.
* Websites/test-results/include/init-database.sql: Added.
* Websites/test-results/include/json-shared.php: Added.
* Websites/test-results/include/test-results.php: Added.
* Websites/test-results/index.html: Added.
* Websites/test-results/js: Added.
* Websites/test-results/js/autocompleter.js: Added.
* Websites/test-results/js/build.js: Added.
* Websites/test-results/js/dom.js: Added.

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

7 years agoJIT::appendCall() needs to killLastResultRegister() or equivalent since there's some...
fpizlo@apple.com [Thu, 17 Oct 2013 03:01:49 +0000 (03:01 +0000)]
JIT::appendCall() needs to killLastResultRegister() or equivalent since there's some really bad code that expects it
https://bugs.webkit.org/show_bug.cgi?id=122937

Reviewed by Geoffrey Garen.

JITStubCall used to do it.

This makes mozilla-tests.yaml/ecma/Statements/12.10-1.js.mozilla-baseline pass.

* jit/JIT.h:
(JSC::JIT::appendCall):

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

7 years agoSupport multiple repositories in submitting results to --results-server-host
rniwa@webkit.org [Thu, 17 Oct 2013 02:36:48 +0000 (02:36 +0000)]
Support multiple repositories in submitting results to --results-server-host
https://bugs.webkit.org/show_bug.cgi?id=122935

Reviewed by Anders Carlsson.

Remoevd --got-revision and added the logic to extract revision information
from multiple repositories as done in run-perf-tests.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.upload_results):
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):

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

7 years agoUnreviewed EFL gardening. Rebaselining after r155607.
jinwoo7.song@samsung.com [Thu, 17 Oct 2013 02:12:39 +0000 (02:12 +0000)]
Unreviewed EFL gardening. Rebaselining after r155607.

* platform/efl-wk2/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: Added.
* platform/efl-wk2/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt: Added.

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

7 years agoAttempt to fix the Windows build after http://trac.webkit.org/changeset/157547.
timothy_horton@apple.com [Thu, 17 Oct 2013 02:04:26 +0000 (02:04 +0000)]
Attempt to fix the Windows build after trac.webkit.org/changeset/157547.

Apparently some *more* Windows code uses setFrame and I missed it.

* FullscreenVideoController.cpp:
(FullscreenVideoController::LayerClient::platformCALayerLayoutSublayersOfLayer):

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

7 years agoAttempt to fix the Windows build after http://trac.webkit.org/changeset/157547.
timothy_horton@apple.com [Thu, 17 Oct 2013 01:58:53 +0000 (01:58 +0000)]
Attempt to fix the Windows build after trac.webkit.org/changeset/157547.

The relevant conversion doesn't happen implicitly.

* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):

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

7 years agoUnreviewed EFL gardening. Rebaselining after r156527.
jinwoo7.song@samsung.com [Thu, 17 Oct 2013 01:54:45 +0000 (01:54 +0000)]
Unreviewed EFL gardening. Rebaselining after r156527.

* platform/efl/compositing/contents-opaque/hidden-with-visible-text-expected.txt:
* platform/efl/svg/text/append-text-node-to-tspan-expected.txt:

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

7 years agoAttempt to fix the Windows build after http://trac.webkit.org/changeset/157547.
timothy_horton@apple.com [Thu, 17 Oct 2013 01:53:39 +0000 (01:53 +0000)]
Attempt to fix the Windows build after trac.webkit.org/changeset/157547.

Apparently some Windows code uses setFrame and I missed it.

* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):

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

7 years agoRemote Layer Tree: Complete support for simple layer properties
timothy_horton@apple.com [Thu, 17 Oct 2013 01:46:32 +0000 (01:46 +0000)]
Remote Layer Tree: Complete support for simple layer properties
https://bugs.webkit.org/show_bug.cgi?id=122933

Reviewed by Anders Carlsson.

Add remote layer tree support for maskLayer, contentsRect, contentsScale,
minificationFilter, magnificationFilter, speed, and timeOffset.

No new tests, not yet testable.

* Shared/mac/RemoteLayerTreeTransaction.h:
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpProperty):
(WebKit::dumpChangedLayers):
Add the new properties.

* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::toCAFilterType):
(WebKit::RemoteLayerTreeHost::commit):
Apply the new properties.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::setSublayers):
(PlatformCALayerRemote::appendSublayer):
(PlatformCALayerRemote::insertSublayer):
Ensure that passed-in sublayers are always also PlatformCALayerRemote instances.
These are ASSERT_WITH_SECURITY_IMPLICATION as we will later unconditionally static_cast
them to PlatformCALayerRemote.

(PlatformCALayerRemote::setMask):
(PlatformCALayerRemote::setContentsRect):
(PlatformCALayerRemote::setMinificationFilter):
(PlatformCALayerRemote::setMagnificationFilter):
(PlatformCALayerRemote::setSpeed):
(PlatformCALayerRemote::setTimeOffset):
(PlatformCALayerRemote::contentsScale):
(PlatformCALayerRemote::setContentsScale):
Remove setFrame, store the new properties.

* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
Remove setFrame, add isRemote, fix pointer side on playerLayer.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setName):
Don't dump the CALayer pointer if we own a PlatformCALayerRemote.

(WebCore::GraphicsLayerCA::recursiveCommitChanges):
Fix the visible tile wash (my fault!), and make it use setPosition and
setBounds instead of setFrame; while more convenient, it is the only
caller of setFrame, so we'll remove it.

* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::isRemote): Added.

* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(nullActionsDictionary):
(toCAFilterType):
(PlatformCALayerMac::synchronouslyDisplayTilesInRect):
(PlatformCALayerMac::playerLayer):
Remove setFrame, fix some pointer sides.

* platform/graphics/ca/win/PlatformCALayerWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWin.h:
Remove setFrame.

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

7 years agotransition void cti_op_put_by_val* stubs to JIT operations
msaboff@apple.com [Thu, 17 Oct 2013 01:23:56 +0000 (01:23 +0000)]
transition void cti_op_put_by_val* stubs to JIT operations
https://bugs.webkit.org/show_bug.cgi?id=122903

Reviewed by Geoffrey Garen.

Transitioned cti_op_put_by_val and cti_op_put_by_val_generic to operationPutByVal and
operationPutByValGeneric.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsWithExecState):
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::privateCompilePutByVal):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_put_by_val):
* jit/JITStubs.cpp:
* jit/JITStubs.h:
* jit/JSInterfaceJIT.h:

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

7 years agoSource/JavaScriptCore: Implement ES6 spread operator
oliver@apple.com [Thu, 17 Oct 2013 01:02:34 +0000 (01:02 +0000)]
Source/JavaScriptCore: Implement ES6 spread operator
https://bugs.webkit.org/show_bug.cgi?id=122911

Reviewed by Michael Saboff.

Implement the ES6 spread operator

This has a little bit of refactoring to move the enumeration logic out ForOfNode
and into BytecodeGenerator, and then adds the logic to make it nicely callback
driven.

The rest of the logic is just the addition of the SpreadExpressionNode, the parsing,
and actually handling the spread.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewArray):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitEnumeration):
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::ArrayNode::emitBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::SpreadExpressionNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createSpreadExpression):
* parser/Lexer.cpp:
(JSC::::lex):
* parser/NodeConstructors.h:
(JSC::SpreadExpressionNode::SpreadExpressionNode):
* parser/Nodes.h:
(JSC::ExpressionNode::isSpreadExpression):
(JSC::SpreadExpressionNode::expression):
* parser/Parser.cpp:
(JSC::::parseArrayLiteral):
(JSC::::parseArguments):
(JSC::::parseMemberExpression):
* parser/Parser.h:
(JSC::Parser::getTokenName):
(JSC::Parser::updateErrorMessageSpecialCase):
* parser/ParserTokens.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createSpreadExpression):

LayoutTests: Implement spread
https://bugs.webkit.org/show_bug.cgi?id=122911

Reviewed by Michael Saboff.

Add testcases

* js/basic-spread-expected.txt: Added.
* js/basic-spread.html: Added.
* js/parser-syntax-check-expected.txt:
* js/script-tests/basic-spread.js: Added.
(f):
(o.f.o.f.o.f.o.f.h.eval.o.h.o.h.o.h.o.h.g):
* js/script-tests/parser-syntax-check.js:

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

7 years agoUnreviewed build fix attempt on EFL port after r157520 and r157523
ryuan.choi@samsung.com [Thu, 17 Oct 2013 00:25:58 +0000 (00:25 +0000)]
Unreviewed build fix attempt on EFL port after r157520 and r157523

Source/WebKit2:

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
Removed ArgumentCoder<TransformationMatrix> which caused redefinition build error
in EFL port.

Source/WTF:

* wtf/PassRef.h: includes <utility>

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

7 years agoAdd a useLLInt option to jsc
fpizlo@apple.com [Thu, 17 Oct 2013 00:15:59 +0000 (00:15 +0000)]
Add a useLLInt option to jsc
https://bugs.webkit.org/show_bug.cgi?id=122930

Reviewed by Geoffrey Garen.

* runtime/Executable.cpp:
(JSC::setupLLInt):
(JSC::setupJIT):
(JSC::ScriptExecutable::prepareForExecutionImpl):
* runtime/Options.h:

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

7 years agoBuild fix.
mhahnenberg@apple.com [Wed, 16 Oct 2013 23:57:02 +0000 (23:57 +0000)]
Build fix.

Forgot to svn add DeferGC.cpp

* heap/DeferGC.cpp: Added.

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

7 years agor157411 fails run-javascriptcore-tests when run with Baseline JIT
fpizlo@apple.com [Wed, 16 Oct 2013 23:49:53 +0000 (23:49 +0000)]
r157411 fails run-javascriptcore-tests when run with Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=122902

Reviewed by Mark Hahnenberg.

It turns out that this was a long-standing bug in the DFG PutById repatching logic. It's
not legal to patch if the typeInfo tells you that you can't patch. The old JIT's patching
logic did this right, and the DFG's GetById patching logic did it right; but DFG PutById
didn't. Turns out that there's even a helpful method,
Structure::propertyAccessesAreCacheable(), that will even do all of the checks for you!

* jit/Repatch.cpp:
(JSC::tryCachePutByID):

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

7 years agoPublish SunSpider 1.0.2
ggaren@apple.com [Wed, 16 Oct 2013 23:48:00 +0000 (23:48 +0000)]
Publish SunSpider 1.0.2
https://bugs.webkit.org/show_bug.cgi?id=122923

Reviewed by Darin Adler.

* perf/sunspider/sunspider.html:
* perf/sunspider/versions.html:

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

7 years agollint_slow_path_put_by_id can deadlock on a ConcurrentJITLock
mhahnenberg@apple.com [Wed, 16 Oct 2013 23:47:45 +0000 (23:47 +0000)]
llint_slow_path_put_by_id can deadlock on a ConcurrentJITLock
https://bugs.webkit.org/show_bug.cgi?id=122667

Reviewed by Geoffrey Garen.

The issue this patch is attempting to fix is that there are places in our codebase
where we acquire the ConcurrentJITLock for a particular CodeBlock, then we do some
operations that can initiate a garbage collection. Garbage collection then calls
some methods of CodeBlock that also take the ConcurrentJITLock (because they don't
always necessarily run during garbage collection). This causes a deadlock.

To fix this issue, this patch adds a new RAII-style object (DisallowGC) that stores
into a thread-local field that indicates that it is unsafe to perform any operation
that could trigger garbage collection on the current thread. In debug builds,
ConcurrentJITLocker contains one of these DisallowGC objects so that we can eagerly
detect deadlocks.

This patch also adds a new type of ConcurrentJITLocker, GCSafeConcurrentJITLocker,
which uses the DeferGC mechanism to prevent collections from occurring while the
lock is held.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* heap/DeferGC.h:
(JSC::DisallowGC::DisallowGC):
(JSC::DisallowGC::~DisallowGC):
(JSC::DisallowGC::isGCDisallowedOnCurrentThread):
(JSC::DisallowGC::initialize):
* jit/Repatch.cpp:
(JSC::repatchPutByID):
(JSC::buildPutByIdList):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase):
(JSC::ConcurrentJITLockerBase::~ConcurrentJITLockerBase):
(JSC::ConcurrentJITLockerBase::unlockEarly):
(JSC::GCSafeConcurrentJITLocker::GCSafeConcurrentJITLocker):
(JSC::GCSafeConcurrentJITLocker::~GCSafeConcurrentJITLocker):
(JSC::GCSafeConcurrentJITLocker::NoDefer::NoDefer):
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
* runtime/InitializeThreading.cpp:
(JSC::initializeThreadingOnce):
* runtime/JSCellInlines.h:
(JSC::allocateCell):
* runtime/JSSymbolTableObject.h:
(JSC::symbolTablePut):
* runtime/Structure.cpp: materializePropertyMapIfNecessary* now has a problem in that it
can start a garbage collection when the GCSafeConcurrentJITLocker goes out of scope, but
before the caller has a chance to use the newly created PropertyTable. The garbage collection
clears the PropertyTable, and then the caller uses it assuming it's valid. To avoid this,
we must DeferGC until the caller is done getting the newly materialized PropertyTable from
the Structure.
(JSC::Structure::materializePropertyMap):
(JSC::Structure::despecifyDictionaryFunction):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::isSealed):
(JSC::Structure::isFrozen):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::get):
(JSC::Structure::despecifyFunction):
(JSC::Structure::despecifyAllFunctions):
(JSC::Structure::putSpecificValue):
(JSC::Structure::createPropertyMap):
(JSC::Structure::getPropertyNamesFromStructure):
* runtime/Structure.h:
(JSC::Structure::materializePropertyMapIfNecessary):
(JSC::Structure::materializePropertyMapIfNecessaryForPinning):
* runtime/StructureInlines.h:
(JSC::Structure::get):
* runtime/SymbolTable.h:
(JSC::SymbolTable::find):
(JSC::SymbolTable::end):

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

7 years agoRemove Qt sandbox process code
andersca@apple.com [Wed, 16 Oct 2013 23:42:49 +0000 (23:42 +0000)]
Remove Qt sandbox process code
https://bugs.webkit.org/show_bug.cgi?id=122920

Reviewed by Geoffrey Garen.

This code was only used by the Qt port, and the other Linux-based ports are using the seccomp based sandbox.

* Shared/linux/SandboxProcess/SandboxEnvironmentLinux.cpp: Removed.
* Shared/linux/SandboxProcess/SandboxEnvironmentLinux.h: Removed.

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

7 years agoAdd SPI to disable the garbage collector timer
dbates@webkit.org [Wed, 16 Oct 2013 23:36:25 +0000 (23:36 +0000)]
Add SPI to disable the garbage collector timer
https://bugs.webkit.org/show_bug.cgi?id=122921

Reviewed by Geoffrey Garen.

Based on a patch by Mark Hahnenberg.

* API/JSBase.cpp:
(JSDisableGCTimer): Added; SPI function.
* API/JSBasePrivate.h:
* heap/BlockAllocator.cpp:
(JSC::createBlockFreeingThread): Added.
(JSC::BlockAllocator::BlockAllocator): Modified to use JSC::createBlockFreeingThread()
to conditionally create the "block freeing" thread depending on the value of
GCActivityCallback::s_shouldCreateGCTimer.
(JSC::BlockAllocator::~BlockAllocator):
* heap/BlockAllocator.h:
(JSC::BlockAllocator::deallocate):
* heap/Heap.cpp:
(JSC::Heap::didAbandon):
(JSC::Heap::collect):
(JSC::Heap::didAllocate):
* heap/HeapTimer.cpp:
(JSC::HeapTimer::timerDidFire):
* runtime/GCActivityCallback.cpp:
* runtime/GCActivityCallback.h:
(JSC::DefaultGCActivityCallback::create): Only instantiate a DefaultGCActivityCallback object
when GCActivityCallback::s_shouldCreateGCTimer is true so as to prevent allocating a HeapTimer
object (since DefaultGCActivityCallback ultimately extends HeapTimer).

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

7 years agoUnreviewed, rolling out r157529.
commit-queue@webkit.org [Wed, 16 Oct 2013 22:33:05 +0000 (22:33 +0000)]
Unreviewed, rolling out r157529.
http://trac.webkit.org/changeset/157529
https://bugs.webkit.org/show_bug.cgi?id=122919

Caused score test failures and some build failures. (Requested
by rfong on #webkit).

Source/JavaScriptCore:

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewArray):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::ArrayNode::emitBytecode):
(JSC::CallArguments::CallArguments):
(JSC::ForOfNode::emitBytecode):
(JSC::BindingNode::collectBoundIdentifiers):
* parser/ASTBuilder.h:
* parser/Lexer.cpp:
(JSC::::lex):
* parser/NodeConstructors.h:
(JSC::DotAccessorNode::DotAccessorNode):
* parser/Nodes.h:
* parser/Parser.cpp:
(JSC::::parseArrayLiteral):
(JSC::::parseArguments):
(JSC::::parseMemberExpression):
* parser/Parser.h:
(JSC::Parser::getTokenName):
(JSC::Parser::updateErrorMessageSpecialCase):
* parser/ParserTokens.h:
* parser/SyntaxChecker.h:

LayoutTests:

* js/basic-spread-expected.txt: Removed.
* js/basic-spread.html: Removed.
* js/parser-syntax-check-expected.txt:
* js/script-tests/basic-spread.js: Removed.
* js/script-tests/parser-syntax-check.js:

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

7 years agoTake RenderObjects out of the arena.
akling@apple.com [Wed, 16 Oct 2013 22:28:24 +0000 (22:28 +0000)]
Take RenderObjects out of the arena.
<https://webkit.org/b/122895>

Reviewed by Antti Koivisto.

Stop arena-allocating renderers so we can move forward on improving
render tree memory management. This will also allow rendering code
to take advantage of malloc optimizations.

Line boxes and BiDi runs remain in the arena for now.

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

7 years agoA page should exit fullscreen mode if it opens a new popup
jochen@chromium.org [Wed, 16 Oct 2013 22:20:13 +0000 (22:20 +0000)]
A page should exit fullscreen mode if it opens a new popup
https://bugs.webkit.org/show_bug.cgi?id=122865

Reviewed by Jer Noble.

Source/WebKit/blackberry:

If a fullscreen page opens a popup, the popup would be hidden and
therefore invisible to the user. To avoid this, exit fullscreen mode
before opening a new window.

* WebCoreSupport/ChromeClientBlackBerry.cpp:
(WebCore::ChromeClientBlackBerry::createWindow):

Source/WebKit/efl:

If a fullscreen page opens a popup, the popup would be hidden and
therefore invisible to the user. To avoid this, exit fullscreen mode
before opening a new window.

* WebCoreSupport/ChromeClientEfl.cpp:
(WebCore::ChromeClientEfl::createWindow):

Source/WebKit/gtk:

If a fullscreen page opens a popup, the popup would be hidden and
therefore invisible to the user. To avoid this, exit fullscreen mode
before opening a new window.

* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::createWindow):

Source/WebKit/mac:

If a fullscreen page opens a popup, the popup would be hidden and
therefore invisible to the user. To avoid this, exit fullscreen mode
before opening a new window.

* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::createWindow):

Source/WebKit/win:

If a fullscreen page opens a popup, the popup would be hidden and
therefore invisible to the user. To avoid this, exit fullscreen mode
before opening a new window.

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::createWindow):

Source/WebKit2:

If a fullscreen page opens a popup, the popup would be hidden and
therefore invisible to the user. To avoid this, exit fullscreen mode
before opening a new window.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):

LayoutTests:

* fullscreen/full-screen-exit-when-popup-expected.txt: Added.
* fullscreen/full-screen-exit-when-popup.html: Added.

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

7 years ago[Windows] Speculative fix for test, media/video-canvas-drawing-output.html.
roger_fong@apple.com [Wed, 16 Oct 2013 22:17:24 +0000 (22:17 +0000)]
[Windows] Speculative fix for test, media/video-canvas-drawing-output.html.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::createImageForTimeInRect):

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

7 years agoRemove useless architecture specific implementation in DFG.
commit-queue@webkit.org [Wed, 16 Oct 2013 22:10:23 +0000 (22:10 +0000)]
Remove useless architecture specific implementation in DFG.
https://bugs.webkit.org/show_bug.cgi?id=122917.

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-16
Reviewed by Michael Saboff.

With CPU(ARM) && CPU(ARM_HARDFP) architecture, the fallback implementation is fine
as FPRInfo::argumentFPR0 == FPRInfo::returnValueFPR in this case.

* dfg/DFGSpeculativeJIT.h:

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

7 years agoBlind attempt to fix non-DATABASE_PROCESS builds.
beidson@apple.com [Wed, 16 Oct 2013 22:02:11 +0000 (22:02 +0000)]
Blind attempt to fix non-DATABASE_PROCESS builds.

* WebProcess/WebProcess.cpp:

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

7 years agoRemove unused JIT::restoreArgumentReferenceForTrampoline function.
commit-queue@webkit.org [Wed, 16 Oct 2013 21:37:50 +0000 (21:37 +0000)]
Remove unused JIT::restoreArgumentReferenceForTrampoline function.
https://bugs.webkit.org/show_bug.cgi?id=122916.

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-10-16
Reviewed by Michael Saboff.

This architecture specific function is not used anymore, so get rid of it.

* jit/JIT.h:
* jit/JITInlines.h:

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

7 years agoSource/JavaScriptCore: Implement ES6 spread operator
oliver@apple.com [Wed, 16 Oct 2013 21:27:31 +0000 (21:27 +0000)]
Source/JavaScriptCore: Implement ES6 spread operator
https://bugs.webkit.org/show_bug.cgi?id=122911

Reviewed by Michael Saboff.

Implement the ES6 spread operator

This has a little bit of refactoring to move the enumeration logic out ForOfNode
and into BytecodeGenerator, and then adds the logic to make it nicely callback
driven.

The rest of the logic is just the addition of the SpreadExpressionNode, the parsing,
and actually handling the spread.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewArray):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitEnumeration):
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::ArrayNode::emitBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::SpreadExpressionNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createSpreadExpression):
* parser/Lexer.cpp:
(JSC::::lex):
* parser/NodeConstructors.h:
(JSC::SpreadExpressionNode::SpreadExpressionNode):
* parser/Nodes.h:
(JSC::ExpressionNode::isSpreadExpression):
(JSC::SpreadExpressionNode::expression):
* parser/Parser.cpp:
(JSC::::parseArrayLiteral):
(JSC::::parseArguments):
(JSC::::parseMemberExpression):
* parser/Parser.h:
(JSC::Parser::getTokenName):
(JSC::Parser::updateErrorMessageSpecialCase):
* parser/ParserTokens.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createSpreadExpression):

LayoutTests: Implement spread
https://bugs.webkit.org/show_bug.cgi?id=122911

Reviewed by Michael Saboff.

Add testcases

* js/basic-spread-expected.txt: Added.
* js/basic-spread.html: Added.
* js/parser-syntax-check-expected.txt:
* js/script-tests/basic-spread.js: Added.
(f):
(o.f.o.f.o.f.o.f.h.eval.o.h.o.h.o.h.o.h.g):
* js/script-tests/parser-syntax-check.js:

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

7 years agoPlatformCALayer constructor should take layer type as an argument
timothy_horton@apple.com [Wed, 16 Oct 2013 21:20:14 +0000 (21:20 +0000)]
PlatformCALayer constructor should take layer type as an argument
https://bugs.webkit.org/show_bug.cgi?id=122915

Reviewed by Simon Fraser.

No new tests, just a minor refactoring.

* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::PlatformCALayer):
Add a LayerType argument.

* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::PlatformCALayerWin):
Use the new LayerType argument, and early-return in the case where we
are wrapping a custom PlatformLayer.
Drive-by un-indent the switch in the Mac version.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::PlatformCALayerRemote):
Use the new LayerType argument.

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

7 years agoRemote Layer Tree: Use a default instead of an environment variable
timothy_horton@apple.com [Wed, 16 Oct 2013 21:19:29 +0000 (21:19 +0000)]
Remote Layer Tree: Use a default instead of an environment variable
https://bugs.webkit.org/show_bug.cgi?id=122913

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKView.mm:
(-[WKView std::WebKit::]):
Use the default 'WebKit2UseRemoteLayerTreeDrawingArea' instead of
the environment variable 'WK_USE_REMOTE_LAYER_TREE_DRAWING_AREA'
to indicate that WKViews should make RemoteLayerTreeDrawingAreas.

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

7 years agoVersioning.
lforschler@apple.com [Wed, 16 Oct 2013 20:47:07 +0000 (20:47 +0000)]
Versioning.

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

7 years agoFlesh out the DatabaseProcess (and launch it!)
beidson@apple.com [Wed, 16 Oct 2013 19:27:40 +0000 (19:27 +0000)]
Flesh out the DatabaseProcess (and launch it!)
https://bugs.webkit.org/show_bug.cgi?id=122884

Reviewed by Tim Horton.

Source/WebCore:

* English.lproj/Localizable.strings: Add a localizable string.
* WebCore.xcodeproj/project.pbxproj: Export some more headers.

Source/WebKit2:

This patch adds actual process launching and basic messaging infrastructure for the DatabaseProcess.

It still does very little except exist.

Project file stuff:
* WebKit2.xcodeproj/project.pbxproj:
* DerivedSources.make:

WebContext owns the DatabaseProcess (much like the NetworkProcess):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureDatabaseProcess):
(WebKit::WebContext::getDatabaseProcessConnection):
* UIProcess/WebContext.h:

Add a basic DatabaseProcess that - for now - can only return a new Connection for a WebProcess:
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::createDatabaseToWebProcessConnection):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in: Added.

Add an object to represent a single connection to a single WebProcess:
* DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::create):
(WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection):
(WebKit::DatabaseToWebProcessConnection::~DatabaseToWebProcessConnection):
(WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
(WebKit::DatabaseToWebProcessConnection::didClose):
(WebKit::DatabaseToWebProcessConnection::didReceiveInvalidMessage):
* DatabaseProcess/DatabaseToWebProcessConnection.h:

Basic DatabaseProcessProxy with the ability to ask the DatabaseProcess for a connection to hand back to a WebProcess:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::DatabaseProcessProxy):
(WebKit::DatabaseProcessProxy::getDatabaseProcessConnection):
(WebKit::DatabaseProcessProxy::didCreateDatabaseToWebProcessConnection):
(WebKit::DatabaseProcessProxy::didFinishLaunching):
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.messages.in: Added.

Add an object to represent a WebProcess’s connection to a DatabaseProcess:
* WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
(WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection):
(WebKit::WebToDatabaseProcessConnection::~WebToDatabaseProcessConnection):
(WebKit::WebToDatabaseProcessConnection::didReceiveMessage):
(WebKit::WebToDatabaseProcessConnection::didClose):
(WebKit::WebToDatabaseProcessConnection::didReceiveInvalidMessage):
* WebProcess/Databases/WebToDatabaseProcessConnection.h:
(WebKit::WebToDatabaseProcessConnection::create):
(WebKit::WebToDatabaseProcessConnection::connection):

Give WebProcess(Proxy) an accessor for a Web -> Database process connection:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::webToDatabaseProcessConnectionClosed):
(WebKit::WebProcess::webToDatabaseProcessConnection):
(WebKit::WebProcess::ensureWebToDatabaseProcessConnection):
* WebProcess/WebProcess.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getDatabaseProcessConnection):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:

* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::open): Access the database process connection to test that it works.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createIDBFactoryBackend): Keep non-DATABASE_PROCESS builds working.

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

7 years agoRemoteLayerTree: Add support for more layer properties and transform layers
timothy_horton@apple.com [Wed, 16 Oct 2013 19:04:03 +0000 (19:04 +0000)]
RemoteLayerTree: Add support for more layer properties and transform layers
https://bugs.webkit.org/show_bug.cgi?id=122906

Reviewed by Anders Carlsson.

Add support for name, border width, border color, opacity, transform, sublayer transform,
hidden, geometry flipped, double sided, masks to bounds, and opaque layer properties.

Factor layer creation out from layer changes, so that we can create layers of the correct
type. Use this mechanism to create CATransformLayers when handed a LayerTypeTransformLayer.

No new tests, this code is not yet testable.

* WebCore.exp.in:
Export some TextStream and TransformationMatrix stuff.

* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
* Shared/WebCoreArgumentCoders.h:
Add coders for TransformationMatrix.

* Shared/mac/RemoteLayerTreeTransaction.h:
Add the new LayerChange values.

(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
LayerProperties::layerChanges should be a LayerChange.

(WebKit::RemoteLayerTreeTransaction::createdLayers):
Expose the list of newly created layers (for RemoteLayerTreeHost's consumption).

* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
Add (and support coding) a new LayerCreationProperties struct, which is currently
just a pair of LayerID and PlatformCALayer::LayerType. Additional properties may follow.

(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
Encode and decode all of the new layer properties.
Encode changedProperties as an enum, not an unsigned.

(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
Encode and decode the list of newly created layers.

(WebKit::RemoteLayerTreeTransaction::setCreatedLayers):
Setter for the list of newly created layers, which comes from the
RemoteLayerTreeContext at commit time.

(WebKit::dumpProperty):
Helper function to dump TransformationMatrix instances.

(WebKit::dumpChangedLayers):
Dump all of the new layer properties.

(WebKit::RemoteLayerTreeTransaction::dump):
Dump the list of newly created layers.

* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::cgColorFromColor):
Factor out the code to make a CGColor from a WebCore::Color, as we need it
for both border and background color.

(WebKit::RemoteLayerTreeHost::commit):
Create layers before applying changes, using the new list of newly created layers.
When applying changes, ensure that the layer we're interested in was already created.
Rename "sublayer" to "layer", and use dot notation everywhere.
Apply all the new layer properties to the layers.

(WebKit::RemoteLayerTreeHost::getLayer):
(WebKit::RemoteLayerTreeHost::createLayer):
Separate creating a new layer from retrieving it by ID.
Ensure that a layer doesn't already exist when creating it.
Support creating CATransformLayers.

* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
Disable accelerated animations, as we don't support proxying animations yet.
This makes GraphicsLayer fall back to software animations, which already work wonderfully remotely.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::PlatformCALayerRemote):
Inform the RemoteLayerTreeContext of the creation of every PlatformCALayerRemote.

(PlatformCALayerRemote::removeFromSuperlayer):
(PlatformCALayerRemote::replaceSublayer):
(PlatformCALayerRemote::adoptSublayers):
Assert when we hit a few critical unimplemented methods that would
leave the layer tree in a broken state.

(PlatformCALayerRemote::isOpaque):
(PlatformCALayerRemote::setOpaque):
(PlatformCALayerRemote::transform):
(PlatformCALayerRemote::setTransform):
(PlatformCALayerRemote::sublayerTransform):
(PlatformCALayerRemote::setSublayerTransform):
(PlatformCALayerRemote::setHidden):
(PlatformCALayerRemote::setGeometryFlipped):
(PlatformCALayerRemote::isDoubleSided):
(PlatformCALayerRemote::setDoubleSided):
(PlatformCALayerRemote::masksToBounds):
(PlatformCALayerRemote::setMasksToBounds):
(PlatformCALayerRemote::setBorderWidth):
(PlatformCALayerRemote::setBorderColor):
(PlatformCALayerRemote::opacity):
(PlatformCALayerRemote::setOpacity):
(PlatformCALayerRemote::setName):
Proxy all of these properties via RemoteLayerTreeTransaction.

* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
Add storage for the list of newly created layers.
Use LayerID for the list of destroyed layers.

* WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::layerWasCreated):
Store the ID and type of the newly created layer to be pushed to the UI process later.

(WebKit::RemoteLayerTreeContext::flushLayers):
Push the created and destroyed layers to the transaction *after* flushing
GraphicsLayers, so that any changes to e.g. structural layers will not be missed.

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

7 years agoDuring editing, merge inline style with overriding other author styles
commit-queue@webkit.org [Wed, 16 Oct 2013 17:35:56 +0000 (17:35 +0000)]
During editing, merge inline style with overriding other author styles
https://bugs.webkit.org/show_bug.cgi?id=122874

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2013-10-16
Reviewed by Ryosuke Niwa.

Source/WebCore:

Inline styles need to override other author styles even on DoNotOverrideValues mode.
So, merge and override inline styles to other author styles before merging them to m_mutableStyle.

Test: editing/deleting/merge-div-with-inline-style.html

* editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):

LayoutTests:

Add a test for merging inline styles of parents.

* editing/deleting/merge-div-with-inline-style.html: Added.
* editing/deleting/merge-div-with-inline-style-expected.txt: Added.

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

7 years agoTransition void cti_op_tear_off* methods to JIT operations for 32 bit.
mark.lam@apple.com [Wed, 16 Oct 2013 17:26:56 +0000 (17:26 +0000)]
Transition void cti_op_tear_off* methods to JIT operations for 32 bit.
https://bugs.webkit.org/show_bug.cgi?id=122899.

Reviewed by Michael Saboff.

* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_tear_off_activation):
(JSC::JIT::emit_op_tear_off_arguments):
* jit/JITStubs.cpp:
* jit/JITStubs.h:

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

7 years agoAdd PassRef and createRefCounted so we can improve creation of RefCounted objects
darin@apple.com [Wed, 16 Oct 2013 17:18:05 +0000 (17:18 +0000)]
Add PassRef and createRefCounted so we can improve creation of RefCounted objects
https://bugs.webkit.org/show_bug.cgi?id=122904

Reviewed by Anders Carlsson.

Source/WTF:

* GNUmakefile.list.am: Added PassRef.h.
* WTF.vcxproj/WTF.vcxproj: Ditto.
* WTF.vcxproj/WTF.vcxproj.filters: Ditto.
* WTF.xcodeproj/project.pbxproj: Ditto.
* wtf/CMakeLists.txt: Ditto.

* wtf/Forward.h: Added PassRef. Also re-sorted and un-indented to match what
the style-checking script expects.

* wtf/PassRef.h: Added. Includes the createRefCounted function template, which
is analogous to make_unique, but is for reference counted objects, and also
assumes that new will never return null. Also includes an overload of adoptRef
that takes a reference rather than a pointer.

* wtf/PassRefPtr.h: Include "PassRef.h" so we can share the adopted function.
Got rid of declarations that duplicate ones in there.
(WTF::refIfNotNull): Use nullptr.
(WTF::derefIfNotNull): Use nullptr.
(WTF::PassRefPtr::PassRefPtr): Use nullptr. Added an overload that takes a PassRef.
(WTF::PassRefPtr::operator UnspecifiedBoolType): Use nullptr.
(WTF::PassRefPtr::operator=): Made this deleted instead of compile time assertion.
(WTF::PassRefPtr::PassRefPtr): Made adopting constructor use an adopt tag instead
of an unused boolean.
(WTF::PassRefPtr::leakRef): Use nullptr.
(WTF::adoptRef): Use the adopt tag.

* wtf/Ref.h: Use Noncopyable instead of rolling our own.
(WTF::Ref::Ref): Add an overload that takes a PassRef.
(WTF::Ref::operator=): Ditto.

* wtf/RefPtr.h: Removed unneeded forward declaration of PassRefPtr.
(WTF::RefPtr::RefPtr): Use nullptr. Added overload that takes a PassRef.
(WTF::RefPtr::release): Use nullptr.
(WTF::RefPtr::operator UnspecifiedBoolType): Use nullptr.
(WTF::RefPtr::operator=): Added overload that takes a PassRef.
(WTF::RefPtr::clear): Use nullptr.

* wtf/StdLibExtras.h: Added inline keyword to isPointerTypeAlignmentOkay,
reinterpret_cast_ptr, and make_unique. Seems like a simple oversight that these
were missing before.

Tools:

* TestWebKitAPI/Tests/WTF/Ref.cpp: Added some basic tests for adoptRef and PassRef.

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

7 years agoNeed tests for RefPtr self-assignment and self-move-assignment.
darin@apple.com [Wed, 16 Oct 2013 17:11:09 +0000 (17:11 +0000)]
Need tests for RefPtr self-assignment and self-move-assignment.

* TestWebKitAPI/Tests/WTF/RefPtr.cpp: Added tests.

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

7 years agoEmphasis marks has wrong color.
commit-queue@webkit.org [Wed, 16 Oct 2013 16:57:44 +0000 (16:57 +0000)]
Emphasis marks has wrong color.
https://bugs.webkit.org/show_bug.cgi?id=122829

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-10-16
Reviewed by Antti Koivisto.

Source/WebCore:

Tests: fast/text/text-emphasis.html.
       fast/text/text-emphasis-expected.html.

Emphasis color should be set as fill color, not stroke color.

* rendering/TextPaintStyle.cpp:
(WebCore::updateGraphicsContext):
* rendering/TextPaintStyle.h:

LayoutTests:

* fast/text/text-emphasis-expected.html: Added.
* fast/text/text-emphasis.html: Added.

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

7 years agoMove code for finding rendered character offset to RenderTextLineBoxes
antti@apple.com [Wed, 16 Oct 2013 14:33:31 +0000 (14:33 +0000)]
Move code for finding rendered character offset to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122892

Reviewed by Andreas Kling.

* rendering/RenderText.cpp:
(WebCore::RenderText::countRenderedCharacterOffsets):
(WebCore::RenderText::containsRenderedCharacterOffset):

    Renamed for consistency.

* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::countCharacterOffsets):

    This used to be Position::renderedPosition.

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

7 years agoRenderElement::removeChild() should take child as a reference.
akling@apple.com [Wed, 16 Oct 2013 12:40:09 +0000 (12:40 +0000)]
RenderElement::removeChild() should take child as a reference.
<https://webkit.org/b/122888>

We can't remove a child without a child to remove.

Reviewed by Antti Koivisto.

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

7 years agoMove test for contained caret offset to RenderTextLineBoxes
antti@apple.com [Wed, 16 Oct 2013 12:24:57 +0000 (12:24 +0000)]
Move test for contained caret offset to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122887

Reviewed by Andreas Kling.

* dom/Position.cpp:
(WebCore::Position::renderedOffset):
(WebCore::Position::isCandidate):

    Remove isRenderedText, call RenderText::containsCaretOffset instead.

(WebCore::Position::isRenderedCharacter):
(WebCore::Position::rendersInDifferentPosition):
* dom/Position.h:
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate):
* rendering/InlineTextBox.cpp:
* rendering/InlineTextBox.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::containsCharacterOffset):
(WebCore::RenderText::containsCaretOffset):
* rendering/RenderText.h:
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::containsOffset):

    Combined implementations of Position::isRenderedCharacter and Position::isRenderedText.

* rendering/RenderTextLineBoxes.h:

    Remove containsCaretOffset(), functionality is now in RenderTextLineBoxes::containsOffset.

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

7 years agoUnreviewed EFL gardening. Rebaselining after r155998.
jinwoo7.song@samsung.com [Wed, 16 Oct 2013 11:07:48 +0000 (11:07 +0000)]
Unreviewed EFL gardening. Rebaselining after r155998.

* platform/efl-wk2/compositing/contents-scale/animating-expected.txt: Added.
* platform/efl-wk2/compositing/contents-scale/scaled-ancestor-expected.txt: Added.
* platform/efl-wk2/compositing/contents-scale/simple-scale-expected.txt: Added.
* platform/efl-wk2/compositing/contents-scale/z-translate-expected.txt: Added.

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

7 years agoUnreviewed EFL gardening.
ryuan.choi@samsung.com [Wed, 16 Oct 2013 10:34:34 +0000 (10:34 +0000)]
Unreviewed EFL gardening.

Skip the IndexedDB tests for now as the feature is going through substantial
changes that don't ensure constant proper functionality.

* platform/efl-wk1/TestExpectations:
* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:

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

7 years agoRevert Windows-specific expectations shuffling from r157497.
akling@apple.com [Wed, 16 Oct 2013 10:29:34 +0000 (10:29 +0000)]
Revert Windows-specific expectations shuffling from r157497.
This wasn't wrong either. Shame on me. :|

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

7 years agoUnreviewed EFL gardening. Rebaselining after r155957.
jinwoo7.song@samsung.com [Wed, 16 Oct 2013 09:52:35 +0000 (09:52 +0000)]
Unreviewed EFL gardening. Rebaselining after r155957.

* platform/efl/css3/selectors3/html/css3-modsel-179a-expected.txt:
* platform/efl/css3/selectors3/xhtml/css3-modsel-179a-expected.txt:
* platform/efl/css3/selectors3/xml/css3-modsel-179a-expected.txt:
* platform/efl/fast/css/pseudo-first-line-border-width-expected.txt:
* platform/efl/fast/css/word-space-extra-expected.txt:
* platform/efl/fast/text/whitespace/pre-wrap-spaces-after-newline-expected.txt:

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

7 years agoRenderElement::isChildAllowed() should take const references.
akling@apple.com [Wed, 16 Oct 2013 09:34:35 +0000 (09:34 +0000)]
RenderElement::isChildAllowed() should take const references.
<https://webkit.org/b/122870>

Reviewed by Anders Carlsson.

The isChildAllowed() functions expect non-null values to be passed,
so enforce this at compile-time.

Reordered some checks to do bit tests before virtual calls.

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

7 years agoRevert Mac-specific expecations shuffling from r157498.
akling@apple.com [Wed, 16 Oct 2013 09:24:28 +0000 (09:24 +0000)]
Revert Mac-specific expecations shuffling from r157498.
Everything was already in order.

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

7 years ago[GStreamer] video info unset if upstream doesn't query allocation
philn@webkit.org [Wed, 16 Oct 2013 09:18:42 +0000 (09:18 +0000)]
[GStreamer] video info unset if upstream doesn't query allocation
https://bugs.webkit.org/show_bug.cgi?id=122834

Reviewed by Gustavo Noronha Silva.

* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRender): If the sink didn't process any allocation
query then use the configured source pad caps and don't rely on
invalid video info.

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

7 years ago[GStreamer] move Logging.h include to GStreamerUtilities.h
philn@webkit.org [Wed, 16 Oct 2013 09:15:43 +0000 (09:15 +0000)]
[GStreamer] move Logging.h include to GStreamerUtilities.h
https://bugs.webkit.org/show_bug.cgi?id=122886

Reviewed by Gustavo Noronha Silva.

Include Logging.h from GStreamerUtilities.h so the modules using
the LOG_MEDIA macros don't need to bother, especially for Debug builds.

* platform/graphics/gstreamer/GStreamerUtilities.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

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