WebKit.git
5 years agobmalloc: added the tiniest bit of testing for aligned allocation
ggaren@apple.com [Sat, 17 Jan 2015 00:10:59 +0000 (00:10 +0000)]
bmalloc: added the tiniest bit of testing for aligned allocation
https://bugs.webkit.org/show_bug.cgi?id=140573

Reviewed by Andreas Kling.

Just good enoug to catch two bugs in a preliminary implementation.

* MallocBench/MallocBench.xcodeproj/project.pbxproj:
* MallocBench/MallocBench/Benchmark.cpp:
* MallocBench/MallocBench/mbmalloc.cpp:
* MallocBench/MallocBench/mbmalloc.h:
* MallocBench/MallocBench/memalign.cpp: Added.
(benchmark_memalign):
* MallocBench/MallocBench/memalign.h: Added.

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

5 years agoWeb Inspector: Remove unused WebInspector.LocalJSONObject
commit-queue@webkit.org [Sat, 17 Jan 2015 00:10:18 +0000 (00:10 +0000)]
Web Inspector: Remove unused WebInspector.LocalJSONObject
https://bugs.webkit.org/show_bug.cgi?id=140570

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

* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.fromLocalObject): Deleted.
(WebInspector.LocalJSONObject): Deleted.
(WebInspector.LocalJSONObject.prototype.get description.switch.case.string_appeared_here): Deleted.
(WebInspector.LocalJSONObject.prototype.get description.switch.default): Deleted.
(WebInspector.LocalJSONObject.prototype.get description): Deleted.
(WebInspector.LocalJSONObject.prototype._concatenate): Deleted.
(WebInspector.LocalJSONObject.prototype.get type): Deleted.
(WebInspector.LocalJSONObject.prototype.get subtype): Deleted.
(WebInspector.LocalJSONObject.prototype.get hasChildren): Deleted.
(WebInspector.LocalJSONObject.prototype.getOwnProperties): Deleted.
(WebInspector.LocalJSONObject.prototype.getAllProperties): Deleted.
(WebInspector.LocalJSONObject.prototype._children.buildProperty): Deleted.
(WebInspector.LocalJSONObject.prototype._children): Deleted.
(WebInspector.LocalJSONObject.prototype.isError): Deleted.

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

5 years agobmalloc: added some infrastructure for aligned allocation
ggaren@apple.com [Sat, 17 Jan 2015 00:01:22 +0000 (00:01 +0000)]
bmalloc: added some infrastructure for aligned allocation
https://bugs.webkit.org/show_bug.cgi?id=140572

Reviewed by Andreas Kling.

* bmalloc/Algorithm.h:
(bmalloc::isPowerOfTwo):
(bmalloc::roundUpToMultipleOf):
(bmalloc::roundDownToMultipleOf): Refactored some duplicate code to use our
isPowerOfTwo helper function.

* bmalloc/Allocator.cpp:
(bmalloc::Allocator::allocate):
* bmalloc/Allocator.h: Stubbed out an implementation of aligned allocation.
Doesn't do anything yet, but does correctly forward to system malloc
when bmalloc is disabled.

* bmalloc/Cache.cpp:
(bmalloc::Cache::allocateSlowCaseNullCache):
* bmalloc/Cache.h:
(bmalloc::Cache::allocate):
* bmalloc/bmalloc.h:
(bmalloc::api::memalign):
* bmalloc/mbmalloc.cpp: Stubbed out an API for aligned allocation.

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

5 years agoPass the connection along to WebProcessLifetimeTracker
andersca@apple.com [Fri, 16 Jan 2015 23:41:39 +0000 (23:41 +0000)]
Pass the connection along to WebProcessLifetimeTracker
https://bugs.webkit.org/show_bug.cgi?id=140569

Reviewed by Andreas Kling.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::connectionWillOpen):
(WebKit::WebPageProxy::connectionDidClose):
* UIProcess/WebProcessLifetimeTracker.cpp:
(WebKit::WebProcessLifetimeTracker::connectionWillOpen):
(WebKit::WebProcessLifetimeTracker::connectionDidClose):
(WebKit::WebProcessLifetimeTracker::connectionWillClose): Deleted.
* UIProcess/WebProcessLifetimeTracker.h:

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

5 years agoRegression(r178586): Caused webkitpy.w3c.test_converter_unittest.W3CTestConverterTest...
cdumez@apple.com [Fri, 16 Jan 2015 23:32:33 +0000 (23:32 +0000)]
Regression(r178586): Caused webkitpy.w3c.test_converter_unittest.W3CTestConverterTest.test_convert_prefixed_properties to fail
https://bugs.webkit.org/show_bug.cgi?id=140568

Reviewed by Alexey Proskuryakov.

Fix the script parsing CSSPropertyNames.in to stop splitting lines
on '=' sign. The '=' sign is also used in StyleBuilder parameters:
e.g. "Longhands=background-position-x|background-position-y".
This would confuse the script and treat this as a CSS property:
"background-position-x|background-position-y".

We now split on white space and treat the first string on the line
to be the property name (this is the syntax in this file).

* Scripts/webkitpy/w3c/test_converter.py:
(_W3CTestConverter.__init__):
(_W3CTestConverter.read_webkit_prefixed_css_property_list):

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

5 years agoWeb Inspector: code generator should introduce typedefs for protocol types that are...
burg@cs.washington.edu [Fri, 16 Jan 2015 23:17:45 +0000 (23:17 +0000)]
Web Inspector: code generator should introduce typedefs for protocol types that are arrays
https://bugs.webkit.org/show_bug.cgi?id=140557

Reviewed by Joseph Pecoraro.

Currently, there is no generated type name for "array" type declarations such as Console.CallStack.
This makes it longwinded and confusing to use the type in C++ code.

This patch adds a typedef for array type declarations, so types such as Console::CallStack
can be referred to directly, rather than using Inspector::Protocol::Array<Console::CallFrame>.

Some tests were updated to cover array type declarations used as parameters and type members.

* inspector/ScriptCallStack.cpp: Use the new typedef.
(Inspector::ScriptCallStack::buildInspectorArray):
* inspector/ScriptCallStack.h:
* inspector/scripts/codegen/cpp_generator.py:
(CppGenerator.cpp_protocol_type_for_type): If an ArrayType is nominal, use the typedef'd name instead.
* inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(_generate_typedefs_for_domain): Also generate typedefs for array type declarations.
(_generate_typedefs_for_domain.Inspector):
* inspector/scripts/codegen/models.py: Save the name of an ArrayType when it is a type declaration.
(ArrayType.__init__):
(Protocol.resolve_types):
(Protocol.lookup_type_reference):
* inspector/scripts/tests/commands-with-async-attribute.json:
* inspector/scripts/tests/commands-with-optional-call-return-parameters.json:
* inspector/scripts/tests/events-with-optional-parameters.json:
* inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
* inspector/scripts/tests/expected/type-declaration-array-type.json-result:
* inspector/scripts/tests/expected/type-declaration-object-type.json-result:
* inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
* inspector/scripts/tests/type-declaration-object-type.json:

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

5 years agoMake sure early cancellation of immediate action actually does that in WK1
bdakin@apple.com [Fri, 16 Jan 2015 22:51:30 +0000 (22:51 +0000)]
Make sure early cancellation of immediate action actually does that in WK1
https://bugs.webkit.org/show_bug.cgi?id=140566
-and corresponding-
rdar://problem/19490114

Reviewed by Tim Horton.

Work around an AppKit bug by dispatching the call to _cancelImmediateAction
asynchronously.
* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController immediateActionRecognizerWillPrepare:]):

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

5 years agoMore WebPageProxy CTTE
andersca@apple.com [Fri, 16 Jan 2015 22:22:46 +0000 (22:22 +0000)]
More WebPageProxy CTTE
https://bugs.webkit.org/show_bug.cgi?id=140565

Reviewed by Andreas Kling.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::connectionWillOpen):
(WebKit::WebPageProxy::connectionDidClose):
(WebKit::WebPageProxy::connectionWillClose): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionDidClose):

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

5 years agoWeb Replay: purge remaining PassRefPtr uses and minor cleanup
burg@cs.washington.edu [Fri, 16 Jan 2015 22:13:08 +0000 (22:13 +0000)]
Web Replay: purge remaining PassRefPtr uses and minor cleanup
https://bugs.webkit.org/show_bug.cgi?id=140456

Reviewed by Andreas Kling.

Source/JavaScriptCore:

Get rid of PassRefPtr. Introduce default initializers where it makes sense.
Remove mistaken uses of AtomicString that were not removed as part of r174113.

* replay/EmptyInputCursor.h:
* replay/InputCursor.h:
(JSC::InputCursor::InputCursor):

Source/WebCore:

Get rid of PassRefPtr. Introduce default initializers where it makes sense. Change
uses of ASSERT to ASSERT_ARG when the assert is a precondition on an argument.

Remove mistaken uses of AtomicString that were not removed as part of r174113.

No new tests, no behavior changed.

* inspector/InspectorReplayAgent.cpp:
(WebCore::SerializeInputToJSONFunctor::operator()):
(WebCore::SerializeInputToJSONFunctor::returnValue):
(WebCore::InspectorReplayAgent::sessionCreated):
(WebCore::InspectorReplayAgent::sessionModified):
(WebCore::InspectorReplayAgent::sessionLoaded):
(WebCore::InspectorReplayAgent::segmentCreated):
(WebCore::InspectorReplayAgent::segmentCompleted):
(WebCore::InspectorReplayAgent::segmentLoaded):
(WebCore::InspectorReplayAgent::switchSession):
(WebCore::InspectorReplayAgent::insertSessionSegment):
(WebCore::InspectorReplayAgent::removeSessionSegment):
(WebCore::InspectorReplayAgent::findSession):
(WebCore::InspectorReplayAgent::findSegment):
* inspector/InspectorReplayAgent.h:
* replay/CapturingInputCursor.cpp:
(WebCore::CapturingInputCursor::CapturingInputCursor):
(WebCore::CapturingInputCursor::create):
(WebCore::CapturingInputCursor::loadInput):
* replay/CapturingInputCursor.h:
* replay/EventLoopInputDispatcher.cpp:
(WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
* replay/EventLoopInputDispatcher.h:
* replay/FunctorInputCursor.h:
(WebCore::FunctorInputCursor::FunctorInputCursor):
(WebCore::FunctorInputCursor::loadInput):
* replay/ReplayController.cpp:
(WebCore::ReplayController::ReplayController):
(WebCore::ReplayController::setForceDeterministicSettings):
(WebCore::ReplayController::setSessionState):
(WebCore::ReplayController::setSegmentState):
(WebCore::ReplayController::switchSession):
(WebCore::ReplayController::createSegment):
(WebCore::ReplayController::completeSegment):
(WebCore::ReplayController::loadSegmentAtIndex):
(WebCore::ReplayController::unloadSegment):
(WebCore::ReplayController::frameNavigated):
(WebCore::ReplayController::loadedSession):
(WebCore::ReplayController::loadedSegment):
(WebCore::ReplayController::activeInputCursor):
(WebCore::ReplayController::dispatcher):
* replay/ReplayController.h:
* replay/ReplaySession.cpp:
(WebCore::ReplaySession::create):
(WebCore::ReplaySession::at):
(WebCore::ReplaySession::appendSegment):
(WebCore::ReplaySession::insertSegment):
(WebCore::ReplaySession::removeSegment):
* replay/ReplaySession.h:
* replay/ReplaySessionSegment.cpp:
(WebCore::ReplaySessionSegment::create):
(WebCore::ReplaySessionSegment::ReplaySessionSegment):
* replay/ReplaySessionSegment.h:
* replay/ReplayingInputCursor.cpp:
(WebCore::ReplayingInputCursor::ReplayingInputCursor):
(WebCore::ReplayingInputCursor::create):
(WebCore::ReplayingInputCursor::loadInput):
* replay/ReplayingInputCursor.h:
* replay/SegmentedInputStorage.cpp:
(WebCore::SegmentedInputStorage::store):
(WebCore::SegmentedInputStorage::queue):
(WebCore::SegmentedInputStorage::SegmentedInputStorage): Deleted.
* replay/SegmentedInputStorage.h:

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

5 years agoRemove dead code
andersca@apple.com [Fri, 16 Jan 2015 22:05:56 +0000 (22:05 +0000)]
Remove dead code
https://bugs.webkit.org/show_bug.cgi?id=140563

Reviewed by Geoffrey Garen.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processWillOpenConnection): Deleted.
(WebKit::WebProcessPool::processWillCloseConnection): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionDidClose):

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

5 years agoREGRESSION (r171968): run-safari --simulator fails to launch Safari on iOS
dbates@webkit.org [Fri, 16 Jan 2015 21:58:28 +0000 (21:58 +0000)]
REGRESSION (r171968): run-safari --simulator fails to launch Safari on iOS
https://bugs.webkit.org/show_bug.cgi?id=135589

Reviewed by David Kilzer.

Derived from a patch by David Farler.

Following the removal IPhoneSimulatorNotification.pm in <http://trac.webkit.org/changeset/171968>
run-safari --simulator fails to launch Safari on iOS. We need to implement run-safari
in terms of the simctl command line utility.

* Scripts/webkitdirs.pm: Added constant SIMULATOR_DEVICE_STATE_BOOTED.
(eraseIOSSimulatorDevice): Added.
(bootedIOSSimulatorDevice): Added.
(iosSimulatorApplicationsPath): Added.
(installedMobileSafariBundle): Implemented in terms of iosSimulatorApplicationsPath().
(openIOSSimulator): Modified to launch iOS Simulator using OPEN(1).
(quitIOSSimulator): Added.
(iosSimulatorDeviceByName): Modified to find the first simulator device that matches
the specified name and currently selected iOS runtime.
(isIOSSimulatorSystemInstalledApp): Added.
(runIOSWebKitAppInSimulator): Modified to use simctl launch to launch an app in the simulator.
(deleteiOSSimulatorDevice): Deleted.
(loadIPhoneSimulatorNotificationIfNeeded): Deleted.
(installAndLaunchIOSWebKitAppInSimulator): Deleted.

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

5 years agoRemove assertion that Page::m_editorClient is non-null.
akling@apple.com [Fri, 16 Jan 2015 21:42:50 +0000 (21:42 +0000)]
Remove assertion that Page::m_editorClient is non-null.

Unreviewed debug build fix. (It's a reference, it won't be null.)

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

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

5 years agoWeb Inspector: code generator should fail on duplicate parameter and member names
burg@cs.washington.edu [Fri, 16 Jan 2015 21:40:23 +0000 (21:40 +0000)]
Web Inspector: code generator should fail on duplicate parameter and member names
https://bugs.webkit.org/show_bug.cgi?id=140555

Reviewed by Timothy Hatcher.

* inspector/scripts/codegen/models.py:
(find_duplicates): Add a helper function to find duplicates in a list.
(Protocol.parse_type_declaration):
(Protocol.parse_command):
(Protocol.parse_event):
* inspector/scripts/tests/expected/fail-on-duplicate-command-call-parameter-names.json-error: Added.
* inspector/scripts/tests/expected/fail-on-duplicate-command-return-parameter-names.json-error: Added.
* inspector/scripts/tests/expected/fail-on-duplicate-event-parameter-names.json-error: Added.
* inspector/scripts/tests/expected/fail-on-duplicate-type-member-names.json-error: Added.
* inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json: Added.
* inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json: Added.
* inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json: Added.
* inspector/scripts/tests/fail-on-duplicate-type-member-names.json: Added.

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

5 years agoSprinkle some CTTE in ChildProcessProxy member functions
andersca@apple.com [Fri, 16 Jan 2015 21:37:42 +0000 (21:37 +0000)]
Sprinkle some CTTE in ChildProcessProxy member functions
https://bugs.webkit.org/show_bug.cgi?id=140562

Reviewed by Andreas Kling.

* Shared/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::didFinishLaunching):
(WebKit::ChildProcessProxy::clearConnection):
(WebKit::ChildProcessProxy::connectionWillOpen):
(WebKit::ChildProcessProxy::connectionDidClose):
(WebKit::ChildProcessProxy::connectionWillClose): Deleted.
* Shared/ChildProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::connectionWillOpen): Deleted.
(WebKit::DatabaseProcessProxy::connectionWillClose): Deleted.
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::connectionWillOpen):
(WebKit::NetworkProcessProxy::connectionWillClose): Deleted.
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::connectionWillOpen):
(WebKit::WebProcessProxy::connectionDidClose):
(WebKit::WebProcessProxy::connectionWillClose): Deleted.
* UIProcess/WebProcessProxy.h:
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::initializeConnection):
* UIProcess/mac/SecItemShimProxy.h:

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

