WebKit-https.git
7 years agoUnreviewed, rolled out a line I committed by accident.
ggaren@apple.com [Sat, 22 Sep 2012 06:43:04 +0000 (06:43 +0000)]
Unreviewed, rolled out a line I committed by accident.

* interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):

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

7 years agoOptimized closures that capture arguments
ggaren@apple.com [Sat, 22 Sep 2012 06:34:59 +0000 (06:34 +0000)]
Optimized closures that capture arguments
https://bugs.webkit.org/show_bug.cgi?id=97358

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Previously, the activation object was responsible for capturing all
arguments in a way that was convenient for the arguments object. Now,
we move all captured variables into a contiguous region in the stack,
allocate an activation for exactly that size, and make the arguments
object responsible for knowing all the places to which arguments could
have moved.

This seems like the right tradeoff because

    (a) Closures are common and long-lived, so we want them to be small.

    (b) Our primary strategy for optimizing the arguments object is to make
    it go away. If you're allocating arguments objects, you're already having
    a bad time.

    (c) It's common to use either the arguments object or named argument
    closure, but not both.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dump):
(JSC::CodeBlock::CodeBlock):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::argumentsRegister):
(JSC::CodeBlock::activationRegister):
(JSC::CodeBlock::isCaptured):
(JSC::CodeBlock::argumentIndexAfterCapture): m_numCapturedVars is gone
now -- we have an explicit range instead.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator): Move captured arguments
into the captured region of local variables for space efficiency. Record
precise data about where they moved for the sake of the arguments object.

Some of this data was previously wrong, but it didn't cause any problems
because the arguments weren't actually moving.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::flushArgumentsAndCapturedVariables): Don't
assume that captured vars are in any particular location -- always ask
the CodeBlock. This is better encapsulation.

(JSC::DFG::ByteCodeParser::parseCodeBlock):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile): I rename things sometimes.

* runtime/Arguments.cpp:
(JSC::Arguments::tearOff): Account for a particularly nasty edge case.

(JSC::Arguments::didTearOffActivation): Don't allocate our slow arguments
data on tear-off. We need to allocate it eagerly instead, since we need
to know about displaced, captured arguments during access before tear-off.

* runtime/Arguments.h:
(JSC::Arguments::allocateSlowArguments):
(JSC::Arguments::argument): Tell our slow arguments array where all arguments
are, even if they are not captured. This simplifies some things, so we don't
have to account explicitly for the full matrix of (not torn off, torn off)
* (captured, not captured).

(JSC::Arguments::finishCreation): Allocate our slow arguments array eagerly
because we need to know about displaced, captured arguments during access
before tear-off.

* runtime/Executable.cpp:
(JSC::FunctionExecutable::FunctionExecutable):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::compileForConstructInternal):
* runtime/Executable.h:
(JSC::FunctionExecutable::parameterCount):
(FunctionExecutable):
* runtime/JSActivation.cpp:
(JSC::JSActivation::visitChildren):
* runtime/JSActivation.h:
(JSActivation):
(JSC::JSActivation::create):
(JSC::JSActivation::JSActivation):
(JSC::JSActivation::registerOffset):
(JSC::JSActivation::tearOff):
(JSC::JSActivation::allocationSize):
(JSC::JSActivation::isValid): This is really the point of the patch. All
the pointer math in Activations basically boils away, since we always
copy a contiguous region of captured variables now.

* runtime/SymbolTable.h:
(JSC::SlowArgument::SlowArgument):
(SlowArgument):
(SharedSymbolTable):
(JSC::SharedSymbolTable::captureCount):
(JSC::SharedSymbolTable::SharedSymbolTable): AllOfTheThings capture mode
is gone now -- that's the point of the patch. indexIfCaptured gets renamed
to index because we always have an index, even if not captured. (The only
time when the index is meaningless is when we're Deleted.)

LayoutTests:

* fast/js/dfg-arguments-alias-activation-expected.txt:
* fast/js/dfg-arguments-alias-activation.html:

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

7 years agoHTMLMediaElement isn't garbage collected between document reloads
fischman@chromium.org [Sat, 22 Sep 2012 04:44:29 +0000 (04:44 +0000)]
HTMLMediaElement isn't garbage collected between document reloads
https://bugs.webkit.org/show_bug.cgi?id=97020

Reviewed by Eric Carlson.

.:

Manual test added: ManualTests/audio-freed-during-reload.html

* ManualTests/audio-freed-during-reload.html:

Source/WebCore:

JS-created (as opposed to DOM-created) Audio nodes never got collected, because they
appear to always hasPendingActivity(), because m_playing is never set to false.

Manual test added: ManualTests/audio-freed-during-reload.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::stop): set m_playing = false; explicitly.

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

7 years agoFix the Lion and Snow Leopard builds.
weinig@apple.com [Sat, 22 Sep 2012 03:18:33 +0000 (03:18 +0000)]
Fix the Lion and Snow Leopard builds.

* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToWebProcessServiceForWebKitDevelopment):
(WebKit::createWebProcessServiceForWebKitDevelopment):
(WebKit::createWebProcessService):

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

7 years agoRenderMarquee causes ASSERTION FAILED: enclosingIntRect(rendererMappedResult) ==...
simon.fraser@apple.com [Sat, 22 Sep 2012 03:04:16 +0000 (03:04 +0000)]
RenderMarquee causes ASSERTION FAILED: enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()) : WebCore::FloatRect WebCore::RenderGeometryMap::absoluteRect(const WebCore::FloatRect &) const
https://bugs.webkit.org/show_bug.cgi?id=92464

Reviewed by Sam Weinig.

Marquees could cause an updateCompositingLayersAfterScroll() to be called when
we're in the middle of updating layer positions. updateCompositingLayersAfterScroll()
does a full RenderLayer tree walk, but its use of RenderGeomeryMap reveals that
it's using layers whose positions haven't been updated yet.

Fix by avoiding the updateCompositingLayersAfterScroll() if we're in the process
of updating a marquee when updating layer positions. We'll do a compositing update
soon anyway.

Tested by fast/events/tabindex-focus-blur-all.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::scrollTo):
* rendering/RenderLayer.h:
(RenderLayer):

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

7 years agoWebProcess XPC services need have their environment set without disrupting all other...
weinig@apple.com [Sat, 22 Sep 2012 02:22:26 +0000 (02:22 +0000)]
WebProcess XPC services need have their environment set without disrupting all other XPC services
https://bugs.webkit.org/show_bug.cgi?id=95161

Reviewed by Anders Carlsson.

Source/WebKit2:

Replace the WebKit2Service with two new XPC services, the WebProcessService, which is only used
when installed on the system, and the WebProcessServiceForWebKitDevelopment which is used at all
other times. We need both services because XPC can't in general be configured to have a custom
environment at runtime, and thus WebProcessServiceForWebKitDevelopment has the ability to re-exec
itself into a desired state. That capability is rather undesirable for installed usage, where we
don't want to allow arbitrary changes to the environment of the service, which would allow breaking
the App Sandbox.

* Configurations/WebProcessService.xcconfig: Copied from Source/WebKit2/Configurations/WebKit2Service.xcconfig.
* Configurations/WebProcessServiceForWebKitDevelopment.xcconfig: Renamed from Source/WebKit2/Configurations/WebKit2Service.xcconfig.
Add new configuration files.

* Platform/mac/WorkQueueMac.cpp:
(WorkQueue::registerMachPortEventHandler):
(WorkQueue::unregisterMachPortEventHandler):
Add helpful assertions. Without them, we confusingly crash a bit later in HashTable code.

* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::addDYLDEnvironmentAdditions):
Factor out environment additions to this helper function.

(WebKit::connectToWebProcessServiceForWebKitDevelopment):
(WebKit::createWebProcessServiceForWebKitDevelopment):
Add functionality to setup the webkit development service via re-exec.

(WebKit::createWebProcessService):
Add functionality to connect to the installed WebProcess service.

(WebKit::createProcess):
Factor out posix_spawn based launching into this helper function.

(WebKit::ProcessLauncher::launchProcess):
Call the correct process creation function based on launch data and install state.

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

* WebProcess/mac/WebProcessServiceEntryPoints.h: Renamed from Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.h.
* WebProcess/mac/WebProcessServiceEntryPoints.mm: Renamed from Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.mm.
(WebKit::WebProcessServiceEventHandler):
(WebProcessServiceMain):
(InitializeWebProcessForWebProcessServiceForWebKitDevelopment):
Rename to WebProcessServiceEntryPoints since this is now used for both the WebProcessService and the
WebProcessServiceForWebKitDevelopment.

* WebProcessService/Info.plist: Copied from Source/WebKit2/WebKit2Service/Info.plist.
* WebProcessService/WebProcessServiceMain.mm: Renamed from Source/WebKit2/WebKit2Service/MainMacService.mm.
Add main for the WebProcessService which just calls into the WebProcessServiceEntryPoints in WebKit2.framework.

* WebProcessServiceForWebKitDevelopment/Info.plist: Renamed from Source/WebKit2/WebKit2Service/Info.plist.
* WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm: Added.
Add main for the WebProcessServiceForWebKitDevelopment, which can't just call directly into WebProcessServiceEntryPoints
as the framework path might not be set up correctly. This is also where we re-exec ourselves when required.

Tools:

Remove setting the __XPC_* environment variables.

* Scripts/webkitdirs.pm:
(setUpGuardMallocIfNeeded):
(runMacWebKitApp):
(execMacWebKitAppForDebugging):

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

7 years agoEeeep - broke early boyer in bug#97382
barraclough@apple.com [Sat, 22 Sep 2012 02:06:25 +0000 (02:06 +0000)]
Eeeep - broke early boyer in bug#97382
https://bugs.webkit.org/show_bug.cgi?id=97383

Rubber stamped by Sam Weinig.

missed a child3 -> child2!

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileInstanceOf):

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

7 years agoFix typo in additional-platform-directory patch just landed
dpranke@chromium.org [Sat, 22 Sep 2012 01:50:32 +0000 (01:50 +0000)]
Fix typo in additional-platform-directory patch just landed
https://bugs.webkit.org/show_bug.cgi?id=97380

Unreviewed, build fix.

* Scripts/webkitpy/layout_tests/port/base.py:
(Port.relative_test_filename):
(Port.relative_perf_test_filename):

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

7 years agoUnreviewed windows build fix.
barraclough@apple.com [Sat, 22 Sep 2012 01:35:10 +0000 (01:35 +0000)]
Unreviewed windows build fix.

* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:

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

7 years agoPedantic test in Mozilla's JavaScript test suite fails. function-001.js function...
barraclough@apple.com [Sat, 22 Sep 2012 01:34:25 +0000 (01:34 +0000)]
Pedantic test in Mozilla's JavaScript test suite fails. function-001.js function-001-n.js
https://bugs.webkit.org/show_bug.cgi?id=27219

Reviewed by Sam Weinig.

These tests are just wrong.
See ECMA 262 A.5, FunctionDelcaration does not require a semicolon.

* tests/mozilla/expected.html:
* tests/mozilla/js1_2/function/function-001-n.js:
* tests/mozilla/js1_3/Script/function-001-n.js:
* tests/mozilla/js1_3/regress/function-001-n.js:

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

7 years agoRemove bogus assertions from ChildListMutationScope
adamk@chromium.org [Sat, 22 Sep 2012 01:27:52 +0000 (01:27 +0000)]
Remove bogus assertions from ChildListMutationScope
https://bugs.webkit.org/show_bug.cgi?id=97372

Reviewed by Ryosuke Niwa.

Source/WebCore:

Some asserts (and their accompanying comment) were trying to enforce
proper usage of ChildListMutationScope from WebCore, but in the
presence of MutationEvents they could fail due to arbitrary script
execution.

This change gets rid of those asserts and adds tests exercising
the (pre-existing) codepaths for handling these out-of-order cases.
Without this patch, these tests ASSERT in debug builds.

Tests: fast/mutation/added-out-of-order.html
       fast/mutation/removed-out-of-order.html

* dom/ChildListMutationScope.cpp:
(WebCore::ChildListMutationAccumulator::childAdded):
(WebCore::ChildListMutationAccumulator::willRemoveChild):
* dom/ChildListMutationScope.h:
(WebCore):

LayoutTests:

* fast/mutation/added-out-of-order-expected.txt: Added.
* fast/mutation/added-out-of-order.html: Added.
* fast/mutation/removed-out-of-order-expected.txt: Added.
* fast/mutation/removed-out-of-order.html: Added.

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

7 years agoRemove redundant argument to op_instanceof
barraclough@apple.com [Sat, 22 Sep 2012 01:18:54 +0000 (01:18 +0000)]
Remove redundant argument to op_instanceof
https://bugs.webkit.org/show_bug.cgi?id=97382

Reviewed by Geoff Garen.

No longer needed after my last change.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dump):
* bytecode/Opcode.h:
(JSC):
(JSC::padOpcodeName):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitInstanceOf):
* bytecompiler/BytecodeGenerator.h:
(BytecodeGenerator):
* bytecompiler/NodesCodegen.cpp:
(JSC::InstanceOfNode::emitBytecode):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileInstanceOf):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::privateExecute):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:

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

7 years agoFix WebKit2 sandbox profile.
andersca@apple.com [Sat, 22 Sep 2012 01:13:54 +0000 (01:13 +0000)]
Fix WebKit2 sandbox profile.

Instead of using #pragmas, just disable all warnings in DerivedSources.make. I suspect
that passing -traditional to the preprocessor disables support for #pragmas but I'm afraid
to change it to something else.

* DerivedSources.make:
* WebProcess/com.apple.WebProcess.sb.in:

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

7 years agonrwt: don't require additional-platform-directory to be an abspath or live under...
dpranke@chromium.org [Sat, 22 Sep 2012 01:00:30 +0000 (01:00 +0000)]
nrwt: don't require additional-platform-directory to be an abspath or live under LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=97380

Reviewed by Ojan Vafai.

There doesn't seem to be a good reason for this restriction and
it's useful to be able to point to directories outside the
checkout for results (e.g., for local failures due to a 10.7.4
install ;).

* Scripts/webkitpy/layout_tests/port/base.py:
(Port.relative_test_filename):
(Port.relative_perf_test_filename):
* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidDriver._command_from_driver_input):
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(_set_up_derived_options):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(MainTest.test_additional_platform_directory):

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

