BUILD FIX: RenderLayerFilterInfo.h needs to include Element.h with ENABLE(SVG)

Fixes the following build failures:

    In file included from Source/WebCore/rendering/RenderLayerFilterInfo.cpp:33:
    Source/WebCore/rendering/RenderLayerFilterInfo.h:118:19: error: use of undeclared identifier 'Element'
        Vector<RefPtr<Element> > m_internalSVGReferences;
                      ^
    Source/WebCore/rendering/RenderLayerFilterInfo.h:118:28: error: expected a type
        Vector<RefPtr<Element> > m_internalSVGReferences;
                               ^
    Source/WebCore/rendering/RenderLayerFilterInfo.h:118:30: error: private field 'm_internalSVGReferences' is not used [-Werror,-Wunused-private-field]
        Vector<RefPtr<Element> > m_internalSVGReferences;
                                 ^
    3 errors generated.

* rendering/RenderLayerFilterInfo.h: Include Element.h within
ENABLE(SVG).  Move ENABLE(SVG) block below unconditional
headers.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] IDLParser.pm fails to parse OESTextureHalfFloat and causes a build failure
https://bugs.webkit.org/show_bug.cgi?id=111267

Reviewed by Kentaro Hara.

Allow empty definitions.

* bindings/scripts/IDLParser.pm:
(Parse):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144575 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Plug-ins that are appropriately large w.r.t page size should autostart
https://bugs.webkit.org/show_bug.cgi?id=111242

Reviewed by Brady Eidson.

A "full-page" plug-in site should never snapshot. The trick is
how to determine what is full-page. This change implements the
following algorithm.

- The plug-in is in the main frame (not an iframe).
- The plug-in is sized with width and height 100%.
- The displayed area of the plug-in is more than 96% of the viewport area.

This is definitely not foolproof. For example, zombo.com has a slight
border around its plug-in. As the window size gets smaller, the body margin
takes up more than 5% of the width or height, and the plug-in doesn't pass
the tests above.

* html/HTMLPlugInImageElement.cpp:
(WebCore): New static constant: sizingFullPageThresholdPercentage
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Implements
    the rules described above.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144577 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Attempt to fix the Qt build after r144498
https://bugs.webkit.org/show_bug.cgi?id=111272

Reviewed by Eric Seidel.

Update the Qt version of the XML parser to call the new API.

* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::resumeParsing):
(WebCore::XMLDocumentParser::appendFragmentSource):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fix after r144565. Reverted r144533.

* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144579 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Shared Web Workers have an incorrect visible process name
https://bugs.webkit.org/show_bug.cgi?id=111277

Reviewed by Dan Bernstein.

* SharedWorkerProcess/SharedWorkerProcess.cpp:
(WebKit::SharedWorkerProcess::initializeSharedWorkerProcess):
* SharedWorkerProcess/SharedWorkerProcess.h:
(SharedWorkerProcess):
* SharedWorkerProcess/mac/SharedWorkerProcessMac.mm:
(WebKit::SharedWorkerProcess::initializeProcessName):
The SharedWorkerProcess is not an internet plug-in!

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144580 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Remove WebLayerTreeView::setViewportSize call
https://bugs.webkit.org/show_bug.cgi?id=110727

Reviewed by James Robinson.

After https://codereview.chromium.org/12328080 lands,
setViewportSize is called from the Chromium side. The multiplication
by deviceScaleFactor here was prone to off-by-one errors.
The layoutSize() function was only used here so delete it as well.

DumpRenderTree WebViewHost must now call this method as well.

Source/WebKit/chromium:

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::updateLayerTreeViewport):
* src/WebViewImpl.h:
(WebViewImpl):

Tools:

* DumpRenderTree/chromium/WebViewHost.cpp:
(WebViewHost::initializeLayerTreeView):
(WebViewHost::setWindowRect):
(WebViewHost::setDeviceScaleFactor):
(WebViewHost::updateViewportSize):
* DumpRenderTree/chromium/WebViewHost.h:
(WebViewHost):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144581 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Some perf. tests have variances that differ greatly between runs
https://bugs.webkit.org/show_bug.cgi?id=97510

