[Chromium] Incorrect opaque region tracking for PlatformContextSkia::drawRRect
https://bugs.webkit.org/show_bug.cgi?id=106898

Reviewed by Stephen White.

Source/WebCore:

Since drawRRect() doesn't cover the whole bounding rect, it needs to pass a didDrawBounded
notification down to the opaque region tracker (instead of didDrawRect as it currently
does).

Test: platform/chromium/compositing/rounded-corners.html

* platform/graphics/skia/PlatformContextSkia.h:
(WebCore::PlatformContextSkia::drawRRect):

Source/WebKit/chromium:

* tests/PlatformContextSkiaTest.cpp:
(WebCore::TEST):
(WebCore):

LayoutTests:

* platform/chromium-linux/platform/chromium/compositing/rounded-corners-expected.png: Added.
* platform/chromium-linux/platform/chromium/compositing/rounded-corners-expected.txt: Added.
* platform/chromium/TestExpectations:
* platform/chromium/compositing/rounded-corners.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139745 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, remove file that was accidentally added to the wrong patch.

* inspector/front-end/FileSystemWorkspaceProvider.js: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Adding Michael Pruett as contributor.

* Scripts/webkitpy/common/config/committers.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139747 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed gardening. Marking the deferred version of
fast/images/zoomed-offset-size.html as slow.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139748 268f45cc-cd09-0410-ab3c-d52691b4dbfc
RenderView does not need to override computePreferredLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=106852

Reviewed by Levi Weintraub.

Calling minPreferredLogicalWidth calls computePreferredLogicalWidth,
which happens a few lines later in layoutWithFlattening. No need
to call it explicitly.

* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening):
* rendering/RenderView.cpp:
* rendering/RenderView.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139749 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow tiled WKViews to have transparent backgrounds
https://bugs.webkit.org/show_bug.cgi?id=106400

Source/WebCore:

Reviewed by Anders Carlsson.

When WKViews were set to have transparent backgrounds, they still
obscured content behind the view, for several reasons.

First, when in tiled scrolling mode, WKView set the background
of its layer to opaque white. Fix by using the clearColor (effectively
removing the background color) if the view has a non-opaque background.

Second, RenderLayerBacking just looked at FrameViews's isTransparent()
when deciding to make TileCache tiles non-opaque, but it also needs to
consider FrameViews with a non-opaque base background color. The
same logic was necessary to avoid setting an opaque white background
color on the TileCache layer.

Finally, for views with non-opaque backgrounds, we don't want to display
linen, so RenderLayerCompositor::requiresOverhangAreasLayer() was changed
to return false in that case.

View transparency is not testable in layout tests.

* page/FrameView.cpp:
(WebCore::FrameView::hasOpaqueBackground):
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateBackgroundColor):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):

Source/WebKit2:

Reviewed by Anders Carlsson.

When WKViews were set to have transparent backgrounds, they still
obscured content behind the view, for several reasons.

First, when in tiled scrolling mode, WKView set the background
of its layer to opaque white. Fix by using the clearColor (effectively
removing the background color) if the view has a non-opaque background.

Second, RenderLayerBacking just looked at FrameViews's isTransparent()
when deciding to make TileCache tiles non-opaque, but it also needs to
consider FrameViews with a non-opaque base background color. The
same logic was necessary to avoid setting an opaque white background
color on the TileCache layer.

Finally, for views with non-opaque backgrounds, we don't want to display
linen, so RenderLayerCompositor::requiresOverhangAreasLayer() was changed
to return false in that case.

