WebKit-https.git
4 years agoSimple line layout(regression): Calling innerText on RenderFlow with multiple childre...
zalan@apple.com [Thu, 9 Apr 2015 18:57:33 +0000 (18:57 +0000)]
Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
https://bugs.webkit.org/show_bug.cgi?id=143554

Reviewed by Antti Koivisto.

Initialize render flow's segments only when the render flow changes in TextIterator.
The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)

PerformanceTests:

* Layout/simple-line-layout-innertext.html: Added.

Source/WebCore:

Test: PerformanceTests/Layout/simple-line-layout-innertext.html.

* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
* editing/TextIterator.h:
* rendering/SimpleLineLayoutFlowContents.cpp: Instruments log shows that vector's expandCapacity could be expensive when flow has large amount of children.
(WebCore::SimpleLineLayout::initializeSegments):

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

4 years ago[WK2][iOS] editorState() should not cause a synchronous layout
cdumez@apple.com [Thu, 9 Apr 2015 18:31:51 +0000 (18:31 +0000)]
[WK2][iOS] editorState() should not cause a synchronous layout
https://bugs.webkit.org/show_bug.cgi?id=142536
<rdar://problem/20041506>

Reviewed by Enrica Casucci.

Source/WebCore:

Add didChangeSelectionAndUpdateLayout() callback to EditorClient
that is called at the end of FrameSelection::updateAndRevealSelection().

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::updateAndRevealSelection):
* loader/EmptyClients.h:
* page/EditorClient.h:

Source/WebKit/mac:

Provide implementation for EditorClient::didChangeSelectionAndUpdateLayout().

* WebCoreSupport/WebEditorClient.h:

Source/WebKit/win:

Provide implementation for EditorClient::didChangeSelectionAndUpdateLayout().

* WebCoreSupport/WebEditorClient.h:

Source/WebKit2:

platformEditorState() on iOS does a synchronous layout to compute some
of the EditorState members (e.g. caretRectAtStart / caretRectAtEnd).
This is bad for performance as this is called every time the selection
is changed (which happens for e.g. when you set the value of a focused
HTMLInputElement).

This patch updates the behavior on iOS to only send a partial EditorState
on selection change so that the UIProcess gets most of the information
(the ones that do not require style recalc or layout) ASAP. A full Editor
state is then sent after the asynchronous layout is done.

With this change, I see a 38% improvement on Speedometer (26.4 +/- 0.37
-> 36.5 +/- 0.54) on iPhone 6 Plus.

* Shared/EditorState.cpp:
(WebKit::EditorState::encode):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):
* Shared/EditorState.h:
(WebKit::EditorState::EditorState): Deleted.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLayerTree:]):
* UIProcess/ios/WKContentViewInteraction.mm:
(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(-[WKContentView webSelectionRects]):
(-[WKContentView _addShortcut:]):
(-[WKContentView selectedText]):
(-[WKContentView isReplaceAllowed]):
(-[WKContentView _promptForReplace:]):
(-[WKContentView _transliterateChinese:]):
(-[WKContentView textStylingAtPosition:inDirection:]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView _characterBeforeCaretSelection]):
(-[WKContentView _characterInRelationToCaretSelection:]):
(-[WKContentView _selectionAtDocumentStart]):
(-[WKContentView selectedTextRange]):
(-[WKContentView hasContent]):
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::didChangeSelectionAndUpdateLayout):
* WebProcess/WebCoreSupport/WebEditorClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
(WebKit::WebPage::didChangeSelection):
(WebKit::WebPage::sendPostLayoutEditorStateIfNeeded):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformEditorState):

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

4 years agoNetwork Cache: Crash in WebCore::CachedResource::tryReplaceEncodedData
antti@apple.com [Thu, 9 Apr 2015 16:20:21 +0000 (16:20 +0000)]
Network Cache: Crash in WebCore::CachedResource::tryReplaceEncodedData
https://bugs.webkit.org/show_bug.cgi?id=143562

Reviewed by Anders Carlsson.

If another thread comes and truncates the file before we map it we end up with a map that crashes when accessed.

* NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
(WebKit::NetworkCache::IOChannel::IOChannel):

    When creating a new file unlink any existing file instead of using O_TRUNC.

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

4 years agoGive each cache group a storage and use it in place of the singleton
andersca@apple.com [Thu, 9 Apr 2015 16:13:06 +0000 (16:13 +0000)]
Give each cache group a storage and use it in place of the singleton
https://bugs.webkit.org/show_bug.cgi?id=143540

Reviewed by Sam Weinig.

This is another step towards making the cache storage be per page.

* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::cacheForMainRequest):
(WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest):
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::makeObsolete):
(WebCore::ApplicationCacheGroup::didReachMaxAppCacheSize):
(WebCore::ApplicationCacheGroup::recalculateAvailableSpaceInQuota):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
* loader/appcache/ApplicationCacheGroup.h:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):

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

4 years ago[EFL] fast/css/vertical-text-overflow-ellipsis-text-align-center.html is failing
commit-queue@webkit.org [Thu, 9 Apr 2015 15:42:52 +0000 (15:42 +0000)]
[EFL] fast/css/vertical-text-overflow-ellipsis-text-align-center.html is failing
https://bugs.webkit.org/show_bug.cgi?id=142571

Unreviewed EFL Gardening.

Rebaseline the fast/css/vertical-text-overflow-ellipsis-text-align-center.html.

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-04-09

* platform/efl/TestExpectations:
* platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png:
* platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:

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

4 years agoUnreviewed EFL gardening. Added missing results after r182546.
commit-queue@webkit.org [Thu, 9 Apr 2015 15:39:30 +0000 (15:39 +0000)]
Unreviewed EFL gardening. Added missing results after r182546.
https://bugs.webkit.org/show_bug.cgi?id=143557

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-04-09

* platform/efl/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
* platform/efl/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
* platform/efl/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
* platform/efl/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.

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

4 years ago[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
ossy@webkit.org [Thu, 9 Apr 2015 11:51:37 +0000 (11:51 +0000)]
[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907

Unreviewed typo fix after r182595.

* PlatformGTK.cmake:

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

4 years agoTry to fix the Mac build after r182596.
aestes@apple.com [Thu, 9 Apr 2015 09:26:46 +0000 (09:26 +0000)]
Try to fix the Mac build after r182596.

I was wrong to replace PLATFORM(IOS) with HAVE(PARENTAL_CONTROLS) in ContentFilterUnblockHandler.
The conditional should be HAVE(PARENTAL_CONTROLS) && PLATFORM(IOS).

* platform/ContentFilterUnblockHandler.h:
* platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
(WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler):
(WebCore::ContentFilterUnblockHandler::needsUIProcess):
(WebCore::ContentFilterUnblockHandler::encode):
(WebCore::ContentFilterUnblockHandler::decode):
(WebCore::ContentFilterUnblockHandler::canHandleRequest):
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync):

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

4 years ago[Content Filtering] Add a HAVE(PARENTAL_CONTROLS) and use it
aestes@apple.com [Thu, 9 Apr 2015 08:54:41 +0000 (08:54 +0000)]
[Content Filtering] Add a HAVE(PARENTAL_CONTROLS) and use it
https://bugs.webkit.org/show_bug.cgi?id=143559

Reviewed by David Kilzer.

Source/WebCore:

* loader/ContentFilter.cpp:
(WebCore::ContentFilter::types): Only registered ParentalControlsContentFilter if HAVE(PARENTAL_CONTROLS).
* platform/ContentFilterUnblockHandler.h: Changed PLATFORM(IOS) to HAVE(PARENTAL_CONTROLS).
* platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
(WebCore::ContentFilterUnblockHandler::wrapWithDecisionHandler): Ditto.
(WebCore::ContentFilterUnblockHandler::needsUIProcess): Ditto.
(WebCore::ContentFilterUnblockHandler::encode): Ditto.
(WebCore::ContentFilterUnblockHandler::decode): Ditto.
(WebCore::ContentFilterUnblockHandler::canHandleRequest): Ditto.
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync): Ditto.
* platform/cocoa/ParentalControlsContentFilter.mm: Wrapped the file with HAVE(PARENTAL_CONTROLS)

Source/WTF:

Added PLATFORM(WATCHOS). Used PLATFORM() since Watch OS is just a variant of OS(IOS).
Defined HAVE(PARENTAL_CONTROLS) to be true on all Cocoa platforms except Watch OS.

* wtf/Platform.h:

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

4 years ago[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
ossy@webkit.org [Thu, 9 Apr 2015 08:11:52 +0000 (08:11 +0000)]
[EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times
https://bugs.webkit.org/show_bug.cgi?id=142907

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Scripts/generate-forwarding-headers.pl: Make it work with more path and platform arguments.

Tools:

* TestWebKitAPI/PlatformEfl.cmake:
* TestWebKitAPI/PlatformGTK.cmake:
* WebKitTestRunner/PlatformEfl.cmake:
* WebKitTestRunner/PlatformGTK.cmake:

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

4 years agoSkip http/tests/contentfiltering/ on all the platforms that skipped contentfiltering/
aestes@apple.com [Thu, 9 Apr 2015 07:33:36 +0000 (07:33 +0000)]
Skip http/tests/contentfiltering/ on all the platforms that skipped contentfiltering/
https://bugs.webkit.org/show_bug.cgi?id=143460

* platform/efl/TestExpectations:
* platform/win/TestExpectations:

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

4 years agoUnreviewed, added CSS Grid Layout to features.json file.
svillar@igalia.com [Thu, 9 Apr 2015 07:26:43 +0000 (07:26 +0000)]
Unreviewed, added CSS Grid Layout to features.json file.

* features.json:

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

4 years agoWeb Inspector: Simplify Legacy Tips support
commit-queue@webkit.org [Thu, 9 Apr 2015 06:57:32 +0000 (06:57 +0000)]
Web Inspector: Simplify Legacy Tips support
https://bugs.webkit.org/show_bug.cgi?id=143551

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-04-08
Reviewed by Timothy Hatcher.

* UserInterface/Models/ConsoleMessage.js:
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype._levelString):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._filterMessageElements):

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

4 years ago[Streams API] Support the start function parameter in ReadableStream constructor
youenn.fablet@crf.canon.fr [Thu, 9 Apr 2015 06:48:16 +0000 (06:48 +0000)]
[Streams API] Support the start function parameter in ReadableStream constructor
https://bugs.webkit.org/show_bug.cgi?id=141160

Source/WebCore:

Reviewed by Benjamin Poulain.

Stores the JS source object in ReadableStreamJSSource and calls its "start" function.
This function takes a controller object that has three JS functions as members: close, enqueue and error.
This controller is stored in ReadableStreamJSSource as it will be reused as "pull" parameter.
All three JS functions do not currently do anything.

Test: streams/readablestream-start.html

* Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::start): Place holder for step 11 of https://streams.spec.whatwg.org/#rs-constructor.
* Modules/streams/ReadableStream.h:
* bindings/js/JSReadableStreamCustom.cpp:
(WebCore::constructJSReadableStream):
* bindings/js/ReadableStreamJSSource.cpp:
(WebCore::getPropertyFromObject): Helper function to get a public property from an object.
(WebCore::setPropertyToObject): Helper function to set a public property to an object.
(WebCore::callFunction): Helper function to call a JS function from C++.
(WebCore::ReadableStreamJSSource::ReadableStreamJSSource):
(WebCore::notImplementedFunction):
(WebCore::createReadableStreamEnqueueFunction): Creates the JS function for enqueue.
(WebCore::createReadableStreamCloseFunction): Creates the JS function for close.
(WebCore::createReadableStreamErrorFunction): Creates the JS function for error.
(WebCore::startReadableStreamAsync): Equivalent of promise resolution for start.
(WebCore::ReadableStreamJSSource::start): Calls the "start" function of the JS source with all three JS functions (enqueue, close, error) as parameters.
* bindings/js/ReadableStreamJSSource.h:

LayoutTests:

Reviewed by Benjamin Poulain.

Added tests to check that start JS function is called with the right parameters and can throw errors.

* streams/readablestream-start-expected.txt: Added.
* streams/readablestream-start.html: Added.

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

