[MediaStream API] HTMLMediaElement should be able to use MediaStream as source
https://bugs.webkit.org/show_bug.cgi?id=121943

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-11-26
Reviewed by Eric Carlson.

Source/WebCore:

Implement MediaStream direct assignment to Media Elements using the new 'srcObject'
attribute: http://www.w3.org/TR/mediacapture-streams/#direct-assignment-to-media-elements

Test: fast/mediastream/MediaStream-MediaElement-srcObject.html

* CMakeLists.txt: Added new HTMLMediaElementMediaStream.h and .cpp to cmake build.
* DerivedSources.make: Added HTMLMediaElementMediaStream.idl.
* GNUmakefile.list.am: Added new HTMLMediaElementMediaStream* to autotools build.
* WebCore.xcodeproj/project.pbxproj: Added new files.
* Modules/mediastream/HTMLMediaElementMediaStream.cpp: Added.
(WebCore::HTMLMediaElementMediaStream::srcObject): implements srcObject getter.
(WebCore::HTMLMediaElementMediaStream::setSrcObject): implements srcObject setter.
* Modules/mediastream/HTMLMediaElementMediaStream.h: Added.
* Modules/mediastream/HTMLMediaElementMediaStream.idl: Added.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setSrcObject): This is an initial implementation, and
is still incomplete, that will be addressed in a separate bug: https://webkit.org/b/124896
* html/HTMLMediaElement.h: Added m_mediaStreamSrcObject class variable
and its corresponding getter.

Source/WebKit2:

Add mediastream module and platform to cmake include directories.

* CMakeLists.txt:

LayoutTests:

Add layout tests to MediaStream direct assignment to HTMLMediaElement
using brand new srcObject attribute.

* fast/mediastream/MediaStream-MediaElement-srcObject-expected.txt: Added.
* fast/mediastream/MediaStream-MediaElement-srcObject.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159797 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Restructure global variable constant inference so that it could work for any kind of symbol table variable
https://bugs.webkit.org/show_bug.cgi?id=124760

Reviewed by Oliver Hunt.
        
This changes the way global variable constant inference works so that it can be reused
for closure variable constant inference. Some of the premises that originally motivated
this patch are somewhat wrong, but it led to some simplifications anyway and I suspect
that we'll be able to fix those premises in the future. The main point of this patch is
to make it easy to reuse global variable constant inference for closure variable
constant inference, and this will be possible provided we can also either (a) infer
one-shot closures (easy) or (b) infer closure variables that are always assigned prior
to first use.
        
One of the things that this patch is meant to enable is constant inference for closure
variables that may be part of a multi-shot closure. Closure variables may be
instantiated multiple times, like:
        
    function foo() {
        var WIDTH = 45;
        function bar() {
            ... use WIDTH ...
        }
        ...
    }
        
Even if foo() is called many times and WIDTH is assigned to multiple times, that
doesn't change the fact that it's a constant. The goal of closure variable constant
inference is to catch any case where a closure variable has been assigned at least once
and its value has never changed. This patch doesn't implement that, but it does change
global variable constant inference to have most of the powers needed to do that. Note
that most likely we will use this functionality only to implement constant inference
for one-shot closures, but the resulting machinery is still simpler than what we had
before.
        
This involves three changes:
        
    - The watchpoint object now contains the inferred value. This involves creating a
      new kind of watchpoint set, the VariableWatchpointSet. We will reuse this object
      for closure variables.
        
    - Writing to a variable that is watchpointed still involves these three states that
      we proceed through monotonically (Uninitialized->Initialized->Invalidated) but
      now, the Initialized->Invalidated state transition only happens if we change the
      variable's value, rather than store to the variable. Repeatedly storing the same
      value won't change the variable's state.
        
    - On 64-bit systems (the only systems on which we do concurrent JIT), you no longer
      need fancy fencing to get a consistent view of the watchpoint in the JIT. The
      state of the VariableWatchpointSet for the purposes of constant folding is
      entirely encapsulated in the VariableWatchpointSet::m_inferredValue. If that is
      JSValue() then you cannot fold (either because the set is uninitialized or
      because it's invalidated - doesn't matter which); on the other hand if the value
      is anything other than JSValue() then you can fold, and that's the value you fold
      to. Simple!
        