5 years agoPage::editorClient() should return a reference.
akling@apple.com [Fri, 16 Jan 2015 21:33:01 +0000 (21:33 +0000)]
Page::editorClient() should return a reference.
<https://webkit.org/b/140552>

Reviewed by Chris Dumez.

Page always has an EditorClient, so make editorClient() return a reference.

* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::editorClient):
(WebCore::AlternativeTextController::textChecker):
* editing/Editor.cpp:
(WebCore::Editor::client):
* editing/SpellChecker.cpp:
(WebCore::SpellChecker::client):
* page/FocusController.cpp:
(WebCore::FocusController::setFocusedElement):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::clearUndoRedoOperations):
* page/Page.h:
(WebCore::Page::editorClient):
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):

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

5 years agoResurrect the WinCairo bot.
alex.christensen@flexsim.com [Fri, 16 Jan 2015 21:25:50 +0000 (21:25 +0000)]
Resurrect the WinCairo bot.
https://bugs.webkit.org/show_bug.cgi?id=139908

Patch by Alex Christensen <alex.christensen@flexsim.com> on 2015-01-16
Reviewed by Csaba Osztrogonác.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(appendCustomBuildFlags):
* BuildSlaveSupport/test-result-archive:
(archiveTestResults):
Add WinCairo buildbot.

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

5 years agoShould cancel immediate action sooner in WK2
bdakin@apple.com [Fri, 16 Jan 2015 21:11:33 +0000 (21:11 +0000)]
Should cancel immediate action sooner in WK2
https://bugs.webkit.org/show_bug.cgi?id=140561
-and corresponding-
rdar://problem/19490114

Reviewed by Tim Horton.

_cancelImmediateActionIfNeeded will cancel the immediate action if there is no
animation controller or if the DDActionContext doesn’t want to use its actions.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _cancelImmediateActionIfNeeded]):

Call _cancelImmediateActionIfNeeded to cancel earlier.
(-[WKImmediateActionController didPerformActionMenuHitTest:userData:]):

Re-factor this code to use the newly-added method _cancelImmediateActionIfNeeded
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):

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

5 years agoDon't try to send SetSession messages before the web page has been constructed in...
andersca@apple.com [Fri, 16 Jan 2015 21:04:40 +0000 (21:04 +0000)]
Don't try to send SetSession messages before the web page has been constructed in the web process
https://bugs.webkit.org/show_bug.cgi?id=140558

Reviewed by Andreas Kling.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
We already send the session ID along in the page creation parameters so just message the network process
if we need to create an ephemeral session.

(WebKit::WebPageProxy::setSessionID):
Add an isValid call for good measure.

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

5 years agoMake URL filters case-insensitive by default
benjamin@webkit.org [Fri, 16 Jan 2015 21:01:00 +0000 (21:01 +0000)]
Make URL filters case-insensitive by default
https://bugs.webkit.org/show_bug.cgi?id=140531

Reviewed by Andreas Kling.

Safari's filters were case-insensitive. Adopt that convention in the engine,
and add a flag in case someone ever need a case-sensitive filter.

* contentextensions/ContentExtensionRule.h:
* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList):
* contentextensions/ContentExtensionsManager.cpp:
(WebCore::ContentExtensions::ExtensionsManager::loadTrigger):
* contentextensions/URLFilterParser.cpp:
(WebCore::ContentExtensions::trivialAtomFromASCIICharacter):
(WebCore::ContentExtensions::GraphBuilder::GraphBuilder):
(WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):
(WebCore::ContentExtensions::GraphBuilder::generateTransition):
(WebCore::ContentExtensions::URLFilterParser::addPattern):
* contentextensions/URLFilterParser.h:

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

5 years agoAdd the alternative syntax for CSS Selector's descendant combinator (">>")
benjamin@webkit.org [Fri, 16 Jan 2015 20:57:04 +0000 (20:57 +0000)]
Add the alternative syntax for CSS Selector's descendant combinator (">>")
https://bugs.webkit.org/show_bug.cgi?id=140525

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-01-16
Reviewed by Antti Koivisto.

Source/WebCore:

The latest Selector spec introduces the combinator ">>" as an alias for the descendant
relation: http://dev.w3.org/csswg/selectors-4/#descendant-combinators

This patch implements that combinator as an alias of the existing one. For CSSOM's selector
serialization, I use one bit of CSSSelector to store if that alternative syntax was used.

Tests: fast/css/descendant-combinator-doubled-child-syntax-styling.html
       fast/css/parsing-css-descendant-combinator-doubled-child-syntax.html
       fast/selectors/element-closest-descendant-combinator-doubled-child-syntax.html
       fast/selectors/element-matches-descendant-combinator-doubled-child-syntax.html
       fast/selectors/querySelector-descendant-combinator-doubled-child-syntax.html

* css/CSSGrammar.y.in:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::appendTagHistory):
* css/CSSParserValues.h:
(WebCore::CSSParserSelector::setDescendantUseDoubleChildSyntax):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(WebCore::CSSSelector::setDescendantUseDoubleChildSyntax):
(WebCore::CSSSelector::CSSSelector):

LayoutTests:

* fast/css/css-selector-text-expected.txt:
* fast/css/css-selector-text.html:
* fast/css/css-set-selector-text-expected.txt:
* fast/css/css-set-selector-text.html:
* fast/css/descendant-combinator-doubled-child-syntax-styling-expected.html: Added.
* fast/css/descendant-combinator-doubled-child-syntax-styling.html: Added.
* fast/css/parsing-css-descendant-combinator-doubled-child-syntax-expected.txt: Added.
* fast/css/parsing-css-descendant-combinator-doubled-child-syntax.html: Added.
* fast/selectors/element-closest-descendant-combinator-doubled-child-syntax-expected.txt: Added.
* fast/selectors/element-closest-descendant-combinator-doubled-child-syntax.html: Added.
* fast/selectors/element-matches-descendant-combinator-doubled-child-syntax-expected.txt: Added.
* fast/selectors/element-matches-descendant-combinator-doubled-child-syntax.html: Added.
* fast/selectors/querySelector-descendant-combinator-doubled-child-syntax-expected.txt: Added.
* fast/selectors/querySelector-descendant-combinator-doubled-child-syntax.html: Added.

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

5 years agoREGRESSION (r174226): Header on huffingtonpost.com is too large
msaboff@apple.com [Fri, 16 Jan 2015 20:40:22 +0000 (20:40 +0000)]
REGRESSION (r174226): Header on huffingtonpost.com is too large
https://bugs.webkit.org/show_bug.cgi?id=140306

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

BytecodeGenerator::willResolveToArguments() is used to check to see if we can use the
arguments register or whether we need to resolve "arguments".  If the arguments have
been captured, then they are stored in the lexical environment and the arguments
register is not used.

Changed BytecodeGenerator::willResolveToArguments() to also check to see if the arguments
register is captured.  Renamed the function to willResolveToArgumentsRegister() to
better indicate what we are checking.

Aligned 32 and 64 bit paths in ArgumentsRecoveryGenerator::generateFor() for creating
an arguments object that was optimized out of an inlined callFrame.  The 32 bit path
incorrectly calculated the location of the reified callee frame.  This alignment resulted
in the removal of operationCreateInlinedArgumentsDuringOSRExit()

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::willResolveToArgumentsRegister):
(JSC::BytecodeGenerator::uncheckedLocalArgumentsRegister):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):
(JSC::BytecodeGenerator::emitEnumeration):
(JSC::BytecodeGenerator::willResolveToArguments): Deleted.
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::getArgumentByVal):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::ArrayPatternNode::emitDirectBinding):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::ArgumentsRecoveryGenerator::generateFor):
* dfg/DFGOperations.cpp:
(JSC::operationCreateInlinedArgumentsDuringOSRExit): Deleted.
* dfg/DFGOperations.h:
(JSC::operationCreateInlinedArgumentsDuringOSRExit): Deleted.

LayoutTests:

Updated js/arguments-iterator to test changing argument to array values.
Removed tests that changed arguments to a string and an object as they were
bogus and didn't test what the appeared to test.
for .. of works on iterable objects only.

Added new regression test, js/regress-140306.

* js/arguments-iterator-expected.txt:
* js/regress-140306-expected.txt: Added.
* js/regress-140306.html: Added.
* js/script-tests/arguments-iterator.js:
(testEmptyArrayArguments):
(testArrayArguments):
(testOverwrittenArguments): Deleted.
(testNullArguments): Deleted.
(testNonArrayLikeArguments): Deleted.
* js/script-tests/regress-140306.js: Added.
(checkArgs):
(applyToArgs):

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

5 years agowebkit-patch should auto-install the keyring python module
cdumez@apple.com [Fri, 16 Jan 2015 20:06:57 +0000 (20:06 +0000)]
webkit-patch should auto-install the keyring python module
https://bugs.webkit.org/show_bug.cgi?id=140547

Reviewed by David Kilzer.

Auto-install the keyring python module. This is the module that
webkit-patch uses for cross-platform access to the keyring
service.

Without this module, if the password if not in the keychain,
webkit-patch will keep asking for your username / password and
never remember them.

* Scripts/webkitpy/common/net/credentials.py:
* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook.find_module):
(AutoinstallImportHook._install_keyring):

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

5 years ago[mac] Fix test expectations after r178310.
commit-queue@webkit.org [Fri, 16 Jan 2015 20:05:36 +0000 (20:05 +0000)]
[mac] Fix test expectations after r178310.
https://bugs.webkit.org/show_bug.cgi?id=140503

Patch by Jeremy Jones <jeremyj@apple.com> on 2015-01-16
Reviewed by Alexey Proskuryakov.

Remove references to removed tests.

* platform/mac-wk2/TestExpectations:
 removed reference to storage/indexeddb/basics-shared-workers.html
 removed reference to js/dom/global-constructors-attributes-shared-worker.html
* platform/mac/TestExpectations:
 removed reference to fast/workers/shared-worker-storagequota-query-usage.html

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

5 years agoLog unhandled messages in the web process
andersca@apple.com [Fri, 16 Jan 2015 20:01:10 +0000 (20:01 +0000)]
Log unhandled messages in the web process
https://bugs.webkit.org/show_bug.cgi?id=140549

Reviewed by Andreas Kling.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveSyncMessage):
(WebKit::WebProcess::didReceiveMessage):

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

5 years agoGenerate StylePropertyShorthand.* from CSSPropertyNames.in
cdumez@apple.com [Fri, 16 Jan 2015 19:39:02 +0000 (19:39 +0000)]
Generate StylePropertyShorthand.* from CSSPropertyNames.in
https://bugs.webkit.org/show_bug.cgi?id=140501

Reviewed by Darin Adler.

Add initial support for having makeprop.pl generate most of
StylePropertyShorthand.* from CSSPropertyNames.in.

This patch replaces [Shorthand] parameter in CSSPropertyNames.in by a
more descriptive [Longhands=property1|property2|...] parameter. With
this information, makeprop.pl is now able to generate the
StylePropertyShorthand factories for all CSS shorthand properties
in a new StylePropertyShorthandFunctions.h header.

The switches in StylePropertyShorthand.cpp could also be generated
but this will be taken care of in follow-up patches to reduce patch
size.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
* css/StylePropertyShorthand.cpp:
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
(WebCore::backgroundShorthand): Deleted.
(WebCore::backgroundPositionShorthand): Deleted.
(WebCore::backgroundRepeatShorthand): Deleted.
(WebCore::borderShorthand): Deleted.
(WebCore::borderBottomShorthand): Deleted.
(WebCore::borderColorShorthand): Deleted.
(WebCore::borderImageShorthand): Deleted.
(WebCore::borderLeftShorthand): Deleted.
(WebCore::borderRadiusShorthand): Deleted.
(WebCore::webkitBorderRadiusShorthand): Deleted.
(WebCore::borderRightShorthand): Deleted.
(WebCore::borderSpacingShorthand): Deleted.
(WebCore::borderStyleShorthand): Deleted.
(WebCore::borderTopShorthand): Deleted.
(WebCore::borderWidthShorthand): Deleted.
(WebCore::listStyleShorthand): Deleted.
(WebCore::marginShorthand): Deleted.
(WebCore::markerShorthand): Deleted.
(WebCore::outlineShorthand): Deleted.
(WebCore::overflowShorthand): Deleted.
(WebCore::paddingShorthand): Deleted.
(WebCore::transitionShorthand): Deleted.
(WebCore::animationShorthand): Deleted.
(WebCore::webkitAnimationShorthand): Deleted.
(WebCore::webkitBorderAfterShorthand): Deleted.
(WebCore::webkitBorderBeforeShorthand): Deleted.
(WebCore::webkitBorderEndShorthand): Deleted.
(WebCore::webkitBorderStartShorthand): Deleted.
(WebCore::webkitColumnsShorthand): Deleted.
(WebCore::webkitColumnRuleShorthand): Deleted.
(WebCore::flexFlowShorthand): Deleted.
(WebCore::flexShorthand): Deleted.
(WebCore::webkitMarginCollapseShorthand): Deleted.
(WebCore::webkitGridShorthand): Deleted.
(WebCore::webkitGridTemplateShorthand): Deleted.
(WebCore::webkitGridAreaShorthand): Deleted.
(WebCore::webkitGridColumnShorthand): Deleted.
(WebCore::webkitGridRowShorthand): Deleted.
(WebCore::webkitMarqueeShorthand): Deleted.
(WebCore::webkitMaskShorthand): Deleted.
(WebCore::webkitMaskPositionShorthand): Deleted.
(WebCore::webkitMaskRepeatShorthand): Deleted.
(WebCore::webkitTextDecorationShorthand): Deleted.
(WebCore::webkitTextEmphasisShorthand): Deleted.
(WebCore::webkitTextStrokeShorthand): Deleted.
(WebCore::webkitTransitionShorthand): Deleted.
(WebCore::webkitPerspectiveOriginShorthand): Deleted.
(WebCore::webkitTransformOriginShorthand): Deleted.
* css/StylePropertyShorthand.h:
* css/makeprop.pl:

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

5 years agoUnreviewed, rolling out r178532.
commit-queue@webkit.org [Fri, 16 Jan 2015 18:50:45 +0000 (18:50 +0000)]
Unreviewed, rolling out r178532.
https://bugs.webkit.org/show_bug.cgi?id=140548