Reviewed by Benjamin Poulain.

PerformanceTests: 

In order to control the number of iterations and processes to use from run-perf-tests, always use 20
iterations on all tests except Dromaeo, where even doing 5 iterations is prohibitively slow, by default.
Without this change, it'll become extremely hard for us to tweak the number of iterations and processes
to use from run-perf-tests.

* Animation/balls.html:
* DOM/DOMTable.html:
* DOM/resources/dom-perf.js:
(runBenchmarkSuite.PerfTestRunner.measureTime):
* Dromaeo/resources/dromaeorunner.js:
* Layout/floats_100_100.html:
* Layout/floats_100_100_nested.html:
* Layout/floats_20_100.html:
* Layout/floats_20_100_nested.html:
* Layout/floats_2_100.html:
* Layout/floats_2_100_nested.html:
* Layout/floats_50_100.html:
* Layout/floats_50_100_nested.html:
* Layout/subtree-detaching.html:
* Parser/html5-full-render.html:
* SVG/SvgHitTesting.html:
* resources/runner.js:
* resources/results-template.html:

Tools: 

Use multiple instances of DumpRenderTree or WebKitTestRunner to amortize the effect of the runtime
environment on test results (we run each instance after one another, not in parallel).

We use 4 instances of the test runner, each executing 5 in-process iterations, for the total of 20
iterations as it was done previously in single process. These values are hard-coded in perftest.py
and runner.js but they are to be configurable in the future.

Set of 5 iterations obtained by the same test runner is treated as an "iteration group" and each
metric now reports an array of the length 4 with each element containing an array of 5 iteration
values obtained by each test runner instance as opposed to a flattened array of 20 iteration values.

Unfortunately, we can use the same trick on Dromaeo because we're already doing only 5 iterations
and repeating the entire Dromaeo 4 times will take too long. We need to disable more Dromaeo tests
as needed. To this end, added SingleProcessPerfTest to preserve the old behavior.

* Scripts/webkitpy/performance_tests/perftest.py:
(PerfTestMetric.append_group): Renamed from append.
(PerfTestMetric.grouped_iteration_values): Added.
(PerfTestMetric.flattened_iteration_values): Renamed from iteration_values.

(PerfTest.__init__): Takes the number of processes (drivers) to run tests with.
This parameter is only used by SingleProcessPerfTest.

(PerfTest.run): Repeat tests using different driver processes.
(PerfTest._run_with_driver): Returns a boolean instead of a list of measured metrics
since metrics are shared between multiple drivers (i.e. multiple calls to _run_with_driver).
We instead use _ensure_metrics to obtain the matched metrics and store the data there.
(PerfTest._ensure_metrics): Added.

(SingleProcessPerfTest): Added. Used to run Dromaeo tests where running it on 4 different
instances of DumpRenderTree/WebKitTestRunner takes too long.
(SingleProcessPerfTest.__init__):

(ReplayPerfTest._run_with_driver): Updated to use _ensure_metrics.

(PerfTestFactory): Use SingleProcessPerfTest to run Dromaeo tests.

* Scripts/webkitpy/performance_tests/perftest_unittest.py: Updated various tests that expect
_run_with_driver to return a list of metrics. Now it returns a boolean indicating whether
the test succeeded or not. Obtain the dictionary of metrics via test._metrics instead.

(TestPerfTestMetric.test_append): Updated per name and added some test cases for
grouped_iteration_values.

(TestPerfTest._assert_results_are_correct):

(TestSingleProcessPerfTest): Added.
(TestSingleProcessPerfTest.test_use_only_one_process):
(TestSingleProcessPerfTest.test_use_only_one_process.run_single):

(TestReplayPerfTest.test_run_with_driver_accumulates_results):
(TestReplayPerfTest.test_run_with_driver_accumulates_memory_results):

* Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py: Updated values of
sample standard deviations since we're now running tests 4 times.
(MainTest._test_run_with_json_output.mock_upload_json):
(MainTest.test_run_with_upload_json_should_generate_perf_webkit_json):

