WebKit-https.git
7 years agoWebProcessProxy::updateProcessState() is causing duplicate symbol linker errors
mmaxfield@apple.com [Wed, 26 Feb 2014 22:20:47 +0000 (22:20 +0000)]
WebProcessProxy::updateProcessState() is causing duplicate symbol linker errors
https://bugs.webkit.org/show_bug.cgi?id=129390

Reviewed by Tim Horton.

Caused by r164737. WebProcessProxy::updateProcessState() is defined in a header, outside of
a class, but isn't inlined.

* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::updateProcessState):

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

7 years agoUnreviewed. Moved myself to the list of committers.
lvidacs.u-szeged@partner.samsung.com [Wed, 26 Feb 2014 22:10:33 +0000 (22:10 +0000)]
Unreviewed. Moved myself to the list of committers.

* Scripts/webkitpy/common/config/contributors.json:

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

7 years agoRemove unused access types
oliver@apple.com [Wed, 26 Feb 2014 21:49:57 +0000 (21:49 +0000)]
Remove unused access types
https://bugs.webkit.org/show_bug.cgi?id=129385

Reviewed by Filip Pizlo.

Remove unused cruft.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printGetByIdCacheStatus):
* bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::deref):
* bytecode/StructureStubInfo.h:
(JSC::isGetByIdAccess):
(JSC::isPutByIdAccess):

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

7 years agoRoll out r164732 since it broke Production Mac builds.
mrowe@apple.com [Wed, 26 Feb 2014 21:44:36 +0000 (21:44 +0000)]
Roll out r164732 since it broke Production Mac builds.

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

7 years agoWeb Replay: route through UserInputBridge when delivering user inputs to WebCore
bburg@apple.com [Wed, 26 Feb 2014 21:41:30 +0000 (21:41 +0000)]
Web Replay: route through UserInputBridge when delivering user inputs to WebCore
https://bugs.webkit.org/show_bug.cgi?id=128150

Reviewed by Timothy Hatcher.

Source/WebCore:

Add an UserInputBridge instance to each Page. WebKit2 routes a page's user inputs through
the WebCore page's user input bridge so that the inputs can be selectively captured, filtered,
and replayed using instrumentation inside the UserInputBridge.

For now, the routing methods of UserInputBridge have no replay-specific code paths, and just
put the input delivery code inside WebCore rather than its external clients. Replay-specific
code paths will be added once https://bugs.webkit.org/show_bug.cgi?id=128782 is fixed. However,
once complete the code will work as follows:

- When neither capturing or replaying, behavior is unchanged.

- When capturing user inputs, each external input is saved into a replay log as it crosses
the bridge from outside WebCore.

- When replaying, the bridge closes and user inputs from WebKit2 are not accepted. Instead,
the saved inputs from the replay log are re-dispatched as if they had crossed the bridge.

* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.exp.in: Add symbols for input routing methods.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp:
(WebCore::Page::Page): Initialize the owned UserInputBridge in the Page constructor.
* page/Page.h:
(WebCore::Page::inputBridge): Added a by-reference getter.
* replay/UserInputBridge.cpp: Added.
(WebCore::UserInputBridge::UserInputBridge):
(WebCore::UserInputBridge::~UserInputBridge):
(WebCore::UserInputBridge::handleContextMenuEvent):
(WebCore::UserInputBridge::handleMousePressEvent):
(WebCore::UserInputBridge::handleMouseReleaseEvent):
(WebCore::UserInputBridge::handleMouseMoveEvent):
(WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
(WebCore::UserInputBridge::handleKeyEvent):
(WebCore::UserInputBridge::handleAccessKeyEvent):
(WebCore::UserInputBridge::handleWheelEvent):
(WebCore::UserInputBridge::focusSetActive):
(WebCore::UserInputBridge::focusSetFocused):
(WebCore::UserInputBridge::scrollRecursively):
(WebCore::UserInputBridge::logicalScrollRecursively):
(WebCore::UserInputBridge::loadRequest):
(WebCore::UserInputBridge::reloadFrame):
(WebCore::UserInputBridge::stopLoadingFrame):
(WebCore::UserInputBridge::tryClosePage):
* replay/UserInputBridge.h: Added.

Source/WebKit2:

When delivering user inputs to WebCore, route calls through the page's UserInputBridge.
This allows us to capture and replay user inputs from WebKit2 solely within WebCore.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::tryClose):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::stopLoadingFrame):
(WebKit::WebPage::stopLoading):
(WebKit::WebPage::reload):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::handleContextMenuEvent):
(WebKit::handleMouseEvent):
(WebKit::handleWheelEvent):
(WebKit::handleKeyEvent):
(WebKit::WebPage::scroll):
(WebKit::WebPage::logicalScroll):

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

7 years ago[WebGL] Protect more WebGL entry points for pending contexts
dino@apple.com [Wed, 26 Feb 2014 21:31:38 +0000 (21:31 +0000)]
[WebGL] Protect more WebGL entry points for pending contexts
https://bugs.webkit.org/show_bug.cgi?id=129386

Reviewed by Tim Horton.

There are entry points into a WebGLRenderingContext that don't
come from the web-exposed API directly, such as drawImage with
the WebGL canvas. Protect these by returning early if we're
a pending context.

Also a bunch of drive-by 0 -> nullptr changes.

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::markLayerComposited):
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContext::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContext::reshape):
(WebCore::WebGLRenderingContext::createBuffer):
(WebCore::WebGLRenderingContext::createFramebuffer):
(WebCore::WebGLRenderingContext::createTexture):
(WebCore::WebGLRenderingContext::createProgram):
(WebCore::WebGLRenderingContext::createRenderbuffer):
(WebCore::WebGLRenderingContext::createShader):
(WebCore::WebGLRenderingContext::getActiveAttrib):
(WebCore::WebGLRenderingContext::getActiveUniform):
(WebCore::WebGLRenderingContext::getContextAttributes):
(WebCore::WebGLRenderingContext::getError):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContext::getUniformLocation):
(WebCore::WebGLRenderingContext::drawImageIntoBuffer):
(WebCore::WebGLRenderingContext::videoFrameToImage):
(WebCore::WebGLRenderingContext::validateBufferDataParameters):
(WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):

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

7 years ago[CSS Shapes] inset and inset-rectangle trigger assert with replaced element and large...
bjonesbe@adobe.com [Wed, 26 Feb 2014 21:27:10 +0000 (21:27 +0000)]
[CSS Shapes] inset and inset-rectangle trigger assert with replaced element and large percentage dimension
https://bugs.webkit.org/show_bug.cgi?id=129060

Reviewed by Simon Fraser.

Source/WebCore:

A bounds check was omitted when computing the width and height for inset
rectangles, making it possible for the width or height to end up being
negative. This patch adds in that check for both. It seems that only
replaced elements like iframe and img trigger this problem.

Tests: fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash.html
       fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash.html

* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):

LayoutTests:

* fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash.html: Added.

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

7 years agoFastMalloc should use vm_page_shift intead of PAGE_SHIFT.
barraclough@apple.com [Wed, 26 Feb 2014 21:17:35 +0000 (21:17 +0000)]
FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
https://bugs.webkit.org/show_bug.cgi?id=129370

Reviewed by Mark Rowe.

"Doesn't this lead to the page map using fewer bits than it was before?
It seems like this will cause some page addresses to no longer be
representable in the map when using 4K pages. Am I missing something?"

* wtf/FastMalloc.cpp:
    - bdash raises a valid point. This should make the TCMalloc_PageMap
      larger than absolutely necessary, rather than potentially too small.

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

7 years agoUnderlines are too thick when zoomed in
mmaxfield@apple.com [Wed, 26 Feb 2014 21:13:03 +0000 (21:13 +0000)]
Underlines are too thick when zoomed in
https://bugs.webkit.org/show_bug.cgi?id=129352

Reviewed by Dean Jackson.

Source/WebCore:

The input to the underline drawing code is in user-space, not device-space.
The underlines were getting scaled twice, once in InlineTextBox and the other
in GraphicsContext.

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

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):

LayoutTests:

This test changes the page scale factor to a very large value, simulating
the user zooming in with a trackpad. It then positions the viewport
to a place where the underline should not be drawn. It then compares this
to a completely white page.

This explanation cannot be in the test itself because the test sets the
scale factor too high for the tester to be able to read text.

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

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

7 years agoFix an issue where the Timeline filter scope bars were not applying.
timothy@apple.com [Wed, 26 Feb 2014 20:58:13 +0000 (20:58 +0000)]
Fix an issue where the Timeline filter scope bars were not applying.

Reviewed by Joseph Pecoraro.

* UserInterface/Views/TimelineDataGrid.js:
(TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters): Use .get() to access the ScopeBar.

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

7 years ago[GTK] Reduplicate common.top_level_path in scripts
mrobinson@webkit.org [Wed, 26 Feb 2014 20:54:50 +0000 (20:54 +0000)]
[GTK] Reduplicate common.top_level_path in scripts
https://bugs.webkit.org/show_bug.cgi?id=129291

Reviewed by Philippe Normand.

Duplicate common.top_level_path and avoid polluting many scripts with awkward system
path manipulation and weird dependencies on the jhbuild infrastructure.

* Scripts/run-gtk-tests: Use common again.
(TestRunner._setup_testing_environment): Ditto.
* gtk/check-gdom-symbols: Ditto.
* gtk/common.py:
(top_level_path): Re-add top_level_path..
(get_build_path): Use the builtin top_level_path again.
* gtk/find-make-dist-errors: Use common again.
(get_missing_headers): Ditto.
* gtk/generate-inspector-gresource-manifest.py: Ditto.

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

7 years agoFunction.prototype.apply has a bad time with the spread operator
oliver@apple.com [Wed, 26 Feb 2014 20:40:46 +0000 (20:40 +0000)]
Function.prototype.apply has a bad time with the spread operator
https://bugs.webkit.org/show_bug.cgi?id=129381

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

Make sure our apply logic handle the spread operator correctly.
To do this we simply emit the enumeration logic that we'd normally
use for other enumerations, but only store the first two results
to registers.  Then perform a varargs call.

* bytecompiler/NodesCodegen.cpp:
(JSC::ApplyFunctionCallDotNode::emitBytecode):

LayoutTests:

Add tests

* js/regress/call-spread-apply-expected.txt: Added.
* js/regress/call-spread-apply.html: Added.
* js/regress/script-tests/call-spread-apply.js: Added.
(testFunction):
(test2):
(test3):

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

7 years ago[iOS][WebKit2] Adopt SPI for managing tabs
psolanki@apple.com [Wed, 26 Feb 2014 20:39:06 +0000 (20:39 +0000)]
[iOS][WebKit2] Adopt SPI for managing tabs
https://bugs.webkit.org/show_bug.cgi?id=129188
<rdar://problem/15939827>

Reviewed by Gavin Barraclough.

Call into assertions SPI to mark tabs as foreground and background.

* Configurations/WebKit2.xcconfig:
* Platform/IPC/Connection.h:
(IPC::Connection::xpcConnection): Expose the xpc_connection_t.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::viewStateDidChange):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::updateProcessState):
* UIProcess/ios/WebProcessProxyIOS.mm:
(WebKit::WebProcessProxy::updateProcessState): Added. This goes through the list of
WebPageProxies and sets the process state to foreground if one of them is in a window.
Otherwise, it sets it to background.

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

7 years agoUnreviewed, rolling out r164725 and r164731.
commit-queue@webkit.org [Wed, 26 Feb 2014 20:18:30 +0000 (20:18 +0000)]
Unreviewed, rolling out r164725 and r164731.
http://trac.webkit.org/changeset/164725
http://trac.webkit.org/changeset/164731
https://bugs.webkit.org/show_bug.cgi?id=129382