4 years agoException in console and broken right click after attempting to show context menu...
commit-queue@webkit.org [Thu, 9 Apr 2015 06:34:07 +0000 (06:34 +0000)]
Exception in console and broken right click after attempting to show context menu in Inspector
https://bugs.webkit.org/show_bug.cgi?id=143556

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-04-08
Reviewed by Brady Eidson.

* Shared/mac/NativeContextMenuItem.mm:
(WebKit::NativeContextMenuItem::NativeContextMenuItem):
Add an ASSERT to immediately catch a menu item created with a nil native menu item.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):
Gracefully handle a null share context menu item.

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

4 years ago[Mac] Unreviewed test fix after r182584
bfulgham@apple.com [Thu, 9 Apr 2015 05:38:02 +0000 (05:38 +0000)]
[Mac] Unreviewed test fix after r182584
https://bugs.webkit.org/show_bug.cgi?id=143452

Source/WebCore:

Correct bit comparison to use the correct value for the Control-key

* platform/mac/PlatformEventFactoryMac.mm:
(WebCore::typeForEvent):

Source/WebKit2:

Correct bit comparison to use the correct value for the Control-key

* Shared/mac/WebEventFactory.mm:
(WebKit::typeForEvent):

Tools:

Put both of these tests back to their original state now that the underlying
problem is fixed.

* TestWebKitAPI/Tests/WebKit2/MenuTypesForMouseEvents.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:
(TestWebKitAPI::TEST):

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

4 years ago[EFL] Create PageUIClientEfl after sending CreateWebPage message
ljaehun.lim@samsung.com [Thu, 9 Apr 2015 05:22:49 +0000 (05:22 +0000)]
[EFL] Create PageUIClientEfl after sending CreateWebPage message
https://bugs.webkit.org/show_bug.cgi?id=143514

Reviewed by Gyuyoung Kim.

UIProcess sends some messages to WebPage before WebPage is created. It makes some error logs on debug build.
So this patch moves the initialization of m_pageUIClient after calling WKViewInitialize().

* UIProcess/API/efl/EwkView.cpp:
(EwkView::EwkView):

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

4 years agoThe results of A/B testing should state statistical significance
rniwa@webkit.org [Thu, 9 Apr 2015 04:58:19 +0000 (04:58 +0000)]
The results of A/B testing should state statistical significance
https://bugs.webkit.org/show_bug.cgi?id=143552

Reviewed by Chris Dumez.

Added statistical comparisons between results for each configuration on analysis task page using
Welch's t-test. The probability as well as t-statistics and the degrees of freedoms are reported.

* public/v2/app.js:
(App.TestGroupPane._populate): Report the list of statistical comparison between every pair of
root configurations in the results. e.g. if we've got A, B, C configurations then compare A/B, A/C
and B/C.
(App.TestGroupPane._computeStatisticalSignificance): Compute the statistical significance using
Welch's t-test. Report the probability by which two samples do not come from the same distribution.
(App.TestGroupPane._createConfigurationSummary): Include the array of results for this configuration.
Also renamed "items" to "requests" for clarity.

* public/v2/index.html: Added the template for showing statistical comparisons.

* public/v2/js/statistics.js: Renamed tDistributionQuantiles to tDistributionByOneSidedProbability
for clarity. Also factored out the functions to convert from one-sided probability to two-sided
probability and vice versa.
(Statistics.supportedConfidenceIntervalProbabilities):
(Statistics.confidenceIntervalDelta):
(Statistics.probabilityRangeForWelchsT): Added. Computes the lower bound and the upper bound for
the probability that two values are sampled from distinct distributions using Welch's t-test.
(Statistics.computeWelchsT): This function now takes two-sided probability like all other functions.
(.tDistributionByOneSidedProbability): Renamed from tDistributionQuantiles.
(.oneSidedToTwoSidedProbability): Extracted.
(.twoSidedToOneSidedProbability): Extracted.
(Statistics.MovingAverageStrategies): Converted the one-sided probability to the two-sided probability
now that computeWelchsT takes two-sided probability.

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

4 years agorun-jsc-benchmarks geomean of preferred means shouldn't print the VMs header twice
fpizlo@apple.com [Thu, 9 Apr 2015 04:47:24 +0000 (04:47 +0000)]
run-jsc-benchmarks geomean of preferred means shouldn't print the VMs header twice
https://bugs.webkit.org/show_bug.cgi?id=143553

Reviewed by Ryosuke Niwa.

Remove the spurious printVMs left over from an earlier change.

* Scripts/run-jsc-benchmarks:

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

4 years agoAdd a debug assertion that will fire if we try to paint layer contents on a backgroun...
simon.fraser@apple.com [Thu, 9 Apr 2015 03:44:44 +0000 (03:44 +0000)]
Add a debug assertion that will fire if we try to paint layer contents on a background thread
https://bugs.webkit.org/show_bug.cgi?id=143547

Reviewed by Alexey Proskuryakov.

New assertion to catch cases where other frameworks erroneously trigger painting
on a non-main (or non-Web) thread.

* platform/graphics/mac/WebLayer.mm:
(-[WebSimpleLayer display]):
(-[WebSimpleLayer drawInContext:]):

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

4 years ago[Mac] Unreviewed test fix after r182581
bfulgham@apple.com [Thu, 9 Apr 2015 03:42:04 +0000 (03:42 +0000)]
[Mac] Unreviewed test fix after r182581

The behavior of control-left-click is controlled by a system preference.
Our test bots have this turned off.

* TestWebKitAPI/Tests/WebKit2/MenuTypesForMouseEvents.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:
(TestWebKitAPI::TEST):

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

4 years agoUnreviewed Test Fix after r182579. Add missing include.
joepeck@webkit.org [Thu, 9 Apr 2015 03:21:46 +0000 (03:21 +0000)]
Unreviewed Test Fix after r182579. Add missing include.

* UserInterface/Test.html:
Missing file was causing inspector/page/main-frame-resource.html to fail.

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

4 years ago[Win] Layout Test inspector/console/console-api.html is failing
bfulgham@apple.com [Thu, 9 Apr 2015 02:50:39 +0000 (02:50 +0000)]
[Win] Layout Test inspector/console/console-api.html is failing
https://bugs.webkit.org/show_bug.cgi?id=143548

* platform/win/TestExpectations: Skipped new timeout.

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

4 years ago[Mac] WebKit is not honoring OS preferences for secondary click behaviors
bfulgham@apple.com [Thu, 9 Apr 2015 02:41:31 +0000 (02:41 +0000)]
[Mac] WebKit is not honoring OS preferences for secondary click behaviors
https://bugs.webkit.org/show_bug.cgi?id=143452
<rdar://problem/20437483>

Reviewed by Tim Horton.

Source/WebCore:

We cannot rely on the event's button number to decide behavior. The OS settings might have
mapped middle button to context menu, etc. Instead, we should ask the OS (via NSMenu) what
the proper button press behavior is.

* platform/mac/PlatformEventFactoryMac.mm:
(WebCore::mouseButtonForEvent): Ask NSMenu what kind of button press we have received.

Source/WebKit/mac:

We were improperly intercepting contextual menu clicks and passing them through
the mouseDown handler, rather than processing via NSView's menu handling code.

* WebView/WebHTMLView.mm:
(-[WebHTMLView otherMouseDown:]): Treat context menu events the same as the action
menu case, and pass it to AppKit for normal menu processing.

Source/WebKit2:

We cannot rely on the event's button number to decide behavior. The OS settings might have
mapped middle button to context menu, etc. Instead, we should ask the OS (via NSMenu) what
the proper button press behavior is.

* Shared/mac/WebEventFactory.mm:
(WebKit::mouseButtonForEvent): Ask NSMenu what kind of button press we have received.

Tools:

Add a new API test to confirm that Cocoa mouse button press events are properly
tagged with the desired menu behavior (i.e., 'None', 'Context', or 'Action'.)

The WK2 test dispatches mouse down events to a PlatformWebView, and checks with
some registered event handlers that the expected button press and context menu
events are received.

The WK1 unit test creates an NSEvent with the desired button press state, and then
uses WebCore::PlatformEventFactory::createPlatformMouseEvent to create a WebCore event.
We check the resulting PlatformMouseEvent for proper state.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new test files.
* TestWebKitAPI/Tests/WebKit2/MenuTypesForMouseEvents.cpp: Added.
(TestWebKitAPI::buildAndPerformTest): Helper function to build/run an individual test.
* TestWebKitAPI/Tests/WebKit2/mouse-button-listener.html: Added.
* TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm: Added.
(TestWebKitAPI::canCallMenuTypeForEvent): Helper function.
(TestWebKitAPI::buildAndPerformTest): Helper function to build/run an individual test.
* TestWebKitAPI/mac/PlatformWebViewMac.mm:
(TestWebKitAPI::PlatformWebView::simulateButtonClick): Added method to support firing
mouse down events.
* TestWebKitAPI/mac/PlatformWebViewMac.h:

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

4 years agoFix -Wformat in AnimationBase.cpp
mcatanzaro@igalia.com [Thu, 9 Apr 2015 02:15:36 +0000 (02:15 +0000)]
Fix -Wformat in AnimationBase.cpp
https://bugs.webkit.org/show_bug.cgi?id=143541

Reviewed by Simon Fraser.

* page/animation/AnimationBase.cpp:
(WebCore::nameForStateInput): Added. Converts an AnimationBase::AnimationStateInput to a
string.
(WebCore::AnimationBase::updateStateMachine): Print AnimationBase::AnimationStateInput as a
string, instead of passing it to %d and assuming that works, to silence GCC's -Wformat.

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

4 years agoWeb Inspector: Split ConsoleMessageImpl into the View and the Model
joepeck@webkit.org [Thu, 9 Apr 2015 01:37:58 +0000 (01:37 +0000)]
Web Inspector: Split ConsoleMessageImpl into the View and the Model
https://bugs.webkit.org/show_bug.cgi?id=142599

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

* UserInterface/Models/ConsoleMessage.js: Added.
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.prototype.get source):
(WebInspector.ConsoleMessage.prototype.get level):
(WebInspector.ConsoleMessage.prototype.get messageText):
(WebInspector.ConsoleMessage.prototype.get type):
(WebInspector.ConsoleMessage.prototype.get url):
(WebInspector.ConsoleMessage.prototype.get line):
(WebInspector.ConsoleMessage.prototype.get column):
(WebInspector.ConsoleMessage.prototype.get repeatCount):
(WebInspector.ConsoleMessage.prototype.get parameters):
(WebInspector.ConsoleMessage.prototype.get stackTrace):
(WebInspector.ConsoleMessage.prototype.get request):
New readonly model object for console messages.

* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Base/Test.js:
(WebInspector.loaded):
Load the new files in the main / test page.

* UserInterface/Views/LegacyConsoleMessage.js: Removed.
* UserInterface/Views/LegacyConsoleMessageImpl.js: Removed.
Remove Legacy versions.

* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.startNewSession):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult.saveResultCallback):
(WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
(WebInspector.JavaScriptLogViewController.prototype.appendConsoleMessage):
(WebInspector.JavaScriptLogViewController.prototype.updatePreviousMessageRepeatCount):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted.printResult):
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessageView):
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage): Deleted.
Update LogViewController to create ConsoleMessageViews from ConsoleMessages when applicable.
Also clarify when we have a view versus model object.

* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messageWasAdded):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Create model objects and issue events for the model objects.

* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
Update now that the event gives us a model object.

* UserInterface/Views/ConsoleMessageView.js: Added.
(WebInspector.ConsoleMessageView):
(WebInspector.ConsoleMessageView.prototype.get element):
(WebInspector.ConsoleMessageView.prototype.get message):
(WebInspector.ConsoleMessageView.prototype.get repeatCount):
(WebInspector.ConsoleMessageView.prototype.set repeatCount):
(WebInspector.ConsoleMessageView.prototype.toClipboardString):
(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WebInspector.ConsoleMessageView.prototype._appendSavedResultIndex):
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._appendParameters):
(WebInspector.ConsoleMessageView.prototype._appendStackTrace):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._formatParameter):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsValue):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsNode):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsObject):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsArray):
(WebInspector.ConsoleMessageView.prototype._rootPropertyPathForObject):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.parameterFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.stringFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.floatFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.integerFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.append):
(WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString):
(WebInspector.ConsoleMessageView.prototype._shouldShowStackTrace):
(WebInspector.ConsoleMessageView.prototype._shouldHideURL):
(WebInspector.ConsoleMessageView.prototype._firstNonNativeCallFrame):
(WebInspector.ConsoleMessageView.prototype._linkifyLocation):
(WebInspector.ConsoleMessageView.prototype._linkifyCallFrame):
(WebInspector.ConsoleMessageView.prototype._userProvidedColumnNames):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
(WebInspector.ConsoleMessageView.prototype._levelString):
(WebInspector.ConsoleMessageView.prototype._enforcesClipboardPrefixString):
(WebInspector.ConsoleMessageView.prototype._clipboardPrefixString):
New View class for a ConsoleMessage. This is a near direct port of the old code
to a view class that has a root element.

