rego@igalia.com [Tue, 11 Mar 2014 13:29:03 +0000 (13:29 +0000)]
[CSS Grid Layout] Add layout test for anonymous grid items
https://bugs.webkit.org/show_bug.cgi?id=130083
Reviewed by Sergio Villar Senin.
Add a layout test to prevent regressions supporting anonymous grid items.
For example, anonymous grid items do not have an associated Node, so trying to access it will make this test
crash.
* fast/css-grid-layout/anonymous-grid-items-expected.html: Added.
* fast/css-grid-layout/anonymous-grid-items.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165449
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 11 Mar 2014 11:27:54 +0000 (11:27 +0000)]
[GTK] update-webkitgtk-libs needs itstool
https://bugs.webkit.org/show_bug.cgi?id=130082
After http://trac.webkit.org/changeset/165110 WebKitGTK+ uses gtk-doc 1.20.
itstool is a dependency of building gtk-doc from version 1.19, so it should
be added to Tools/gtk/install-dependencies script, too.
Patch by Martin Hodovan <mhodovan@inf.u-szeged.hu> on 2014-03-11
Reviewed by Philippe Normand.
* gtk/install-dependencies:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165448
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ossy@webkit.org [Tue, 11 Mar 2014 11:23:27 +0000 (11:23 +0000)]
webkitbot rollout ChangeLogs should be nicer
https://bugs.webkit.org/show_bug.cgi?id=122654
Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-03-11
Reviewed by Csaba Osztrogonác.
Added bug urls and descriptions of rolled out patches to the rollout changelog
if they are present in the original changelog. Additionally removed the list of
changed files and functions.
* Scripts/webkitpy/common/checkout/changelog.py:
(ChangeLog.update_with_unreviewed_message): Cut off the list of modified files.
* Scripts/webkitpy/common/checkout/checkout.py:
(Checkout._changelog_data_for_revision): Store bug description.
* Scripts/webkitpy/common/checkout/checkout_mock.py:
* Scripts/webkitpy/common/checkout/checkout_unittest.py:
(CheckoutTest.test_commit_info_for_revision):
* Scripts/webkitpy/common/checkout/commitinfo.py:
(CommitInfo.bug_description): Added.
(CommitInfo.to_json):
* Scripts/webkitpy/common/checkout/commitinfo_unittest.py:
(CommitInfoTest.test_commit_info_creation):
* Scripts/webkitpy/tool/commands/download.py:
(AbstractRolloutPrepCommand._prepare_state): Store bug ids and descriptions of rolled
out patches for creating rollout changelog.
(CreateRollout._prepare_state): Remove obsolete comments and code, the bug id that
caused the regression is stored in state["bug_blocked"] now.
* Scripts/webkitpy/tool/commands/download_unittest.py:
(test_prepare_rollout):
(test_create_rollout_multiple_revision):
* Scripts/webkitpy/tool/steps/preparechangelogforrevert.py:
(PrepareChangeLogForRevert._message_for_revert): Add bug urls and descriptions of
rolled out patches to the changelog.
(PrepareChangeLogForRevert.run):
* Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
(UpdateChangeLogsForRevertTest):
(test_message_for_revert):
* Scripts/webkitpy/tool/steps/reopenbugafterrollout.py:
(ReopenBugAfterRollout.run):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165447
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryuan.choi@samsung.com [Tue, 11 Mar 2014 11:19:06 +0000 (11:19 +0000)]
Remove unused method from BatteryController
https://bugs.webkit.org/show_bug.cgi?id=130063
Reviewed by Darin Adler.
* Modules/battery/BatteryController.h: Removed client() which is not used.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165446
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Tue, 11 Mar 2014 09:35:55 +0000 (09:35 +0000)]
Streamline PropertyTable for lookup-only access.
<https://webkit.org/b/130060>
The PropertyTable lookup algorithm was written to support both read
and write access. This wasn't actually needed in most places.
This change adds a PropertyTable::get() that just returns the value
type (instead of an insertion iterator.) It also adds an early return
for empty tables.
Finally, up the minimum table capacity from 8 to 16. It was lowered
to 8 in order to save memory, but that was before PropertyTables were
GC allocated. Nowadays we don't have nearly as many tables, since all
the unpinned transitions die off.
Reviewed by Darin Adler.
* runtime/PropertyMapHashTable.h:
(JSC::PropertyTable::get):
* runtime/Structure.cpp:
(JSC::Structure::despecifyDictionaryFunction):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::get):
(JSC::Structure::despecifyFunction):
* runtime/StructureInlines.h:
(JSC::Structure::get):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165440
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
k.czech@samsung.com [Tue, 11 Mar 2014 09:14:22 +0000 (09:14 +0000)]
[ATK] Adjust WKTR/DRT to use new API from ATK 2.11.90
https://bugs.webkit.org/show_bug.cgi?id=130021
Reviewed by Mario Sanchez Prada.
Replace deprecated functions to use new API from ATK 2.11.90.
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::x):
(AccessibilityUIElement::y):
(AccessibilityUIElement::width):
(AccessibilityUIElement::height):
(AccessibilityUIElement::clickPointX):
(AccessibilityUIElement::clickPointY):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165439
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
k.czech@samsung.com [Tue, 11 Mar 2014 09:04:08 +0000 (09:04 +0000)]
[ATK] Expose aria-posinset and aria-setsize through object attributes
https://bugs.webkit.org/show_bug.cgi?id=130011
Reviewed by Chris Fleizach.
Source/WebCore:
Based on http://www.w3.org/TR/2014/PR-wai-aria-implementation-
20140206/
aria-poinset and aria-setsize can be exposed as object attributes.
Test: accessibility/aria-setsize-posinset.html
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
Tools:
Added missing implementation of numberAttributeValue both to WKTR and DRT.
* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::numberAttributeValue):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::numberAttributeValue):
LayoutTests:
Test could be shared with other platforms.
* accessibility/aria-setsize-posinset-expected.txt: Renamed from LayoutTests/platform/mac/accessibility/aria-setsize-posinset-expected.txt.
* accessibility/aria-setsize-posinset.html: Renamed from LayoutTests/platform/mac/accessibility/aria-setsize-posinset.html.
* platform/win/TestExpectations: Skipping on win port.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165438
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jaepark@webkit.org [Tue, 11 Mar 2014 08:13:08 +0000 (08:13 +0000)]
[GTK][CMake] Add HARFBUZZ_INCLUDE_DIRS to WebKit and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130070
Reviewed by Martin Robinson.
Source/WebKit:
* PlatformGTK.cmake:
Source/WebKit2:
* PlatformGTK.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165437
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fred.wang@free.fr [Tue, 11 Mar 2014 07:51:27 +0000 (07:51 +0000)]
Improve renderer classes for MathML Token elements.
https://bugs.webkit.org/show_bug.cgi?id=124838
Reviewed by Chris Fleizach.
Source/WebCore:
This patch continues the refactoring of token elements that has been
started in bug 44208. The <mo> element now derives from the
RenderMathMLToken class, which was already used for the <mi> element.
The behavior of anonymous <mo> elements created by the <mfenced> element
is now more consistent with the one of "standard" <mo> elements and the
spacing around them is now handled in RenderMathMLOperator. This is a
first step towards fixing bugs 115787 and 118843. The only visible
rendering change is how <mfenced> open/close attributes handle
whitespace and multiple characters and some tests are added for that.
Other features are already covered by other tests. Finally, this also
removes some code from AccessibilityRenderObject that was used to
workaround issues with <mo> elements.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::startOfContinuations):
(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::AccessibilityRenderObject::isMathOperator):
(WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::didAttachRenderers):
(WebCore::MathMLTextElement::childrenChanged):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::RenderMathMLFenced):
(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::createMathMLOperator):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
* rendering/mathml/RenderMathMLFenced.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
(WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
(WebCore::RenderMathMLOperator::SetOperatorProperties):
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
(WebCore::RenderMathMLOperator::rebuildTokenContent):
(WebCore::RenderMathMLOperator::updateTokenContent):
(WebCore::RenderMathMLOperator::updateStyle):
(WebCore::RenderMathMLOperator::firstLineBaseline):
(WebCore::RenderMathMLOperator::paint):
(WebCore::RenderMathMLOperator::paintChildren):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLToken.cpp:
(WebCore::RenderMathMLToken::createWrapperIfNeeded):
LayoutTests:
Two tests are added to fenced-mi in order to verify that the open/close
attributes of the mfenced element collapse whitespace and accept values
with multiple characters.
* mathml/presentation/fenced-mi-expected.html:
* mathml/presentation/fenced-mi.html:
* platform/mac/accessibility/mathml-elements.html: fix bad closing tag and disable the test for now.
* platform/mac/mathml/presentation/mo-stretch-expected.txt: update text reference.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165436
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mhahnenberg@apple.com [Tue, 11 Mar 2014 06:57:43 +0000 (06:57 +0000)]
REGRESSION(r165407): DoYouEvenBench crashes in DRT
https://bugs.webkit.org/show_bug.cgi?id=130066
Reviewed by Geoffrey Garen.
The baseline JIT does a conditional store barrier for the put_by_id, but we need
an unconditional store barrier so that we cover the butterfly case as well in emitPutTransitionStub.
* jit/JIT.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitWriteBarrier):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165435
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Tue, 11 Mar 2014 06:25:23 +0000 (06:25 +0000)]
[Cocoa] Expose WebPageProxy::close
https://bugs.webkit.org/show_bug.cgi?id=130068
Reviewed by Adele Peterson.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _close]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165434
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Tue, 11 Mar 2014 05:18:41 +0000 (05:18 +0000)]
Resurrect bit-rotted JIT::probe() mechanism.
<https://webkit.org/b/130067>
Reviewed by Geoffrey Garen.
* jit/JITStubs.cpp:
- Added the needed #include <wtf/InlineASM.h>.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165433
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
joepeck@webkit.org [Tue, 11 Mar 2014 05:01:18 +0000 (05:01 +0000)]
Fix typo in EXCLUDED_SOURCE_FILE_NAMES_iphoneos.
Rubber-stamped by Dan Bernstein.
* Configurations/JavaScriptCore.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165432
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Tue, 11 Mar 2014 04:53:52 +0000 (04:53 +0000)]
r165414 broke the 32-bit x86 tests: ASSERTION FAILED: result != InvalidIndex @ GPRInfo.h:330.
<https://webkit.org/b/130065>
Reviewed by Michael Saboff.
There is code in ScratchRegisterAllocator.cpp that is relying on GPRInfo::toIndex()
being able to return InvalidIndex. Hence, the assertion is invalid. Ditto for
FPRInfo::toIndex().
The fix is to remove the "result != InvalidIndex" assertions.
* jit/FPRInfo.h:
(JSC::FPRInfo::toIndex):
* jit/GPRInfo.h:
(JSC::GPRInfo::toIndex):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165431
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 11 Mar 2014 04:52:02 +0000 (04:52 +0000)]
Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
https://bugs.webkit.org/show_bug.cgi?id=129781
Patch by James Craig <jcraig@apple.com> on 2014-03-10
Reviewed by Joseph Pecoraro.
Enabling several more properties to be exposed in the Accessibility Node Inspector.
Source/WebCore:
Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsChecked):
* accessibility/AccessibilityObject.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
Source/WebInspectorUI:
Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Protocol/InspectorWebBackendCommands.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
LayoutTests:
* inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt:
* inspector-protocol/dom/getAccessibilityPropertiesForNode.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165430
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bjonesbe@adobe.com [Tue, 11 Mar 2014 04:31:06 +0000 (04:31 +0000)]
[CSS Shapes] inset corner radii are not flipped for vertical writing modes
https://bugs.webkit.org/show_bug.cgi?id=129918
Reviewed by Dean Jackson.
Source/WebCore:
When creating an inset shape, convert the radii to logical coordinates
as well as the box.
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html
fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Convert the radii to logical
coordinates.
LayoutTests:
Test both left and right float cases so that we cover all four
corners.
* fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165429
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryuan.choi@samsung.com [Tue, 11 Mar 2014 04:28:49 +0000 (04:28 +0000)]
[EFL] Modify accelerated compositing related functions in ewk_view.
https://bugs.webkit.org/show_bug.cgi?id=129875
Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2014-03-10
Reviewed by Gyuyoung Kim.
The compositing object will be created when root layer is attached.
So we don't need to expose the create function.
And this patch adds show(), hide() and resize() for compositing object.
* WebCoreSupport/AcceleratedCompositingContextEfl.h: move resize() to public.
* ewk/ewk_view.cpp:
(_ewk_view_smart_resize): add to resize the compositing object.
(_ewk_view_smart_show): add to show the compositing object.
(_ewk_view_smart_hide): add to hide the compositing object.
(_ewk_view_accelerated_compositing_context_create_if_needed):
modify the creation for the compositing object.
(_ewk_view_accelerated_compositing_object_create_if_needed):
add a return value.
(ewk_view_root_graphics_layer_set):
If root layer is not 0, we create the compositing object and AcceleratedCompositingContext.
* ewk/ewk_view_private.h: remove to expose the compositing object creation API.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165428
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 11 Mar 2014 04:22:10 +0000 (04:22 +0000)]
Web Inspector: Frontend loaded resources from cache are not hidden as expected
https://bugs.webkit.org/show_bug.cgi?id=130044
Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-03-10
Reviewed by Timothy Hatcher.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
Use the new request that was passed in. Assume it is filled in appropriately.
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
Carry over the hidden from inspector state if the passed in request had it,
and create the request that loadedResourceFromMemoryCache will use.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
Add missing ifdefs for INSPECTOR only function.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165427
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Tue, 11 Mar 2014 04:06:31 +0000 (04:06 +0000)]
Crash on a stack overflow on 32-bit x86 in http/tests/websocket/tests/hybi/workers/no-onmessage-in-sync-op.html.
<https://webkit.org/b/129955>
Reviewed by Geoffrey Garen.
The 32-bit x86 version of getHostCallReturnValue() was leaking 16 bytes
stack memory every time it was called. This is now fixed.
* jit/JITOperations.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165426
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jer.noble@apple.com [Tue, 11 Mar 2014 03:08:01 +0000 (03:08 +0000)]
Improve WeakPtr operators.
https://bugs.webkit.org/show_bug.cgi?id=130053
Reviewed by Andreas Kling.
Replace the "operator!()" with an explicit bool operator. Add an "operator->()".
* wtf/WeakPtr.h:
(WTF::WeakPtr::operator bool):
(WTF::WeakPtr::operator->):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165425
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
joepeck@webkit.org [Tue, 11 Mar 2014 02:39:40 +0000 (02:39 +0000)]
Better JSContext API for named evaluations (other than //# sourceURL)
https://bugs.webkit.org/show_bug.cgi?id=129911
Reviewed by Geoffrey Garen.
* API/JSBase.h:
* API/JSContext.h:
* API/JSContext.mm:
(-[JSContext evaluateScript:]):
(-[JSContext evaluateScript:withSourceURL:]):
Add new evaluateScript:withSourceURL:.
* API/tests/testapi.c:
(main):
* API/tests/testapi.mm:
(testObjectiveCAPI):
Add tests for sourceURL in evaluate APIs. It should
affect the exception objects.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165424
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jinwoo7.song@samsung.com [Tue, 11 Mar 2014 02:26:36 +0000 (02:26 +0000)]
Remove 'visibilitychange' attribute event listener from document
https://bugs.webkit.org/show_bug.cgi?id=129794
Reviewed by Simon Fraser.
Remove the unused attribute event listener which is not defined in Page Visibility API spec.
http://www.w3.org/TR/page-visibility/#sec-document-interface
* dom/Document.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165423
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
benjamin@webkit.org [Tue, 11 Mar 2014 01:34:42 +0000 (01:34 +0000)]
[iOS][WebKit 2] Wire the unobscured rect in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=130058
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-03-10
Reviewed by Simon Fraser.
Source/WebCore:
* WebCore.exp.in:
* platform/ScrollView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::unobscuredContentRect):
(WebCore::ScrollView::setUnobscuredContentRect):
Source/WebKit2:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165422
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
benjamin@webkit.org [Tue, 11 Mar 2014 00:40:34 +0000 (00:40 +0000)]
makeSelectorPseudoTypeMap.py should not be copied in the WebCore bundle
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-03-10
* WebCore.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165421
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Tue, 11 Mar 2014 00:39:57 +0000 (00:39 +0000)]
[Win] Unreviewed build fix.
Some bad Windows code was committed at some point that prevents the Apple Windows port
from finding its runtime dependencies reliably.
* win/DLLLauncher/DLLLauncherMain.cpp:
(appleApplicationSupportDirectory): Restored this function.
(modifyPath): Update to use appleApplicationSupportDirectory function.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165420
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Tue, 11 Mar 2014 00:29:56 +0000 (00:29 +0000)]
[Win] Unreviewed build fix (64-bit).
* WebKit.vcxproj/WebKit/WebKitCommon.props: Put uuid.lib as the last link library so that
the MSIE DOM symbols don't conflict with WebKit's.
* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add missing 64-bit symbol definitions.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165419
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mario.prada@samsung.com [Tue, 11 Mar 2014 00:23:20 +0000 (00:23 +0000)]
[GTK] Add support for Geoclue2
https://bugs.webkit.org/show_bug.cgi?id=120185
Reviewed by Carlos Garcia Campos.
.:
Add support for Geoclue2 using autotools.
* Source/autotools/FindDependencies.m4: Add support for handling
both Geoclue 1.0 and 2.0.
* Source/autotools/PrintBuildConfiguration.m4: Print the version
of geoclue that is being used.
* Source/autotools/SetupAutoconfHeader.m4: Define GEOCLUE_API_VERSION_2.
* Source/autotools/SetupAutomake.m4: Likewise, for AM_CONDITIONAL.
* Source/autotools/Versions.m4: Added minimum required version for Geoclue2.
Add support for Geoclue2 using CMake.
* Source/cmake/FindGeoClue2.cmake: Added.
* Source/cmake/OptionsGTK.cmake: Add support for handling Geoclue 1.0 and 2.0.
* Source/cmakeconfig.h.cmake: Define WTF_USE_GEOCLUE2.
Source/WebCore:
Implement a new geolocation provider based on Geoclue2, which will only
be used if a good enough version of Geoclue2 is found at configure time.
* GNUmakefile.am: Generate C-API for accessing the D-Bus API
provided by Geoclue2, and place it in DerivedSources.
* GNUmakefile.list.am: Add GeolocationProviderGeoclue2.cpp, and
include the generated proxy files when using Geoclue2.
* PlatformGTK.cmake: Likewise, for CMake based builds.
* platform/geoclue/GeolocationProviderGeoclue.h: Modified to
accomodate the needs both for Geoclue and Geoclue2 providers.
* platform/geoclue/GeolocationProviderGeoclue1.cpp: Renamed from Source/WebCore/platform/geoclue/GeolocationProviderGeoclue.cpp.
(GeolocationProviderGeoclue::getPositionCallback):
(GeolocationProviderGeoclue::positionChangedCallback):
(GeolocationProviderGeoclue::createGeocluePositionCallback):
(GeolocationProviderGeoclue::geoclueClientSetRequirementsCallback):
(GeolocationProviderGeoclue::createGeoclueClientCallback):
(GeolocationProviderGeoclue::GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::startUpdating):
(GeolocationProviderGeoclue::stopUpdating):
(GeolocationProviderGeoclue::setEnableHighAccuracy):
(GeolocationProviderGeoclue::initializeGeoclueClient):
(GeolocationProviderGeoclue::initializeGeocluePosition):
(GeolocationProviderGeoclue::updateClientRequirements):
(GeolocationProviderGeoclue::positionChanged):
(GeolocationProviderGeoclue::errorOccurred):
* platform/geoclue/GeolocationProviderGeoclue2.cpp: Added.
(GeolocationProviderGeoclue::GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::startUpdating):
(GeolocationProviderGeoclue::stopUpdating):
(GeolocationProviderGeoclue::setEnableHighAccuracy):
(GeolocationProviderGeoclue::createGeoclueManagerProxyCallback):
(GeolocationProviderGeoclue::getGeoclueClientCallback):
(GeolocationProviderGeoclue::createGeoclueClientProxyCallback):
(GeolocationProviderGeoclue::startClientCallback):
(GeolocationProviderGeoclue::locationUpdatedCallback):
(GeolocationProviderGeoclue::createLocationProxyCallback):
(GeolocationProviderGeoclue::startGeoclueClient):
(GeolocationProviderGeoclue::updateLocation):
(GeolocationProviderGeoclue::errorOccurred):
(GeolocationProviderGeoclue::updateClientRequirements):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165418
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Tue, 11 Mar 2014 00:16:40 +0000 (00:16 +0000)]
Unreviewed Windows Build Fix.
* WebCore.vcxproj/WebCore.vcxproj: Don't build cURL files for Apple Windows port.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents): Correct
method signature to match base class.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::loadInternal): Use proper character encoding.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165417
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 10 Mar 2014 23:31:18 +0000 (23:31 +0000)]
Repatch should save and restore all used registers - not just temp ones - when making a call
https://bugs.webkit.org/show_bug.cgi?id=130041
Reviewed by Geoffrey Garen and Mark Hahnenberg.
The save/restore code was written back when the only client was the DFG, which only uses a
subset of hardware registers: the "temp" registers in our lingo. But the FTL may use many
other registers, especially on ARM64. The fact that Repatch doesn't know to save those can
lead to data corruption on ARM64.
* jit/RegisterSet.cpp:
(JSC::RegisterSet::calleeSaveRegisters):
(JSC::RegisterSet::numberOfSetGPRs):
(JSC::RegisterSet::numberOfSetFPRs):
* jit/RegisterSet.h:
* jit/Repatch.cpp:
(JSC::storeToWriteBarrierBuffer):
(JSC::emitPutTransitionStub):
* jit/ScratchRegisterAllocator.cpp:
(JSC::ScratchRegisterAllocator::ScratchRegisterAllocator):
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
(JSC::ScratchRegisterAllocator::usedRegistersForCall):
(JSC::ScratchRegisterAllocator::desiredScratchBufferSizeForCall):
(JSC::ScratchRegisterAllocator::preserveUsedRegistersToScratchBufferForCall):
(JSC::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBufferForCall):
* jit/ScratchRegisterAllocator.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165414
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zoltan@webkit.org [Mon, 10 Mar 2014 23:22:05 +0000 (23:22 +0000)]
Let the user define the full address of the performance-site-server for uploading results
https://bugs.webkit.org/show_bug.cgi?id=129819
Reviewed by Ryosuke Niwa.
Currently perftestsrunner.py assumes that the server uses https protocol all the time, which
can be confusing. It's more straightforward, if you need to define explicitly the server's full
address along with the protocol, when you're using this parameter. I added HTTPS as the default
protocol for now, in order to avoid breaking the perf bots.
* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(_upload_json):
* Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(MainTest.test_upload_json):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165413
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Mon, 10 Mar 2014 23:08:55 +0000 (23:08 +0000)]
Fix three leaks
https://bugs.webkit.org/show_bug.cgi?id=130048
Reviewed by Anders Carlsson.
Source/WebCore:
The NSDictionary was leaked.
* page/ios/UserAgentIOS.mm:
(WebCore::osMarketingVersion):
Source/WebKit2:
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(decodeObject): Code is simpler and less leaky without the RetainPtr.
* UIProcess/API/Cocoa/WKNavigationAction.mm: Fix _originalURL leak
by making it a RetainPtr and implementing the getter and setter.
(-[WKNavigationAction _setOriginalURL:]):
(-[WKNavigationAction _originalURL]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165412
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zoltan@webkit.org [Mon, 10 Mar 2014 23:01:18 +0000 (23:01 +0000)]
Update the install guidelines for perf.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=129895
Reviewed by Ryosuke Niwa.
The current install guideline for perf.webkit.org discourages the use of the installed
Server application. I've actualized the documentation for Mavericks, and modified the
guideline to include the instructions for Server.app also.
* Install.md:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165411
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Mon, 10 Mar 2014 22:48:42 +0000 (22:48 +0000)]
Set background color of WK2's UIScrollView to the pageExtendedBackgroundColor
https://bugs.webkit.org/show_bug.cgi?id=129919
Reviewed by Benjamin Poulain.
Source/WebCore:
WK2 needs to be able to ask for the pageExtendedBackgroundColor, so this patch
adds a function to Page that will return it
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::pageExtendedBackgroundColor):
* page/Page.h:
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::rootExtendedBackgroundColor):
Source/WebKit2:
Make the pageExtendedBackgroundColor part of a RemoteLayerTreeTransaction.
* Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::pageExtendedBackgroundColor):
(WebKit::RemoteLayerTreeTransaction::setPageExtendedBackgroundColor):
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
Set the background color of the UIScrollView based on the
pageExtendedBackgroundColor.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:WebKit::]):
For the sake of PLATFORM(MAC), continue to support the fact that this color can be
set via a message from the WebProcess or the new RemoteLayerTreeTransaction.
* UIProcess/WebPageProxy.h:
Cache the pageExtendedBackgroundColor as provided by the
RemoteLayerTreeTransaction.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
It’s not necessary to do anything here in non-Mac platforms anymore.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange):
Include the pageExtendedBackgroundColor in the RemoteLayerTreeTransaction.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165409
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zoltan@webkit.org [Mon, 10 Mar 2014 22:32:15 +0000 (22:32 +0000)]
[CSS Shapes] Add performance tests for SVG shape with shape-margin
https://bugs.webkit.org/show_bug.cgi?id=129930
Reviewed by Ryosuke Niwa.
The test is skipped by default.
* Layout/Shapes/ShapeOutsideSVGWithMargin.html: Added.
* Layout/Shapes/resources/shape.svg: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165408
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mhahnenberg@apple.com [Mon, 10 Mar 2014 22:21:44 +0000 (22:21 +0000)]
Remove ConditionalStore barrier
https://bugs.webkit.org/show_bug.cgi?id=130040
Reviewed by Geoffrey Garen.
ConditionalStoreBarrier was created when barriers were much more expensive. Now that
they're cheap(er), we can get rid of them. This also allows us to get rid of the write
barrier logic in emitPutTransitionStub because we always will have executed a write barrier
on the base object in the case where we are allocating and storing a new Butterfly into it.
Previously, a ConditionalStoreBarrier might or might not have barrier-ed the base object,
so we'd have to emit a write barrier in the transition case.
This is performance neutral on the benchmarks we track.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::insertStoreBarrier):
* dfg/DFGNode.h:
(JSC::DFG::Node::isStoreBarrier):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
* jit/Repatch.cpp:
(JSC::emitPutTransitionStub):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165407
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 10 Mar 2014 22:11:35 +0000 (22:11 +0000)]
DFG and FTL should know that comparing anything to Misc is cheap and easy
https://bugs.webkit.org/show_bug.cgi?id=130001
Reviewed by Geoffrey Garen.
- Expand CompareStrictEq(Misc:, Misc:) to work for cases where either side of the
comparison is just Untyped:.
- This obviates the need for CompareStrictEqConstant, so remove it.
- FTL had a thing called "Nully" which is really "Other". Rename it and add
OtherUse.
9% speed-up on box2d.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::isBinaryUseKind):
(JSC::DFG::Node::shouldSpeculateOther):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::compileStrictEq):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileMiscStrictEq):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileMiscStrictEq):
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compareEqObjectOrOtherToObject):
(JSC::FTL::LowerDFGToLLVM::equalNullOrUndefined):
(JSC::FTL::LowerDFGToLLVM::isNotOther):
(JSC::FTL::LowerDFGToLLVM::isOther):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateObjectOrOther):
(JSC::FTL::LowerDFGToLLVM::speculateNotCell):
(JSC::FTL::LowerDFGToLLVM::speculateOther):
(JSC::FTL::LowerDFGToLLVM::speculateMisc):
* tests/stress/compare-strict-eq-integer-to-misc.js: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165406
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 10 Mar 2014 22:09:07 +0000 (22:09 +0000)]
Unreviewed, remove unintended change.
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165405
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
benjamin@webkit.org [Mon, 10 Mar 2014 21:25:24 +0000 (21:25 +0000)]
Generalize unobscured rect to all ports
https://bugs.webkit.org/show_bug.cgi?id=130036
Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-03-10
Reviewed by Simon Fraser.
Source/WebCore:
iOS differentiates visible content and unobscured content. This patch moves the concept to all
ports to remove the #ifdefs from the call sites.
On everything but iOS, unobscuredRect and visibleRect are the same.
* WebCore.exp.in:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::innerHeight):
(WebCore::DOMWindow::innerWidth):
* page/SpatialNavigation.cpp:
(WebCore::canScrollInDirection):
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::paint):
* platform/ScrollView.h:
(WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
(WebCore::ScrollView::unobscuredContentRect):
* rendering/RenderView.cpp:
(WebCore::RenderView::viewportSize):
Source/WebKit2:
* WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
(WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165404
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 10 Mar 2014 21:06:29 +0000 (21:06 +0000)]
jsc commandline shouldn't have a "console" because that confuses some tests into thinking
that they're running in the browser.
Rubber stamped by Mark Hahnenberg.
* jsc.cpp:
(GlobalObject::finishCreation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165403
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
benjamin@webkit.org [Mon, 10 Mar 2014 21:00:26 +0000 (21:00 +0000)]
Start splitting CSS Selectors's pseudo types
https://bugs.webkit.org/show_bug.cgi?id=130003
Reviewed by Andreas Kling.
CSS Selectors pseudo types come in 3 flavors: page, pseudo class, pseudo elements.
The three types are mixed together in a single enum list named PseudoType. Only some combinations
of match type + pseudo type are valid, but this is implicitly defined from the code.
This patch is the beginning of a refactoring to add more clear boundaries between
valid and invalid combinations.
First, the handling of page pseudo types is completely split from the other values.
The parser use a different method for handling the value CSSParserSelector::parsePagePseudoSelector().
PagePseudo types no longer store their string in the CSSSelector either to reduce the redundancy
with m_pseudoType.
When we need to generate the string for those CSSSelector, we recreate the string as needed in
CSSSelector::selectorText().
The remaining two types are not yet split in this patch but this introduce the preliminary clean up
toward that goal.
The list of parsed pseudo types is now generated at compile time from the source in SelectorPseudoTypeMap.in.
* DerivedSources.make:
The mapping of strings to pseudo types is generated from SelectorPseudoTypeMap.in
by the new script makeSelectorPseudoTypeMap.py.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSGrammar.y.in:
Split the parsing of Pseudo Types. Pseudo page get its own method. The others will need some work.
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::parsePagePseudoSelector):
(WebCore::CSSParserSelector::setPseudoTypeValue):
* css/CSSParserValues.h:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::specificityForPage):
This is an example of invalid combination that is hidden by the current code.
First, Left and Right could never appear in a pseudo class match.
(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::parsePseudoType):
(WebCore::appendPseudoTypeTailIfNecessary):
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(WebCore::CSSSelector::pseudoType):
(WebCore::CSSSelector::matchesPseudoElement):
(WebCore::CSSSelector::setValue):
(WebCore::CSSSelector::CSSSelector):
* css/PageRuleCollector.cpp:
(WebCore::checkPageSelectorComponents):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/SelectorPseudoTypeMap.h: Added.
* css/SelectorPseudoTypeMap.in: Added.
* css/makeSelectorPseudoTypeMap.py: Added.
(enumerablePseudoType):
(expand_ifdef_condition):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165402
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 10 Mar 2014 20:58:29 +0000 (20:58 +0000)]
Out-line ScratchRegisterAllocator
Rubber stamped by Mark Hahnenberg.
* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
* jit/ScratchRegisterAllocator.cpp: Added.
(JSC::ScratchRegisterAllocator::ScratchRegisterAllocator):
(JSC::ScratchRegisterAllocator::~ScratchRegisterAllocator):
(JSC::ScratchRegisterAllocator::lock):
(JSC::ScratchRegisterAllocator::allocateScratch):
(JSC::ScratchRegisterAllocator::allocateScratchGPR):
(JSC::ScratchRegisterAllocator::allocateScratchFPR):
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
(JSC::ScratchRegisterAllocator::desiredScratchBufferSize):
(JSC::ScratchRegisterAllocator::preserveUsedRegistersToScratchBuffer):
(JSC::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBuffer):
* jit/ScratchRegisterAllocator.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165401
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
enrica@apple.com [Mon, 10 Mar 2014 20:53:11 +0000 (20:53 +0000)]
iOS build fix after trac.webkit.org/changeset/165385
Unreviewed.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165400
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mitz@apple.com [Mon, 10 Mar 2014 20:19:06 +0000 (20:19 +0000)]
<rdar://problem/
16278716> [Cocoa] Allow setting a custom group identifier on a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=130033
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]): Create a page group with the group identifier
from the configuration, if it’s non-empty.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _groupIdentifier]): Added this accessor.
(-[WKWebViewConfiguration _setGroupIdentifier:]): Ditto.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declared _groupIdentifier property.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165398
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
enrica@apple.com [Mon, 10 Mar 2014 20:11:07 +0000 (20:11 +0000)]
WebKit2: Crash in WebPage::getPositionInformation.
https://bugs.webkit.org/show_bug.cgi?id=129936
<rdar://problem/
16264550>
Reviewed by Eric Carlson.
Missing null check on the node renderer in one code path.
If the page body is smaller than the document, hit testing
will return HTMLHtmlElement that has no renderer.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165397
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dbates@webkit.org [Mon, 10 Mar 2014 20:02:35 +0000 (20:02 +0000)]
REGRESSION (r159218): FrameView::layout() should destroy TemporaryChange<LayoutPhase>
before destroying Ref<FrameView>
https://bugs.webkit.org/show_bug.cgi?id=130034
<rdar://problem/
15664288>
Reviewed by Alexey Proskuryakov.
We should always destroy TemporaryChange<LayoutPhase> before destroying Ref<FrameView>
in FrameView::layout() so as to ensure that the FrameView exists when we restore the
original layout phase value.
The existing test fast/frames/crash-remove-iframe-during-object-beforeload.html covers
this change. Although you must run the test with Guard Malloc enabled (i.e. run-webkit-tests -r).
* page/FrameView.cpp:
(WebCore::FrameView::layout): Move construction of variable protect before the construction of
variable layoutPhaseRestorer. Additionally, add a period to the end of the comment associated
with variable protect.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165396
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 10 Mar 2014 19:56:38 +0000 (19:56 +0000)]
ASSERTION FAILED: span >= 1
https://bugs.webkit.org/show_bug.cgi?id=129148
Patch by Zsolt Borbely <borbezs@inf.u-szeged.hu> on 2014-03-10
Reviewed by Andreas Kling.
Source/WebCore:
Set the value of span to 1 if the given number is too big or zero.
Test: fast/table/incorrect-colgroup-span-values.html
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::parseAttribute):
LayoutTests:
Added test demonstrates the behavior of colgroup in case of large negative, large positive, zero and null span values.
* fast/table/incorrect-colgroup-span-values-expected.txt: Added.
* fast/table/incorrect-colgroup-span-values.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165395
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Mon, 10 Mar 2014 19:09:40 +0000 (19:09 +0000)]
Source/JavaScriptCore: [Win] Pass environment to Pre-Build, Pre-link, and Post-Build Stages.
https://bugs.webkit.org/show_bug.cgi?id=130023
Reviewed by Dean Jackson.
* JavaScriptCore.vcxproj/JavaScriptCore.proj: Avoid trailing backslashes in
path names to avoid accidental escaping of later string substitutions.
Source/WebCore: [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
https://bugs.webkit.org/show_bug.cgi?id=130023.
Reviewed by Dean Jackson.
* WebCore.vcxproj/WebCore.proj: Avoid trailing slashes in path values to
prevent escaping during later string substitution.
Source/WebKit: [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
https://bugs.webkit.org/show_bug.cgi?id=130023
Reviewed by Dean Jackson.
* WebKit.vcxproj/WebKit.make: Removed.
* WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Use %PlatformArchitecture% rather than
hard-coded 32-bit path.
Source/WTF: [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
https://bugs.webkit.org/show_bug.cgi?id=130023.
Reviewed by Dean Jackson.
* WTF.vcxproj/WTF.proj: Avoid putting trailing slashes in system paths to avoid
escaping during later string substitution.
* WTF.vcxproj/build-generated-files.sh: Accept environment values passed by VS.
Tools: [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
https://bugs.webkit.org/show_bug.cgi?id=130023
Reviewed by Dean Jackson.
* DumpRenderTree/DumpRenderTree.vcxproj/DumpRenderTree/DumpRenderTreeLauncher.vcxproj: Add missing
/SAFESEH flag to DLL launcher process.
WebKitLibraries: [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
https://bugs.webkit.org/show_bug.cgi?id=130023
Reviewed by Dean Jackson.
* win/tools/vsprops/common.props: Pass WEBKIT_LIBRARIES value to subprocesses.
* win/tools/vsprops/debugsuffix.props: Make sure OFFICIAL_BUILD is set.
* win/tools/vsprops/production.props: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165393
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 18:57:34 +0000 (18:57 +0000)]
[X86_64] Smaller code for testb_i8r when register is accumulator.
<https://webkit.org/b/130026>
Generate the shorthand version of "test al, imm" when possible.
Reviewed by Michael Saboff.
* assembler/X86Assembler.h:
(JSC::X86Assembler::testb_i8r):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165392
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 18:57:14 +0000 (18:57 +0000)]
[X86_64] Smaller code for sub_ir when register is accumulator.
<https://webkit.org/b/130025>
Generate the shorthand version of "sub eax, imm" when possible.
Reviewed by Michael Saboff.
* assembler/X86Assembler.h:
(JSC::X86Assembler::subl_ir):
(JSC::X86Assembler::subq_ir):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165391
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 18:56:36 +0000 (18:56 +0000)]
[X86_64] Smaller code for add_ir when register is accumulator.
<https://webkit.org/b/130024>
Generate the shorthand version of "add eax, imm" when possible.
Reviewed by Michael Saboff.
* assembler/X86Assembler.h:
(JSC::X86Assembler::addl_ir):
(JSC::X86Assembler::addq_ir):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165390
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mhahnenberg@apple.com [Mon, 10 Mar 2014 18:55:17 +0000 (18:55 +0000)]
writeBarrier in emitPutReplaceStub is unnecessary
https://bugs.webkit.org/show_bug.cgi?id=130030
Reviewed by Filip Pizlo.
We already emit write barriers for each put-by-id when they're first compiled, so it's
redundant to emit a write barrier as part of the repatched code.
* jit/Repatch.cpp:
(JSC::emitPutReplaceStub):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165389
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
stavila@adobe.com [Mon, 10 Mar 2014 18:48:49 +0000 (18:48 +0000)]
[CSS Regions] Hit-testing is not working properly inside scrollable regions
https://bugs.webkit.org/show_bug.cgi?id=130015
Reviewed by Antti Koivisto.
Source/WebCore:
When hit-testing inside the flow thread's layer, the scrolled offset
of the current region must be taken into consideration.
Test: fast/regions/scrollable-regions-hit-testing-inside.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
LayoutTests:
Added test for hit-testing inside scrollable regions.
* fast/regions/scrollable-regions-hit-testing-inside-expected.html: Added.
* fast/regions/scrollable-regions-hit-testing-inside.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165388
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hmuller@adobe.com [Mon, 10 Mar 2014 18:41:34 +0000 (18:41 +0000)]
[CSS Shapes] SVG Image valued shape fails if root element's size is relative
https://bugs.webkit.org/show_bug.cgi?id=128983
Reviewed by Simon Fraser.
Source/WebCore:
When creating a shape based on an Image, compute its dimensions using
RenderBoxModelObject::calculateImageIntrinsicDimensions(), then set the
ImageResource's containerSize, and then use imageForRenderer() to get the
image to be drawn. The first step resolves SVG Image relative sizes, the
second step creates and caches an SVGImageForContainer with the correct
containerSize, and the last step retrieves the SVGImageForContainer.
Test: fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html
* rendering/RenderBoxModelObject.h: Publicized calculateImageIntrinsicDimensions() and its enum.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::getShapeImageAndRect):
(WebCore::ShapeInfo<RenderType>::computedShape):
LayoutTests:
Verify that an SVG Image valued shape-outside with a relatively sized SVG root element
generates a shape with the correct size.
* fast/shapes/shape-outside-floats/shape-outside-relative-size-svg-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165387
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrobinson@webkit.org [Mon, 10 Mar 2014 18:35:55 +0000 (18:35 +0000)]
[GTK][CMAKE] gtk-doc HTML documentation is generated by default when building with CMake
https://bugs.webkit.org/show_bug.cgi?id=130016
Reviewed by Carlos Garcia Campos.
* Source/PlatformGTK.cmake: Add two gtkdoc targets, one which builds HTML and one which
doesn't. Add the non-HTML version to the default target, but not the HTML version. The
HTML version will still run when building the distribution tarball.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165386
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Mon, 10 Mar 2014 18:30:07 +0000 (18:30 +0000)]
TextIterator: Use StringView and references rather than pointers
https://bugs.webkit.org/show_bug.cgi?id=129975
Reviewed by Anders Carlsson.
Source/WebCore:
TextIterator refinements:
- Use StringView instead of deprecatedCharacters to point to characters within strings.
- Added TextIteratorCopyableText, a safe way to copy the current text of a TextIterator,
for use by WordAwareIterator.
- Removed m_shouldStop; iterators stop by setting m_positionNode to null, and there is no
need for a separate boolean to do the same thing.
- Got rid of all the boolean data members set based on the text iterator behavior; instead
store the behavior in a data member and check it directly.
- Changed most functions to use references rather than pointers.
- Small micro-optimizations, such as using fastGetAttribute rather than getAttribute.
- Switched to nullptr instead of 0 where appropriate.
- Removed unused functions.
- Cut down on use of abbreviations instead of words.
- Renamed data members and argument names for clarity.
- Split up assertions that needlessly asserted more than one thing in a single expression.
- Treat CDATASection just like other Text, since its text will be visible.
* editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling): Pass reference rather than pointer.
(WebCore::Editor::rangeOfString): Ditto.
(WebCore::Editor::countMatchesForText): Ditto.
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspelling): Ditto.
* editing/TextIterator.cpp:
(WebCore::depthCrossingShadowBoundaries): Take a reference rather than a pointer.
(WebCore::nextInPreOrderCrossingShadowBoundaries): Ditto.
(WebCore::fullyClipsContents): Ditto.
(WebCore::ignoresContainerClip): Ditto.
(WebCore::pushFullyClippedState): Ditto.
(WebCore::setUpFullyClippedStack): Ditto.
(WebCore::isRendererReplacedElement): Use references rather than pointers in the
implementation. Also use fastGetAttribute instead of getAttribute.
(WebCore::TextIteratorCopyableText::reset): Added.
(WebCore::TextIteratorCopyableText::set): Added.
(WebCore::TextIteratorCopyableText::appendToStringBuilder): Added.
(WebCore::TextIterator::TextIterator): Use more initialization rather than assignment.
Got rid of some local variables.
(WebCore::TextIterator::advance): Removed the m_shouldStop boolean, uneeded.
Many other improvements. Use isTextNode instead of nodeType.
(WebCore::hasVisibleTextNode): Changed this into a file-private helper function
instead of a member function.
(WebCore::TextIterator::handleTextNode): Used references and cut down on type casts.
Gave local variables clearer names.
(WebCore::TextIterator::handleTextBox): More of the same.
(WebCore::TextIterator::handleTextNodeFirstLetter): Ditto.
(WebCore::TextIterator::handleReplacedElement): Ditto.
(WebCore::shouldEmitTabBeforeNode): Ditto.
(WebCore::hasHeaderTag): Added.
(WebCore::shouldEmitNewlinesBeforeAndAfterNode): More of the same.
(WebCore::shouldEmitNewlineAfterNode): Ditto.
(WebCore::shouldEmitNewlineBeforeNode): Ditto.
(WebCore::shouldEmitExtraNewlineForNode): Ditto.
(WebCore::collapsedSpaceLength): Use StringImpl directly instead of using the
deprecatedCharacters function.
(WebCore::TextIterator::shouldRepresentNodeOffsetZero): More like above.
(WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): Ditto.
(WebCore::TextIterator::representNodeOffsetZero): Ditto.
(WebCore::TextIterator::handleNonTextNode): Ditto.
(WebCore::TextIterator::exitNode): Ditto.
(WebCore::TextIterator::emitCharacter): Changed to use the new copyable text class
instead of managing the single character buffer directly here.
(WebCore::TextIterator::emitText): Changed to take a Text& and use the copyable text
class. Added a FIXME about a mistake I noticed.
(WebCore::TextIterator::range): Streamlined and simplified a bit. Updated data
member names to be a bit clearer. This function never returned null before, but there
was a code path that looked like it would; I removed that.
(WebCore::TextIterator::node): Removed unneeded null checks; the range function will
never return a range of null or one with null for a start container.
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): More
like above.
(WebCore::SimplifiedBackwardsTextIterator::advance): Reorganized a bit and removed
m_shouldStop.
(WebCore::SimplifiedBackwardsTextIterator::handleTextNode): More of the same.
(WebCore::SimplifiedBackwardsTextIterator::handleFirstLetter): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::exitNode): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::advanceRespectingRange): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::range): Ditto.
(WebCore::CharacterIterator::CharacterIterator): Ditto.
(WebCore::CharacterIterator::range): Ditto. No need for ASSERT_NO_EXCEPTION.
(WebCore::CharacterIterator::advance): Ditto.
(WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Ditto.
(WebCore::BackwardsCharacterIterator::range): Ditto.
(WebCore::BackwardsCharacterIterator::advance): Ditto.
(WebCore::WordAwareIterator::WordAwareIterator): Ditto.
(WebCore::WordAwareIterator::advance): Use copyableText for m_previousText, fixing
the FIXME that I wrote in here before.
(WebCore::WordAwareIterator::text): Ditto.
(WebCore::containsKanaLetters): Changed to quickly return false when the pattern
is all Latin-1 rather than expanding to 16-bit just to check.
(WebCore::SearchBuffer::SearchBuffer): Iterate the target using the string operator[]
instead of using deprecatedCharacters.
(WebCore::SearchBuffer::append): Do the folding of quote marks and hyphens one character
at a time as we move characters into the buffer instead of in a separate loop.
(WebCore::TextIterator::rangeLength): Updated for changes eslwehere.
(WebCore::TextIterator::subrange): Ditto.
(WebCore::isInsideReplacedElement): Ditto. Also streamlined and removed unneeded null check.
(WebCore::TextIterator::rangeFromLocationAndLength): Updated for changes elsewhere and
removed unneeded ASSERT_NO_EXCEPTION.
(WebCore::plainText): Ditto.
(WebCore::collapsedToBoundary): Ditto.
(WebCore::findPlainText): Ditto.
* editing/TextIterator.h: Changed many functions to take references instead of pointers.
Added TextIteratorCopyableText, to represent the current text in a TextIterator in a form
that can be safely copied and used after further iteration. Reorganized member functions so
they are in the same order in all the classes. Changed TextIterator to use
TextIteratorCopyableText. Removed many unused functions, including:
- TextIterator::length
- TextIterator::deprecatedTextIteratorCharacters
- TextIterator::characterAt
- SimplifiedBackwardsTextIterator::length
- CharacterIterator::length
- CharacterIterator::string
- WordAwareIterator::length
- WordAwareIterator::range
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::appendTrailingWhitespace): Pass reference rather than pointer.
Use text().length() instead of length(). Check atEnd() before using CharacterIterator, since
iterator member functions don't work when at the end.
* editing/VisibleUnits.cpp:
(WebCore::previousBoundary): Ditto.
(WebCore::nextBoundary): Ditto.
* editing/htmlediting.cpp:
(WebCore::visiblePositionForIndexUsingCharacterIterator): Ditto.
* page/ios/FrameIOS.mm:
(WebCore::Frame::indexCountOfWordPrecedingSelection): Ditto.
(WebCore::Frame::wordsInCurrentParagraph): Ditto.
LayoutTests:
* dom/xhtml/level3/core/nodelookupnamespaceuri14-expected.txt: Updated to expect
the CDATA section to be included in the text output of the test. This changed because
TextIterator now treats CDATA sections like other text, just as rendering code does.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165385
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 10 Mar 2014 18:18:08 +0000 (18:18 +0000)]
REGRESSION: js/dom/create-lots-of-workers.html frequently crashes
(sometimes in js/dom/cross-frame-bad-time.html)
https://bugs.webkit.org/show_bug.cgi?id=129758
* platform/mac-wk1/TestExpectations: Removed an older incorrect expectation.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165384
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bburg@apple.com [Mon, 10 Mar 2014 18:15:09 +0000 (18:15 +0000)]
Web Inspector: show a debugging-oriented dashboard when scripts pause
https://bugs.webkit.org/show_bug.cgi?id=129913
Reviewed by Timothy Hatcher.
Using the dashboard swapping functionality just added, show a debugger dashboard
whenever the debugger pauses, and hide it when it resumes. The debugger manager
already coalesces pause/resume events across stepping commands.
The dashboard itself is straightforward, with the exception of how it uses the
navigation bar buttons. Since buttons from the same URL can't be reused if they
are bezeled, we don't bezel our button, and set the button image as the glyph mask
instead of the background image. This lets us easily animate the glyph shape.
We also have to more forcefully declare a bunch of icon rules that would otherwise
be messed up by the toolbar's icon rules (whereas we want to mostly emulate navigation
bar icon styles).
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector._debuggerDidPause):
(WebInspector._debuggerDidResume):
* UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
* UserInterface/Main.html:
* UserInterface/Models/DebuggerDashboard.js: Added.
(WebInspector.DebuggerDashboard):
* UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.suppress-emboss > .glyph):
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem.prototype._updateImage):
* UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView):
* UserInterface/Views/DebuggerDashboardView.css: Added.
(.toolbar .dashboard.debugger):
(.dashboard.debugger > .message):
(.dashboard.debugger .navigation-bar):
(.toolbar:not(.small-size) .dashboard.debugger .navigation-bar):
(.dashboard.debugger .navigation-bar .item.button):
(.dashboard.debugger .navigation-bar .item.button > .glyph):
(@-webkit-keyframes pulse-pause-button):
(to):
(.dashboard.debugger > .divider):
(.dashboard.debugger > div):
(.dashboard.debugger > .location > :first-child):
(.toolbar:not(.small-size) .dashboard.debugger > .location :not(:first-child)):
(.dashboard.debugger > .location img.icon):
(.dashboard.debugger > .location .function-name):
(.dashboard.debugger > .location .function-name::after):
(.dashboard.debugger > .location .go-to-link):
(.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )):
(.toolbar.small-size .dashboard.debugger > .message):
(.toolbar.small-size .dashboard.debugger > .location > :first-child):
* UserInterface/Views/DebuggerDashboardView.js: Added.
(WebInspector.DebuggerDashboardView):
(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
(WebInspector.DebuggerDashboardView.prototype._resumeButtonClicked):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165383
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bburg@apple.com [Mon, 10 Mar 2014 18:07:29 +0000 (18:07 +0000)]
Web Inspector: convert the dashboard toolbar item to support multiple dashboards
https://bugs.webkit.org/show_bug.cgi?id=129898
Reviewed by Timothy Hatcher.
We want to ability to swap in and out different dashboard contents depending on
circumstances such as debugger activity and page loading. This patch converts the
existing hard-coded dashboard implementation to follow the container-based approach
used by WebInspector.ContentViewContainer.
As part of the refactoring, we introduce dashboard model objects to store persistent
dashboard data. Some CSS has also been split between the container and specific dashboard.
* UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
(WebInspector.DashboardManager.prototype.get toolbarItem):
* UserInterface/Main.html:
* UserInterface/Models/DefaultDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
(WebInspector.DefaultDashboard):
(WebInspector.DefaultDashboard.prototype.get resourcesCount):
(WebInspector.DefaultDashboard.prototype.set resourcesCount):
(WebInspector.DefaultDashboard.prototype.get resourcesSize):
(WebInspector.DefaultDashboard.prototype.set resourcesSize):
(WebInspector.DefaultDashboard.prototype.get time):
(WebInspector.DefaultDashboard.prototype.set time):
(WebInspector.DefaultDashboard.prototype.get logs):
(WebInspector.DefaultDashboard.prototype.set logs):
(WebInspector.DefaultDashboard.prototype.get errors):
(WebInspector.DefaultDashboard.prototype.set errors):
(WebInspector.DefaultDashboard.prototype.get issues):
(WebInspector.DefaultDashboard.prototype.set issues):
(WebInspector.DefaultDashboard.prototype._dataDidChange):
(WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
(WebInspector.DefaultDashboard.prototype._recordingStopped):
(WebInspector.DefaultDashboard.prototype._resourceWasAdded):
(WebInspector.DefaultDashboard.prototype._frameWasAdded):
(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
(WebInspector.DefaultDashboard.prototype._startUpdatingTime):
(WebInspector.DefaultDashboard.prototype._stopUpdatingTime):
(WebInspector.DefaultDashboard.prototype._updateTime):
(WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
(WebInspector.DefaultDashboard.prototype._consoleMessageWasRepeated):
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
(WebInspector.DefaultDashboard.prototype._consoleWasCleared):
* UserInterface/Views/DashboardContainerView.css: Added.
(.toolbar .dashboard-container):
(body.window-inactive .toolbar .dashboard-container):
(body.javascript .toolbar .dashboard-container):
(.toolbar.normal-size.icon-and-label-vertical .dashboard-container):
(.toolbar.small-size.icon-and-label-horizontal .dashboard-container):
(.toolbar.normal-size.icon-and-label-horizontal .dashboard-container):
(.toolbar .dashboard-container):
(.toolbar .dashboard):
(.toolbar .dashboard.visible):
(.toolbar .dashboard.slide-out-up):
(.toolbar .dashboard.slide-out-down):
(.toolbar .dashboard.slide-in-up):
(.toolbar .dashboard.slide-in-down):
(@-webkit-keyframes slide-top-edge):
(to):
(@-webkit-keyframes slide-bottom-edge):
* UserInterface/Views/DashboardContainerView.js: Added.
(WebInspector.DashboardContainerView):
(WebInspector.DashboardContainerView.prototype.get toolbarItem):
(WebInspector.DashboardContainerView.prototype.get currentDashboardView):
(WebInspector.DashboardContainerView.prototype.showDashboardViewForRepresentedObject):
(WebInspector.DashboardContainerView.prototype._dashboardViewForRepresentedObject):
(WebInspector.DashboardContainerView.prototype._showDashboardView):
* UserInterface/Views/DashboardView.css: Removed.
* UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView):
(WebInspector.DashboardView.prototype.get element):
(WebInspector.DashboardView.prototype.get parentContainer):
(WebInspector.DashboardView.prototype.get representedObject):
(WebInspector.DashboardView.prototype.shown):
(WebInspector.DashboardView.prototype.hidden):
* UserInterface/Views/DefaultDashboardView.css: Added.
(body.web .toolbar.collapsed .dashboard.default > .logs):
(body.javascript .toolbar .dashboard.default > .resourcesCount):
(.toolbar .dashboard.default):
(.toolbar .dashboard.default > .item):
(.toolbar .dashboard.default > .resourcesSize):
(.toolbar .dashboard.default > .item.enabled:hover):
(.toolbar .dashboard.default > .item.enabled:active):
(.toolbar .dashboard.default > .item > *):
(.toolbar .dashboard.default > .item > img):
(.toolbar .dashboard.default > .item.enabled > img):
(.toolbar .dashboard.default > .item.enabled:hover > img):
(.toolbar .dashboard.default > .item > div):
(.toolbar .dashboard.default > .item.enabled > div):
(.toolbar .dashboard.default > .item.enabled:hover > div):
(.toolbar .dashboard.default > .resourcesCount > img):
(.toolbar .dashboard.default > .time > img):
(.toolbar .dashboard.default > .logs > img):
(.toolbar .dashboard.default > .resourcesSize > img):
(.toolbar .dashboard.default > .errors > img):
(.toolbar .dashboard.default > .errors.enabled > img):
(.toolbar .dashboard.default > .errors.enabled:hover > img):
(.toolbar .dashboard.default > .errors.enabled > div):
(.toolbar .dashboard.default > .errors.enabled:hover > div):
(.toolbar .dashboard.default > .issues > img):
(.toolbar .dashboard.default > .issues.enabled > img):
(.toolbar .dashboard.default > .issues.enabled:hover > img):
(.toolbar .dashboard.default > .issues.enabled > div):
(.toolbar .dashboard.default > .issues.enabled:hover > div):
(.toolbar .dashboard.default > .item.pulsing):
(@-webkit-keyframes console-item-pulse):
(.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item):
(.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item):
* UserInterface/Views/DefaultDashboardView.js: Copied from Source/WebInspectorUI/UserInterface/Views/DashboardView.js.
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._updateDisplay):
(WebInspector.DefaultDashboardView.prototype._formatPossibleLargeNumber):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.set item):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
(WebInspector.DefaultDashboardView.prototype._itemWasClicked):
(WebInspector.DefaultDashboardView.prototype._resourcesWasClicked):
(WebInspector.DefaultDashboardView.prototype._networkItemWasClicked):
(WebInspector.DefaultDashboardView.prototype._consoleItemWasClicked):
(WebInspector.DefaultDashboardView.prototype.animationEnded):
(WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
(WebInspector.DefaultDashboardView.prototype._setItemEnabled):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165382
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mhahnenberg@apple.com [Mon, 10 Mar 2014 17:42:25 +0000 (17:42 +0000)]
Turn on GenGC on other 64-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=129258
Reviewed by Oliver Hunt.
* wtf/Platform.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165380
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrobinson@webkit.org [Mon, 10 Mar 2014 17:11:21 +0000 (17:11 +0000)]
[GTK] [CMake] Clean up library linking
https://bugs.webkit.org/show_bug.cgi?id=129782
Reviewed by Philippe Normand.
.:
* Source/cmake/OptionsGTK.cmake: Add a macro to wrap all libraries in a list with --whole-archive
so that unused symbols are not dropped. This is useful when building up shared libraries
from convenience libraries.
Source/WebCore:
* PlatformGTK.cmake: Some files are duplicated on the source list of two convenience
libraries. Ensure that they are all compiled into WebCore instead of WebCorePlatformGTK.
Some simply need to be moved to WebCore from WebCorePlatformGTK. Don't try to link
WebCorePlatformGTK against WebCore -- convenience libraries should be able to save
their symbol resolution for the final linking step.
Source/WebKit:
* PlatformGTK.cmake: Use the new macro.
Source/WebKit2:
* PlatformGTK.cmake: Use the new macro.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165378
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
stavila@adobe.com [Mon, 10 Mar 2014 16:29:09 +0000 (16:29 +0000)]
[CSS Regions] Scrolling regions with the mouse wheel only works properly if hovering over the region's padding
https://bugs.webkit.org/show_bug.cgi?id=129485
Reviewed by Andrei Bucur.
Source/WebCore:
When searching for the region under the mouse pointer (to identify which region to scroll),
the localToAbsolute method must be called on the region container, not the region itself.
Also, when calling the offsetFromContainer method on a named flow fragment,
it must only take into consideration the border and padding of the fragment container,
not its scrolled offset.
Test: fast/regions/wheel-scrollable-single-region.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scroll):
* rendering/RenderFlowThread.cpp:
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::offsetFromContainer):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
* rendering/RenderNamedFlowThread.h:
LayoutTests:
Added layout tests for scrolling regions using the mouse wheel.
* fast/regions/wheel-scrollable-single-region-expected.html: Added.
* fast/regions/wheel-scrollable-single-region.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165377
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jer.noble@apple.com [Mon, 10 Mar 2014 16:28:13 +0000 (16:28 +0000)]
[iOS][WK1] Crash in HTMLMediaElement::createElementRenderer() - "-[NSSet addObject:]: object cannot be nil"
https://bugs.webkit.org/show_bug.cgi?id=129634
Reviewed by Eric Carlson.
If a plugin fails to create a NSView, a nil object is inserted into the WebPluginController's
pluginViews set. This is an exceptional case, so add an ASSERT so that this error will continue
to occur in debug builds, but also add an early return so as not to crash release builds.
* Plugins/WebPluginController.mm:
(+[WebPluginController addPlugInView:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165376
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
m.pakula@samsung.com [Mon, 10 Mar 2014 15:32:51 +0000 (15:32 +0000)]
Unreviewed EFL gardening
Add test expectations for failing and crashing tests.
* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:
* platform/efl/fast/images/image-controls-basic-expected.txt: Added after r164457.
* platform/efl/fast/ruby/ruby-base-merge-block-children-crash-2-expected.txt: Added after r164323.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165375
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lforschler@apple.com [Mon, 10 Mar 2014 15:13:36 +0000 (15:13 +0000)]
Versioning.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165374
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mihnea@adobe.com [Mon, 10 Mar 2014 13:36:21 +0000 (13:36 +0000)]
[CSSRegions] Fix broken paths in some regions tests
https://bugs.webkit.org/show_bug.cgi?id=130012
Reviewed by Andrei Bucur.
* fast/regions/cssom/offsetLeft-offsetTop-in-multiple-regions.html:
* fast/regions/region-styling/region-style-image-background-color-expected.html:
* fast/regions/region-styling/region-style-image-background-color.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165372
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Mon, 10 Mar 2014 11:10:51 +0000 (11:10 +0000)]
[GTK] The web process can finish while a print operation is still ongoing
https://bugs.webkit.org/show_bug.cgi?id=129871
Reviewed by Martin Robinson.
This can happen when the last page is closed while the print job
is sending data to the printer.
* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Disable web
process termination when the print job is sending data to the
printer and enable it again when job finishes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165371
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 10:06:01 +0000 (10:06 +0000)]
[X86_64] Smaller code for xor_ir when register is accumulator.
<https://webkit.org/b/130008>
Generate the shorthand version of "xor eax, imm" when possible.
Reviewed by Benjamin Poulain.
* assembler/X86Assembler.h:
(JSC::X86Assembler::xorl_ir):
(JSC::X86Assembler::xorq_ir):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165370
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 09:51:38 +0000 (09:51 +0000)]
[X86_64] Smaller code for or_ir when register is accumulator.
<https://webkit.org/b/130007>
Generate the shorthand version of "or eax, imm" when possible.
Reviewed by Benjamin Poulain.
* assembler/X86Assembler.h:
(JSC::X86Assembler::orl_ir):
(JSC::X86Assembler::orq_ir):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165369
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 09:48:57 +0000 (09:48 +0000)]
[X86_64] Smaller code for test_ir when register is accumulator.
<https://webkit.org/b/130006>
Generate the shorthand version of "test eax, imm" when possible.
Reviewed by Benjamin Poulain.
* assembler/X86Assembler.h:
(JSC::X86Assembler::testl_i32r):
(JSC::X86Assembler::testq_i32r):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165368
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 09:48:08 +0000 (09:48 +0000)]
[X86_64] Smaller code for cmp_ir when register is accumulator.
<https://webkit.org/b/130005>
Generate the shorthand version of "cmp eax, imm" when possible.
Reviewed by Benjamin Poulain.
* assembler/X86Assembler.h:
(JSC::X86Assembler::cmpl_ir):
(JSC::X86Assembler::cmpq_ir):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165367
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 07:53:11 +0000 (07:53 +0000)]
[X86_64] Smaller code for store64(imm, address) when imm fits in 32 bits.
<https://webkit.org/b/130002>
Generate this:
mov [address], imm32
Instead of this:
mov scratchRegister, imm32
mov [address], scratchRegister
For store64(imm, address) where the 64-bit immediate can be passed as
a sign-extended 32-bit value.
Reviewed by Benjamin Poulain.
* assembler/MacroAssemblerX86_64.h:
(CAN_SIGN_EXTEND_32_64):
(JSC::MacroAssemblerX86_64::store64):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165366
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 07:50:44 +0000 (07:50 +0000)]
[X86_64] Smaller code for xchg_rr when one register is accumulator.
<https://webkit.org/b/130004>
Generate the 1-byte version of "xchg eax, reg" when possible.
Reviewed by Benjamin Poulain.
* assembler/X86Assembler.h:
(JSC::X86Assembler::xchgl_rr):
(JSC::X86Assembler::xchgq_rr):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165365
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jinwoo7.song@samsung.com [Mon, 10 Mar 2014 07:17:04 +0000 (07:17 +0000)]
Remove unused dispatchStorageEvent() from StorageAreaSync
https://bugs.webkit.org/show_bug.cgi?id=129999
Reviewed by Andreas Kling.
dispatchStorageEvent() is not used anywhere.
* storage/StorageAreaSync.h: Remove dispatchStorageEvent().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165364
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 10 Mar 2014 06:58:15 +0000 (06:58 +0000)]
Update comment in NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=129997
Patch by Jeong Yong-uk <yong@company100.com> on 2014-03-09
Reviewed by Andreas Kling.
NetworkResourceLoader::resourceHandleStopped() has been renamed to
NetworkResourceLoader::cleanup() but the comment is not updated.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165363
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 10 Mar 2014 06:57:13 +0000 (06:57 +0000)]
GPRInfo::toIndex should return InvalidIndex for non-temp registers on ARM64
https://bugs.webkit.org/show_bug.cgi?id=129998
Reviewed by Geoffrey Garen.
Not only is that the established contract, but this is used to signal to
ScratchRegisterAllocator that the register doesn't need locking since it isn't a register
that this allocator would use. In the FTL, we may have an inline cache where LLVM had used
some non-temp register (i.e. a register that JSC itself wouldn't have used). This is totally
fine but previously it would have led to either an assertion failure, or data corruption, in
the ScratchRegisterAllocator.
* jit/GPRInfo.h:
(JSC::GPRInfo::toIndex):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165362
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 10 Mar 2014 06:18:23 +0000 (06:18 +0000)]
iOS build fix.
* WebProcess/WebPage/ios/WebPageIOS.mm: Include WebCore/KeyboardEvent.h.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165361
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 10 Mar 2014 05:17:50 +0000 (05:17 +0000)]
REGRESSION: js/dom/create-lots-of-workers.html frequently crashes
(sometimes in js/dom/cross-frame-bad-time.html)
https://bugs.webkit.org/show_bug.cgi?id=129758
* platform/mac/TestExpectations: Skipped the test.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165360
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Mon, 10 Mar 2014 05:11:55 +0000 (05:11 +0000)]
iOS build fix.
* dom/KeyboardEvent.cpp: (WebCore::KeyboardEvent::KeyboardEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165359
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Mon, 10 Mar 2014 02:50:32 +0000 (02:50 +0000)]
FTL fails the new equals-masquerader strictEqualConstant test
https://bugs.webkit.org/show_bug.cgi?id=129996
Reviewed by Mark Lam.
It turns out that the FTL was trying to do the masquerading stuff for ===null. But
that's wrong since none of the other engines do it. The DFG even had an ancient
FIXME about doing it - but that doesn't make sense since the LLInt and baseline JIT
don't do it and JSValue::strictEqual() doesn't do it.
Remove the FIXME and remove the extra checks in the FTL.
This is a glorious patch: nothing but red and it fixes a test failure.
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStrictEqForConstant):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEqConstant):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165358
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Mon, 10 Mar 2014 01:57:48 +0000 (01:57 +0000)]
Short-circuit JSGlobalObjectInspectorController when not inspecting.
<https://webkit.org/b/129995>
Add an early return in reportAPIException() when the console agent
is disabled. This avoids expensive symbolication during exceptions
if there's nobody expecting the fancy backtrace anyway.
~2% progression on DYEB on my MBP.
Reviewed by Geoff Garen.
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165357
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ap@apple.com [Sun, 9 Mar 2014 22:56:08 +0000 (22:56 +0000)]
[Mac] Don't perform a round-trip through WebProcess before interpreting key events
https://bugs.webkit.org/show_bug.cgi?id=129812
Reviewed by Darin Adler.
Source/WebCore:
No significant behavior changes expected, except for Esc key processing, which now
dispatches a keypress before executing its default action.
* platform/KeypressCommand.h: Added.
(WebCore::KeypressCommand::KeypressCommand):
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Moved KeypressCommand from dom/KeyboardEvent.h to its own header, as it needed
in platform/ directory now.
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/KeyboardEvent.h:
(WebCore::KeyboardEvent::handledByInputMethod):
(WebCore::KeyboardEvent::keypressCommands):
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::handledByInputMethod):
(WebCore::PlatformKeyboardEvent::commands):
PlatformKeyboardEvent now carries results of interpreting the event by AppKit. This
is logically not much different from carrying charcode, and is similar to what Gtk
does for input methods.
KeyboardEvent already had keypress commands, which were added to it after construction.
It's still possible for WebKit1, while with WebKit2, they are provided at construction
time. The event now also has a boolean for whether IM handled it already.
Source/WebKit/mac:
* WebCoreSupport/WebEditorClient.mm: (WebEditorClient::handleInputMethodKeydown):
Added a FIXME. WebKit1/mac is the only port that uses this roundabout way to
interpret events, so it would simplify code if we switched it to WebKit2/mac model.
Source/WebKit2:
* Shared/NativeWebKeyboardEvent.h:
* Shared/WebEvent.h:
(WebKit::WebKeyboardEvent::handledByInputMethod):
(WebKit::WebKeyboardEvent::commands):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
* Shared/WebKeyboardEvent.cpp:
(WebKit::WebKeyboardEvent::WebKeyboardEvent):
(WebKit::WebKeyboardEvent::~WebKeyboardEvent):
(WebKit::WebKeyboardEvent::encode):
(WebKit::WebKeyboardEvent::decode):
* Shared/mac/NativeWebKeyboardEventMac.mm:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
* Shared/mac/WebEventFactory.h:
* Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebKeyboardEvent):
Keyboard events now carry results of interpretation with them.
Ideally, mouse events should also have a handledByInputMethod member, because IMs
can handle events, but that can wait until we have actual bugs caused by not diabling
default processing for these.
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFirstResponder]): Updated for new NativeWebKeyboardEvent contructor
signature. We don't interpret the event in this code path.
(-[WKView doCommandBySelector:]): Added logging.
(-[WKView performKeyEquivalent:]): Reimplemented Esc and Cmd+period handling to avoid
infinite loops and re-entrancy. These two work in a unique way in AppKit.
Interpret key event before sending it down to WebProcess.
(-[WKView keyUp:]): Interpret key event before sending it down to WebProcess.
We need to tell IMs about the event, but key binding processing is moot, all commands
are executed on keydown.
(-[WKView keyDown:]): Interpret the event.
(-[WKView flagsChanged:]): Ditto.
(-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]): Added an assertion in
consumedByIM code path.
(-[WKView _executeSavedCommandBySelector:]): Added logging.
* UIProcess/PageClient.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
* UIProcess/mac/WebPageProxyMac.mm:
Removed interpretQueuedKeyEvent/interpretKeyEvent, WebProcess no longer asks UIProcess to do this.
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::handleKeyboardEvent):
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::WebEditorClient::handleKeyboardEvent):
(WebKit::WebEditorClient::handleInputMethodKeydown):
WebPage::handleEditingKeyboardEvent is now one function instead of two with a boolean
switch between two behaviors.
* WebProcess/WebPage/WebPage.cpp:(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
Removed m_keyboardEventBeingInterpreted, as we no longer send the event for interpretation.
This means that we sometimes have to pass a null event down to WebCore, but I wasn't
able to find any behavior differences from us doing so.
* WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::handleEditingKeyboardEvent):
Added a FIXME.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::executeKeypressCommandsInternal): When we don't have an event,
use current frame as a target, just like input method messages do.
(WebKit::WebPage::handleEditingKeyboardEvent): This function no longer saves commands,
it only interprets them.
Added a check for Esc, as we don't want to handle it in keydown event handler.
(WebKit::WebPage::insertText): Pass 0 instead of m_keyboardEventBeingInterpreted.
(WebKit::WebPage::insertDictatedText): Ditto.
(WebKit::WebPage::executeKeypressCommands): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165356
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Sun, 9 Mar 2014 21:07:32 +0000 (21:07 +0000)]
Inline the trivial parts of GC deferral.
<https://webkit.org/b/129984>
Made most of the functions called by the DeferGC RAII object inline
to avoid function call overhead.
Looks like ~1% progression on DYEB.
Reviewed by Geoffrey Garen.
* heap/Heap.cpp:
* heap/Heap.h:
(JSC::Heap::incrementDeferralDepth):
(JSC::Heap::decrementDeferralDepth):
(JSC::Heap::collectIfNecessaryOrDefer):
(JSC::Heap::decrementDeferralDepthAndGCIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165355
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Sun, 9 Mar 2014 20:27:31 +0000 (20:27 +0000)]
Subpixel rendering: Pass FloatSize boxsize to transform animations to support device pixel sizing.
https://bugs.webkit.org/show_bug.cgi?id=129985
Reviewed by Simon Fraser.
This is in preparation to stop passing integral positioned boxes to transform animations.
No change in behavior.
Source/WebCore:
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::addAnimation):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::getTransformFunctionValue):
(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startTransition):
Source/WebKit2:
* WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165354
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Sun, 9 Mar 2014 19:09:32 +0000 (19:09 +0000)]
Skip fast/workers/worker-copy-shared-blob-url.html in webkit2
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165353
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Sun, 9 Mar 2014 18:14:07 +0000 (18:14 +0000)]
[iOS Wk2] Can't scroll after going back to page in page cache
https://bugs.webkit.org/show_bug.cgi?id=129989
<rdar://problem/
16217588>
Reviewed by Dan Bernstein.
iOS has a special FrameLoader::forceLayoutWithoutRecalculatingStyle()
function that is called instead of FrameView::forceLayout(). This was unimplemented
for the WK2 FrameLoaderClient, so no layout was forced, with the result
that the contentSize was never updated and scrolling was broken.
Fix by renaming the client function to forceLayoutOnRestoreFromPageCache()
and having it return a bool to say whether the default forceLayout()
should be done. WK1 can then continue to have its custom behavior,
and Wk2 will simply do a forceLayout().
Also remove FrameLaoderClient::forceLayout(), which was never called.
Source/WebCore:
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
* loader/FrameLoaderClient.h:
Source/WebKit/mac:
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::forceLayoutOnRestoreFromPageCache):
Source/WebKit2:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
(WebKit::WebFrameLoaderClient::forceLayoutOnRestoreFromPageCache):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165352
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrobinson@webkit.org [Sun, 9 Mar 2014 17:17:14 +0000 (17:17 +0000)]
RunGtkWebKitGObjectDOMBindingsAPIBreakTests should be added to the BuildAndTestFactory not the TestFactory
https://bugs.webkit.org/show_bug.cgi?id=129980
Reviewed by Carlos Garcia Campos.
* BuildSlaveSupport/build.webkit.org-config/master.cfg: Add RunGtkWebKitGObjectDOMBindingsAPIBreakTests to the correct factory.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165351
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrobinson@webkit.org [Sun, 9 Mar 2014 17:09:10 +0000 (17:09 +0000)]
[GTK] Remove the WebView source-mode WebKit1 test
https://bugs.webkit.org/show_bug.cgi?id=129976
Reviewed by Carlos Garcia Campos.
* TestWebKitAPI/Tests/WebKitGtk/testwebview.c: Remove the source-mode test.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165350
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Sun, 9 Mar 2014 05:28:14 +0000 (05:28 +0000)]
[iOS WK2] Get position:fixed working slighlty better
https://bugs.webkit.org/show_bug.cgi?id=129988
Source/WebCore:
Reviewed by Dan Bernstein.
On iOS we want to use the viewport-constrained visible rect, not
just the visible rect.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
Source/WebKit2:
Reviewed by Dan Bernstein.
iOS uses fixed layout, but does not want fixed elements laid
out relative to the frame.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseFixedLayout):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165349
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
simon.fraser@apple.com [Sun, 9 Mar 2014 05:03:35 +0000 (05:03 +0000)]
[iOS] Don't call scrollOffsetForFixedPosition a second time if we have no header and footer layers
https://bugs.webkit.org/show_bug.cgi?id=129912
Reviewed by Tim Horton.
Avoid extra work if we have no header or footer layers.
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165348
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jonlee@apple.com [Sun, 9 Mar 2014 04:32:47 +0000 (04:32 +0000)]
iOS broken after r165342
https://bugs.webkit.org/show_bug.cgi?id=129987
Reviewed by Simon Fraser.
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::platformLowMemoryHandler): Add missing stub implementation for
platformLowMemoryHandler().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165347
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Sun, 9 Mar 2014 02:38:58 +0000 (02:38 +0000)]
RenderElement::valueForLength() callers misuse bool parameter.
https://bugs.webkit.org/show_bug.cgi?id=129982
Reviewed by Andreas Kling.
Remove bogus RenderView* parameter.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165346
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Sun, 9 Mar 2014 02:18:32 +0000 (02:18 +0000)]
[iOS] media preferences not initialized correctly in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129983
Reviewed by Dan Bernstein.
* Shared/WebPreferencesStore.h: Initialize mediaPlaybackAllowsInline and
mediaPlaybackRequiresUserGesture correctly for iOS.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165345
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sun, 9 Mar 2014 02:16:11 +0000 (02:16 +0000)]
Allow media element to supply the video layer after fullscreen transition has already begun.
https://bugs.webkit.org/show_bug.cgi?id=129870
Patch by Jeremy Jones <jeremyj@apple.com> on 2014-03-08
Reviewed by Eric Carlson.
Source/WebCore:
Instead of borrowing the videolayer from the HTMLMediaElement, WebVideoFullscreen now supplies a layer to HTMLMediaElement to fill in as needed and at the appropriate time.
This allows fullscreen even if the video layer hasn't yet been created. And in the future it allows MediaPlayer to supply other layers such as closed captions.
* WebCore.exp.in:
Remove exports related to borrowing and lend the video layer.
Add exports for supplying a layer to fullscreen and keepying the frame and gravity properties in sync.
* html/HTMLMediaElement.cpp:
Remove the concept of borrowing the platform layer.
Add the concept of a supplied m_videoFullscreenLayer, into which the media player can add layers.
When the m_videoFullscreenFrame is supplied, don't show the video layer inline any more.
Stash video layer properties in case the media player is not yet created.
(WebCore::HTMLMediaElement::HTMLMediaElement):
Initialize gravity to the default. Remove m_platformLayerBorrowed.
(WebCore::HTMLMediaElement::platformLayer):
When we have a m_videoFullscreenLayer, don't show video inline.
(WebCore::HTMLMediaElement::setVideoFullscreenLayer):
Pass along the m_videoFullscreenLayer to the MediaPlayer if available or just stash it for later.
(WebCore::HTMLMediaElement::createMediaPlayer):
Pass along video fullscreen properties that we may have accumulated before the MediaPlayer was created.
(WebCore::HTMLMediaElement::setVideoFullscreenGravity):
Stash the gravity property, pass it along to the media player if possible.
* html/HTMLMediaElement.h:
Remove concept of borrowing the video layer. Add properties for a supplied videoFullscreenLayer.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::setVideoFullscreenLayer):
Forward on to internal implementation.
(WebCore::MediaPlayer::setVideoFullscreenFrame):
Forward on to internal implementation.
(WebCore::MediaPlayer::setVideoFullscreenGravity):
Forward on to internal implementation.
* platform/graphics/MediaPlayer.h:
Add methods for video fullscreen Layer, Frame and Gravity.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer):
Add default implementation.
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenFrame):
Add default implementation.
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenGravity):
Add default implementation.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
Add support for fullscreen video layer, frame and gravity.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
Init m_videoFullscreenGravity.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
Apply cached properties once video layer is created and add to the fullscreen layer.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
Cache the property value. Add video layer right away available.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
Cache the property value. Apply to video layer right away if available.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
Cache the property value. Apply to video layer right away if available.
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
(-[WebVideoFullscreenController enterFullscreen:]):
Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
(-[WebVideoFullscreenController didExitFullscreen]):
Clean up the videoFullscreenLayer.
* platform/ios/WebVideoFullscreenInterface.h:
Remove methods related to lending the video layer.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
Remove functions related to lending the video layer.
Supply a layer directly to enterFullscreen.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(+[WebAVVideoLayer videoLayer]):
Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
(-[WebAVVideoLayer setPlayerController:]):
Store the AVPlayerController to prevent AVKit's default behavior.
(-[WebAVVideoLayer setBounds:]):
Forward this onto the WebVideoFullscreenModel
(-[WebAVVideoLayer setVideoLayerGravity:]):
Forward this onto the WebVideoFullscreenModel
(-[WebAVVideoLayer videoLayerGravity]):
Forward this onto the WebVideoFullscreenModel
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
Supply a video layer directly instead of relying on one being previously loaned.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
Clean-up now assumes there is a video layer.
* platform/ios/WebVideoFullscreenModel.h:
Remove methods for borrowing and returning video layers.
Add methods for keeping video layer state in sync.
* platform/ios/WebVideoFullscreenModelMediaElement.h:
Remove methods for borrowing and returning video layers.
Add method for supplying a video fullscreen layer.
Add methods for keeping video layer state in sync.
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::setMediaElement):
Handle audio element case by setting hasVideo to false.
(WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer):
Pass along the video fullscreen layer to the media element.
(WebVideoFullscreenModelMediaElement::setVideoLayerFrame):
Pass along the video layer frame to the media element.
(WebVideoFullscreenModelMediaElement::setVideoLayerGravity):
Pass along the video layer gravity to the media element.
Source/WebKit2:
WebVideoFullscreenManager and WebVideoFullscreenManagerProxy do their own remote hosting of the video layer instead of needing the video layer to have already been hosted elsewhere. This allows the removal of the coordination with WebPageProxy via a RemoteLayerTreeTransaction.
* Shared/mac/RemoteLayerTreeTransaction.h:
Remove m_videoLayerIDsPendingFullscreen and accessors.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
Don't encode m_videoLayerIDsPendingFullscreen
(WebKit::RemoteLayerTreeTransaction::decode):
Don't decode m_videoLayerIDsPendingFullscreen
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
Don't forward didCommitLayerTree to m_videoFullscreenManager.
* UIProcess/ios/WebVideoFullscreenManagerProxy.h:
Remove code for synchronizing with the RenderTree.
Add a hosting layer and methods to keep video layer frame and video gravity synchronized.
* UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
Change IPC interface to fascilitate rehosting video layer with a instead of coordinating with the RenderTree by PlatformLayerID.
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
Remove initialization for removed members.
(WebKit::WebVideoFullscreenManagerProxy::enterFullscreenWithID):
Rehost the video layer by id and pass on the layer.
This replaces didCommitLayerTree() and willLendVideoLayerWithID().
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
Cleanup the hosting layer.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
Forward on the video layer's frame to keep the hosted layer in sync with the interface.
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity):
Forward the videolayer gravity.
* WebKit2.xcodeproj/project.pbxproj:
Rename WebVideoFullscreenManager.cpp to WebVideoFullscreenManager.mm
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
Don't invovle the m_videoFullscreenManager in layer tree transactions.
* WebProcess/ios/WebVideoFullscreenManager.h:
Remove code that synchronizes with the render tree via RemoteLayerTreeTransaction.
Instead rehost the video layer directly.
Instead of hoping the WebVideoFullscreenModel has a videoLayer, supply one into which
it can add whatever it likes as needed.
* WebProcess/ios/WebVideoFullscreenManager.messages.in:
No more explicit borrowing and returning video layers.
Add functions to keep video layer bounds and gravity in sync with the UI.
* WebProcess/ios/WebVideoFullscreenManager.mm: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.cpp.
Removed code for synchronizing via RemoteLAyerTreeTransaction.
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
Remove initialization for removed memeber m_sendUnparentVideoLayerTransaction.
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
Creates a fullscreen layer, gives it to the WebVideoFullscreenModel to fill in,
and hosts it in a context to send to the UIProcess.
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode):
remove enterFullscreen() and just directly send the IPC message.
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
Clean up the hosting context.
(WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum):
Forward on the video gravity. Type convert from unsigned to MediaPlayer::VideoGravity.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165344
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jaepark@webkit.org [Sun, 9 Mar 2014 01:47:09 +0000 (01:47 +0000)]
Clean up PlatformLayer.h
https://bugs.webkit.org/show_bug.cgi?id=129967
Reviewed by Martin Robinson.
* platform/graphics/PlatformLayer.h:
Remove duplicated declaration of PlatformLayer when using TextureMapper.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165343
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Sun, 9 Mar 2014 00:49:57 +0000 (00:49 +0000)]
[WK2] Improve the network process low memory handler.
<https://webkit.org/b/129977>
Split the network process low memory handler into platform-specific
and shared parts. The shared part tells FastMalloc to release freed
pages back to the OS.
For Mac, added a call to purge the in-memory part of CFURLCache.
Remove the malloc_zone_pressure_relief() since that is now taken care
of by the shared MemoryPressureHandler code.
Reviewed by Darin Adler.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::platformLowMemoryHandler):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformLowMemoryHandler):
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165342
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Sun, 9 Mar 2014 00:14:00 +0000 (00:14 +0000)]
Subpixel rendering: Simple compositing container layer (isSimpleContainerCompositingLayer) paints to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=129861
Reviewed by Simon Fraser.
This patch ensures that both the simple and non-simple cases paint to the same position.
Simple compositing container layer codepath needs to take the fractional device pixel offset
into account when painting. Without the fractional value, the final paint rounding could push the
paint offset to a different position.
retina example:
compositing top-left: 0px 0px.
fractional offset: 0.3px 0.3px
painting coords without offseting: 0px 0px
with offseting: 0.5px 0.5px
Source/WebCore:
Tests: compositing/hidpi-simple-container-layer-on-device-pixel.html
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::contentsRect):
(WebCore::GraphicsLayer::setContentsRect):
(WebCore::GraphicsLayer::contentsClippingRect):
(WebCore::GraphicsLayer::setContentsClippingRect):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsRect):
(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::updateContentsRects):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
(WebCore::RenderLayerBacking::backgroundBoxForPainting):
* rendering/RenderLayerBacking.h:
LayoutTests:
* compositing/hidpi-simple-container-layer-on-device-pixel-expected.html: Added.
* compositing/hidpi-simple-container-layer-on-device-pixel.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165341
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrobinson@webkit.org [Sat, 8 Mar 2014 22:33:43 +0000 (22:33 +0000)]
Skip tests on GTK+ for unimplemented features
* platform/gtk/TestExpectations: When a feature is unimplemented, the tests may fail or
they may timeout, or perhaps they will crash. We just skip them here, so that we don't
have to micromanage expectations for tests against incomplete features.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165340
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Sat, 8 Mar 2014 22:29:00 +0000 (22:29 +0000)]
SerializedScriptValue may move Identifiers between worlds
https://bugs.webkit.org/show_bug.cgi?id=129979
Reviewed by Andreas Kling.
Source/WebCore:
Test: fast/workers/worker-copy-shared-blob-url.html
Don't use Strings to store blob URLs as String's may be Identifiers
and they can only exist in one world/thread at a time.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserializeString):
(WebCore::SerializedScriptValue::addBlobURL):
(WebCore::SerializedScriptValue::SerializedScriptValue):
* bindings/js/SerializedScriptValue.h:
LayoutTests:
Add test cases
* fast/workers/resources/worker-copy-shared-blob-url-worker.js: Added.
(count.0.onmessage):
* fast/workers/worker-copy-shared-blob-url-expected.txt: Added.
* fast/workers/worker-copy-shared-blob-url.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165339
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zoltan@webkit.org [Sat, 8 Mar 2014 22:14:47 +0000 (22:14 +0000)]
Update perf.webkit.org json example
https://bugs.webkit.org/show_bug.cgi?id=129907
Reviewed by Andreas Kling.
The current example is not valid json syntax. I fixed the syntax errors and indented the code properly.
* ReadMe.md:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165338
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 8 Mar 2014 22:09:54 +0000 (22:09 +0000)]
Don't check for shm_open on librt on OpenBSD, lib doesnt exist.
https://bugs.webkit.org/show_bug.cgi?id=129973
Patch by Landry Breuil <landry@openbsd.org> on 2014-03-08
Reviewed by Martin Robinson.
* Source/autotools/FindDependencies.m4:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@165337
268f45cc-cd09-0410-ab3c-
d52691b4dbfc