WebKitTestRunner build is broken on IOS (Requested by smfr on
#webkit).

* UIProcess/API/Cocoa/WKView.h:
* UIProcess/API/ios/WKViewIOS.mm: Added.
(-[WKView initWithCoder:]):
(-[WKView initWithFrame:processGroup:browsingContextGroup:]):
(-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]):
(-[WKView dealloc]):
(-[WKView setFrame:]):
(-[WKView setBounds:]):
(-[WKView scrollView]):
(-[WKView browsingContextController]):
(-[WKView setAllowsBackForwardNavigationGestures:]):
(-[WKView allowsBackForwardNavigationGestures]):
(-[WKView viewForZoomingInScrollView:]):
(-[WKView scrollViewWillBeginZooming:withView:]):
(-[WKView scrollViewWillBeginDragging:]):
(-[WKView _didFinishScrolling]):
(-[WKView scrollViewDidEndDragging:willDecelerate:]):
(-[WKView scrollViewDidEndDecelerating:]):
(-[WKView scrollViewDidScrollToTop:]):
(-[WKView scrollViewDidScroll:]):
(-[WKView scrollViewDidZoom:]):
(-[WKView scrollViewDidEndZooming:withView:atScale:]):
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
(-[WKView _frameOrBoundsChanged]):
(-[WKView _updateVisibleContentRects]):
(-[WKView _keyboardChangedWithInfo:adjustScrollView:]):
(-[WKView _keyboardWillChangeFrame:]):
(-[WKView _keyboardDidChangeFrame:]):
(-[WKView _keyboardWillShow:]):
(-[WKView _keyboardWillHide:]):
(-[WKView pageRef]):
(-[WKView initWithFrame:contextRef:pageGroupRef:]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
(-[WKView minimumLayoutSizeOverride]):
(-[WKView setMinimumLayoutSizeOverride:]):
(-[WKView _obscuredInsets]):
(-[WKView _setObscuredInsets:]):
(-[WKView _beginInteractiveObscuredInsetsChange]):
(-[WKView _endInteractiveObscuredInsetsChange]):
(-[WKView _pageExtendedBackgroundColor]):
(-[WKView _setBackgroundExtendsBeyondPage:]):
(-[WKView _backgroundExtendsBeyondPage]):
* WebKit2.xcodeproj/project.pbxproj:

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

7 years agoRemove unused InspectorCounters.
akling@apple.com [Wed, 26 Feb 2014 20:15:44 +0000 (20:15 +0000)]
Remove unused InspectorCounters.
<https://webkit.org/b/129367>

The InspectorCounters code was only used to implement two layout test
APIs (window.internals.numberOfLive{Nodes,Documents}) yet it had hooks
in crazy places like Node construction and destruction.

Rewrote the internals APIs to iterate over all live Documents instead,
totaling up their referencing Node count. Added a process-global
Document::allDocuments() HashSet to make this whole thing possible.

Reviewed by Sam Weinig.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSEventListener.cpp:
* dom/Document.cpp:
(WebCore::Document::allDocuments):
(WebCore::Document::Document):
(WebCore::Document::~Document):
* dom/Document.h:
(WebCore::Node::Node):
* dom/Node.cpp:
(WebCore::Node::~Node):
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorCounters.cpp: Removed.
* inspector/InspectorCounters.h: Removed.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
* inspector/protocol/Timeline.json:
* platform/ThreadGlobalData.cpp:
* testing/Internals.cpp:
(WebCore::Internals::numberOfLiveNodes):
(WebCore::Internals::numberOfLiveDocuments):
* testing/Internals.h:
* testing/Internals.idl:

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

7 years agoCompilation policy management belongs in operationOptimize(), not the DFG Driver.
mark.lam@apple.com [Wed, 26 Feb 2014 20:13:22 +0000 (20:13 +0000)]
Compilation policy management belongs in operationOptimize(), not the DFG Driver.
<https://webkit.org/b/129355>

Reviewed by Filip Pizlo.

By compilation policy, I mean the rules for determining whether to
compile, when to compile, when to attempt compilation again, etc.  The
few of these policy decisions that were previously being made in the
DFG driver are now moved to operationOptimize() where we keep the rest
of the policy logic.  Decisions that are based on the capabilities
supported by the DFG are moved to DFG capabiliityLevel().

I've run the following benchmarks:
1. the collection of jsc benchmarks on the jsc executable vs. its
   baseline.
2. Octane 2.0 in browser without the WebInspector.
3. Octane 2.0 in browser with the WebInspector open and a breakpoint
   set somewhere where it won't break.

In all of these, the results came out to be a wash as expected.

* dfg/DFGCapabilities.cpp:
(JSC::DFG::isSupported):
(JSC::DFG::mightCompileEval):
(JSC::DFG::mightCompileProgram):
(JSC::DFG::mightCompileFunctionForCall):
(JSC::DFG::mightCompileFunctionForConstruct):
(JSC::DFG::mightInlineFunctionForCall):
(JSC::DFG::mightInlineFunctionForClosureCall):
(JSC::DFG::mightInlineFunctionForConstruct):
* dfg/DFGCapabilities.h:
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
* jit/JITOperations.cpp:

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

7 years agoBuild fix: ContextMenuContextData.* should not be in the Copy Files
simon.fraser@apple.com [Wed, 26 Feb 2014 19:54:23 +0000 (19:54 +0000)]
Build fix: ContextMenuContextData.* should not be in the Copy Files
phase.

* WebKit2.xcodeproj/project.pbxproj:

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

7 years agoAuto generate bytecode information for bytecode parser and LLInt
msaboff@apple.com [Wed, 26 Feb 2014 19:45:38 +0000 (19:45 +0000)]
Auto generate bytecode information for bytecode parser and LLInt
https://bugs.webkit.org/show_bug.cgi?id=129181

Reviewed by Mark Lam.

Source/JavaScriptCore:

Added new bytecode/BytecodeList.json that contains a list of bytecodes and related
helpers.  It also includes bytecode length and other information used to generate files.
Added a new generator, generate-bytecode-files that generates Bytecodes.h and InitBytecodes.asm
in DerivedSources/JavaScriptCore/.

Added the generation of these files to the "DerivedSource" build step.
Slighty changed the build order, since the Bytecodes.h file is needed by
JSCLLIntOffsetsExtractor.  Moved the offline assembly to a separate step since it needs
to be run after JSCLLIntOffsetsExtractor.

Made related changes to OPCODE macros and their use.

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.vcxproj/copy-files.cmd:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/BytecodeList.json: Added.
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* generate-bytecode-files: Added.
* llint/LLIntCLoop.cpp:
(JSC::LLInt::CLoop::initialize):
* llint/LLIntCLoop.h:
* llint/LLIntData.cpp:
(JSC::LLInt::initialize):
* llint/LLIntOpcode.h:
* llint/LowLevelInterpreter.asm:

Source/WebKit:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

* CMakeLists.txt:

Source/WebKit2:

Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
generated Bytecodes.h include file.

* CMakeLists.txt:

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

7 years agoFix MiniBrowser/WebKitTestRunner link errors; WKView still
simon.fraser@apple.com [Wed, 26 Feb 2014 19:44:12 +0000 (19:44 +0000)]
Fix MiniBrowser/WebKitTestRunner link errors; WKView still
needs to be exported while these tools are using it.

* UIProcess/API/Cocoa/WKView.h:

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

7 years agoWeb Inspector: Remove console.profiles from window.console API
joepeck@webkit.org [Wed, 26 Feb 2014 19:34:34 +0000 (19:34 +0000)]
Web Inspector: Remove console.profiles from window.console API
https://bugs.webkit.org/show_bug.cgi?id=116883

Reviewed by Timothy Hatcher.

Source/WebCore:

console.profiles has been removed or never implemented by other
browsers. We should remove it as well. However, since tests
rely on it, keep it as window.internals.consoleProfiles.

* WebCore.exp.in:
* page/Console.idl:
* testing/Internals.cpp:
(WebCore::Internals::consoleProfiles):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

LayoutTests:

* fast/profiler/resources/profiler-test-JS-resources.js:
(printHeavyProfilesDataWithoutTime):
(printProfilesDataWithoutTime):

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

7 years agoFix the iOS build by wrapping some context menu stuff in #if ENABLE(CONTEXT_MENUS)
simon.fraser@apple.com [Wed, 26 Feb 2014 19:22:45 +0000 (19:22 +0000)]
Fix the iOS build by wrapping some context menu stuff in #if ENABLE(CONTEXT_MENUS)

* UIProcess/WebPageProxy.h:

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

7 years agoFastMalloc should use vm_page_shift intead of PAGE_SHIFT.
barraclough@apple.com [Wed, 26 Feb 2014 19:17:19 +0000 (19:17 +0000)]
FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
https://bugs.webkit.org/show_bug.cgi?id=129370

Reviewed by Geoff Garen.

Previously we used PAGE_SHIFT to initialize kPageShift.
Since this was a constant, it could be used to calculate other
contants used in the code. Some of these values are used in the
definition of certain data structures (specifiying the length of
some array members).

Make kPageShift & dependent properties variables setup during
initialization. Add upper bound values (K_PAGE_SHIFT_MAX,
K_NUM_CLASSES_MAX) for use in cases where we need a constant.

* wtf/FastMalloc.cpp:
(WTF::InitSizeClasses):
    - initialize kPageShift, kNumClasses, kPageSize, kMaxValidPages.
(WTF::pages):
    - added ASSERT.
(WTF::AllocationSize):
    - added ASSERT.
(WTF::TCMalloc_PageHeap::FreeBytes):
    - added ASSERT.
(WTF::TCMalloc_PageHeap::init):
    - COMPILE_ASSERT -> ASSERT
(WTF::TCMalloc_PageHeap::scavenge):
    - added ASSERT.
(WTF::TCMalloc_PageHeap::Carve):
    - added ASSERT.
(WTF::mergeDecommittedStates):
    - added ASSERT.
(WTF::TCMalloc_PageHeap::IncrementalScavenge):
    - added ASSERT.
(WTF::TCMalloc_PageHeap::ReturnedBytes):
    - added ASSERT.
(WTF::PagesToMB):
    - added ASSERT.
(WTF::TCMalloc_PageHeap::GrowHeap):
    - added ASSERT.
(WTF::TCMalloc_PageHeap::ReleaseFreeList):
    - kNumClasses -> K_NUM_CLASSES_MAX
(WTF::TCMalloc_ThreadCache::enumerateFreeObjects):
    - added ASSERT.
(WTF::TCMalloc_Central_FreeList::Init):
    - added ASSERT.
(WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
    - added ASSERT.
(WTF::TCMalloc_Central_FreeList::EvictRandomSizeClass):
    - added ASSERT.
(WTF::TCMalloc_Central_FreeList::MakeCacheSpace):
    - added ASSERT.
(WTF::TCMalloc_Central_FreeList::InsertRange):
    - added ASSERT.
(WTF::TCMalloc_Central_FreeList::Populate):
    - added ASSERT.
(WTF::TCMalloc_ThreadCache::Init):
    - added ASSERT.
(WTF::TCMalloc_ThreadCache::Cleanup):
    - added ASSERT.
(WTF::TCMalloc_ThreadCache::Scavenge):
    - added ASSERT.
(WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
    - added ASSERT.

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

7 years agorunscript: line 42: /bin/ls: Argument list too long
mhahnenberg@apple.com [Wed, 26 Feb 2014 19:16:21 +0000 (19:16 +0000)]
runscript: line 42: /bin/ls: Argument list too long
https://bugs.webkit.org/show_bug.cgi?id=129376

Reviewed by Michael Saboff.

The "test_script_*" can expand to more things than can be passed as arguments on the command line.
We should use find instead, which generates the list of files rather than expanding them all on
the command line and spitting them back out.

* Scripts/jsc-stress-test-helpers/shell-runner.sh:

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

7 years agoCreate SessionID value-style class for session IDs.
commit-queue@webkit.org [Wed, 26 Feb 2014 19:05:16 +0000 (19:05 +0000)]
Create SessionID value-style class for session IDs.
https://bugs.webkit.org/show_bug.cgi?id=129141

Source/WebCore:

Patch by Martin Hock <mhock@apple.com> on 2014-02-26
Reviewed by Sam Weinig.

* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp: Add SessionID member.
(WebCore::Page::Page):
(WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.
* page/Page.h:
(WebCore::Page::isSessionIDSet):
(WebCore::Page::setSessionID):
* page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.
(WebCore::SessionID::SessionID):
(WebCore::SessionID::isValid): Not empty.
(WebCore::SessionID::isEphemeral):
(WebCore::SessionID::sessionID):
(WebCore::SessionID::operator==): Value-based equality.
(WebCore::SessionID::operator!=):
(WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
(WebCore::SessionID::defaultSessionID):
(WebCore::SessionID::legacyPrivateSessionID):
* page/SessionIDHash.h:
(WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
(WTF::SessionIDHash::equal):
(WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
(WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
(WTF::HashTraits<WebCore::SessionID>::isDeletedValue):

Source/WebKit2:

The below changes deal solely with mechanical changes to use the SessionID value class instead of uint64_t except where noted.

Patch by Martin Hock <mhock@apple.com> on 2014-02-26
Reviewed by Sam Weinig.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::storageSession):
(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession):
(WebKit::NetworkProcess::destroyPrivateBrowsingSession):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/RemoteNetworkingContext.h:
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
* Shared/Network/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
* Shared/Network/NetworkResourceLoadParameters.h:
* Shared/SessionTracker.cpp:
(WebKit::staticSessionMap):
(WebKit::storageSessionToID):
(WebKit::SessionTracker::sessionMap):
(WebKit::SessionTracker::session):
(WebKit::SessionTracker::sessionID):
(WebKit::SessionTracker::setSession):
(WebKit::SessionTracker::destroySession):
* Shared/SessionTracker.h: Move code to SessionID class.
* Shared/WebCoreArgumentCoders.cpp: Add encode and decode for SessionID.
(IPC::ArgumentCoder<SessionID>::encode):
(IPC::ArgumentCoder<SessionID>::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/CookieStorageShim.mm:
(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
* UIProcess/APISession.cpp:
(API::generateID):
(API::Session::defaultSession):
(API::Session::legacyPrivateSession):
(API::Session::Session):
(API::Session::isEphemeral):
(API::Session::getID):
* UIProcess/APISession.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebContext::createNewWebProcess):
* UIProcess/WebContext.h:
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::sessionID):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::scheduleLoad):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::loadResourceSynchronously):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::storageSession):
* WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
* WebProcess/WebPage/WebPage.cpp: Move sessionID to Page to allow WebCore to access it.
(WebKit::WebPage::WebPage):
(WebKit::WebPage::sessionID):
(WebKit::WebPage::isUsingEphemeralSession):
(WebKit::WebPage::setSessionID):
(WebKit::WebPage::updatePreferences):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensurePrivateBrowsingSession):
(WebKit::WebProcess::destroyPrivateBrowsingSession):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

7 years agoGet rid of WKViewIOS.mm
andersca@apple.com [Wed, 26 Feb 2014 18:59:59 +0000 (18:59 +0000)]
Get rid of WKViewIOS.mm
https://bugs.webkit.org/show_bug.cgi?id=129378

Reviewed by Simon Fraser.

* UIProcess/API/Cocoa/WKView.h:
* UIProcess/API/ios/WKViewIOS.mm: Removed.
* WebKit2.xcodeproj/project.pbxproj:

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

7 years agoFix builds that don't define IMAGE_CONTROLS.
eric.carlson@apple.com [Wed, 26 Feb 2014 18:48:16 +0000 (18:48 +0000)]
Fix builds that don't define IMAGE_CONTROLS.

* page/ContextMenuContext.cpp:
(WebCore::ContextMenuContext::ContextMenuContext):

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

7 years agoBuild fix for OS X after r164720.
eric.carlson@apple.com [Wed, 26 Feb 2014 18:36:44 +0000 (18:36 +0000)]
Build fix for OS X after r164720.

* page/ContextMenuContext.cpp:

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

7 years agoENABLE_PROMISES is improperly specified as ENABLE_PROMISE in Features.pm
mrobinson@webkit.org [Wed, 26 Feb 2014 18:35:24 +0000 (18:35 +0000)]
ENABLE_PROMISES is improperly specified as ENABLE_PROMISE in Features.pm
https://bugs.webkit.org/show_bug.cgi?id=129377

Reviewed by Csaba Osztrogonác.

* Scripts/webkitperl/FeatureList.pm: Properly specify the promises feature as ENABLE_PROMISES.

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

7 years ago[iOS] Remove some erroneously captured blocks
ap@apple.com [Wed, 26 Feb 2014 18:15:14 +0000 (18:15 +0000)]
[iOS] Remove some erroneously captured blocks
https://bugs.webkit.org/show_bug.cgi?id=129362

Reviewed by Sam Weinig.

Remove unused captured Objective-C block variables (capturing these doesn't work anyway).

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

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

7 years agoPipe experimental image controls menu up to WebKit2
beidson@apple.com [Wed, 26 Feb 2014 18:02:44 +0000 (18:02 +0000)]
Pipe experimental image controls menu up to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129339

Reviewed by Simon Fraser.

Source/WebCore:

Handle events for the image control, starting down the context menu code path if appropriate:
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElementMac::defaultEventHandler):
* html/shadow/mac/ImageControlsRootElementMac.h:

Add a class to hold a HitTestResult and addition info about the current ContextMenu invocation:
* page/ContextMenuContext.cpp: Added.
(WebCore::ContextMenuContext::ContextMenuContext):
* page/ContextMenuContext.h: Added.
(WebCore::ContextMenuContext::hitTestResult):
(WebCore::ContextMenuContext::isImageControl):

Update ContextMenuController to work with ContextMenuContext instead of HitTestResult directly:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::showContextMenu):
(WebCore::ContextMenuController::createContextMenu):
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::addInspectElementItem):
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
(WebCore::ContextMenuController::showImageControlsMenu):
* page/ContextMenuController.h:
(WebCore::ContextMenuController::contextMenu):
(WebCore::ContextMenuController::setContextMenuContext):
(WebCore::ContextMenuController::context):
(WebCore::ContextMenuController::hitTestResult):

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

Add a WebKit object to represent the data from a ContextMenuContext object that can be shared via IPC:
* Shared/ContextMenuContextData.cpp: Added.
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode):
(WebKit::ContextMenuContextData::decode):
* Shared/ContextMenuContextData.h: Added.
(WebKit::ContextMenuContextData::webHitTestResultData):
(WebKit::ContextMenuContextData::isImageControl):