This also changes the way that DFG IR deals with variable watchpoints. It's now
oblivious to global variables. You install a watchpoint using VariableWatchpoint and
you notify write using NotifyWrite. Easy!
        
Note that this will requires some more tweaks because of the fact that op_enter will
store Undefined into every captured variable. Hence it won't even work for one-shot
closures. One-shot closures are easily fixed by introducing another state (so we'll
have Uninitialized->Undefined->Initialized->Invalidated). Multi-shot closures will
require static analysis. One-shot closures are clearly a higher priority.

* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/Instruction.h:
* bytecode/VariableWatchpointSet.h: Added.
(JSC::VariableWatchpointSet::VariableWatchpointSet):
(JSC::VariableWatchpointSet::~VariableWatchpointSet):
(JSC::VariableWatchpointSet::inferredValue):
(JSC::VariableWatchpointSet::notifyWrite):
(JSC::VariableWatchpointSet::invalidate):
(JSC::VariableWatchpointSet::finalizeUnconditionally):
(JSC::VariableWatchpointSet::addressOfInferredValue):
* bytecode/Watchpoint.h:
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasRegisterPointer):
(JSC::DFG::Node::hasVariableWatchpointSet):
(JSC::DFG::Node::variableWatchpointSet):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithMod):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGWatchpointCollectionPhase.cpp:
(JSC::DFG::WatchpointCollectionPhase::handle):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileNotifyWrite):
* jit/JIT.h:
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitNotifyWrite):
(JSC::JIT::emitPutGlobalVar):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitNotifyWrite):
(JSC::JIT::emitPutGlobalVar):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):
* runtime/JSGlobalObject.h:
* runtime/JSScope.h:
(JSC::ResolveOp::ResolveOp):
* runtime/JSSymbolTableObject.h:
(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributes):
* runtime/SymbolTable.cpp:
(JSC::SymbolTableEntry::inferredValue):
(JSC::SymbolTableEntry::prepareToWatch):
(JSC::SymbolTableEntry::addWatchpoint):
(JSC::SymbolTableEntry::notifyWriteSlow):
(JSC::SymbolTable::visitChildren):
(JSC::SymbolTable::WatchpointCleanup::WatchpointCleanup):
(JSC::SymbolTable::WatchpointCleanup::~WatchpointCleanup):
(JSC::SymbolTable::WatchpointCleanup::finalizeUnconditionally):
* runtime/SymbolTable.h:
(JSC::SymbolTableEntry::watchpointSet):
(JSC::SymbolTableEntry::notifyWrite):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159798 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ASSERT_WITH_SECURITY_IMPLICATION should crash in a distinct way.
https://bugs.webkit.org/show_bug.cgi?id=124757

Change ASSERT_WITH_SECURITY_IMPLICATION to access a different address from CRASH()
in order to help screen fuzzing bugs.

Patch by Drew Yao <ayao@apple.com> on 2013-11-26
Reviewed by Brent Fulgham.

* wtf/Assertions.cpp:
* wtf/Assertions.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159799 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Don't parent the TileController root layer in two places
https://bugs.webkit.org/show_bug.cgi?id=124873

Reviewed by Brent Fulgham.

* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
The TileController's layer is already parented by callers of
TileController::create, and in a special way. TileController
shouldn't parent itself, anyway...


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Enable aggressive DFG validation in testing
https://bugs.webkit.org/show_bug.cgi?id=124911

Rubber stamped by Ryosuke Niwa.
        
This enables validation testing in non-concurrent-JIT runs.

* Scripts/run-jsc-stress-tests:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Import W3C tests for cloning template elements and default stylesheet for template element
https://bugs.webkit.org/show_bug.cgi?id=124882

Reviewed by Andreas Kling.

Imported tests under html-templates/additions-to-the-steps-to-clone-a-node and
html-templates/additions-to-the-css-user-agent-style-sheet at d38dbd5b492808811bc0fe04a8cc49f28863c5cc.

Renamed and replicated css-user-agent-style-sheet-test-001-ref.html as -00*-expected.html for ref testing.