Broke fast/css/parsing-css-lang.html on some bots (Requested
by ap on #webkit).

Reverted changeset:

"Canonicalization of :lang() should preserve the :lang()'s
arguments representations"
https://bugs.webkit.org/show_bug.cgi?id=139928
http://trac.webkit.org/changeset/178532

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

5 years agoUnreviewed, rolling out r178577.
commit-queue@webkit.org [Fri, 16 Jan 2015 18:36:34 +0000 (18:36 +0000)]
Unreviewed, rolling out r178577.
https://bugs.webkit.org/show_bug.cgi?id=140546

Broke fast/css-grid-layout/grid-content-sized-columns-
resolution.html (Requested by ap on #webkit).

Reverted changeset:

"[CSS Grid Layout] Tracks shrink sometimes with indefinite
remaining space"
https://bugs.webkit.org/show_bug.cgi?id=139059
http://trac.webkit.org/changeset/178577

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

5 years agostd::all_of requires complete C++ iterators in GCC 4.8
utatane.tea@gmail.com [Fri, 16 Jan 2015 18:15:41 +0000 (18:15 +0000)]
std::all_of requires complete C++ iterators in GCC 4.8
https://bugs.webkit.org/show_bug.cgi?id=140530

Reviewed by Darin Adler.

In the WebKit2/UIProcess/WebProcessLifetimeObserver.cpp, std::all_of
is used for HashIterators. However, std::all_of requires the complete
C++ iterator interface including iterator_category typedef member and
it raises compile error in GCC 4.8 (and libstdc++) environment.

This patch inherits std::iterator with appropriate type parameters.
It automatically defines required typedefs including iterator_category.

* wtf/HashIterators.h:

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

5 years agoSome improvements to RuleSet shrinking.
akling@apple.com [Fri, 16 Jan 2015 17:50:14 +0000 (17:50 +0000)]
Some improvements to RuleSet shrinking.
<https://webkit.org/b/140534>

Reviewed by Antti Koivisto.

Give an inline capacity (1) to the RuleData Vectors in RuleSet.
The vast majority of Vectors have only a single entry, and this
avoids having to allocate a separate Vector backing store for them.

Also make sure to shrink some Vectors that we weren't already,
like those in RuleFeatureSet.

* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
* css/ElementRuleCollector.h:
* css/RuleFeature.cpp:
(WebCore::RuleFeatureSet::shrinkToFit):
* css/RuleFeature.h:
* css/RuleSet.cpp:
(WebCore::RuleSet::addToRuleSet):
(WebCore::rulesCountForName):
(WebCore::shrinkMapVectorsToFit):
(WebCore::RuleSet::shrinkToFit):
* css/RuleSet.h:
(WebCore::RuleSet::idRules):
(WebCore::RuleSet::classRules):
(WebCore::RuleSet::tagRules):
(WebCore::RuleSet::shadowPseudoElementRules):
(WebCore::RuleSet::linkPseudoClassRules):
(WebCore::RuleSet::cuePseudoRules):
(WebCore::RuleSet::focusPseudoClassRules):
(WebCore::RuleSet::universalRules):

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

5 years agoFix the public iOS SDK build after <http://trac.webkit.org/changeset/178285>
dbates@webkit.org [Fri, 16 Jan 2015 17:13:03 +0000 (17:13 +0000)]
Fix the public iOS SDK build after <trac.webkit.org/changeset/178285>
(https://bugs.webkit.org/show_bug.cgi?id=140360)

Forward declare protocol NSURLDownloadDelegate as it is SPI on iOS.

* Misc/WebDownload.h:

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

5 years agoCorrect naming for FontCascade implementation files
antti@apple.com [Fri, 16 Jan 2015 16:07:46 +0000 (16:07 +0000)]
Correct naming for FontCascade implementation files
https://bugs.webkit.org/show_bug.cgi?id=140544

Reviewed by Zalan Bujtas.

Also reduce their number.

Merge FontFastPath.cpp into FontCascade.cpp
Merge FontMac.mm and FontComplexTextMac.cpp into FontCascadeCocoa.mm

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::getEmphasisMarkGlyphData):
(WebCore::FontCascade::emphasisMarkAscent):
(WebCore::FontCascade::emphasisMarkDescent):
(WebCore::FontCascade::emphasisMarkHeight):
(WebCore::FontCascade::getGlyphsAndAdvancesForSimpleText):
(WebCore::FontCascade::drawSimpleText):
(WebCore::FontCascade::drawEmphasisMarksForSimpleText):
(WebCore::FontCascade::drawGlyphBuffer):
(WebCore::offsetToMiddleOfGlyph):
(WebCore::offsetToMiddleOfGlyphAtIndex):
(WebCore::FontCascade::drawEmphasisMarks):
(WebCore::FontCascade::floatWidthForSimpleText):
(WebCore::FontCascade::adjustSelectionRectForSimpleText):
(WebCore::FontCascade::offsetForPositionForSimpleText):
* platform/graphics/FontFastPath.cpp: Removed.
* platform/graphics/cocoa/FontCascadeCocoa.mm: Copied from Source/WebCore/platform/graphics/mac/FontMac.mm.
(WebCore::FontCascade::drawGlyphs):
(WebCore::FontCascade::adjustSelectionRectForComplexText):
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText):
(WebCore::FontCascade::drawComplexText):
(WebCore::FontCascade::drawEmphasisMarksForComplexText):
(WebCore::FontCascade::floatWidthForComplexText):
(WebCore::FontCascade::offsetForPositionForComplexText):
(WebCore::FontCascade::fontDataForCombiningCharacterSequence):
* platform/graphics/mac/FontComplexTextMac.cpp: Removed.
* platform/graphics/mac/FontMac.mm: Removed.

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

5 years ago[CSS Grid Layout] Tracks shrink sometimes with indefinite remaining space
svillar@igalia.com [Fri, 16 Jan 2015 10:22:45 +0000 (10:22 +0000)]
[CSS Grid Layout] Tracks shrink sometimes with indefinite remaining space
https://bugs.webkit.org/show_bug.cgi?id=139059

Reviewed by David Hyatt.

Source/WebCore:

Test: fast/css-grid-layout/grid-grow-tracks-to-their-max.html

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):

LayoutTests:

The third step of the grid track sizing algorithm (method
ComputeUsedBreadthOfGridTracks in the old specs version of the
algorithm) tries to grow all grid tracks until the remaining space
is exhausted. Should the remaining space is undefined we should fill
the tracks up to their limits. This is specified in pseudocode like
this:

    For each Grid track t in GridTracks
        t.UsedBreadth = t.MaxBreadth

That's correct for most of the cases, but it becomes
wrong whenever t.UsedBreadth > t.MaxBreadth something that is not
incorrect. What we actually want to do is to grow the track to its
maximum if and only if the used breadth is smaller than the maximum.

* TestExpectations: Added a test which is correct but starts to fail
due to another bug (wkb.ug/139058).
* fast/css-grid-layout/grid-auto-columns-rows-update.html:
* fast/css-grid-layout/grid-content-sized-columns-resolution-expected.txt:
* fast/css-grid-layout/grid-content-sized-columns-resolution.html:
* fast/css-grid-layout/grid-grow-tracks-to-their-max-expected.txt: Added.
* fast/css-grid-layout/grid-grow-tracks-to-their-max.html: Added.
* fast/css-grid-layout/grid-item-removal-track-breadth-update.html:
* fast/css-grid-layout/minmax-max-content-resolution-rows.html:
* fast/css-grid-layout/minmax-min-content-column-resolution-rows.html:
* fast/css-grid-layout/percent-of-indefinite-track-size-in-auto.html:
* fast/css-grid-layout/percent-of-indefinite-track-size.html:

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

5 years agoFix build warning in WebKit2/UIProcess module.
commit-queue@webkit.org [Fri, 16 Jan 2015 08:12:00 +0000 (08:12 +0000)]
Fix build warning in WebKit2/UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=140538

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2015-01-16
Reviewed by Csaba Osztrogonác.

Fix build warnings by removing parameter name from functions

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::processWillOpenConnection):
(WebKit::StorageManager::processDidCloseConnection):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processWillOpenConnection):
(WebKit::WebProcessPool::processWillCloseConnection):

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

5 years agoRemove ENABLE(SQL_DATABASE) guards
ossy@webkit.org [Fri, 16 Jan 2015 08:05:12 +0000 (08:05 +0000)]
Remove ENABLE(SQL_DATABASE) guards
https://bugs.webkit.org/show_bug.cgi?id=140434

Reviewed by Darin Adler.

.:

* Source/cmake/OptionsMac.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* inspector/protocol/Database.json:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/ChangeVersionData.h:
* Modules/webdatabase/ChangeVersionWrapper.cpp:
* Modules/webdatabase/ChangeVersionWrapper.h:
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
* Modules/webdatabase/DOMWindowWebDatabase.h:
* Modules/webdatabase/DOMWindowWebDatabase.idl:
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/Database.h:
* Modules/webdatabase/Database.idl:
* Modules/webdatabase/DatabaseBackend.cpp:
* Modules/webdatabase/DatabaseBackend.h:
* Modules/webdatabase/DatabaseBackendBase.cpp:
* Modules/webdatabase/DatabaseBackendBase.h:
* Modules/webdatabase/DatabaseBasicTypes.h:
* Modules/webdatabase/DatabaseCallback.h:
* Modules/webdatabase/DatabaseCallback.idl:
* Modules/webdatabase/DatabaseContext.cpp:
* Modules/webdatabase/DatabaseContext.h:
* Modules/webdatabase/DatabaseDetails.h:
* Modules/webdatabase/DatabaseError.h:
* Modules/webdatabase/DatabaseManager.cpp:
* Modules/webdatabase/DatabaseManager.h:
* Modules/webdatabase/DatabaseManagerClient.h:
* Modules/webdatabase/DatabaseServer.cpp:
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseTask.cpp:
* Modules/webdatabase/DatabaseTask.h:
* Modules/webdatabase/DatabaseThread.cpp:
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/DatabaseTracker.cpp:
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/OriginLock.cpp:
* Modules/webdatabase/OriginLock.h:
* Modules/webdatabase/SQLCallbackWrapper.h:
* Modules/webdatabase/SQLError.h:
* Modules/webdatabase/SQLError.idl:
* Modules/webdatabase/SQLException.cpp:
* Modules/webdatabase/SQLException.h:
* Modules/webdatabase/SQLException.idl:
* Modules/webdatabase/SQLResultSet.cpp:
* Modules/webdatabase/SQLResultSet.h:
* Modules/webdatabase/SQLResultSet.idl:
* Modules/webdatabase/SQLResultSetRowList.cpp:
* Modules/webdatabase/SQLResultSetRowList.h:
* Modules/webdatabase/SQLResultSetRowList.idl:
* Modules/webdatabase/SQLStatement.cpp:
* Modules/webdatabase/SQLStatement.h:
* Modules/webdatabase/SQLStatementBackend.cpp:
* Modules/webdatabase/SQLStatementBackend.h:
* Modules/webdatabase/SQLStatementCallback.h:
* Modules/webdatabase/SQLStatementCallback.idl:
* Modules/webdatabase/SQLStatementErrorCallback.h:
* Modules/webdatabase/SQLStatementErrorCallback.idl:
* Modules/webdatabase/SQLTransaction.cpp:
* Modules/webdatabase/SQLTransaction.h:
* Modules/webdatabase/SQLTransaction.idl:
* Modules/webdatabase/SQLTransactionBackend.cpp:
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/webdatabase/SQLTransactionCallback.h:
* Modules/webdatabase/SQLTransactionCallback.idl:
* Modules/webdatabase/SQLTransactionClient.cpp:
* Modules/webdatabase/SQLTransactionClient.h:
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
* Modules/webdatabase/SQLTransactionCoordinator.h:
* Modules/webdatabase/SQLTransactionErrorCallback.h:
* Modules/webdatabase/SQLTransactionErrorCallback.idl:
* Modules/webdatabase/SQLTransactionState.h:
* Modules/webdatabase/SQLTransactionStateMachine.cpp:
* Modules/webdatabase/SQLTransactionStateMachine.h:
* bindings/js/JSCommandLineAPIHostCustom.cpp:
(WebCore::JSCommandLineAPIHost::databaseId):
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
* bindings/js/JSExceptionBase.cpp:
(WebCore::toExceptionBase):
* bindings/js/JSSQLResultSetRowListCustom.cpp:
* bindings/js/JSSQLTransactionCustom.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(webkit_dom_test_callback_finalize):
(webkit_dom_test_callback_constructor):
(webkit_dom_test_callback_callback_with_no_param):
(webkit_dom_test_callback_callback_with_array_param):
(webkit_dom_test_callback_callback_with_serialized_script_value_param):
(webkit_dom_test_callback_callback_with_non_bool_return_type):
(webkit_dom_test_callback_callback_with_string_list):
(webkit_dom_test_callback_callback_with_boolean):
(webkit_dom_test_callback_callback_requires_this_to_pass):
* bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
* bindings/scripts/test/JS/JSTestCallback.cpp:
* bindings/scripts/test/JS/JSTestCallback.h:
* bindings/scripts/test/ObjC/DOMTestCallback.mm:
* bindings/scripts/test/TestCallback.idl:
* dom/DOMExceptions.in:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::setDatabaseContext):
* dom/ScriptExecutionContext.h:
* history/PageCache.cpp:
(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):
* inspector/CommandLineAPIHost.cpp:
(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::disconnect):
(WebCore::CommandLineAPIHost::databaseIdImpl):
* inspector/CommandLineAPIHost.h:
(WebCore::CommandLineAPIHost::init):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDatabaseAgent.cpp:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDatabaseInstrumentation.h:
(WebCore::InspectorInstrumentation::didOpenDatabase):
* inspector/InspectorDatabaseResource.cpp:
* inspector/InspectorDatabaseResource.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
* inspector/InspectorInstrumentation.h:
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
* page/ChromeClient.h:
* platform/FeatureCounterKeys.h:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:
* Storage/WebDatabaseManager.mm:
(databasesDirectoryPath):
* Storage/WebDatabaseManagerClient.h:
* Storage/WebDatabaseManagerClient.mm:
* Storage/WebDatabaseManagerInternal.h:
* Storage/WebDatabaseManagerPrivate.h:
* Storage/WebDatabaseQuotaManager.mm:
(-[WebDatabaseQuotaManager usage]):
(-[WebDatabaseQuotaManager quota]):
(-[WebDatabaseQuotaManager setQuota:]):
* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
* WebCoreSupport/WebSecurityOrigin.mm:
(-[WebSecurityOrigin usage]):
(-[WebSecurityOrigin quota]):
(-[WebSecurityOrigin setQuota:]):
* WebView/WebFrame.mm:
(-[WebFrame _cacheabilityDictionary]):
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _preferencesChanged:]):

Source/WebKit/win:

* ForEachCoClass.h:
* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::exceededDatabaseQuota):
* WebCoreSupport/WebChromeClient.h:
* WebDatabaseManager.cpp:
(WebKitInitializeWebDatabasesIfNecessary):
* WebDatabaseManager.h:
* WebSecurityOrigin.cpp:
(WebSecurityOrigin::usage):
(WebSecurityOrigin::quota):
(WebSecurityOrigin::setQuota):
* WebView.cpp:
(WebView::initWithFrame):
(WebView::notifyPreferencesChanged):

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:
* Shared/OriginAndDatabases.cpp:
* Shared/OriginAndDatabases.h:
* Shared/WebCoreArgumentCoders.cpp:
* UIProcess/API/C/WKContext.cpp:
(WKContextGetDatabaseManager):
* UIProcess/API/C/WKDatabaseManager.cpp:
(WKDatabaseManagerGetTypeID):
(WKDatabaseManagerGetOriginKey):
(WKDatabaseManagerGetOriginQuotaKey):
(WKDatabaseManagerGetOriginUsageKey):
(WKDatabaseManagerGetDatabaseDetailsKey):
(WKDatabaseManagerGetDatabaseDetailsNameKey):
(WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
(WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
(WKDatabaseManagerGetDatabaseDetailsCreationTimeKey):
(WKDatabaseManagerGetDatabaseDetailsModificationTimeKey):
(WKDatabaseManagerSetClient):
(WKDatabaseManagerGetDatabasesByOrigin):
(WKDatabaseManagerGetDatabaseOrigins):
(WKDatabaseManagerDeleteDatabasesWithNameForOrigin):
(WKDatabaseManagerDeleteDatabasesForOrigin):
(WKDatabaseManagerDeleteAllDatabases):
(WKDatabaseManagerSetQuotaForOrigin):
* UIProcess/API/efl/EwkView.cpp:
(EwkView::informDatabaseQuotaReached):
* UIProcess/WebDatabaseManagerProxy.cpp:
* UIProcess/WebDatabaseManagerProxy.h:
* UIProcess/WebDatabaseManagerProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
* UIProcess/efl/PageUIClientEfl.cpp:
(WebKit::PageUIClientEfl::PageUIClientEfl):
(WebKit::PageUIClientEfl::exceededDatabaseQuota):
* UIProcess/efl/PageUIClientEfl.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::clearAllDatabases):
(WebKit::InjectedBundle::setDatabaseQuota):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
* WebProcess/WebCoreSupport/WebDatabaseManager.messages.in:
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp:
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

* Scripts/webkitperl/FeatureList.pm:

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

5 years agoElement appears correctly but does not receive event with a large translation.
zalan@apple.com [Fri, 16 Jan 2015 06:13:45 +0000 (06:13 +0000)]
Element appears correctly but does not receive event with a large translation.
https://bugs.webkit.org/show_bug.cgi?id=139815

Reviewed by Simon Fraser.

When the hit point gets translated beyond the min/max value of LayoutRect (infiniteRect()),
we fail to find the corresponding layer.
When there's no clipping on a layer, we use min/max values to represent infiniteness.
However it does not work well across types. With IntPoint(hittest) we can address a point that's outside
of LayoutRect's boundary(clipping).
This patch addresses the immediate issue of not being able to hittest transformed layers properly.
Fixing the representation of infiniteness is tracked here: webkit.org/b/140533
Source/WebCore:

Test: transforms/hittest-translated-content-off-to-infinity-and-back.html

* rendering/ClipRect.cpp:
(WebCore::ClipRect::intersects):

LayoutTests:

* transforms/hittest-translated-content-off-to-infinity-and-back-expected.html: Added.
* transforms/hittest-translated-content-off-to-infinity-and-back.html: Added.

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

5 years agotables/mozilla/bugs/bug10633.html is flakey on Yosemite
mmaxfield@apple.com [Fri, 16 Jan 2015 05:55:05 +0000 (05:55 +0000)]
tables/mozilla/bugs/bug10633.html is flakey on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=140487

Reviewed by Simon Fraser.

Source/WebCore:

The workaround in https://bugs.webkit.org/show_bug.cgi?id=140253 works
on both OSes.

* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit):

