WebKit-https.git
6 years ago[WinCairo] Compile error.
commit-queue@webkit.org [Fri, 3 Jan 2014 17:21:35 +0000 (17:21 +0000)]
[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=126428

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-01-03
Reviewed by Brent Fulgham.

The NativeImagePtr type is not an CGImageRef on WinCairo, cannot use CFRetain.

* loader/cache/MemoryCache.cpp: Replace USE(CF) with USE(CG).
* loader/cache/MemoryCache.h: Ditto.

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

6 years ago[CMake] The forwarding headers generated by WebKitMacros.m4 are incompatible with...
mrobinson@webkit.org [Fri, 3 Jan 2014 17:03:10 +0000 (17:03 +0000)]
[CMake] The forwarding headers generated by WebKitMacros.m4 are incompatible with the headers generated by generate-forwarding-headers.pl
https://bugs.webkit.org/show_bug.cgi?id=126361

Reviewed by Philippe Normand.

Make the forwarding headers generated by WebKitMacros.m4 compatible with the headers
generated by the WebKit2 forwarding headers generation script.

* Source/cmake/WebKitMacros.cmake: Try to convert absolute paths in the forwarding headers
to ones that are relative to the Source directory.

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

6 years ago[CMake] Build TestWebKitAPI tests into a directory structure
mrobinson@webkit.org [Fri, 3 Jan 2014 17:02:16 +0000 (17:02 +0000)]
[CMake] Build TestWebKitAPI tests into a directory structure
https://bugs.webkit.org/show_bug.cgi?id=126358

Reviewed by Gyuyoung Kim.

WebKitGTK+ builds the TestWebKitAPI tests into a "TestWebKitAPI" directory. This
is useful for keeping the "bin" directory tidy during building and will make it easier
to integrate the CMake build into the existing WebKitGTK+ scripts.

* TestWebKitAPI/CMakeLists.txt: Set the output directory of all TestWebKitAPI binaries
and make the names simpler now that the directory identifies what category the test is in.

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

6 years agoProvide a visual clue when element has a popover at build.webkit.org/dashboard
ap@apple.com [Fri, 3 Jan 2014 17:00:50 +0000 (17:00 +0000)]
Provide a visual clue when element has a popover at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126281

Reviewed by Timothy Hatcher.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/PopoverTracker.js:
(PopoverTracker): Add a class name to elements with popovers.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(*): We have -webkit-user-select:none, so let's also not show text selection cursor.
I might have broke that recently.
(*:link): Show hand cursor over links.
(.popover-tracking:hover): Put a shadow on hover over element with popovers.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:
(.status-line .message .revision-number): Show text selection cursor on our only
selectable text element.
(.status-line .bubble.popover-tracking:hover): Text in a bubble looks better with
a white shadow than with a dark one on hover.

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

6 years ago[CSS Shapes] Simplify FloatRoundedRect, BoxShape construction
hmuller@adobe.com [Fri, 3 Jan 2014 16:57:18 +0000 (16:57 +0000)]
[CSS Shapes] Simplify FloatRoundedRect, BoxShape construction
https://bugs.webkit.org/show_bug.cgi?id=125995

Reviewed by Andreas Kling.

Cleanup of various internal Shape issues:
- Removed unnecessary Shape() initialization list entries in Shape subclasses
  per https://bugs.webkit.org/show_bug.cgi?id=125548#c2.
- Used const references instead of pointers for non-deprecated Shape:createShape() logic.
- Replaced createShape() overloads for Rasters and Boxes with functions named
  createRasterShape() and createBoxShape().
- Added a FloatRoundedRect::Radii() constructor to reduce the parameter list
  length of the FloatRoundedRect constructor in createBoxShape().

There are no new tests, this is just internal refactoring.

* platform/graphics/FloatRoundedRect.h:
(WebCore::FloatRoundedRect::Radii::Radii):
* rendering/shapes/BoxShape.h:
(WebCore::BoxShape::BoxShape):
* rendering/shapes/PolygonShape.h:
(WebCore::PolygonShape::PolygonShape):
* rendering/shapes/RasterShape.h:
(WebCore::RasterShape::RasterShape):
* rendering/shapes/RectangleShape.h:
(WebCore::RectangleShape::RectangleShape):
* rendering/shapes/Shape.cpp:
(WebCore::createInsetShape):
(WebCore::Shape::createShape):
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createBoxShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape):

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

6 years agoRemove unused Document::openSearchDescriptionURL().
akling@apple.com [Fri, 3 Jan 2014 11:44:48 +0000 (11:44 +0000)]
Remove unused Document::openSearchDescriptionURL().
<https://webkit.org/b/126419>

Reviewed by Antti Koivisto.

* dom/Document.h:
* dom/Document.cpp:

    Scrub leftovers from the defunct Chromium port.

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

6 years agoUnreviewed GTK gardening.
zandobersek@gmail.com [Fri, 3 Jan 2014 09:06:22 +0000 (09:06 +0000)]
Unreviewed GTK gardening.

* platform/gtk/TestExpectations: Add failure and flakiness expectations for a couple of tests.
* platform/gtk/svg/custom/object-no-size-attributes-expected.txt: Rebaseline.

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

6 years agoVibrationPattern should allocate an single vector instance for single integer input
jinwoo7.song@samsung.com [Fri, 3 Jan 2014 08:45:06 +0000 (08:45 +0000)]
VibrationPattern should allocate an single vector instance for single integer input
https://bugs.webkit.org/show_bug.cgi?id=126417

Reviewed by Gyuyoung Kim.

Source/WebCore:

When the Vibration pattern is set with a single integer, the VibrationPattern should
be set with this integer as a vibration time. But the VibrationPattern(unsigned vector) was
initialized with a single parameter, the vibration time, so the time was used to set
the size of vector.

* Modules/vibration/NavigatorVibration.cpp:
(WebCore::NavigatorVibration::vibrate):

Source/WebKit2:

Fix a vibration unit test regression after r161139. Also remove unnecessary test cases.

* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(EWK2ViewTest::loadVibrationHTMLString):
(TEST_F):

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

6 years ago[GTK] Add API to WebKitResponsePolicyDecision to check if the MIME type can be shown
carlosgc@webkit.org [Fri, 3 Jan 2014 08:42:07 +0000 (08:42 +0000)]
[GTK] Add API to WebKitResponsePolicyDecision to check if the MIME type can be shown
https://bugs.webkit.org/show_bug.cgi?id=124652

Reviewed by Martin Robinson.

Source/WebKit2:

* UIProcess/API/gtk/WebKitPolicyClient.cpp:
(decidePolicyForResponse): Pass canShowMIMEType to
webkitResponsePolicyDecisionCreate.
* UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
(webkit_response_policy_decision_is_mime_type_supported): Return
canShowMIMEType.
(webkitResponsePolicyDecisionCreate): Set the canShowMIMEType
member from the given parameter.
* UIProcess/API/gtk/WebKitResponsePolicyDecision.h:
* UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewDecidePolicy): Use the new API instead of
webkit_web_view_can_show_mime_type() since it's more efficient.
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
* UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp:
(testResponsePolicy): Test the new API.

Tools:

* MiniBrowser/gtk/BrowserWindow.c:
(webViewDecidePolicy): Use the new API instead of
webkit_web_view_can_show_mime_type().

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

6 years agoREGRESSION(r160304): [GTK] Disable libtool fast install
carlosgc@webkit.org [Fri, 3 Jan 2014 07:56:55 +0000 (07:56 +0000)]
REGRESSION(r160304): [GTK] Disable libtool fast install
https://bugs.webkit.org/show_bug.cgi?id=126381

Reviewed by Martin Robinson.

.:

After r160304 we are building some of our binaries that are
installed with the -no-fast-install ld flag. This makes that the
binaries are installed with the source code path hardcoded in
binary RPATH. Disabling fast install globally, the libtool script
always relinks the binaries right before being installed.

* Source/autotools/SetupLibtool.m4: Add AC_DISABLE_FAST_INSTALL.

Source/JavaScriptCore:

Remove -no-fast-install ld flag since fast install is now disabled
globally.

* GNUmakefile.am:

Source/WebKit/gtk:

* tests/GNUmakefile.am:

Source/WebKit2:

Remove -no-fast-install ld flag since fast install is now disabled
globally.

* GNUmakefile.am:
* UIProcess/API/gtk/tests/GNUmakefile.am:

Tools:

Remove -no-fast-install ld flag since fast install is now disabled
globally.

* GNUmakefile.am:
* GtkLauncher/GNUmakefile.am:
* MiniBrowser/gtk/GNUmakefile.am:
* TestWebKitAPI/GNUmakefile.am:
* WebKitTestRunner/GNUmakefile.am:

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

6 years ago[EFL][WK2] Remove defaultPageGroupIdentifier not to make the confusion
ryuan.choi@samsung.com [Fri, 3 Jan 2014 07:48:05 +0000 (07:48 +0000)]
[EFL][WK2] Remove defaultPageGroupIdentifier not to make the confusion
https://bugs.webkit.org/show_bug.cgi?id=126249

Reviewed by Gyuyoung Kim.

ewk_page_group_create always creates new page group,
but the identifiers of page groups will be same as "defaultPageGroupIdentifier" when passed 0 or "".
It is unnecessary and just makes the confusion.

This patch let WebPageGroup generate unique identifier if 0 or "" is passed as argument.

* UIProcess/API/efl/ewk_page_group.cpp:
(EwkPageGroup::create):
* UIProcess/API/efl/ewk_page_group_private.h:

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

6 years ago[GTK] Switch from WTF::Function to std::function in WebProcessTest
zandobersek@gmail.com [Fri, 3 Jan 2014 07:40:40 +0000 (07:40 +0000)]
[GTK] Switch from WTF::Function to std::function in WebProcessTest
https://bugs.webkit.org/show_bug.cgi?id=126397

Reviewed by Anders Carlsson.

Use std::function<> and std::bind() instead of WTF::Function and WTF::bind,
following the effort of using STL concepts where possible.

* UIProcess/API/gtk/tests/WebProcessTest.cpp:
(WebProcessTest::add):
* UIProcess/API/gtk/tests/WebProcessTest.h:

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

6 years agoIconController.cpp needs to include <wtf/text/CString.h>
ljaehun.lim@samsung.com [Fri, 3 Jan 2014 05:21:57 +0000 (05:21 +0000)]
IconController.cpp needs to include <wtf/text/CString.h>
https://bugs.webkit.org/show_bug.cgi?id=126415

Reviewed by Gyuyoung Kim.

Build fails in IconController.cpp when ICONDATABASE is disabled.
WebKit/Source/WebCore/loader/icon/IconController.cpp:124:110: error: invalid use of incomplete type ‘class WTF::CString’
IconController.cpp needs #include <wtf/text/CString.h>.

No new tests. Just build fix.

* loader/icon/IconController.cpp: Add #include statement.

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

6 years ago[EFL] Previous scrollbar is remained sometimes
ryuan.choi@samsung.com [Fri, 3 Jan 2014 04:40:30 +0000 (04:40 +0000)]
[EFL] Previous scrollbar is remained sometimes
https://bugs.webkit.org/show_bug.cgi?id=126414

Reviewed by Gyuyoung Kim.

* platform/efl/ScrollbarEfl.cpp:
(ScrollbarEfl::invalidate):
Updated scrollbar visibility in Scrollbar::invalidate().
* platform/efl/ScrollbarEfl.h:
Removed show()/hide() which never been called() for scrollbar.

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

6 years agoUnreviewed. Add myself to EFL and related watch lists.
ryuan.choi@samsung.com [Fri, 3 Jan 2014 03:50:40 +0000 (03:50 +0000)]
Unreviewed. Add myself to EFL and related watch lists.

* Scripts/webkitpy/common/config/watchlist:

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

6 years ago[CMake][EFL] Fix some typos in OptionsEfl.cmake
ljaehun.lim@samsung.com [Fri, 3 Jan 2014 02:52:15 +0000 (02:52 +0000)]
[CMake][EFL] Fix some typos in OptionsEfl.cmake
https://bugs.webkit.org/show_bug.cgi?id=126376

Reviewed by Gyuyoung Kim.

* Source/cmake/WebKitFeatures.cmake: Correct a wrong word and remove comma(,).

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

6 years ago[WebGL] Correct symbol lookup logic to handle 1-element arrays
jinwoo7.song@samsung.com [Fri, 3 Jan 2014 02:16:34 +0000 (02:16 +0000)]
[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>

Patch by Brent Fulgham <bfulgham@apple.com> on 2014-01-02
Reviewed by Dean Jackson.

* webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html: Add test for accessing the
single-element array.

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

6 years ago[WebGL] Correct symbol lookup logic to handle 1-element arrays
bfulgham@apple.com [Fri, 3 Jan 2014 02:11:58 +0000 (02:11 +0000)]
[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>

Reviewed by Dean Jackson.

Source/WebCore:

Tested by revisions to webgl/1.0.2/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniformLocation): Revise to
handle access to zeroeth element of the array.

LayoutTests:

* webgl/1.0.2/resources/webgl_test_files/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html: Add test for accessing the
single-element array.

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

6 years agoPropagate WindowServer modifications state to WebProcess
barraclough@apple.com [Fri, 3 Jan 2014 02:09:25 +0000 (02:09 +0000)]
Propagate WindowServer modifications state to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=126356

Reviewed by Sam Weinig.

This will be necessary to move control of process suppression to the WebProcess.
IsVisuallyIdle implies the process has stopped painting, or painted rects are
occluded and not actually being composited. State is provided on a per
WindowServer connection basis, and as such may produce (safe) false positives.

* Shared/ViewState.h:
    - added IsVisuallyIdle.
* UIProcess/API/mac/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::isVisuallyIdle):
    - added, on mac checks WindowServerConnection.