Update the rest of WK2 to use this object instead of WebHitTestResult::Data directly:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::internalShowContextMenu): Also make an ENABLE(IMAGE_CONTROLS) change here.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:

* WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::show):

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebKit2.xcodeproj/project.pbxproj:

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

7 years ago[CSS Grid Layout] Check default getComputedStyle() return values for grid properties
svillar@igalia.com [Wed, 26 Feb 2014 18:00:41 +0000 (18:00 +0000)]
[CSS Grid Layout] Check default getComputedStyle() return values for grid properties
https://bugs.webkit.org/show_bug.cgi?id=129092

Reviewed by Darin Adler.

Added checks for several CSS Grid Layout properties. According to
the specs, the ones we have implemented so far should be all of
them "auto" but grid-template-{rows|columns}, grid-auto-flow and
grid-template-areas that should be "none" by default.

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

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

7 years agoREGRESSION(r162947): Document::topDocument() returns an incorrect reference for cache...
zandobersek@gmail.com [Wed, 26 Feb 2014 17:54:28 +0000 (17:54 +0000)]
REGRESSION(r162947): Document::topDocument() returns an incorrect reference for cached Documents
https://bugs.webkit.org/show_bug.cgi?id=128175

Reviewed by Antti Koivisto.

* dom/Document.cpp:
(WebCore::Document::topDocument): Fall back to pre-r162947 way of determining the top document
when the Document is in page cache or is in the middle of having its render tree destroyed.
In the first case, the determined top document is actually the document currently loaded in the
Frame to which the cached document is still connected, which is obviously not desired. In the
second case the top document is similarly incorrectly deduced, leading to non-deletion of the
proper top document's AXObjectCache. Because of this AccessibilityRenderObjects are not detached
which results in assertions in RenderObject destructor where the objects are found to be still
flagged as in use by the AX cache.

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