7 years agoREGRESSION (r129176): Incorrect line breaking when kerning occurs between a space...
mitz@apple.com [Sat, 22 Sep 2012 01:00:01 +0000 (01:00 +0000)]
REGRESSION (r129176): Incorrect line breaking when kerning occurs between a space and the following character
https://bugs.webkit.org/show_bug.cgi?id=97377

Reviewed by Enrica Casucci.

Source/WebCore:

Test: fast/text/kerning-with-TextLayout.html

When kerning is enabled, the last character in a word may have its advance shortened because
of its trailing space. To account for that, words are measured along with the trailing space,
then the width of a space is subtracted from the result. This doesn’t work when the trailing
space itself has its advance shortened due to the character following it, which can happen
when using the TextLayout optimization. However, when the optimization is used, the advance
of the last character of the word is already adjusted for the trailing space, so there is no
need to measure with that space and subtract its advance.

* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Changed to not use the trailingSpaceWidth
mechanism when TextLayout is being used.

LayoutTests:

* fast/text/kerning-with-TextLayout-expected.html: Added.
* fast/text/kerning-with-TextLayout.html: Added.

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

7 years ago[chromium] Forward-declare WebSize as a struct
aelias@chromium.org [Sat, 22 Sep 2012 00:53:53 +0000 (00:53 +0000)]
[chromium] Forward-declare WebSize as a struct
https://bugs.webkit.org/show_bug.cgi?id=97381

Reviewed by James Robinson.

The mismatched "class" forward-declaration for WebSize in this file
will cause a Clang error when it's included in Chromium.

* chromium/public/WebCompositorSoftwareOutputDevice.h:
(WebKit):

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

7 years agoUnreviewed windows build fix.
barraclough@apple.com [Sat, 22 Sep 2012 00:46:16 +0000 (00:46 +0000)]
Unreviewed windows build fix.

* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:

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

7 years agoinstanceof should not get the prototype for non-default HasInstance
barraclough@apple.com [Sat, 22 Sep 2012 00:43:03 +0000 (00:43 +0000)]
instanceof should not get the prototype for non-default HasInstance
https://bugs.webkit.org/show_bug.cgi?id=68656

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Instanceof is currently implemented as a sequance of three opcodes:
    check_has_instance
    get_by_id(prototype)
    op_instanceof
There are three interesting types of base value that instanceof can be applied to:
    (A) Objects supporting default instanceof behaviour (functions, other than those created with bind)
    (B) Objects overriding the default instancecof behaviour with a custom one (API objects, bound functions)
    (C) Values that do not respond to the [[HasInstance]] trap.
Currently check_has_instance handles case (C), leaving the op_instanceof opcode to handle (A) & (B). There are
two problems with this apporach. Firstly, this is suboptimal for case (A), since we have to check for
hasInstance support twice (once in check_has_instance, then for default behaviour in op_instanceof). Secondly,
this means that in cases (B) we also perform the get_by_id, which is both suboptimal and an observable spec
violation.

The fix here is to move handing of non-default instanceof (cases (B)) to the check_has_instance op, leaving
op_instanceof to handle only cases (A).

* API/JSCallbackObject.h:
(JSCallbackObject):
* API/JSCallbackObjectFunctions.h:
(JSC::::customHasInstance):
* API/JSValueRef.cpp:
(JSValueIsInstanceOfConstructor):
    - renamed hasInstance to customHasInstance
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dump):
    - added additional parameters to check_has_instance opcode
* bytecode/Opcode.h:
(JSC):
(JSC::padOpcodeName):
    - added additional parameters to check_has_instance opcode
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitCheckHasInstance):
    - added additional parameters to check_has_instance opcode
* bytecompiler/BytecodeGenerator.h:
(BytecodeGenerator):
    - added additional parameters to check_has_instance opcode
* bytecompiler/NodesCodegen.cpp:
(JSC::InstanceOfNode::emitBytecode):
    - added additional parameters to check_has_instance opcode
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
    - added additional parameters to check_has_instance opcode
* interpreter/Interpreter.cpp:
(JSC::isInvalidParamForIn):
(JSC::Interpreter::privateExecute):
    - Add handling for non-default instanceof to op_check_has_instance
* jit/JITInlineMethods.h:
(JSC::JIT::emitArrayProfilingSiteForBytecodeIndex):
    - Fixed no-LLInt no_DFG build
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emitSlow_op_check_has_instance):
    - check for ImplementsDefaultHasInstance, handle additional arguments to op_check_has_instance.
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
    - no need to check for ImplementsDefaultHasInstance.
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_check_has_instance):
(JSC::JIT::emitSlow_op_check_has_instance):
    - check for ImplementsDefaultHasInstance, handle additional arguments to op_check_has_instance.
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
    - no need to check for ImplementsDefaultHasInstance.
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* jit/JITStubs.h:
    - Add handling for non-default instanceof to op_check_has_instance
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
    - move check for ImplementsDefaultHasInstance, handle additional arguments to op_check_has_instance.
* runtime/ClassInfo.h:
(MethodTable):
(JSC):
    - renamed hasInstance to customHasInstance
* runtime/CommonSlowPaths.h:
(CommonSlowPaths):
    - removed opInstanceOfSlow (this was whittled down to one function call!)
* runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::customHasInstance):
* runtime/JSBoundFunction.h:
(JSBoundFunction):
    - renamed hasInstance to customHasInstance, reimplemented.
* runtime/JSCell.cpp:
(JSC::JSCell::customHasInstance):
* runtime/JSCell.h:
(JSCell):
* runtime/JSObject.cpp:
(JSC::JSObject::hasInstance):
(JSC):
(JSC::JSObject::defaultHasInstance):
* runtime/JSObject.h:
(JSObject):

LayoutTests:

* fast/js/function-bind-expected.txt:
    - check in passing result.

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

7 years agoSimplify and optimize ChildListMutationScope
adamk@chromium.org [Sat, 22 Sep 2012 00:30:48 +0000 (00:30 +0000)]
Simplify and optimize ChildListMutationScope
https://bugs.webkit.org/show_bug.cgi?id=97352

Reviewed by Ryosuke Niwa.

ChildListMutationScope is one of the most complicated bits of
MutationObserver implementation. This patch aims to simplify it for
clarity and improve its performance (mostly by just doing less).

The big change is to remove the MutationAccumulatorRouter class,
replacing it with lifetime-management logic in ChildListMutationAccumulator
ChildListMutationScope is expected to call getOrCreate() in
its constructor, and each scope holds a RefPtr to the accumulator.
When the last scope holding such a RefPtr is destroyed,
ChildListMutationAccumulator's destructor enqueues the accumulated record.

This greatly reduces the number of lines of code, and condenses
two HashMaps into one. It also reduces hash lookups, which now
occur only on scope creation and when the refcount for a given
accumulator reaches 0 (previously, each childAdded and willRemoveChild
call could result in two hash lookups each).

There are some minor changes as well: the ChildListMutationAccumulator::clear()
method is gone, as it was doing more work than necessary;
DEFINE_STATIC_LOCAL is now used instead of hand-rolled static-management
code; ChildListMutationAccumulator::m_lastAdded is no longer a RefPtr, since it
always points at a Node that's already being ref'd by the accumulator.
Also various minor syntactic cleanups.

No new tests, no change in behavior.

* dom/ChildListMutationScope.cpp:
(WebCore::accumulatorMap): Reduced two maps to one, and manage its lifetime with DEFINE_STATIC_LOCAL.
(WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator): Remove unnecessary call to clear() (which itself has been removed).
(WebCore::ChildListMutationAccumulator::~ChildListMutationAccumulator): Enqueue record if not empty at destruction, and have the accumulator
remove itself from the map.
(WebCore::ChildListMutationAccumulator::getOrCreate): Replaces half of MutationAccumulatorRouter's job.
(WebCore::ChildListMutationAccumulator::childAdded): Minor RefPtr usage improvements.
(WebCore::ChildListMutationAccumulator::isRemovedNodeInOrder): Simplify RefPtr syntax.
(WebCore::ChildListMutationAccumulator::willRemoveChild): Minor RefPtr usage improvements.
(WebCore::ChildListMutationAccumulator::enqueueMutationRecord): Replace call to clear() with clearing m_lastAdded,
since it's the only bit not cleared by the MutationRecord creation call. Also remove
isEmpty check and replace with asserts now that it's a private method.
(WebCore::ChildListMutationAccumulator::isEmpty): Added more assertions about emptiness.
* dom/ChildListMutationScope.h:
(WebCore):
(ChildListMutationAccumulator): Extract the inner class to make everything easier to read.
(WebCore::ChildListMutationScope::ChildListMutationScope): Store m_accumulator rather than m_target.
(WebCore::ChildListMutationScope::~ChildListMutationScope): ditto
(WebCore::ChildListMutationScope::childAdded): ditto
(WebCore::ChildListMutationScope::willRemoveChild): ditto
(ChildListMutationScope):
* html/HTMLElement.cpp: Remove unused ChildListMutationScope.h #include.

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

7 years agoUnreviewed. Skip this test because it relies on sandboxed-iframe-origin-add.html...
roger_fong@apple.com [Sat, 22 Sep 2012 00:16:45 +0000 (00:16 +0000)]
Unreviewed. Skip this test because it relies on sandboxed-iframe-origin-add.html which was removed in trac.webkit.org/changeset/129262.

* platform/win/Skipped:

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

7 years agofast/dom/Geolocation/disconnected-frame.html test asserts
benjamin@webkit.org [Sat, 22 Sep 2012 00:13:14 +0000 (00:13 +0000)]
fast/dom/Geolocation/disconnected-frame.html test asserts
https://bugs.webkit.org/show_bug.cgi?id=97376

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-09-21
Reviewed by Alexey Proskuryakov.

Source/WebKit2:

In GeolocationPermissionRequestManager::cancelRequestForGeolocation, we access an iterator
after its value has been removed from the table.
There are two problems with that:
-The iterator is no longer valid after the container has been modified.
-If it was the last element, the table has been freed and the iterator points to deleted memory.

We solve the issue by keeping a copy of the ID. We could have inverted the order of the calls
but that would make the issue less visible for future change.

Testing covered by fast/dom/Geolocation/disconnected-frame.html.

* WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
(WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):

LayoutTests:

* platform/wk2/Skipped:

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

7 years agoBiquadFilterNode must take audio-rate parameter changes into account
crogers@google.com [Fri, 21 Sep 2012 23:58:16 +0000 (23:58 +0000)]
BiquadFilterNode must take audio-rate parameter changes into account
https://bugs.webkit.org/show_bug.cgi?id=97369

Reviewed by Kenneth Russell.

BiquadFilterNode is currently ignoring any timeline or audio-rate changes to its parameters.
We now check if any of its parameters have timeline or audio-rate changes and, if so, take
them into account.  Otherwise, we use ordinary parameter smoothing/de-zippering which is
the case when the parameters are adjusted, for example, from a knob or slider in the UI.

* Modules/webaudio/BiquadDSPKernel.cpp:
(WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
* Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::checkForDirtyCoefficients):
* Modules/webaudio/BiquadProcessor.h:
(WebCore::BiquadProcessor::hasSampleAccurateValues):
(BiquadProcessor):

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

7 years agoUnreviewed. Fix Windows specific accessibility test results.
roger_fong@apple.com [Fri, 21 Sep 2012 23:58:05 +0000 (23:58 +0000)]
Unreviewed. Fix Windows specific accessibility test results.
Missed some new lines in http://trac.webkit.org/changeset/129255.

* platform/win/accessibility/aria-toggle-button-with-title-expected.txt:
* platform/win/accessibility/canvas-fallback-content-2-expected.txt:
* platform/win/accessibility/img-fallsback-to-title-expected.txt:
* platform/win/accessibility/svg-image-expected.txt:

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

7 years agoAdd support for OES_vertex_array_object in chromium
commit-queue@webkit.org [Fri, 21 Sep 2012 23:47:36 +0000 (23:47 +0000)]
Add support for OES_vertex_array_object in chromium
https://bugs.webkit.org/show_bug.cgi?id=96578

Patch by Brandon Jones <bajones@google.com> on 2012-09-21
Reviewed by Kenneth Russell.

Source/Platform:

Added code to allow calls to the OES_vertex_array_object extension to interface
properly with the chromium WebGL implementation.

* chromium/public/WebGraphicsContext3D.h:
(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::createVertexArrayOES):
(WebKit::WebGraphicsContext3D::deleteVertexArrayOES):
(WebKit::WebGraphicsContext3D::isVertexArrayOES):
(WebKit::WebGraphicsContext3D::bindVertexArrayOES):

Source/WebCore:

Adding basic reference counting to WebGLBuffer objects to satisfy spec requirements
for the OES_vertex_array_object extension. Added code to allow calls to the
OES_vertex_array_object extension to interface properly with the chromium WebGL
implementation.

Test: fast/canvas/webgl/oes-vertex-array-object.html

* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::deleteBuffer):
(WebCore::WebGLRenderingContext::vertexAttribPointer):
* html/canvas/WebGLVertexArrayObjectOES.cpp:
(WebCore::WebGLVertexArrayObjectOES::setElementArrayBuffer):
(WebCore):
* html/canvas/WebGLVertexArrayObjectOES.h:
(WebGLVertexArrayObjectOES):
(WebCore::WebGLVertexArrayObjectOES::getVertexAttribStateSize):
* platform/chromium/support/Extensions3DChromium.cpp:
(WebCore::Extensions3DChromium::createVertexArrayOES):
(WebCore::Extensions3DChromium::deleteVertexArrayOES):
(WebCore::Extensions3DChromium::isVertexArrayOES):
(WebCore::Extensions3DChromium::bindVertexArrayOES):

LayoutTests:

Brought over KHRONOS conformance test for OES_vertex_array_object

* fast/canvas/webgl/oes-vertex-array-object-expected.txt: Added.
* fast/canvas/webgl/oes-vertex-array-object.html: Added.
* platform/efl/Skipped:
* platform/gtk-wk2/Skipped:
* platform/mac/Skipped:
* platform/wk2/Skipped:

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

7 years agoUnreviewed, fix ARM build.
fpizlo@apple.com [Fri, 21 Sep 2012 23:40:35 +0000 (23:40 +0000)]
Unreviewed, fix ARM build.

* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::store8):
(MacroAssemblerARMv7):
* offlineasm/armv7.rb:

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