* UIProcess/PageClient.h:
(WebKit::PageClient::isVisuallyIdle):
    - base implementation purely based on isViewVisible.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::windowServerConnectionStateChanged):
    - broadcast the state change.
* UIProcess/WebContext.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateViewState):
(WebKit::WebPageProxy::viewStateDidChange):
    - propagate IsVisuallyIdle.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::windowServerConnectionStateChanged):
    - broadcast the state change.
* UIProcess/WebProcessProxy.h:
    - add windowServerConnectionStateChanged.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::updateProcessSuppressionStateOfGlobalChildProcesses):
    - moved from static in fle to static member of class.
(WebKit::WebContext::platformInitialize):
    - no need to enableOcclusionNotifications.
(WebKit::WebContext::canEnableProcessSuppressionForNetworkProcess):
(WebKit::WebContext::canEnableProcessSuppressionForWebProcess):
(WebKit::WebContext::canEnableProcessSuppressionForGlobalChildProcesses):
    - changed to call WindowServerConnection.
(WebKit::WebContext::processSuppressionEnabledChanged):
    - don't remove/reregister occlusion notifications.
* UIProcess/mac/WindowServerConnection.h: Added.
(WebKit::WindowServerConnection::applicationIsOccluded):
(WebKit::WindowServerConnection::applicationWindowModificationsHaveStopped):
    - accessors.
* UIProcess/mac/WindowServerConnection.mm: Added.
(WebKit::WindowServerConnection::applicationBecameOccluded):
(WebKit::WindowServerConnection::applicationWindowModificationsStopped):
(WebKit::WindowServerConnection::applicationBecameVisible):
(WebKit::WindowServerConnection::applicationWindowModificationsStarted):
    - handle notifications from the WindowServer.
(WebKit::WindowServerConnection::windowServerConnectionStateChanged):
    - broadcast the state change.
(WebKit::WindowServerConnection::shared):
    - accessor for singleton object.
(WebKit::WindowServerConnection::WindowServerConnection):
    - constructor inizializes fields & register notification handlers.
* WebKit2.xcodeproj/project.pbxproj:
    - added new files.
* config.h:
    - added HAVE_WINDOW_SERVER_OCCLUSION_NOTIFICATIONS.

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

6 years agoUnreviewed EFL gardening. Rebaselining after r161140.
jinwoo7.song@samsung.com [Fri, 3 Jan 2014 02:00:51 +0000 (02:00 +0000)]
Unreviewed EFL gardening. Rebaselining after r161140.

* platform/efl/fast/table/dynamic-caption-add-before-child-expected.png:
* platform/efl/fast/table/dynamic-caption-add-before-child-expected.txt:

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

6 years agoCrash in WebCore::translateIntersectionPointsToSkipInkBoundaries
mmaxfield@apple.com [Fri, 3 Jan 2014 01:32:18 +0000 (01:32 +0000)]
Crash in WebCore::translateIntersectionPointsToSkipInkBoundaries
https://bugs.webkit.org/show_bug.cgi?id=126252

Reviewed by Alexey Proskuryakov.

Source/WebCore:

lastIntermediate was a iterator pointing into a Vector, which was being re-used
even while appending to the Vector. If any of the append operators triggered
a realloc, the iterator would point to the old free'ed memory.

Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps.html

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

LayoutTests:

This test causes intermediateTuples, a Vector of tuples of floats, to have enough
entries to cause a realloc. In my tests, the realloc seems to always allocate the
next area of memory (without unmapping any old pages), so this test only crashes
if guardMalloc is used.

* fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps-expected.txt: Added.
* fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps.html: Added.

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

6 years ago[GTK] fixing ycm_extra_conf.py file
commit-queue@webkit.org [Fri, 3 Jan 2014 01:19:50 +0000 (01:19 +0000)]
[GTK] fixing ycm_extra_conf.py file
https://bugs.webkit.org/show_bug.cgi?id=126371

It's an attempt to fix three problems with the current ycm_extra_conf file.
The current implementation assumes that it's a symlink, which is not true.
Usually python creates a pyc file, and this is what you get in __file__.
the .pyc is not a symlink, and the current implementation doesn't work
if that's the case.