LayoutTests: 

Use dromaeoIterationCount now that we no longer support iterationCount.

* fast/harness/perftests/runs-per-second-iterations.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144583 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Move HTMLDocument::getNamedProperty() to DOMWindowShell
https://bugs.webkit.org/show_bug.cgi?id=111223

Reviewed by Adam Barth.

HTMLDocument::getNamedProperty() is used by DOMWindowShell.
It can be a static method in DOMWindowShell.

No tests. No change in behavior.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::getNamedProperty):
(WebCore):
(WebCore::getter):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144584 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][QT][WK2] Turn on ApplyDeviceScaleFactorInCompositor always.
https://bugs.webkit.org/show_bug.cgi?id=110298

Patch by Huang Dongsung <luxtella@company100.net> on 2013-03-03
Reviewed by Kenneth Rohde Christiansen.

Currently, EFL and Qt turn on ApplyDeviceScaleFactorInCompositor when using
fixed layout, but ApplyDeviceScaleFactorInCompositor is not related to fixed
layout. It is confusing that a platform WebView deals with device view size or
DIP view size case by case. So this patch always turns on
ApplyDeviceScaleFactorInCompositor.

In addition, move the code that turns on ScrollingCoordinatorEnabled to
CoordinatedLayerTreeHost.

* UIProcess/API/efl/EwkView.cpp:
(EwkView::setDeviceScaleFactor):
    We should make WebPage know new DIP size.
(EwkView::setSize):
    When we set ApplyDeviceScaleFactorInCompositor to true, make WebPage
    know the DIP size as a view size.
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::updateViewportSize):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseFixedLayout):
    WebPage sends the DIP size to Web Process even when we don't use fixed layout.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Rename getWorld() to isolatedWorld(), and getWorldForEnteredContext() to isolatedWorldForEnteredContext()
https://bugs.webkit.org/show_bug.cgi?id=111212

Reviewed by Adam Barth.

The rename I did in r142424 was wrong. Given that getWorld() returns 0
for the main world, it should be named isolatedWorld(). Similarly,
given that getWorldForEnteredContext() returns 0 for the main world,
it should be named isolatedWorldForEnteredContext().

No tests. No change in behavior.

* bindings/v8/CustomElementHelpers.cpp:
(WebCore::CustomElementHelpers::isFeatureAllowed):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::current):
* bindings/v8/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::makeContextWeak):
* bindings/v8/DOMWrapperWorld.h:
(WebCore::DOMWrapperWorld::isolatedWorld):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
(WebCore::ScriptController::currentWorldContext):
* bindings/v8/V8Binding.h:
(WebCore::isolatedWorldForEnteredContext):
* bindings/v8/WorldContextHandle.cpp:
(WebCore::WorldContextHandle::WorldContextHandle):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8SVGDocumentCustom.cpp:
(WebCore::wrap):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::constructorCustom):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Rename $implContentDecls to $implContentInternals in CodeGeneratorV8.pm
https://bugs.webkit.org/show_bug.cgi?id=111214

Reviewed by Adam Barth.

$implContentDecls stores generated code that is put in a namespace 'XXXV8Internal'.
For clarification, it should be renamed to $implContentInternals.

No tests. No change in behavior.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateDomainSafeFunctionSetter):
(GenerateConstructorGetter):
(GenerateNormalAttrGetterCallback):
(GenerateNormalAttrGetter):
(GenerateReplaceableAttrSetterCallback):
(GenerateReplaceableAttrSetter):
(GenerateNormalAttrSetterCallback):
(GenerateNormalAttrSetter):
(GenerateOverloadedFunction):
(GenerateFunctionCallback):
(GenerateFunction):
(GenerateOverloadedConstructorCallback):
(GenerateSingleConstructorCallback):
(GenerateEventConstructor):
(GenerateTypedArrayConstructor):
(GenerateImplementation):
(WriteData):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144588 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Shrink JSC::HashTable entries.
<http://webkit.org/b/111275>
<rdar://problem/13333511>