* UserInterface/Models/ConsoleCommandResultMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleCommandResult.js.
(WebInspector.ConsoleCommandResultMessage):
(WebInspector.ConsoleCommandResultMessage.clearMaximumSavedResultIndex):
(WebInspector.ConsoleCommandResultMessage.prototype.get savedResultIndex):
Rename, as this is a ConsoleMessage subclass with a specific type for console evaluation results.

* UserInterface/Views/ConsoleCommandView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleCommand.js.
(WebInspector.ConsoleCommandView):
(WebInspector.ConsoleCommandView.prototype.get element):
(WebInspector.ConsoleCommandView.prototype.get commandText):
(WebInspector.ConsoleCommandView.prototype.get message):
(WebInspector.ConsoleCommandView.prototype.toClipboardString):
* UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup):
(WebInspector.ConsoleGroup.prototype.get parentGroup):
(WebInspector.ConsoleGroup.prototype.render):
(WebInspector.ConsoleGroup.prototype.addMessageView):
(WebInspector.ConsoleGroup.prototype.append):
(WebInspector.ConsoleGroup.prototype._titleMouseDown):
(WebInspector.ConsoleGroup.prototype.addMessage): Deleted.
(WebInspector.ConsoleGroup.prototype._titleClicked): Deleted.
* UserInterface/Views/ConsoleSession.js:
(WebInspector.ConsoleSession):
(WebInspector.ConsoleSession.prototype.addMessageView):
(WebInspector.ConsoleSession.prototype.append):
(WebInspector.ConsoleSession.prototype.addMessage): Deleted.
(WebInspector.ConsoleSession.prototype.hasMessages): Deleted.
Convert to classes, and clarify these deal with View objects.

* UserInterface/Views/LogContentView.css:
(.console-message .repeat-count):
(.console-message .bubble): Deleted.
Better class name for the repeat count element.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
(WebInspector.LogContentView.prototype._formatMessagesAsData):
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._selectAllMessages):
(WebInspector.LogContentView.prototype._allMessageElements):
(WebInspector.LogContentView.prototype._unfilteredMessageElements):
(WebInspector.LogContentView.prototype._visibleMessageElements):
(WebInspector.LogContentView.prototype._scopeBarSelectionDidChange):
(WebInspector.LogContentView.prototype._filterMessageElements):
(WebInspector.LogContentView.prototype._upArrowWasPressed):
(WebInspector.LogContentView.prototype._downArrowWasPressed):
(WebInspector.LogContentView.prototype._previousMessage):
(WebInspector.LogContentView.prototype._nextMessage):
(WebInspector.LogContentView.prototype._performSearch):
(WebInspector.LogContentView.prototype._highlightRanges):
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
(WebInspector.LogContentView.prototype.didAppendConsoleMessage): Deleted.
(WebInspector.LogContentView.prototype._allMessages): Deleted.
(WebInspector.LogContentView.prototype._unfilteredMessages): Deleted.
(WebInspector.LogContentView.prototype._visibleMessages): Deleted.
(WebInspector.LogContentView.prototype._filterMessages): Deleted.
Rename lots of things to make it clear when we are dealing with
elements, model objects, or view objects. This class is still heavily
dealing with elements, and needs to be cleaned up later.

LayoutTests:

* inspector/console/console-api-expected.txt: Added.
* inspector/console/console-api.html: Added.
Add a basic test for console APIs creating the new ConsoleMessage model objects.

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

4 years agoFix uncaught exception seen in Inspector.
joepeck@webkit.org [Thu, 9 Apr 2015 01:37:52 +0000 (01:37 +0000)]
Fix uncaught exception seen in Inspector.

Reviewed by Timothy Hatcher.

* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype.removeChild):
Add a null check. Everywhere else null checks this member variable
which may not exist yet, this case was missing the check.

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

4 years agoUse jsNontrivialString in more places if the string is guaranteed to be 2 or more...
joepeck@webkit.org [Thu, 9 Apr 2015 01:37:50 +0000 (01:37 +0000)]
Use jsNontrivialString in more places if the string is guaranteed to be 2 or more characters
https://bugs.webkit.org/show_bug.cgi?id=143430

Reviewed by Darin Adler.

* runtime/ExceptionHelpers.cpp:
(JSC::errorDescriptionForValue):
* runtime/NumberPrototype.cpp:
(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):
* runtime/SymbolPrototype.cpp:
(JSC::symbolProtoFuncToString):

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

4 years agoWeb Inspector: Regression: Showing of color swatches no longer works in Details Sidebar
commit-queue@webkit.org [Thu, 9 Apr 2015 01:02:14 +0000 (01:02 +0000)]
Web Inspector: Regression: Showing of color swatches no longer works in Details Sidebar
https://bugs.webkit.org/show_bug.cgi?id=143539

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-04-08
Reviewed by Timothy Hatcher.

Fix a regression where due to an ESLint error the whole line instead of just
the variable declaration was removed.

* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):

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

4 years ago[Win] Document some test failures.
bfulgham@apple.com [Thu, 9 Apr 2015 00:32:12 +0000 (00:32 +0000)]
[Win] Document some test failures.
https://bugs.webkit.org/show_bug.cgi?id=143542
https://bugs.webkit.org/show_bug.cgi?id=143543

* platform/win/TestExpectations: Mark as failing.

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

4 years ago[GTK] Add pango to jhbuild-optional.modules
mcatanzaro@igalia.com [Wed, 8 Apr 2015 23:14:07 +0000 (23:14 +0000)]
[GTK] Add pango to jhbuild-optional.modules
https://bugs.webkit.org/show_bug.cgi?id=143537

Reviewed by Martin Robinson.

* gtk/jhbuild-optional.modules: Add pango.

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

4 years agoExpose the "Share" menu for links, images, and media.
beidson@apple.com [Wed, 8 Apr 2015 23:11:38 +0000 (23:11 +0000)]
Expose the "Share" menu for links, images, and media.
<rdar://problem/20435340> and https://bugs.webkit.org/show_bug.cgi?id=143502

Reviewed by Tim Horton.

Source/WebCore:

* loader/EmptyClients.h:
* page/ContextMenuClient.h:
(WebCore::ContextMenuClient::shareSelectedTextMenuItem): Deleted.

* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
(WebCore::selectionContainsPossibleWord): Deleted.
* page/ContextMenuController.h:
(WebCore::ContextMenuController::page):

* platform/ContextMenuItem.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::isNull):
(WebCore::ContextMenuItem::shareMenuItem):
(WebCore::ContextMenuItem::supportsShareMenu): Deleted.
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Deleted.
* platform/ContextMenuItem.h:

* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::shareMenuItem): Return a null item.
(WebCore::ContextMenuItem::supportsShareMenu): Deleted.
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Deleted.

* platform/mac/ContextMenuItemMac.mm:
(WebCore::ContextMenuItem::shareMenuItem): Create a full-featured Share menu item instead of just for selected text.
(WebCore::ContextMenuItem::supportsShareMenu): Deleted.
(WebCore::ContextMenuItem::shareSelectedTextMenuItem): Deleted.

* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::selectedText): Instead of calculating selected text outside the HitTestResult, let the
  HitTestResult do what it does best: Calculate things!
* rendering/HitTestResult.h:

Source/WebKit/mac:

* WebCoreSupport/WebContextMenuClient.h:
* WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::shareMenuItem):

Source/WebKit/win:

* WebCoreSupport/WebContextMenuClient.cpp:
(WebContextMenuClient::shareMenuItem):
* WebCoreSupport/WebContextMenuClient.h:

Source/WebKit2:

* Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):

* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::Data):
* Shared/WebHitTestResult.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::internalShowContextMenu):

* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::shareMenuItem):
* WebProcess/WebCoreSupport/WebContextMenuClient.h:

* WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::shareSelectedTextMenuItem): Deleted.

* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):

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

4 years agoAdd encoding and decoding of ints to WKRemoteObjectCoder
andersca@apple.com [Wed, 8 Apr 2015 22:47:26 +0000 (22:47 +0000)]
Add encoding and decoding of ints to WKRemoteObjectCoder
https://bugs.webkit.org/show_bug.cgi?id=143538

Reviewed by Tim Horton.

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(-[WKRemoteObjectEncoder encodeInt:forKey:]):
(-[WKRemoteObjectDecoder decodeIntForKey:]):

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

4 years ago[Curl] Compile error in CurlCacheEntry::parseResponseHeaders method.
peavo@outlook.com [Wed, 8 Apr 2015 22:21:30 +0000 (22:21 +0000)]
[Curl] Compile error in CurlCacheEntry::parseResponseHeaders method.
https://bugs.webkit.org/show_bug.cgi?id=143531

Reviewed by Alex Christensen.

Cache related methods in ResourceResponse have changed return type.

* platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::parseResponseHeaders):

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

4 years agoRemove ApplicationCacheGroup::m_isCopy
andersca@apple.com [Wed, 8 Apr 2015 21:25:41 +0000 (21:25 +0000)]
Remove ApplicationCacheGroup::m_isCopy
https://bugs.webkit.org/show_bug.cgi?id=143536

Reviewed by Tim Horton.

Code that used to set m_isCopy to true is long gone.

* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::~ApplicationCache):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
* loader/appcache/ApplicationCacheGroup.h:
(WebCore::ApplicationCacheGroup::isCopy): Deleted.

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

4 years ago[GTK] Unreviewed, update more test expectations
mcatanzaro@igalia.com [Wed, 8 Apr 2015 21:17:50 +0000 (21:17 +0000)]
[GTK] Unreviewed, update more test expectations

Remove some expected failures from tests that are passing. Also, copypaste some
expectations to more appropriate locations in the expectations file.

* platform/gtk/TestExpectations:

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

4 years agoUnreviewed fix after r182496 for when the cached runs JSON doesn't exist.
rniwa@webkit.org [Wed, 8 Apr 2015 21:16:06 +0000 (21:16 +0000)]
Unreviewed fix after r182496 for when the cached runs JSON doesn't exist.

* public/v2/app.js:
(App.Pane._fetch):
(App.Pane.refetchRuns):

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

4 years agoJSArray::sortNumeric should handle ArrayWithUndecided
fpizlo@apple.com [Wed, 8 Apr 2015 21:14:09 +0000 (21:14 +0000)]
JSArray::sortNumeric should handle ArrayWithUndecided
https://bugs.webkit.org/show_bug.cgi?id=143535

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

ArrayWithUndecided is what you get if you haven't stored anything into the array yet. We need to handle it.

* runtime/JSArray.cpp:
(JSC::JSArray::sortNumeric):
* tests/stress/sort-array-with-undecided.js: Added.

LayoutTests:

Upload the original test that first spotted this. Shortened it a bit so that it runs fast enough.

* js/regress/script-tests/sorting-benchmark.js: Added.
(log):
(bottom_up_merge_sort):
(aMinusB):
(verify):
(benchmark):
(makeArrays):
* js/regress/sorting-benchmark-expected.txt: Added.
* js/regress/sorting-benchmark.html: Added.

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

4 years ago[XvfbDriver] Regular expression used to match running X servers fails on Fedora 22.
clopez@igalia.com [Wed, 8 Apr 2015 21:12:44 +0000 (21:12 +0000)]
[XvfbDriver] Regular expression used to match running X servers fails on Fedora 22.
https://bugs.webkit.org/show_bug.cgi?id=143530

Reviewed by Žan Doberšek.

Assume that the default value for display (:0) is reserved and start checking on :1
Adjust webkitpy test and include two new test cases for this bug (display number not specified)
and for X server named Xorg.bin (previous bug 1376599)