* UIProcess/API/mac/WKView.mm:
(-[WKView updateLayer]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139750 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move parent pointer from TreeShared to subclass
https://bugs.webkit.org/show_bug.cgi?id=106910

Reviewed by Darin Adler.

This simplifies both TreeShared and clients, and makes code dealing with parents more understandable in general.

* dom/Document.h:
(WebCore::Node::Node):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* dom/Node.h:
    
    Add m_parentOrHostNode variable (matching the accessor names).

(Node):
(WebCore::Node::hasTreeSharedParent):
(WebCore::Node::parentNode):
(WebCore::Node::setParentOrHostNode):
(WebCore::Node::parentOrHostNode):
* platform/TreeShared.h:
(WebCore):
(WebCore::TreeShared::TreeShared):
(WebCore::TreeShared::deref):
        
    Call subclass hasTreeSharedParent() to figure out if it is time to delete.

(TreeShared):

    Remove parent pointer and accessors.
    Remove ParentNodeType template parameter.
    Remove now unnecessay reportMemoryUsage().

(WebCore::adopted):
* svg/SVGElementInstance.cpp:
(WebCore::SVGElementInstance::SVGElementInstance):
* svg/SVGElementInstance.h:
        
    Add m_parentInstance variable.

(WebCore::SVGElementInstance::setParentOrHostNode):
(WebCore::SVGElementInstance::parentNode):
(SVGElementInstance):
(WebCore::SVGElementInstance::hasTreeSharedParent):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=106855
https://bugs.webkit.org/show_bug.cgi?id=106855

Reviewed by Levi Weintraub.
        
Speed up zoomed-offset-size.html test and remove SLOW modifier
from TestExpectations.

* fast/images/zoomed-offset-size-expected.txt:
* fast/images/zoomed-offset-size.html:
* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139753 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Fix build after r139665
https://bugs.webkit.org/show_bug.cgi?id=106917

Patch by Michael Pruett <michael@68k.org> on 2013-01-15
Reviewed by Dean Jackson.

* GNUmakefile.list.am:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Microdata: propertiesCollection[name] should return undefined if item doesn't have a property named 'name'
https://bugs.webkit.org/show_bug.cgi?id=106849

Reviewed by Kentaro Hara.

Source/WebCore:

We should return undefined if hasNamedItem() is false.

Test: fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html

* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):

LayoutTests:

* fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name-expected.txt: Added.
* fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html: Added.


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

Adding failure/crash/missing expectations for accessibility tests after
r139444, r139534 and r139663.
Adding platform-specific baselines for two scrolling coordinator tests that are
required after r139686.

* platform/gtk/TestExpectations:
* platform/gtk/scrollingcoordinator: Added.
* platform/gtk/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe-expected.txt: Added.
* platform/gtk/scrollingcoordinator/non-fast-scrollable-region-transformed-iframe-expected.txt: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ANGLE should build with -Wshorten-64-to-32
<http://webkit.org/b/106798>
<http://code.google.com/p/angleproject/issues/detail?id=396>

Reviewed by Kenneth Russell.

Most changes below are simply to document issues with #pragma
statements per request by upstream.  The change to osinclude.h
is the only bug fix, which defines OS_TLSIndex in terms of
pthread_key_t instead of unsigned int since pthread_key_t is a
64-bit value on 64-bit Mac OS X.

* Configurations/Base.xcconfig: Enable -Wshorten-64-to-32 by
setting GCC_WARN_64_TO_32_BIT_CONVERSION to YES.
* src/compiler/Intermediate.cpp:
(TIntermTraverser::hash): Add #pragmas for clang to ignore
-Wshorten-64-to-32 warning.
* src/compiler/MapLongVariableNames.cpp:
(LongNameMap::Size): Ditto.
* src/compiler/ShaderLang.cpp:
(getVariableInfo): Ditto.
(ShGetInfo): Ditto.
* src/compiler/ValidateLimitations.cpp:
(ValidateLimitations::validateFunctionCall): Ditto.
* src/compiler/glslang.l: Ditto.
* src/compiler/glslang_lex.cpp: Ditto.
* src/compiler/osinclude.h: Change type of OS_TLSIndex to
pthread_key_t.  Define OS_INVALID_TLS_INDEX by using
static_cast<OS_TLSIndex>(-1).
* src/compiler/preprocessor/Input.cpp:
(pp::Input::Input): Add #pragmas for clang to ignore
-Wshorten-64-to-32 warning.
* src/compiler/preprocessor/Tokenizer.cpp: Ditto.
* src/compiler/preprocessor/Tokenizer.l: Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Manual zoom propagates to next page load
https://bugs.webkit.org/show_bug.cgi?id=106914

Patch by Jacky Jiang <zhajiang@rim.com>.
Reviewed by Yong Li.
Internally reviewed by Eli Fidler and Jakob Petsovits.

PR: 280481
During load committed, the web page scale was reset. However, UI thread
still kept the old scale in UserInterfaceViewportAccessor so that it
blitted the contents at the old scale although WebKit thread could
update the UI thread scale later when finished the load.
We should update the scale of the UI thread right after we reset it in
WebKit thread to keep them in sync.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::resetScales):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make AtomicMarkupTokenBase use a bare UChar* for external characters
https://bugs.webkit.org/show_bug.cgi?id=106919

Reviewed by Eric Seidel.

This allows an arbitrary backing for external characters which is necessary for the threaded HTML parser.

No new tests because no new functionality.

* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
(WebCore::HTMLTreeBuilder::processTokenInForeignContent):
* xml/parser/MarkupTokenBase.h:
(WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
(WebCore::AtomicMarkupTokenBase::characters):
(AtomicMarkupTokenBase):
(WebCore::AtomicMarkupTokenBase::charactersLength):
(WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
* xml/parser/XMLTreeBuilder.cpp:
(WebCore::XMLTreeBuilder::processCharacter):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Upstream iOS changes for ANGLE project
<http://webkit.org/b/106913>

Reviewed by Joseph Pecoraro.

* ANGLE.xcodeproj/project.pbxproj:
- Use $(INSTALL_PATH_PREFIX) with CopyFiles build phase paths.
- Add iOS.xcconfig to project.
* Configurations/ANGLE.xcconfig:
- Use INSTALL_PATH_ACTUAL instead of INSTALL_PATH.  (See below.)
- Use $(INSTALL_PATH_PREFIX) with PUBLIC_HEADERS_FOLDER_PATH.
* Configurations/Base.xcconfig:
- Include iOS.xcconfig.
- Add per-platform values for GCC_ENABLE_OBJC_GC and
  GCC_MODEL_TUNING.
- Define INSTALL_PATH when building for macosx SDK.
* Configurations/iOS.xcconfig: Add.  Note that missing include
files are simply ignored without an error by Xcode.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139761 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unprefixed transitionend event doesn't seem to be implemented, which breaks many sites
https://bugs.webkit.org/show_bug.cgi?id=105647

Reviewed by Julien Chaffraix.

Source/WebCore:

Add support for transitionend event delivery as part as the unprefixing
work on CSS Transitions. This patch adds some code in EventTarget to
figure out if the current event to dispatch has a prefixed version or
not. Then from the list of listeners we deduce which event should be delivered
(prefixed or unprefixed).

In the case of the CSS Transitions, WebKit will now behave as follow :
if an event listener is attached to the prefixed version of the
transition end event then only the prefixed event will be send.
If an event listener is attached to the unprefixed version
of the transition end event then only the unprefixed event will be
send. If there are event listeners on both unprefixed and prefixed
events then only the unprefixed event will be send.

The behavior was discussed here :
http://lists.webkit.org/pipermail/webkit-dev/2013-January/023301.html.

Tests: transitions/transition-end-event-unprefixed-01.html
       transitions/transition-end-event-unprefixed-02.html

* dom/Document.cpp:
(WebCore::Document::addListenerTypeIfNeeded): Register the prefixed
listener too as transitionend listeners so that we properly dispatch
events for them.
* dom/EventNames.h:
(WebCore): Add the new transitionend name.
* dom/EventTarget.cpp:
(WebCore::createMatchingPrefixedEvent):
(WebCore::prefixedType):
(WebCore::EventTarget::fireEventListeners): Find out if somebody is
listening for unprefixed events, if so we always send the unprefixed
event, if not then we create a prefixed event and send it.
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::sendTransitionEvent): Always create by
default unprefixed events.

LayoutTests:

Cover that event delivery is correct : we received unprefixed events.

* transitions/transition-end-event-helpers.js:
(recordTransitionEndEvent):
* transitions/transition-end-event-unprefixed-01-expected.txt: Added.
* transitions/transition-end-event-unprefixed-01.html: Added.
* transitions/transition-end-event-unprefixed-02-expected.txt: Added.
* transitions/transition-end-event-unprefixed-02.html: Added.


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

Remove a few failure expectations for tests that now pass.

* platform/gtk/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Unreviewed, fix a bug where we don't properly shutdown lighttpd.

* Scripts/webkitpy/layout_tests/servers/http_server.py:
(Lighttpd._check_and_kill): Pass /pid so taskkill.exe doesn't error out on us.
* Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:
(TestHttpServer.test_win32_start_and_stop):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Autotools] Unify JavaScriptCore sources list, regardless of target OS
https://bugs.webkit.org/show_bug.cgi?id=106007

Patch by Zan Dobersek <zandobersek@gmail.com> on 2013-01-15
Reviewed by Gustavo Noronha Silva.

Include the Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp target
in the general sources list as it is guarded by the ENABLE_EXECUTABLE_ALLOCATOR_FIXED
feature define. This define is only used on 64-bit architecture and indirectly depends
on enabling either JIT or YARR JIT feature. Both of these defines are disabled on
Windows OS when using 64-bit architecture so there's no need to add this target to
sources only when the target OS is Windows.

* GNUmakefile.list.am:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139765 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Stop passing the unstable features flag to configure script when using build-webkit
https://bugs.webkit.org/show_bug.cgi?id=106579

Patch by Zan Dobersek <zandobersek@gmail.com> on 2013-01-15
Reviewed by Gustavo Noronha Silva.

The --enable-unstable-features flag is not required to be passed anymore
to the configure script as it was removed in r138252.

* Scripts/webkitdirs.pm:
(buildAutotoolsProject):


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