It also assumes that the user is in the root folder.
If the user is in WebkitBuild/Debug and open a file as ../../Source/* it won't work.

Last but not least, "elif flag in FLAGS_PRECEDING_PATHS" emits an
exception since "flag" doesn't exists.

All those things were fixed.

Patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> on 2014-01-02
Reviewed by Martin Robinson.

* gtk/ycm_extra_conf.py:
(transform_relative_paths_to_absolute_paths):

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

6 years ago[WebGL] Correct symbol lookup logic to handle 1-element arrays
bfulgham@apple.com [Fri, 3 Jan 2014 01:18:29 +0000 (01:18 +0000)]
[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>

Reviewed by Dean Jackson.

* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniformLocation): Revise code to handle the case of single-element
arrays.

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

6 years agoUpdate Promises to the https://github.com/domenic/promises-unwrapping spec
weinig@apple.com [Fri, 3 Jan 2014 00:40:16 +0000 (00:40 +0000)]
Update Promises to the https://github.com/domenic/promises-unwrapping spec
https://bugs.webkit.org/show_bug.cgi?id=120954

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Update Promises to the revised spec. Notable changes:
- JSPromiseResolver is gone.
- TaskContext has been renamed Microtask and now has a virtual run() function.
- Instead of using custom InternalFunction subclasses, JSFunctions are used
  with PrivateName properties for internal slots.

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* JavaScriptCore.xcodeproj/project.pbxproj:
* interpreter/CallFrame.h:
(JSC::ExecState::promiseConstructorTable):
* runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::CommonIdentifiers):
* runtime/CommonIdentifiers.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::queueMicrotask):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::promiseConstructor):
(JSC::JSGlobalObject::promisePrototype):
(JSC::JSGlobalObject::promiseStructure):
* runtime/JSPromise.cpp:
(JSC::JSPromise::create):
(JSC::JSPromise::JSPromise):
(JSC::JSPromise::finishCreation):
(JSC::JSPromise::visitChildren):
(JSC::JSPromise::reject):
(JSC::JSPromise::resolve):
(JSC::JSPromise::appendResolveReaction):
(JSC::JSPromise::appendRejectReaction):
(JSC::triggerPromiseReactions):
* runtime/JSPromise.h:
(JSC::JSPromise::status):
(JSC::JSPromise::result):
(JSC::JSPromise::constructor):
* runtime/JSPromiseCallback.cpp: Removed.
* runtime/JSPromiseCallback.h: Removed.
* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise):
(JSC::JSPromiseConstructor::getCallData):
(JSC::JSPromiseConstructorFuncCast):
(JSC::JSPromiseConstructorFuncResolve):
(JSC::JSPromiseConstructorFuncReject):
* runtime/JSPromiseConstructor.h:
* runtime/JSPromiseDeferred.cpp: Added.
(JSC::JSPromiseDeferred::create):
(JSC::JSPromiseDeferred::JSPromiseDeferred):
(JSC::JSPromiseDeferred::finishCreation):
(JSC::JSPromiseDeferred::visitChildren):
(JSC::createJSPromiseDeferredFromConstructor):
(JSC::updateDeferredFromPotentialThenable):
* runtime/JSPromiseDeferred.h: Added.
(JSC::JSPromiseDeferred::createStructure):
(JSC::JSPromiseDeferred::promise):
(JSC::JSPromiseDeferred::resolve):
(JSC::JSPromiseDeferred::reject):
* runtime/JSPromiseFunctions.cpp: Added.
(JSC::deferredConstructionFunction):
(JSC::createDeferredConstructionFunction):
(JSC::identifyFunction):
(JSC::createIdentifyFunction):
(JSC::promiseAllCountdownFunction):
(JSC::createPromiseAllCountdownFunction):
(JSC::promiseResolutionHandlerFunction):
(JSC::createPromiseResolutionHandlerFunction):
(JSC::rejectPromiseFunction):
(JSC::createRejectPromiseFunction):
(JSC::resolvePromiseFunction):
(JSC::createResolvePromiseFunction):
(JSC::throwerFunction):
(JSC::createThrowerFunction):
* runtime/JSPromiseFunctions.h: Added.
* runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototypeFuncThen):
(JSC::JSPromisePrototypeFuncCatch):
* runtime/JSPromiseReaction.cpp: Added.
(JSC::createExecutePromiseReactionMicroTask):
(JSC::ExecutePromiseReactionMicroTask::run):
(JSC::JSPromiseReaction::create):
(JSC::JSPromiseReaction::JSPromiseReaction):
(JSC::JSPromiseReaction::finishCreation):
(JSC::JSPromiseReaction::visitChildren):
* runtime/JSPromiseReaction.h: Added.
(JSC::JSPromiseReaction::createStructure):
(JSC::JSPromiseReaction::deferred):
(JSC::JSPromiseReaction::handler):
* runtime/JSPromiseResolver.cpp: Removed.
* runtime/JSPromiseResolver.h: Removed.
* runtime/JSPromiseResolverConstructor.cpp: Removed.
* runtime/JSPromiseResolverConstructor.h: Removed.
* runtime/JSPromiseResolverPrototype.cpp: Removed.
* runtime/JSPromiseResolverPrototype.h: Removed.
* runtime/Microtask.h: Added.
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
* runtime/VM.h:

Source/WebCore:

* ForwardingHeaders/runtime/JSPromiseDeferred.h: Added.
* ForwardingHeaders/runtime/JSPromiseResolver.h: Removed.
* bindings/js/JSDOMGlobalObjectTask.cpp:
(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
* bindings/js/JSDOMGlobalObjectTask.h:
* bindings/js/JSDOMPromise.cpp:
(WebCore::DeferredWrapper::DeferredWrapper):
(WebCore::DeferredWrapper::promise):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueTaskToEventLoop):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::encrypt):
(WebCore::JSSubtleCrypto::decrypt):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::digest):
(WebCore::JSSubtleCrypto::generateKey):
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::exportKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
* bindings/js/JSWorkerGlobalScopeBase.h:

LayoutTests:

* crypto/subtle/argument-conversion.html:
* crypto/subtle/resources/common.js:
* crypto/subtle/sha-1.html:
* crypto/subtle/sha-224.html:
* crypto/subtle/sha-256.html:
* crypto/subtle/sha-384.html:
* crypto/subtle/sha-512.html:
* js/dom/Promise-already-fulfilled-expected.txt: Removed.
* js/dom/Promise-already-fulfilled.html: Removed.
* js/dom/Promise-already-rejected.html:
* js/dom/Promise-already-resolved.html:
* js/dom/Promise-catch-expected.txt:
* js/dom/Promise-catch-in-workers-expected.txt:
* js/dom/Promise-catch.html:
* js/dom/Promise-chain.html:
* js/dom/Promise-exception-expected.txt:
* js/dom/Promise-exception.html:
* js/dom/Promise-expected.txt:
* js/dom/Promise-fulfill-expected.txt: Removed.
* js/dom/Promise-fulfill-in-workers-expected.txt: Removed.
* js/dom/Promise-fulfill-in-workers.html: Removed.
* js/dom/Promise-fulfill.html: Removed.
* js/dom/Promise-init-callback-receiver-expected.txt: Added.
* js/dom/Promise-init-callback-receiver.html: Added.
* js/dom/Promise-init-expected.txt:
* js/dom/Promise-init-in-workers-expected.txt:
* js/dom/Promise-init.html:
* js/dom/Promise-onFulfilled-deep-expected.txt: Added.
* js/dom/Promise-onFulfilled-deep.html: Added.
* js/dom/Promise-onRejected-deep-expected.txt: Added.
* js/dom/Promise-onRejected-deep.html: Added.
* js/dom/Promise-reject.html:
* js/dom/Promise-resolve-chain.html:
* js/dom/Promise-resolve-expected.txt:
* js/dom/Promise-resolve-in-workers-expected.txt:
* js/dom/Promise-resolve-state-expected.txt: Added.
* js/dom/Promise-resolve-state-in-workers-expected.txt: Added.
* js/dom/Promise-resolve-state-in-workers.html: Added.
* js/dom/Promise-resolve-state.html: Added.
* js/dom/Promise-resolve-with-itself-expected.txt: Added.
* js/dom/Promise-resolve-with-itself.html: Added.
* js/dom/Promise-resolve-with-then-exception.html:
* js/dom/Promise-resolve-with-then-fulfill-expected.txt:
* js/dom/Promise-resolve-with-then-fulfill.html:
* js/dom/Promise-resolve-with-then-reject-expected.txt:
* js/dom/Promise-resolve-with-then-reject.html:
* js/dom/Promise-resolve.html:
* js/dom/Promise-simple-expected.txt:
* js/dom/Promise-simple-fulfill-expected.txt: Removed.
* js/dom/Promise-simple-fulfill-inside-callback-expected.txt: Removed.
* js/dom/Promise-simple-fulfill-inside-callback.html: Removed.
* js/dom/Promise-simple-fulfill.html: Removed.
* js/dom/Promise-simple-in-workers-expected.txt:
* js/dom/Promise-simple-resolve-expected.txt: Added.
* js/dom/Promise-simple-resolve.html: Added.
* js/dom/Promise-simple.html:
* js/dom/Promise-static-all-expected.txt: Added.
* js/dom/Promise-static-all.html: Added.
* js/dom/Promise-static-cast-expected.txt: Added.
* js/dom/Promise-static-cast.html: Added.
* js/dom/Promise-static-fulfill-expected.txt: Removed.
* js/dom/Promise-static-fulfill.html: Removed.
* js/dom/Promise-static-race-expected.txt: Added.
* js/dom/Promise-static-race.html: Added.
* js/dom/Promise-static-resolve.html:
* js/dom/Promise-then-callback-receiver-expected.txt: Added.
* js/dom/Promise-then-callback-receiver.html: Added.
* js/dom/Promise-then-expected.txt:
* js/dom/Promise-then-in-workers-expected.txt:
* js/dom/Promise-then-without-callbacks.html:
* js/dom/Promise-then.html:
* js/dom/Promise-types-expected.txt:
* js/dom/Promise-types.html:
* js/dom/Promise.html:
* js/resources/Promise-catch-in-workers.js:
* js/resources/Promise-fulfill-in-workers.js: Removed.
* js/resources/Promise-init-in-workers.js:
* js/resources/Promise-reject-in-workers.js:
* js/resources/Promise-resolve-in-workers.js:
* js/resources/Promise-resolve-state-in-workers.js: Added.
* js/resources/Promise-simple-in-workers.js:
* js/resources/Promise-then-in-workers.js:
* js/resources/Promise-then-without-callbacks-in-workers.js:

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

6 years agoAdd support for StoreBarrier and friends to the FTL
mhahnenberg@apple.com [Fri, 3 Jan 2014 00:24:14 +0000 (00:24 +0000)]
Add support for StoreBarrier and friends to the FTL
https://bugs.webkit.org/show_bug.cgi?id=126040

Reviewed by Filip Pizlo.

* ftl/FTLAbstractHeapRepository.h:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileStoreBarrier):
(JSC::FTL::LowerDFGToLLVM::compileConditionalStoreBarrier):
(JSC::FTL::LowerDFGToLLVM::compileStoreBarrierWithNullCheck):
(JSC::FTL::LowerDFGToLLVM::loadMarkByte):
(JSC::FTL::LowerDFGToLLVM::emitStoreBarrier):
* heap/Heap.cpp:
(JSC::Heap::Heap):
* heap/Heap.h:
(JSC::Heap::writeBarrierBuffer):

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

6 years agoImageBufferBackingStoreCache should use DeferrableOneShotTimer
timothy_horton@apple.com [Fri, 3 Jan 2014 00:10:48 +0000 (00:10 +0000)]
ImageBufferBackingStoreCache should use DeferrableOneShotTimer
https://bugs.webkit.org/show_bug.cgi?id=126155

Reviewed by Anders Carlsson.

Since ImageBufferBackingStoreCache's purge timer is pushed out every time
a backing store is deallocated, we can easily waste a lot of time rescheduling
the timer. Since it's a cache purge timer and doesn't need that kind of precision,
adopt DeferrableOneShotTimer, which is much more performant when deferred frequently.

* platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::timerFired):
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
* platform/graphics/cg/ImageBufferBackingStoreCache.h:

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

6 years agoBindings tests results links are broken at build.webkit.org/dashboard
ap@apple.com [Thu, 2 Jan 2014 23:35:04 +0000 (23:35 +0000)]
Bindings tests results links are broken at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126402

Reviewed by Tim Horton.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:
(Buildbot.prototype.bindingsTestResultsURLForIteration): Fixed a typo that was there
since the beginning.

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

6 years agoAllow ImageBuffer to re-use IOSurfaces
mmaxfield@apple.com [Thu, 2 Jan 2014 23:32:47 +0000 (23:32 +0000)]
Allow ImageBuffer to re-use IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=125477

Source/WebCore:

Reviewed by Geoff Garen. Modifications reviewed by Tim Horton.

This patch is taken from r160945, but the modifications to ImageBufferCG.cpp
have been reverted.

This test adds a static class, ImageBufferBackingStoreCache, that vends
IOSurfaces. It remembers IOSurfaces that have been returned to it until
a configurable timeout.

The storage used by this class is in the form of a HashMap from a
bucketed size to the IOSurface. There are many other data structures
that could be used, but this implementation gives a 80% hit rate on
normal browsing of some example sites with Canvas and
text-decoration-skip: ink. Because the buckets are fairly
small (rounding the width and height up to multiples of 8), traversing the
bucket contents takes on average 2 steps.

Test: fast/canvas/canvas-backing-store-reuse.html

* WebCore.xcodeproj/project.pbxproj: Added new caching class
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added.
(WebCore::createIOSurface): Copied from ImageBufferCG.cpp
(WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache
contents
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
(WebCore::ImageBufferBackingStoreCache::get): Static getter
(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management
creation function
(WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management
deletion function
(WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached
IOSurface fit the bill?
(WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup
a bucket and walk through its contents
(WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function
for clients who want a IOSurface from the cache
(WebCore::ImageBufferBackingStoreCache::deallocate): Public
function for clients to return an IOSurface to the pool
* platform/graphics/cg/ImageBufferBackingStoreCache.h: Added.
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):

PerformanceTests:

Reviewed by Geoff Garen.

This test times creating a variety of different sizes of canvases
once some have already been created. The second creation of the
canvases should re-use the existing IOSurfaces.

* Canvas/reuse.html: Added.

LayoutTests:

Reviewed by Geoff Garen.

Now that we're re-using the backing store of canvases, this
test makes sure that if we draw to a canvas, then destroy it,
then create a new canvas (which should share the same backing
store) that it doesn't have the stale data in it

* fast/canvas/canvas-backing-store-reuse-expected.txt: Added.
* fast/canvas/canvas-backing-store-reuse.html: Added.

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

6 years ago"+" is very confusing at http://build.webkit.org/dashboard
ap@apple.com [Thu, 2 Jan 2014 23:24:34 +0000 (23:24 +0000)]
"+" is very confusing at build.webkit.org/dashboard
https://bugs.webkit.org/show_bug.cgi?id=126400

Reviewed by Tim Horton.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._appendPendingRevisionCount): Instead of listing open
source and internal counts separately, simply add them. One can always open a popover
for more detail.

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

6 years agoVideo-seek-with-negative-playback was flaky.
commit-queue@webkit.org [Thu, 2 Jan 2014 23:14:07 +0000 (23:14 +0000)]
Video-seek-with-negative-playback was flaky.
https://bugs.webkit.org/show_bug.cgi?id=126379

Patch by Piotr Grad <p.grad@samsung.com> on 2014-01-02
Reviewed by Eric Carlson.

No new tests. Covered by existing tests.

m_player->setRate() should be called before updating m_playbackRate, because potentiallyPlaying() depends
on endedPlayback(), which checks m_playbackRate.

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

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

6 years agoStoring new CopiedSpace memory into a JSObject should fire a write barrier
mhahnenberg@apple.com [Thu, 2 Jan 2014 22:57:14 +0000 (22:57 +0000)]
Storing new CopiedSpace memory into a JSObject should fire a write barrier
https://bugs.webkit.org/show_bug.cgi?id=126025

Reviewed by Filip Pizlo.

Technically this is creating a pointer between a (potentially) old generation object and a young
generation chunk of memory, thus there needs to be a barrier.

* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGOperations.cpp:
* heap/CopyWriteBarrier.h: Added. This class functions similarly to the WriteBarrier class. It
acts as a proxy for pointers to CopiedSpace. Assignments to the field cause a write barrier to
fire for the object that is the owner of the CopiedSpace memory. This is to ensure during nursery
collections that objects with new backing stores are visited, even if they are old generation objects.
(JSC::CopyWriteBarrier::CopyWriteBarrier):
(JSC::CopyWriteBarrier::operator!):
(JSC::CopyWriteBarrier::operator UnspecifiedBoolType*):
(JSC::CopyWriteBarrier::get):
(JSC::CopyWriteBarrier::operator*):
(JSC::CopyWriteBarrier::operator->):
(JSC::CopyWriteBarrier::set):
(JSC::CopyWriteBarrier::setWithoutWriteBarrier):
(JSC::CopyWriteBarrier::clear):
* heap/Heap.h:
* runtime/JSArray.cpp:
(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::unshiftCountWithArrayStorage):
* runtime/JSCell.h:
(JSC::JSCell::unvalidatedStructure):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::slowDownAndWasteMemory):
* runtime/JSObject.cpp:
(JSC::JSObject::copyButterfly):
(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::JSObject::putByIndex):
(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::getOwnPropertyNames):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::countElements):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
* runtime/JSObject.h:
(JSC::JSObject::butterfly):
(JSC::JSObject::setStructureAndButterfly):
(JSC::JSObject::setButterflyWithoutChangingStructure):
(JSC::JSObject::JSObject):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::putDirectWithoutTransition):
* runtime/MapData.cpp:
(JSC::MapData::ensureSpaceForAppend):
* runtime/Structure.cpp:
(JSC::Structure::materializePropertyMap):

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

6 years agoSource/WebCore: [iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
barraclough@apple.com [Thu, 2 Jan 2014 22:35:58 +0000 (22:35 +0000)]
Source/WebCore: [iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
(also crashes when scrolling certain sites)
https://bugs.webkit.org/show_bug.cgi?id=126401
<rdar://problem/15739334>

Patch by Daniel Bates <dabates@apple.com> on 2014-01-02
Reviewed by Tim Horton.

* page/ios/EventHandlerIOS.mm:
(WebCore::currentEventSlot): Make the shared variable have static-storage duration.

Source/WebKit/mac: Remove WindowIsVisible
https://bugs.webkit.org/show_bug.cgi?id=126270

Reviewed by Tim Horton.

We currently track visibility in two ways - ViewState::IsVisible and ViewState::WindowIsVisible.
The latter detects that the content is hidden in fewer cases than the former, and as such, the
former is always preferable.

This affects the hidden state provided to FocusController::contentAreaDidShowOrHide and to
Plugin::windowVisibilityChanged.

* WebView/WebView.mm:
(-[WebView _windowWillOrderOnScreen:]):
(-[WebView _windowWillOrderOffScreen:]):
    - rename ContainingWindowIsVisible -> ContentIsVisible.

Source/WebKit2: Remove WindowIsVisible
https://bugs.webkit.org/show_bug.cgi?id=126270

Reviewed by Tim Horton.

We currently track visibility in two ways - ViewState::IsVisible and ViewState::WindowIsVisible.
The latter detects that the content is hidden in fewer cases than the former, and as such, the
former is always preferable.

This affects the hidden state provided to FocusController::contentAreaDidShowOrHide and to
Plugin::windowVisibilityChanged.

* Shared/ViewState.h:
    - remove WindowIsVisible.
* UIProcess/API/mac/PageClientImpl.h:
* UIProcess/API/mac/PageClientImpl.mm:
    - remove isWindowVisible.
* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]):
(-[WKView _windowDidMiniaturize:]):
(-[WKView _windowDidDeminiaturize:]):
(-[WKView _windowDidOrderOffScreen:]):
(-[WKView _windowDidOrderOnScreen:]):
    - remove ViewState::WindowIsVisible.
* UIProcess/PageClient.h:
    - remove isWindowVisible.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateViewState):
    - remove handling of ViewState::WindowIsVisible.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::setIsVisible):
(WebKit::PluginView::didInitializePlugin):
* WebProcess/Plugins/PluginView.h:
    - setWindowIsVisible -> setIsVisible.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setViewIsVisible):
(WebKit::WebPage::setViewState):
(WebKit::WebPage::windowAndWebPageAreFocused):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::isVisible):
    - remove m_windowIsVisible, setWindowIsVisible (implementation moved to setViewIsVisible).

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

6 years ago[iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
dbates@webkit.org [Thu, 2 Jan 2014 22:32:19 +0000 (22:32 +0000)]
[iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
(also crashes when scrolling certain sites)
https://bugs.webkit.org/show_bug.cgi?id=126401
<rdar://problem/15739334>

Reviewed by Tim Horton.

* page/ios/EventHandlerIOS.mm:
(WebCore::currentEventSlot): Make the shared variable have static-storage duration.

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

6 years agoRefactor ViewState handling for drawing area / plugins
barraclough@apple.com [Thu, 2 Jan 2014 22:20:05 +0000 (22:20 +0000)]
Refactor ViewState handling for drawing area / plugins
https://bugs.webkit.org/show_bug.cgi?id=126272

Reviewed by Tim Horton.

Instead of all ViewState changes being handled by the WebPage, notify the DrawingArea & PluginView to better encapsulate.

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::viewStateDidChange):
(WebKit::PluginView::platformViewStateDidChange):
    - added, handle changes in ViewState relevant to PluginView.
(WebKit::PluginView::didInitializePlugin):
    - helper function removed.
* WebProcess/Plugins/PluginView.h:
    - added/removed function declarations.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::viewStateDidChange):
    - declare viewStateDidChange.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setActive):
    - no need to notify plugin.
(WebKit::WebPage::setViewIsVisible):
    - no need to notify drawing area.
(WebKit::WebPage::setViewState):
    - send viewStateDidChange to drawing area / plugin.
(WebKit::WebPage::setWindowIsVisible):
    - no need to notify plugin.
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::layerHostingMode):
    - removed setLayerHostingMode.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
    - declare viewStateDidChange.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::viewStateDidChange):
    - added, handle changes in ViewState relevant to DrawingArea.

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

6 years agoMerge didMoveOnscreen / page visibility to isVisible
ap@apple.com [Thu, 2 Jan 2014 22:15:58 +0000 (22:15 +0000)]
Merge didMoveOnscreen / page visibility to isVisible
https://bugs.webkit.org/show_bug.cgi?id=126268

Build fix.

* UIProcess/WebContext.h: Removed some accidental input.

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

6 years agoMerge didMoveOnscreen / page visibility to isVisible
barraclough@apple.com [Thu, 2 Jan 2014 22:06:14 +0000 (22:06 +0000)]
Merge didMoveOnscreen / page visibility to isVisible
https://bugs.webkit.org/show_bug.cgi?id=126268

Reviewed by Tim Horton.

The onscreen state most closely tracks view visibility (though currently
also tracks a mix of in-window state). Make more consistent, simplify,
and move all animation suspension logic to Page, so it can be controlled
by the PageThrottler.

Source/WebCore:

* WebCore.exp.in:
* page/EventHandler.cpp:
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
* page/FrameView.cpp:
(WebCore::FrameView::shouldSetCursor):
* page/Page.cpp:
(WebCore::Page::Page):
    - initialize new variables.
(WebCore::Page::setIsVisible):
    - merge setVisibilityState, didMoveOnscreen, willMoveOffscreen.
(WebCore::Page::setIsPrerender):
    - switches visibility state from hidden to prerender.
(WebCore::Page::visibilityState):
    - computed from m_isVisible, m_isPrerender.
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
    - m_visibilityState -> m_isVisible.
* page/Page.h:
    - remove didMoveOnscreen/willMoveOffscreen
      m_isOnscreen & m_visibilityState -> m_isVisible & m_isPrerender
      setVisibilityState -> setIsVisible & setIsPrerender.
(WebCore::Page::isVisible):
    - isOnscreen -> isVisible.

Source/WebKit/blackberry:

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::setPageVisibilityState):
    - setVisibilityState -> setIsVisible.

Source/WebKit/efl:

* ewk/ewk_view.cpp:
(ewk_view_visibility_state_set):
    - setVisibilityState -> setIsVisible/setIsPrerender.

Source/WebKit/gtk:

* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
(DumpRenderTreeSupportGtk::setPageVisibility):
    - setVisibilityState -> setIsVisible/setIsPrerender.

Source/WebKit/mac:

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _updateVisibilityState]):
    - _setVisibilityState:isInitialState: -> _setIsVisibile:isInitialState:.
(-[WebView _setIsVisible:isInitialState:]):
    - added.
(-[WebView _setVisibilityState:isInitialState:]):
    - setVisibilityState -> setIsVisible/setIsPrerender.
(-[WebView viewWillMoveToWindow:]):
(-[WebView viewDidMoveToWindow]):
    - remove redundant calls to willMoveOffscreen/didMoveOnscreen
      (this is handled by _updateVisibilityState).

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setViewIsVisible):
    - updateVisibilityState -> setIsVisible.
(WebKit::WebPage::setIsInWindow):
    - remove redundant willMoveOffscreen/didMoveOnscreen calls - this is handled
      by setIsVisible.
(WebKit::WebPage::setMayStartMediaWhenInWindow):
    - isOnscreen -> isInWindow. We start media when the view is in a window, not
      when the view is visible.
(WebKit::WebPage::setVisibilityStatePrerender):
    - setVisibilityState -> setIsPrerender.

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

6 years agoUpdate bindings test results
oliver@apple.com [Thu, 2 Jan 2014 21:34:51 +0000 (21:34 +0000)]
Update bindings test results

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

6 years ago[GTK] Fix mismatched header guards in private WK1 header files
zandobersek@gmail.com [Thu, 2 Jan 2014 21:00:06 +0000 (21:00 +0000)]
[GTK] Fix mismatched header guards in private WK1 header files
https://bugs.webkit.org/show_bug.cgi?id=126390

Reviewed by Martin Robinson.

Fix three mismatched header guards that are producing warnings when building with Clang.

* webkit/webkitsecurityoriginprivate.h:
* webkit/webkitviewportattributesprivate.h:
* webkit/webkitwebnavigationactionprivate.h:

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

6 years agoRefactor PutPropertySlot to be aware of custom properties
oliver@apple.com [Thu, 2 Jan 2014 20:56:20 +0000 (20:56 +0000)]
Refactor PutPropertySlot to be aware of custom properties
https://bugs.webkit.org/show_bug.cgi?id=126187

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

Refactor PutPropertySlot, making the constructor take the thisValue
used as a target.  This results in a wide range of boilerplate changes
to pass the new parameter.

* API/JSObjectRef.cpp:
(JSObjectSetProperty):
* dfg/DFGOperations.cpp:
(JSC::DFG::operationPutByValInternal):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
* jit/JITOperations.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* runtime/Arguments.cpp:
(JSC::Arguments::putByIndex):
* runtime/ArrayPrototype.cpp:
(JSC::putProperty):
(JSC::arrayProtoFuncPush):
* runtime/JSCJSValue.cpp:
(JSC::JSValue::putToPrimitiveByIndex):
* runtime/JSCell.cpp:
(JSC::JSCell::putByIndex):
* runtime/JSFunction.cpp:
(JSC::JSFunction::put):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):
* runtime/JSONObject.cpp:
(JSC::Walker::walk):
* runtime/JSObject.cpp:
(JSC::JSObject::putByIndex):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::deleteProperty):
* runtime/JSObject.h:
(JSC::JSObject::putDirect):
* runtime/Lookup.h:
(JSC::putEntry):
(JSC::lookupPut):
* runtime/PutPropertySlot.h:
(JSC::PutPropertySlot::PutPropertySlot):
(JSC::PutPropertySlot::setCustomProperty):
(JSC::PutPropertySlot::thisValue):
(JSC::PutPropertySlot::isCacheable):

Source/WebCore:

Update the bindings code generation and custom objects
to the new function signatures

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject setValue:forKey:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::putByIndex):
* bridge/NP_jsobject.cpp:
(_NPN_SetProperty):

Source/WebKit/mac:

Update for new method signatures.

* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::setProperty):

Source/WebKit2:

Update for new method signatures.

* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::setProperty):

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

6 years agoRationalize DFG DCE
fpizlo@apple.com [Thu, 2 Jan 2014 20:15:25 +0000 (20:15 +0000)]
Rationalize DFG DCE
https://bugs.webkit.org/show_bug.cgi?id=125523

Reviewed by Mark Hahnenberg.

Adds the ability to DCE more things. It's now the case that if a node is completely
pure, we clear NodeMustGenerate and the node becomes a DCE candidate.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::cleanVariables):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::clobbersWorld):
* dfg/DFGNodeType.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileAdd):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileValueAdd):

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

6 years agoAccessing Trac from build.webkit.org/dashboard should enable XMLHttpRequest.withCrede...
ap@apple.com [Thu, 2 Jan 2014 20:06:32 +0000 (20:06 +0000)]
Accessing Trac from build.webkit.org/dashboard should enable XMLHttpRequest.withCredentials
https://bugs.webkit.org/show_bug.cgi?id=126391

Reviewed by Dan Bernstein.

Make it conditional, as trac.webkit.org doesn't work when withCredentials is enabled.
One can request credentials use via Initialization.js.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:
(Trac):
(Trac.prototype.update):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:
(loadXML):

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

6 years agoUnreviewed, rolling out r160846.
commit-queue@webkit.org [Thu, 2 Jan 2014 20:03:36 +0000 (20:03 +0000)]
Unreviewed, rolling out r160846.
http://trac.webkit.org/changeset/160846
https://bugs.webkit.org/show_bug.cgi?id=126395

Breaks build scripts for Windows when Visual Studio is not
installed in Program Files (Requested by rfong on #webkit).

* Scripts/webkitdirs.pm:
(visualStudioInstallDir):

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

6 years ago[GTK] [CMake] run-gtk-tests should run with the cmake build
mrobinson@webkit.org [Thu, 2 Jan 2014 19:45:58 +0000 (19:45 +0000)]
[GTK] [CMake] run-gtk-tests should run with the cmake build
https://bugs.webkit.org/show_bug.cgi?id=126341

Reviewed by Carlos Garcia Campos.

* Scripts/run-gtk-tests:
(TestRunner.__init__): Use the new calling conventions for the common script.
(TestRunner._setup_testing_environment): Ditto.
* gtk/common.py:
(set_build_types): Added set_build_types, to avoid having build_type arguments
for all functions in common.
(binary_build_path): Added this function which gets the path to the built binaries.
(get_build_path): Removed the build_types argument.
(build_path): Removed the build_types argument and call get_build_path directly now.

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

6 years agohttps://bugs.webkit.org/show_bug.cgi?id=126391
ap@apple.com [Thu, 2 Jan 2014 19:42:11 +0000 (19:42 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=126391
Accessing Trac from build.webkit.org/dashboard should enable XMLHttpRequest.withCredentials

Rubber-stamped by Dan Bernstein.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Utilities.js:
(loadXML): Quick and dirty fix, with a FIXME.

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

6 years agoAdd AsyncScrollingCoordinator, which is a base class for threaded and future remote...
simon.fraser@apple.com [Thu, 2 Jan 2014 19:41:45 +0000 (19:41 +0000)]
Add AsyncScrollingCoordinator, which is a base class for threaded and future remote ScrollingCoordinators
https://bugs.webkit.org/show_bug.cgi?id=126389

Source/WebCore:

Reviewed by Tim Horton.

Add AsyncScrollingCoordinator, a ScrollingCoordinator that knows about ScrollingStateTrees
and ScrollingTrees, but leaves it up to subclasses to decide when and how to commit.

* WebCore.xcodeproj/project.pbxproj: Added AsyncScrollingCoordinator.*
* page/scrolling/AsyncScrollingCoordinator.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm.
(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::~AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(WebCore::AsyncScrollingCoordinator::attachToStateTree):
(WebCore::AsyncScrollingCoordinator::detachFromStateTree):
(WebCore::AsyncScrollingCoordinator::clearStateTree):
(WebCore::AsyncScrollingCoordinator::syncChildPositions):
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
(WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
(WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
(WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
(WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
(WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
(WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
(WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::updateMainFrameScrollLayerPosition):
(WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
(WebCore::AsyncScrollingCoordinator::isRubberBandInProgress):
(WebCore::AsyncScrollingCoordinator::setScrollPinningBehavior):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
* page/scrolling/AsyncScrollingCoordinator.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
(WebCore::AsyncScrollingCoordinator::scrollingTree):
(WebCore::AsyncScrollingCoordinator::setScrollingTree):
(WebCore::AsyncScrollingCoordinator::scrollingStateTree):
(WebCore::AsyncScrollingCoordinator::releaseScrollingTree):
* page/scrolling/ScrollingCoordinator.h: Add casting support.
(WebCore::ScrollingCoordinator::isAsyncScrollingCoordinator):
* page/scrolling/ThreadedScrollingTree.h: commitNewTreeState() needs to be public.
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm: Lots of code moved to AsyncScrollingCoordinator.
(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::pageDestroyed):
(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent):
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorMac::commitTreeState):
(WebCore::ScrollingCoordinatorMac::updateTiledScrollingIndicator):

Source/WebKit2:

Reviewed by Tim Horton.

Add AsyncScrollingCoordinator, a ScrollingCoordinator that knows about ScrollingStateTrees
and ScrollingTrees, but leaves it up to subclasses to decide when and how to commit.

* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::addScrollingTreeForPage): The ScrollingTree is exposed on
AsyncScrollingCoordinator now, not ScrollingCoordinator, so we have to cast here.
* WebProcess/WebPage/WebPage.cpp: m_useThreadedScrolling -> m_useAsyncScrolling terminology change.
(WebKit::WebPage::WebPage):
(WebKit::WebPage::~WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences): Cast to AsyncScrollingCoordinator in order
to get to the ScrollingTree.

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

6 years agoSimplify the insides of DocumentSharedObjectPool and reduce memory usage.
akling@apple.com [Thu, 2 Jan 2014 18:45:33 +0000 (18:45 +0000)]
Simplify the insides of DocumentSharedObjectPool and reduce memory usage.

Merging Blink r164152 by Elliott Sprehn.

Instead of storing an OwnPtr to an object that has a pointer to the
ShareableElementData as well as a pointer into the ShareableElementData
and the length we can just store a RefPtr to the SharableElementData.

This also reduces the memory usage of the pool by 2 pointers per entry.

* dom/DocumentSharedObjectPool.h:
* dom/DocumentSharedObjectPool.cpp:
(WebCore::attributeHash):
(WebCore::hasSameAttributes):
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):

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

6 years agoSupport <box> values computed style for 'clip-path' property
krit@webkit.org [Thu, 2 Jan 2014 18:11:51 +0000 (18:11 +0000)]
Support <box> values computed style for 'clip-path' property
https://bugs.webkit.org/show_bug.cgi?id=126148

Reviewed by Simon Fraser.

Source/WebCore:

Calculate computed style for 'clip-path' property.

Updated tests to check for computed style.

* css/BasicShapeFunctions.cpp: Add box value bounding-box.
(WebCore::valueForBox):
(WebCore::boxForValue):
* css/CSSComputedStyleDeclaration.cpp: Return the computed style
    for 'clip-path'.
(WebCore::ComputedStyleExtractor::propertyValue):
* css/DeprecatedStyleBuilder.cpp: Create CSSValueLists for 'clip-th'.
(WebCore::ApplyPropertyClipPath::applyValue):
* rendering/ClipPathOperation.h: Add bounding-box value.
(WebCore::ShapeClipPathOperation::pathForReferenceRect):
(WebCore::ShapeClipPathOperation::setReferenceBox):
(WebCore::ShapeClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::create):
(WebCore::BoxClipPathOperation::pathForReferenceRect):
(WebCore::BoxClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::BoxClipPathOperation):
* rendering/shapes/ShapeInfo.h: Add bounding-box value.
(WebCore::ShapeInfo::setShapeSize):
(WebCore::ShapeInfo::logicalTopOffset):
(WebCore::ShapeInfo::logicalLeftOffset):
* rendering/style/BasicShapes.cpp: Add bounding-box value.
(WebCore::BasicShape::referenceBoxSize):
* rendering/style/BasicShapes.h:

LayoutTests:

Test computed style of 'clip-path' property.

* fast/masking/parsing-clip-path-shape.html:

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

6 years agoAlways resolve style from root
antti@apple.com [Thu, 2 Jan 2014 15:51:59 +0000 (15:51 +0000)]
Always resolve style from root
https://bugs.webkit.org/show_bug.cgi?id=126380

Reviewed by Andreas Kling.

Forced style resolve that does not start from the root is never really correct.
Remove the few remaining instances.

* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::setResetStyleInheritance):

    Update style asynchronously.

* dom/ShadowRoot.h:
* dom/Text.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::createElementRenderer):
(WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
(WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):

    Delete the render tree synchronously on suspend and rebuild it asynchronously on resume.
    No need for m_customStyleForPageCache hack.

* html/HTMLPlugInImageElement.h:

    Remove m_customStyleForPageCache.

* style/StyleResolveTree.cpp:
* style/StyleResolveTree.h:

    Remove Element version of resolveTree from the interface.

* svg/SVGUseElement.h:

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

6 years agoRemove PlaceholderDocument
antti@apple.com [Thu, 2 Jan 2014 15:50:28 +0000 (15:50 +0000)]
Remove PlaceholderDocument
https://bugs.webkit.org/show_bug.cgi?id=126382

Reviewed by Andreas Kling.

Remove PlaceholderDocument class and replace it with a bit in Document.

* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::createRenderTree):
* dom/Document.h:

    Also make Synthesized a construction flag instead of a boolean parameter.

(WebCore::Document::createNonRenderedPlaceholder):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument):
* html/HTMLDocument.h:
(WebCore::HTMLDocument::create):
(WebCore::HTMLDocument::createSynthesizedDocument):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
* loader/PlaceholderDocument.cpp: Removed.
* loader/PlaceholderDocument.h: Removed.
* pdf/ios/PDFDocument.h:
(WebCore::PDFDocument::PDFDocument):

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

6 years agoAttempt to fix the build of WebCore's code generator on CMake based system
benjamin@webkit.org [Thu, 2 Jan 2014 11:43:33 +0000 (11:43 +0000)]
Attempt to fix the build of WebCore's code generator on CMake based system
https://bugs.webkit.org/show_bug.cgi?id=126271

Reviewed by Sam Weinig.

* CMakeLists.txt:

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

6 years agoRemove public attachRenderTree
antti@apple.com [Thu, 2 Jan 2014 09:49:41 +0000 (09:49 +0000)]
Remove public attachRenderTree
https://bugs.webkit.org/show_bug.cgi?id=126368

Reviewed by Andreas Kling.

Remove the remaining explicit render tree construction.

* dom/Document.cpp:
(WebCore::Document::createRenderTree):

   Use recalcStyle() instead of calling attachRenderTree directly.

* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::addText):

    Remove forgotten attachTextRenderer.

* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::InsertionPoint):

    Remove willAttachRenderers/didAttachRenderers hack.

* html/shadow/InsertionPoint.h:
(WebCore::toInsertionPoint):
* loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):

    Seriously, nothing to do here.

* style/StyleResolveTree.cpp:
(WebCore::Style::attachDistributedChildren):
(WebCore::Style::attachChildren):
(WebCore::Style::detachDistributedChildren):
(WebCore::Style::detachChildren):

    Making attaching and detaching distributed insertion point children part of ResolveTree internals.

* style/StyleResolveTree.h:

    Remove interfaces with no clients.

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

6 years agoRemove stale ScriptProfiler methods
seokju@webkit.org [Thu, 2 Jan 2014 06:21:06 +0000 (06:21 +0000)]
Remove stale ScriptProfiler methods
https://bugs.webkit.org/show_bug.cgi?id=126373

Reviewed by Darin Adler.

No new tests, No change behavior.

* bindings/js/ScriptProfiler.h: Remove dead code.

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

6 years agoRemove ChromeClient::fullScreenRendererChanged().
akling@apple.com [Thu, 2 Jan 2014 03:22:05 +0000 (03:22 +0000)]
Remove ChromeClient::fullScreenRendererChanged().
<https://webkit.org/b/126370>

This hook was added in r75277 to notify WebFullScreenController when
the full screen renderer changed. In r110216 the code was refactored,
making this notification unnecessary.

Reviewed by Antti Koivisto.

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

6 years agoFix the build by exposing some more scrolling state node headers
simon.fraser@apple.com [Thu, 2 Jan 2014 02:07:10 +0000 (02:07 +0000)]
Fix the build by exposing some more scrolling state node headers
as Private in WebCore.framework.

* WebCore.xcodeproj/project.pbxproj:

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

6 years ago[EFL] Unreviewed build fix after r160903 when ACCESSIBILITY is disabled
ryuan.choi@samsung.com [Thu, 2 Jan 2014 01:30:20 +0000 (01:30 +0000)]
[EFL] Unreviewed build fix after r160903 when ACCESSIBILITY is disabled

* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::children):

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

6 years agoRenderScrollbar: Map of scrollbar parts should use RenderPtr.
akling@apple.com [Thu, 2 Jan 2014 00:52:55 +0000 (00:52 +0000)]
RenderScrollbar: Map of scrollbar parts should use RenderPtr.
<https://webkit.org/b/126367>

Turn RenderScrollbar::m_parts into HashMap of RenderPtrs. This makes
renderer destruction automatic and lets us remove some code.

Reviewed by Antti Koivisto.

* rendering/RenderPtr.h:

    Add HashTraits for RenderPtr so we can use them as values in
    WTF hash tables.

* rendering/RenderScrollbar.h:
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::~RenderScrollbar):
(WebCore::RenderScrollbar::setParent):
(WebCore::RenderScrollbar::updateScrollbarParts):
(WebCore::RenderScrollbar::updateScrollbarPart):

    Remove now-unneeded kludges of logic to manually delete scrollbar
    part renderers in various scenarios.

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

6 years agoRemove reattachRenderTree
antti@apple.com [Thu, 2 Jan 2014 00:31:40 +0000 (00:31 +0000)]
Remove reattachRenderTree
https://bugs.webkit.org/show_bug.cgi?id=126366

Reviewed by Andreas Kling.

Remove the last remaining client.

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

    Reconstruct render tree asynchronously.

(WebCore::HTMLSelectElement::scrollToSelection):
(WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
(WebCore::HTMLSelectElement::selectOption):

    It is not safe to cast the renderer based on usesMenuList test. Switch to RenderObject::isMenuList test.

(WebCore::HTMLSelectElement::parseMultipleAttribute):

    Reconstruct render tree asynchronously.

(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):
* style/StyleResolveTree.cpp:
* style/StyleResolveTree.h:

    Remove the function.

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

6 years agoCreate a ThreadedScrollingTree subclass of ScrollingTree, and push all knowledge...
simon.fraser@apple.com [Wed, 1 Jan 2014 23:20:25 +0000 (23:20 +0000)]
Create a ThreadedScrollingTree subclass of ScrollingTree, and push all knowledge of the scrolling thread into it
https://bugs.webkit.org/show_bug.cgi?id=126362

Reviewed by Sam Weinig.

Eventually we'll have a ScrollingTree in situations where there is no scrolling
thread, so make the ScrollingTree base class thread-agnostic (but threadsafe),
and subclass it in ThreadedScrollingTree for scrolling-thread-specific functionality.

The ScrollingTree base class also no longer needs to know about the
ScrollingCoordinator.

ScrollingCoordinatorMac creates a ThreadedScrollingTree.

Source/WebCore:

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj: Add ThreadedScrollingTree.*
Make some headers Private that we'll need in WebKit2 soon.
* page/scrolling/ScrollingStateTree.h: Drive-by cleanup: clone() was unimplemented.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):
(WebCore::ScrollingTree::~ScrollingTree):
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Wrap up some logic that
involves taking the mutex, so ThreadedScrollingTree can conveniently call it.
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::isHandlingProgrammaticScroll):
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::isThreadedScrollingTree):
(WebCore::ScrollingTree::invalidate):
* page/scrolling/ThreadedScrollingTree.cpp: Added.
(WebCore::ThreadedScrollingTree::create):
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::~ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::tryToHandleWheelEvent):
(WebCore::ThreadedScrollingTree::handleWheelEvent):
(WebCore::derefScrollingCoordinator):
(WebCore::ThreadedScrollingTree::invalidate):
(WebCore::ThreadedScrollingTree::commitNewTreeState):
(WebCore::ThreadedScrollingTree::updateMainFrameScrollPosition):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):
* page/scrolling/ThreadedScrollingTree.h: Added.
(WebCore::ThreadedScrollingTree::isThreadedScrollingTree):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent):

Source/WebKit2:

* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::addScrollingTreeForPage):
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/EventDispatcher.h:

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

6 years agoFrameView: Store scroll corner renderer in a RenderPtr.
akling@apple.com [Wed, 1 Jan 2014 23:18:46 +0000 (23:18 +0000)]
FrameView: Store scroll corner renderer in a RenderPtr.
<https://webkit.org/b/126364>

Make FrameView::m_scrollCorner a RenderPtr<RenderScrollbarPart> and
remove two manual destroy() calls.

Reviewed by Antti Koivisto.

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

6 years agoRemove elementChildren/elementDescendants shorthands
antti@apple.com [Wed, 1 Jan 2014 21:48:13 +0000 (21:48 +0000)]
Remove elementChildren/elementDescendants shorthands
https://bugs.webkit.org/show_bug.cgi?id=126363

Reviewed by Anders Carlsson.

Just use childrenOfType<Element>/descendantsOfType<Element> instead. They are not that much longer
and consistency is valuable.

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
(WebCore::siblingWithAriaRole):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::namedItem):
* dom/Document.cpp:
(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::childrenChanged):
* dom/Element.cpp:
(WebCore::Element::resetComputedStyle):
* dom/ElementChildIterator.h:
* dom/ElementDescendantIterator.h:
* dom/SelectorQuery.cpp:
(WebCore::elementsForLocalName):
(WebCore::anyElement):
(WebCore::SelectorDataList::executeSingleTagNameSelectorData):
(WebCore::SelectorDataList::executeSingleClassNameSelectorData):
(WebCore::SelectorDataList::executeSingleSelectorData):
(WebCore::SelectorDataList::executeSingleMultiSelectorData):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::removeHeadContents):
* editing/markup.cpp:
(WebCore::completeURLs):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::containsJavaApplet):
* loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):
* rendering/RenderChildIterator.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::getElementById):
* svg/SVGUseElement.cpp:
(WebCore::subtreeContainsDisallowedElement):
(WebCore::removeDisallowedElementsFromSubtree):

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

6 years agoDo less synchronous render tree construction
antti@apple.com [Wed, 1 Jan 2014 21:20:51 +0000 (21:20 +0000)]
Do less synchronous render tree construction
https://bugs.webkit.org/show_bug.cgi?id=126359

Source/WebCore:

Reviewed by Anders Carlsson.

Remove some now-unnecessary attachRenderTree calls.

* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::parseAttribute):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderFallbackContent):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::willRecalcStyle):
(WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree):
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable):
(WebCore::HTMLViewSourceDocument::addSpanWithClassName):
(WebCore::HTMLViewSourceDocument::addLine):
(WebCore::HTMLViewSourceDocument::finishLine):
(WebCore::HTMLViewSourceDocument::addBase):
(WebCore::HTMLViewSourceDocument::addLink):
* xml/XMLErrors.cpp:
(WebCore::XMLErrors::insertErrorMessageBlock):

LayoutTests:

* fast/html/object-image-nested-fallback.html: Update test to work with asynchronous load failures.
* fast/overflow/overflow-height-float-not-removed-crash3-expected.txt: Whitespace change.

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

6 years agoUpdating the scrolling tree should use references to state nodes
simon.fraser@apple.com [Wed, 1 Jan 2014 19:53:21 +0000 (19:53 +0000)]
Updating the scrolling tree should use references to state nodes
https://bugs.webkit.org/show_bug.cgi?id=126360

Reviewed by Anders Carlsson.

Change functions related to ScrollingTreeNode updating to take
const references to state nodes rather than pointers.

* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::hasChangedProperty):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::updateTreeFromStateNode): The node can be nil so
this continues to take a pointer.
(WebCore::ScrollingTree::removeDestroyedNodes):
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::updateAfterChildren):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::updateBeforeChildren):

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

6 years agoUnreviewed GTK gardening.
zandobersek@gmail.com [Wed, 1 Jan 2014 18:36:15 +0000 (18:36 +0000)]
Unreviewed GTK gardening.
Updating test baselines after the introduction of lazy render tree attaching,
enabling the saturated layout arithmetics for the GTK port, and other changes.

* platform/gtk/css2.1/t0905-c414-flt-wrap-00-e-expected.txt:
* platform/gtk/fast/backgrounds/size/contain-and-cover-zoomed-expected.txt:
* platform/gtk/fast/block/float/016-expected.txt:
* platform/gtk/fast/css-generated-content/table-row-group-to-inline-expected.txt:
* platform/gtk/fast/dynamic/011-expected.txt:
* platform/gtk/fast/forms/formmove3-expected.txt:
* platform/gtk/fast/forms/preserveFormDuringResidualStyle-expected.txt:
* platform/gtk/fast/invalid/001-expected.txt:
* platform/gtk/fast/invalid/003-expected.txt:
* platform/gtk/fast/invalid/004-expected.txt:
* platform/gtk/fast/invalid/007-expected.txt:
* platform/gtk/fast/invalid/019-expected.txt:
* platform/gtk/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
* platform/gtk/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
* platform/gtk/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
* platform/gtk/fast/ruby/ruby-base-merge-block-children-crash-expected.txt:
* platform/gtk/fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction-expected.txt:
* platform/gtk/fast/table/empty-cells-expected.txt:
* platform/gtk/tables/mozilla/bugs/bug113235-1-expected.txt:
* platform/gtk/tables/mozilla/bugs/bug647-expected.txt:
* platform/gtk/tables/mozilla/other/wa_table_tr_align-expected.txt:

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

6 years agoAdd a typedef for PlatformLayerID on GraphicsLayer, and migrate RemoteLayerTreeTransa...
simon.fraser@apple.com [Wed, 1 Jan 2014 18:34:02 +0000 (18:34 +0000)]
Add a typedef for PlatformLayerID on GraphicsLayer, and migrate RemoteLayerTreeTransaction to use it
https://bugs.webkit.org/show_bug.cgi?id=126346

Source/WebCore:

Reviewed by Tim Horton.

Remote scrolling tree code is soon going to use RemoteLayerTreeTransaction::LayerID,
so it makes more sense to put this layerID type on GraphicsLayer as
GraphicsLayer::PlatformLayerID.

Also add some type cast macros for PlatformCALayer and subclasses, and use them
where appropriate.

* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setName):
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::isPlatformCALayerMac):
(WebCore::PlatformCALayer::isPlatformCALayerRemote):
(WebCore::PlatformCALayer::PlatformCALayer):
* platform/graphics/ca/mac/PlatformCALayerMac.h:

Source/WebKit2:

Reviewed by Tim Horton.

Remote scrolling tree code is soon going to use RemoteLayerTreeTransaction::LayerID,
so it makes more sense to put this layerID type on GraphicsLayer as
GraphicsLayer::PlatformLayerID.

Also add some type cast macros for PlatformCALayer and subclasses, and use them
where appropriate.

* Shared/mac/RemoteLayerTreePropertyApplier.h:
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::rootLayerID):
(WebKit::RemoteLayerTreeTransaction::changedLayers):
(WebKit::RemoteLayerTreeTransaction::destroyedLayers):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::setRootLayerID):
(WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):
* UIProcess/mac/RemoteLayerTreeHost.h:
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::commit):
(WebKit::RemoteLayerTreeHost::getLayer):
* WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
(WebKit::GraphicsLayerCARemote::primaryLayerID):
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(generateLayerID):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
(WebKit::PlatformCALayerRemote::layerID):
* WebProcess/WebPage/mac/RemoteLayerTreeContext.h:

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

6 years agoScrollingStateNodes should have a reference to the ScrollingStateTree
simon.fraser@apple.com [Wed, 1 Jan 2014 18:26:29 +0000 (18:26 +0000)]
ScrollingStateNodes should have a reference to the ScrollingStateTree
https://bugs.webkit.org/show_bug.cgi?id=126348

Reviewed by Sam Weinig.

Make ScrollingStateNodes always belong to a ScrollingStateTree, and thus
have a reference to the tree rather than a pointer. When cloning nodes,
they are adopted by a new ScrollingStateTree, which adds them to its
node map (which didn't happen before).

In subclasses access the ScrollingStateTree through a member function.

* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::create):
(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
(WebCore::ScrollingStateFixedNode::clone):
(WebCore::ScrollingStateFixedNode::updateConstraints):
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::cloneAndReset):
(WebCore::ScrollingStateNode::cloneAndResetChildren):
(WebCore::ScrollingStateNode::willBeRemovedFromStateTree):
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::scrollingStateTree):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::create):
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::clone):
(WebCore::ScrollingStateScrollingNode::setViewportRect):
(WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
(WebCore::ScrollingStateScrollingNode::setScrollOrigin):
(WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
(WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
(WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
(WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
(WebCore::ScrollingStateScrollingNode::setHeaderHeight):
(WebCore::ScrollingStateScrollingNode::setFooterHeight):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::create):
(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
(WebCore::ScrollingStateStickyNode::clone):
(WebCore::ScrollingStateStickyNode::updateConstraints):
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::commit):
(WebCore::ScrollingStateTree::addNode):
* page/scrolling/ScrollingStateTree.h:
* page/scrolling/mac/ScrollingStateNodeMac.mm:
(WebCore::ScrollingStateNode::setScrollLayer):
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):
(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):

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

6 years agoGive ScrollingStateNodes a nodeType()
simon.fraser@apple.com [Wed, 1 Jan 2014 18:14:27 +0000 (18:14 +0000)]
Give ScrollingStateNodes a nodeType()
https://bugs.webkit.org/show_bug.cgi?id=126347

Reviewed by Tim Horton.

When we start serializing ScrollingStateNodes to send to the UI process,
it's more convenient if they have a nodeType member rather than virtual functions,
so give them one, and fix the casting macros to use it. This allows us to use
a switch() on node creation, so the compiler will tell us if we forgot to create
a node type.

* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode):
* page/scrolling/ScrollingStateNode.h: const ScrollingNodeType field
(can't be modified after construction), and move the m_scrollingStateTree
member after it (the awkward protected:/private: will be cleaned up in a later patch).
(WebCore::ScrollingStateNode::nodeType):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):

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

6 years ago[GTK] [CMake] Fix the WEBKIT_SRC_DIR define when building the WebKit2 GObject API...
mrobinson@webkit.org [Wed, 1 Jan 2014 15:41:43 +0000 (15:41 +0000)]
[GTK] [CMake] Fix the WEBKIT_SRC_DIR define when building the WebKit2 GObject API unit tests
https://bugs.webkit.org/show_bug.cgi?id=126350

Reviewed by Carlos Garcia Campos.

* UIProcess/API/gtk/tests/CMakeLists.txt: Fix the define.

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

6 years ago[GTK] Rename libtestnetscapeplugin to libTestNetscapePlugin
mrobinson@webkit.org [Wed, 1 Jan 2014 15:35:00 +0000 (15:35 +0000)]
[GTK] Rename libtestnetscapeplugin to libTestNetscapePlugin
https://bugs.webkit.org/show_bug.cgi?id=126349

Reviewed by Carlos Garcia Campos.

All CMake ports use "libTestNetscapePlugin," so choosing the same
name in the autotools port will make the transition easier.

Source/WebKit2:

* UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
(testWebContextGetPlugins): Use the new plugin library name.

Tools:

* GNUmakefile.am: Rename the plugin library.

LayoutTests:

* platform/gtk/plugins/plugin-javascript-access-expected.txt: Change the plugin name.

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

6 years ago[GTK][WK2] Back items are shown in reverse order in MiniBrowser
changseok.oh@collabora.com [Wed, 1 Jan 2014 13:35:13 +0000 (13:35 +0000)]
[GTK][WK2] Back items are shown in reverse order in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=126354

Reviewed by Carlos Garcia Campos.

The latest visited site for backward history should be placed on the top of a history stack
as a common behavior. However currently its order is reverse.

* MiniBrowser/gtk/BrowserWindow.c:
(browserWindowUpdateNavigationActions):

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

6 years ago[Gtk] WebKitWebInspector has build warnings due to uninitialized didChangeAttachedWid...
b.long@cablelabs.com [Wed, 1 Jan 2014 01:08:13 +0000 (01:08 +0000)]
[Gtk] WebKitWebInspector has build warnings due to uninitialized didChangeAttachedWidth member
https://bugs.webkit.org/show_bug.cgi?id=126353

Reviewed by Martin Robinson.

* UIProcess/API/gtk/WebKitWebInspector.cpp:
(webkitWebInspectorCreate): Initialize didChangeAttachedWidth to null.

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

6 years ago[iOS] Upstream PLATFORM(IOS) changes to Source/WebKit/
aestes@apple.com [Tue, 31 Dec 2013 23:46:34 +0000 (23:46 +0000)]
[iOS] Upstream PLATFORM(IOS) changes to Source/WebKit/
https://bugs.webkit.org/show_bug.cgi?id=125746

Reviewed by David Kilzer.

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj: Added WebDatabaseManagerInternal.h
and iOS.xcconfig.

Source/WebKit/ios:

* WebCoreSupport/WebVisiblePosition.mm:
(-[WebVisiblePosition positionAtStartOrEndOfWord]): Changed a comment
to mention iOS rather than iPhone.

Source/WebKit/mac:

This is a straight upstreaming of the various PLATFORM(IOS) changes
made to Source/WebKit/ with the following modifications:

- Includes of <Cocoa/Cocoa.h> were generally replaced with an include
of <Foundation/Foundation.h> followed by an include of
<AppKit/AppKit.h> on non-iOS platforms. This assumes that nobody was
relying on <Cocoa/Cocoa.h>'s inclusion of <CoreData/CoreData.h>.

- Includes of <Cocoa/Cocoa.h> and <Foundation/Foundation.h> were
removed from files that include WebKitPrefix.h.

- Instances of 'iPhone (OS)' in comments were replaced with 'iOS', and
other sensitive terms were elided.

- Various PLATFORM(IOS) blocks were simplified. For instance:

    #if !PLATFORM(IOS)
    ...
    #endif
    #if PLATFORM(IOS)
    ...
    #endif

Was simplified to:

    #if !PLATFORM(IOS)
    ...
    #else
    ...
    #endif

* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebKit.xcconfig:
* Configurations/iOS.xcconfig: Added.
* DOM/WebDOMOperations.mm:
* DefaultDelegates/WebDefaultContextMenuDelegate.mm:
* DefaultDelegates/WebDefaultEditingDelegate.m:
* DefaultDelegates/WebDefaultPolicyDelegate.m:
* DefaultDelegates/WebDefaultUIDelegate.h:
* DefaultDelegates/WebDefaultUIDelegate.m:
* History/WebBackForwardList.mm:
* History/WebHistory.mm:
* History/WebHistoryItem.mm:
* History/WebURLsWithTitles.m:
* Misc/WebCache.mm:
* Misc/WebDownload.mm:
* Misc/WebElementDictionary.mm:
* Misc/WebIconDatabase.mm:
* Misc/WebIconDatabaseInternal.h:
* Misc/WebKitNSStringExtras.mm:
* Misc/WebKitSystemBits.m:
* Misc/WebKitVersionChecks.h:
* Misc/WebKitVersionChecks.m:
* Misc/WebLocalizableStrings.mm:
* Misc/WebNSArrayExtras.h:
* Misc/WebNSArrayExtras.m:
* Misc/WebNSControlExtras.h:
* Misc/WebNSControlExtras.m:
* Misc/WebNSDictionaryExtras.h:
* Misc/WebNSDictionaryExtras.m:
* Misc/WebNSEventExtras.m:
* Misc/WebNSFileManagerExtras.mm:
* Misc/WebNSImageExtras.h:
* Misc/WebNSImageExtras.m:
* Misc/WebNSPasteboardExtras.mm:
* Misc/WebNSPrintOperationExtras.h:
* Misc/WebNSPrintOperationExtras.m:
* Misc/WebNSURLExtras.mm:
* Misc/WebNSViewExtras.m:
* Misc/WebNSWindowExtras.m:
* Panels/WebAuthenticationPanel.h:
* Panels/WebAuthenticationPanel.m:
* Panels/WebPanelAuthenticationHandler.m:
* Plugins/Hosted/WebHostedNetscapePluginView.mm:
* Plugins/WebBasePluginPackage.h:
* Plugins/WebBasePluginPackage.mm:
* Plugins/WebJavaPlugIn.h:
* Plugins/WebPluginContainerCheck.mm:
* Plugins/WebPluginController.h:
* Plugins/WebPluginController.mm:
* Plugins/WebPluginDatabase.mm:
* Plugins/WebPluginPackage.mm:
* Plugins/WebPluginsPrivate.m:
* Storage/WebDatabaseManager.mm:
* Storage/WebDatabaseManagerClient.h:
* Storage/WebDatabaseManagerClient.mm:
* Storage/WebDatabaseManagerInternal.h: Added.
* Storage/WebStorageManager.mm:
* WebCoreSupport/CorrectionPanel.h:
* WebCoreSupport/WebAlternativeTextClient.h:
* WebCoreSupport/WebApplicationCache.mm:
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
* WebCoreSupport/WebContextMenuClient.mm:
* WebCoreSupport/WebEditorClient.h:
* WebCoreSupport/WebEditorClient.mm:
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
* WebCoreSupport/WebFrameNetworkingContext.h:
* WebCoreSupport/WebFrameNetworkingContext.mm:
* WebCoreSupport/WebGeolocationClient.h:
* WebCoreSupport/WebGeolocationClient.mm:
* WebCoreSupport/WebJavaScriptTextInputPanel.m:
* WebCoreSupport/WebKeyGenerator.mm:
* WebCoreSupport/WebNotificationClient.mm:
* WebCoreSupport/WebOpenPanelResultListener.mm:
* WebCoreSupport/WebSecurityOrigin.mm:
* WebCoreSupport/WebSystemInterface.mm:
* WebKitPrefix.h:
* WebView/WebArchive.mm:
* WebView/WebClipView.h:
* WebView/WebDataSource.mm:
* WebView/WebDelegateImplementationCaching.h:
* WebView/WebDelegateImplementationCaching.mm:
* WebView/WebDeviceOrientation.mm:
* WebView/WebDocumentInternal.h:
* WebView/WebDocumentLoaderMac.mm:
* WebView/WebDynamicScrollBarsViewInternal.h:
* WebView/WebFormDelegate.m:
* WebView/WebFrame.mm:
* WebView/WebFrameInternal.h:
* WebView/WebFrameView.mm:
* WebView/WebFullScreenController.h:
* WebView/WebFullScreenController.mm:
* WebView/WebHTMLRepresentation.mm:
* WebView/WebHTMLView.mm:
* WebView/WebHTMLViewInternal.h:
* WebView/WebPDFDocumentExtras.h:
* WebView/WebPDFDocumentExtras.mm:
* WebView/WebPDFRepresentation.h:
* WebView/WebPDFRepresentation.mm:
* WebView/WebPDFView.h:
* WebView/WebPDFView.mm:
* WebView/WebPreferences.mm:
* WebView/WebResource.mm:
* WebView/WebTextCompletionController.h:
* WebView/WebTextIterator.mm:
* WebView/WebView.mm:
* WebView/WebViewData.h:
* WebView/WebViewData.mm:
* WebView/WebViewInternal.h:

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

6 years agoOut-of-line RenderStyle substructure copying helpers.
akling@apple.com [Tue, 31 Dec 2013 16:40:50 +0000 (16:40 +0000)]
Out-of-line RenderStyle substructure copying helpers.
<https://webkit.org/b/126340>

This shrinks the .access() calls by moving memory allocation logic
out-of-line, though I'm really doing this to make Instruments.app
allocations output more readable.

Writes to e.g 'font' or 'color' will now be grouped under a single
StyleInheritedData::copy() call instead of being spread out over
setFontDescription(), setLineHeight(), setColor(), etc.

Reviewed by Anders Carlsson.

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

6 years agoRenderListItem should store its marker in a RenderPtr.
akling@apple.com [Tue, 31 Dec 2013 16:16:32 +0000 (16:16 +0000)]
RenderListItem should store its marker in a RenderPtr.
<https://webkit.org/b/126298>

Make RenderListItem::m_marker a RenderPtr<RenderListMarker> and
remove two manual destroy() calls. Tweaked code to reduce nesting.

Reviewed by Anders Carlsson.

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

6 years ago[GTK] Make the output directory of GObject unit tests binaries consistent with the...
mrobinson@webkit.org [Tue, 31 Dec 2013 16:14:39 +0000 (16:14 +0000)]
[GTK] Make the output directory of GObject unit tests binaries consistent with the CMake build
https://bugs.webkit.org/show_bug.cgi?id=126297

Reviewed by Philippe Normand.

Source/WebKit/gtk:

* tests/GNUmakefile.am: Build the tests in the new directory.

Source/WebKit2:

* UIProcess/API/gtk/tests/GNUmakefile.am: Build the tests in the new directory.
* UIProcess/API/gtk/tests/TestInspectorServer.cpp:
(startTestServer): Update the search path to reflect the new directory.
* UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp:
(startTestServer): Update the search path to reflect the new directory.

Tools:

* Scripts/run-gtk-tests: Looks for the tests in the new directories.
(TestRunner): Ditto.
(TestRunner._run_test): Ditto.

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

6 years agoElement's renderer factory should return RenderPtrs.
akling@apple.com [Tue, 31 Dec 2013 14:05:28 +0000 (14:05 +0000)]
Element's renderer factory should return RenderPtrs.
<https://webkit.org/b/126318>

Rename Element::createRenderer() to createElementRenderer() and have
it return RenderPtr<RenderElement>. Propagate signature until it
builds again.

We leakPtr() the renderer at two call sites when handing things over
to raw pointer API. This'll get tidied up in subsequent patches.

Reviewed by Sam Weinig.

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

6 years ago[SOUP] Return early in ResourceHandle::receivedCancellation if the load has already...
carlosgc@webkit.org [Tue, 31 Dec 2013 08:34:32 +0000 (08:34 +0000)]
[SOUP] Return early in ResourceHandle::receivedCancellation if the load has already cancelled
https://bugs.webkit.org/show_bug.cgi?id=126287

Reviewed by Martin Robinson.

This situation can happen when using the network process, because
the ReceivedCancellation message can be received when the resource
loader has already been removed, but the authentication challenge
still has a reference to the ResourceHandleClient.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::receivedCancellation):

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

6 years ago[SOUP] The initiating page is lost after a redirection
carlosgc@webkit.org [Tue, 31 Dec 2013 08:32:10 +0000 (08:32 +0000)]
[SOUP] The initiating page is lost after a redirection
https://bugs.webkit.org/show_bug.cgi?id=126293

Reviewed by Martin Robinson.

The initiating page id is attached to the initial soup request
object, but not to the one created after a redirection.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::createSoupRequestAndMessageForHandle): Call
setSoupRequestInitiatingPageIDFromNetworkingContext() here if the
soup request is created successfully.
(WebCore::ResourceHandle::start): Remove the call to
setSoupRequestInitiatingPageIDFromNetworkingContext().

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

6 years ago[SOUP] Implement ResourceHandle::continueWillSendRequest()
carlosgc@webkit.org [Tue, 31 Dec 2013 08:30:26 +0000 (08:30 +0000)]
[SOUP] Implement ResourceHandle::continueWillSendRequest()
https://bugs.webkit.org/show_bug.cgi?id=126291

Reviewed by Martin Robinson.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::continueAfterWillSendRequest): Helper function that
continues with the load after willSendRequest has been called.
(WebCore::doRedirect): Call continueAfterWillSendRequest() when
client doesn't use async callbacks.
(WebCore::ResourceHandle::continueWillSendRequest): Call
continueAfterWillSendRequest().

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

6 years ago[SOUP] willSendRequest doesn't work after a redirect
carlosgc@webkit.org [Tue, 31 Dec 2013 08:28:17 +0000 (08:28 +0000)]
[SOUP] willSendRequest doesn't work after a redirect
https://bugs.webkit.org/show_bug.cgi?id=126290

Reviewed by Martin Robinson.

Source/WebCore:

The problem is that we are creating the new soup request for the
redirect before calling ResourceHandleClient::willSendRequest() so
that any change made to the request by the client is ignored.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect): Create the new soup request and soup
message for the redirect after calling willSendRequest() on the
client.

Source/WebKit2:

Add test cases to test send-request signal in case of
redirection.

* UIProcess/API/gtk/tests/TestResources.cpp:
(testWebResourceSendRequest):
(serverCallback):

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

6 years agoUnreviewed, rolling out r161157, r161158, r161160, r161161,
commit-queue@webkit.org [Tue, 31 Dec 2013 06:54:20 +0000 (06:54 +0000)]
Unreviewed, rolling out r161157, r161158, r161160, r161161,
r161163, and r161165.
http://trac.webkit.org/changeset/161157
http://trac.webkit.org/changeset/161158
http://trac.webkit.org/changeset/161160
http://trac.webkit.org/changeset/161161
http://trac.webkit.org/changeset/161163
http://trac.webkit.org/changeset/161165
https://bugs.webkit.org/show_bug.cgi?id=126332

Broke WebKit2 on Mountain Lion (Requested by ap on #webkit).

Source/JavaScriptCore:

* heap/BlockAllocator.cpp:
(JSC::BlockAllocator::~BlockAllocator):
(JSC::BlockAllocator::waitForRelativeTimeWhileHoldingLock):
(JSC::BlockAllocator::waitForRelativeTime):
(JSC::BlockAllocator::blockFreeingThreadMain):
* heap/BlockAllocator.h:
(JSC::BlockAllocator::deallocate):

Source/WebKit2:

* Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::wait):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):

Source/WTF:

* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/Forward.h:
* wtf/PlatformWin.cmake:
* wtf/threads/BinarySemaphore.cpp: Added.
(WTF::BinarySemaphore::BinarySemaphore):
(WTF::BinarySemaphore::~BinarySemaphore):
(WTF::BinarySemaphore::signal):
(WTF::BinarySemaphore::wait):
* wtf/threads/BinarySemaphore.h: Added.
(WTF::BinarySemaphore::event):
* wtf/threads/win/BinarySemaphoreWin.cpp: Added.
(WTF::BinarySemaphore::BinarySemaphore):
(WTF::BinarySemaphore::~BinarySemaphore):
(WTF::BinarySemaphore::signal):
(WTF::BinarySemaphore::wait):

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

6 years agofull_results.json should distinguish unexpected failures from expected ones
ap@apple.com [Tue, 31 Dec 2013 06:32:59 +0000 (06:32 +0000)]
full_results.json should distinguish unexpected failures from expected ones
https://bugs.webkit.org/show_bug.cgi?id=126300

Reviewed by Timothy Hatcher.

* Scripts/webkitpy/layout_tests/models/test_run_results.py:
(summarize_results): Add "report" element to JSON, which tells the consumer how
this result was counted for summary.

* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
Updated results to include the new element.

* Scripts/webkitpy/layout_tests/views/buildbot_results.py:
(print_unexpected_results): Added a comment pointing to another place that
summarizes results, and should stay in sync.

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

6 years ago[Windows] Disable some annoying build warnings.
roger_fong@apple.com [Tue, 31 Dec 2013 04:46:02 +0000 (04:46 +0000)]
[Windows] Disable some annoying build warnings.

* win/tools/vsprops/common.props:

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

6 years agoInputType should return input renderers wrapped in RenderPtr.
akling@apple.com [Tue, 31 Dec 2013 03:02:25 +0000 (03:02 +0000)]
InputType should return input renderers wrapped in RenderPtr.
<https://webkit.org/b/126307>

Rename InputType::createRenderer() to createInputRenderer() and
make it return RenderPtr<RenderElement>. Also made it non-const.

Reviewed by Anders Carlsson.

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

6 years agoCleanup static_cast<HTMLFormElement*> by using toHTMLFormElement()
gyuyoung.kim@samsung.com [Tue, 31 Dec 2013 02:58:28 +0000 (02:58 +0000)]
Cleanup static_cast<HTMLFormElement*> by using toHTMLFormElement()
https://bugs.webkit.org/show_bug.cgi?id=126309

Reviewed by Andreas Kling.

To detect bad type casts, it would be good to use toHTMLFormElement() instead of
using manual type cast. Additionally FORM_ASSOCIATED_ELEMENT_TYPE_CASTS is introduced newly
to do it.

Source/WebCore:

No new tests, no behavior changes.

* html/FormAssociatedElement.h:
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submitImplicitly):
(WebCore::HTMLFormElement::validateInteractively):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::defaultButton):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
(WebCore::HTMLFormElement::documentDidResumeFromPageCache):
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):

Source/WebKit/blackberry:

* WebCoreSupport/CredentialTransformData.cpp:
(WebCore::CredentialTransformData::findPasswordFormFields):
* WebKitSupport/DOMSupport.cpp:
(BlackBerry::WebKit::DOMSupport::toTextControlElement):
* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::updateFormState):
(BlackBerry::WebKit::InputHandler::submitForm):

Source/WebKit/win:

* WebFrame.cpp:
(WebFrame::elementWithName):

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

6 years agoTry to fix the test failures seen on the bots.
andersca@apple.com [Tue, 31 Dec 2013 02:14:18 +0000 (02:14 +0000)]
Try to fix the test failures seen on the bots.

Restore the BinarySemaphore behavior that existed in the old binary semaphore.

* Platform/IPC/Connection.cpp:
(IPC::BinarySemaphore::wait):

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

6 years agoReplace yield() and pauseBriefly() with std::this_thread::yield()
andersca@apple.com [Tue, 31 Dec 2013 02:05:38 +0000 (02:05 +0000)]
Replace yield() and pauseBriefly() with std::this_thread::yield()
https://bugs.webkit.org/show_bug.cgi?id=126105

Reviewed by Sam Weinig.

Source/WebCore:

* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::interrupt):

Source/WTF:

* wtf/ByteSpinLock.h:
(WTF::ByteSpinLock::lock):
* wtf/Threading.h:
* wtf/ThreadingPrimitives.h:
* wtf/ThreadingPthreads.cpp:
* wtf/ThreadingWin.cpp:

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

6 years agoFix build.
andersca@apple.com [Tue, 31 Dec 2013 01:46:32 +0000 (01:46 +0000)]
Fix build.

* heap/BlockAllocator.h:

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

6 years agoRemove unnecessary non-const overload in IteratorPair
weinig@apple.com [Tue, 31 Dec 2013 01:37:37 +0000 (01:37 +0000)]
Remove unnecessary non-const overload in IteratorPair
https://bugs.webkit.org/show_bug.cgi?id=126314

Reviewed by Anders Carlsson.

* wtf/IteratorPair.h:

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

6 years agoStop using ThreadCondition in BlockAllocator
andersca@apple.com [Tue, 31 Dec 2013 01:22:01 +0000 (01:22 +0000)]
Stop using ThreadCondition in BlockAllocator
https://bugs.webkit.org/show_bug.cgi?id=126313

Reviewed by Sam Weinig.

* heap/BlockAllocator.cpp:
(JSC::BlockAllocator::~BlockAllocator):
(JSC::BlockAllocator::waitForDuration):
(JSC::BlockAllocator::blockFreeingThreadMain):
* heap/BlockAllocator.h:
(JSC::BlockAllocator::deallocate):

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

6 years agoRemove WTF's BinarySemaphore
weinig@apple.com [Tue, 31 Dec 2013 00:31:11 +0000 (00:31 +0000)]
Remove WTF's BinarySemaphore
https://bugs.webkit.org/show_bug.cgi?id=126310

Reviewed by Anders Carlsson.

It's unused. Also remove the now empty wtf/threads directory.

* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.vcxproj/WTF.vcxproj.filters:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/Forward.h:
* wtf/PlatformWin.cmake:
* wtf/threads: Removed.
* wtf/threads/BinarySemaphore.cpp: Removed.
* wtf/threads/BinarySemaphore.h: Removed.
* wtf/threads/win: Removed.
* wtf/threads/win/BinarySemaphoreWin.cpp: Removed.

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

6 years agoStop using ThreadCondition in jsc.cpp
andersca@apple.com [Tue, 31 Dec 2013 00:30:11 +0000 (00:30 +0000)]
Stop using ThreadCondition in jsc.cpp
https://bugs.webkit.org/show_bug.cgi?id=126311

Reviewed by Sam Weinig.

* jsc.cpp:
(timeoutThreadMain):
(main):

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

6 years agoFix.
andersca@apple.com [Mon, 30 Dec 2013 23:57:16 +0000 (23:57 +0000)]
Fix.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::plugInDidStartFromOrigin):

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

6 years agoMove more of Connection over to STL threading primitives
andersca@apple.com [Mon, 30 Dec 2013 23:46:31 +0000 (23:46 +0000)]
Move more of Connection over to STL threading primitives
https://bugs.webkit.org/show_bug.cgi?id=126308

Reviewed by Andreas Kling.

* Platform/IPC/Connection.cpp:
(IPC::BinarySemaphore::BinarySemaphore):
(IPC::BinarySemaphore::~BinarySemaphore):
(IPC::BinarySemaphore::signal):
(IPC::BinarySemaphore::wait):
Add a new BinarySemaphore class that uses STL threading primitives.

(IPC::Connection::SyncMessageState::wait):
Change this to take a std::chrono::steady_clock::time_point.

(IPC::absoluteTimeoutTime):
Add a new helper function that returns a time point from the a given timeout duration,
correctly handling the max duration.

(IPC::Connection::sendSyncMessageFromSecondaryThread):
Pass a time point to SyncMessageState::wait.

(IPC::Connection::waitForSyncReply):
Ditto.

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

6 years agoReplace remaning CoreIPC namespace to IPC
ryuan.choi@samsung.com [Mon, 30 Dec 2013 23:34:33 +0000 (23:34 +0000)]
Replace remaning CoreIPC namespace to IPC
https://bugs.webkit.org/show_bug.cgi?id=126305

Reviewed by Anders Carlsson.

Source/WebKit2:

This patch replaces CoreIPC to IPC in build scripts and source codes to fix
build break on CMake based ports and Gtk (and maybe IOS).

* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* Platform/IPC/unix/AttachmentUnix.cpp:
* Platform/IPC/unix/ConnectionUnix.cpp:
* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::Handle::encode):
(WebKit::SharedMemory::Handle::decode):
(WebKit::SharedMemory::Handle::releaseToAttachment):
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
* Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
(WebKit::WebCoordinatedSurface::Handle::encode):
(WebKit::WebCoordinatedSurface::Handle::decode):
* Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
* Shared/Downloads/soup/DownloadSoup.cpp:
(WebKit::DownloadClient::downloadFailed):
(WebKit::Download::cancel):
* Shared/WebBatteryStatus.cpp:
(WebKit::WebBatteryStatus::Data::encode):
(WebKit::WebBatteryStatus::Data::decode):
* Shared/WebBatteryStatus.h:
* Shared/WebNetworkInfo.cpp:
(WebKit::WebNetworkInfo::Data::encode):
(WebKit::WebNetworkInfo::Data::decode):
* Shared/WebNetworkInfo.h:
* Shared/cairo/LayerTreeContextCairo.cpp:
(WebKit::LayerTreeContext::encode):
(WebKit::LayerTreeContext::decode):
* Shared/efl/LayerTreeContextEfl.cpp:
(WebKit::LayerTreeContext::encode):
(WebKit::LayerTreeContext::decode):
* Shared/gtk/ArgumentCodersGtk.cpp:
* Shared/gtk/ArgumentCodersGtk.h:
* Shared/gtk/LayerTreeContextGtk.cpp:
(WebKit::LayerTreeContext::encode):
(WebKit::LayerTreeContext::decode):
* Shared/ios/WebPlatformTouchPointIOS.cpp:
(WebKit::WebPlatformTouchPoint::encode):
(WebKit::WebPlatformTouchPoint::decode):
* Shared/ios/WebTouchEventIOS.cpp:
(WebKit::WebTouchEvent::encode):
(WebKit::WebTouchEvent::decode):
* Shared/linux/SeccompFilters/OpenSyscall.cpp:
(WebKit::OpenSyscall::encode):
(WebKit::OpenSyscall::decode):
(WebKit::OpenSyscallResult::encode):
(WebKit::OpenSyscallResult::decode):
* Shared/linux/SeccompFilters/OpenSyscall.h:
* Shared/linux/SeccompFilters/SeccompBroker.cpp:
(WebKit::SeccompBrokerClient::dispatch):
(WebKit::SeccompBroker::runLoop):
* Shared/linux/SeccompFilters/Syscall.cpp:
(WebKit::Syscall::createFromDecoder):
(WebKit::SyscallResult::createFromDecoder):
* Shared/linux/SeccompFilters/Syscall.h:
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<CertificateInfo>::encode):
(IPC::ArgumentCoder<CertificateInfo>::decode):
* UIProcess/API/ios/PageClientImplIOS.h:
* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::accessibilityWebProcessTokenReceived):
* UIProcess/API/mac/PDFViewController.h:
* UIProcess/API/mac/PDFViewController.mm:
(WebKit::convertPostScriptDataSourceToPDF):
(WebKit::PDFViewController::setPDFDocumentData):
* UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/WebBatteryManagerProxy.h:
* UIProcess/WebNetworkInfoManagerProxy.h:
* UIProcess/WebVibrationProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
* UIProcess/soup/WebSoupRequestManagerProxy.h:
* WebProcess/Battery/WebBatteryManager.h:
* WebProcess/NetworkInfo/WebNetworkInfoManager.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::didReceiveCoordinatedLayerTreeHostMessage):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::registerUIProcessAccessibilityTokens):
* WebProcess/ios/WebProcessIOS.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/soup/WebSoupRequestManager.cpp:
(WebKit::WebSoupRequestManager::didHandleURIRequest):
(WebKit::WebSoupRequestManager::didReceiveURIRequestData):
* WebProcess/soup/WebSoupRequestManager.h:
* WebProcess/soup/WebSoupRequestManager.messages.in:

Tools:

* TestWebKitAPI/CMakeLists.txt: Replaced CoreIPC includes to IPC.
* TestWebKitAPI/efl/PlatformWebView.cpp: Removed temporal define for IPC.
* WebKitTestRunner/CMakeLists.txt: Replaced CoreIPC includes to IPC.
* WebKitTestRunner/efl/PlatformWebViewEfl.cpp: Removed temporal define for IPC.

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

6 years agoAdd myself to the committers list.
b.long@cablelabs.com [Mon, 30 Dec 2013 22:58:10 +0000 (22:58 +0000)]
Add myself to the committers list.

Unreviewed.

Patch by Brendan Long <self@brendanlong.com> on 2013-12-30

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

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

6 years agoUnreviewed build fix attempt on GTK port after 161152
ryuan.choi@samsung.com [Mon, 30 Dec 2013 22:49:21 +0000 (22:49 +0000)]
Unreviewed build fix attempt on GTK port after 161152

* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::getEditorCommandsForKeyEvent):

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

6 years agoRename createRenderObject() to createRenderer().
akling@apple.com [Mon, 30 Dec 2013 22:40:20 +0000 (22:40 +0000)]
Rename createRenderObject() to createRenderer().

Somewhat rubber-stamped by Antti Koivisto.

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

6 years agoUse std::chrono::milliseconds for all IPC message timeouts
andersca@apple.com [Mon, 30 Dec 2013 21:43:44 +0000 (21:43 +0000)]
Use std::chrono::milliseconds for all IPC message timeouts
https://bugs.webkit.org/show_bug.cgi?id=126303

Reviewed by Andreas Kling.

* Platform/IPC/Connection.cpp:
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
* Platform/IPC/Connection.h:
(IPC::Connection::sendSync):
* Platform/IPC/MessageSender.h:
(IPC::MessageSender::sendSync):
* Shared/ChildProcessProxy.h:
(WebKit::ChildProcessProxy::sendSync):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::stringSelectionForPasteboard):
(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::readSelectionFromPasteboard):
(WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
(WebKit::WebPageProxy::acceptsFirstMouse):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::postSynchronousMessage):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::createInspectorPage):

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

6 years agoDocument should store its RenderView in a RenderPtr.
akling@apple.com [Mon, 30 Dec 2013 21:05:50 +0000 (21:05 +0000)]
Document should store its RenderView in a RenderPtr.
<https://webkit.org/b/126299>

Make Document::m_renderView a RenderPtr<RenderView> and remove one
manual destroy() call. Also removed the setRenderView() helper and
inlined it at the two call sites.

Reviewed by Antti Koivisto.

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

6 years agoRemove empty directories.
andersca@apple.com [Mon, 30 Dec 2013 20:54:32 +0000 (20:54 +0000)]
Remove empty directories.

* Platform/CoreIPC: Removed.
* Platform/CoreIPC/mac: Removed.
* Platform/CoreIPC/unix: Removed.

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