* Scripts/webkitpy/port/xvfbdriver.py:
(XvfbDriver._next_free_display)
* Scripts/webkitpy/port/xvfbdriver_unittest.py:
(XvfbDriverTest.test_start_no_pixel_tests):
(XvfbDriverTest.test_start_pixel_tests):
(XvfbDriverTest.test_start_arbitrary_worker_number):
(XvfbDriverTest.test_next_free_display):
(XvfbDriverTest.test_start_next_worker):

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

4 years agoDelete ApplicationCache static member functions
andersca@apple.com [Wed, 8 Apr 2015 21:00:19 +0000 (21:00 +0000)]
Delete ApplicationCache static member functions
https://bugs.webkit.org/show_bug.cgi?id=143534

Reviewed by Tim Horton.

Source/WebCore:

* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::deleteCacheForOrigin): Deleted.
(WebCore::ApplicationCache::deleteAllCaches): Deleted.
(WebCore::ApplicationCache::diskUsageForOrigin): Deleted.
* loader/appcache/ApplicationCache.h:

Source/WebKit2:

* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
(WebKit::WebApplicationCacheManager::deleteAllEntries):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::clearApplicationCacheForOrigin):
(WebKit::InjectedBundle::appCacheUsageForOrigin):

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

4 years agoBlock popups from content extensions.
achristensen@apple.com [Wed, 8 Apr 2015 20:26:41 +0000 (20:26 +0000)]
Block popups from content extensions.
https://bugs.webkit.org/show_bug.cgi?id=143497

Reviewed by Brady Eidson.

Source/WebCore:

Test: http/tests/contentextensions/popups.html

* loader/ResourceLoadInfo.cpp:
(WebCore::readResourceType):
* loader/ResourceLoadInfo.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::open):
* page/UserContentController.cpp:
(WebCore::UserContentController::actionsForResourceLoad):
* page/UserContentController.h:
Check content extensions before opening a window.

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
Added popup test.

LayoutTests:

* http/tests/contentextensions/popups-expected.txt: Added.
* http/tests/contentextensions/popups.html: Added.
* http/tests/contentextensions/popups.html.json: Added.

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

4 years agoUnreviewed, revert accidental commit.
fpizlo@apple.com [Wed, 8 Apr 2015 20:24:40 +0000 (20:24 +0000)]
Unreviewed, revert accidental commit.

* Makefile.shared:

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

4 years agoDFG::IntegerCheckCombiningPhase's wrap-around check shouldn't trigger C++ undef behav...
fpizlo@apple.com [Wed, 8 Apr 2015 20:22:53 +0000 (20:22 +0000)]
DFG::IntegerCheckCombiningPhase's wrap-around check shouldn't trigger C++ undef behavior on wrap-around
https://bugs.webkit.org/show_bug.cgi?id=143532

Reviewed by Gavin Barraclough.

Oh the irony!  We were protecting an optimization that only worked if there was no wrap-around in JavaScript.
But the C++ code had wrap-around, which is undef in C++.  So, if the compiler was smart enough, our compiler
would think that there never was wrap-around.

This fixes a failure in stress/tricky-array-boiunds-checks.js when JSC is compiled with bleeding-edge clang.

* dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::isValid):

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

4 years ago[GTK] Unreviewed test expectation sanity-check
mcatanzaro@igalia.com [Wed, 8 Apr 2015 20:09:59 +0000 (20:09 +0000)]
[GTK] Unreviewed test expectation sanity-check

Remove duplicate expectation, and some expectations for tests that no longer exist.

* platform/gtk/TestExpectations:

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

4 years ago[CSS Shapes] Properly handle negative reference box widths and center coordinates
bjonesbe@adobe.com [Wed, 8 Apr 2015 19:40:43 +0000 (19:40 +0000)]
[CSS Shapes] Properly handle negative reference box widths and center coordinates
https://bugs.webkit.org/show_bug.cgi?id=142610

Reviewed by Rob Buis.
Source/WebCore:

Fix a few cases where values that should not be negative end up that
way.

This patch is based on a couple of Blink patches by Rob Buis.

Tests: fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash.html
       fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash.html

* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::computeDeltasForContainingBlockLine): A
    negative margin box width means that the shape has no extent, so
    clamp to zero.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeCircle::floatValueForRadiusInBox): When computing
    the radii, take the absolute value, since the radii is based on
    the distance, which is always positive.
(WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Ditto.

LayoutTests:

Tests for the cases that trigger asserts.

* fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-circle-negative-radius-crash.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-negative-width-crash.html: Added.

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

4 years agoAdd a WebApplicationCache::storage() and use it instead of the WebCore singleton
andersca@apple.com [Wed, 8 Apr 2015 19:28:34 +0000 (19:28 +0000)]
Add a WebApplicationCache::storage() and use it instead of the WebCore singleton
https://bugs.webkit.org/show_bug.cgi?id=143525

Reviewed by Antti Koivisto.

* WebApplicationCache.cpp:
(WebApplicationCache::storage):
(WebApplicationCache::maximumSize):
(WebApplicationCache::setMaximumSize):
(WebApplicationCache::defaultOriginQuota):
(WebApplicationCache::setDefaultOriginQuota):
(WebApplicationCache::diskUsageForOrigin):
(WebApplicationCache::deleteAllApplicationCaches):
(WebApplicationCache::deleteCacheForOrigin):
(WebApplicationCache::originsWithCache):
* WebApplicationCache.h:

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

4 years agoUnreviewed, rolling out r182522.
commit-queue@webkit.org [Wed, 8 Apr 2015 18:44:58 +0000 (18:44 +0000)]
Unreviewed, rolling out r182522.
https://bugs.webkit.org/show_bug.cgi?id=143529

Not needed any more (Requested by ap on #webkit).

Reverted changeset:

"Fix the build."
http://trac.webkit.org/changeset/182522

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

4 years ago32-bit build fix after r182554.
enrica@apple.com [Wed, 8 Apr 2015 18:30:47 +0000 (18:30 +0000)]
32-bit build fix after r182554.

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

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

4 years agoForce events should not require preventDefault in order to fire
bdakin@apple.com [Wed, 8 Apr 2015 18:25:25 +0000 (18:25 +0000)]
Force events should not require preventDefault in order to fire
https://bugs.webkit.org/show_bug.cgi?id=143503
-and corresponding-
rdar://problem/20458916

Reviewed by Tim Horton.

Source/WebCore:

Since these events will fire whether or not preventDefault was set on the
willBegin event, we should make sure we only send them when there are registered
event listeners. These are new events, so we don’t want to spam the vast majority
of web content that doesn’t use them yet.
* dom/Document.cpp:
(WebCore::Document::addListenerTypeIfNeeded):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::dispatchMouseForceWillBegin):
(WebCore::Element::dispatchMouseForceChanged):
(WebCore::Element::dispatchMouseForceDown):
(WebCore::Element::dispatchMouseForceUp):
(WebCore::Element::dispatchMouseForceClick):
(WebCore::Element::dispatchMouseForceCancelled):

Source/WebKit2:

We no longer need m_lastActionMenuHitTestPreventsDefault since we’ll always
dispatch the events to Element.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::inputDeviceForceDidChange):
(WebKit::WebPage::immediateActionDidCancel):

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

4 years ago[Mac][WebAudio] Update the AVAudioMix in the AudioSourceProviderAVFObjC when the...
jer.noble@apple.com [Wed, 8 Apr 2015 18:12:56 +0000 (18:12 +0000)]
[Mac][WebAudio] Update the AVAudioMix in the AudioSourceProviderAVFObjC when the list of enabled audio tracks change.
https://bugs.webkit.org/show_bug.cgi?id=143332

Reviewed by Eric Carlson.

Some media assets (notably, mp3s) will not have an enabled audio track when the AVAsset is
first loaded, so the AVAudioMix will have no trackID in it's parameters. Whenever the list
of enabled tracks change, recreate the AVAudioMix with the new first enabled audio trackID.

To facilitate this, add a new setter to AudioSourceProviderAVFObjC taking an AVAssetTrack to
use with the AVAudioMix. Whenever this parameter changes, the AVAudioMix is destroyed and
recreated.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): Drive-by fix: when the media
    player switches engines, re-associate the audio source node with its provider.
* platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h:
* platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::setPlayerItem): Only create the mix if there is a valid AVPlayerItem and AVAssetTrack
(WebCore::AudioSourceProviderAVFObjC::setAudioTrack): Ditto.
(WebCore::AudioSourceProviderAVFObjC::createMix): Don't iterate over the AVPlayerItem's tracks,
    just use the one passed in through setAudioTrack().
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear the provider's track.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Set the provider's track.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::audioSourceProvider): Ditto.

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

4 years agoCalling makeFirstResponder on WKWebView doesn't work.
enrica@apple.com [Wed, 8 Apr 2015 18:06:58 +0000 (18:06 +0000)]
Calling makeFirstResponder on WKWebView doesn't work.
https://bugs.webkit.org/show_bug.cgi?id=143482
rdar://problem/20298166

Reviewed by Dan Bernstein.

Adding forwarding of the responder status to the WKView.
We also need to avoid doing any cleanup in resignFirstResponder
if we know we are about to regain responder status again.
Same goes for becomeFirstResponder.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView becomeFirstResponder]):
(-[WKWebView acceptsFirstResponder]):
* UIProcess/API/mac/WKView.mm:
(-[WKView becomeFristResponder]):
(-[WKView resignFirstResponder]):

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

4 years agoMove some ApplicationCache static member functions to ApplicationCacheStorage
andersca@apple.com [Wed, 8 Apr 2015 17:52:15 +0000 (17:52 +0000)]
Move some ApplicationCache static member functions to ApplicationCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=143524

Reviewed by Antti Koivisto.

Source/WebCore:

This is yet another step towards eliminating ApplicationCacheStorage::singleton() and making the storage be per page instead.

* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::deleteCacheForOrigin):
(WebCore::ApplicationCache::deleteAllCaches):
(WebCore::ApplicationCache::diskUsageForOrigin):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::deleteAllCaches):
(WebCore::ApplicationCacheStorage::deleteCacheForOrigin):
(WebCore::ApplicationCacheStorage::diskUsageForOrigin):
* loader/appcache/ApplicationCacheStorage.h:

Source/WebKit/mac:

* WebCoreSupport/WebApplicationCache.mm:
(+[WebApplicationCache diskUsageForOrigin:]):
(+[WebApplicationCache deleteAllApplicationCaches]):
(+[WebApplicationCache deleteCacheForOrigin:]):

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

4 years agoVersioning.
bshafiei@apple.com [Wed, 8 Apr 2015 17:27:33 +0000 (17:27 +0000)]
Versioning.

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

4 years agoFill list style background with same color with that of list background.
changseok.oh@collabora.com [Wed, 8 Apr 2015 17:14:07 +0000 (17:14 +0000)]
Fill list style background with same color with that of list background.
https://bugs.webkit.org/show_bug.cgi?id=143483

Reviewed by Simon Fraser.

Source/WebCore:

LayoutListMarker does not have a node so its selectionBackgroundColor alway returns
the default theme color for selection. We can make it more natural by filling
the same color with that of LayoutListItem into it.

Tests: fast/backgrounds/selection-background-color-of-image-list-style.html
       fast/backgrounds/selection-background-color-of-list-style.html

* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):

LayoutTests:

* fast/backgrounds/selection-background-color-of-image-list-style.html: Added.
* fast/backgrounds/selection-background-color-of-list-style.html: Added.
* platform/gtk/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
* platform/gtk/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
* platform/gtk/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
* platform/gtk/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.
* platform/mac/fast/backgrounds/selection-background-color-of-image-list-style-expected.png: Added.
* platform/mac/fast/backgrounds/selection-background-color-of-image-list-style-expected.txt: Added.
* platform/mac/fast/backgrounds/selection-background-color-of-list-style-expected.png: Added.
* platform/mac/fast/backgrounds/selection-background-color-of-list-style-expected.txt: Added.

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

4 years agoAdd CMake build system for WinCairo port.
achristensen@apple.com [Wed, 8 Apr 2015 16:47:56 +0000 (16:47 +0000)]
Add CMake build system for WinCairo port.
https://bugs.webkit.org/show_bug.cgi?id=115944

Patch by Alex Christensen  <achristensen@webkit.org> and Patrick Gansterer <paroga@webkit.org> on 2015-04-08
Reviewed by Chris Dumez.

.:

* Source/cmake/OptionsWindows.cmake:
* Source/cmake/WebKitMacros.cmake:
Make ADD_PRECOMPILED_HEADER more like http://stackoverflow.com/questions/148570/using-pre-compiled-headers-with-cmake

Source/WebCore:

* CMakeLists.txt:
* PlatformWin.cmake:
* PlatformWinCairo.cmake:
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::TextureMapperGL):

Source/WebKit:

* CMakeLists.txt:

Source/WTF:

* wtf/FeatureDefines.h:
* wtf/PlatformWin.cmake:

Tools:

* CMakeLists.txt:
* WinLauncher/CMakeLists.txt: Added.

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

4 years agoRename ActiveDOMObject::canSuspend() to canSuspendForPageCache() for clarity
cdumez@apple.com [Wed, 8 Apr 2015 16:45:01 +0000 (16:45 +0000)]
Rename ActiveDOMObject::canSuspend() to canSuspendForPageCache() for clarity
https://bugs.webkit.org/show_bug.cgi?id=143513

Reviewed by Andreas Kling.

Source/WebCore:

Rename ActiveDOMObject::canSuspend() to canSuspendForPageCache() for
clarity as it is only used for the page cache. Also rename the
'DocumentWillBecomeInactive' value of the ReasonForSuspension enum to
'PageCache' as it is only used by CachedFrame for the page cache and it
is a lot more understandable.

Source/WebKit/mac:

Update ScriptExecutionContext::canSuspendActiveDOMObjects() to
canSuspendActiveDOMObjectsForPageCache() as the method was renamed.

* WebView/WebFrame.mm:
(-[WebFrame _cacheabilityDictionary]):

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

4 years agoUnreviewed, rolling out r182536.
commit-queue@webkit.org [Wed, 8 Apr 2015 16:25:54 +0000 (16:25 +0000)]
Unreviewed, rolling out r182536.
https://bugs.webkit.org/show_bug.cgi?id=143523

Made accessibility/table-sections.html time out on debug bots
(Requested by ap on #webkit).

Reverted changeset:

"Simple line layout: Add <br> support."
https://bugs.webkit.org/show_bug.cgi?id=139012
http://trac.webkit.org/changeset/182536

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

4 years agoGet rid of uses of ApplicationCacheStorage::singleton() from WebKitLegacy
andersca@apple.com [Wed, 8 Apr 2015 16:10:56 +0000 (16:10 +0000)]
Get rid of uses of ApplicationCacheStorage::singleton() from WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=143504

Reviewed by Sam Weinig.

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:
Add WebApplicationCacheInternal.h.

Source/WebKit/mac:

Add a webApplicationCacheStorage() function and use it throughout WebKitLegacy.
In the future, webApplicationCacheStorage will return a custom singleton, but for now
it just returns ApplicationCacheStorage::singleton().

* Misc/WebCache.mm:
(+[WebCache empty]):
* WebCoreSupport/WebApplicationCache.mm:
(+[WebApplicationCache maximumSize]):
(+[WebApplicationCache setMaximumSize:]):
(+[WebApplicationCache defaultOriginQuota]):
(+[WebApplicationCache setDefaultOriginQuota:]):
(+[WebApplicationCache originsWithCache]):
(webApplicationCacheStorage):
* WebCoreSupport/WebApplicationCacheInternal.h: Added.
* WebCoreSupport/WebApplicationCacheQuotaManager.mm:
(-[WebApplicationCacheQuotaManager usage]):
(-[WebApplicationCacheQuotaManager quota]):
(-[WebApplicationCacheQuotaManager setQuota:]):
* WebView/WebView.mm:
(WebKitInitializeApplicationCachePathIfNecessary):

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

4 years ago[GTK] Crash in DOMObjectCache when a wrapped object owned by the cache is unreffed...
carlosgc@webkit.org [Wed, 8 Apr 2015 15:29:25 +0000 (15:29 +0000)]
[GTK] Crash in DOMObjectCache when a wrapped object owned by the cache is unreffed by the user
https://bugs.webkit.org/show_bug.cgi?id=143521

Reviewed by Martin Robinson.

This is a case we claim to support, but it only works if the
object has only one reference. In that case, when the user unrefs
it, the weak ref notify callback removes the object from the
cache. However, if the object has more than one ref, the cache
doesn't know the user unreffed it, and when clearing the cache we
try to remove more references than what the object actually has,
causing a crash in g_object_unref.

* bindings/gobject/DOMObjectCache.cpp:
(WebKit::DOMObjectCacheData::clearObject):

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

4 years agoSimple line layout: Add <br> support.
zalan@apple.com [Wed, 8 Apr 2015 15:11:56 +0000 (15:11 +0000)]
Simple line layout: Add <br> support.
https://bugs.webkit.org/show_bug.cgi?id=139012

This patch enables RenderBlockFlows to use simple line layout on text content when <br> is present.
Simple text with <br> is a fairly common pattern on discussion(forum)-like web pages. This patch reduces memory usage
and speeds up layout for such content.

Source/WebCore:

PerformanceTest/layout/line-layout-simple.html shows more than 2x speedup, when each paragraph is modified by appending <br> to the end.
With <br> support enabled:
  mean: 70.02391461289068 runs/s
  median: 70.47986488932318 runs/s

While with <br> support disabled:
  mean: 30.417295049468184 runs/s
  median: 30.36517778760357 runs/s

Reviewed by Antti Koivisto.

Test: fast/text/simple-line-with-br.html

* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::setSelectionState):
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
* rendering/RenderBlockFlow.h:
* rendering/RenderLineBreak.cpp:
(WebCore::simpleLineLayout):
(WebCore::ensureLineBoxes):
(WebCore::RenderLineBreak::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderLineBreak::positionForPoint):
(WebCore::RenderLineBreak::setSelectionState):
(WebCore::RenderLineBreak::linesBoundingBox):
(WebCore::RenderLineBreak::absoluteRects):
(WebCore::RenderLineBreak::absoluteQuads):
(WebCore::RenderLineBreak::collectSelectionRects):
* rendering/RenderLineBreak.h:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::LineState::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::removeTrailingWhitespace):
(WebCore::SimpleLineLayout::consumeLineBreakIfNeeded):
(WebCore::SimpleLineLayout::skipWhitespaceIfNeeded):
(WebCore::SimpleLineLayout::firstFragment):
(WebCore::SimpleLineLayout::forceFragmentToLine):
(WebCore::SimpleLineLayout::createLineRuns):
(WebCore::SimpleLineLayout::create):
* rendering/SimpleLineLayoutFlowContents.cpp:
(WebCore::SimpleLineLayout::initializeSegments):
(WebCore::SimpleLineLayout::FlowContents::segmentForRenderer): Deleted.
* rendering/SimpleLineLayoutFlowContents.h:
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::showLineLayoutForFlow):
* rendering/SimpleLineLayoutResolver.cpp:
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::RunResolver):
(WebCore::SimpleLineLayout::RunResolver::rangeForRenderer):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Iterator::inQuirksMode):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator--):
* rendering/SimpleLineLayoutTextFragmentIterator.cpp:
(WebCore::SimpleLineLayout::EndOfSegmentSetter::EndOfSegmentSetter):
(WebCore::SimpleLineLayout::EndOfSegmentSetter::~EndOfSegmentSetter):
(WebCore::SimpleLineLayout::TextFragmentIterator::nextTextFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::revertToFragment):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):
* rendering/SimpleLineLayoutTextFragmentIterator.h:
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLastInRenderer):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::TextFragment::isEmpty):
(WebCore::SimpleLineLayout::TextFragmentIterator::isSoftLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isHardLineBreak):
(WebCore::SimpleLineLayout::TextFragmentIterator::isLineBreak): Deleted.

LayoutTests:

Test output changes in 2 different ways:
1. Repositioned RenderLineBreak elements. (1px wide <br> is the result of integral pixel snapping)
2. Removed empty content (<br>).

Reviewed by Antti Koivisto.

* fast/text/simple-line-with-br-expected.html: Added.
* fast/text/simple-line-with-br.html: Added.
* platform/mac-mavericks/fast/parser/open-comment-in-textarea-expected.txt:
* platform/mac-mavericks/http/tests/navigation/javascriptlink-frames-expected.txt:
* platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt:
* platform/mac/fast/dom/focus-contenteditable-expected.txt:
* platform/mac/fast/forms/range/slider-padding-expected.txt: Added.
* platform/mac/fast/forms/textarea-scroll-height-expected.txt:
* platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
* platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
* platform/mac/fast/text/svg-font-face-with-kerning-expected.txt: Added.
* platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
* platform/mac/http/tests/navigation/postredirect-basic-expected.txt:
* platform/mac/http/tests/navigation/postredirect-goback1-expected.txt:
* platform/mac/printing/single-line-must-not-be-split-into-two-pages-expected.txt:
* platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
* platform/mac/tables/mozilla/bugs/bug106795-expected.txt:
* platform/mac/tables/mozilla/bugs/bug1224-expected.txt:
* platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
* platform/mac/tables/mozilla/bugs/bug131020_iframe-expected.txt:
* platform/mac/tables/mozilla/bugs/bug1430-expected.txt:
* platform/mac/tables/mozilla/bugs/bug16252-expected.txt:
* platform/mac/tables/mozilla/bugs/bug19599-expected.txt:
* platform/mac/tables/mozilla/bugs/bug20579-expected.txt:
* platform/mac/tables/mozilla/bugs/bug32205-3-expected.txt:
* platform/mac/tables/mozilla/bugs/bug82946-2-expected.txt:
* platform/mac/tables/mozilla/bugs/bug92143-expected.txt:
* platform/mac/tables/mozilla/marvin/tables_cellpadding-expected.txt:
* platform/mac/tables/mozilla/marvin/tables_cellspacing-expected.txt:
* platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
* platform/mac/tables/mozilla_expected_failures/other/test4-expected.txt:

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

4 years agoLazily initialize LogToSystemConsole flag to reduce memory usage
msaboff@apple.com [Wed, 8 Apr 2015 14:03:26 +0000 (14:03 +0000)]
Lazily initialize LogToSystemConsole flag to reduce memory usage
https://bugs.webkit.org/show_bug.cgi?id=143506

Reviewed by Mark Lam.

Only call into CF preferences code when we need to in order to reduce memory usage.

* inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::logToSystemConsole):
(Inspector::JSGlobalObjectConsoleClient::setLogToSystemConsole):
(Inspector::JSGlobalObjectConsoleClient::initializeLogToSystemConsole):
(Inspector::JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient):

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

4 years ago[GStreamer] compress property for the HTTP source element
philn@webkit.org [Wed, 8 Apr 2015 10:32:24 +0000 (10:32 +0000)]
[GStreamer] compress property for the HTTP source element
https://bugs.webkit.org/show_bug.cgi?id=143518

Reviewed by Carlos Garcia Campos.

Added a compress property so the default behavior or not
requesting content encoded to the server can be overridden if
needed. This is useful for adaptive streaming playback.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStart):

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

4 years agoRemove CSS functions min() and max() which had been dropped from specification
commit-queue@webkit.org [Wed, 8 Apr 2015 07:44:50 +0000 (07:44 +0000)]
Remove CSS functions min() and max() which had been dropped from specification
https://bugs.webkit.org/show_bug.cgi?id=143440

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-04-08
Reviewed by Darin Adler.

No new tests, No Behavior changes.

* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcValue::create):
* css/CSSParser.cpp:
(WebCore::CSSParser::isCalculation):

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

4 years ago[GStreamer] extra-headers and keep-alive properties for HTTP source element
philn@webkit.org [Wed, 8 Apr 2015 07:09:30 +0000 (07:09 +0000)]
[GStreamer] extra-headers and keep-alive properties for HTTP source element
https://bugs.webkit.org/show_bug.cgi?id=143480

Reviewed by Carlos Garcia Campos.

Keep the resource loader around when persistent HTTP connection
support is enabled. The keep-alive property is set to false by
default. Also before sending the HTTP request we now check the
contents of the extra-headers GstStructure and set additional
headers based on the structure contents.

Patch inspired by GStreamer's souphttpsrc element.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_init):
(webKitWebSrcFinalize):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStop): Clear resource loader only for non-persistent connections.
(webKitWebSrcSetExtraHeader): Utility function to append headers
to an existing request based on a GValue contents.
(webKitWebSrcProcessExtraHeaders): Parse a GValue and set headers
based on its contents.
(webKitWebSrcStart): Extra headers and persistent connection
support. The resource loader is now lazily initialized here.

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