* html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001-expected.html: Added.
* html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001.html: Added.
* html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-002-expected.html: Added.
* html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-002.html: Added.
* html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-003-expected.html: Added.
* html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-003.html: Added.
* html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children-expected.txt: Added.
* html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children.html: Added.
* html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner-expected.txt: Added.
* html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove replay performance tests as it's not actively maintained
https://bugs.webkit.org/show_bug.cgi?id=124764

Reviewed by Andreas Kling.

PerformanceTests:

Removed the replay performance tests. We can add them back when time comes.

* Replay/Chinese/chinaz.com.replay: Removed.
* Replay/Chinese/www.163.com.replay: Removed.
* Replay/Chinese/www.alipay.com.replay: Removed.
* Replay/Chinese/www.baidu.com.replay: Removed.
* Replay/Chinese/www.csdn.net.replay: Removed.
* Replay/Chinese/www.douban.com.replay: Removed.
* Replay/Chinese/www.hao123.com.replay: Removed.
* Replay/Chinese/www.xinhuanet.com.replay: Removed.
* Replay/Chinese/www.xunlei.com.replay: Removed.
* Replay/Chinese/www.youku.com.replay: Removed.
* Replay/English/beatonna.livejournal.com.replay: Removed.
* Replay/English/cakewrecks.blogspot.com.replay: Removed.
* Replay/English/chemistry.about.com.replay: Removed.
* Replay/English/digg.com.replay: Removed.
* Replay/English/en.wikipedia.org-rorschach_test.replay: Removed.
* Replay/English/icanhascheezburger.com.replay: Removed.
* Replay/English/imgur.com-gallery.replay: Removed.
* Replay/English/online.wsj.com.replay: Removed.
* Replay/English/stockoverflow.com-best-comment.replay: Removed.
* Replay/English/www.alibaba.com.replay: Removed.
* Replay/English/www.amazon.com-kindle.replay: Removed.
* Replay/English/www.apple.com.replay: Removed.
* Replay/English/www.cnet.com.replay: Removed.
* Replay/English/www.dailymotion.com.replay: Removed.
* Replay/English/www.ehow.com-prevent-fire.replay: Removed.
* Replay/English/www.filestube.com-amy-adams.replay: Removed.
* Replay/English/www.foxnews.replay: Removed.
* Replay/English/www.huffingtonpost.com.replay: Removed.
* Replay/English/www.imdb.com-twilight.replay: Removed.
* Replay/English/www.mozilla.com-all-order.replay: Removed.
* Replay/English/www.php.net.replay: Removed.
* Replay/English/www.reddit.com.replay: Removed.
* Replay/English/www.telegraph.co.uk.replay: Removed.
* Replay/English/www.w3.org-htmlcss.replay: Removed.
* Replay/English/www.w3schools.com-html.replay: Removed.
* Replay/English/www.youtube.com-music.replay: Removed.
* Replay/French/www.orange.fr.replay: Removed.
* Replay/Italian/www.repubblica.it.replay: Removed.
* Replay/Japanese/2ch.net-newsplus.replay: Removed.
* Replay/Japanese/entameblog.seesaa.net.replay: Removed.
* Replay/Japanese/ja.wikipedia.org.replay: Removed.
* Replay/Japanese/www.hatena.ne.jp.replay: Removed.
* Replay/Japanese/www.livedoor.com.replay: Removed.
* Replay/Japanese/www.nicovideo.jp.replay: Removed.
* Replay/Japanese/www.rakuten.co.jp.replay: Removed.
* Replay/Japanese/www.yahoo.co.jp.replay: Removed.
* Replay/Korean/www.naver.com.replay: Removed.
* Replay/Persian/blogfa.com.replay: Removed.
* Replay/Polish/www.wp.pl.replay: Removed.
* Replay/Portuguese/www.uol.com.br.replay: Removed.
* Replay/Russian/lenta.ru.replay: Removed.
* Replay/Russian/vkontakte.ru-help.replay: Removed.
* Replay/Russian/www.ixbt.com.replay: Removed.
* Replay/Russian/www.kp.ru.replay: Removed.
* Replay/Russian/www.liveinternet.ru.replay: Removed.
* Replay/Russian/www.pravda.ru.replay: Removed.
* Replay/Russian/www.rambler.ru.replay: Removed.
* Replay/Russian/www.ucoz.ru.replay: Removed.
* Replay/Russian/www.yandex.ru.replay: Removed.
* Replay/Spanish/www.taringa.net.replay: Removed.
* Replay/Swedish/www.flashback.se.replay: Removed.
* Replay/Swedish/www.tradera.com.replay: Removed.
* Replay/www.google.com.replay: Removed.
* Replay/www.techcrunch.com.replay: Removed.
* Replay/www.youtube.com.replay: Removed.