LayoutTests:

Mark tests as not flakey any more.

* platform/mac/TestExpectations:

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

5 years agoWeb Inspector: Uncaught exceptions, attempting to dispatch unimplemented Network...
commit-queue@webkit.org [Fri, 16 Jan 2015 04:23:31 +0000 (04:23 +0000)]
Web Inspector: Uncaught exceptions, attempting to dispatch unimplemented Network WebSocket methods
https://bugs.webkit.org/show_bug.cgi?id=140532

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

* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.webSocketFrameReceived):
(WebInspector.NetworkObserver.prototype.webSocketFrameError):
(WebInspector.NetworkObserver.prototype.webSocketFrameSent):
Add stubs to prevent an exception when trying to dispatch the event.

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

5 years agoRemoving an HTML element spends a lot of time in adjustDirectionalityIfNeededAfterChi...
rniwa@webkit.org [Fri, 16 Jan 2015 03:45:01 +0000 (03:45 +0000)]
Removing an HTML element spends a lot of time in adjustDirectionalityIfNeededAfterChildrenChanged
https://bugs.webkit.org/show_bug.cgi?id=140523
<rdar://problem/19464329>

Reviewed by Chris Dumez.

The bug was caused by adjustDirectionalityIfNeededAfterChildrenChanged always traversing children to
unset selfOrAncestorHasDirAutoAttribute flag while removing a child element.

Fixed the bug by removing this code. This code was no-op prior to being refactored in r154957 since
we only entered a for loop with the invariant "counter < childCountDelta" when "childCountDelta < 0".

See http://trac.webkit.org/changeset/154957/trunk/Source/WebCore/html/HTMLElement.cpp.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):

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

5 years ago[iOS] REGRESSION (r174642): DumpRenderTree.app test may dump result twice
dbates@webkit.org [Fri, 16 Jan 2015 03:29:13 +0000 (03:29 +0000)]
[iOS] REGRESSION (r174642): DumpRenderTree.app test may dump result twice
https://bugs.webkit.org/show_bug.cgi?id=139685
<rdar://problem/19281317>

Reviewed by Simon Fraser.

Fixes an issue where a test in DumpRenderTree.app may dump its result twice. In particular,
the test LayoutTests/fast/dom/gc-10.html may dump its result twice.

Following <http://trac.webkit.org/changeset/174642>, we dump the test result asynchronously
as opposed to synchronously. So, the WebThread or the main thread may perform other tasks
before DRT dumps the output of a test. In particular, the WebThread may start a new page
load (say, as a result of continued JavaScript execution), which will ultimately lead to
dumping the test result again. Instead we want DRT to dump the test result synchronously
such that we capture the state of the web page either when the page is loaded or when
window.testRunner.notifyDone() is called.

* DumpRenderTree/ios/PixelDumpSupportIOS.mm:
(createBitmapContextFromWebView): Moved logic to re-enable tile painting and update the
state of the display from here to updateDisplay(). Added call to -[CATransaction flush] to
flush CA transactions to the window.
* DumpRenderTree/mac/DumpRenderTree.mm:
(updateDisplay): Added iOS-specific code to update tiles and tell WebKit to flush
compositing changes to ensure that we have up-to-date tile content for a pixel/ref-test.
(dump): Renamed; formerly named dumpTestResults().
(displayWebView): Removed outdated FIXME comment. Added FIXME comment to investigate
enabling repaint support on iOS.
(-[DumpRenderTree _deferDumpToMainThread]): Deleted.
(-[DumpRenderTree _waitForWebThreadThenDump]): Deleted.
(dumpTestResults): Deleted.

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

5 years agoWeb Inspector: Reopening the inspector can selects a sub-frame instead of the Main...
commit-queue@webkit.org [Fri, 16 Jan 2015 02:53:06 +0000 (02:53 +0000)]
Web Inspector: Reopening the inspector can selects a sub-frame instead of the Main Frame's DOM
https://bugs.webkit.org/show_bug.cgi?id=140513

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

* UserInterface/Models/Frame.js:
(WebInspector.Frame.prototype.saveIdentityToCookie):
Specifically identify the main frame, so that any sub-frames with the same
URL, don't get choosen over the main frame when restoring state from cookie.

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

5 years agoRenderLayerCompositor: Strange comparison of opacity (float) to boolean.
bfulgham@apple.com [Fri, 16 Jan 2015 02:18:42 +0000 (02:18 +0000)]
RenderLayerCompositor: Strange comparison of opacity (float) to boolean.
https://bugs.webkit.org/show_bug.cgi?id=140477.

Reviewed by Simon Fraser.

* rendering/RenderLayerCompositor.cpp:
(WebCore::styleChangeRequiresLayerRebuild): Add a cast to make the meaning of this
code clearer.

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

5 years agoAdd a connection parameter to StorageManager willOpen/didClose functions
andersca@apple.com [Fri, 16 Jan 2015 02:07:08 +0000 (02:07 +0000)]
Add a connection parameter to StorageManager willOpen/didClose functions
https://bugs.webkit.org/show_bug.cgi?id=140527

Reviewed by Tim Horton.

Rename processWillCloseConnection to processDidCloseConnection and pass connections
to both functions since in the near future we won't be able to get the connection from
the web process proxy in these scenarios.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::processWillOpenConnection):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::processWillCloseConnection): Deleted.
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::webProcessWillOpenConnection):
(WebKit::WebsiteDataStore::webProcessDidCloseConnection):

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

5 years ago[Win] Unreviewed Windows gardening.
bfulgham@apple.com [Fri, 16 Jan 2015 02:01:17 +0000 (02:01 +0000)]
[Win] Unreviewed Windows gardening.

Remove a bunch of out-of-date entries, and try to properly mark tests so we get
proper coverage.

* platform/win-xp/TestExpectations:
* platform/win/TestExpectations:

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

5 years agoUnreviewed, rolling out r178531.
joepeck@webkit.org [Fri, 16 Jan 2015 01:59:07 +0000 (01:59 +0000)]
Unreviewed, rolling out r178531.

Caused LayoutTest ASSERTs/CRASHs on Debug Yosemite build-bot.

Reverted changeset:

"Layers need to be already updated before we call adjustViewSize."
https://bugs.webkit.org/show_bug.cgi?id=135514
http://trac.webkit.org/changeset/178531

* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::updateCompositingLayersAfterScrolling):
(WebCore::FrameView::paintContents):
(WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange): Deleted.
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollTo):
(WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange): Deleted.
* platform/ScrollView.h:
(WebCore::ScrollView::shouldDeferScrollUpdateAfterContentSizeChange): Deleted.

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

5 years ago[WK2] Wire diagnostic logging messages through the UIProcess
cdumez@apple.com [Fri, 16 Jan 2015 01:07:32 +0000 (01:07 +0000)]
[WK2] Wire diagnostic logging messages through the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=140486

Reviewed by Sam Weinig.

Wire diagnostic logging messages through the UIProcess.
Eventually, the corresponding bundle API should go away.

Source/WebCore:

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Add page/DiagnosticLoggingResultType.h to Windows project.

* WebCore.xcodeproj/project.pbxproj:
Add page/DiagnosticLoggingResultType.h to XCode project.

* html/HTMLMediaElement.cpp:
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
* page/DiagnosticLoggingClient.h:
* page/DiagnosticLoggingResultType.h: Copied from Source/WebCore/page/DiagnosticLoggingClient.h.
Use new DiagnosticLoggingResultType enum instead of old
DiagnosticLoggingClient::LogType one.

Source/WebKit2:

* CMakeLists.txt:
Add UIProcess/WebPageDiagnosticLoggingClient.cpp to CMake.

* Shared/API/c/WKDiagnosticLoggingResultType.h:
Extract WKDiagnosticLoggingResultType enumeration from
WKBundlePageDiagnosticLoggingClient.h into its own header so that
it can be shared with the new WKPageDiagnosticLoggingClient.h.

* Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toDiagnosticLoggingResultType):
Add WebCore::DiagnosticLoggingResultType <-> WKDiagnosticLoggingResultType
casting functions.

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageDiagnosticLoggingClient):
* UIProcess/API/C/WKPage.h:
Add WKPage API so that the application can set the DiagnosticLoggingClient.

* UIProcess/API/C/WKPageDiagnosticLoggingClient.h: Added.
New WK2 diagnostic logging client that will eventually replace the existing
WKBundlePageDiagnosticLoggingClient.h injected bundle client.

* UIProcess/WebPageDiagnosticLoggingClient.cpp: Copied from Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp.
* UIProcess/WebPageDiagnosticLoggingClient.h: Copied from Source/WebCore/page/DiagnosticLoggingClient.h.
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPageProxy.h:
Handle new IPC messages for logging diagnostic messages.

* UIProcess/WebPageProxy.messages.in:
Add 3 IPC messages for logging diagnostic messages.

* WebKit2.xcodeproj/project.pbxproj:
Add new files to XCode project.

* WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h:
Remove WKDiagnosticLoggingResultType enum as it was moved to its own
header.

* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
* WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h:
Use WebCore::DiagnosticLoggingResultType enum type instead of
WKDiagnosticLoggingResultType and call toAPI() to convert to
WKDiagnosticLoggingResultType type.

* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
Send IPC to WebPageProxy in addition to calling the injected bundle client.

* WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
Use new DiagnosticLoggingResultType enum instead of the old LogType one.

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

5 years agoWeb Inspector: selecting Paint timeline records from sidebar does not trigger preview...
joepeck@webkit.org [Fri, 16 Jan 2015 01:00:23 +0000 (01:00 +0000)]
Web Inspector: selecting Paint timeline records from sidebar does not trigger preview of paint quad
https://bugs.webkit.org/show_bug.cgi?id=139151

Reviewed by Brian Burg.

* UserInterface/Views/LayoutTimelineDataGrid.js:
(WebInspector.LayoutTimelineDataGrid):
(WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
(WebInspector.LayoutTimelineDataGrid.prototype.reset): Deleted.
(WebInspector.LayoutTimelineDataGrid.prototype.hidden): Deleted.
(WebInspector.LayoutTimelineDataGrid.prototype._layoutDataGridSelectedNodeChanged): Deleted.
(WebInspector.LayoutTimelineDataGrid.prototype._hideHighlightIfNeeded): Deleted.
Move the node highlight from the datagrid to the timeline view because
we want this to happen on both the Navigation sidebar and the datagrid.

* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView.prototype.shown):
(WebInspector.LayoutTimelineView.prototype.hidden):
(WebInspector.LayoutTimelineView.prototype.filterDidChange):
(WebInspector.LayoutTimelineView.prototype.reset):
(WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
(WebInspector.LayoutTimelineView.prototype._treeElementSelected):
Update the highlight for major view updates.

(WebInspector.LayoutTimelineView.prototype._updateHighlight):
(WebInspector.LayoutTimelineView.prototype._showHighlightForRecord):
(WebInspector.LayoutTimelineView.prototype._hideHighlightIfNeeded):
(WebInspector.LayoutTimelineView.prototype._hoveredOrSelectedRecord):
Show a highlight for what we are hovering, or what is selected.
Note the selected node may not be visible due to filtering.

(WebInspector.LayoutTimelineView.prototype._mouseOverDataGrid):
(WebInspector.LayoutTimelineView.prototype._mouseLeaveDataGrid):
(WebInspector.LayoutTimelineView.prototype._mouseOverTreeOutline):
(WebInspector.LayoutTimelineView.prototype._mouseLeaveTreeOutline):
Update hovered information mousing over the datagrid and tree outline.

* UserInterface/Views/TimelineContentView.js:
(WebInspector.TimelineContentView.prototype.filterDidChange):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.updateFilter):
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.filterDidChange):
Include a "filterDidChange" TimelineView method that gets called after
updateFilter (things like the filter bar or timeline range changes).

* UserInterface/Views/TreeOutline.js:
(TreeOutline.prototype.treeElementFromNode):
(TreeOutline.prototype.treeElementFromPoint):
Provide a helper to get a tree element from an event target.

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

5 years agoReduce LayoutRect::infiniteRect() usage.
zalan@apple.com [Fri, 16 Jan 2015 00:11:27 +0000 (00:11 +0000)]
Reduce LayoutRect::infiniteRect() usage.
https://bugs.webkit.org/show_bug.cgi?id=140511

Reviewed by Simon Fraser.

This is in preparation to get rid of LayoutRect/FloatRect::infiniteRect().

No change in functionality.

* platform/graphics/LayoutRect.h:
(WebCore::LayoutRect::isInfinite):
* rendering/ClipRect.h:
(WebCore::ClipRect::reset):
(WebCore::ClipRect::isEmpty):
(WebCore::ClipRect::isInfinite):
(WebCore::ClipRect::setRect): Deleted.
* rendering/PaintInfo.h:
(WebCore::PaintInfo::applyTransform):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
(WebCore::ClipRects::reset):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::clippedByAncestor):

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

5 years agoAdded availability annotations to modern Cocoa SPI.
mitz@apple.com [Fri, 16 Jan 2015 00:06:22 +0000 (00:06 +0000)]
Added availability annotations to modern Cocoa SPI.

Rubber-stamped by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebViewPrivate.h:

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

5 years agoFix assertions on the Mountain Lion bots.
andersca@apple.com [Fri, 16 Jan 2015 00:01:16 +0000 (00:01 +0000)]
Fix assertions on the Mountain Lion bots.

It is allowed to call addWorkQueueMessageReceiver even if the connection is open
so remove that assertion.

* Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):

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

5 years agoUnreviewed build fix after r178536.
joepeck@webkit.org [Thu, 15 Jan 2015 23:58:34 +0000 (23:58 +0000)]
Unreviewed build fix after r178536.

Initialize member variables in the proper order.

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

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

5 years agoIntermittent WebCore build failures - CSSPropertyNames.gperf: No keywords in input...
cdumez@apple.com [Thu, 15 Jan 2015 23:57:34 +0000 (23:57 +0000)]
Intermittent WebCore build failures - CSSPropertyNames.gperf: No keywords in input file! calling gperf failed: 256 at WebCore/css/makeprop.pl line 901
https://bugs.webkit.org/show_bug.cgi?id=140521

Reviewed by Alexey Proskuryakov.

Close the CSSPropertyNames.gperf file before calling gperf on it
to make sure the content we wrote was flushed. This was causing
intermittent build failures.

* css/makeprop.pl:

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

5 years ago[WK2] Add support for fully editable WKWebView.
enrica@apple.com [Thu, 15 Jan 2015 23:42:11 +0000 (23:42 +0000)]
[WK2] Add support for fully editable WKWebView.
https://bugs.webkit.org/show_bug.cgi?id=140515

Reviewed by Anders Carlsson.

WKWebView has now a new property (_editable) to control
the editability of the entire content.

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isEditable]):
(-[WKWebView _setEditable:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setEditable):
(WebKit::WebPageProxy::creationParameters):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isEditable):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setEditable):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

5 years agoUpdate Mountain Lion results for fast/canvas/webgl/angle-instanced-arrays.html
ap@apple.com [Thu, 15 Jan 2015 23:16:18 +0000 (23:16 +0000)]
Update Mountain Lion results for fast/canvas/webgl/angle-instanced-arrays.html
after r178527.

* platform/mac-mountainlion/fast/canvas/webgl/angle-instanced-arrays-expected.txt:

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