4 years agoFix the build.
simon.fraser@apple.com [Wed, 8 Apr 2015 06:41:03 +0000 (06:41 +0000)]
Fix the build.

* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::drawGlyphs):
* platform/spi/cg/CoreGraphicsSPI.h:

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

4 years agoUnreviewed, another iOS build fix after r182516.
cdumez@apple.com [Wed, 8 Apr 2015 06:03:32 +0000 (06:03 +0000)]
Unreviewed, another iOS build fix after r182516.

I missed another use of __MAC_OS_X_VERSION_MIN_REQUIRED without a
PLATFORM(MAC) check.

* platform/graphics/cocoa/FontCascadeCocoa.mm:

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

4 years agoBug 142887 - role progress bar does not support indeterminate state
commit-queue@webkit.org [Wed, 8 Apr 2015 05:57:02 +0000 (05:57 +0000)]
Bug 142887 - role progress bar does not support indeterminate state
https://bugs.webkit.org/show_bug.cgi?id=142887

Patch by Michael Peechatt <mpeechatt@gmail.com> on 2015-04-07
Reviewed by Chris Fleizach.

Source/WebCore:

Test: platform/mac/accessibility/progressbar-indeterminate.html

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
When getting min or max value of an indeterminate progress indicator, return 0.
This is so VoiceOver will recognize it as indeterminate.

LayoutTests:

* platform/mac/accessibility/progressbar-indeterminate-expected.txt: Added.
* platform/mac/accessibility/progressbar-indeterminate.html: Added.
Test that checks if 0 is returned for indetermiate progress indicators when
aria min and max values are non zero.

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

4 years agoUnreviewed, speculative iOS build fix after r182516.
cdumez@apple.com [Wed, 8 Apr 2015 05:44:28 +0000 (05:44 +0000)]
Unreviewed, speculative iOS build fix after r182516.

Add #if PLATFORM(MAC) checks.

* platform/spi/cg/CoreGraphicsSPI.h:

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

4 years agoTry to fix incremental builds by forcing *InternalSettings* to get
simon.fraser@apple.com [Wed, 8 Apr 2015 05:31:56 +0000 (05:31 +0000)]
Try to fix incremental builds by forcing *InternalSettings* to get
regenerated.

* testing/InternalSettings.idl:

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

4 years agoOpen WebSockets should not prevent a page from entering PageCache
cdumez@apple.com [Wed, 8 Apr 2015 04:24:24 +0000 (04:24 +0000)]
Open WebSockets should not prevent a page from entering PageCache
https://bugs.webkit.org/show_bug.cgi?id=143505
<rdar://problem/19923085>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Open WebSockets should not prevent a page from entering PageCache. This
is currently causing mobile.nytimes.com to not be page-cacheable.

In this patch, We close open WebSockets when entering the page cache
and fire the "close" events after resuming, similarly to what we did
for XMLHttpRequest in r181480. This gives a chance for the content to
handle the 'close' event (with wasClean being false and code being
1006) in order to reopen the connection if necessary.

Test: http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html

* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::canSuspend):
(WebCore::WebSocket::suspend):
(WebCore::WebSocket::resume):
(WebCore::WebSocket::resumeTimerFired):
(WebCore::WebSocket::didClose):
* Modules/websockets/WebSocket.h:

LayoutTests:

Add a layout test to check that an open WebSocket does not prevent a
page from entering page cache and that a 'close' event is fired after
resuming (restoring from the page cache).

* http/tests/websocket/tests/hybi/closed-when-entering-page-cache-expected.txt: Added.
* http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html: Added.

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

4 years agoAdd experimental code to use custom font dilation when rendering into non-opaque...
simon.fraser@apple.com [Wed, 8 Apr 2015 04:15:01 +0000 (04:15 +0000)]
Add experimental code to use custom font dilation when rendering into non-opaque contexts
https://bugs.webkit.org/show_bug.cgi?id=143508

Reviewed by Sam Weinig.

Add GraphicsContext::setAntialiasedFontDilationEnabled(), and set it to true
when rendering into a compositing layer which is not opaque (at the same location
where we disable font smoothing).

If Settings::antialiasedFontDilationEnabled() is true, when rendering non-smoothed
text (and if CSS hasn't opted into antialiased mode), use custom font dilation
parameters, chosen using a light/medium/dark heuristic, to make this text
match more closely with LCD-smoothed text.

* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setAntialiasedFontDilationEnabled): Set global state
in FontCascade (which can't easily get at Settings). This it not ideal,
but is temporary.
* page/Settings.h:
(WebCore::Settings::antialiasedFontDilationEnabled):
* page/Settings.in: Can't autogenerate this setting any more.
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::setAntialiasedFontDilationEnabled): Set the global.
(WebCore::FontCascade::antialiasedFontDilationEnabled):
* platform/graphics/FontCascade.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setAntialiasedFontDilationEnabled): Set graphics state
to say that we should do dilation of antialiased text.
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContext::antialiasedFontDilationEnabled):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::drawLayerContents): If the layer is not opaque, enable the
dilated text code path.
* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::dilationSizeForTextColor): Heuristic (values chosen empirically) to
computed custom dilation based on foreground color.
(WebCore::FontCascade::drawGlyphs): Set the custom dilation parameters, and the
antialiasing state if we're not doing smoothing, and CSS hasn't opted into the
antialiased path.
* platform/spi/cg/CoreGraphicsSPI.h: New SPI.

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

4 years agoPageVisibilityStateWithWindowChanges should only be enabled on Yosemite
ap@apple.com [Wed, 8 Apr 2015 03:40:36 +0000 (03:40 +0000)]
PageVisibilityStateWithWindowChanges should only be enabled on Yosemite
rdar://problem/20461342

* TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:

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

4 years agoPerf dashboard should have a way of marking outliers
rniwa@webkit.org [Wed, 8 Apr 2015 03:39:27 +0000 (03:39 +0000)]
Perf dashboard should have a way of marking outliers
https://bugs.webkit.org/show_bug.cgi?id=143466

Reviewed by Chris Dumez.

Address kling's in-person comment to notify users when the new run status is saved in the database.

* public/v2/app.js:
(App.PaneController._selectedItemIsMarkedOutlierDidChange)
* public/v2/chart-pane.css: Fixed a typo.

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

4 years agoUnreviewed, rolling out r182511.
commit-queue@webkit.org [Wed, 8 Apr 2015 01:51:10 +0000 (01:51 +0000)]
Unreviewed, rolling out r182511.
https://bugs.webkit.org/show_bug.cgi?id=143507

caused debug test failures (Requested by alexchristensen on
#webkit).

Reverted changeset:

"Block popups from content extensions."
https://bugs.webkit.org/show_bug.cgi?id=143497
http://trac.webkit.org/changeset/182511

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

4 years ago[Cocoa] System fonts do not get correct tracking
mmaxfield@apple.com [Wed, 8 Apr 2015 01:08:15 +0000 (01:08 +0000)]
[Cocoa] System fonts do not get correct tracking
https://bugs.webkit.org/show_bug.cgi?id=143395

Reviewed by Ryosuke Niwa.

Inside FontPlatformData, we have two CTFonts. If the user has specified
-webkit-system-font, we will pass in a CTFont, and the FontPlatformData
will wrap it. However, we will then roundtrip through CGFont in order
to create a second CTFont. We were basing our tracking and system
font knowledge off of this round-tripped font instead of the original font.

Note that this design is terrible and needs to be overhauled.
FontPlatformData should only have a single platform font inside it.

This patch also caches whether or not a font is a system font.

No new tests because it is impossible to test the tracking of the
system font in a robust way.

* platform/graphics/Font.cpp:
(WebCore::Font::Font): Rearrange member variables.
* platform/graphics/Font.h: Move member variables around for better
packing, and cache whether or not the font is a system font.
* platform/graphics/FontData.h: Add comment
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformInit): Cache whether or not the font is a system
font.
(WebCore::hasCustomTracking): Use cached value.
(WebCore::canUseFastGlyphAdvanceGetter):
(WebCore::Font::platformWidthForGlyph):

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

4 years agoBlock popups from content extensions.
commit-queue@webkit.org [Wed, 8 Apr 2015 00:38:11 +0000 (00:38 +0000)]
Block popups from content extensions.
https://bugs.webkit.org/show_bug.cgi?id=143497

Patch by Alex Christensen <achristensen@webkit.org> on 2015-04-07
Reviewed by Brady Eidson.

Source/WebCore:

Test: http/tests/contentextensions/popups.html

* loader/ResourceLoadInfo.cpp:
(WebCore::readResourceType):
* loader/ResourceLoadInfo.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::open):
* page/UserContentController.cpp:
(WebCore::UserContentController::actionsForResourceLoad):
* page/UserContentController.h:
Check content extensions before opening a window.

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
Added popup test.

LayoutTests:

* http/tests/contentextensions/popups-expected.txt: Added.
* http/tests/contentextensions/popups.html: Added.
* http/tests/contentextensions/popups.html.json: Added.

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

4 years agoGet the features.json files ready for open contributions
benjamin@webkit.org [Tue, 7 Apr 2015 23:42:16 +0000 (23:42 +0000)]
Get the features.json files ready for open contributions
https://bugs.webkit.org/show_bug.cgi?id=143436

Reviewed by Darin Adler.

Source/JavaScriptCore:

* features.json:

Source/WebCore:

* features.json:

Tools:

* Scripts/webkitpy/style/checkers/jsonchecker.py:
(JSONFeaturesChecker.check):
Extend the syntax checking a bit, but leave everything non-mandatory
very loose until we figure what fields are important.

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

4 years agoMore unreviewed fixing API tests.
achristensen@apple.com [Tue, 7 Apr 2015 23:37:13 +0000 (23:37 +0000)]
More unreviewed fixing API tests.

* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
Don't check for javascript protocol.

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

4 years ago[Mac] never update caption user style sheet during parsing
eric.carlson@apple.com [Tue, 7 Apr 2015 23:21:06 +0000 (23:21 +0000)]
[Mac] never update caption user style sheet during parsing
https://bugs.webkit.org/show_bug.cgi?id=143499

Reviewed by Jer Noble.

* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
(WebCore::CaptionUserPreferencesMediaAF::captionPreferencesChanged):  Ignore a
    "preferences changed" notification fired while registering for said notification, we
    already create and insert the style sheet after a brief delay anyway.
* page/CaptionUserPreferencesMediaAF.h:

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

4 years ago[Win] Unreviewed build fix after r182494.
achristensen@apple.com [Tue, 7 Apr 2015 23:09:42 +0000 (23:09 +0000)]
[Win] Unreviewed build fix after r182494.

* platform/win/ContextMenuItemWin.cpp:
(WebCore::ContextMenuItem::ContextMenuItem): Deleted.

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

4 years agoFix the build.
timothy_horton@apple.com [Tue, 7 Apr 2015 22:56:29 +0000 (22:56 +0000)]
Fix the build.

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

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

4 years agoUnreviewed fixing API tests.
achristensen@apple.com [Tue, 7 Apr 2015 22:49:15 +0000 (22:49 +0000)]
Unreviewed fixing API tests.

* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
* platform/URL.cpp:
(WebCore::URL::init):
* platform/URL.h:
(WebCore::URL::protocolIsData):
(WebCore::URL::protocolIsJavaScript): Deleted.
Revert part of r182492 that changed URL.h.

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

4 years agoExpose and test fixedLayoutSize via modern WebKit SPI
timothy_horton@apple.com [Tue, 7 Apr 2015 22:37:11 +0000 (22:37 +0000)]
Expose and test fixedLayoutSize via modern WebKit SPI
https://bugs.webkit.org/show_bug.cgi?id=143500

Reviewed by Simon Fraser.

* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isFixedLayoutEnabled]):
(-[WKWebView _setFixedLayoutEnabled:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _isFixedLayoutEnabled]):
(-[WKView _setFixedLayoutEnabled:]):
(-[WKView _fixedLayoutSize]):
(-[WKView _setFixedLayoutSize:]):
Add API for adjusting the fixed layout size, and whether or not we use it.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Repair a mistake I made in r139822, where I brought odd TILED_BACKING_STORE-only
logic (which disables scrollbars if fixedLayoutSize is enabled) to the rest of the ports.
Put it back as TILED_BACKING_STORE-only.