7 years ago[Chromium] Use OpenTypeVerticalData on Linux
bashi@chromium.org [Fri, 21 Sep 2012 23:35:07 +0000 (23:35 +0000)]
[Chromium] Use OpenTypeVerticalData on Linux
https://bugs.webkit.org/show_bug.cgi?id=97277

Reviewed by Tony Chang.

Source/WebCore:

Remove HarfBuzz dependency from GlyphPageTreeNodeSkia. Use OpenTypeVerticalData instead.

No new tests. Rebaselined existing tests.

* WebCore.gyp/WebCore.gyp: Added OpenTypeTypes.h and OpenTypeVerticalData.(cpp|h) for linux and android.
* platform/graphics/FontCache.cpp:
Inserted a space between > and > in typedef of FontVerticalDataCache so that making some compilers happy.
(WebCore):
* platform/graphics/SimpleFontData.h:
(SimpleFontData): Moved declaration of m_verticalData to avoid compile warnings.
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
(WebCore):
(WebCore::FontPlatformData::verticalData): Added.
(WebCore::FontPlatformData::openTypeTable): Added.
* platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
(WebCore):
(FontPlatformData):
* platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: Removed substituteWithVerticalGlyphs().
(WebCore::GlyphPage::fill):

Source/WebKit/chromium:

* features.gypi: Enable OPENTYPE_VERTICAL on linux and android.

LayoutTests:

Rebaselined vertical writing test expectations.

* platform/chromium-linux/editing/selection/vertical-lr-ltr-extend-line-backward-br-expected.png:
* platform/chromium-linux/editing/selection/vertical-lr-ltr-extend-line-forward-br-expected.png:
* platform/chromium-linux/editing/selection/vertical-rl-ltr-extend-line-backward-br-expected.png:
* platform/chromium-linux/editing/selection/vertical-rl-ltr-extend-line-backward-p-expected.png:
* platform/chromium-linux/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.png:
* platform/chromium-linux/editing/selection/vertical-rl-ltr-extend-line-forward-br-expected.png:
* platform/chromium-linux/editing/selection/vertical-rl-ltr-extend-line-forward-p-expected.png:
* platform/chromium-linux/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.png:
* platform/chromium-linux/fast/dynamic/text-combine-expected.png:
* platform/chromium-linux/fast/repaint/japanese-rl-selection-repaint-expected.png:
* platform/chromium-linux/fast/text/international/text-spliced-font-expected.png:
* platform/chromium-linux/fast/writing-mode/Kusa-Makura-background-canvas-expected.png:
* platform/chromium-linux/fast/writing-mode/border-vertical-lr-expected.png:
* platform/chromium-linux/fast/writing-mode/japanese-lr-selection-expected.png:
* platform/chromium-linux/fast/writing-mode/japanese-lr-text-expected.png:
* platform/chromium-linux/fast/writing-mode/japanese-rl-selection-expected.png:
* platform/chromium-linux/fast/writing-mode/japanese-rl-text-expected.png:
* platform/chromium-linux/fast/writing-mode/japanese-rl-text-with-broken-font-expected.png:

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

7 years agoREGRESSION (r128400): Opening Google Web Fonts page hangs or crashes
fpizlo@apple.com [Fri, 21 Sep 2012 23:29:30 +0000 (23:29 +0000)]
REGRESSION (r128400): Opening Google Web Fonts page hangs or crashes
https://bugs.webkit.org/show_bug.cgi?id=97328

Reviewed by Mark Hahnenberg.

It's a bad idea to emit stub code that reallocates property storage when we're in indexed
storage mode. DFGRepatch.cpp knew this and had the appropriate check in one of the places,
but it didn't have it in all of the places.

This change also adds some more handy disassembly support, which I used to find the bug.

* assembler/LinkBuffer.h:
(JSC):
* dfg/DFGRepatch.cpp:
(JSC::DFG::generateProtoChainAccessStub):
(JSC::DFG::tryCacheGetByID):
(JSC::DFG::tryBuildGetByIDList):
(JSC::DFG::emitPutReplaceStub):
(JSC::DFG::emitPutTransitionStub):
(JSC::DFG::tryCachePutByID):
* jit/JITStubRoutine.h:
(JSC):

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

7 years agoCrash in WebCore::Document::fullScreenChangeDelayTimerFired
commit-queue@webkit.org [Fri, 21 Sep 2012 23:20:08 +0000 (23:20 +0000)]
Crash in WebCore::Document::fullScreenChangeDelayTimerFired
https://bugs.webkit.org/show_bug.cgi?id=97367

Patch by Jeremy Apthorp <jeremya@chromium.org> on 2012-09-21
Reviewed by Abhishek Arya.

The document could be destroyed during the processing of the
fullscreenchange event, if the document was destroyed as a result of
one of the dispatchEvent calls.

This bug isn't reliably reproducible, so no new tests.

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

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

7 years agoREGRESSION (r120361) Warnings while preprocessing com.apple.WebProcess.sb.in
weinig@apple.com [Fri, 21 Sep 2012 23:18:55 +0000 (23:18 +0000)]
REGRESSION (r120361) Warnings while preprocessing com.apple.WebProcess.sb.in
https://bugs.webkit.org/show_bug.cgi?id=91079
<rdar://problem/12332660>

Reviewed by Anders Carlsson.

* WebProcess/com.apple.WebProcess.sb.in:
Add pragma to ignore the invalid preprocessor warnings.

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

7 years agoSkip fast/dom/Geolocation/disconnected-frame.html until the assertion is fixed
benjamin@webkit.org [Fri, 21 Sep 2012 23:15:13 +0000 (23:15 +0000)]
Skip fast/dom/Geolocation/disconnected-frame.html until the assertion is fixed

Unreviewed. The test assert in Debug, skip it until this has been fixed.

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-09-21

* platform/wk2/Skipped:

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

7 years agoNo need to pass order file for WebCoreTestSupport build
psolanki@apple.com [Fri, 21 Sep 2012 23:07:20 +0000 (23:07 +0000)]
No need to pass order file for WebCoreTestSupport build
https://bugs.webkit.org/show_bug.cgi?id=97363

Reviewed by David Kilzer.

No new tests because no functional change.

* Configurations/WebCoreTestSupport.xcconfig:

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

7 years agoDFG CSE assumes that a holy PutByVal does not interfere with GetArrayLength, when...
fpizlo@apple.com [Fri, 21 Sep 2012 22:59:37 +0000 (22:59 +0000)]
DFG CSE assumes that a holy PutByVal does not interfere with GetArrayLength, when it clearly does
https://bugs.webkit.org/show_bug.cgi?id=97373

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::pureCSE):
(JSC::DFG::CSEPhase::getArrayLengthElimination):
(JSC::DFG::CSEPhase::putStructureStoreElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGGraph.h:
(Graph):

LayoutTests:

* fast/js/dfg-holy-put-by-val-interferes-with-get-array-length-expected.txt: Added.
* fast/js/dfg-holy-put-by-val-interferes-with-get-array-length.html: Added.
* fast/js/jsc-test-list:
* fast/js/script-tests/dfg-holy-put-by-val-interferes-with-get-array-length.js: Added.
(foo):

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

7 years agowebkitpy: drop support for old TestExpectations syntax
dpranke@chromium.org [Fri, 21 Sep 2012 22:35:50 +0000 (22:35 +0000)]
webkitpy: drop support for old TestExpectations syntax
https://bugs.webkit.org/show_bug.cgi?id=97364

Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser._collect_matching_tests):
(TestExpectationParser):
(TestExpectationParser._tokenize_line):
* Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
(SkippedTests.test_skipped_entry_dont_exist):
(ExpectationSyntaxTests.assert_tokenize_exp):
(ExpectationSyntaxTests.test_bare_name):
(ExpectationSyntaxTests.test_bare_name_and_bugs):
(ExpectationSyntaxTests.test_comments):
(ExpectationSyntaxTests.test_config_modifiers):
(ExpectationSyntaxTests.test_unknown_config):
(ExpectationSyntaxTests.test_unknown_expectation):
(ExpectationSyntaxTests.test_skip):
(ExpectationSyntaxTests.test_slow):
(ExpectationSyntaxTests.test_wontfix):
(ExpectationSyntaxTests.test_blank_line):
(ExpectationSyntaxTests.test_warnings):
(RebaseliningTest.test_no_get_rebaselining_failures):

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

7 years agoImprove WTR unresponsiveness output a little
simon.fraser@apple.com [Fri, 21 Sep 2012 22:33:10 +0000 (22:33 +0000)]
Improve WTR unresponsiveness output a little
https://bugs.webkit.org/show_bug.cgi?id=97370

Reviewed by Timothy Horton.

Distinguish between conditions that already set the errorMessage,
and unresponsiveness due to slow about:blank loads when WTR
reports unresponsiveness.

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::invoke):

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

7 years agoRoll Chromium DEPS to r158095 to pick up typo fix in test_expectations.txt
dpranke@chromium.org [Fri, 21 Sep 2012 22:30:54 +0000 (22:30 +0000)]
Roll Chromium DEPS to r158095 to pick up typo fix in test_expectations.txt

Unreviewed, rolled DEPS.

* DEPS:

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

7 years agoUnreviewed. Skipping http/tests/security/sandboxed-iframe-origin-add.html.
roger_fong@apple.com [Fri, 21 Sep 2012 22:27:44 +0000 (22:27 +0000)]
Unreviewed. Skipping http/tests/security/sandboxed-iframe-origin-add.html.
https://bugs.webkit.org/show_bug.cgi?id=97271

* platform/win/Skipped:

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

7 years agoRoll Chromium DEPS to r158060
dpranke@chromium.org [Fri, 21 Sep 2012 22:22:49 +0000 (22:22 +0000)]
Roll Chromium DEPS to r158060

Unreviewed, rolled DEPS.

* DEPS:

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

7 years agoAdd Web Audio support for deprecated/legacy APIs
crogers@google.com [Fri, 21 Sep 2012 22:12:36 +0000 (22:12 +0000)]
Add Web Audio support for deprecated/legacy APIs
https://bugs.webkit.org/show_bug.cgi?id=97050

Reviewed by Eric Carlson.

.:

* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

The Web Audio API specification has undergone much review and some small API changes
have been made (mostly naming-related changes).  This patch adds an ENABLE_LEGACY_WEB_AUDIO
build option to allow ports to support the old names.

Tests changed:
audiobuffersource-playbackrate.html
audiobuffersource.html
note-grain-on-testing.js
oscillator-testing.js

* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.features.am:
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::startGrain):
(WebCore):
(WebCore::AudioBufferSourceNode::noteGrainOn):
* Modules/webaudio/AudioBufferSourceNode.h:
(AudioBufferSourceNode):
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::start):
(WebCore::AudioScheduledSourceNode::stop):
(WebCore):
(WebCore::AudioScheduledSourceNode::noteOn):
(WebCore::AudioScheduledSourceNode::noteOff):
* Modules/webaudio/AudioScheduledSourceNode.h:
* Modules/webaudio/Oscillator.idl:
* page/FeatureObserver.h:

Source/WebKit/chromium:

* features.gypi:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Tools:

* Scripts/webkitperl/FeatureList.pm:

LayoutTests:

* webaudio/audiobuffersource-playbackrate.html:
* webaudio/audiobuffersource.html:
* webaudio/resources/note-grain-on-testing.js:
(playGrain):
* webaudio/resources/oscillator-testing.js:
(generateExponentialOscillatorSweep):

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

7 years agowebkitpy: update remaining tests to use the new expectation syntax
dpranke@chromium.org [Fri, 21 Sep 2012 22:02:43 +0000 (22:02 +0000)]
webkitpy: update remaining tests to use the new expectation syntax
https://bugs.webkit.org/show_bug.cgi?id=97362

Reviewed by Ojan Vafai.

This patch updates all the unit tests that were still using the
old TestExpectations syntax to use the new syntax *except* for
the tests that were specifically testing that we parsed the old
syntax correctly.

Also, a block of tests for the new syntax were duplicated, so
I've deleted the duplicate.

Note that the old syntax is still supported so this change should
produce no visible changes.

* Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
(MiscTests.test_multiple_results):
(MiscTests.test_category_expectations):
(MiscTests.test_error_on_different_platform):
(MiscTests.test_error_on_different_build_type):
(MiscTests.test_overrides):
(MiscTests.test_overrides__directory):
(MiscTests.test_overrides__duplicate):
(MiscTests.test_more_specific_override_resets_skip):
(SkippedTests.check):
(SkippedTests.test_duplicate_skipped_test_fails_lint):
(SkippedTests.test_skipped_file_overrides_expectations):
(SkippedTests.test_skipped_dir_overrides_expectations):
(SkippedTests.test_skipped_file_overrides_overrides):
(SkippedTests.test_skipped_dir_overrides_overrides):
(ExpectationSyntaxTests.disabled_test_missing_expectation):
(ExpectationSyntaxTests.disabled_test_missing_colon):
(ExpectationSyntaxTests.disabled_test_too_many_colons):
(ExpectationSyntaxTests.disabled_test_too_many_equals_signs):
(ExpectationSyntaxTests):
(ExpectationSyntaxTests.test_unrecognized_expectation):
(ExpectationSyntaxTests.test_macro):
(SemanticTests.test_bug_format):
(SemanticTests.test_bad_bugid):
(SemanticTests.test_missing_bugid):
(SemanticTests.test_slow_and_timeout):
(SemanticTests.test_rebaseline):
(test_missing_file):
(test_ambiguous):
(test_more_modifiers):
(test_order_in_file):
(test_macro_overrides):
(OldExpectationParserTests):
(OldExpectationParserTests._tokenize):
(OldExpectationParserTests.test_tokenize_extra_colon):
(OldExpectationParserTests.test_tokenize_missing_equal):
(OldExpectationParserTests.test_tokenize_extra_equal):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(MainTest.test_skip_failing_tests):
(MainTest.test_additional_expectations):
* Scripts/webkitpy/style/checkers/test_expectations_unittest.py:
(TestExpectationsTestCase.test_valid_expectations):
(TestExpectationsTestCase.test_invalid_expectations):
(TestExpectationsTestCase.test_tab):

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