5 years agoLayerFragment should be able to intersect with ClipRect.
zalan@apple.com [Thu, 15 Jan 2015 23:15:35 +0000 (23:15 +0000)]
LayerFragment should be able to intersect with ClipRect.
https://bugs.webkit.org/show_bug.cgi?id=140498

Reviewed by Simon Fraser.

No change in functionality.

* rendering/LayerFragment.h:
(WebCore::LayerFragment::intersect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::collectFragments):

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

5 years agoMove ClipRects and ClipRectsCache classes to RenderLayer.cpp.
zalan@apple.com [Thu, 15 Jan 2015 23:13:38 +0000 (23:13 +0000)]
Move ClipRects and ClipRectsCache classes to RenderLayer.cpp.
https://bugs.webkit.org/show_bug.cgi?id=140461

Reviewed by Simon Fraser.

Move classes only used by RenderLayer to RenderLayer.cpp.

No change in functionality.

* rendering/RenderLayer.cpp:
(WebCore::ClipRects::create):
(WebCore::ClipRects::reset):
(WebCore::ClipRects::overflowClipRect):
(WebCore::ClipRects::setOverflowClipRect):
(WebCore::ClipRects::fixedClipRect):
(WebCore::ClipRects::setFixedClipRect):
(WebCore::ClipRects::posClipRect):
(WebCore::ClipRects::setPosClipRect):
(WebCore::ClipRects::fixed):
(WebCore::ClipRects::setFixed):
(WebCore::ClipRects::ref):
(WebCore::ClipRects::deref):
(WebCore::ClipRects::operator==):
(WebCore::ClipRects::operator=):
(WebCore::ClipRects::ClipRects):
(WebCore::ClipRectsCache::ClipRectsCache):
(WebCore::ClipRectsCache::getClipRects):
(WebCore::ClipRectsCache::setClipRects):
(WebCore::ClipRectsCache::getIndex):
(WebCore::RenderLayer::clipRects):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
(WebCore::ClipRects::create): Deleted.
(WebCore::ClipRects::ClipRects): Deleted.
(WebCore::ClipRects::reset): Deleted.
(WebCore::ClipRects::overflowClipRect): Deleted.
(WebCore::ClipRects::setOverflowClipRect): Deleted.
(WebCore::ClipRects::fixedClipRect): Deleted.
(WebCore::ClipRects::setFixedClipRect): Deleted.
(WebCore::ClipRects::posClipRect): Deleted.
(WebCore::ClipRects::setPosClipRect): Deleted.
(WebCore::ClipRects::fixed): Deleted.
(WebCore::ClipRects::setFixed): Deleted.
(WebCore::ClipRects::ref): Deleted.
(WebCore::ClipRects::deref): Deleted.
(WebCore::ClipRects::operator==): Deleted.
(WebCore::ClipRects::operator=): Deleted.
(WebCore::ClipRectsCache::ClipRectsCache): Deleted.
(WebCore::ClipRectsCache::getClipRects): Deleted.
(WebCore::ClipRectsCache::setClipRects): Deleted.
(WebCore::ClipRectsCache::getIndex): Deleted.

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

5 years agoCanonicalization of :lang() should preserve the :lang()'s arguments representations
commit-queue@webkit.org [Thu, 15 Jan 2015 22:52:30 +0000 (22:52 +0000)]
Canonicalization of :lang() should preserve the :lang()'s arguments representations
https://bugs.webkit.org/show_bug.cgi?id=139928

Patch by Dhi Aurrahman <diorahman@rockybars.com> on 2015-01-15
Reviewed by Benjamin Poulain.

Source/WebCore:

Preserve the representation of IDENT and STRING when serializing the
:lang(). For example, :lang(foo,"bar"   ,baz) should be serialized as
:lang(foo, "bar", baz) instead of :lang(foo, bar, baz).

Rename CSSParserSelector::setArgumentList, CSSSelector::setArgumentList
and CSSSelector::argumentList to CSSParserSelector::setLangArgumentList,
CSSSelector::setLangArgumentList and CSSSelector::langArgumentList
respectively, since those methods are being exclusively used in respect
with :lang().

Update the test of serializing :lang() with IDENT and STRING arguments.

* css/CSSGrammar.y.in:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::setLangArgumentList):
(WebCore::CSSParserSelector::setArgumentList): Deleted.
* css/CSSParserValues.h:
(WebCore::CSSParserString::init):
(WebCore::CSSParserString::clear):
(WebCore::CSSParserString::isParsedFromString):
(WebCore::CSSParserString::setParsedFromString):
* css/CSSSelector.cpp:
(WebCore::appendLangArgumentList):
(WebCore::CSSSelector::selectorText):
(WebCore::CSSSelector::setLangArgumentList):
(WebCore::appendArgumentList): Deleted.
(WebCore::CSSSelector::setArgumentList): Deleted.
* css/CSSSelector.h:
(WebCore::CSSSelector::langArgumentList):
(WebCore::CSSSelector::langArgumentParsedFromStringFlagList):
(WebCore::CSSSelector::argumentList): Deleted.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):

LayoutTests:

* fast/css/css-lang-selector-with-string-arguments-text-expected.txt: Updated.
* fast/css/css-lang-selector-with-string-arguments-text.html: Updated.

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

5 years agoLayers need to be already updated before we call adjustViewSize
bfulgham@apple.com [Thu, 15 Jan 2015 22:51:12 +0000 (22:51 +0000)]
Layers need to be already updated before we call adjustViewSize
https://bugs.webkit.org/show_bug.cgi?id=135514

Reviewed by Simon Fraser.

Tested by 'fast/dynamic/layer-no-longer-paginated.html'

Defer updating scrollbars until we have finished layout. This
has a couple of benefits:
(1) We do not attempt to modify render layers during layout.
(2) In WK1 we do not attempt to paint during layout.

Add a new virtual predicate to ScrollView indicating when we are in
layout so that calls to setContentsSize do not attempt
to adjust scrollbars.

Modify FrameView to set its ScrollView state to block drawing
scrollbar updates during layout. Also add a post-layout
handler to complete the scrollbar updates after layout is
finished.

* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange): Added.
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange): Added.
(WebCore::ScrollView::scrollTo): If we should defer painting, cache the
the scroll delta and apply it after the layout is complete.
* platform/ScrollView.h:
(WebCore::ScrollView::shouldDeferScrollUpdateAfterContentSizeChange): Added.

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

5 years ago[Win] Miscellaneous DRT fixes
bfulgham@apple.com [Thu, 15 Jan 2015 22:49:26 +0000 (22:49 +0000)]
[Win] Miscellaneous DRT fixes
https://bugs.webkit.org/show_bug.cgi?id=116562

Reviewed by Tim Horton.

While investigating the cause of several Windows crashes, I found:
(1) Messy conversions to and from BSTR types
(2) Weird mixes of wide-string and narrow string conversions
(3) Passing nullptr to some CoreFoundation routines that do not
    permit null arguments.
(4) Commands to link the executable to the VS2005 runtime.

This patch cleans up these issues to improve DRT reliability on
Windows.

* DumpRenderTree/cg/ImageDiffCG.cpp:
(main): Get rid of VS2005 runtime linking.
* DumpRenderTree/win/DumpRenderTree.cpp:
(urlSuitableForTestResult): Protect against being asked
to process an empty URL.
(dumpHistoryItem): Do BSTR string building using _bstr_t, rather
than converting to/from wchar_t buffers.
(runTest): Simplify string and BSTR handling.
(createWebViewAndOffscreenWindow): Ditto.
(main): Get rid of VS2005 runtime linking.
* DumpRenderTree/win/TestRunnerWin.cpp:
(jsStringRefToWString): Simplify code.
(TestRunner::pathToLocalResource):
(TestRunner::setUserStyleSheetLocation):
* TestWebKitAPI/win/main.cpp: Get rid of
VS2005 runtime linking.
* win/DLLLauncher/DLLLauncherMain.cpp:
(wWinMain): Ditto.

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

5 years agoWhen building the NFA of the global disjunction, share the prefix subgraph of existin...
benjamin@webkit.org [Thu, 15 Jan 2015 22:19:40 +0000 (22:19 +0000)]
When building the NFA of the global disjunction, share the prefix subgraph of existing subpatterns
https://bugs.webkit.org/show_bug.cgi?id=140465

Reviewed by Andreas Kling.

This patch updates the parser to produce smaller graphs when multiple patterns
of the rule list share a common prefix.

Previously, GraphBuilder would generate subgraph in place of each parsed
atom. We now only create subgraph if an atom does not appear in the prefix tree.

We accumulate the parsing information into small uint16_t named TrivialAtom.
When generating the subgraph for an new atom, we first check if the prefix tree already
has a corresponding subgraph for that atom. If it does, we do not generate anything and we extend the existing
graph. If there is no existing prefix, we create the subgraph and extend the prefix tree.

Sharing prefix subtrees slows down the subtree generation a bit but the resulting graph is much
simpler for many kind of inputs.

* WebCore.xcodeproj/project.pbxproj:
* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::setRuleList):
The URLFilterParser now maintains states (the prefix tree) between patterns.

* contentextensions/DFA.cpp:
(WebCore::ContentExtensions::DFA::debugPrintDot):
* contentextensions/DFANode.h:
Fix a typo :)

* contentextensions/NFA.cpp:
(WebCore::ContentExtensions::NFA::createNode):
(WebCore::ContentExtensions::NFA::setFinal):
(WebCore::ContentExtensions::NFA::restoreToGraphSize):
(WebCore::ContentExtensions::NFA::addRuleId):
(WebCore::ContentExtensions::NFA::debugPrintDot):
* contentextensions/NFA.h:
(WebCore::ContentExtensions::NFA::addRuleId):
* contentextensions/NFANode.cpp: Removed.
* contentextensions/NFANode.h:
NFA nodes from two patterns are now "merged" by construction, thus we need
to keep track of multiple rules per node.

* contentextensions/NFAToDFA.cpp:
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate):
* contentextensions/URLFilterParser.cpp:
(WebCore::ContentExtensions::trivialAtomFromAsciiCharacter):
(WebCore::ContentExtensions::quantifyTrivialAtom):
(WebCore::ContentExtensions::trivialAtomForNewlineClassIDBuiltin):
(WebCore::ContentExtensions::GraphBuilder::GraphBuilder):
(WebCore::ContentExtensions::GraphBuilder::m_LastPrefixTreeEntry):
(WebCore::ContentExtensions::GraphBuilder::finalize):
(WebCore::ContentExtensions::GraphBuilder::atomPatternCharacter):
(WebCore::ContentExtensions::GraphBuilder::atomBuiltInCharacterClass):
(WebCore::ContentExtensions::GraphBuilder::quantifyAtom):
(WebCore::ContentExtensions::GraphBuilder::fail):
(WebCore::ContentExtensions::GraphBuilder::generateTransition):
(WebCore::ContentExtensions::GraphBuilder::sinkTrivialAtom):
(WebCore::ContentExtensions::GraphBuilder::sinkPendingAtomIfNecessary):
(WebCore::ContentExtensions::URLFilterParser::URLFilterParser):
(WebCore::ContentExtensions::URLFilterParser::addPattern):
(WebCore::ContentExtensions::GraphBuilder::m_lastAtom): Deleted.
(WebCore::ContentExtensions::URLFilterParser::parse): Deleted.
* contentextensions/URLFilterParser.h:
(WebCore::ContentExtensions::URLFilterParser::hasError): Deleted.
(WebCore::ContentExtensions::URLFilterParser::errorMessage): Deleted.

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

5 years agoStop hardcoding mac-mountainlion in commit queue
ap@apple.com [Thu, 15 Jan 2015 22:14:50 +0000 (22:14 +0000)]
Stop hardcoding mac-mountainlion in commit queue
https://bugs.webkit.org/show_bug.cgi?id=140492

Reviewed by Anders Carlsson.

Use "mac", not "mac-<platform>". This matches how EWS queues are initialized, and
there should be no change in behavior, because:
1. PatchProcessingQueue converts the name with _new_port_name_from_old() before
using it to create a port object.
2. Although it doesn't convert the name before using DeprecatedPort.port(), it
is actually correct to use "mac" for the name there. We only used to get the expected
behavior with "mac-mountainlion" accidentally, because of a fallback to "mac"
for unknown deprecated port names.

* Scripts/webkitpy/tool/commands/queues.py: (CommitQueue):

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

5 years agoWeb Inspector and regular console use different source code locations for messages
ap@apple.com [Thu, 15 Jan 2015 21:52:11 +0000 (21:52 +0000)]
Web Inspector and regular console use different source code locations for messages
https://bugs.webkit.org/show_bug.cgi?id=140478

Reviewed by Brian Burg.

Source/JavaScriptCore:

* inspector/ConsoleMessage.h: Expose computed source location.

* inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::addMessageToConsole):
(Inspector::InspectorConsoleAgent::stopTiming):
(Inspector::InspectorConsoleAgent::count):
* inspector/agents/InspectorConsoleAgent.h:
addMessageToConsole() now takes a pre-made ConsoleMessage object.

* inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
(Inspector::JSGlobalObjectConsoleClient::warnUnimplemented):
* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
* inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
(Inspector::JSGlobalObjectDebuggerAgent::breakpointActionLog):
Updated for the above changes.

Source/WebCore:

We now create a ConsoleMessage object in a place where we can look at it and use
the source location it computed in a client call.

* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
* inspector/InspectorInstrumentation.h:
* inspector/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::didFinishXHRLoading):
(WebCore::WebConsoleAgent::didReceiveResponse):
(WebCore::WebConsoleAgent::didFailLoading):
* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
(WebCore::PageConsoleClient::messageWithTypeAndLevel):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addMessageToWorkerConsole):

LayoutTests:

A lot of tests now get line numbers in console messages. These lines are calculated
by Inspector::ConsoleMessage based on JavaScript call stack.

One note of interest is that DumpRenderTree only dumps the line, which can be
confusing if it is a line in a subresource. We can change the format in a separate
patch one day.

* http/tests/security/drag-drop-local-file-expected.txt:
* platform/wk2/http/tests/security/drag-drop-local-file-expected.txt:
With WebKit1, a console message is logged when EventSender releases the mouse button,
and with WebKit2, it is logged on hover. This is not quite expected, but probably
not too harmful. In any case, it's not a new problem introduced by this patch.

* http/tests/security/xss-DENIED-iframe-src-alias.html:
* http/tests/security/xss-DENIED-iframe-src-alias-expected.txt:
Run the subtests sequentially to ensure consistent order of results.