7 years agoASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock() in inspector-protocol/*.
mark.lam@apple.com [Wed, 26 Feb 2014 16:42:06 +0000 (16:42 +0000)]
ASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock() in inspector-protocol/*.
<https://webkit.org/b/129364>

Reviewed by Alexey Proskuryakov.

InjectedScriptModule::ensureInjected() needs an APIEntryShim.

* inspector/InjectedScriptModule.cpp:
(Inspector::InjectedScriptModule::ensureInjected):
- Added the needed but missing APIEntryShim.

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

7 years ago[CSSRegions] Remove unused method RenderFlowThread::updateLayerToRegionMappings()
mihnea@adobe.com [Wed, 26 Feb 2014 14:01:37 +0000 (14:01 +0000)]
[CSSRegions] Remove unused method RenderFlowThread::updateLayerToRegionMappings()
https://bugs.webkit.org/show_bug.cgi?id=129368

Reviewed by Andrei Bucur.

Remove unused code, no new tests.

* rendering/RenderFlowThread.h:

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

7 years agoWebKitFindOptions shouldn't expose WEBKIT_FIND_OPTIONS_SHOW_{OVERLAY,FIND_INDICATOR...
commit-queue@webkit.org [Wed, 26 Feb 2014 13:51:32 +0000 (13:51 +0000)]
WebKitFindOptions shouldn't expose WEBKIT_FIND_OPTIONS_SHOW_{OVERLAY,FIND_INDICATOR,HIGHLIGHT}
https://bugs.webkit.org/show_bug.cgi?id=129263

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-02-26
Reviewed by Sergio Villar Senin.

Avoided the need of WEBKIT_FIND_OPTIONS_SHOW_* fields by changing the semantics
of the findOptions field in WebKitFindOptions.

* UIProcess/API/gtk/WebKitFindController.cpp: Now
_WebKitFindControllerPrivate.findOptions is interpreted as WebKit::FindOptions
instead of WebKitFindOptions like before. Now the conversion has to be done in
both ways.
(toWebKitFindOptions): Added conversion function from WebKit::FindOptions to
WebKitFindOptions.
(webkit_find_controller_get_options):
(webKitFindControllerPerform):
(webkit_find_controller_search):
(webkit_find_controller_search_next):
(webkit_find_controller_search_previous):
(webkit_find_controller_count_matches):
* UIProcess/API/gtk/WebKitFindController.h: Removed values that shouldn't be
exposed.

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

7 years agoInspector server should be enabled only when the web sockets is enabled too.
commit-queue@webkit.org [Wed, 26 Feb 2014 13:40:26 +0000 (13:40 +0000)]
Inspector server should be enabled only when the web sockets is enabled too.
https://bugs.webkit.org/show_bug.cgi?id=129304

Patch by Gergo Balogh <gbalogh.u-szeged@partner.samsung.com> on 2014-02-26
Reviewed by Csaba Osztrogonác.

* config.h:

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

7 years ago[GTK] Re-enable gtk-doc in EWS
rego@igalia.com [Wed, 26 Feb 2014 11:32:43 +0000 (11:32 +0000)]
[GTK] Re-enable gtk-doc in EWS
https://bugs.webkit.org/show_bug.cgi?id=128369

Reviewed by Carlos Garcia Campos.

Enable again gtk-doc generation in EWS once bug #128417 has been fixed.

* Scripts/webkitpy/common/config/ports.py:
(GtkPort.build_webkit_command): Add --disable-gtk-doc arg.
(GtkWK2Port.build_webkit_command): Ditto.
* Scripts/webkitpy/common/config/ports_unittest.py:
(DeprecatedPortTest.test_gtk_port): Ditto.
(DeprecatedPortTest.test_gtk_wk2_port): Ditto.

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

7 years ago[GTK] Regression when showing the captions menu
calvaris@igalia.com [Wed, 26 Feb 2014 09:41:43 +0000 (09:41 +0000)]
[GTK] Regression when showing the captions menu
https://bugs.webkit.org/show_bug.cgi?id=129106

Reviewed by Martin Robinson.

Source/WebCore:

In some cases, when clicking the captions button the menu was not
shown.

Updated test: media/video-controls-captions-trackmenu.html

* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.buildCaptionMenu):
(ControllerGtk.prototype.showCaptionMenu): Specify sizes in
pixels.

LayoutTests:

Checked in an existing test that the menu is shown then the
captions button is clicked.

* media/trackmenu-test.js:
(startTrackMenuTest): Deactivated animations
* media/video-controls-captions-trackmenu.html: Added check for
the regression we are testing.

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

7 years agoUnreviewed. Fix GTK+ build after r164702.
carlosgc@webkit.org [Wed, 26 Feb 2014 09:02:20 +0000 (09:02 +0000)]
Unreviewed. Fix GTK+ build after r164702.

* UIProcess/DrawingAreaProxy.cpp:

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

7 years agoAvoid unnecessary HTML Collection invalidations for id and name attribute changes
rniwa@webkit.org [Wed, 26 Feb 2014 08:26:05 +0000 (08:26 +0000)]
Avoid unnecessary HTML Collection invalidations for id and name attribute changes
https://bugs.webkit.org/show_bug.cgi?id=129361

Reviewed by Benjamin Poulain.

Before this patch, setting id and name attributes resulted in traversing all the ancestors to invalidate
HTML collections on those nodes whenever we had more than one HTMLCollection alive.

Avoid the traversal when HTMLCollections don't have any valid id and name map caches by making each
HTMLCollection explicitly call collectionCachedIdNameMap and collectionWillClearIdNameMap when it caches
or clears the id and name map.

Inspired by https://chromium.googlesource.com/chromium/blink/+/5b06b91b79098f7d42e480f85be32198315d2440

* dom/Document.cpp:
(WebCore::Document::registerCollection): Takes a boolean to indicate whether collection has a valid cache
for the id and name map.
(WebCore::Document::unregisterCollection): Ditto.
(WebCore::Document::collectionCachedIdNameMap): Added.
(WebCore::Document::collectionWillClearIdNameMap): Added.
* dom/Document.h:

* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument): Call invalidateCache on HTML collections after, not before,
calling unregisterCollection and registerCollection since collections' owner nodes have already been
moved to the new document here and invalidateCache uses owner node's document to call
collectionWillClearIdNameMap. So calling invalidateCache before calling unregister/registerCollection
would result in collectionWillClearIdNameMap getting called on a wrong document.

* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::invalidateIdNameCacheMaps): Added the code to uncount itself from the number
of live node lists and HTML collections that need to be invalidated upon id and name attribute changes.
(WebCore::HTMLCollection::updateNameCache):

* html/HTMLCollection.h:
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::hasIdNameCache): Renamed from hasNameCache.
(WebCore::HTMLCollection::setHasIdNameCache): Renamed from setHasIdNameCache.

* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNameCache):

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

7 years ago[GTK] generate-gtkdoc can fail with WebKit1 or WebKit2 only builds
commit-queue@webkit.org [Wed, 26 Feb 2014 08:11:08 +0000 (08:11 +0000)]
[GTK] generate-gtkdoc can fail with WebKit1 or WebKit2 only builds
https://bugs.webkit.org/show_bug.cgi?id=129319

Patch by Martin Robinson <mrobinson@igalia.com> on 2014-02-26
Reviewed by Carlos Garcia Campos.

Source/WebKit/gtk:

* GNUmakefile.am: Do not generate the documentation configuration file if the port
is disabled.

Source/WebKit2:

* GNUmakefile.am: Do not generate the documentation configuration file if the port
is disabled.

Tools:

* gtk/generate-gtkdoc:
(get_generator_for_config): Properly handle the situation where the pkgconfig file is missing.

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

7 years ago[iOS][WK2] Split the rects/scale updates in 3 internally consistent groups
benjamin@webkit.org [Wed, 26 Feb 2014 07:43:31 +0000 (07:43 +0000)]
[iOS][WK2] Split the rects/scale updates in 3 internally consistent groups
https://bugs.webkit.org/show_bug.cgi?id=129354

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-25
Reviewed by Sam Weinig.

During scaling, the scale and rect of UIScrollView, WebPageProxy, DrawingAreaProxy,
DrawingArea and WebPage were in completely inconsistent states.

Some of those disconnect were temporary (like when setting the rect and scale in two different
messages), some were lasting the time of a tile update (like the UIProcess view of the scale).
This was causing various visual glitches.

To fix this, all the updates from the UIProcess are funneled through a single path and the values
are split into 3 different groups/types.
When updating the scale/rects, the UIProcess sends the new information to the WebProcess on a queue
through ViewUpdateDispatcher. There, the updates are accumulated until the MainThread is available.
Once the main thread is "unblocked" from the previous frame, all the data are updated at once from
the last known state in ViewUpdateDispatcher. The new tiles are created for the new converage information
and they are sent to the UIProcess.

At any point, there are 3 types of scale and rects used for different purpose:
-In the UIProcess, there is the UIScrollView scale and rects which represent the "true" state or what
 is currently on screen.
 That information is mirrored into WebPageProxy for the other classes needing it like DrawingAreaProxy.
-In the WebProcess, there is the last known state. That state is always lagging a little behind the "true"
 state.
-Back in the UIProcess, we have the tile states that is attached to RemoteLayerTreeTransaction. It is used
 to setup the rendering.

With this change, there are two paths for updating the page scale factor:
-The UI drives the change, the updates goes WKWebView->WKContentView->WebPageProxy->ViewUpdateDispatcher
 ->WebPage->RemoteLayerTreeDrawingArea->RemoteLayerTreeDrawingAreaProxy->WKContentView->WKWebView.
-If changes in the content force scaling parameters, the updates goes: WebPage->RemoteLayerTreeDrawingArea
 ->RemoteLayerTreeDrawingAreaProxy->WKContentView->WKWebView.
The two kind of updates frequently conflicts during loading. We differentiate those through the flag
scaleWasSetByUIProcess passed with the updates. In cases of conflicts, the user always wins.

* DerivedSources.make:
* Scripts/webkit2/messages.py:
(struct_or_class):
* Shared/VisibleContentRectUpdateInfo.cpp: Added.
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
* Shared/VisibleContentRectUpdateInfo.h: Added.
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::exposedRect):
(WebKit::VisibleContentRectUpdateInfo::unobscuredRect):
(WebKit::VisibleContentRectUpdateInfo::scale):
(WebKit::operator==):
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::scaleWasSetByUIProcess):
(WebKit::RemoteLayerTreeTransaction::setScaleWasSetByUIProcess):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView contentView:didCommitLayerTree:WebKit::]):
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateVisibleContentRectsWithStableState:]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _endInteractiveObscuredInsetsChange]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _updateVisibleContentRects]):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::setCustomFixedPositionRect):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::updateDebugIndicator):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::displayedContentScale):
(WebKit::WebPageProxy::exposedContentRect):
(WebKit::WebPageProxy::unobscuredContentRect):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
(-[WKContentView didFinishScrolling]):
(-[WKContentView didZoomToScale:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateVisibleContentRects):
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
* UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::scaledExposedRect):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorScale):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/ViewUpdateDispatcher.cpp: Added.
(WebKit::ViewUpdateDispatcher::create):
(WebKit::ViewUpdateDispatcher::ViewUpdateDispatcher):
(WebKit::ViewUpdateDispatcher::~ViewUpdateDispatcher):
(WebKit::ViewUpdateDispatcher::initializeConnection):
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
* WebProcess/WebPage/ViewUpdateDispatcher.h: Added.
* WebProcess/WebPage/ViewUpdateDispatcher.messages.in: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::scalePage):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::scaleWasSetByUIProcess):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::tapHighlightAtPosition):
(WebKit::WebPage::updateVisibleContentRects):
(WebKit::WebPage::willStartUserTriggeredZooming):
* WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeConnection):
* WebProcess/WebProcess.h:

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

7 years agoUnreviewed. Add myself as a committer.
mmaerean@adobe.com [Wed, 26 Feb 2014 07:35:10 +0000 (07:35 +0000)]
Unreviewed. Add myself as a committer.

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

7 years agoAdd support for minsize/maxsize attributes.
fred.wang@free.fr [Wed, 26 Feb 2014 06:52:37 +0000 (06:52 +0000)]
Add support for minsize/maxsize attributes.
https://bugs.webkit.org/show_bug.cgi?id=122567

Reviewed by Chris Fleizach.

Source/WebCore:

This change implements the minsize/maxsize attributes of the mo element.
We also switch stretch sizes from int to LayoutUnit to improve accuracy.

Tests: mathml/presentation/stretchy-minsize-maxsize-dynamic.html
       mathml/presentation/stretchy-minsize-maxsize.html

* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::SetOperatorProperties):
(WebCore::RenderMathMLOperator::stretchTo):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):

LayoutTests:

Add some reftests for the minsize/maxsize attributes of the mo element.

* platform/mac/mathml/presentation/mo-stretch-expected.txt:
* mathml/presentation/stretchy-minsize-maxsize-dynamic-expected.html: Added.
* mathml/presentation/stretchy-minsize-maxsize-dynamic.html: Added.
* mathml/presentation/stretchy-minsize-maxsize-expected.html: Added.
* mathml/presentation/stretchy-minsize-maxsize.html: Added.

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

7 years ago[CSSRegions] Small clean-up of flow threads accelerated compositing code
mihnea@adobe.com [Wed, 26 Feb 2014 06:43:51 +0000 (06:43 +0000)]
[CSSRegions] Small clean-up of flow threads accelerated compositing code
https://bugs.webkit.org/show_bug.cgi?id=129312

Reviewed by Andrei Bucur.

Some clean-up for the code used for regions in accelerated compositing functionality:
1. Rename updateRenderFlowThreadLayersIfNeeded -> updateFlowThreadsLayerToRegionMappingsIfNeeded
as the function updates the mapping between the flow threads layers and their corresponding regions
2. Remove RenderLayerCompositor::updateRenderFlowThreadLayersIfNeeded and move the code in place
at call site since the function body does not require a dedicated function.

No new functionality, no new tests.

* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateFlowThreadsLayerToRegionMappingsIfNeeded):
Now that the regions are always layers, we do not need to iterate backwards.
* rendering/FlowThreadController.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
* rendering/RenderLayerCompositor.h:

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

7 years agoSubpixel rendering: Ensure consistent border painting width.
zalan@apple.com [Wed, 26 Feb 2014 06:24:22 +0000 (06:24 +0000)]
Subpixel rendering: Ensure consistent border painting width.
https://bugs.webkit.org/show_bug.cgi?id=129259

Reviewed by Simon Fraser.

Border edges are painted as (semi)independent rectangles. When snapping an edge rectangle
to device pixels, its painted dimensions depend on its size and its fractional position.
Specific combination of position and border width can result in painting edges sized differently.
Using device snapped border width to calculate inner/outer rectangles helps to maintain
uniform border width.

Currently not testable.

* rendering/RenderBoxModelObject.cpp:
(WebCore::BorderEdge::BorderEdge):
(WebCore::BorderEdge::shouldRender):
(WebCore::BorderEdge::presentButInvisible):
(WebCore::BorderEdge::widthForPainting):
(WebCore::BorderEdge::getDoubleBorderStripeWidths):
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::calculateSideRect):
(WebCore::RenderBoxModelObject::paintBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::calculateSideRectIncludingInner):

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

7 years agoSubpixel layout: Remove explicit static_cast<LayoutUnit> conversions.
zalan@apple.com [Wed, 26 Feb 2014 06:23:03 +0000 (06:23 +0000)]
Subpixel layout: Remove explicit static_cast<LayoutUnit> conversions.
https://bugs.webkit.org/show_bug.cgi?id=129359

Reviewed by Simon Fraser.

No testable change in behavior.

* css/LengthFunctions.cpp:
(WebCore::minimumValueForLength):
* page/FrameView.cpp:
(WebCore::FrameView::forceLayoutForPagination):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintFillLayer):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::logicalLeftVisualOverflow):
(WebCore::InlineFlowBox::logicalRightVisualOverflow):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::isSelected):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeColumnCountAndWidth):
(WebCore::getBPMWidth):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustForBorderFit):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::paintBoxDecorations):
* rendering/RenderTable.h:
(WebCore::RenderTable::borderSpacingInRowDirection):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::preferredContentLogicalWidth):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::beforeAnnotationsAdjustment):
(WebCore::RootInlineBox::ascentAndDescentForBox):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::resolveLengthAttributeForSVG):

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

7 years agoBuild fixes.
andersca@apple.com [Wed, 26 Feb 2014 06:01:23 +0000 (06:01 +0000)]
Build fixes.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:

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

7 years agoBuild fix for OS X after r164690
benjamin@webkit.org [Wed, 26 Feb 2014 03:51:28 +0000 (03:51 +0000)]
Build fix for OS X after r164690

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

* WebCore.exp.in:

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

7 years agoRename WebCore::VisitedLinkProvider to WebCore::VisitedLinkStore
andersca@apple.com [Wed, 26 Feb 2014 03:23:00 +0000 (03:23 +0000)]
Rename WebCore::VisitedLinkProvider to WebCore::VisitedLinkStore
https://bugs.webkit.org/show_bug.cgi?id=129357

Reviewed by Sam Weinig.

Source/WebCore:

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* dom/VisitedLinkState.cpp:
(WebCore::VisitedLinkState::determineLinkStateSlowCase):
* loader/HistoryController.cpp:
(WebCore::addVisitedLink):
* page/DefaultVisitedLinkStore.cpp: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.cpp.
(WebCore::DefaultVisitedLinkStore::create):
(WebCore::DefaultVisitedLinkStore::DefaultVisitedLinkStore):
(WebCore::DefaultVisitedLinkStore::~DefaultVisitedLinkStore):
(WebCore::DefaultVisitedLinkStore::isLinkVisited):
(WebCore::DefaultVisitedLinkStore::addVisitedLink):
* page/DefaultVisitedLinkStore.h: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.h.
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::visitedLinkStore):
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::visitedLinkStore):
* page/PageGroup.h:
* page/VisitedLinkStore.cpp: Renamed from Source/WebCore/page/VisitedLinkProvider.cpp.
(WebCore::VisitedLinkStore::VisitedLinkStore):
(WebCore::VisitedLinkStore::~VisitedLinkStore):
* page/VisitedLinkStore.h: Renamed from Source/WebCore/page/VisitedLinkProvider.h.

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebVisitedLinkProvider.h:

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

7 years ago[WebKit2] Form controls handling.
enrica@apple.com [Wed, 26 Feb 2014 03:05:19 +0000 (03:05 +0000)]
[WebKit2] Form controls handling.
https://bugs.webkit.org/show_bug.cgi?id=129344
<rdar://problem/16053643>

Reviewed by Simon Fraser and Joseph Pecoraro.

../WebCore:

Adding some exports.

* WebCore.exp.in:

../WebKit2:

This is the step toward adding support for
form controls iOS style. It adds the logic to
select the appropriate keyboard type based on the
element type and introduces the AssistedNodeInformation
structure used currently for the keyboard type selection
and that will be used to populate pickers and popovers.
It also provides information to enable/disable next/previous
buttons in the accessory view.

* Scripts/webkit2/messages.py:
(struct_or_class):
* Shared/AssistedNodeInformation.cpp: Added.
(WebKit::AssistedNodeInformation::encode):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h: Added.
(WebKit::AssistedNodeInformation::AssistedNodeInformation):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startAssistingNode):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView _updateAccessory]):
(toUITextAutocapitalize):
(-[WKContentView textInputTraits]):
(-[WKContentView assistedNodeInformation]):
(-[WKContentView _startAssistingNode:]):
(-[WKContentView _stopAssistingNode]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAssistingNode):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::isAssistableNode):
(WebKit::hasFocusableNode):
(WebKit::WebPage::getAssistedNodeInformation):
(WebKit::WebPage::elementDidFocus):

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

7 years agoWeb Inspector: Port some profiler tests to inspector-protocol
commit-queue@webkit.org [Wed, 26 Feb 2014 02:50:20 +0000 (02:50 +0000)]
Web Inspector: Port some profiler tests to inspector-protocol
https://bugs.webkit.org/show_bug.cgi?id=129353

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

* inspector-obsolete/profiler/cpu-profiler-parameterless-profile-end-crash-expected.txt: Removed.
* inspector-obsolete/profiler/cpu-profiler-parameterless-profile-end-crash.html: Removed.
* inspector-obsolete/profiler/cpu-profiler-profiling-without-inspector-expected.txt: Removed.
* inspector-obsolete/profiler/cpu-profiler-profiling-without-inspector.html: Removed.
* inspector-protocol/profiler/console-profile-expected.txt: Added.
* inspector-protocol/profiler/console-profile.html: Added.
* inspector-protocol/profiler/console-profileEnd-parameterless-expected.txt: Added.
* inspector-protocol/profiler/console-profileEnd-parameterless.html: Added.

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

7 years agoWeb Inspector: CRASH when evaluating in console of JSContext RWI with disabled breakp...
mark.lam@apple.com [Wed, 26 Feb 2014 02:12:57 +0000 (02:12 +0000)]
Web Inspector: CRASH when evaluating in console of JSContext RWI with disabled breakpoints.
<https://webkit.org/b/128766>

Reviewed by Geoffrey Garen.

Make the JSLock::grabAllLocks() work the same way as for the C loop LLINT.
The reasoning is that we don't know of any clients that need unordered
re-entry into the VM from different threads. So, we're enforcing ordered
re-entry i.e. we must re-grab locks in the reverse order of dropping locks.

The crash in this bug happened because we were allowing unordered re-entry,
and the following type of scenario occurred:

1. Thread T1 locks the VM, and enters the VM to execute some JS code.
2. On entry, T1 detects that VM::m_entryScope is null i.e. this is the
   first time it entered the VM.
   T1 sets VM::m_entryScope to T1's entryScope.
3. T1 drops all locks.

4. Thread T2 locks the VM, and enters the VM to execute some JS code.
   On entry, T2 sees that VM::m_entryScope is NOT null, and therefore
   does not set the entryScope.
5. T2 drops all locks.

6. T1 re-grabs locks.
7. T1 returns all the way out of JS code. On exit from the outer most
   JS function, T1 clears VM::m_entryScope (because T1 was the one who
   set it).
8. T1 unlocks the VM.

9. T2 re-grabs locks.
10. T2 proceeds to execute some code and expects VM::m_entryScope to be
    NOT null, but it turns out to be null. Assertion failures and
    crashes ensue.

With ordered re-entry, at step 6, T1 will loop and yield until T2 exits
the VM. Hence, the issue will no longer manifest.

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

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

7 years agoVisitedLinkProvider should be refcounted
andersca@apple.com [Wed, 26 Feb 2014 01:45:52 +0000 (01:45 +0000)]
VisitedLinkProvider should be refcounted
https://bugs.webkit.org/show_bug.cgi?id=129351

Reviewed by Sam Weinig.

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::create):
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::processDidFinishLaunching):
(WebKit::WebContext::disconnectProcess):
(WebKit::WebContext::addVisitedLinkHash):
* UIProcess/WebContext.h:

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

7 years agoAdd accessibility search predicate support for AXOutlines
samuel_white@apple.com [Wed, 26 Feb 2014 01:27:55 +0000 (01:27 +0000)]
Add accessibility search predicate support for AXOutlines
https://bugs.webkit.org/show_bug.cgi?id=123748

Reviewed by Chris Fleizach.

Source/WebCore:

Added new AXOutlineSearchKey to support finding elements with aria role=tree.

No new tests, updated existing search-predicate.html test to cover AXOutlineSearchKey.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
* accessibility/AccessibilityObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilitySearchKeyMap):

LayoutTests:

Updated test to validate support for AXOutlineSearchKey (elements with aria role=tree).

* platform/mac/accessibility/search-predicate-expected.txt:
* platform/mac/accessibility/search-predicate.html:

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

7 years agoMake WebContext handle populating visited links
andersca@apple.com [Wed, 26 Feb 2014 01:06:00 +0000 (01:06 +0000)]
Make WebContext handle populating visited links
https://bugs.webkit.org/show_bug.cgi?id=129348

Reviewed by Tim Horton.

This makes it possible to decouple VisitedLinkProvider from WebContext.

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::VisitedLinkProvider):
(WebKit::VisitedLinkProvider::processDidFinishLaunching):
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::processDidFinishLaunching):
* UIProcess/WebContext.h:

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

7 years agoNeed to initialize VM stack data even when the VM is on an exclusive thread.
mark.lam@apple.com [Wed, 26 Feb 2014 01:03:37 +0000 (01:03 +0000)]
Need to initialize VM stack data even when the VM is on an exclusive thread.
<https://webkit.org/b/129265>

Not reviewed.

Source/JavaScriptCore:

Relanding r164627 now that <https://webkit.org/b/129341> is fixed.

* API/APIShims.h:
(JSC::APIEntryShim::APIEntryShim):
(JSC::APICallbackShim::shouldDropAllLocks):
* heap/MachineStackMarker.cpp:
(JSC::MachineThreads::addCurrentThread):
* runtime/JSLock.cpp:
(JSC::JSLockHolder::JSLockHolder):
(JSC::JSLockHolder::init):
(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::JSLock):
(JSC::JSLock::setExclusiveThread):
(JSC::JSLock::lock):
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::grabAllLocks):
* runtime/JSLock.h:
(JSC::JSLock::hasExclusiveThread):
(JSC::JSLock::exclusiveThread):
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
(JSC::VM::hasExclusiveThread):
(JSC::VM::exclusiveThread):
(JSC::VM::setExclusiveThread):
(JSC::VM::currentThreadIsHoldingAPILock):

Source/WebCore:

No new tests.

Relanding r164627 now that <https://webkit.org/b/129341> is fixed.

* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):

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

7 years agoDrawingAreaProxy is using WebCore's Timer
andersca@apple.com [Wed, 26 Feb 2014 00:44:43 +0000 (00:44 +0000)]
DrawingAreaProxy is using WebCore's Timer
https://bugs.webkit.org/show_bug.cgi?id=129347
<rdar://problem/16078133>

Reviewed by Tim Horton.

Use a RunLoop::Timer instead.

* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::exposedRectChangedTimerFired):
* UIProcess/DrawingAreaProxy.h:

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

7 years agoAdd WKVisitedLinkProvider
andersca@apple.com [Wed, 26 Feb 2014 00:38:27 +0000 (00:38 +0000)]
Add WKVisitedLinkProvider
https://bugs.webkit.org/show_bug.cgi?id=129343

Reviewed by Sam Weinig.

* UIProcess/API/Cocoa/WKVisitedLinkProvider.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKVisitedLinkProvider.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKVisitedLinkProviderPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration visitedLinkProvider]):
(-[WKWebViewConfiguration setVisitedLinkProvider:]):
* WebKit2.xcodeproj/project.pbxproj:

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

7 years agoJSDOMPromise methods should acquire VM lock before calling into JS.
mark.lam@apple.com [Tue, 25 Feb 2014 23:53:41 +0000 (23:53 +0000)]
JSDOMPromise methods should acquire VM lock before calling into JS.
<https://webkit.org/b/129341>

Reviewed by Geoffrey Garen.

No new tests.

* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):

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

7 years agoSimplify visited link style invalidation
andersca@apple.com [Tue, 25 Feb 2014 23:28:36 +0000 (23:28 +0000)]
Simplify visited link style invalidation
https://bugs.webkit.org/show_bug.cgi?id=129340

Reviewed by Dan Bernstein.

Source/WebCore:

Get rid of the static Page::allVisitedStateChanged and Page::visitedStateChanged
member functions and add functions to invalidate all styles on a single page or the style
for a single link hash on a single page.

* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::invalidateStylesForAllLinks):
(WebCore::Page::invalidateStylesForLink):
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::addVisitedLink):
(WebCore::PageGroup::removeVisitedLink):
(WebCore::PageGroup::removeVisitedLinks):

Source/WebKit2:

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::addVisitedLink):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::visitedLinkStateChanged):
(WebKit::WebProcess::allVisitedLinkStateChanged):

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

7 years agoRemove unused ThreadSpecificInspectorCounters.
akling@apple.com [Tue, 25 Feb 2014 23:17:08 +0000 (23:17 +0000)]
Remove unused ThreadSpecificInspectorCounters.
<https://webkit.org/b/129337>

We were keeping count of all the JS event listeners in every thread
to support an old Chromium feature that's no longer relevant.

Removing this gets rid of expensive thread-local storage lookups.

Reviewed by Anders Carlsson.

* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::~JSEventListener):
* inspector/InspectorCounters.cpp:
* inspector/InspectorCounters.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::setDOMCounters):
* inspector/protocol/Timeline.json:
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):
* platform/ThreadGlobalData.h:

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

7 years agodisplay:table with padding and/or borders in border-box calculates height incorrectly
lvidacs.u-szeged@partner.samsung.com [Tue, 25 Feb 2014 22:31:14 +0000 (22:31 +0000)]
display:table with padding and/or borders in border-box calculates height incorrectly
https://bugs.webkit.org/show_bug.cgi?id=126576

Reviewed by David Hyatt.

Based on blink issue https://codereview.chromium.org/25206002/

Source/WebCore:

Tests: fast/box-sizing/css-table-collapse.html
       fast/box-sizing/css-table-no-collapse.html
       fast/box-sizing/table-collapse.html
       fast/box-sizing/table-no-collapse.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalHeightUsing):

LayoutTests:

* fast/box-sizing/css-table-collapse-expected.txt: Added.
* fast/box-sizing/css-table-collapse.html: Added.
* fast/box-sizing/css-table-no-collapse-expected.txt: Added.
* fast/box-sizing/css-table-no-collapse.html: Added.
* fast/box-sizing/table-collapse-expected.txt: Added.
* fast/box-sizing/table-collapse.html: Added.
* fast/box-sizing/table-no-collapse-expected.txt: Added.
* fast/box-sizing/table-no-collapse.html: Added.

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

7 years agoInline caching in the FTL on ARM64 should "work"
fpizlo@apple.com [Tue, 25 Feb 2014 22:18:21 +0000 (22:18 +0000)]
Inline caching in the FTL on ARM64 should "work"
https://bugs.webkit.org/show_bug.cgi?id=129334

Reviewed by Mark Hahnenberg.

Gets us to the point where simple tests that use inline caching are passing.

* assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::shrink):
* ftl/FTLInlineCacheSize.cpp:
(JSC::FTL::sizeOfGetById):
(JSC::FTL::sizeOfPutById):
(JSC::FTL::sizeOfCall):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileFTLOSRExit):
* ftl/FTLThunks.cpp:
(JSC::FTL::osrExitGenerationThunkGenerator):
* jit/GPRInfo.h:
* offlineasm/arm64.rb:

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

7 years agoFix build.
andersca@apple.com [Tue, 25 Feb 2014 21:42:43 +0000 (21:42 +0000)]
Fix build.

Remove VisitedLinkStrategy.

* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

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

7 years agoinspector-protocol/page/deny-X-FrameOption.html is very flaky
ap@apple.com [Tue, 25 Feb 2014 21:37:49 +0000 (21:37 +0000)]
inspector-protocol/page/deny-X-FrameOption.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=129331

* TestExpectations: Marking as such.

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

7 years agoGet rid of VisitedLinkStrategy
andersca@apple.com [Tue, 25 Feb 2014 21:35:27 +0000 (21:35 +0000)]
Get rid of VisitedLinkStrategy
https://bugs.webkit.org/show_bug.cgi?id=129324

Reviewed by Dan Bernstein.

Source/WebCore:

* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::PlatformStrategies):
* platform/VisitedLinkStrategy.h: Removed.

Source/WebKit/efl:

* WebCoreSupport/PlatformStrategiesEfl.cpp:
(PlatformStrategiesEfl::getPluginInfo):
* WebCoreSupport/PlatformStrategiesEfl.h:

Source/WebKit/gtk:

* WebCoreSupport/PlatformStrategiesGtk.cpp:
(PlatformStrategiesGtk::getPluginInfo):
* WebCoreSupport/PlatformStrategiesGtk.h:

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:

Source/WebKit/win:

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::getPluginInfo):
* WebCoreSupport/WebPlatformStrategies.h:

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

7 years agoRolling out http://trac.webkit.org/changeset/164611, because it broke
ap@apple.com [Tue, 25 Feb 2014 21:29:14 +0000 (21:29 +0000)]
Rolling out trac.webkit.org/changeset/164611, because it broke
WebKit2.PrivateBrowsingPushStateNoHistoryCallback API test

The change was for:

Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=129141
Create SessionID class

Source/WebKit2:

https://bugs.webkit.org/show_bug.cgi?id=129141
Create SessionID class

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

7 years agoREGRESSION: All inspector-protocol/model very frequently assert in IDBRequest::~IDBRe...
ap@apple.com [Tue, 25 Feb 2014 21:24:24 +0000 (21:24 +0000)]
REGRESSION: All inspector-protocol/model very frequently assert in IDBRequest::~IDBRequest
https://bugs.webkit.org/show_bug.cgi?id=129328

inspector-protocol/indexeddb/basics.html fails
https://bugs.webkit.org/show_bug.cgi?id=129327

* TestExpectations: Updating test expectations.

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

7 years agoUnreviewed, rolling out r164627.
commit-queue@webkit.org [Tue, 25 Feb 2014 21:18:39 +0000 (21:18 +0000)]
Unreviewed, rolling out r164627.
http://trac.webkit.org/changeset/164627
https://bugs.webkit.org/show_bug.cgi?id=129325

Broke SubtleCrypto tests (Requested by ap on #webkit).

Source/JavaScriptCore:

* API/APIShims.h:
(JSC::APIEntryShim::APIEntryShim):
(JSC::APICallbackShim::shouldDropAllLocks):
* heap/MachineStackMarker.cpp:
(JSC::MachineThreads::addCurrentThread):
* runtime/JSLock.cpp:
(JSC::JSLockHolder::JSLockHolder):
(JSC::JSLockHolder::init):
(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::JSLock):
(JSC::JSLock::lock):
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::grabAllLocks):
* runtime/JSLock.h:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
(JSC::VM::currentThreadIsHoldingAPILock):

Source/WebCore:

* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):

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

7 years ago[Cocoa] Add delegate method for customizing actions on activated elements
mitz@apple.com [Tue, 25 Feb 2014 21:10:14 +0000 (21:10 +0000)]
[Cocoa] Add delegate method for customizing actions on activated elements
https://bugs.webkit.org/show_bug.cgi?id=129290

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added. Declared new delegate method.

* UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
(_WKActivatedElementType): Defined enum of element types.
* UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
(-[_WKActivatedElementInfo _initWithType:URL:location:title:rect:]): Added type parameter
to the initializer, used to set the new type property.
* UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:

* UIProcess/Cocoa/UIClient.h:
* UIProcess/Cocoa/UIClient.mm:
(WebKit::UIClient::setDelegate): Initialize webViewActionsForElementDefaultActions member
of m_delegateMethods.
(WebKit::UIClient::actionsForElement): Added. Calls out to the new delegate method if
implemented. Otherwise returns the default actions.

* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]): Use new _elementInfo ivar
instead of creating element info here.
(-[WKActionSheetAssistant showImageSheet]): Create element info here and assign it to
_elementInfo ivar if presenting a sheet. Call the UI client to get custom actions.
(-[WKActionSheetAssistant showLinkSheet]): Ditto.
(-[WKActionSheetAssistant cleanupSheet]): Clear _elementInfo ivar.
* WebKit2.xcodeproj/project.pbxproj: Added reference to WKUIDelegatePrivate.h.

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

7 years agoDefaultVisitedLinkProvider can just call into the page group directly
andersca@apple.com [Tue, 25 Feb 2014 20:56:27 +0000 (20:56 +0000)]
DefaultVisitedLinkProvider can just call into the page group directly
https://bugs.webkit.org/show_bug.cgi?id=129320

Reviewed by Andreas Kling.

* page/DefaultVisitedLinkProvider.cpp:
(WebCore::DefaultVisitedLinkProvider::isLinkVisited):
(WebCore::DefaultVisitedLinkProvider::addVisitedLink):

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

7 years agoUnreviewed EFL build fix attempt after r164562
m.pakula@samsung.com [Tue, 25 Feb 2014 20:55:15 +0000 (20:55 +0000)]
Unreviewed EFL build fix attempt after r164562

* CMakeLists.txt: Added WebVisitedLinkProvider.cpp.

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

7 years agoARM64 rshift64 should be an arithmetic shift
fpizlo@apple.com [Tue, 25 Feb 2014 20:48:24 +0000 (20:48 +0000)]
ARM64 rshift64 should be an arithmetic shift
https://bugs.webkit.org/show_bug.cgi?id=129323

Reviewed by Mark Hahnenberg.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::rshift64):

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

7 years agoUnreviewed, rolling out r164638.
commit-queue@webkit.org [Tue, 25 Feb 2014 20:42:44 +0000 (20:42 +0000)]
Unreviewed, rolling out r164638.
http://trac.webkit.org/changeset/164638
https://bugs.webkit.org/show_bug.cgi?id=129321

Broke Windows build. (Requested by bfulgham on #webkit).

* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
(WebCore::ChildNodesLazySnapshot::hasSnapshot):
* dom/Element.cpp:
(WebCore::ensureAttrNodeListForElement):
(WebCore::Element::attributes):
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/ElementRareData.h:
(WebCore::ElementRareData::create):
(WebCore::ElementRareData::setAttributeMap):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::create):
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::clearTransientRegistrations):
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
* dom/MutationObserverRegistration.h:
* dom/NamedNodeMap.h:
(WebCore::NamedNodeMap::create):
(WebCore::NamedNodeMap::NamedNodeMap):
* dom/Node.cpp:
(WebCore::Node::ensureRareData):
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::create):
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeMutationObserverData::create):
(WebCore::NodeMutationObserverData::NodeMutationObserverData):
(WebCore::NodeRareData::create):
(WebCore::NodeRareData::clearNodeLists):
(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):
(WebCore::NodeRareData::NodeRareData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):

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

7 years ago[iOS] Show status image when playing video to external device
eric.carlson@apple.com [Tue, 25 Feb 2014 20:29:58 +0000 (20:29 +0000)]
[iOS] Show status image when playing video to external device
https://bugs.webkit.org/show_bug.cgi?id=129277

Reviewed by Jer Noble.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handleEvent): Restructure the code so it is possible to handle events
    that target the video element which aren't in the HandledVideoEvents array.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.currentPlaybackTargetIsWireless): webkitCurrentPlaybackTargetIsWireless
    is an attribute, not a function.
(ControllerIOS.prototype.updateWirelessPlaybackStatus): Fix style.
(ControllerIOS.prototype.updateWirelessTargetAvailable): Ditto.
(ControllerIOS.prototype.updateProgress): Ditto.
(ControllerIOS.prototype.handleWrapperTouchStart): Show the controls if the wireless status
    display is touched.
(ControllerIOS.prototype.handleFullscreenButtonClicked): Fix style
(ControllerIOS.prototype.handleWirelessPlaybackChange): Ditto.
(ControllerIOS.prototype.handleWirelessTargetAvailableChange):
(ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto. Stop even propagation.

Move "playback target" logic into HTMLMediaSession.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Call media session.
(WebCore::HTMLMediaElement::loadResource): Tell media session to apply media player
    restrictions now that it has a url.
(WebCore::HTMLMediaElement::invalidateCachedTime): Only log when cached time is not
    already invalie.
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Call media session.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Ditto.
(WebCore::HTMLMediaElement::addEventListener): Ditto.
(WebCore::HTMLMediaElement::removeEventListen): Ditto.
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Ditto.
(WebCore::HTMLMediaElement::createMediaPlayer): Ditto.

* html/HTMLMediaSession.cpp:
(WebCore::restrictionName): Log new WirelessVideoPlaybackDisabled restriction.
(WebCore::HTMLMediaSession::showingPlaybackTargetPickerPermitted): Return false if there
    is no page, or if wireless playback is disabled.
(WebCore::HTMLMediaSession::currentPlaybackTargetIsWireless): New, logic from HTMLMediaElement.
(WebCore::HTMLMediaSession::showPlaybackTargetPicker): Ditto.
(WebCore::HTMLMediaSession::hasWirelessPlaybackTargets): Ditto.
(WebCore::HTMLMediaSession::wirelessVideoPlaybackDisabled): Ditto.
(WebCore::HTMLMediaSession::setWirelessVideoPlaybackDisabled): Ditto.
(WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners): Ditto.
(WebCore::HTMLMediaSession::applyMediaPlayerRestrictions): New, apply media player specific
    restriction.
* html/HTMLMediaSession.h:

Move "playback target" logic into HTMLMediaSession.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseAttribute): Call media session.
(WebCore::HTMLVideoElement::webkitWirelessVideoPlaybackDisabled): Call media session.

* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::showPlaybackTargetPicker): New method, does nothing in base class.

* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::showPlaybackTargetPicker): Add non-functional stub.

Implement wireless playback control and status API.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Dispatch TargetIsWirelessChanged.
(WebCore::MediaPlayerPrivateAVFoundation::playbackTargetIsWirelessChanged): Pass through to
    media element.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
    m_allowsWirelessVideoPlayback.
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "externalPlaybackActive" observer.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Fix broken logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Add "externalPlaybackActive" observer,
    set initial wireless playback.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer):  Fix broken logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackTargetIsWirelessDidChange): New.
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Deal with
    externalPlaybackActive.

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

7 years ago[Win] Gracefully recover from missing 'naturalSize' parameter for media
bfulgham@apple.com [Tue, 25 Feb 2014 19:47:37 +0000 (19:47 +0000)]
[Win] Gracefully recover from missing 'naturalSize' parameter for media
https://bugs.webkit.org/show_bug.cgi?id=129278

Reviewed by Eric Carlson.

* platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add declaration for
missing function call.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::assetStatus): Don't treat missing 'naturalSize'
as a fatal error.
(WebCore::MediaPlayerPrivateAVFoundationCF::tracksChanged): Handle case of asset track
not being available yet.
(WebCore::MediaPlayerPrivateAVFoundationCF::sizeChanged): If the 'naturalSize' is empty,
use the Player Item's 'presentationSize' instead.
(WebCore::AVFWrapper::processNotification): Add missing handler for duration changed.

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

7 years ago[CSS Grid Layout] Add ENABLE flag
svillar@igalia.com [Tue, 25 Feb 2014 19:10:26 +0000 (19:10 +0000)]
[CSS Grid Layout] Add ENABLE flag
https://bugs.webkit.org/show_bug.cgi?id=129153

Reviewed by Simon Fraser.

.:

Added the ENABLE_CSS_GRID_LAYOUT feature flag to the cmake and
autotools build systems. The feature is disabled by default for
production builds.

* Source/autotools/SetupWebKitFeatures.m4:
* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig: added ENABLE_CSS_GRID_LAYOUT feature flag.

Source/WebCore:

Added ENABLE_CSS_GRID_LAYOUT feature flag.

* Configurations/FeatureDefines.xcconfig:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSGridTemplateAreasValue.cpp:
* css/CSSGridTemplateAreasValue.h:
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSParser.h:
* css/CSSParserMode.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSPropertyNames.in:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
* css/StylePropertyShorthand.cpp:
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
* css/StyleResolver.cpp:
(WebCore::equivalentBlockDisplay):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::applyProperty):
* css/StyleResolver.h:
* dom/Document.cpp:
* dom/Document.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/RenderGrid.cpp:
* rendering/RenderGrid.h:
* rendering/style/GridCoordinate.h:
* rendering/style/GridLength.h:
* rendering/style/GridPosition.h:
* rendering/style/GridTrackSize.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleAllInOne.cpp:
* rendering/style/StyleGridData.cpp:
* rendering/style/StyleGridData.h:
* rendering/style/StyleGridItemData.cpp:
* rendering/style/StyleGridItemData.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:

Source/WebKit/mac:

Added ENABLE_CSS_GRID_LAYOUT feature flag.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Added ENABLE_CSS_GRID_LAYOUT feature flag.

* Configurations/FeatureDefines.xcconfig:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

Added ENABLE_CSS_GRID_LAYOUT feature flag. It's on by default for
all ports for developer builds.

* Scripts/webkitperl/FeatureList.pm:

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

7 years agoUnreviewed GTK build fix after r164652.
zandobersek@gmail.com [Tue, 25 Feb 2014 18:53:44 +0000 (18:53 +0000)]
Unreviewed GTK build fix after r164652.

* GNUmakefile.list.am: Add WebVisitedLinkProvider build targets.

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

7 years agoAdded myself as a committer.
dbatyai.u-szeged@partner.samsung.com [Tue, 25 Feb 2014 18:33:38 +0000 (18:33 +0000)]
Added myself as a committer.

Unreviewed.

* Scripts/webkitpy/common/config/contributors.json:

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

7 years ago[EME][Mac] Fix a few issues in CDMSessionMediaSourceAVFObjC.
jer.noble@apple.com [Tue, 25 Feb 2014 18:24:13 +0000 (18:24 +0000)]
[EME][Mac] Fix a few issues in CDMSessionMediaSourceAVFObjC.
https://bugs.webkit.org/show_bug.cgi?id=129310

Reviewed by Eric Carlson.

Only send a 'keyerror' event if an actual error code was returned, not just
when no key was added:
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::addKeyTimerFired):

The 'length' parameter to a typed ArrayBufferView is the number of entries
in the array, not the byte length:
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):

The return value of streamingContentKeyRequestDataForApp:contentIdentifier:trackId:options:error
is autoreleased; do not wrap it in an adoptNS:
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::update):

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

7 years ago[MediaStream] Adding mock implementation of UserMediaClient
thiago.lacerda@openbossa.org [Tue, 25 Feb 2014 18:18:28 +0000 (18:18 +0000)]
[MediaStream] Adding mock implementation of UserMediaClient
https://bugs.webkit.org/show_bug.cgi?id=129274

Reviewed by Eric Carlson.

* platform/mock/UserMediaClientMock.h: Added.
(WebCore::UserMediaClientRequestNotifier::UserMediaClientRequestNotifier):
* testing/Internals.cpp:
(WebCore::Internals::Internals):

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

7 years agoTighten bitfields in live NodeLists and HTMLCollections
rniwa@webkit.org [Tue, 25 Feb 2014 17:57:31 +0000 (17:57 +0000)]
Tighten bitfields in live NodeLists and HTMLCollections
https://bugs.webkit.org/show_bug.cgi?id=129300

Reviewed by Geoffrey Garen.

Reduce the number of bits used for m_rootType and m_type in LiveNodeList.
Also use enum class for LiveNodeList types. We keep "Type" suffix not to
confuse old-ish compilers.

* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByName):
(WebCore::ContainerNode::getElementsByClassName):
(WebCore::ContainerNode::radioNodeList):
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::collectionFirst):
(WebCore::LiveNodeList::collectionTraverseForward):
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::LiveNodeList):
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
* dom/NameNodeList.h:
(WebCore::NameNodeList::create):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::namedNodeListKey):
* dom/TagNodeList.cpp:
(WebCore::HTMLTagNodeList::HTMLTagNodeList):
* dom/TagNodeList.h:
(WebCore::TagNodeList::create):
(WebCore::HTMLTagNodeList::create):
* html/HTMLCollection.h:
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
* html/LabelsNodeList.h:
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
* html/RadioNodeList.h:
(WebCore::RadioNodeList::create):

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

7 years agoJIT Engines use the wrong stack limit for stack checks
msaboff@apple.com [Tue, 25 Feb 2014 17:53:33 +0000 (17:53 +0000)]
JIT Engines use the wrong stack limit for stack checks
https://bugs.webkit.org/show_bug.cgi?id=129314

Reviewed by Filip Pizlo.

Change the Baseline and DFG code to use VM::m_stackLimit for stack limit checks.

* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileFunction):
* jit/JIT.cpp:
(JSC::JIT::privateCompile):
* jit/JITCall.cpp:
(JSC::JIT::compileLoadVarargs):
* jit/JITCall32_64.cpp:
(JSC::JIT::compileLoadVarargs):
* runtime/VM.h:
(JSC::VM::addressOfStackLimit):

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

7 years agoMake it possible to set the visited link provider on a per page basis
andersca@apple.com [Tue, 25 Feb 2014 17:48:03 +0000 (17:48 +0000)]
Make it possible to set the visited link provider on a per page basis
https://bugs.webkit.org/show_bug.cgi?id=129288

Reviewed by Andreas Kling.

Source/WebCore:

* WebCore.exp.in:
Export symbols needed by WebKit2.

* WebCore.xcodeproj/project.pbxproj:
Make VisitedLinkProvider a private header.

* page/Page.cpp:
(WebCore::Page::Page):
Take the visited link provider from the PageClients object.

(WebCore::Page::visitedLinkProvider):
If the page has a visited link provider set, return it.

* page/Page.h:
Add VisitedLinkProvider to Page and PageClients.

Source/WebKit2:

Add WebVisitedLinkProvider which just calls the web process.

* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebVisitedLinkProvider.cpp: Added.
(WebKit::WebVisitedLinkProvider::create):
(WebKit::WebVisitedLinkProvider::WebVisitedLinkProvider):
(WebKit::WebVisitedLinkProvider::~WebVisitedLinkProvider):
(WebKit::WebVisitedLinkProvider::isLinkVisited):
(WebKit::WebVisitedLinkProvider::addVisitedLink):
* WebProcess/WebPage/WebVisitedLinkProvider.h: Added.

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

7 years agoUnreviewed, roll out http://trac.webkit.org/changeset/164493.
fpizlo@apple.com [Tue, 25 Feb 2014 17:47:29 +0000 (17:47 +0000)]
Unreviewed, roll out trac.webkit.org/changeset/164493.

It causes crashes, apparently because it's removing too many barriers. I will investigate
later.

* bytecode/SpeculatedType.cpp:
(JSC::speculationToAbbreviatedString):
* bytecode/SpeculatedType.h:
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::insertStoreBarrier):
* dfg/DFGNode.h:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compareEqObjectOrOtherToObject):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isNotNully):
(JSC::FTL::LowerDFGToLLVM::isNully):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
(JSC::FTL::LowerDFGToLLVM::speculateNotCell):

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

7 years ago[New Multicolumn] -webkit-column-break-inside:avoid doesn't work
commit-queue@webkit.org [Tue, 25 Feb 2014 16:10:08 +0000 (16:10 +0000)]
[New Multicolumn] -webkit-column-break-inside:avoid doesn't work
https://bugs.webkit.org/show_bug.cgi?id=129299

Patch by Morten Stenshorne <mstensho@opera.com> on 2014-02-25
Reviewed by Andrei Bucur.

Source/WebCore:

adjustForUnsplittableChild() simply forgot to check whether we
were inside flow thread based multicol.

Test: fast/multicol/newmulticol/avoid-column-break-inside.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustForUnsplittableChild):

LayoutTests:

* fast/multicol/newmulticol/avoid-column-break-inside-expected.html: Added.
* fast/multicol/newmulticol/avoid-column-break-inside.html: Added.

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

7 years agoUnreviewed. Moved myself to the list of committers.
tgergely.u-szeged@partner.samsung.com [Tue, 25 Feb 2014 15:08:18 +0000 (15:08 +0000)]
Unreviewed. Moved myself to the list of committers.

* Scripts/webkitpy/common/config/contributors.json:

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

7 years agoMove myself to the committers list.
pmolnar.u-szeged@partner.samsung.com [Tue, 25 Feb 2014 14:53:42 +0000 (14:53 +0000)]
Move myself to the committers list.

Unreviewed.

* Scripts/webkitpy/common/config/contributors.json:

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

7 years ago[CSSRegions] Remove unused function RenderFlowThread::regionForCompositedLayer
mihnea@adobe.com [Tue, 25 Feb 2014 14:51:37 +0000 (14:51 +0000)]
[CSSRegions] Remove unused function RenderFlowThread::regionForCompositedLayer
https://bugs.webkit.org/show_bug.cgi?id=129303

Reviewed by Andrei Bucur.

Cleanup, no funtionality change, no new tests.

* rendering/RenderFlowThread.h:

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

7 years agoUnreviewed. Add myself as a committer.
llango.u-szeged@partner.samsung.com [Tue, 25 Feb 2014 14:48:03 +0000 (14:48 +0000)]
Unreviewed. Add myself as a committer.

* Scripts/webkitpy/common/config/contributors.json:

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

7 years agoUnreviewed, rolling out r164639.
rego@igalia.com [Tue, 25 Feb 2014 14:07:40 +0000 (14:07 +0000)]
Unreviewed, rolling out r164639.
http://trac.webkit.org/changeset/164639
https://bugs.webkit.org/show_bug.cgi?id=129302

gtk-doc still have problems in EWS (Requested by rego on
#webkit).

Patch by Commit Queue <commit-queue@webkit.org> on 2014-02-25

* Scripts/webkitpy/common/config/ports.py:
(GtkPort.build_webkit_command):
(GtkWK2Port.build_webkit_command):
* Scripts/webkitpy/common/config/ports_unittest.py:
(DeprecatedPortTest.test_gtk_port):
(DeprecatedPortTest.test_gtk_wk2_port):

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

7 years agoRefactoring inline_spelling_markers.html to use asynchronous spellchecking
g.czajkowski@samsung.com [Tue, 25 Feb 2014 13:31:45 +0000 (13:31 +0000)]
Refactoring inline_spelling_markers.html to use asynchronous spellchecking
https://bugs.webkit.org/show_bug.cgi?id=127284

Reviewed by Ryosuke Niwa.

Use asynchronous text checking in inline-spelling-markers.html and
inline-spelling-markers-hidpi.html

Rename the test to inline-spelling-markers.html to match the naming convention.

* editing/spelling/inline-spelling-markers-expected.txt: Added.
Make cross platform text expectation by dumping spelling/grammar markers
instead of whole tree which in terms of spellchecking says nothing.

* editing/spelling/inline-spelling-markers.html: Added.
Remove unnecessary new lines from div elements so position of markers can be given from 0.
Activate text checking by adding a word separator so WebKit starts performing spell and grammar
checking. Selection change does not invoke grammar checking unless we start editing the input
element's content.

* platform/efl/editing/spelling/inline_spelling_markers-expected.png: Removed.
* platform/efl/editing/spelling/inline_spelling_markers-expected.txt: Removed.
* platform/gtk/editing/spelling/inline_spelling_markers-expected.png: Removed.
* platform/gtk/editing/spelling/inline_spelling_markers-expected.txt: Removed.
* platform/mac/editing/spelling/inline_spelling_markers-expected.png: Removed.
* platform/mac/editing/spelling/inline_spelling_markers-expected.txt: Removed.
Those are not needed as pixel tests don't introduce anything special here.
Let's keep them in hidpi test only.

* editing/spelling/inline-spelling-markers-hidpi-expected.txt:
* editing/spelling/inline-spelling-markers-hidpi.html:
Apply changes from inline-spelling-markers.html

* platform/mac/editing/spelling/inline-spelling-markers-hidpi-expected.png: Added.

* platform/efl/editing/spelling/inline-spelling-markers-hidpi-expected.png: Removed.
* platform/gtk/editing/spelling/inline-spelling-markers-hidpi-expected.png: Removed.
Remove wrong baselines due to missing grammar markers.

* platform/efl-wk2/TestExpectations:
* platform/gtk/TestExpectations:
Mark inline-spelling-markers.html and its hidpi version as failures
since EFL and GTK do not implement grammar checking.

* platform/mac-wk2/TestExpectations:
* platform/win/TestExpectations:
Mark inline-spelling-markers.html and its hidpi version as failures
due to missing TextChecker::requestCheckingOfString() implementation.

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

7 years agoPrettyPatch.rb should be more descriptive for "git diff -M" styled patches
commit-queue@webkit.org [Tue, 25 Feb 2014 12:44:42 +0000 (12:44 +0000)]
PrettyPatch.rb should be more descriptive for "git diff -M" styled patches
https://bugs.webkit.org/show_bug.cgi?id=125514

Patch by Jozsef Berta <jberta.u-szeged@partner.samsung.com> on 2014-02-25
Reviewed by Csaba Osztrogonác.

* PrettyPatch/PrettyPatch.rb: PrettyPatch.rb is modified to show which file was renamed or moved.

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

7 years ago[CSS Regions] scrollIntoView for elements flowed into regions
stavila@adobe.com [Tue, 25 Feb 2014 10:33:26 +0000 (10:33 +0000)]
[CSS Regions] scrollIntoView for elements flowed into regions
https://bugs.webkit.org/show_bug.cgi?id=129151

Reviewed by Mihnea Ovidenie.

Added tests for scrollIntoView on elements flowed inside regions.

* fast/regions/scroll-into-view-expected.html: Added.
* fast/regions/scroll-into-view-relative-expected.html: Added.
* fast/regions/scroll-into-view-relative.html: Added.
* fast/regions/scroll-into-view.html: Added.

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

7 years ago[CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
commit-queue@webkit.org [Tue, 25 Feb 2014 10:16:04 +0000 (10:16 +0000)]
[CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
https://bugs.webkit.org/show_bug.cgi?id=126158

Patch by Mihai Tica <mitica@adobe.com> on 2014-02-25
Reviewed by Mihnea Ovidenie.

Source/WebCore:

As stated in the http://www.w3.org/TR/css3-transforms/#propdef-transform-style, an element with blending
should force transform-style: flat.

Test: css3/compositing/blend-mode-transform-style.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): If blending is detected, set transform-style to flat.

LayoutTests:

For an element with -webkit-mix-blend-mode, test that the value of -webkit-transform-style computes to flat.

* css3/compositing/blend-mode-transform-style-expected.txt: Added.
* css3/compositing/blend-mode-transform-style.html: Added.

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

7 years ago[GTK] Re-enable gtk-doc in EWS
rego@igalia.com [Tue, 25 Feb 2014 10:05:38 +0000 (10:05 +0000)]
[GTK] Re-enable gtk-doc in EWS
https://bugs.webkit.org/show_bug.cgi?id=128369

Reviewed by Carlos Garcia Campos.

Enable again gtk-doc generation in EWS once bug #128417 has been fixed.

* Scripts/webkitpy/common/config/ports.py:
(GtkPort.build_webkit_command): Add --disable-gtk-doc arg.
(GtkWK2Port.build_webkit_command): Ditto.
* Scripts/webkitpy/common/config/ports_unittest.py:
(DeprecatedPortTest.test_gtk_port): Ditto.
(DeprecatedPortTest.test_gtk_wk2_port): Ditto.

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

7 years agoMove to using std::unique_ptr for Element, Node and related classes
zandobersek@gmail.com [Tue, 25 Feb 2014 08:47:50 +0000 (08:47 +0000)]
Move to using std::unique_ptr for Element, Node and related classes
https://bugs.webkit.org/show_bug.cgi?id=129058

Reviewed by Anders Carlsson.

Replace uses of OwnPtr and PassOwnPtr in Element, Node and the related
classes with std::unique_ptr and move semantics.

* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
(WebCore::ChildNodesLazySnapshot::hasSnapshot):
* dom/Element.cpp:
(WebCore::ensureAttrNodeListForElement):
(WebCore::Element::attributes):
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/ElementRareData.h:
(WebCore::ElementRareData::setAttributeMap):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::clearTransientRegistrations):
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
* dom/MutationObserverRegistration.h:
* dom/NamedNodeMap.h:
(WebCore::NamedNodeMap::NamedNodeMap):
* dom/Node.cpp:
(WebCore::Node::ensureRareData):
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::clearNodeLists):
(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):

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

7 years agoPrune dead code for Web Inspector memory instrumentation.
akling@apple.com [Tue, 25 Feb 2014 08:19:25 +0000 (08:19 +0000)]
Prune dead code for Web Inspector memory instrumentation.
<https://webkit.org/b/129286>

Source/WebCore:

This was leftover code from Chromium's inspector. It's not used by
today's WebKit inspector.

Reviewed by Sam Weinig.

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
* inspector/InspectorMemoryAgent.cpp: Removed.
* inspector/InspectorMemoryAgent.h: Removed.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/protocol/Memory.json: Removed.

Source/WebInspectorUI:

Reviewed by Sam Weinig.

* UserInterface/Protocol/InspectorWebBackendCommands.js:

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

7 years agoBuild fix for case-sensitive filesystems.
mitz@apple.com [Tue, 25 Feb 2014 08:09:33 +0000 (08:09 +0000)]
Build fix for case-sensitive filesystems.

* WebProcess/ios/WebVideoFullscreenManager.cpp:

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