[EFL] In ewk_tiled_backing_store_pre_render_region, the 'slicer' may be uninitialized
https://bugs.webkit.org/show_bug.cgi?id=102038

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2012-11-12
Reviewed by Gyuyoung Kim.

To fix build warning -Wuninitialized,
initialize the 'slicer' in ewk_tiled_backing_store_pre_render_region.

* ewk/ewk_tiled_backing_store.cpp:
(ewk_tiled_backing_store_pre_render_region):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Changing id, className, or attribute should invalidate distribution
https://bugs.webkit.org/show_bug.cgi?id=100738

Reviewed by Dimitri Glazkov.

PerformanceTests:

Added test code to modify id/class/attribute.

* DOM/ModifyAttribute.html: Added.
* DOM/resources/dom-perf/modify-attribute.js: Added.
(ModifyAttribute.CreateElementToSetUp):
(ModifyAttribute.ModifyId):
(ModifyAttribute.ModifyClass):
(ModifyAttribute.ModifyTitle):

Source/WebCore:

When id, className, or attribute is changed, we might have to invalidate distribution.
However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
and invalidate distribution only if necessary.

When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.

Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.

DOM/ModifyAttribute.html
Before this patch:
        median  stdev  min      max    [ms]
  1st   115.62   0.67  114.75   117.00
  2nd   115.08   1.13  113.25   117.58
  3rd   114.75   1.16  113.42   117.83

After this patch:
        median  stdev  min      max    [ms]
  1st   102.55   0.95  101.25   104.50
  2nd   103.10   0.86  102.20   100.95
  3rd   103.30   1.05  102.10   106.65

Tests: fast/dom/shadow/distribution-attribute-modified.html
       fast/dom/shadow/distribution-className-modified.html
       fast/dom/shadow/distribution-id-modified.html
       fast/dom/shadow/reprojection-attribute-modified.html
       fast/dom/shadow/reprojection-className-modified.html
       fast/dom/shadow/reprojection-id-modified.html

* dom/Element.cpp:
(WebCore::Element::attributeChanged):
(WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
(HasSelectorForClassStyleFunctor):
(WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
(WebCore):
(WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
(HasSelectorForClassDistributionFunctor):
(WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
(WebCore::checkFunctorForClassChange):
(WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
(WebCore::checkNeedsDistributionInvalidationForClassChange):
(WebCore::Element::classAttributeChanged):

LayoutTests:

We have test cases that id/class/attribute is changed, and thier reprojection cases.

* fast/dom/shadow/distribution-attribute-modified-expected.html: Added.
* fast/dom/shadow/distribution-attribute-modified.html: Added.
* fast/dom/shadow/distribution-className-modified-expected.html: Added.
* fast/dom/shadow/distribution-className-modified.html: Added.
* fast/dom/shadow/distribution-id-modified-expected.html: Added.
* fast/dom/shadow/distribution-id-modified.html: Added.
* fast/dom/shadow/reprojection-attribute-modified-expected.html: Added.
* fast/dom/shadow/reprojection-attribute-modified.html: Added.
* fast/dom/shadow/reprojection-className-modified-expected.html: Added.
* fast/dom/shadow/reprojection-className-modified.html: Added.
* fast/dom/shadow/reprojection-id-modified-expected.html: Added.
* fast/dom/shadow/reprojection-id-modified.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Turn on errors on warnings for WebKit1 and WebKit2 libraries
https://bugs.webkit.org/show_bug.cgi?id=101762

Patch by KyungTae Kim <ktf.kim@samsung.com> on 2012-11-12
Reviewed by Gyuyoung Kim.

In case of EFL, add ENABLE_WERROR to EXTRA_COMPILER_FLAGS for WEBKIT and WEBKIT2

* Source/CMakeLists.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
https://bugs.webkit.org/show_bug.cgi?id=101054

Reviewed by Adam Barth.

I'm investigating a Chromium crash bug:
http://code.google.com/p/chromium/issues/detail?id=155942

I've not yet identified the root cause (because I can't reproduce
the crash), but it looks like we are storing NULL pointers to
V8 internal fields. Just in case, we can add an ASSERT() to
guarantee that NULL pointers are never stored. (Also I'm hoping
that this ASSERT() will give me more debug information.)

No tests. No change in behavior.

* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::setDOMWrapper):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
webkitpy: clean up lint errors, part 2
https://bugs.webkit.org/show_bug.cgi?id=102029

Reviewed by Adam Barth.

This cleans up the remaining lint errors in webkitpy with four exceptions:
1) we don't lint thirdparty/ autoinstalled code, obviously
2) there's an intentional error in the unit tests for pylint itself
3) the implementation of webkit-patch optimize-expectations has
an error but I think we can and should just remove that command as well.
4) I have not yet linted the test code

* Scripts/webkitpy/common/newstringio.py:
* Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.find_checkout_root):
(SCM.will.remote_merge_base):
* Scripts/webkitpy/common/checkout/scm/scm_mock.py:
* Scripts/webkitpy/common/checkout/scm/svn.py:
(SVNRepository.has_authorization_for_realm):
(SVN.__init__):
* Scripts/webkitpy/common/config/contributionareas.py:
(ContributionAreas.names):
* Scripts/webkitpy/common/config/ports.py:
(DeprecatedPort):
* Scripts/webkitpy/common/net/buildbot/buildbot.py:
(Builder.force_build):
* Scripts/webkitpy/common/net/buildbot/buildbot_mock.py:
* Scripts/webkitpy/style/checkers/cpp.py:
(check_posix_threading):
(check_spacing):
* Scripts/webkitpy/style/optparser.py:
(ArgumentParser._create_option_parser):
* Scripts/webkitpy/tool/commands/abstractlocalservercommand.py:
(AbstractLocalServerCommand.execute):
* Scripts/webkitpy/tool/commands/download.py:
(AbstractPatchProcessingCommand):
(AbstractPatchProcessingCommand._process_patch):
* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(AbstractEarlyWarningSystem):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] We should be able to recover the V8DOMWindowShell more quickly
https://bugs.webkit.org/show_bug.cgi?id=102020

Reviewed by Kentaro Hara.

For isolated worlds, we used to store the V8DOMWindowShell as an
internal field of the inner DOM window. This patch moves the pointer to
an internal field of the v8::Context, which saves us the work of
looking up the inner DOM window.

Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
the V8PerContextData when we detach the V8DOMWindowShell from the
frame.)

* bindings/scripts/CodeGeneratorV8.pm:
(GetInternalFields):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initializeIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
(WebCore::V8DOMWindowShell::getEntered):
* bindings/v8/V8PerContextData.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<rdar://problem/12445176>
WebProcess needs permission to open AppleUpstreamUserClient

Rubber-stamped by Dan Bernstein.

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



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