* animations/change-keyframes-expected.txt:
* crypto/subtle/unwrapKey-check-usage-expected.txt:
* crypto/subtle/wrapKey-check-usage-expected.txt:
* fast/canvas/webgl/angle-instanced-arrays-expected.txt:
* fast/canvas/webgl/angle-instanced-arrays-out-of-bounds-expected.txt:
* fast/canvas/webgl/oes-texture-float-linear-expected.txt:
* fast/canvas/webgl/oes-texture-half-float-expected.txt:
* fast/canvas/webgl/oes-texture-half-float-linear-expected.txt:
* fast/dom/Window/open-invalid-url-expected.txt:
* fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent-expected.txt:
* fast/forms/interactive-validation-prevented-expected.txt:
* fast/frames/sandboxed-iframe-attribute-parsing-01-expected.txt:
* fast/frames/sandboxed-iframe-attribute-parsing-02-expected.txt:
* fast/frames/sandboxed-iframe-attribute-parsing-03-expected.txt:
* fast/frames/sandboxed-iframe-attribute-parsing-04-expected.txt:
* fast/frames/sandboxed-iframe-attribute-parsing-05-expected.txt:
* fast/frames/sandboxed-iframe-close-top-noclose-expected.txt:
* fast/frames/sandboxed-iframe-forms-dynamic-expected.txt:
* fast/frames/sandboxed-iframe-forms-expected.txt:
* fast/frames/sandboxed-iframe-history-denied-expected.txt:
* fast/frames/sandboxed-iframe-navigation-targetlink-expected.txt:
* fast/frames/sandboxed-iframe-navigation-top-by-name-denied-expected.txt:
* fast/frames/sandboxed-iframe-navigation-windowopen-expected.txt:
* fast/frames/sandboxed-iframe-parsing-space-characters-expected.txt:
* fast/loader/page-dismissal-modal-dialogs-expected.txt:
* fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
* fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request-expected.txt:
* fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request-expected.txt:
* fast/xmlhttprequest/xmlhttprequest-sync-disabled-expected.txt:
* fast/xpath/nsresolver-bad-object-expected.txt:
* html5lib/generated/run-tests11-write-expected.txt:
* http/tests/appcache/abort-cache-onchecking-expected.txt:
* http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
* http/tests/appcache/abort-cache-onchecking-resource-404-expected.txt:
* http/tests/appcache/abort-cache-ondownloading-expected.txt:
* http/tests/appcache/abort-cache-ondownloading-resource-404-expected.txt:
* http/tests/appcache/abort-cache-onprogress-expected.txt:
* http/tests/appcache/local-content-expected.txt:
* http/tests/canvas/philip/tests/security.drawImage.canvas-expected.txt:
* http/tests/canvas/philip/tests/security.drawImage.image-expected.txt:
* http/tests/canvas/philip/tests/security.pattern.canvas.fillStyle-expected.txt:
* http/tests/canvas/philip/tests/security.pattern.canvas.strokeStyle-expected.txt:
* http/tests/canvas/philip/tests/security.pattern.cross-expected.txt:
* http/tests/canvas/philip/tests/security.pattern.image.fillStyle-expected.txt:
* http/tests/canvas/philip/tests/security.pattern.image.strokeStyle-expected.txt:
* http/tests/history/cross-origin-replace-history-object-child-expected.txt:
* http/tests/history/cross-origin-replace-history-object-expected.txt:
* http/tests/inspector-protocol/access-inspected-object-expected.txt:
* http/tests/misc/image-blocked-src-no-change-expected.txt:
* http/tests/misc/unloadable-script-expected.txt:
* http/tests/plugins/cross-frame-object-access-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
* http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
* http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
* http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
* http/tests/security/canvas-remote-read-redirect-to-remote-image-expected.txt:
* http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin-expected.txt:
* http/tests/security/canvas-remote-read-remote-image-blocked-then-allowed-expected.txt:
* http/tests/security/canvas-remote-read-remote-image-expected.txt:
* http/tests/security/canvas-remote-read-remote-image-redirect-expected.txt:
* http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-blocked-expected.txt:
* http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-blocked-expected.txt:
* http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-expected.txt:
* http/tests/security/contentSecurityPolicy/sandbox-in-http-header-expected.txt:
* http/tests/security/cross-frame-access-call-expected.txt:
* http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt:
* http/tests/security/cross-frame-access-child-explicit-domain-expected.txt:
* http/tests/security/cross-frame-access-custom-expected.txt:
* http/tests/security/cross-frame-access-delete-expected.txt:
* http/tests/security/cross-frame-access-enumeration-expected.txt:
* http/tests/security/cross-frame-access-first-time-expected.txt:
* http/tests/security/cross-frame-access-frameelement-expected.txt:
* http/tests/security/cross-frame-access-get-custom-property-cached-expected.txt:
* http/tests/security/cross-frame-access-get-expected.txt:
* http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt:
* http/tests/security/cross-frame-access-history-get-expected.txt:
* http/tests/security/cross-frame-access-history-put-expected.txt:
* http/tests/security/cross-frame-access-location-get-expected.txt:
* http/tests/security/cross-frame-access-location-put-expected.txt:
* http/tests/security/cross-frame-access-name-getter-expected.txt:
* http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
* http/tests/security/cross-frame-access-object-prototype-expected.txt:
* http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt:
* http/tests/security/cross-frame-access-port-expected.txt:
* http/tests/security/cross-frame-access-protocol-expected.txt:
* http/tests/security/cross-frame-access-protocol-explicit-domain-expected.txt:
* http/tests/security/cross-frame-access-put-expected.txt:
* http/tests/security/cross-frame-access-selection-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url-expected.txt:
* http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase-expected.txt:
* http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
* http/tests/security/document-all-expected.txt:
* http/tests/security/frameNavigation/not-opener-expected.txt:
* http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode-expected.txt:
* http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt:
* http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open-expected.txt:
* http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
* http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
* http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
* http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
* http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
* http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
* http/tests/security/local-CSS-from-remote-expected.txt:
* http/tests/security/local-JavaScript-from-remote-expected.txt:
* http/tests/security/local-iFrame-from-remote-expected.txt:
* http/tests/security/local-image-from-remote-expected.txt:
* http/tests/security/local-video-poster-from-remote-expected.txt:
* http/tests/security/mixedContent/insecure-plugin-in-iframe-expected.txt:
* http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:
* http/tests/security/no-popup-from-sandbox-expected.txt:
* http/tests/security/no-popup-from-sandbox-top-expected.txt:
* http/tests/security/popup-allowed-by-sandbox-is-sandboxed-expected.txt:
* http/tests/security/referrer-policy-invalid-expected.txt:
* http/tests/security/sandbox-inherit-to-initial-document-2-expected.txt:
* http/tests/security/sandboxed-iframe-blocks-access-from-parent-expected.txt:
* http/tests/security/sandboxed-iframe-form-top-expected.txt:
* http/tests/security/sandboxed-iframe-modify-self-expected.txt:
* http/tests/security/sandboxed-iframe-origin-add-expected.txt:
* http/tests/security/sandboxed-iframe-origin-remove-expected.txt:
* http/tests/security/srcdoc-in-sandbox-cannot-access-parent-expected.txt:
* http/tests/security/window-named-proto-expected.txt:
* http/tests/security/window-named-valueOf-expected.txt:
* http/tests/security/xss-DENIED-assign-location-hash-expected.txt:
* http/tests/security/xss-DENIED-assign-location-host-expected.txt:
* http/tests/security/xss-DENIED-assign-location-hostname-expected.txt:
* http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt:
* http/tests/security/xss-DENIED-assign-location-nonstandardProperty-expected.txt:
* http/tests/security/xss-DENIED-assign-location-pathname-expected.txt:
* http/tests/security/xss-DENIED-assign-location-protocol-expected.txt:
* http/tests/security/xss-DENIED-assign-location-reload-expected.txt:
* http/tests/security/xss-DENIED-assign-location-search-expected.txt:
* http/tests/security/xss-DENIED-defineProperty-expected.txt:
* http/tests/security/xss-DENIED-frame-name-expected.txt:
* http/tests/security/xss-DENIED-getSVGDocument-iframe-expected.txt:
* http/tests/security/xss-DENIED-getSVGDocument-object-expected.txt:
* http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
* http/tests/security/xss-DENIED-invalid-domain-change-expected.txt:
* http/tests/security/xss-DENIED-javascript-with-spaces-expected.txt:
* http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
* http/tests/security/xss-DENIED-sandboxed-iframe-expected.txt:
* http/tests/security/xss-DENIED-synchronous-form-expected.txt:
* http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url-expected.txt:
* http/tests/security/xss-DENIED-window-name-navigator-expected.txt:
* http/tests/security/xss-DENIED-window-open-javascript-url-expected.txt:
* http/tests/security/xss-DENIED-window-open-javascript-url-with-spaces-expected.txt:
* http/tests/security/xss-DENIED-window-open-parent-expected.txt:
* http/tests/security/xss-DENIED-xsl-document-securityOrigin-expected.txt:
* http/tests/security/xss-eval-expected.txt:
* http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt:
* http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-expected.txt:
* http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char-expected.txt:
* http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL-expected.txt:
* http/tests/security/xssAuditor/anchor-url-dom-write-location2-expected.txt:
* http/tests/security/xssAuditor/block-does-not-leak-location-expected.txt:
* http/tests/security/xssAuditor/block-does-not-leak-referrer-expected.txt:
* http/tests/security/xssAuditor/dom-write-URL-expected.txt:
* http/tests/security/xssAuditor/dom-write-location-expected.txt:
* http/tests/security/xssAuditor/dom-write-location-inline-event-expected.txt:
* http/tests/security/xssAuditor/dom-write-location-javascript-URL-expected.txt:
* http/tests/security/xssAuditor/full-block-base-href-expected.txt:
* http/tests/security/xssAuditor/full-block-iframe-javascript-url-expected.txt:
* http/tests/security/xssAuditor/full-block-javascript-link-expected.txt:
* http/tests/security/xssAuditor/full-block-link-onclick-expected.txt:
* http/tests/security/xssAuditor/full-block-object-tag-expected.txt:
* http/tests/security/xssAuditor/full-block-script-tag-cross-domain-expected.txt:
* http/tests/security/xssAuditor/full-block-script-tag-expected.txt:
* http/tests/security/xssAuditor/full-block-script-tag-with-source-expected.txt:
* http/tests/security/xssAuditor/xss-protection-parsing-03-expected.txt:
* http/tests/security/xssAuditor/xss-protection-parsing-04-expected.txt:
* http/tests/websocket/tests/hybi/bad-sub-protocol-control-chars-expected.txt:
* http/tests/websocket/tests/hybi/bad-sub-protocol-empty-expected.txt:
* http/tests/websocket/tests/hybi/bad-sub-protocol-non-ascii-expected.txt:
* http/tests/websocket/tests/hybi/binary-type-expected.txt:
* http/tests/websocket/tests/hybi/close-before-open-expected.txt:
* http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
* http/tests/websocket/tests/hybi/close-expected.txt:
* http/tests/websocket/tests/hybi/close-reason-too-long-expected.txt:
* http/tests/websocket/tests/hybi/invalid-subprotocol-characters-expected.txt:
* http/tests/websocket/tests/hybi/invalid-subprotocols-expected.txt:
* http/tests/websocket/tests/hybi/url-parsing-expected.txt:
* http/tests/websocket/tests/hybi/websocket-event-target-expected.txt:
* http/tests/xmlhttprequest/access-control-basic-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
* http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached-expected.txt:
* http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type-expected.txt:
* http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
* http/tests/xmlhttprequest/access-control-response-with-expose-headers-expected.txt:
* http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
* http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
* http/tests/xmlhttprequest/cross-site-denied-response-sync-2-expected.txt:
* http/tests/xmlhttprequest/cross-site-denied-response-sync-expected.txt:
* http/tests/xmlhttprequest/get-dangerous-headers-expected.txt:
* http/tests/xmlhttprequest/getResponseHeader-expected.txt:
* http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
* http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
* http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
* http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt:
* http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
* http/tests/xmlhttprequest/set-dangerous-headers-expected.txt:
* http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-sync-expected.txt:
* http/tests/xmlhttprequest/simple-cross-origin-denied-events-sync-expected.txt:
* http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain-expected.txt:
* http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:
* js/dom/dom-as-prototype-assignment-exception-expected.txt:
* js/dom/dom-attributes-on-mismatch-type-expected.txt:
* js/dom/shadow-navigator-geolocation-in-strict-mode-does-not-throw-expected.txt:
* plugins/get-user-agent-with-null-npp-from-npp-new-expected.txt:
* plugins/netscape-plugin-map-data-to-src-expected.txt:
* plugins/no-mime-with-valid-extension-expected.txt:
* storage/websql/open-database-creation-callback-expected.txt:
* storage/websql/open-database-set-empty-version-expected.txt:
* svg/as-image/svg-canvas-xhtml-tainted-expected.txt:
* svg/css/parse-calc-length-expected.txt:
* svg/css/parse-height-expected.txt:
* svg/css/parse-length-expected.txt:
* svg/custom/invalid-length-units-expected.txt:
* svg/custom/poly-parsing-error-expected.txt:
* svg/custom/polyline-setattribute-points-null-expected.txt:
* svg/dom/fuzz-path-parser-expected.txt:
* svg/dom/path-parser-expected.txt:
* svg/dom/points-parser-expected.txt:
* webaudio/audionode-expected.txt:

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

5 years agoClearing the website data store should clear local storage
andersca@apple.com [Thu, 15 Jan 2015 21:26:53 +0000 (21:26 +0000)]
Clearing the website data store should clear local storage
https://bugs.webkit.org/show_bug.cgi?id=140507

Reviewed by Andreas Kling.

* Shared/WebsiteData/WebsiteDataTypes.h:
Add WebsiteDataTypeLocalStorage.

* UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
Add WKWebsiteDataTypeLocalStorage

* UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
(toWebsiteDataTypes):
Handle WKWebsiteDataTypeLocalStorage.

* UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::fileModificationTime):
Use an early return.

(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
Change this to take an std::chrono::system_clock::time_point and don't
try to modifiy m_origins while iterating it.

* UIProcess/Storage/LocalStorageDatabaseTracker.h:
Update declarations.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
Change this to take an std::chrono::system_clock::time_point.

* UIProcess/Storage/StorageManager.h:
Update declarations.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
Remove data from the storage manager as well.

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

5 years ago[Win] Unreviewed build fix after r178510
bfulgham@apple.com [Thu, 15 Jan 2015 20:28:10 +0000 (20:28 +0000)]
[Win] Unreviewed build fix after r178510

Correct #include and declarations from Font->FontCascade

* DOMCoreClasses.cpp:
(DOMElement::font):
* FullscreenVideoController.cpp:
(FullscreenVideoController::draw):
* WebKitGraphics.cpp:
* WebPreferences.cpp:

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

5 years agoGive WebsiteDataStore a StorageManager
andersca@apple.com [Thu, 15 Jan 2015 20:24:41 +0000 (20:24 +0000)]
Give WebsiteDataStore a StorageManager
https://bugs.webkit.org/show_bug.cgi?id=140505

Reviewed by Andreas Kling.

The process pool storage manager is still around but is only used for clearing data. It will be removed
completely in an upcoming commit.

* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultDataStoreConfiguration):
Set up the local storage directory.

* UIProcess/API/Cocoa/WKProcessPool.mm:
(websiteDataDirectoryURL):
Export this so it can be called from APIWebsiteDataStoreCocoa.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
Call WebsiteDataStore::cloneSessionData instead.

* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::websiteDataStore):
Add getter.

* UIProcess/WebProcessPool.cpp:
(WebKit::websiteDataStoreConfiguration):
Update this to take a WebProcessPoolConfiguration object and assign the local storage directory.

(WebKit::WebProcessPool::WebProcessPool):
Pass the configuration to websiteDataStoreConfiguration.

(WebKit::WebProcessPool::processWillOpenConnection):
(WebKit::WebProcessPool::processWillCloseConnection):
Remove storage manager calls.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
When creating a persistent data store, also create a storage manager.

(WebKit::WebsiteDataStore::cloneSessionData):
Clone the session storage namespace.

(WebKit::WebsiteDataStore::webPageWasAdded):
Create a session storage namespace for this page.

(WebKit::WebsiteDataStore::webPageWasRemoved):
Destroy the session storage namespace.

(WebKit::WebsiteDataStore::webProcessWillOpenConnection):
Tell the storage manager about the new process connection.

(WebKit::WebsiteDataStore::webPageWillOpenConnection):
Set the allowed connection.

(WebKit::WebsiteDataStore::webPageDidCloseConnection):
Clear the allowed connection.

(WebKit::WebsiteDataStore::webProcessDidCloseConnection):
Tell the storage manager that the process connection has been closed.

* UIProcess/WebsiteData/WebsiteDataStore.h:
Add new members.

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

5 years ago[Win] Unreviewed Windows build fix.
bfulgham@apple.com [Thu, 15 Jan 2015 20:16:38 +0000 (20:16 +0000)]
[Win] Unreviewed Windows build fix.

More missing Font->FontCascade changes.

* platform/win/WebCoreTextRenderer.cpp:
(WebCore::WebCoreSetAlwaysUsesComplexTextCodePath):
(WebCore::WebCoreAlwaysUsesComplexTextCodePath):

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

5 years agoREGRESSION(r178133): Membuster regressed ~4%
antti@apple.com [Thu, 15 Jan 2015 20:07:47 +0000 (20:07 +0000)]
REGRESSION(r178133): Membuster regressed ~4%
https://bugs.webkit.org/show_bug.cgi?id=140495

Reviewed by Andreas Kling.

* platform/graphics/FontCache.cpp:
(WebCore::FontCache::purgeInactiveFontData):

    Fonts may ref other fonts. Keep clearing until there are no changes.

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

5 years ago[Win] Unreviewed build fix.
bfulgham@apple.com [Thu, 15 Jan 2015 19:54:42 +0000 (19:54 +0000)]
[Win] Unreviewed build fix.

* platform/graphics/win/FontCacheWin.cpp:
* platform/win/DragImageWin.cpp:
* platform/win/WebCoreTextRenderer.h:

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