Reviewed by Anders Carlsson.

Move the Intrinsic value out of the function-specific part of the union,
and store it next to m_attributes. Reduces the size of HashEntry by 8 bytes.

990 kB progression on Membuster3. (PTUS: 797 kB)

* runtime/Lookup.h:
(JSC::HashEntry::initialize):
(JSC::HashEntry::intrinsic):
(HashEntry):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144589 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] indexedSecurityCheck() and namedSecurityCheck() should be auto-generated
https://bugs.webkit.org/show_bug.cgi?id=111225

Reviewed by Adam Barth.

indexedSecurityCheck() and namedSecurityCheck() should be auto-generated,
except for DOMWindow's ones.

No tests. No change in behavior.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateHeader):
(GenerateImplementation):
(GenerateSecurityCheckFunctions):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::namedSecurityCheckCustom):
(WebCore::V8DOMWindow::indexedSecurityCheckCustom):
* bindings/v8/custom/V8HistoryCustom.cpp:
* bindings/v8/custom/V8LocationCustom.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] HTMLDocument.all should have [Replaceable]
https://bugs.webkit.org/show_bug.cgi?id=111230

Reviewed by Adam Barth.

(Although HTMLDocument.all is already removed from the spec,)
it is expected to behave as a [Replaceable] attribute. By adding
a [Replaceable] IDL attribute, we can remove custom implementation
of HTMLDocument.all.

I confimed that exactly the same code is generated for .all getter
and setter.

No tests. No change in behavior.

* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
* html/HTMLDocument.idl:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed build fix after r144587.

* bindings/v8/V8Binding.cpp:
(WebCore::toV8Context):
* bindings/v8/V8MutationCallback.cpp:
(WebCore::V8MutationCallback::V8MutationCallback):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144592 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed build fix after r144590.

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateSecurityCheckFunctions):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Rebaselined run-bindings-tests.

* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::indexedSecurityCheck):
(TestActiveDOMObjectV8Internal):
(WebCore::TestActiveDOMObjectV8Internal::namedSecurityCheck):
(WebCore::ConfigureV8TestActiveDOMObjectTemplate):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144594 268f45cc-cd09-0410-ab3c-d52691b4dbfc
createAttribute/setAttributeNode does not properly normalize case
https://bugs.webkit.org/show_bug.cgi?id=90341

Patch by Arpita Bahuguna <a.bah@samsung.com> on 2013-03-03
Reviewed by Darin Adler.

Source/WebCore:

setAttributeNode() verifies for existing attributes in a case sensitive
manner. Thus, it would add another attribute if specified in a case
different from the existing one. Instead, like setAttribute(), it too
should modify the existing attribute's value.

Test: fast/dom/Element/setAttributeNode-case-insensitivity.html

* dom/Element.cpp:
(WebCore::Element::setAttributeNode):
Made changes to check for an existing attribute by converting the
specified attribute's localName to lowercase.

LayoutTests:

* fast/dom/Element/setAttributeNode-case-insensitivity-expected.txt: Added.
* fast/dom/Element/setAttributeNode-case-insensitivity.html: Added.
Testcase for verifying that setAttributeNode() checks against existing
attributes in a case insensitive manner. It updates the value of an
existing attribute (in lower case) with that of the one set using
setAttributeNode() (in upper case).
The test also verifies the behavior of attributes when specified with
namespace and prefix.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144595 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] Get rid of a useless method from DOMHTMLInputElement
https://bugs.webkit.org/show_bug.cgi?id=111279

Reviewed by Sam Weinig.

Source/WebKit/mac:

* DOM/WebDOMOperations.mm:
* DOM/WebDOMOperationsPrivate.h:
setValueForUser: is already privately exposed by DOMHTMLInputElement,
no need to have it twice.

Tools:

* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setValueForUser):
The method _setValueForUser: was added for testing. This feature is already
exposed by DOMHTMLInputElement as a private API and it is how this code is exercised
in real use cases. Get rid of the method created for testing, use the real thing
instead.


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