7 years agoUnreviewed. As in https://bugs.webkit.org/show_bug.cgi?id=92916, Windows specific...
roger_fong@apple.com [Fri, 21 Sep 2012 21:57:11 +0000 (21:57 +0000)]
Unreviewed. As in https://bugs.webkit.org/show_bug.cgi?id=92916, Windows specific results need to be added for various accessibility tests.

* platform/win/accessibility/aria-toggle-button-with-title-expected.txt: Added.
* platform/win/accessibility/canvas-fallback-content-2-expected.txt: Added.
* platform/win/accessibility/img-fallsback-to-title-expected.txt: Added.
* platform/win/accessibility/svg-image-expected.txt: Added.

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

7 years ago[Chromium] remove getFontFamilyForCharacters from PlatformSupport
pilgrim@chromium.org [Fri, 21 Sep 2012 21:43:57 +0000 (21:43 +0000)]
[Chromium] remove getFontFamilyForCharacters from PlatformSupport
https://bugs.webkit.org/show_bug.cgi?id=96282

Reviewed by Tony Chang.

Migrating away from PlatformSupport. getFontFamilyForCharacters is
moved to FontCache.h and overridden by the two platforms that
need it (Chromium Linux and Blackberry). New files for the overrides.
Part of a larger refactoring series. See tracking bug 82948.

Source/WebCore:

* PlatformBlackBerry.cmake:
* WebCore.gypi:
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
* platform/graphics/FontCache.h:
(SimpleFontFamily):
(FontCache):
* platform/graphics/blackberry/FontCacheBlackberry.cpp: Added.
(WebCore):
(WebCore::FontCache::getFontFamilyForCharacters):
* platform/graphics/blackberry/skia/PlatformSupport.cpp:
(WebCore):
* platform/graphics/blackberry/skia/PlatformSupport.h:
(PlatformSupport):
* platform/graphics/chromium/FontCacheAndroid.cpp:
(WebCore::FontCache::getFontDataForCharacters):
* platform/graphics/chromium/FontCacheChromiumLinux.cpp: Added.
(WebCore):
(WebCore::FontCache::getFontFamilyForCharacters):
* platform/graphics/skia/FontCacheSkia.cpp:
(WebCore::FontCache::getFontDataForCharacters):

Source/WebKit/chromium:

* src/PlatformSupport.cpp:
(WebCore):

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

7 years agoUnreviewed. Creating some Windows specific tests.
roger_fong@apple.com [Fri, 21 Sep 2012 21:39:32 +0000 (21:39 +0000)]
Unreviewed. Creating some Windows specific tests.
http://trac.webkit.org/changeset/128652 changed results for these tests on Mac but Windows results should stay the same.

* platform/win/fast/block/positioning: Added.
* platform/win/fast/block/positioning/016-expected.txt: Added.
* platform/win/fast/block/positioning/025-expected.txt: Added.
* platform/win/fast/block/positioning/fixed-position-stacking-context-expected.txt: Added.

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

7 years agoSource/WebCore: AX: WebKit exposes incorrect bounds for embedded SVG in HTML
cfleizach@apple.com [Fri, 21 Sep 2012 21:27:22 +0000 (21:27 +0000)]
Source/WebCore: AX: WebKit exposes incorrect bounds for embedded SVG in HTML
https://bugs.webkit.org/show_bug.cgi?id=96168

Reviewed by Eric Seidel.

Override absoluteFocusRingQuads() for SVG objects because the default
implementation relies on addFocusRingRects(). In addFocusRingRects(), SVG
objects adds local positions for its rects instead of absolute positions.

Test: accessibility/svg-bounds.html

* rendering/RenderObject.h:
(RenderObject):
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore):
(WebCore::RenderSVGModelObject::absoluteFocusRingQuads):
* rendering/svg/RenderSVGModelObject.h:
(RenderSVGModelObject):

LayoutTests: WebKit exposes incorrect bounds for embedded SVG in HTML
https://bugs.webkit.org/show_bug.cgi?id=96168

Reviewed by Eric Seidel.

* accessibility/svg-bounds.html: Added.
* platform/chromium/TestExpectations:
* platform/mac/accessibility/svg-bounds-expected.txt: Added.

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

7 years ago[WK2] Add basic testing support for Geolocation
benjamin@webkit.org [Fri, 21 Sep 2012 21:06:05 +0000 (21:06 +0000)]
[WK2] Add basic testing support for Geolocation
https://bugs.webkit.org/show_bug.cgi?id=97278

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-09-21
Reviewed by Kenneth Rohde Christiansen.

Source/WebKit2:

* Shared/API/c/WKNumber.h: Fix an unfortunate copy-paste :)

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
Remove the code forcing the Geolocation permissions. It was working around the normal
Geolocation code and updating all the GeolocationController, which is a terrible idea.

Tools:

Update the Geolocation testing to use the proper API in the UIProcess.

* WebKitTestRunner/CMakeLists.txt:
* WebKitTestRunner/GNUmakefile.am:

* WebKitTestRunner/GeolocationProviderMock.cpp: Added.
(WTR::startUpdatingCallback):
(WTR::stopUpdatingCallback):
(WTR::GeolocationProviderMock::GeolocationProvierMock):
(WTR::GeolocationProviderMock::setMockGeolocationPosition):
(WTR::GeolocationProviderMock::startUpdating):
(WTR::GeolocationProviderMock::stopUpdating):
(GeolocationProviderMock):
The GeolocationProvider store the location update and deliver them as needed.

WebCore GeolocationController do not support asynchronous update on start/stop. This is not
a problem in this case because all the messages between the WebProcess and the UIProcess are
asynchronous. Because of this, unlike GeolocationClientMock, we do not use a timer for event
delivery.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::setGeolocationPermission):
(WTR::InjectedBundle::setMockGeolocationPosition):
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setGeolocationPermission):
(WTR::TestRunner::setMockGeolocationPosition):
From the InjectedBundle, we now pass the information to the UIProcess so that
GeolocationProvider and the TestController can respond appropriately.

* WebKitTestRunner/InjectedBundle/TestRunner.h:
(TestRunner):
* WebKitTestRunner/Target.pri:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::TestController):
(WTR::decidePolicyForGeolocationPermissionRequest):
(WTR::TestController::createOtherPage):
(WTR::TestController::initialize):
(WTR::TestController::setMockGeolocationPosition):
* WebKitTestRunner/TestController.h:
(TestController):
(WTR::TestController::setGeolocationPermission):
(WTR::TestController::isGeolocationPermissionAllowed):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/win/WebKitTestRunner.vcproj:

LayoutTests:

* platform/wk2/Skipped: Unskip the passing tests.

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

7 years ago[BlackBerry] Really fix bug 95488 that user can get the authentication challenge...
commit-queue@webkit.org [Fri, 21 Sep 2012 21:02:37 +0000 (21:02 +0000)]
[BlackBerry] Really fix bug 95488 that user can get the authentication challenge dialog while the other tab has focus.
https://bugs.webkit.org/show_bug.cgi?id=97348
Internal PR: 186597.

Internally reviewed by Yong Li, Joe Mason.
Patch by Lianghui Chen <liachen@rim.com> on 2012-09-21
Reviewed by Yong Li.

Source/WebCore:

Add a singleton AuthenticationChallengeManager to manage authentication
challenge dialog. It does following things:
Record page creation/deletion, so it knows what page is present or not.
Record page visibility change so it knows when to display a dialog or not.
Accept authentication challenge, and decide whether to postpone the
    challenge dialog based on whether there is active authentication challenge
    dialog already and whether its page is visible or not.
When a challenge result comes back, notify the result to all clients
    authenticating for the same protection space, and then start the next
    authentication challenge from the same page, if there is one.
When a page becomes visible, start the first authentication challenge
    dialog that has been blocked before.

And to support this new AuthenticationChallengeManager, and making the
    challenge really asynchronous, NetworkJob has been updated to support
    the concept of "freeze", which means buffering all network loading status
    change but don't send them to NetworkJob clients.
This is necessary when authentication challenge is asynchronous, as the
    previous network loading status will likely come before user make any
    decision.

No new tests for platform specific internal change.