5 years agoTry to fix windows build.
antti@apple.com [Thu, 15 Jan 2015 19:41:40 +0000 (19:41 +0000)]
Try to fix windows build.

* platform/graphics/ca/win/PlatformCALayerWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(PlatformCALayerWinInternal::displayCallback):
* platform/win/DragImageWin.cpp:
(WebCore::dragLabelFont):
(WebCore::createDragImageForLink):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize):
(WebCore::PopupMenuWin::paint):
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint):
(WebCore::WebCoreDrawDoubledTextAtPoint):
(WebCore::WebCoreTextFloatWidth):
(WebCore::WebCoreSetAlwaysUsesComplexTextCodePath):
(WebCore::WebCoreAlwaysUsesComplexTextCodePath):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::setFontFromControlSize):

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

5 years agoUnreviewed, rolling out r178518.
antti@apple.com [Thu, 15 Jan 2015 19:34:51 +0000 (19:34 +0000)]
Unreviewed, rolling out r178518.

Didn't mean to commit some of this

Reverted changeset:

"Try to fix windows build."
http://trac.webkit.org/changeset/178518

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

5 years agoTry to fix windows build.
antti@apple.com [Thu, 15 Jan 2015 19:29:05 +0000 (19:29 +0000)]
Try to fix windows build.

* platform/graphics/Font.cpp: Copied from Source/WebCore/platform/graphics/SimpleFontData.cpp.
* platform/graphics/Font.h: Copied from Source/WebCore/platform/graphics/SimpleFontData.h.
* platform/graphics/FontCascadeFastPath.cpp: Copied from Source/WebCore/platform/graphics/FontFastPath.cpp.
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(PlatformCALayerWinInternal::displayCallback):
* platform/graphics/ios/FontIOS.mm: Copied from Source/WebCore/platform/graphics/ios/SimpleFontDataIOS.mm.
* platform/graphics/mac/FontCascadeComplexTextMac.cpp: Copied from Source/WebCore/platform/graphics/mac/FontComplexTextMac.cpp.
* platform/graphics/mac/FontCascadeMac.mm: Copied from Source/WebCore/platform/graphics/mac/FontMac.mm.
* platform/graphics/mac/FontCoreText.cpp: Copied from Source/WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp.
* platform/graphics/mac/FontMac.mm: Replaced with Source/WebCore/platform/graphics/mac/SimpleFontDataMac.mm.
* platform/win/DragImageWin.cpp:
(WebCore::dragLabelFont):
(WebCore::createDragImageForLink):
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize):
(WebCore::PopupMenuWin::paint):
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint):
(WebCore::WebCoreDrawDoubledTextAtPoint):
(WebCore::WebCoreTextFloatWidth):
(WebCore::WebCoreSetAlwaysUsesComplexTextCodePath):
(WebCore::WebCoreAlwaysUsesComplexTextCodePath):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::setFontFromControlSize):

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

5 years ago[Part 2] Argument object created by "Function dot arguments" should use a clone of...
mark.lam@apple.com [Thu, 15 Jan 2015 19:20:03 +0000 (19:20 +0000)]
[Part 2] Argument object created by "Function dot arguments" should use a clone of argument values.
<https://webkit.org/b/140093>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::createArguments):
- We should not fetching the lexicalEnvironment here.  The reason we've
  introduced the ClonedArgumentsCreationMode is because the lexicalEnvironment
  may not be available to us at this point.  Instead, we'll just pass a nullptr.

* runtime/Arguments.cpp:
(JSC::Arguments::tearOffForCloning):
* runtime/Arguments.h:
(JSC::Arguments::finishCreation):
- Use the new tearOffForCloning() to tear off arguments right out of the values
  passed on the stack.  tearOff() is not appropriate for this purpose because
  it takes slowArgumentsData into account.

LayoutTests:

* js/function-dot-arguments-expected.txt:
* js/script-tests/function-dot-arguments.js:
(arrayify):
(indirectCall):
(.inner):
(tearOffTest3):
(tearOffTest3b):
(tearOffTest3c):
(tearOffTest4External):
(tearOffTest4):
(tearOffTest4aExternal):
(tearOffTest4bExternal):
(tearOffTest4b):
(tearOffTest4cExternal):
(tearOffTest4c):
(tearOffTest5):
(tearOffTest5b):
(tearOffTest5c):
(tearOffTest6External):
(tearOffTest6):
(tearOffTest6aExternal):
(tearOffTest6bExternal):
(tearOffTest6b):
(tearOffTest6cExternal):
(tearOffTest6c):
(tearOffTest7):
(tearOffTest7b):
(tearOffTest7c):
(tearOffTest8External):
(tearOffTest8):
(tearOffTest8aExternal):
(tearOffTest8bExternal):
(tearOffTest8b):
(tearOffTest8cExternal):
(tearOffTest8c):
(tearOffTest9b):
(tearOffTest9c):
(tearOffTest10External):
(tearOffTest10):
(tearOffTest10aExternal):
(tearOffTest10bExternal):
(tearOffTest10b):
(tearOffTest10cExternal):
(tearOffTest10c):

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

5 years ago[Win] Unreviewed gardening.
bfulgham@apple.com [Thu, 15 Jan 2015 19:09:23 +0000 (19:09 +0000)]
[Win] Unreviewed gardening.

Mark some debug crashes as being caused by Bug 135514.

* platform/win/TestExpectations:

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

5 years ago[Win] Unreviewed gardening.
bfulgham@apple.com [Thu, 15 Jan 2015 18:41:42 +0000 (18:41 +0000)]
[Win] Unreviewed gardening.

Mark fast/dynamic/layer-no-longer-paginated.html as crashing on Windows
now that https://bugs.webkit.org/show_bug.cgi?id=140455 has been filed.

* platform/win/TestExpectations:

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

5 years agoMore work on the lifetime observer
andersca@apple.com [Thu, 15 Jan 2015 18:39:47 +0000 (18:39 +0000)]
More work on the lifetime observer
https://bugs.webkit.org/show_bug.cgi?id=140500

Reviewed by Andreas Kling.

Add webPageWasAdded/webPageWasRemoved functions; these will be called first and last during the
lifetime of the web page. Also remove removeObserver since nobody is calling it.

* UIProcess/WebProcessLifetimeObserver.h:
(WebKit::WebProcessLifetimeObserver::webPageWasAdded):
(WebKit::WebProcessLifetimeObserver::webPageWasRemoved):
* UIProcess/WebProcessLifetimeTracker.cpp:
(WebKit::WebProcessLifetimeTracker::addObserver):
(WebKit::WebProcessLifetimeTracker::pageWasInvalidated):
(WebKit::WebProcessLifetimeTracker::removeObserver): Deleted.
* UIProcess/WebProcessLifetimeTracker.h:

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

5 years agohttp/tests/misc/acid3.html is flakey on Mavericks
mmaxfield@apple.com [Thu, 15 Jan 2015 17:22:18 +0000 (17:22 +0000)]
http/tests/misc/acid3.html is flakey on Mavericks
https://bugs.webkit.org/show_bug.cgi?id=140253

Reviewed by Alexey Proskuryakov.

Source/WebCore:

CoreText has a bug <rdar://problem/19433490> in which kerning is not applied for a font
if a CTTypesetter is created using that font before a call to CTFontTransformGlyphs. We
often create typesetters in the complex code path, so it's not obvious when this bug
might present itself. This patch simply makes a dummy invocation of
CTFontTransformGlyphs() when creating a SimpleFontData.

No new tests because this is covered by http/tests/misc/acid3.html.

* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit):

LayoutTests:

Remove flakey mark.

* platform/mac/TestExpectations:

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

5 years agoGet rid of custom StyleBuilder code for 'line-height' CSS property
cdumez@apple.com [Thu, 15 Jan 2015 17:20:44 +0000 (17:20 +0000)]
Get rid of custom StyleBuilder code for 'line-height' CSS property
https://bugs.webkit.org/show_bug.cgi?id=140462

Reviewed by Antti Koivisto.

Get rid of custom StyleBuilder code for 'line-height' CSS property by
using a conditional converter.

* css/CSSPropertyNames.in:
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertLineHeight):
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueLineHeight):
(WebCore::StyleBuilderCustom::convertLineHeight): Deleted.

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

5 years agoDon't pass an allowed connection when creating a session storage namespace
andersca@apple.com [Thu, 15 Jan 2015 16:45:12 +0000 (16:45 +0000)]
Don't pass an allowed connection when creating a session storage namespace
https://bugs.webkit.org/show_bug.cgi?id=140482

Reviewed by Sam Weinig.

Instead, always call setAllowedSessionStorageNamespaceConnection. This will make it easier to
move the storage manager into WebsiteDataStore and make it use the process lifetime observer machinery.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::createSessionStorageNamespace):
* UIProcess/Storage/StorageManager.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):

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

5 years agoRename Font to FontCascade
antti@apple.com [Thu, 15 Jan 2015 14:19:56 +0000 (14:19 +0000)]
Rename Font to FontCascade
https://bugs.webkit.org/show_bug.cgi?id=140442

Reviewed by Darin Adler.

We can then rename SimpleFontData to Font. This will match the usual definition of a "font".

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

5 years agoREGRESSION(r177075): [GTK] Creating a second web view disables accelerated compositin...
carlosgc@webkit.org [Thu, 15 Jan 2015 13:07:42 +0000 (13:07 +0000)]
REGRESSION(r177075): [GTK] Creating a second web view disables accelerated compositing in existing web view
https://bugs.webkit.org/show_bug.cgi?id=140494

Reviewed by Gustavo Noronha Silva.

The problem is that r177075 moved the creation of the redirected
XComposite window to realize method, but leaving the call to
webkitWebViewBaseUpdatePreferences() in both places Realize() and
CreateWebPage(). webkitWebViewBaseUpdatePreferences() only updates
the accelerating compositing setting nowadays, depending on
whether the redirected XComposited window could be created or not
(something that depends on whether XRender, XComposite and XDamage
extensions are available in the current display). So, when the
first web view is created, webkitWebViewBaseUpdatePreferences() is
called first from CreateWebPage(), and always disabling
accelerated compositing because the redirected window hasn't been
created yet, and then from Realize() right after the redirected
window is created so that accelerated compositing is enabled. When
the second web view is created the same happens, but since
settings are shared among web views, the first call to
webkitWebViewBaseUpdatePreferences() from CreateWebPage() disables
accelerated compositing and the web page exists accelerated
compositing mode and never enters it again unless the page is
reloaded. I guess the web page should enter accelerated
compositing mode again when the setting is enabled again from
Realize(), but since the setting is global and doesn't depend on
every web view, we should never disable it once it has been
enabled in any case.
Since we want to enable accelerated compositing mode when the
redirected XComposite window has been successfully created, we can
use the SetNativeSurfaceHandleForCompositing message to enable the
setting and remove webkitWebViewBaseUpdatePreferences().

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewUpdateSettings):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseRealize):
(webkitWebViewBaseCreateWebPage):
(webkitWebViewBaseUpdatePreferences): Deleted.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):

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

5 years agoAX: [ATK] Mark accessibility/render-counter-text.html as a suitable test for EFL...
commit-queue@webkit.org [Thu, 15 Jan 2015 12:20:45 +0000 (12:20 +0000)]
AX: [ATK] Mark accessibility/render-counter-text.html as a suitable test for EFL and GTK.
https://bugs.webkit.org/show_bug.cgi?id=140438

Patch by Andrzej Badowski <a.badowski@samsung.com> on 2015-01-15
Reviewed by Chris Fleizach.

The test shows the text contents of the <li> element with the counter inside <ol> using three childAtIndex().stringValue methods.
In the case of ATK childAtIndex(0) returns a non-empty object, but it is not the ATK_OBJECT,
so the stringValue produces an empty string.
To avoid this, the text content is obtained by direct reading of stringValue of <li> AccessibilityUIElement which is ATK_TEXT.

* accessibility/render-counter-text.html:
   This test is also suitable for EFL and GTK port.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:

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

5 years ago[CSSRegions] Assert failure in RenderBlock::locateFlowThreadContainingBlock when...
mihnea@adobe.com [Thu, 15 Jan 2015 09:04:38 +0000 (09:04 +0000)]
[CSSRegions] Assert failure in RenderBlock::locateFlowThreadContainingBlock when showing the render tree debug info
https://bugs.webkit.org/show_bug.cgi?id=140441

Reviewed by Andrei Bucur.

When showing the render tree debug information for an element inside a flow thread,
we will display the region range information for all the render boxes. To avoid
computation of flow thread containing block in these situations, we will use
only the cached flow thread containing block information.

No new tests as this code path is only touched when using showRenderTree* methods.

* rendering/RenderObject.cpp:
(WebCore::flowThreadContainingBlockFromRenderer):
(WebCore::RenderObject::showRegionsInformation):

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

5 years agoUnreviewed. Fix GTK+ build after r178464.
carlosgc@webkit.org [Thu, 15 Jan 2015 08:00:33 +0000 (08:00 +0000)]
Unreviewed. Fix GTK+ build after r178464.

* UIProcess/API/gtk/WebKitUserContent.cpp:
(_WebKitUserScript::_WebKitUserScript):
(webkitUserScriptGetUserScript):
* UIProcess/API/gtk/WebKitUserContentPrivate.h:

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

5 years agoGraphics corruption after Find on some pages
simon.fraser@apple.com [Thu, 15 Jan 2015 07:59:09 +0000 (07:59 +0000)]
Graphics corruption after Find on some pages
https://bugs.webkit.org/show_bug.cgi?id=140489

Reviewed by Zalan Bujtas.

Source/WebCore:

After doing a Find on http://shop.outlier.cc/shop/retail/chino.html,
garbage could appear on some parts of the page. This is caused by creating
a compositing layer which is marked as opaque, yet failing to paint the entire
layer contents.

This was caused by a bug in RenderBox::computeBackgroundIsKnownToBeObscured()
logic. On the page in question, doing a Find could cause overflow:hidden sections
to get scrolled (since Find can reveal the selection by scrolling overflow).
However, the render tree walking under RenderBox::foregroundIsKnownToBeOpaqueInRect()
fails to take overflow scrolling into account, so gives the wrong answer
in some content configurations. As a result, we'd think that the background
is obscured, and never paint it.

Conservative fix is to have isCandidateForOpaquenessTest() return false
when the content has any non-zero scroll offset.

Tests: compositing/contents-opaque/opaque-with-scrolled.html
       fast/backgrounds/opaque-scrolled-paint-background.html

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

LayoutTests:

Two new tests. The first one just reports that we have an opaque compositing
layer. The second one tests the the user-visible symptom of the missing
background.

* compositing/contents-opaque/opaque-with-scrolled-expected.txt: Added.
* compositing/contents-opaque/opaque-with-scrolled.html: Added.
* fast/backgrounds/opaque-scrolled-paint-background-expected.html: Added.
* fast/backgrounds/opaque-scrolled-paint-background.html: Added.

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

5 years ago<rdar://problem/17748495> Multiple compositing tests fail to repaint on WK1
ap@apple.com [Thu, 15 Jan 2015 06:50:56 +0000 (06:50 +0000)]
<rdar://problem/17748495> Multiple compositing tests fail to repaint on WK1

* platform/mac/TestExpectations: These tests pass now, unmarking.

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

5 years agoUpdate expectations for what we see on upgraded EWS machines.
ap@apple.com [Thu, 15 Jan 2015 06:05:32 +0000 (06:05 +0000)]
Update expectations for what we see on upgraded EWS machines.

* platform/mac/TestExpectations:

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

5 years ago[Mac][MSE] Stalled YouTube playback does not allow display to sleep.
jer.noble@apple.com [Thu, 15 Jan 2015 06:00:43 +0000 (06:00 +0000)]
[Mac][MSE] Stalled YouTube playback does not allow display to sleep.
https://bugs.webkit.org/show_bug.cgi?id=140468
rdar://problem/19171162

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-stalled-holds-sleep-assertion.html

The unstated convention of MediaPlayerPrivate::paused() is that implementations should
return 'true' if the playback rate is 0. However, MediaPlayerPrivateMediaSourceAVFObjC
was returning 'false' if it was supposed to be playing, regardless of the actual rate.
This caused a check in HTMLMediaElement of whether to release the sleep assertion token
to fail, thinking the media engine was still playing.