Tools:

Removed the feature.

* Scripts/webkitpy/performance_tests/perftest.py:
(SingleProcessPerfTest.__init__):
(PerfTestFactory):
* Scripts/webkitpy/performance_tests/perftest_unittest.py:
* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._parse_args):
(PerfTestsRunner._collect_tests):
* Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(MainTest.test_collect_tests_with_ignored_skipped_list):
(MainTest.test_default_args):
* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook.find_module):
(AutoinstallImportHook._install_unittest2):
* Scripts/webkitpy/thirdparty/__init___unittest.py:
(ThirdpartyTest.test_imports):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159803 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Enable HTML template element on Windows ports
https://bugs.webkit.org/show_bug.cgi?id=124758

Reviewed by Andreas Kling.

Tools: 

* Scripts/webkitperl/FeatureList.pm:

WebKitLibraries: 

Enable TEMPLATE_ELEMENT. Also removed UNDO_MANAGER since that feature has been removed
from the tree in r133326.

* win/tools/vsprops/FeatureDefines.props:
* win/tools/vsprops/FeatureDefinesCairo.props:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159804 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Record subtest values in Dromaeo tests
https://bugs.webkit.org/show_bug.cgi?id=124498

Reviewed by Andreas Kling.

PerformanceTests: 

Made Dromaeo's test runner report values in DRT.progress via newly added PerfTestRunner.reportValues.

* Dromaeo/resources/dromaeorunner.js:
(.): Moved the definition out of DRT.setup.
(DRT.setup): Ditto.
(DRT.testObject): Extracted from DRT.setup. Set the subtest name and continueTesting.
continueTesting is set true for subtests; i.e. when name is specified.
(DRT.progress): Call PerfTestRunner.reportValues to report subtest results.
(DRT.teardown): Call PerfTestRunner.reportValues instead of measureValueAsync.

* resources/runner.js: Made various changes for newly added PerfTestRunner.reportValues.
(.): Moved the initialization of completedIterations, results, jsHeapResults, and mallocHeapResults into
start since they need to be initialized before running each subtest. Initialize logLines here since we
need to use the same logger for all subtests.
(.start): Initialize the variables mentioned above here. Also respect doNotLogStart used by reportValues.
(ignoreWarmUpAndLog): Added doNotLogProgress. Used by reportValues since it reports all values at once.
(finish): Compute the metric name such as FrameFrame and Runs from unit. Also don't log or notify done
when continueTesting is set on the test object.
(PerfTestRunner.reportValues): Added. Reports all values for the main/sub test.

Tools: 

Supported parsing subtest results.

* Scripts/webkitpy/performance_tests/perftest.py: Replaced _metrics with an ordered list of subtests, each of
which contains a dictionary with its name and an ordered list of subtest's metrics.
(PerfTest.__init__): Initialize _metrics as a list.
(PerfTest.run): Go through each subtest and its metrics to create a list of TestMetrics.
(PerfTest._run_with_driver):
(PerfTest._ensure_metrics): Look for a subtest then a metric in _metrics.

* Scripts/webkitpy/performance_tests/perftest_unittest.py:
(TestPerfTest._assert_results_are_correct): Updated the assertions per changes to _metrics.
(TestPerfTest.test_parse_output): Ditto.
(TestPerfTest.test_parse_output_with_subtests): Added the metric and the unit on each subtest result as well as
assertions to ensure subtest results are parsed properly.
(TestReplayPerfTest.test_run_with_driver_accumulates_results): Updated the assertions per changes to _metrics.
(TestReplayPerfTest.test_run_with_driver_accumulates_memory_results): Dittp.

* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(_generate_results_dict): When the metric for a subtest is processed before that of the main test, the url is
incorrectly suffixed with '/'. Fix this later by re-computing the url with TestPerfMetric.test_file_name when
adding new results.

* Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
(TestWithSubtestsData): Added.
(TestDriver.run_test):
(MainTest.test_run_test_with_subtests): Added.

LayoutTests: 

Rebaselined the test.

* fast/harness/perftests/runs-per-second-log-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Nix upstreaming - Adding build files and supporting scripts
https://bugs.webkit.org/show_bug.cgi?id=118367

Reviewed by Ryosuke Niwa.

.:

* CMakeLists.txt:
* Source/CMakeLists.txt:
* Source/cmake/FindEGL.cmake:
* Source/cmake/FindOpenGLES2.cmake: Added.
* Source/cmake/OptionsCommon.cmake:
* Source/cmake/OptionsNix.cmake: Added.

Source/Platform:

* CMakeLists.txt: Added.
* PlatformNix.cmake: Added.

Source/WebCore:

No new tests needed.

* CMakeLists.txt:
* PlatformNix.cmake: Added.

Source/WTF:

* wtf/FeatureDefines.h:
* wtf/Platform.h:
* wtf/PlatformNix.cmake: Added.

Tools:

* Scripts/build-webkit:
* Scripts/run-nix-tests: Added.
* Scripts/run-webkit-tests:
* Scripts/update-webkit-libs-jhbuild:
* Scripts/update-webkitnix-libs: Added.
* Scripts/webkitdirs.pm:
(determineArchitecture):
(argumentsForConfiguration):
(jscProductDir):
(builtDylibPathForName):
(determineIsNix):
(isNix):
(isAppleWebKit):
(launcherPath):
(launcherName):
(checkRequiredSystemConfig):
(copyInspectorFrontendFiles):
(jhbuildWrapperPrefixIfNeeded):
(buildCMakeProjectOrExit):
(cmakeBasedPortName):
* Scripts/webkitpy/common/config/ports.py:
(DeprecatedPort.port):
(EflWK2Port.build_webkit_command):
(NixPort):
(NixPort.build_webkit_command):
* Scripts/webkitpy/port/factory.py:
(platform_options):
(PortFactory):
* Scripts/webkitpy/port/nix.py: Added.
(NixPort):
(NixPort._wk2_port_name):
(NixPort.determine_full_port_name):
(NixPort.__init__):
(NixPort._port_flag_for_scripts):
(NixPort.setup_test_run):
(NixPort.setup_environ_for_server):
(NixPort.default_timeout_ms):
(NixPort.clean_up_test_run):
(NixPort._generate_all_test_configurations):
(NixPort._path_to_driver):
(NixPort._path_to_image_diff):
(NixPort._image_diff_command):
(NixPort._search_paths):
(NixPort.show_results_html_file):
(NixPort._port_specific_expectations_files):
(NixPort.default_baseline_search_path):
* Scripts/webkitpy/port/nix_unittest.py: Added.
(NixPortTest):
(NixPortTest._assert_search_path):
(NixPortTest._assert_expectations_files):
(NixPortTest.test_baseline_search_path):
(NixPortTest.test_expectations_files):
(NixPortTest.test_default_timeout_ms):
* jhbuild/jhbuild-wrapper:
(determine_platform):
* nix/common.py: Added.
(script_path):
(top_level_path):
* nix/jhbuild.modules: Added.
* nix/jhbuildrc: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Windows rebaselines after r158547.

* platform/win/editing/selection/collapse-selection-in-bidi-expected.txt: Added.
* platform/win/editing/selection/drag-text-delay-expected.txt: Added.
* platform/win/editing/selection/extend-selection-home-end-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
https://bugs.webkit.org/show_bug.cgi?id=103312

Reviewed by Andreas Kling.

PerformanceTests:

Use the repeat() syntax to build the huge grids used by the
performance tests.

* Layout/auto-grid-lots-of-data.html:
* Layout/fixed-grid-lots-of-data.html:

Source/WebCore:

Added support for the repeat() syntax inside
grid-definition-{rows|columns} by just adding the repeated values
to our list of column|row definitions.

The parsing of <track-name> was refactored in a new function as
it's used now in three different places. The <track-size> parsing
was also refactored to share it with the repeat() parsing.

Test: fast/css-grid-layout/grid-element-repeat-get-set.html

* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridTrackNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):
* css/CSSParser.h:

LayoutTests:

Based on Blink r153155 by <jchaffraix@chromium.org>. Some code was
refactored in a helper function to have a more compact test.

* fast/css-grid-layout/grid-element-repeat-get-set-expected.txt: Added.
* fast/css-grid-layout/grid-element-repeat-get-set.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] Fix positioning of grid items with margins
https://bugs.webkit.org/show_bug.cgi?id=124345

Reviewed by David Hyatt.

From Blink r157925 and r158041 by <jchaffraix@chromium.org>

Source/WebCore:

Test: fast/css-grid-layout/grid-item-margin-resolution.html

Adds margin start/before to the positions of grid items (removing
several FIXME's in the current code). This means calling
findChildLogicalPosition() after the layout in order to have the
right values for the margins.

In order to match flexbox and author's intents we're also
including the margins of grid items in the intrinsic size of the
grid. That's why flexbox's marginLogicalPositionForChild() is
moved up to RenderBlock in order to share it with RenderGrid.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::marginIntrinsicLogicalWidthForChild): Moved
from RenderFlexibleBox::marginLogicalWidthForChild().
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computePreferredTrackWidth):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::findChildLogicalPosition):

LayoutTests:

New test case for grid items margin resolution. Extended the
preferred logical widths checks with grid items with margins.

* fast/css-grid-layout/grid-item-margin-resolution-expected.txt: Added.
* fast/css-grid-layout/grid-item-margin-resolution.html: Added.
* fast/css-grid-layout/grid-preferred-logical-widths-expected.txt:
* fast/css-grid-layout/grid-preferred-logical-widths.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GStreamer] Invalid command line error when visiting www.chessbase.com
https://bugs.webkit.org/show_bug.cgi?id=124715

Reviewed by Philippe Normand.

Source/WebCore:

We were not handling the HTTP errors in the WebKit GStreamer
source and therefore the 404 error page was being 'decoded'. As no
decoder could be found (for obvious reasons), playback failed, but
it should be failing for the source not being found instead of the
decoding problem.

Test: http/tests/media/video-error-does-not-exist.html

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient::handleResponseReceived): Handle HTTP errors in
the source and raise a GStreamer error to the pipeline.

LayoutTests:

Copied and adapted for HTTP from
media/video-error-does-not-exist.html.

* http/tests/media/video-error-does-not-exist-expected.txt: Added.
* http/tests/media/video-error-does-not-exist.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Programs/WebKit2APITests/TestWebKitSettings unit test is failing
https://bugs.webkit.org/show_bug.cgi?id=124924

Reviewed by Carlos Garcia Campos.

'Chrome'/'Chromium' substrings were removed from the user agent string in r159572, meaning the unit
test shouldn't check for those two substrings anymore. Instead, 'Safari' (as until now) and 'AppleWebKit'
substrings should be checked for.

* UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
(testWebKitSettingsUserAgent):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed EFL gardening

Add test expectations for flaky tests.

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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSActivation constructor should use NotNull placement new.
<https://webkit.org/b/124909>

Knock a null check outta the storage initialization loop.

Reviewed by Antti Koivisto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Structure::m_staticFunctionReified should be a single bit.
<https://webkit.org/b/124912>

Shave 8 bytes off of JSC::Structure by jamming m_staticFunctionReified
into the bitfield just above.

Reviewed by Antti Koivisto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
run_webkit_tests.py: error: no such option: --wincairo
https://bugs.webkit.org/show_bug.cgi?id=124927

Patch by Jozsef Berta <jberta@inf.u-szeged.hu> on 2013-11-27
Reviewed by Ryosuke Niwa.

* BuildSlaveSupport/build.webkit.org-config/config.json: The run_webkit_tests.py doesn't supports
the layout testing on wincairo, so it is turned off.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fix after r159805.

* resources/runner.js:

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