* PlatformBlackBerry.cmake:
* platform/blackberry/AuthenticationChallengeManager.cpp: Added.
(WebCore):
(ChallengeInfo):
(WebCore::ChallengeInfo::ChallengeInfo):
(AuthenticationChallengeManagerPrivate):
(WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
(WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
(WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
(WebCore::AuthenticationChallengeManagerPrivate::pageExists):
(WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
(WebCore::AuthenticationChallengeManager::pageCreated):
(WebCore::AuthenticationChallengeManager::pageDeleted):
(WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
(WebCore::AuthenticationChallengeManager::authenticationChallenge):
(WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
(WebCore::AuthenticationChallengeManager::notifyChallengeResult):
(WebCore::AuthenticationChallengeManager::instance):
(WebCore::AuthenticationChallengeManager::init):
* platform/blackberry/AuthenticationChallengeManager.h:
(WebCore):
(AuthenticationChallengeManager):
* platform/blackberry/PageClientBlackBerry.h:
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
(WebCore::MediaPlayerPrivate::notifyChallengeResult):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::NetworkJob):
(WebCore::NetworkJob::~NetworkJob):
(WebCore):
(WebCore::NetworkJob::handleNotifyStatusReceived):
(WebCore::NetworkJob::handleNotifyClose):
(WebCore::NetworkJob::sendRequestWithCredentials):
(WebCore::NetworkJob::notifyChallengeResult):
* platform/network/blackberry/NetworkJob.h:
(NetworkJob):

Source/WebKit/blackberry:

Update WebPage to use new AuthenticationChallengeManager.
Register page creation/deletion and visibility change to the new
    AuthenticationChallengeManager.
Initialize AuthenticationChallengeManager in GlobalInitialize() function.

* Api/BlackBerryGlobal.cpp:
(BlackBerry::WebKit::globalInitialize):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
(BlackBerry::WebKit::WebPagePrivate::~WebPagePrivate):
(BlackBerry::WebKit::WebPagePrivate::authenticationChallenge):
(BlackBerry::WebKit::WebPage::setVisible):
* Api/WebPage_p.h:
(WebPagePrivate):

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

7 years ago[WK2] Make Web Inspector work in multiple web process mode
ap@apple.com [Fri, 21 Sep 2012 20:32:18 +0000 (20:32 +0000)]
[WK2] Make Web Inspector work in multiple web process mode
https://bugs.webkit.org/show_bug.cgi?id=97354

Reviewed by Timothy Hatcher.

* UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage):
Tell WKView that it's related to original page, making inspector page be in the same process.

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

7 years agoUnreviewed, rolling out r129248.
hausmann@webkit.org [Fri, 21 Sep 2012 20:16:45 +0000 (20:16 +0000)]
Unreviewed, rolling out r129248.
http://trac.webkit.org/changeset/129248
https://bugs.webkit.org/show_bug.cgi?id=96000

Broke win build

* Target.pri:
* WebCore.vcproj/WebCore.vcproj:
* rendering/RenderingAllInOne.cpp:

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

7 years agoMake RenderingAllInOne.cpp usable for ports other than Apple/Win
hausmann@webkit.org [Fri, 21 Sep 2012 20:09:31 +0000 (20:09 +0000)]
Make RenderingAllInOne.cpp usable for ports other than Apple/Win
https://bugs.webkit.org/show_bug.cgi?id=96000

Patch by Simon Hausmann <simon.hausmann@nokia.com> on 2012-09-21
Reviewed by Ryosuke Niwa.

RenderingAllInOne.cpp unconditionally includes RenderThemeWin. This patch separates
it out from the file.

* Target.pri: Add RenderingAllInOne.cpp to the list of supported all-in-one files.
* WebCore.vcproj/WebCore.vcproj: Compile RenderThemeWin.cpp separately.
* rendering/RenderingAllInOne.cpp: Don't include RenderThemeWin.cpp here.

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

7 years agoREGRESSION (r127882): accessibility/spinbutton-value.html failing on GTK
commit-queue@webkit.org [Fri, 21 Sep 2012 20:03:57 +0000 (20:03 +0000)]
REGRESSION (r127882): accessibility/spinbutton-value.html failing on GTK
https://bugs.webkit.org/show_bug.cgi?id=96196

Patch by Joanmarie Diggs <jdiggs@igalia.com> on 2012-09-21
Reviewed by Martin Robinson.

The "regression" is that a new test was added but the support was missing
in the Gtk port for spin buttons.

Source/WebCore:

No new tests. Instead the new test which had been skipped was unskipped
as part of this fix.

* accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
(atkRole): Map SpinButtonRole to ATK_ROLE_SPIN_BUTTON
(getInterfaceMaskFromObject): Add SpinButtonRole to the roles implementing
the AtkValue interface.

Tools:

* DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:
(AccessibilityUIElement::valueDescription): Updated the FIXME comment to
indicate that this cannot be implemented until it is implemented in ATK.
URL of the newly-filed ATK bug included for reference.

LayoutTests:

* platform/gtk/TestExpectations: Unskip the new test.
* platform/gtk/accessibility/spinbutton-value-expected.txt: Added.

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

7 years ago[GTK] [Stable] Infinite recursion in WebCore::AXObjectCache::getOrCreate
commit-queue@webkit.org [Fri, 21 Sep 2012 19:40:19 +0000 (19:40 +0000)]
[GTK] [Stable] Infinite recursion in WebCore::AXObjectCache::getOrCreate
https://bugs.webkit.org/show_bug.cgi?id=96932

Patch by Joanmarie Diggs <jdiggs@igalia.com> on 2012-09-21
Reviewed by Martin Robinson.

Source/WebCore:

Make the decision based on RenderObjects rather than AccessibilityObjects
to avoid the infinite recursion which occurs when remapAriaRoleDueToParent
gets called.

Test: platform/gtk/accessibility/remapped-aria-crash.html

* accessibility/gtk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

Added a new test which replicates the recursion and crash.

* platform/gtk/accessibility/remapped-aria-crash-expected.txt: Added.
* platform/gtk/accessibility/remapped-aria-crash.html: Added.

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

7 years agoFix test_skip_and_wontfix failure
dpranke@chromium.org [Fri, 21 Sep 2012 19:35:06 +0000 (19:35 +0000)]
Fix test_skip_and_wontfix failure
https://bugs.webkit.org/show_bug.cgi?id=97225

Unreviewed, build fix.

* Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
(SemanticTests.test_skip_and_wontfix):

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

7 years ago[BlackBerry] HTML5 media does not handle SSL certificate failures
commit-queue@webkit.org [Fri, 21 Sep 2012 19:24:04 +0000 (19:24 +0000)]
[BlackBerry] HTML5 media does not handle SSL certificate failures
https://bugs.webkit.org/show_bug.cgi?id=93324

Patch by Jonathan Dong <jonathan.dong@torchmobile.com.cn> on 2012-09-21
Reviewed by Eric Carlson.

RIM PR: 116205
Passed FrameLoaderClientBlackBerry's playerId to MMRPlayer::load()
because MMRPlayer::load() added playerId as a new parameter, which
is required to initiate a MediaSSLHandlerStream to deal with
certificate failure when loading a "https" media url.

Internally reviewed by Joe Mason <jmason@rim.com>.

No new tests since there's no functional change.

* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::load):

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

7 years ago[chromium] Add setters to WebFilterOperation for IPC pickling
danakj@chromium.org [Fri, 21 Sep 2012 18:47:16 +0000 (18:47 +0000)]
[chromium] Add setters to WebFilterOperation for IPC pickling
https://bugs.webkit.org/show_bug.cgi?id=97147

Reviewed by James Robinson.

Source/Platform:

These methods allow us to restore a WebFilterOperation from a blob
of opaque data. The pickling code needs to be able to create an
empty object and then fill in the pieces, so these setters allow it
to do so.

Test: WebFilterOperationsTest.saveAndRestore

* chromium/public/WebFilterOperation.h:
(WebKit::WebFilterOperation::amount):
(WebKit::WebFilterOperation::dropShadowOffset):
(WebKit::WebFilterOperation::matrix):
(WebKit::WebFilterOperation::zoomRect):
(WebFilterOperation):
(WebKit::WebFilterOperation::createEmptyFilter):
(WebKit::WebFilterOperation::setType):
(WebKit::WebFilterOperation::setAmount):
(WebKit::WebFilterOperation::setDropShadowOffset):
(WebKit::WebFilterOperation::setDropShadowColor):
(WebKit::WebFilterOperation::setMatrix):
(WebKit::WebFilterOperation::setZoomRect):
* chromium/src/WebFilterOperation.cpp:

Source/WebKit/chromium:

* tests/FilterOperationsTest.cpp:
(WebKit):
(WebKit::TEST):

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

7 years ago[chromium] Unreviewed, remove duplicate section of WebKit.gyp pointed out by Nico.
tony@chromium.org [Fri, 21 Sep 2012 18:13:47 +0000 (18:13 +0000)]
[chromium] Unreviewed, remove duplicate section of WebKit.gyp pointed out by Nico.

* WebKit.gyp:

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

7 years agoGlobal Math object should be configurable but isn't
barraclough@apple.com [Fri, 21 Sep 2012 18:09:09 +0000 (18:09 +0000)]
Global Math object should be configurable but isn't
https://bugs.webkit.org/show_bug.cgi?id=55343

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

This has no performance impact.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
    - Make 'Math' a regular property.

LayoutTests:

Added test case.

* fast/js/math-expected.txt:
* fast/js/script-tests/math.js:
    - Added test case.

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

7 years agoUnreviewed. Rolled DEPS.
commit-queue@webkit.org [Fri, 21 Sep 2012 17:43:35 +0000 (17:43 +0000)]
Unreviewed.  Rolled DEPS.

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-09-21

* DEPS:

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

7 years ago[WebSocket] Receiving a large message is really slow
commit-queue@webkit.org [Fri, 21 Sep 2012 17:28:24 +0000 (17:28 +0000)]
[WebSocket] Receiving a large message is really slow
https://bugs.webkit.org/show_bug.cgi?id=97237

Patch by Evan Wallace <evan.exe@gmail.com> on 2012-09-21
Reviewed by Alexey Proskuryakov.

WebSocketChannel always reallocates its internal buffer when it receives
and appends new data which causes dramatic slowdowns for messages over
2 MB in size. This patch changes the internal buffer of WebSocketChannel
from a raw char array to a Vector<char> and uses its amortized append()
method. This brings the time to receive a 5 MB message from 5.2 seconds
to 0.25 seconds.

This patch is only for optimization. No new tests are needed.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::~WebSocketChannel):
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::resume):
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
(WebCore::WebSocketChannel::appendToBuffer):
(WebCore::WebSocketChannel::skipBuffer):
(WebCore::WebSocketChannel::processBuffer):
(WebCore::WebSocketChannel::resumeTimerFired):
(WebCore::WebSocketChannel::processFrame):
* Modules/websockets/WebSocketChannel.h:

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

7 years ago[GTK] Implement ViewState methods in PageClientImpl in WebKit2
carlosgc@webkit.org [Fri, 21 Sep 2012 16:50:41 +0000 (16:50 +0000)]
[GTK] Implement ViewState methods in PageClientImpl in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=97202

Reviewed by Martin Robinson.

Source/WebKit2:

Implement isViewWindowActive(), isViewFocused(), isViewVisible()
and isViewInWindow() in PageClientImpl.

* GNUmakefile.list.am: Add new files to compilation.
* UIProcess/API/C/gtk/WKView.cpp:
(WKViewSetFocus): New private method used by WTR to focus the
WebView.
* UIProcess/API/C/gtk/WKViewPrivate.h: Added.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::isViewWindowActive): Return
webkitWebViewBaseIsInWindowActive().
(WebKit::PageClientImpl::isViewFocused): Return
webkitWebViewBaseIsFocused().
(WebKit::PageClientImpl::isViewVisible): Return
webkitWebViewBaseIsVisible().
(WebKit::PageClientImpl::isViewInWindow): Return
webkitWebViewBaseIsInWindow().
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseNotifyResizerSize): Updated to not receive the
window as parameter since it's now saved in the instance struct.
(toplevelWindowResizeGripVisibilityChanged): Update to
webkitWebViewBaseNotifyResizerSize() API change.
(toplevelWindowFocusInEvent): Update ViewWindowIsActive flag and
notify the WebPageProxy if it changed.
(toplevelWindowFocusOutEvent): Ditto.
(webkitWebViewBaseSetToplevelOnScreenWindow): Set the toplevel
on-screen window where the view is currently added and notify
WebPageProxy if it changed.
(webkitWebViewBaseRealize): Call
webkitWebViewBaseSetToplevelOnScreenWindow() if the view has been
added to an on-screen window.
(webkitWebViewBaseFinalize): Reset the toplevel on-screen window
to make sure all signals are disconnected when the view is
destroyed.
(webkit_web_view_base_init): Remove unneeded initialization.
(resizeWebKitWebViewBaseFromAllocation): Update to
webkitWebViewBaseNotifyResizerSize() API change.
(webkitWebViewBaseMap): Update ViewIsVisible flag and notify
WebPageProxy if it changed.
(webkitWebViewBaseUnmap): Ditto.
(webkitWebViewBaseFocusInEvent): Call webkitWebViewBaseSetFocus()
passing true to focus the view.
(webkitWebViewBaseFocusOutEvent): Call webkitWebViewBaseSetFocus()
passing false to unfocus the view.
(webkitWebViewBaseParentSet): Reset the toplevel on-screen window
if the view is re-parented.
(webkit_web_view_base_class_init): Add implementations for map and
parent-set virtual functions.
(webkitWebViewBaseSetFocus): Update the ViewIsFocused and notify
WebPageProxy if it changed.
(webkitWebViewBaseIsInWindowActive):
(webkitWebViewBaseIsFocused):
(webkitWebViewBaseIsVisible):
(webkitWebViewBaseIsInWindow):
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewMouseTarget): Use a GTK_WINDOW_TOPLEVEL instead of
POPUP for this test to make sure the view receives focus change
events.

Tools:

* WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
(WTR::PlatformWebView::focus): Focus the view.

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

7 years agoFix build with ENABLE_WEBGL=false
commit-queue@webkit.org [Fri, 21 Sep 2012 16:41:53 +0000 (16:41 +0000)]
Fix build with ENABLE_WEBGL=false
https://bugs.webkit.org/show_bug.cgi?id=97309

Patch by Andrey Adaikin <aandrey@chromium.org> on 2012-09-21
Reviewed by Eric Seidel.

WebKit no longer builds when WEBGL is not enabled.

* rendering/FilterEffectRenderer.h:
(FilterEffectRenderer):

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

7 years ago[BlackBerry] Media player won't resize for the following source when first source...
commit-queue@webkit.org [Fri, 21 Sep 2012 16:32:03 +0000 (16:32 +0000)]
[BlackBerry] Media player won't resize for the following source when first source fail to load
https://bugs.webkit.org/show_bug.cgi?id=97342

Patch by Jonathan Dong <jonathan.dong@torchmobile.com.cn> on 2012-09-21
Reviewed by Yong Li.

As platformPlayer will notify MediaPlayerPrivate for size change
when loading metadata failed (in this case hasVideo() is false),
we should prevent MediaPlayerPrivate to set width and height
attribute of media element, otherwise we won't get the correct
dimension for the following media sources.

Internally reviewed by Max Feil.

Test case: media/video-size.html

* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::resizeSourceDimensions):

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

7 years ago[Qt] REGRESSION: 5 tests started to fail with newer Qt5
commit-queue@webkit.org [Fri, 21 Sep 2012 16:26:44 +0000 (16:26 +0000)]
[Qt] REGRESSION: 5 tests started to fail with newer Qt5
https://bugs.webkit.org/show_bug.cgi?id=90687

Patch by Marcelo Lira <marcelo.lira@openbossa.org> on 2012-09-21
Reviewed by Luiz Agostini.

When sending null data via POST method in  XMLHttpRequest the
expected Content-Type "application/x-www-form-urlencoded",
instead of "application/octet-stream". In fact that was the previously
expected value for Qt, but was changed to conform to Qt 4.8 results.

The cookie test result was updated to follow RFC 6265 behavior, as
already does chromium, gtk, and efl.

* platform/qt-5.0/Skipped:
* platform/qt/http/tests/cookies/double-quoted-value-with-semi-colon-expected.txt: Added.
* platform/qt/http/tests/xmlhttprequest/methods-expected.txt:
* platform/qt/http/tests/xmlhttprequest/workers/methods-async-expected.txt:
* platform/qt/http/tests/xmlhttprequest/workers/methods-expected.txt:
* platform/qt/http/tests/xmlhttprequest/workers/shared-worker-methods-async-expected.txt:

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

7 years agoREGRESSION (r126763): Incorrect line breaking when both kerning and word spacing...
mitz@apple.com [Fri, 21 Sep 2012 16:21:08 +0000 (16:21 +0000)]
REGRESSION (r126763): Incorrect line breaking when both kerning and word spacing are enabled
https://bugs.webkit.org/show_bug.cgi?id=97280

Reviewed by Adele Peterson.

Source/WebCore:

Font::width() never applies word spacing to the first character in the TextRun. The
TextLayout optimization tried to achieve this behavior by not applying word spacing to
any character, which led to this bug.

Test: fast/text/word-space-with-kerning-2.html

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::TextLayout::TextLayout): Changed to use the given font rather than a version
without word spacing.
(WebCore::TextLayout::width): Added a check if the run starts with a space at a non-zero
offset. If that is the case, then the ComplexTextController has added word spacing to that
space, so subtract it here in order to maintain the behavior described above.

LayoutTests:

* fast/text/word-space-with-kerning-2-expected.html: Added.
* fast/text/word-space-with-kerning-2.html: Added.

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

7 years ago[WTR] Memory leaks in InjectedBundleController::initialize()
commit-queue@webkit.org [Fri, 21 Sep 2012 16:14:01 +0000 (16:14 +0000)]
[WTR] Memory leaks in InjectedBundleController::initialize()
https://bugs.webkit.org/show_bug.cgi?id=97329

Patch by Sudarsana Nagineni <sudarsana.nagineni@intel.com> on 2012-09-21
Reviewed by Alexey Proskuryakov.

Fix leaks in InjectedBundleController::initialize() by adopting
strings created with WKStringCreateWithUTF8CString().

* TestWebKitAPI/InjectedBundleController.cpp:
(TestWebKitAPI::InjectedBundleController::initialize):

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

7 years ago[Qt][WK2] Removed duplicated code from EventSenderProxy::keyDown
commit-queue@webkit.org [Fri, 21 Sep 2012 16:11:41 +0000 (16:11 +0000)]
[Qt][WK2] Removed duplicated code from EventSenderProxy::keyDown
https://bugs.webkit.org/show_bug.cgi?id=97235

Patch by Marcelo Lira <marcelo.lira@openbossa.org> on 2012-09-21
Reviewed by Luiz Agostini.

* WebKitTestRunner/qt/EventSenderProxyQt.cpp:
(WTR::EventSenderProxy::keyDown):

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

7 years ago[EFL] Skip flaky tests to make the bots green
commit-queue@webkit.org [Fri, 21 Sep 2012 15:37:14 +0000 (15:37 +0000)]
[EFL] Skip flaky tests to make the bots green
https://bugs.webkit.org/show_bug.cgi?id=97340

Unreviewed EFL gardening. Skip flaky tests
in order to make the bots green.

Patch by Sudarsana Nagineni <sudarsana.nagineni@intel.com> on 2012-09-21

* platform/efl-wk1/TestExpectations:
* platform/efl-wk2/TestExpectations:

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

7 years agoAdd MIPS build slave to build.webkit.org
ossy@webkit.org [Fri, 21 Sep 2012 15:33:06 +0000 (15:33 +0000)]
Add MIPS build slave to build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=96713

Patch by Gergely Kis <gergely@homejinni.com> on 2012-09-21
Reviewed by Csaba Osztrogonác.

Added a build slave for MIPS, and enabled a builder for
Qt Linux MIPS32R2 little-endian release build.

* BuildSlaveSupport/build.webkit.org-config/config.json:

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

7 years agoWrong seperator for viewport meta in Popup scripts
charles.wei@torchmobile.com.cn [Fri, 21 Sep 2012 14:59:49 +0000 (14:59 +0000)]
Wrong seperator for viewport meta in Popup scripts
https://bugs.webkit.org/show_bug.cgi?id=97313

Reviewed by Yong Li.

The valid seperator for viewport meta is ',' instead of ';'.

* WebCoreSupport/PagePopupBlackBerry.cpp:
(WebCore::PagePopupBlackBerry::generateHTML):

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