Persist the fixedLayoutSize through view creation; we already persist the enabled state,
but not the size, which doesn't make any sense.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::fixedLayoutSize):
* WebProcess/WebPage/WebPage.h:
Add a fixedLayoutSize() getter.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/FixedLayoutSize.mm: Added.
(-[FixedLayoutSizeNavigationDelegate webView:didFinishNavigation:]):
(TEST):
Add a test that verifies that fixedLayoutSize works at all, that
it persists through a navigation, and that turning it back off reverts to
laying out at the size of the view.

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

4 years agoConstant folding of typed array properties should be handled by AI rather than streng...
fpizlo@apple.com [Tue, 7 Apr 2015 22:09:15 +0000 (22:09 +0000)]
Constant folding of typed array properties should be handled by AI rather than strength reduction
https://bugs.webkit.org/show_bug.cgi?id=143496

Reviewed by Geoffrey Garen.

Handling constant folding in AI is better because it precludes us from having to fixpoint the CFA
phase and whatever other phase did the folding in order to find all constants.

This also removes the TypedArrayWatchpoint node type because we can just set the watchpoint
directly.

This also fixes a bug in FTL lowering of GetTypedArrayByteOffset. The bug was previously not
found because all of the tests for it involved the property getting constant folded. I found that
the codegen was bad because an earlier version of the patch broke that constant folding. This
adds a new test for that node type, which makes constant folding impossible by allocating a new
typed array every type. The lesson here is: if you write a test for something, run the test with
full IR dumps to make sure it's actually testing the thing you want it to test.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::tryGetFoldableViewForChild1): Deleted.
* dfg/DFGGraph.h:
* dfg/DFGNode.h:
(JSC::DFG::Node::hasTypedArray): Deleted.
(JSC::DFG::Node::typedArray): Deleted.
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
(JSC::DFG::StrengthReductionPhase::foldTypedArrayPropertyToConstant): Deleted.
(JSC::DFG::StrengthReductionPhase::prepareToFoldTypedArray): Deleted.
* dfg/DFGWatchpointCollectionPhase.cpp:
(JSC::DFG::WatchpointCollectionPhase::handle):
(JSC::DFG::WatchpointCollectionPhase::addLazily):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetTypedArrayByteOffset):
(JSC::FTL::LowerDFGToLLVM::typedArrayLength):
* tests/stress/fold-typed-array-properties.js:
(foo):
* tests/stress/typed-array-byte-offset.js: Added.
(foo):

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

4 years agoMore work on making the application cache storage be per page
andersca@apple.com [Tue, 7 Apr 2015 21:42:38 +0000 (21:42 +0000)]
More work on making the application cache storage be per page
https://bugs.webkit.org/show_bug.cgi?id=143498

Reviewed by Andreas Kling.

* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::create):
(WebCore::ApplicationCacheStorage::singleton):
* loader/appcache/ApplicationCacheStorage.h:
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::applicationCacheStorage):
* page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration): Deleted.
* page/PageConfiguration.h:

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

4 years agoPerf dashboard should have a way of marking outliers
rniwa@webkit.org [Tue, 7 Apr 2015 21:42:37 +0000 (21:42 +0000)]
Perf dashboard should have a way of marking outliers
https://bugs.webkit.org/show_bug.cgi?id=143466

Reviewed by Chris Dumez.

Added UI to mark a data point as an outlier as well as a button to toggle the visibility of outliers.
Added a new privileged API /privileged-api/update-run-status to store this boolean flag.

* init-database.sql: Added run_marked_outlier column to test_runs table.

* public/admin/tests.php:

* public/api/runs.php:
(main): Only emit Cache-Control and Expires headers in v1 UI.
(RunsGenerator::format_run): Emit markedOutlier.

* public/include/admin-header.php:

* public/include/db.php:
(Database::is_true): Made it static.

* public/include/manifest.php:
(Manifest::platforms):

* public/index.html: Call into /api/runs/ with ?cache=true.

* public/privileged-api/update-run-status.php: Added.
(main): Updates the newly added column in test_runs table.

* public/v2/app.js:
(App.Pane._fetch):
(App.Pane.refetchRuns): Extracted from App.Pane._fetch.
(App.Pane._didFetchRuns): Renamed from _updateChartData.
(App.Pane._setNewChartData): Added. Pick the right time series based based on the value of showOutlier.
Cloning chartData is necessary when toggling the outlier visibility or using statistics tools because
the interactive chart component only observes changes to chartData and not individual properties of it.
(App.Pane._highlightPointsMarkedAsOutlier): Added. Highlight points marked as outliers.
(App.Pane._movingAverageOrEnvelopeStrategyDidChange): Call to _setNewChartData replaced the code to
clone chartData here.

(App.PaneController.actions.toggleShowOutlier): Toggle the visibility of points marked as outliers by
invoking App.Pane._setNewChartData.
(App.PaneController._detailsChanged): Don't hide the analysis pane when details changed since keep
opening the pane for marking points as outliers would be annoying.
(App.PaneController._updateCanAnalyze): Update 'cannotMarkOutlier' as well as 'cannotAnalyze'.
(App.PaneController.selectedMeasurement): Added.
(App.PaneController.showOutlierTitle): Added.
(App.PaneController._selectedItemIsMarkedOutlierDidChange): Added. Call out to setMarkedOutlier to
mark the selected point as an outlier via the newly added privileged API.

* public/v2/chart-pane.css: Updated styles.

* public/v2/data.js:
(PrivilegedAPI._post): Report the semantic errors.
(Measurement.prototype.markedOutlier): Added.
(Measurement.prototype.setMarkedOutlier): Added. Uses PrivilegedAPI to update the database.
(RunsData.prototype.timeSeriesByCommitTime): Added a new argument, includeOutliers, to indicate
whether the time series should include measurements marked as outliers or not.
(RunsData.prototype.timeSeriesByBuildTime): Ditto.
(RunsData.prototype._timeSeriesByTimeInternal): Extracted from timeSeriesByCommitTime and
timeSeriesByBuildTime to share code. Now ignores measurements marked as outliers if needed.

* public/v2/index.html: Added an icon for showing and hiding outliers. Also added a checkbox to
mark individual points as outliers.

* public/v2/interactive-chart.js:
(App.InteractiveChartComponent._selectClosestPointToMouseAsCurrentItem): Re-enable the distance
heuristics that takes vertical closeness into account. This heuristics is more useful when marking
some points as outliers. This heuristics was disabled because the behavior was unpredictable but
with the arrow key navigation support, this is no longer an issue.

* public/v2/manifest.js:
(App.Manifest._formatFetchedData): Added showOutlier to the chart data. This function dynamically
updates the time series in this chart data in order to include or exclude outliers.

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

4 years agoSource and stack information should get appended only to native errors
mmirman@apple.com [Tue, 7 Apr 2015 21:34:05 +0000 (21:34 +0000)]
Source and stack information should get appended only to native errors
Source/JavaScriptCore:

and should be added directly after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Appending stack, source, line, and column information to an object whenever that object is thrown
is incorrect because it violates the ecma script standard for the behavior of throw.  Suppose for example
that the object being thrown already has one of these properties or is frozen.  Adding the properties
would then violate the frozen contract or overwrite those properties.  Other browsers do not do this,
and doing this causes unnecessary performance hits in code with heavy use of the throw construct as
a control flow construct rather than just an error reporting mechanism.

Because WebCore adds "native" errors which do not inherit from any JSC native error,
appending the error properties as a seperate call after construction of the error is required
to avoid having to manually truncate the stack and gather local source information due to
the stack being extended by a nested call to construct one of the native jsc error.

* interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
* interpreter/Interpreter.h:
* parser/ParserError.h:
(JSC::ParserError::toErrorObject):
* runtime/CommonIdentifiers.h:
* runtime/Error.cpp:
(JSC::createError):
(JSC::createEvalError):
(JSC::createRangeError):
(JSC::createReferenceError):
(JSC::createSyntaxError):
(JSC::createTypeError):
(JSC::createNotEnoughArgumentsError):
(JSC::createURIError):
(JSC::createOutOfMemoryError):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index):
(JSC::addErrorInfoAndGetBytecodeOffset):  Added.
(JSC::addErrorInfo): Added special case for appending complete error info
to a newly constructed error object.
* runtime/Error.h:
* runtime/ErrorConstructor.cpp:
(JSC::Interpreter::constructWithErrorConstructor):
(JSC::Interpreter::callErrorConstructor):
* runtime/ErrorInstance.cpp:
(JSC::appendSourceToError): Moved from VM.cpp
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame):
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index):
(JSC::addErrorInfoAndGetBytecodeOffset):
(JSC::ErrorInstance::finishCreation):
* runtime/ErrorInstance.h:
(JSC::ErrorInstance::create):
* runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::finishCreation):
* runtime/ExceptionFuzz.cpp:
(JSC::doExceptionFuzzing):
* runtime/ExceptionHelpers.cpp:
(JSC::createError):
(JSC::createInvalidFunctionApplyParameterError):
(JSC::createInvalidInParameterError):
(JSC::createInvalidInstanceofParameterError):
(JSC::createNotAConstructorError):
(JSC::createNotAFunctionError):
(JSC::createNotAnObjectError):
(JSC::throwOutOfMemoryError):
(JSC::createStackOverflowError): Deleted.
(JSC::createOutOfMemoryError): Deleted.
* runtime/ExceptionHelpers.h:
* runtime/JSArrayBufferConstructor.cpp:
(JSC::constructArrayBuffer):
* runtime/JSArrayBufferPrototype.cpp:
(JSC::arrayBufferProtoFuncSlice):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
* runtime/NativeErrorConstructor.cpp:
(JSC::Interpreter::constructWithNativeErrorConstructor):
(JSC::Interpreter::callNativeErrorConstructor):
* runtime/VM.cpp:
(JSC::VM::throwException):
(JSC::appendSourceToError): Moved to Error.cpp
(JSC::FindFirstCallerFrameWithCodeblockFunctor::FindFirstCallerFrameWithCodeblockFunctor): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::operator()): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::foundCallFrame): Deleted.
(JSC::FindFirstCallerFrameWithCodeblockFunctor::index): Deleted.
* tests/stress/freeze_leek.js: Added.

Source/WebCore:

and should be added directly after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Covered by existing tests.

Sets line, column, source and stack information for DOMExceptions as
expected by the webinspector for native errors.

* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException):

LayoutTests:

and should be added after construction rather than when thrown.
This fixes frozen objects being unfrozen when thrown while conforming to
ecma script standard and other browser behavior.
rdar://problem/19927293
https://bugs.webkit.org/show_bug.cgi?id=141871

Reviewed by Geoffrey Garen.

Fixes tests to throw new Errors such that they will contain line, column, and stack information
as expected, and fixes the column in the error in the expected output.

* http/tests/w3c/resources/testharness.js:  Other browsers don't expect stack information
with this test, but we do, and so the AssertionError should include stack information gathered from Error.
This could also have been fixed by changing expectations, but its a good idea to check the stack anyway.
* js/dom/exception-linenums-in-html-1.html: Throw "new Error()" rather than "{}".
* js/dom/exception-linenums-in-html-2.html: ditto.
* js/dom/exception-linenums-in-html-3.html: ditto.
* js/dom/script-tests/stack-trace.js: ditto.
(throwError): ditto.
(h): ditto.
(inlineableThrow): ditto.
(dfgThing.get willThrow): ditto.
(dfgThing.willThrowFunc): ditto.
* js/dom/stack-trace-expected.txt: fixed error column expectation.
* js/exception-properties-expected.txt: ditto.
* js/script-tests/exception-linenums.js:
(exceptionInFunction): throw "new Error()" rather than "{}".
(firstPropIsGetter.get getter): ditto
(secondPropIsGetter.get getter): ditto
(firstPropIsSetter.set setter): ditto
(secondPropIsSetter.set setter): ditto
* js/script-tests/exception-properties.js: now checking that column, line, and sourceURL are existant on a "new Error"
since we now add these at error construction rather than at error throwing.
* platform/mac/http/tests/media/media-source/mediasource-addsourcebuffer-expected.txt: fixed expectation to match.
* platform/mac/http/tests/media/media-source/mediasource-sourcebuffer-mode-expected.txt: ditto.

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