Add some testing infrastructure to allow us to test whether the media element is disabling
display sleep from within layout tests.

* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::isDisablingSleep):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paused):
* testing/Internals.cpp:
(WebCore::Internals::elementIsBlockingDisplaySleep):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* media/media-source/content/test-fragmented-manifest.json: Added.
* media/media-source/content/test-fragmented.mp4: Added.
* media/media-source/media-source-loader.js: Added.
(MediaSourceLoader):
(MediaSourceLoader.prototype.loadManifest):
(MediaSourceLoader.prototype.loadManifestSucceeded):
(MediaSourceLoader.prototype.loadManifestFailed):
(MediaSourceLoader.prototype.loadMediaData):
(MediaSourceLoader.prototype.loadMediaDataSucceeded):
(MediaSourceLoader.prototype.loadMediaDataFailed):
(MediaSourceLoader.prototype.type):
(MediaSourceLoader.prototype.duration):
(MediaSourceLoader.prototype.initSegment):
(MediaSourceLoader.prototype.mediaSegmentsLength):
(MediaSourceLoader.prototype.mediaSegment):
* media/media-source/media-source-stalled-holds-sleep-assertion-expected.txt: Added.
* media/media-source/media-source-stalled-holds-sleep-assertion.html: Added.

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

5 years agoMove LayoutFragment and ClipRect to their own files.
zalan@apple.com [Thu, 15 Jan 2015 03:04:40 +0000 (03:04 +0000)]
Move LayoutFragment and ClipRect to their own files.
https://bugs.webkit.org/show_bug.cgi?id=140457

Reviewed by Simon Fraser.

Move these classes to their own files to to make RenderLayer.h less heavy.

No change in functionality.

* WebCore.xcodeproj/project.pbxproj:
* rendering/ClipRect.cpp: Added.
(WebCore::ClipRect::intersects):
* rendering/ClipRect.h: Added.
(WebCore::ClipRect::ClipRect):
(WebCore::ClipRect::rect):
(WebCore::ClipRect::setRect):
(WebCore::ClipRect::affectedByRadius):
(WebCore::ClipRect::setAffectedByRadius):
(WebCore::ClipRect::operator==):
(WebCore::ClipRect::operator!=):
(WebCore::ClipRect::intersect):
(WebCore::ClipRect::move):
(WebCore::ClipRect::moveBy):
(WebCore::ClipRect::isEmpty):
(WebCore::ClipRect::intersects):
(WebCore::ClipRect::inflateX):
(WebCore::ClipRect::inflateY):
(WebCore::ClipRect::inflate):
(WebCore::intersection):
* rendering/LayerFragment.h: Added.
(WebCore::LayerFragment::setRects):
(WebCore::LayerFragment::moveBy):
(WebCore::LayerFragment::intersect):
* rendering/RenderFlowThread.h:
* rendering/RenderLayer.cpp:
(WebCore::ClipRect::intersects): Deleted.
* rendering/RenderLayer.h:
(WebCore::ClipRect::ClipRect): Deleted.
(WebCore::ClipRect::rect): Deleted.
(WebCore::ClipRect::setRect): Deleted.
(WebCore::ClipRect::affectedByRadius): Deleted.
(WebCore::ClipRect::setAffectedByRadius): Deleted.
(WebCore::ClipRect::operator==): Deleted.
(WebCore::ClipRect::operator!=): Deleted.
(WebCore::ClipRect::intersect): Deleted.
(WebCore::ClipRect::move): Deleted.
(WebCore::ClipRect::moveBy): Deleted.
(WebCore::ClipRect::isEmpty): Deleted.
(WebCore::ClipRect::intersects): Deleted.
(WebCore::ClipRect::inflateX): Deleted.
(WebCore::ClipRect::inflateY): Deleted.
(WebCore::ClipRect::inflate): Deleted.
(WebCore::intersection): Deleted.
(WebCore::LayerFragment::LayerFragment): Deleted.
(WebCore::LayerFragment::setRects): Deleted.
(WebCore::LayerFragment::moveBy): Deleted.
(WebCore::LayerFragment::intersect): Deleted.
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.h:
* rendering/RenderTreeAsText.cpp:

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

5 years ago[EFL] Change expectations for two layout tests.
commit-queue@webkit.org [Thu, 15 Jan 2015 02:16:06 +0000 (02:16 +0000)]
[EFL] Change expectations for two layout tests.
https://bugs.webkit.org/show_bug.cgi?id=140391

Patch by Andrzej Badowski <a.badowski@samsung.com> on 2015-01-14
Reviewed by Chris Fleizach.

Currently, two layout tests produce positive results for EFL:
- accessibility/fieldset-element-expected.html
- accessibility/negative-tabindex-does-not-expose-label.html.

* accessibility/fieldset-element-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/fieldset-element-expected.txt.
* accessibility/negative-tabindex-does-not-expose-label-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/negative-tabindex-does-not-expose-label-expected.txt.
* platform/efl/TestExpectations:
   Missing markings removed.

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

5 years ago[Win] Unreviewed build fix after r178459 and r178462.
bfulgham@apple.com [Thu, 15 Jan 2015 02:10:14 +0000 (02:10 +0000)]
[Win] Unreviewed build fix after r178459 and r178462.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Add some
missing exports needed by the test infrastructure.

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

5 years agoUnreviewed, rolling out r178438.
commit-queue@webkit.org [Thu, 15 Jan 2015 01:16:42 +0000 (01:16 +0000)]
Unreviewed, rolling out r178438.
https://bugs.webkit.org/show_bug.cgi?id=140484

Broke a few MediaSource tests (Requested by JoePeck on
#webkit).

Reverted changeset:

"[MSE] Implement per TrackBuffer buffered."
https://bugs.webkit.org/show_bug.cgi?id=139813
http://trac.webkit.org/changeset/178438

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

5 years agoCreate iOS-EWS server queue
commit-queue@webkit.org [Thu, 15 Jan 2015 00:49:57 +0000 (00:49 +0000)]
Create iOS-EWS server queue
https://bugs.webkit.org/show_bug.cgi?id=140473

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2015-01-14
Reviewed by Benjamin Poulain.

* QueueStatusServer/app.yaml: Updates the SVN version number.
* QueueStatusServer/config/queues.py: Add ios-ews queue.
* QueueStatusServer/model/queues.py:
(Queue.display_name): Makes sure the display name is pretty!

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

5 years agoConvert WKUserScript to be an API::Object bridged object
weinig@apple.com [Thu, 15 Jan 2015 00:35:09 +0000 (00:35 +0000)]
Convert WKUserScript to be an API::Object bridged object
https://bugs.webkit.org/show_bug.cgi?id=140471

Reviewed by Dan Bernstein.

* Shared/API/APIObject.h:
* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add Type::UserScript.

* UIProcess/API/APIUserScript.h: Added.
Add API object for UserScripts.

* UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController init]):
(-[WKUserContentController userScripts]):
(-[WKUserContentController addUserScript:]):
(-[WKUserContentController removeAllUserScripts]):
(toWebCoreUserScriptInjectionTime): Deleted.
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
(WebKit::WebUserContentControllerProxy::addProcess):
(WebKit::WebUserContentControllerProxy::addUserScript):
(WebKit::WebUserContentControllerProxy::removeAllUserScripts):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
(WebKit::WebUserContentControllerProxy::userScripts):
Store the WKUserScripts in the WebUserContentControllerProxy instead of the
Objective-C layer WKUserContentController, to allow creation of the object
from either the Objective-C or C++ sides.

* UIProcess/API/Cocoa/WKUserScript.mm:
(generateIdentifier):
(-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
(-[WKUserScript source]):
(-[WKUserScript injectionTime]):
(-[WKUserScript isForMainFrameOnly]):
(-[WKUserScript _apiObject]):
* UIProcess/API/Cocoa/WKUserScriptInternal.h:
(API::wrapper):
(API::toWebCoreUserScriptInjectionTime):
(API::toWKUserScriptInjectionTime):
Convert to get properties from the API::UserScript.

* WebKit2.xcodeproj/project.pbxproj:
Add the new file.

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

5 years agoAdd per page connection callbacks to the lifetime observer
andersca@apple.com [Thu, 15 Jan 2015 00:21:31 +0000 (00:21 +0000)]
Add per page connection callbacks to the lifetime observer
https://bugs.webkit.org/show_bug.cgi?id=140475

Reviewed by Andreas Kling.

* UIProcess/WebProcessLifetimeObserver.cpp:
(WebKit::WebProcessLifetimeObserver::addWebPage):
(WebKit::WebProcessLifetimeObserver::removeWebPage):
* UIProcess/WebProcessLifetimeObserver.h:
(WebKit::WebProcessLifetimeObserver::webPageWillOpenConnection):
(WebKit::WebProcessLifetimeObserver::webPageDidCloseConnection):

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

5 years agoREGRESSION (r165385): Crash when applying autocorrection exceeds maximum text area...
enrica@apple.com [Thu, 15 Jan 2015 00:18:39 +0000 (00:18 +0000)]
REGRESSION (r165385): Crash when applying autocorrection exceeds maximum text area length.
https://bugs.webkit.org/show_bug.cgi?id=137902
rdar://problem/18568864

Reviewed by Darin Adler.

Source/WebCore:

Test: editing/text-iterator/invalid-subrange.html

characterSubrange should check the iterator position after each advance.
This changed adds a new method to the Internals object to be able to test this.

* editing/TextIterator.cpp:
(WebCore::characterSubrange):
(WebCore::TextIterator::subrange):
(WebCore::findPlainText):
* testing/Internals.cpp:
(WebCore::Internals::subrange):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* editing/text-iterator/invalid-subrange-expected.txt: Added.
* editing/text-iterator/invalid-subrange.html: Added.

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

5 years agoMake WebsiteDataStore a WebProcessLifetimeObserver
andersca@apple.com [Thu, 15 Jan 2015 00:01:05 +0000 (00:01 +0000)]
Make WebsiteDataStore a WebProcessLifetimeObserver
https://bugs.webkit.org/show_bug.cgi?id=140472

Reviewed by Andreas Kling.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::addWebPage): Deleted.
(WebKit::WebsiteDataStore::removeWebPage): Deleted.
* UIProcess/WebsiteData/WebsiteDataStore.h:

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

5 years agoREGRESSION (r154769): Wrong <title> taken as a tooltip for SVG element.
commit-queue@webkit.org [Wed, 14 Jan 2015 23:50:57 +0000 (23:50 +0000)]
REGRESSION (r154769): Wrong <title> taken as a tooltip for SVG element.
https://bugs.webkit.org/show_bug.cgi?id=139690.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-01-14
Reviewed by Daniel Bates.

Source/WebCore:

Before r154769, we were calling Traversal<SVGTitleElement>::firstWithin(), which returns
the first immediate SVGTitleElement child. In r154769, Traversal<SVGTitleElement>::firstWithin()
was replaced by descendantsOfType<SVGTitleElement> which returns all descendants SVGTitleElements.
Then we were returning the first element of these descendants, which may not be an immediate
child of the element, as the title of the SVGElement. This was the reason of this bug. The
fix is to use childrenOfType<SVGTitleElement>() instead, which returns the immediate SVGTitleElement
children of an SVGElement.

Also we were not following exactly the specs for the rootmost SVG element's title value.
According to the W3C specs, for stand-alone SVG documents only, the rootmost SVG element
should not return a title. But we were not returning a title for the rootmost SVG element
always. The fix is to return a empty title for the rootmost SVG element only if topDocument()
of the element isSVGDocument().

NOTE: The main SVG specs http://www.w3.org/TR/SVG/interact.html#hit-testing (W3C Recommendation
16 August 2011) and http://www.w3.org/TR/SVG/struct.html#DescriptionAndTitleElements (W3C
Recommendation 16 August 2011) do not say how the tooltip of an SVG element is calculated. But
the SVG tiny specs http://www.w3.org/TR/SVGTiny12/struct.html#uiTitleDescBehavior (W3C
Recommendation 22 December 2008) however explains well the tooltip calculation for the embedded
and the stand-alone SVG cases. And it seems this what we should rely on.

Test: svg/hittest/svg-standalone-tooltip.svg
      svg/hittest/svg-embedded-tooltip.html

* WebCore.exp.in:
* rendering/HitTestResult.h:
Make HitTestResult::setInnerNode be WEBCORE_EXPORT

* svg/SVGElement.cpp:
(WebCore::SVGElement::title):
Replace descendantsOfType<SVGTitleElement>() by childrenOfType<SVGTitleElement>().
Fix the title value of the rootmost SVG element.

* testing/Internals.cpp:
(WebCore::Internals::toolTipFromElement):
* testing/Internals.h:
* testing/Internals.idl:
Add a new internal function toolTipFromElement() which returns the tooltip text for a
given element.

LayoutTests:

* svg/hittest/resources: Added.
* svg/hittest/resources/svg-tooltip.svg: Added.
Shared resources to be used by the tests.

* svg/hittest/resources/svg-tooltip.js: Added.
This code mimics the C++ tooltip calculation and compares its result with what the C++
code returns.

* svg/hittest/svg-embedded-tooltip-expected.txt: Added.
* svg/hittest/svg-embedded-tooltip.html: Added.
This test ensures that the tooltip text for SVG elements is calculated correctly when
the SVG is embedded in an HTML either through inline <svg> tag or through an <embed>
tag. In both cases, the rootmost SVG element should return the SVG document title.

* svg/hittest/svg-standalone-tooltip-expected.txt: Added.
* svg/hittest/svg-standalone-tooltip.svg: Added.
This test ensures that for stand-alone SVG documents, the tooltip text for SVG elements
is calculated correctly. In this case, the rootmost SVG element should not return a
title since the SVG document title will be displayed in the browser chrome.

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

5 years ago[WK2][iOS] Add private API to toggle diagnostic logging setting
cdumez@apple.com [Wed, 14 Jan 2015 23:29:09 +0000 (23:29 +0000)]
[WK2][iOS] Add private API to toggle diagnostic logging setting
https://bugs.webkit.org/show_bug.cgi?id=140464

Reviewed by Dan Bernstein.

Add private API to toggle diagnostic logging setting for iOS.
Previously, there was only a WK2 private C API for this.

* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _diagnosticLoggingEnabled]):
(-[WKPreferences _setDiagnosticLoggingEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

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

5 years agoBuildfix after r178434
ossy@webkit.org [Wed, 14 Jan 2015 23:28:57 +0000 (23:28 +0000)]
Buildfix after r178434
https://bugs.webkit.org/show_bug.cgi?id=140467

Reviewed by Chris Dumez.

* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertPerspective):

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

5 years agoSwitch VisitedLinkProvider over to WebProcessLifetimeObserver
andersca@apple.com [Wed, 14 Jan 2015 23:17:53 +0000 (23:17 +0000)]
Switch VisitedLinkProvider over to WebProcessLifetimeObserver
https://bugs.webkit.org/show_bug.cgi?id=140469

Reviewed by Andreas Kling.

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):
(WebKit::VisitedLinkProvider::removeAll):
(WebKit::VisitedLinkProvider::webProcessWillOpenConnection):
(WebKit::VisitedLinkProvider::webProcessDidCloseConnection):
(WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
(WebKit::VisitedLinkProvider::resizeTable):
(WebKit::VisitedLinkProvider::addProcess): Deleted.
(WebKit::VisitedLinkProvider::removeProcess): Deleted.
* UIProcess/VisitedLinkProvider.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::processDidFinishLaunching):
* UIProcess/WebProcessLifetimeObserver.cpp:
(WebKit::WebProcessLifetimeObserver::processes):
* UIProcess/WebProcessLifetimeObserver.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::disconnect):
(WebKit::WebProcessProxy::addVisitedLinkProvider): Deleted.
(WebKit::WebProcessProxy::didDestroyVisitedLinkProvider): Deleted.
* UIProcess/WebProcessProxy.h:

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

5 years agoBuild fix for NFAToDFA on ARM
benjamin@webkit.org [Wed, 14 Jan 2015 22:53:46 +0000 (22:53 +0000)]
Build fix for NFAToDFA on ARM

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-01-14

* contentextensions/NFAToDFA.cpp:
(WebCore::ContentExtensions::UniqueNodeIdSet::UniqueNodeIdSet):
(WebCore::ContentExtensions::UniqueNodeIdSet::isDeletedValue):

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