7 years agoUnreviewed, rolling out r129219.
yurys@chromium.org [Fri, 21 Sep 2012 14:32:36 +0000 (14:32 +0000)]
Unreviewed, rolling out r129219.
http://trac.webkit.org/changeset/129219
https://bugs.webkit.org/show_bug.cgi?id=97338

Presumably broke Apple Mac compilation (Requested by yurys_ on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-09-21

* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
(WebCore):
* inspector/InjectedScriptCanvasModule.h:
(InjectedScriptCanvasModule):
* inspector/InspectorCanvasAgent.cpp:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorCanvasInstrumentation.h:
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):

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

7 years ago[Chromium] Switch back to a fixed fifo path for Android
peter@chromium.org [Fri, 21 Sep 2012 14:25:23 +0000 (14:25 +0000)]
[Chromium] Switch back to a fixed fifo path for Android
https://bugs.webkit.org/show_bug.cgi?id=97230

Reviewed by Tony Chang.

Because not all external storage cards will be formated using a file
system that supports named pipes, Chromium has been changed to creating
the pipes in a temporary folder on the internal storage. Adapt this in
WebKit so we can continue to run layout tests.

This also includes an *unreviewed* fix for a breakage in the webkitpy
tests I made in r129221. Two lines and related to this code, so I decided
to include it in this change.

* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidDriver.__init__):
(ChromiumAndroidDriver._setup_test):
(ChromiumAndroidDriver._update_version):

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

7 years ago[chromium] Add test for ScrollingCoordinatorChromium
commit-queue@webkit.org [Fri, 21 Sep 2012 14:11:27 +0000 (14:11 +0000)]
[chromium] Add test for ScrollingCoordinatorChromium
https://bugs.webkit.org/show_bug.cgi?id=96657

Patch by Sami Kyostila <skyostil@chromium.org> on 2012-09-21
Reviewed by James Robinson.

Add tests for ScrollingCoordinatorChromium. These tests mainly verify that
fast (non-main thread) scrolling is enabled when necessary and that a proper
compositing layer structure is created for fixed position and accelerated
scrolling layers.

Tests: ScrollingCoordinatorChromiumTest.fastScrollingByDefault
       ScrollingCoordinatorChromiumTest.fastScrollingForFixedPosition
       ScrollingCoordinatorChromiumTest.nonFastScrollableRegion
       ScrollingCoordinatorChromiumTest.wheelEventHandler
       ScrollingCoordinatorChromiumTest.touchOverflowScrolling

* WebKit.gypi:
* tests/ScrollingCoordinatorChromiumTest.cpp: Added.
(WebKit):
(MockWebViewClient):
(ScrollingCoordinatorChromiumTest):
(WebKit::ScrollingCoordinatorChromiumTest::ScrollingCoordinatorChromiumTest):
(WebKit::ScrollingCoordinatorChromiumTest::createCompositedWebViewImpl):
(WebKit::ScrollingCoordinatorChromiumTest::registerMockedHttpURLLoad):
(WebKit::ScrollingCoordinatorChromiumTest::getRootScrollLayer):
(WebKit::TEST_F):
* tests/data/fixed_position.html: Added.
* tests/data/non_fast_scrollable.html: Added.
* tests/data/touch_overflow_scrolling.html: Added.
* tests/data/wheel_event_handler.html: Added.

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

7 years ago[Qt] Unreviewed gardening.
zherczeg@webkit.org [Fri, 21 Sep 2012 14:05:36 +0000 (14:05 +0000)]
[Qt] Unreviewed gardening.

Skip a test because layoutTestController.setBackingScaleFactor() is missing
on Qt. This test timeouts at the moment, which considerably increase the testing time.

* platform/qt/Skipped:

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

7 years ago[GTK] Add WebKitWebView:is-loading property to WebKit2 GTK+ API
carlosgc@webkit.org [Fri, 21 Sep 2012 13:51:35 +0000 (13:51 +0000)]
[GTK] Add WebKitWebView:is-loading property to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=97330

Reviewed by Xan Lopez.

WebKitWebView:is-loading property allows to monitor when the view
is loading something without having to deal with load-changed
signal and all the details of the load status. This also allows to
know when a new load is started before it goes to STARTED status.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewGetProperty): Implement getter for is-loading
property.
(webkit_web_view_class_init): Add is-loading property.
(webkitWebViewSetIsLoading): Set whether web view is loading a
page and emit notify signal if the is-loading property has
changed. Also update the active URI when a new load operation has
started.
(webkitWebViewEmitLoadChanged): Set is-loading to FALSE when load
finishes.
(webkitWebViewLoadFailed): Set is-loading to FALSE when load fails.
(webkit_web_view_load_uri): Set is-loading to TRUE.
(webkit_web_view_load_html): Ditto.
(webkit_web_view_load_alternate_html): Ditto.
(webkit_web_view_load_plain_text): Ditto.
(webkit_web_view_load_request): Ditto.
(webkit_web_view_reload): Ditto.
(webkit_web_view_reload_bypass_cache): Ditto.
(webkit_web_view_is_loading): Return whether the view is loading a
page.
(webkit_web_view_go_back): Set is-loading to TRUE.
(webkit_web_view_go_forward): Ditto.
(webkit_web_view_go_to_back_forward_list_item): Ditto.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
* UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
(loadChangedCallback):
(loadFailedCallback):
* UIProcess/API/gtk/tests/TestLoaderClient.cpp:
(testWebViewIsLoading):
(beforeAll):

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

7 years ago[BlackBerry] Remove obsolete compositing surface code
anilsson@rim.com [Fri, 21 Sep 2012 13:38:28 +0000 (13:38 +0000)]
[BlackBerry] Remove obsolete compositing surface code
https://bugs.webkit.org/show_bug.cgi?id=97314

Reviewed by Antonio Gomes.

Source/WebKit:

Remove compositing surface code from build system.

PR 208038.

* PlatformBlackBerry.cmake:

Source/WebKit/blackberry:

The removed code allowed rendering of sublayers to a separate offscreen
surface.

Now that we composite root layer and all sublayers to the window
surface, this code is not needed anymore. In addition, we save some
memory by not allocating the unused offscreen surface.

PR 208038.

* Api/BackingStore.cpp:
(BlackBerry::WebKit::BackingStorePrivate::suspendScreenAndBackingStoreUpdates):
(BlackBerry::WebKit::BackingStorePrivate::blitContents):
(BlackBerry::WebKit::BackingStorePrivate::drawAndBlendLayersForDirectRendering):
* Api/BackingStore_p.h:
(BackingStorePrivate):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::setLoadState):
(BlackBerry::WebKit::WebPagePrivate::suspendBackingStore):
(BlackBerry::WebKit::WebPagePrivate::resizeSurfaceIfNeeded):
(BlackBerry::WebKit::WebPagePrivate::rootLayerCommitTimerFired):
(BlackBerry::WebKit::WebPagePrivate::setRootLayerCompositingThread):
* Api/WebPage_p.h:
(WebPagePrivate):
* WebKitSupport/BackingStoreCompositingSurface.cpp: Removed.
* WebKitSupport/BackingStoreCompositingSurface.h: Removed.
* WebKitSupport/GLES2Context.cpp:
(BlackBerry::WebKit::GLES2Context::buffer):
(BlackBerry::WebKit::GLES2Context::surfaceSize):
(BlackBerry::WebKit::GLES2Context::swapBuffers):
* WebKitSupport/GLES2Context.h:
(GLES2Context):
* WebKitSupport/SurfacePool.cpp:
(WebKit):
(BlackBerry::WebKit::SurfacePool::SurfacePool):
(BlackBerry::WebKit::SurfacePool::initialize):
* WebKitSupport/SurfacePool.h:
(SurfacePool):

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

7 years agoLeverage Chromium's code to set up FIFOs for Chromium Android layout tests
peter@chromium.org [Fri, 21 Sep 2012 13:36:14 +0000 (13:36 +0000)]
Leverage Chromium's code to set up FIFOs for Chromium Android layout tests
https://bugs.webkit.org/show_bug.cgi?id=97227

Reviewed by Tony Chang.

Source/WebKit/chromium:

Remove all fifo-related code together with the io_stream_forwarder_android
target defined in WebKitUnitTests.gyp.

* WebKitUnitTests.gyp:
* tests/ForwardIOStreamsAndroid.cpp: Removed.
* tests/ForwardIOStreamsAndroid.h: Removed.
* tests/RunAllTests.cpp:
(main):

Tools:

We switched Chromium to using FIFOs in order to achieve better consistency,
which was done by Marcus in r157541. Remove all custom WebKit code in
favor of Chromium's implementation.

Remove more FIFO code in the test runner itself, including the code in
DumpRenderTree that invoked it. We can now switch to Chromium's brand
new FIFO-creating code, which is being set-up for all test targets build
for Android, including DumpRenderTree, TestWebKitAPI and webkit_unit_tests.

This also changes the ChromiumAndroidDriver._remove_all_pipes method to
delete the files individually. "rm" would fail if one of the earlier files
does not exist, and the "-f" argument doesn't seem to be reliable.

* DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
* DumpRenderTree/chromium/TestShellAndroid.cpp:
(platformInit):
* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidDriver.__init__):
(ChromiumAndroidDriver._setup_test):
(ChromiumAndroidDriver._get_external_storage):
(ChromiumAndroidDriver._drt_cmd_line):
(ChromiumAndroidDriver._remove_all_pipes):
(ChromiumAndroidDriver.stop):
* TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp:

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

7 years ago[WK2][WKTR] EventSender needs to implement scheduleAsynchronousClick
commit-queue@webkit.org [Fri, 21 Sep 2012 13:16:17 +0000 (13:16 +0000)]
[WK2][WKTR] EventSender needs to implement scheduleAsynchronousClick
https://bugs.webkit.org/show_bug.cgi?id=97326

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-21
Reviewed by Kenneth Rohde Christiansen.

Tools:

Implement scheduleAsynchronousClick() in WebKitTestRunner's
EventSender by sending a "MouseDown" and a "MouseUp" message
asynchronously to the WebProcess.

* WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
* WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
(WTR::createMouseMessageBody):
(WTR):
(WTR::EventSendingController::mouseDown):
(WTR::EventSendingController::mouseUp):
(WTR::EventSendingController::scheduleAsynchronousClick):
* WebKitTestRunner/InjectedBundle/EventSendingController.h:
(EventSendingController):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::didReceiveMessageFromInjectedBundle):

LayoutTests:

Unskip fast/events/popup-blocking-click-in-iframe.html for
WebKit2 now that WKTR's EventSender implements
scheduleAsynchronousClick.

* platform/efl-wk2/TestExpectations:
* platform/gtk-wk2/TestExpectations:
* platform/mac-wk2/Skipped:
* platform/qt-5.0-wk2/Skipped:

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

7 years agoWeb Inspector: [Canvas] support 2D canvas instrumentation from the inspector C++...
commit-queue@webkit.org [Fri, 21 Sep 2012 12:52:17 +0000 (12:52 +0000)]
Web Inspector: [Canvas] support 2D canvas instrumentation from the inspector C++ code
https://bugs.webkit.org/show_bug.cgi?id=97203

Patch by Andrey Adaikin <aandrey@chromium.org> on 2012-09-21
Reviewed by Yury Semikhatsky.

Implements wrapping a 2D canvas context through the injected canvas module script facility.

* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::getContextCallback):
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::wrapCanvas2DContext):
(WebCore):
(WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
(WebCore::InjectedScriptCanvasModule::callWrapContextFunction):
* inspector/InjectedScriptCanvasModule.h:
(InjectedScriptCanvasModule):
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
(WebCore):
* inspector/InspectorCanvasAgent.h:
(InspectorCanvasAgent):
* inspector/InspectorCanvasInstrumentation.h:
(WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
(WebCore):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):

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

7 years agoWeb Inspector: [refactoring] simplify interface to FileOutputStream
caseq@chromium.org [Fri, 21 Sep 2012 12:49:13 +0000 (12:49 +0000)]
Web Inspector: [refactoring] simplify interface to FileOutputStream
https://bugs.webkit.org/show_bug.cgi?id=97226

Reviewed by Yury Semikhatsky.

Source/WebCore:

- change OutputStream interface to match that of stream;
- fix OutputStream implementations (FileOutputStream and those in heap profiler);
- fix usages in Timeline and HeapProfiler.

* inspector/front-end/FileUtils.js:
(WebInspector.OutputStream.prototype.write):
(WebInspector.OutputStream.prototype.close):
(WebInspector.ChunkedFileReader.prototype.start):
(WebInspector.ChunkedFileReader.prototype._onChunkLoaded):
(WebInspector.ChunkedXHRReader.prototype.start):
(WebInspector.ChunkedXHRReader.prototype._onProgress):
(WebInspector.ChunkedXHRReader.prototype._onLoad):
(WebInspector.FileOutputStream):
(WebInspector.FileOutputStream.prototype.open.callbackWrapper):
(WebInspector.FileOutputStream.prototype.open):
(WebInspector.FileOutputStream.prototype.write):
(WebInspector.FileOutputStream.prototype.close):
(WebInspector.FileOutputStream.prototype._onAppendDone):
* inspector/front-end/HeapSnapshotLoader.js:
(WebInspector.HeapSnapshotLoader.prototype.close):
(WebInspector.HeapSnapshotLoader.prototype.write):
* inspector/front-end/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotLoaderProxy.prototype.startTransfer):
(WebInspector.HeapSnapshotLoaderProxy.prototype.write):
(WebInspector.HeapSnapshotLoaderProxy.prototype.close):
* inspector/front-end/HeapSnapshotView.js:
(WebInspector.HeapProfileHeader):
(WebInspector.HeapProfileHeader.prototype.load):
(WebInspector.HeapProfileHeader.prototype._setupWorker):
(WebInspector.HeapProfileHeader.prototype.dispose):
(WebInspector.HeapProfileHeader.prototype.transferChunk.callback):
(WebInspector.HeapProfileHeader.prototype.transferChunk):
(WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
(WebInspector.HeapProfileHeader.prototype.saveToFile.onOpen):
(WebInspector.HeapProfileHeader.prototype.saveToFile):
* inspector/front-end/TimelineModel.js:
(WebInspector.TimelineModel.prototype._createFileWriter):
(WebInspector.TimelineModel.prototype.saveToFile.callback):
(WebInspector.TimelineModel.prototype.saveToFile):
(WebInspector.TimelineModelLoader):
(WebInspector.TimelineModelLoader.prototype.write):
(WebInspector.TimelineModelLoader.prototype.close):
(WebInspector.TimelineSaver):
(WebInspector.TimelineSaver.prototype.save):
(WebInspector.TimelineSaver.prototype._writeNextChunk):

LayoutTests:

- adjust tests to new FileOutputStream interface;

* inspector/profiler/heap-snapshot-loader.html:
* inspector/timeline/timeline-load.html:
* inspector/timeline/timeline-test.js:
(initialize_Timeline.InspectorTest.FakeFileReader.prototype.start):
(initialize_Timeline.InspectorTest.StringOutputStream):
(initialize_Timeline.InspectorTest.StringOutputStream.prototype.write):
(initialize_Timeline.InspectorTest.StringOutputStream.prototype.close):
(initialize_Timeline):

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

7 years ago[Qt] Error out early if we don't have ICU available
hausmann@webkit.org [Fri, 21 Sep 2012 12:49:02 +0000 (12:49 +0000)]
[Qt] Error out early if we don't have ICU available

Reviewed by Tor Arne Vestbø.

Source/WTF:

* WTF.pri:

Tools:

* qmake/mkspecs/features/configure.prf:

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

7 years agoUnreviewed. Rolled DEPS.
peter@chromium.org [Fri, 21 Sep 2012 12:16:30 +0000 (12:16 +0000)]
Unreviewed.  Rolled DEPS.

* DEPS:

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

7 years ago-webkit-clip-path is applied on elements that are not descendant of the container
achicu@adobe.com [Fri, 21 Sep 2012 12:08:06 +0000 (12:08 +0000)]
-webkit-clip-path is applied on elements that are not descendant of the container
https://bugs.webkit.org/show_bug.cgi?id=97217

Reviewed by Dirk Schulze.

Source/WebCore:

The clip-path was set on the GraphicsContext, but was never restored, thus making all the layers
rendered in the same "group" of save/restore state use the same clip-path.

Test: css3/masking/clip-path-restore.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList):
clip-path property should create a stacking-context, otherwise the RenderLayers will not be nested,
meaning that the clip-path of the parent is not going to apply correctly.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):