4 years agoContextMenuItem refactoring
beidson@apple.com [Tue, 7 Apr 2015 21:29:00 +0000 (21:29 +0000)]
ContextMenuItem refactoring
https://bugs.webkit.org/show_bug.cgi?id=143485

Reviewed by Beth Dakin.

Source/WebCore:

* platform/ContextMenuItem.h:
(WebCore::ContextMenuItem::isNull):

* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):

* platform/mac/ContextMenuItemMac.mm:
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::platformDescription):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::releasePlatformDescription): Deleted.
(WebCore::ContextMenuItem::getPlatformDescription): Deleted.

* platform/mac/ContextMenuMac.mm:
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::insertItem):
(WebCore::platformMenuDescription):

* platform/win/ContextMenuItemWin.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):

Source/WebKit/mac:

* WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::contextMenuItemSelected):

Source/WebKit2:

* Shared/mac/NativeContextMenuItem.mm:
(WebKit::NativeContextMenuItem::NativeContextMenuItem):

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

4 years agoWeb Inspector: ES6: Show Symbol properties on Objects
joepeck@webkit.org [Tue, 7 Apr 2015 21:28:57 +0000 (21:28 +0000)]
Web Inspector: ES6: Show Symbol properties on Objects
https://bugs.webkit.org/show_bug.cgi?id=141279

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* inspector/protocol/Runtime.json:
Give PropertyDescriptor a reference to the Symbol RemoteObject
if the property is a symbol property.

* inspector/InjectedScriptSource.js:
Enumerate symbol properties on objects.

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/PropertyDescriptor.js:
(WebInspector.PropertyDescriptor.get symbol):

* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.wrappedCallback):
Update new PropertyDescriptor call site.

* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement._logSymbolProperty):
Provide a context menu for rows with Symbol properties to log
the Symbol property, and therefore get a reference to it.

* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.comparePropertyDescriptors):
Better handle symbol properties in sorting.

* UserInterface/Views/TypePropertiesSection.js:
(WebInspector.TypePropertiesSection.PropertyComparator):
Return better value when values are equal.

LayoutTests:

* inspector/model/remote-object-expected.txt:
* inspector/model/remote-object-get-properties-expected.txt:
* inspector/model/remote-object-get-properties.html:
* inspector/model/remote-object.html:
Update tests to include objects with Symbol properties.

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

4 years agoOptimize content extensions interpreting speed.
achristensen@apple.com [Tue, 7 Apr 2015 21:17:36 +0000 (21:17 +0000)]
Optimize content extensions interpreting speed.
https://bugs.webkit.org/show_bug.cgi?id=143490

Reviewed by Brady Eidson.

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad):
Measure total time added by content extensions.
* contentextensions/DFABytecodeCompiler.cpp:
(WebCore::ContentExtensions::DFABytecodeCompiler::compileNode):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):
When jumping to the root, don't re-add all the actions.
* contentextensions/DFABytecodeCompiler.h:
* platform/URL.cpp:
(WebCore::URL::init):
* platform/URL.h:
(WebCore::URL::protocolIsJavaScript): Added.

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

4 years agoAdd a new setting, AntialiasedFontDilationEnabled, exposed via WK2.
simon.fraser@apple.com [Tue, 7 Apr 2015 21:11:00 +0000 (21:11 +0000)]
Add a new setting, AntialiasedFontDilationEnabled, exposed via WK2.
https://bugs.webkit.org/show_bug.cgi?id=143495

Reviewed by Tim Horton.
Source/WebCore:

Add a new Setting, antialiasedFontDilationEnabled, which defaults to true. This
will be used in an upcoming patch.

* page/Settings.in:

Source/WebKit2:

Exposed the antialiasedFontDilationEnabled setting via WK C SPI and Objective-C SPI.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAntialiasedFontDilationEnabled):
(WKPreferencesGetAntialiasedFontDilationEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _antialiasedFontDilationEnabled]):
(-[WKPreferences _setAntialiasedFontDilationEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

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

4 years ago[Content Filtering] Add logging
aestes@apple.com [Tue, 7 Apr 2015 20:48:33 +0000 (20:48 +0000)]
[Content Filtering] Add logging
https://bugs.webkit.org/show_bug.cgi?id=143470

Reviewed by Daniel Bates.

Added a new ContentFiltering logging channel, and started logging some useful diagnostic messages.

* loader/ContentFilter.cpp:
(WebCore::ContentFilter::~ContentFilter):
(WebCore::ContentFilter::willSendRequest):
(WebCore::ContentFilter::startFilteringMainResource):
(WebCore::ContentFilter::responseReceived):
(WebCore::ContentFilter::dataReceived):
(WebCore::ContentFilter::notifyFinished):
(WebCore::ContentFilter::didDecide):
* platform/Logging.h:
* platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
(WebCore::ContentFilterUnblockHandler::canHandleRequest):
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync):
* platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::enabled):
(WebCore::NetworkExtensionContentFilter::unblockHandler):
(WebCore::NetworkExtensionContentFilter::handleDecision):
* platform/cocoa/ParentalControlsContentFilter.mm:
(WebCore::ParentalControlsContentFilter::enabled):
(WebCore::ParentalControlsContentFilter::updateFilterState):
* testing/MockContentFilter.cpp:
(WebCore::MockContentFilter::enabled):
(WebCore::MockContentFilter::unblockHandler):
(WebCore::MockContentFilter::maybeDetermineStatus):

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

4 years ago[Mac] video playing to external device should not be interrupted
eric.carlson@apple.com [Tue, 7 Apr 2015 20:23:17 +0000 (20:23 +0000)]
[Mac] video playing to external device should not be interrupted
https://bugs.webkit.org/show_bug.cgi?id=143492

Reviewed by Jer Noble.

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handlePanelTransitionEnd):  Drive-by fix to make sure the controls are
    not hidden if the opacity timer is primed before they go into a state where they should
    never be hidden.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayToWirelessPlaybackTarget): Make it const.
(WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): New.
* html/HTMLMediaElement.h:

* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::canPlayToWirelessPlaybackTarget): New. Short-circuit call to
    client when we already know the answer.
(WebCore::HTMLMediaSession::isPlayingToWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaSession::startPlayingToPlaybackTarget): Ditto.
(WebCore::HTMLMediaSession::stopPlayingToPlaybackTarget): Ditto.
* html/HTMLMediaSession.h:

* platform/audio/MediaSession.cpp:
(WebCore::MediaSession::canPlayToWirelessPlaybackTarget): Deleted, moved inline and neutered
    because only HTMLMediaSession needs to use them.
(WebCore::MediaSession::startPlayingToPlaybackTarget): Ditto.
(WebCore::MediaSession::stopPlayingToPlaybackTarget): Ditto.
* platform/audio/MediaSession.h:
(WebCore::MediaSession::canPlayToWirelessPlaybackTarget):
(WebCore::MediaSession::isPlayingToWirelessPlaybackTarget):
(WebCore::MediaSession::startPlayingToPlaybackTarget):
(WebCore::MediaSession::stopPlayingToPlaybackTarget):
(WebCore::MediaSessionClient::canPlayToWirelessPlaybackTarget):
(WebCore::MediaSessionClient::isPlayingToWirelessPlaybackTarget):

* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager):
(WebCore::MediaSessionManager::sessionShouldBeginPlayingToWirelessPlaybackTarget): New.
(WebCore::MediaSessionManager::sessionWillBeginPlayback): Don't interrupt an active session
    playing to a target device.
* platform/audio/MediaSessionManager.h:

* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::isPlayingToWirelessPlaybackTarget): New, passthrough.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::isPlayingToWirelessPlaybackTarget):

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayToWirelessPlaybackTarget):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): Explicitly call
    when passed a nil or inactive target context.
(WebCore::MediaPlayerPrivateAVFoundationObjC::startPlayingToPlaybackTarget): Add logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::stopPlayingToPlaybackTarget): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): New. Return
    true when playing with an active context.
(WebCore::playerKVOProperties): "outputContext" is not observable.

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

4 years agoShould only propagate pressure events with relevant phases
bdakin@apple.com [Tue, 7 Apr 2015 20:14:20 +0000 (20:14 +0000)]
Should only propagate pressure events with relevant phases
https://bugs.webkit.org/show_bug.cgi?id=143494
-and corresponding-
rdar://problem/20453738

Reviewed by Tim Horton.

We only care about the changed, began, and ended phases.
* UIProcess/API/mac/WKView.mm:
(-[WKView pressureChangeWithEvent:]):

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

4 years agoUnreviewed. Add myself as a committer.
mcatanzaro@igalia.com [Tue, 7 Apr 2015 19:50:34 +0000 (19:50 +0000)]
Unreviewed. Add myself as a committer.

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

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

4 years agoMake it possible to enable LLVM FastISel
fpizlo@apple.com [Tue, 7 Apr 2015 19:41:12 +0000 (19:41 +0000)]
Make it possible to enable LLVM FastISel
https://bugs.webkit.org/show_bug.cgi?id=143489

Reviewed by Michael Saboff.

The decision to enable FastISel is made by Options.h|cpp, but the LLVM library can disable it if it finds that it is built
against a version of LLVM that doesn't support it. Thereafter, JSC::enableLLVMFastISel is the flag that tells the system
if we should enable it.

* ftl/FTLCompile.cpp:
(JSC::FTL::mmAllocateDataSection):
* llvm/InitializeLLVM.cpp:
(JSC::initializeLLVMImpl):
* llvm/InitializeLLVM.h:
* llvm/InitializeLLVMLinux.cpp:
(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.
* llvm/InitializeLLVMMac.cpp:
(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.
* llvm/InitializeLLVMPOSIX.cpp:
(JSC::getLLVMInitializerFunctionPOSIX):
(JSC::initializeLLVMPOSIX): Deleted.
* llvm/InitializeLLVMPOSIX.h:
* llvm/InitializeLLVMWin.cpp:
(JSC::getLLVMInitializerFunction):
(JSC::initializeLLVMImpl): Deleted.
* llvm/LLVMAPI.cpp:
* llvm/LLVMAPI.h:
* llvm/library/LLVMExports.cpp:
(initCommandLine):
(initializeAndGetJSCLLVMAPI):
* runtime/Options.cpp:
(JSC::Options::initialize):

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

4 years agoWeb Inspector: HierarchicalPathNavigationItem's additionalClassNames should be _addit...
timothy@apple.com [Tue, 7 Apr 2015 18:35:48 +0000 (18:35 +0000)]
Web Inspector: HierarchicalPathNavigationItem's additionalClassNames should be _additionalClassNames
https://bugs.webkit.org/show_bug.cgi?id=143487

Reviewed by Joseph Pecoraro.

* UserInterface/Views/HierarchicalPathNavigationItem.js:
(WebInspector.HierarchicalPathNavigationItem.prototype.get _additionalClassNames):

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

4 years ago[Win] Bots complain about missing /etc/catalog
bfulgham@apple.com [Tue, 7 Apr 2015 18:06:54 +0000 (18:06 +0000)]
[Win] Bots complain about missing /etc/catalog
https://bugs.webkit.org/show_bug.cgi?id=143484

Reviewed by Chris Dumez.

The libxml2 build on Mac, iOS, and Windows does not provide the set
of default catalog files. We do not actually need these for our
purposes, but we get warnings and some bot flakiness because they
are not present.

We can avoid both problems the same way the Mac and iOS ports do,
by setting the XML_CATALOG_FILES environment variable to 'empty string',
which avoid the warnings and bot problems.

* Scripts/webkitpy/port/win.py:
(WinPort.setup_environ_for_server): Added.

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

4 years agoRe-add JSReadableStream and JSReadableStreamReader the Xcode project to
weinig@apple.com [Tue, 7 Apr 2015 17:22:15 +0000 (17:22 +0000)]
Re-add JSReadableStream and JSReadableStreamReader the Xcode project to
make Xcode happy.

* WebCore.xcodeproj/project.pbxproj:

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

4 years agoUnreviewed build fix; make calls to new SPI conditional on iOS version.
jer.noble@apple.com [Tue, 7 Apr 2015 17:18:30 +0000 (17:18 +0000)]
Unreviewed build fix; make calls to new SPI conditional on iOS version.

* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):

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