LayoutTests:

Added a test to check that the clip-path is removed from the GraphicsContext in the second paint call.
clip-path-circle-relative-overflow had incorrect result before, so I've udpated the results on Mac
and added test expectations for the others.

* css3/masking/clip-path-restore-expected.html: Added.
* css3/masking/clip-path-restore.html: Added.
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/css3/masking/clip-path-circle-relative-overflow-expected.png:
* platform/qt/TestExpectations:
* platform/win/Skipped:

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

7 years ago[Qt] Bail out when trying to build WebKit with Qt != 5
hausmann@webkit.org [Fri, 21 Sep 2012 12:05:41 +0000 (12:05 +0000)]
[Qt] Bail out when trying to build WebKit with Qt != 5

Reviewed by Tor Arne Vestbø.

Moved check for Qt version out of default_pre into top-level WebKit.pro,
because we never reach default_pre.prf due to the lack of .qmake.conf support
in older versions of Qt/QMake.

.:

* WebKit.pro:

Tools:

* qmake/mkspecs/features/default_pre.prf:

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

7 years agoWebKitTestRunner needs to print frame load delegate information
commit-queue@webkit.org [Fri, 21 Sep 2012 12:00:20 +0000 (12:00 +0000)]
WebKitTestRunner needs to print frame load delegate information
https://bugs.webkit.org/show_bug.cgi?id=42705

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-09-21
Reviewed by Kenneth Rohde Christiansen.

Tools:

Added missing dumping from WTR::InjectedBundlePage::didFailLoadWithErrorForFrame.

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didFailLoadWithErrorForFrame):

LayoutTests:

Unskipped corresponding test cases from wk2/Skipped, put those which still fail to an appropriate
group in wk2/Skipped.
Moved couple of http/tests/loading tests from platform/efl-wk1/TestExpectations to
platform/efl/TestExpectations as they actually fail for both WK1 EFL and WK2 EFL.

* platform/efl-wk1/TestExpectations:
* platform/efl/TestExpectations:
* platform/wk2/Skipped:

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

7 years ago[EFL] EventSender should mimic CTRL+o emacs shortcut
commit-queue@webkit.org [Fri, 21 Sep 2012 11:35:42 +0000 (11:35 +0000)]
[EFL] EventSender should mimic CTRL+o emacs shortcut
https://bugs.webkit.org/show_bug.cgi?id=97224

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-21
Reviewed by Kenneth Rohde Christiansen.

Source/WebKit/efl:

Fix bad use of temporary object causing wrong editing
callback dumping.

* WebCoreSupport/EditorClientEfl.cpp:
(WebCore::EditorClientEfl::shouldInsertText):

Tools:

Add support for mimicking CTRL+o emacs shortcut in EFL's
EventSender in DumpRenderTree and WebKitTestRunner.

* DumpRenderTree/efl/EventSender.cpp:
(sendKeyDown):
* WebKitTestRunner/efl/EventSenderProxyEfl.cpp:
(WTR::EventSenderProxy::keyDown):

LayoutTests:

Rebaseline editing/input/emacs-ctrl-o.html test now
that EFL's EventSender supports mimicking CTRL+o
emacs keyboard shortcut and unskip the test for
EFL WK2 now that the output matches the one for
EFL WK1.

* platform/efl-wk2/TestExpectations:
* platform/efl/editing/input/emacs-ctrl-o-expected.png:
* platform/efl/editing/input/emacs-ctrl-o-expected.txt:

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

7 years ago[EFL] Gardening of failing tests
commit-queue@webkit.org [Fri, 21 Sep 2012 10:31:38 +0000 (10:31 +0000)]
[EFL] Gardening of failing tests
https://bugs.webkit.org/show_bug.cgi?id=97317

Unreviewed EFL gardening.

Patch by Sudarsana Nagineni <sudarsana.nagineni@intel.com> on 2012-09-21

* platform/efl/TestExpectations:
* platform/efl/fast/text/atsui-rtl-override-selection-expected.png:
* platform/efl/fast/text/atsui-rtl-override-selection-expected.txt:

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

7 years ago[Qt] Re-fix clean builds
hausmann@webkit.org [Fri, 21 Sep 2012 10:23:26 +0000 (10:23 +0000)]
[Qt] Re-fix clean builds

Reviewed by Tor Arne Vestbø.

Re-introduce the sanitization for LIBS when creating a module to use
LIBS_PRIVATE and otherwise do _not_ use LIBS_PRIVATE. We decided to
continue to use QT, LIBS and PKGCONFIG instead of their _PRIVATE variants
throughout the code base, so just using LIBS_PRIVATE in linkAgainstLibrary()
causes build issues when depending system libraries end up in LIBS before
LIBS_PRIVATE.

* qmake/mkspecs/features/default_post.prf:
* qmake/mkspecs/features/functions.prf:

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

7 years ago[EFL] Move frame flattening tests to WK1 specific TestExpectations
commit-queue@webkit.org [Fri, 21 Sep 2012 10:17:48 +0000 (10:17 +0000)]
[EFL] Move frame flattening tests to WK1 specific TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=97315

Unreviewed EFL gardening.

Generate baselines for frame flattening tests using WK2 since the tests
are passing with it, and move the tests to WebKit1-specific
TestExpectations.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-21

* platform/efl-wk1/TestExpectations:
* platform/efl/Skipped:
* platform/efl/fast/frames/flattening/frameset-flattening-advanced-expected.png: Added.
* platform/efl/fast/frames/flattening/frameset-flattening-advanced-expected.txt: Added.
* platform/efl/fast/frames/flattening/frameset-flattening-grid-expected.png: Added.
* platform/efl/fast/frames/flattening/frameset-flattening-grid-expected.txt: Added.
* platform/efl/fast/frames/flattening/frameset-flattening-simple-expected.png: Added.
* platform/efl/fast/frames/flattening/frameset-flattening-simple-expected.txt: Added.
* platform/efl/fast/frames/flattening/frameset-flattening-subframesets-expected.png: Added.
* platform/efl/fast/frames/flattening/frameset-flattening-subframesets-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-fixed-height-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-fixed-height-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-fixed-width-and-height-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-fixed-width-and-height-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-fixed-width-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-fixed-width-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-offscreen-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-offscreen-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-out-of-view-and-scroll-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-out-of-view-and-scroll-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-out-of-view-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-out-of-view-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-out-of-view-scroll-and-relayout-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-out-of-view-scroll-and-relayout-expected.txt: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-simple-expected.png: Added.
* platform/efl/fast/frames/flattening/iframe-flattening-simple-expected.txt: Added.

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

7 years agoRemove unused functions of LocalizedDate.h
tkent@chromium.org [Fri, 21 Sep 2012 10:13:13 +0000 (10:13 +0000)]
Remove unused functions of LocalizedDate.h
https://bugs.webkit.org/show_bug.cgi?id=97311

Reviewed by Kentaro Hara.

WebCore::localizedTimeFormatText, WebCore::localizedShortTimeFormatText,
and WebCore::timeAMPMLabels are not used any more because we switched to
the corresponding functions of Localizer.

No new tests because of no behavior changes.

* platform/text/Localizer.h:
(Localizer): Moved comments from LocalizedDate.h.
* platform/text/LocalizedDate.h:
(WebCore): Removed localizedTimeFormatText,
localizedShortTimeFormatText, and timeAMPMLabels.
* platform/text/LocalizedDateICU.cpp:
(WebCore): ditto.
* platform/text/LocalizedDateWin.cpp:
(WebCore): ditto.
* platform/text/mac/LocalizedDateMac.cpp:
(WebCore): ditto.

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

7 years agoAdd datalist suggestions into DateTimeChooserParameters
keishi@webkit.org [Fri, 21 Sep 2012 10:08:31 +0000 (10:08 +0000)]
Add datalist suggestions into DateTimeChooserParameters
https://bugs.webkit.org/show_bug.cgi?id=97292

Reviewed by Kent Tamura.

Source/WebCore:

We read datalist suggestions, add them to DateTimeChooserParameters,
and pass them to the page popup.

No new tests. No behavior change yet.

* html/shadow/CalendarPickerElement.cpp:
(WebCore::CalendarPickerElement::openPopup): Read datalist suggestions and add them to DateTimeChooserParameters
* platform/DateTimeChooser.h:
(DateTimeChooserParameters): Added localizedSuggestionValues so we can show localized values inside the page popup.

Source/WebKit/chromium:

* src/DateTimeChooserImpl.cpp:
(WebKit::DateTimeChooserImpl::writeDocument): Add the necessary parameters for SuggestionPicker.

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

7 years ago[Forms] DateTimeEditElement::layout() should take date time format as a parameter
yosin@chromium.org [Fri, 21 Sep 2012 10:06:10 +0000 (10:06 +0000)]
[Forms] DateTimeEditElement::layout() should take date time format as a parameter
https://bugs.webkit.org/show_bug.cgi?id=97300

Reviewed by Kent Tamura.

This patch introduces DateTimeEditElement::LayoutParameters struct for
passing four parameters to DateTimeEditElement::layout() for passing
date time format from client of DateTimeEditElement instead of
DateTimeEditElement::layout() takes time or short time format.

This patch is a part of preparation of introducing multiple fields
date/datetime/month/week input UI.

This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.

No new tests. This patch doesn't change behavior.

* html/TimeInputType.cpp:
(WebCore::TimeInputType::updateInnerTextValue): Changed to use LayoutParmeters.
* html/shadow/DateTimeEditElement.cpp:  Removed unused include files, LocalizedDate.h and LocalizedNumber.h.
(DateTimeEditBuilder):
(WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed parameters to LayoutParmeters.
(WebCore::DateTimeEditElement::LayoutParameters::shouldHaveSecondField): Moved from DateTimeEditBuilder::needSecondField().
(WebCore::DateTimeEditElement::layout): Changed to take LayoutParameters.
(WebCore::DateTimeEditElement::setValueAsDate): ditto
(WebCore::DateTimeEditElement::setEmptyValue): ditto
* html/shadow/DateTimeEditElement.h: Removed unused classe declarations DateComponents and DateTimeEditLayouter.
(LayoutParameters):  Added to bundle parameters for layout().
(WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Added.

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

7 years agoWeb Inspector: render grid scale to the right / at bottom in case box is close to...
pfeldman@chromium.org [Fri, 21 Sep 2012 09:44:19 +0000 (09:44 +0000)]
Web Inspector: render grid scale to the right / at bottom in case box is close to 0 on that axis.
https://bugs.webkit.org/show_bug.cgi?id=97219

Reviewed by Vsevolod Vlasov.

Otherwise, it is hard to inspect objects close to (0, 0)

* inspector/InspectorOverlayPage.html:

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

7 years agoUnreviewed, rolling out r129086.
commit-queue@webkit.org [Fri, 21 Sep 2012 09:22:51 +0000 (09:22 +0000)]
Unreviewed, rolling out r129086.
http://trac.webkit.org/changeset/129086
https://bugs.webkit.org/show_bug.cgi?id=97312

Broke input rendering (Requested by shinyak on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-09-21

* html/BaseButtonInputType.cpp:
(WebCore):
* html/BaseButtonInputType.h:
(WebCore::BaseButtonInputType::BaseButtonInputType):
(BaseButtonInputType):
* html/FileInputType.cpp:
(WebCore::UploadButtonElement::create):
(WebCore::UploadButtonElement::createForMultiple):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
* html/InputType.cpp:
* html/InputType.h:
(InputType):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::RenderButton):
(WebCore::RenderButton::styleDidChange):
(WebCore::RenderButton::updateFromElement):
(WebCore):
(WebCore::RenderButton::setText):
(WebCore::RenderButton::text):
* rendering/RenderButton.h:
(RenderButton):

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

7 years agoRemove useless class prototypes from Vibration.h
commit-queue@webkit.org [Fri, 21 Sep 2012 09:16:38 +0000 (09:16 +0000)]
Remove useless class prototypes from Vibration.h
https://bugs.webkit.org/show_bug.cgi?id=97304

Patch by Kihong Kwon <kihong.kwon@samsung.com> on 2012-09-21
Reviewed by Kentaro Hara.

Remove two useless class prototype statements in the Vibration.h

* Modules/vibration/Vibration.h:

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

7 years agoUnreviewed. Changed fast/text/international/hebrew-selection.html expectation
yurys@chromium.org [Fri, 21 Sep 2012 08:01:54 +0000 (08:01 +0000)]
Unreviewed. Changed fast/text/international/hebrew-selection.html expectation
from Failure to ImageOnlyFailure to match the actual results.

* platform/chromium/TestExpectations:

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

7 years agoAdd MIPS or32 function
commit-queue@webkit.org [Fri, 21 Sep 2012 07:58:03 +0000 (07:58 +0000)]
Add MIPS or32 function
https://bugs.webkit.org/show_bug.cgi?id=97157

Patch by Chao-ying Fu <fu@mips.com> on 2012-09-21
Reviewed by Gavin Barraclough.

Add a missing or32 function.

* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::or32): New function.
(MacroAssemblerMIPS):

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

7 years agoUnreviewed. Mark accessibility/loading-iframe-updates-axtree.html as crashing
yurys@chromium.org [Fri, 21 Sep 2012 07:45:10 +0000 (07:45 +0000)]
Unreviewed. Mark accessibility/loading-iframe-updates-axtree.html as crashing
intermittently on Linux in addition to Win and Mac.

* platform/chromium/TestExpectations:

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

7 years agoUnreviewed GTK gardening.
zandobersek@gmail.com [Fri, 21 Sep 2012 07:31:46 +0000 (07:31 +0000)]
Unreviewed GTK gardening.

Rebaselining MathML tests after r129146.

* platform/gtk/mathml/presentation/attributes-expected.png:
* platform/gtk/mathml/presentation/attributes-expected.txt:
* platform/gtk/mathml/presentation/fenced-expected.png:
* platform/gtk/mathml/presentation/fenced-expected.txt:
* platform/gtk/mathml/presentation/fenced-mi-expected.png:
* platform/gtk/mathml/presentation/fenced-mi-expected.txt:
* platform/gtk/mathml/presentation/fractions-expected.png:
* platform/gtk/mathml/presentation/fractions-expected.txt:
* platform/gtk/mathml/presentation/fractions-vertical-alignment-expected.png:
* platform/gtk/mathml/presentation/fractions-vertical-alignment-expected.txt:
* platform/gtk/mathml/presentation/mo-expected.png:
* platform/gtk/mathml/presentation/mo-expected.txt:
* platform/gtk/mathml/presentation/mo-stretch-expected.png:
* platform/gtk/mathml/presentation/mo-stretch-expected.txt:
* platform/gtk/mathml/presentation/mroot-pref-width-expected.png:
* platform/gtk/mathml/presentation/mroot-pref-width-expected.txt:
* platform/gtk/mathml/presentation/over-expected.png:
* platform/gtk/mathml/presentation/over-expected.txt:
* platform/gtk/mathml/presentation/roots-expected.png:
* platform/gtk/mathml/presentation/roots-expected.txt:
* platform/gtk/mathml/presentation/row-alignment-expected.png:
* platform/gtk/mathml/presentation/row-alignment-expected.txt:
* platform/gtk/mathml/presentation/row-expected.png:
* platform/gtk/mathml/presentation/row-expected.txt:
* platform/gtk/mathml/presentation/style-expected.png:
* platform/gtk/mathml/presentation/style-expected.txt:
* platform/gtk/mathml/presentation/sub-expected.txt:
* platform/gtk/mathml/presentation/subsup-expected.png:
* platform/gtk/mathml/presentation/subsup-expected.txt:
* platform/gtk/mathml/presentation/sup-expected.png:
* platform/gtk/mathml/presentation/sup-expected.txt:
* platform/gtk/mathml/presentation/tokenElements-expected.png:
* platform/gtk/mathml/presentation/tokenElements-expected.txt:
* platform/gtk/mathml/presentation/under-expected.txt:
* platform/gtk/mathml/presentation/underover-expected.png:
* platform/gtk/mathml/presentation/underover-expected.txt:
* platform/gtk/mathml/xHeight-expected.png:
* platform/gtk/mathml/xHeight-expected.txt:

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

7 years agoPrepare CalendarPicker so we can add another picker, SuggetionPicker
keishi@webkit.org [Fri, 21 Sep 2012 07:02:20 +0000 (07:02 +0000)]
Prepare CalendarPicker so we can add another picker, SuggetionPicker
https://bugs.webkit.org/show_bug.cgi?id=97193

Reviewed by Kent Tamura.

Preparation so we can add another picker to CalendarPicker and switch
between them.

No new tests. No behavior change.

* Resources/pagepopups/calendarPicker.css:
(.calendar-picker): Added so we can apply these styles just to calendar picker.
* Resources/pagepopups/calendarPicker.js:
(CalendarPicker.validateConfig): Renamed so each picker can validate the config object.
(initialize):
(closePicker): Call Picker.cleanup().
(openCalendarPicker):
(CalendarPicker):
(CalendarPicker.prototype.cleanup): Cleanup event listener on document.body.
* Resources/pagepopups/pickerCommon.js:
(Picker.prototype.cleanup):

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

7 years ago[Chromium] Unreviewed test expectation update.
bashi@chromium.org [Fri, 21 Sep 2012 06:32:40 +0000 (06:32 +0000)]
[Chromium] Unreviewed test expectation update.

* platform/chromium/TestExpectations: Assigned new bug entry for
fast/text/international/hebrew-selection.html

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

7 years ago[EFL][WK2] Add API to feed touch event.
commit-queue@webkit.org [Fri, 21 Sep 2012 06:23:33 +0000 (06:23 +0000)]
[EFL][WK2] Add API to feed touch event.
https://bugs.webkit.org/show_bug.cgi?id=96903

Patch by Eunmi Lee <eunmi15.lee@samsung.com> on 2012-09-20
Reviewed by Kenneth Rohde Christiansen.

The applications will use this API to feed touch event to the view
when they want to generate touch event from their own event processor.
WTR also will use this API to generate touch event with multiple touch
points for passing test cases of touch event in the WebKit2/EFL.

* PlatformEfl.cmake:
* UIProcess/API/efl/EWebKit2.h:
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_feed_touch_event):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):

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

7 years agoText Autosizing: Cluster text at flow roots, for consistency and to avoid autosizing...
commit-queue@webkit.org [Fri, 21 Sep 2012 06:20:57 +0000 (06:20 +0000)]
Text Autosizing: Cluster text at flow roots, for consistency and to avoid autosizing headers/footers.
https://bugs.webkit.org/show_bug.cgi?id=97025

Patch by John Mellor <johnme@chromium.org> on 2012-09-20
Reviewed by Julien Chaffraix.

Source/WebCore:

This patch has 3 main changes:

1. All text within a "cluster" (roughly equivalent to a CSS flow root /
   block formatting context) must have a uniform textAutosizingMultiplier,
   except for subtrees which are themselves clusters. This improves the
   consistency of the final output, since sibling blocks are now more
   likely to have the same multiplier (hence grow in proportion).

2. Clusters must contain a minimum amount of text in order to be
   autosized (4 lines of text, assuming each char is 1em wide, so about
   2 lines of text in practice). This is to reduce the likelihood of
   autosizing things like headers and footers, which can be quite
   visually distracting. The rationale is that if a cluster contains
   very few lines of text then it's ok to have to zoom in and pan from
   side to side to read each line, since if there are very few lines of
   text you'll only need to pan across once or twice.

3. To avoid adding a 3rd tree traversal, processSubtree/processBox were
   refactored such that all of Text Autosizing now happens as a single
   tree traversal (hence halving the number of tree traversals done).

Tests: fast/text-autosizing/cluster-narrow-in-wide.html
       fast/text-autosizing/cluster-wide-in-narrow.html
       fast/text-autosizing/clusters-insufficient-text.html
       fast/text-autosizing/clusters-insufficient-width.html
       fast/text-autosizing/clusters-sufficient-text-except-in-root.html
       fast/text-autosizing/clusters-sufficient-width.html

* rendering/TextAutosizer.cpp:
(TextAutosizingWindowInfo):

    Added this struct to bundle together the various sizes that
    processSubtree needs to pass to every recursive call to
    processCluster and processContainer.

(WebCore::TextAutosizer::processSubtree):

    - Bundle windowSize and minLayoutSize together as a single struct,
      TextAutosizingWindowInfo, rather than passing them separately.
    - Walk up the tree to find the current cluster and container, rather
      than (incorrectly) assuming that the layoutRoot is always a
      container.
    - Call processCluster instead of traversing the tree.

(WebCore::TextAutosizer::processCluster):

    Calculates the multiplier based on the width of the cluster (moved
    the calculation here from processBox, since now the multiplier is
    fixed per cluster), and delegates to processContainer for the actual
    tree traversal (since clusters are also containers).

(WebCore::contentHeightIsConstrained):

    Changed parameter to RenderBlock.

(WebCore::TextAutosizer::processContainer):

    This now takes care of the whole tree traversal, recursively calling
    processCluster/processContainer when it encounters such an object,
    and setMultiplier on RenderText objects (as processBox used to).
    Also added a check that the RenderText's multiplier is not already
    equal to the target multiplier (to save needlessly setting it).

(WebCore::TextAutosizer::isContainer):

    - Changed to be a positive (is) instead of negative (isNot) check.
    - Require objects to be RenderBlocks so it's easier to find them
      using containingBlock, and there don't seem to be many interesting
      RenderBoxes that aren't RenderBlocks.

(WebCore::TextAutosizer::isAutosizingCluster):

    A container that is also a flow root / block formatting context
    (approximately), hence demarcates an independent region of the page,
    within which we want consistent autosizing.

(WebCore::TextAutosizer::clusterShouldBeAutosized):

    Uses measureDescendantTextWidth and to check whether the cluster
    contains enough text to be worth autosizing.

(WebCore::TextAutosizer::measureDescendantTextWidth):

    Recursively traverse the cluster, skipping constrained height
    containers as processContainer does, to measure how much autosizable
    text it contains. Early out as soon as the minimum text width is
    reached.

(WebCore::TextAutosizer::nextInPreOrderSkippingDescendantsOfContainers):

    Replaces nextInPreOrderMatchingFilter. The filter is now fixed to
    isContainer (we no longer need an isAutosizingCluster filter, since
    I consolidated the tree traversal), and filtered objects are
    actually returned (so they can in turn be recursively traversed),
    it's just their descendants that get skipped.

* rendering/TextAutosizer.h:
(TextAutosizer):

    - Deleted RenderObjectFilterFunctor, since the filter of
      nextInPreOrderSkippingDescendantsOfContainers is now fixed.

LayoutTests:

Added 6 tests (cluster*.html). Updated various other tests to have
enough text so that they continue to pass, or that if they fail, it's
for the reason that was being tested, not just because clustering
decided they had insufficient text.

* fast/text-autosizing/cluster-narrow-in-wide-expected.html: Added.
* fast/text-autosizing/cluster-narrow-in-wide.html: Copied from LayoutTests/fast/text-autosizing/em-margin-border-padding.html.
* fast/text-autosizing/cluster-wide-in-narrow-expected.html: Added.
* fast/text-autosizing/cluster-wide-in-narrow.html: Added.
* fast/text-autosizing/clusters-insufficient-text-expected.html: Added.
* fast/text-autosizing/clusters-insufficient-text.html: Added.
* fast/text-autosizing/clusters-insufficient-width-expected.html: Added.
* fast/text-autosizing/clusters-insufficient-width.html: Added.
* fast/text-autosizing/clusters-sufficient-text-except-in-root-expected.html: Added.
* fast/text-autosizing/clusters-sufficient-text-except-in-root.html: Added.
* fast/text-autosizing/clusters-sufficient-width-expected.html: Added.
* fast/text-autosizing/clusters-sufficient-width.html: Added.
* fast/text-autosizing/constrained-and-overflow-auto-ancestor-expected.html:
* fast/text-autosizing/constrained-and-overflow-auto-ancestor.html:
* fast/text-autosizing/constrained-and-overflow-hidden-ancestor-expected.html:
* fast/text-autosizing/constrained-and-overflow-hidden-ancestor.html:
* fast/text-autosizing/constrained-and-overflow-paged-x-ancestor-expected.html:
* fast/text-autosizing/constrained-and-overflow-paged-x-ancestor.html:
* fast/text-autosizing/constrained-and-overflow-scroll-ancestor-expected.html:
* fast/text-autosizing/constrained-and-overflow-scroll-ancestor.html:
* fast/text-autosizing/constrained-height-ancestor-expected.html:
* fast/text-autosizing/constrained-height-ancestor.html:
* fast/text-autosizing/constrained-maxheight-ancestor-expected.html:
* fast/text-autosizing/constrained-maxheight-ancestor.html:
* fast/text-autosizing/constrained-maxheight-expected.html:
* fast/text-autosizing/constrained-maxheight.html:
* fast/text-autosizing/constrained-percent-maxheight-expected.html:
* fast/text-autosizing/constrained-percent-maxheight.html:
* fast/text-autosizing/constrained-percent-of-viewport-maxheight-expected.html:
* fast/text-autosizing/constrained-percent-of-viewport-maxheight.html:
* fast/text-autosizing/constrained-then-overflow-ancestors-expected.html:
* fast/text-autosizing/constrained-then-overflow-ancestors.html:
* fast/text-autosizing/constrained-then-overflow-then-positioned-ancestors-expected.html:
* fast/text-autosizing/constrained-then-overflow-then-positioned-ancestors.html:
* fast/text-autosizing/constrained-then-position-absolute-ancestors-expected.html:
* fast/text-autosizing/constrained-then-position-absolute-ancestors.html:
* fast/text-autosizing/constrained-then-position-fixed-ancestors-expected.html:
* fast/text-autosizing/constrained-then-position-fixed-ancestors.html:
* fast/text-autosizing/constrained-within-overflow-ancestor-expected.html:
* fast/text-autosizing/constrained-within-overflow-ancestor.html:
* fast/text-autosizing/em-margin-border-padding-expected.html:
* fast/text-autosizing/em-margin-border-padding.html:
* fast/text-autosizing/narrow-child-expected.html:
* fast/text-autosizing/narrow-child.html:
* fast/text-autosizing/wide-child-expected.html:
* fast/text-autosizing/wide-child.html:
* fast/text-autosizing/wide-iframe-expected.html:
* fast/text-autosizing/wide-iframe.html:

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