Gif: zero filling should use memset instead of setRGBA for every pixel
https://bugs.webkit.org/show_bug.cgi?id=118350

Patch by Balazs Kelemen <b.kelemen@samsung.com> on 2013-07-03
Reviewed by Allan Sandfeld Jensen.

No new tests. Actually it is not covered by existing tests. Surprisingly we haven't got pixel
tests for animated images. Given that this patch is pretty trivial I don't think it's worth the
cost to start introducing such tests.
I added a manual test: animated-gif-dispose-background.html.

GIFImageDecoder::initializeFrameBuffer use a loop to fill a subrect with tranparent pixels.
This is extremely ineffecient. The use case for this code path is not frequent on the web
but it's still better to fix it.

* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageFrame::zeroFillFrameRect):
* platform/image-decoders/ImageDecoder.h:
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::initFrameBuffer):
Fixed indentation in addition.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Append overloading function for isFooElement
https://bugs.webkit.org/show_bug.cgi?id=118334

Reviewed by Antti Koivisto.

Node::hasTagName needs additional isElementNode() check when it is triggered.
So conversion from Element* to Node* in isFooElement should be avoided.
Therefore, to support both Node* and Element* as an argument of isFooElement,
this patch appends overloading inline function.

* css/CSSStyleSheet.cpp:
(WebCore::isAcceptableCSSStyleSheetParent):
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::scopeFor):
* dom/Node.cpp:
(WebCore::Node::numberOfScopedHTMLStyleChildren):
* html/HTMLAnchorElement.h:
(WebCore::isHTMLAnchorElement):
* html/HTMLAreaElement.h:
(WebCore::isHTMLAreaElement):
* html/HTMLAudioElement.h:
(WebCore::isHTMLAudioElement):
* html/HTMLFormElement.h:
(WebCore::isHTMLFormElement):
* html/HTMLImageElement.h:
(WebCore::isHTMLImageElement):
* html/HTMLInputElement.h:
(WebCore::isHTMLInputElement):
* html/HTMLLabelElement.h:
(WebCore::isHTMLLabelElement):
* html/HTMLOptGroupElement.h:
(WebCore::isHTMLOptGroupElement):
* html/HTMLOptionElement.h:
(WebCore::isHTMLOptionElement):
* html/HTMLStyleElement.h:
(WebCore::isHTMLStyleElement):
(WebCore::toHTMLStyleElement):
* html/HTMLTextAreaElement.h:
(WebCore::isHTMLTextAreaElement):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2][GTK] Invalid ASSERTs in WebResources loading code
https://bugs.webkit.org/show_bug.cgi?id=118352

Reviewed by Carlos Garcia Campos.

The WebKitWebView keeps track of the resources being loaded in a
map. A couple of ASSERTs verify that every loaded resource is
stored in that map.

The map that is cleared each time a new load starts so there is a
small chance that we get notifications for resources that
correspond to previous page loads
(and thus are not stored in the map). We should remove the ASSERT
which is not valid anymore.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewGetLoadingWebResource):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Speculative build fix after r152340.

* WebCore.exp.in:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove code duplication from StringImpl create()/reallocate() methods
https://bugs.webkit.org/show_bug.cgi?id=118355

Reviewed by Anders Carlsson.

StringImpl create()/reallocate() methods accepting LChar and UChar used to have
duplicated code. The code duplication is removed now via used templates.

* wtf/text/StringImpl.cpp:
(WTF::StringImpl::constructInternal):
(WTF::LChar):
(WTF::StringImpl::createUninitializedInternal):
(WTF::StringImpl::createUninitialized):
(WTF::StringImpl::reallocateInternal):
(WTF::StringImpl::reallocate):
(WTF::StringImpl::createInternal):
(WTF::StringImpl::create):
* wtf/text/StringImpl.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Output arguments used in IPC calls should be returned initialised
https://bugs.webkit.org/show_bug.cgi?id=118354

Patch by Simon Pena <simon.pena@samsung.com> on 2013-07-03
Reviewed by Anders Carlsson.

When Download::shouldDecodeSourceDataOfMIMEType and Download::retrieveDestinationWithSuggestedFilename
call DownloadProxy::shouldDecodeSourceDataOfMIMEType and DownloadProxy::decideDestinationWithSuggestedFilename
through IPC, they assume the output arguments result and allowOverwrite have
been initialised.

This patch initialises these arguments also in the unlikely event that a
m_webContext is not available.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::shouldDecodeSourceDataOfMIMEType):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r152356.
http://trac.webkit.org/changeset/152356
https://bugs.webkit.org/show_bug.cgi?id=118361

Broke JSCore tests (Requested by andersca on #webkit).

* wtf/text/StringImpl.cpp:
(WTF::StringImpl::createUninitialized):
(WTF::StringImpl::reallocate):
(WTF::StringImpl::create):
* wtf/text/StringImpl.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Xcode often gets in a state where the debugger is completely unresponsive
https://bugs.webkit.org/show_bug.cgi?id=118157

The GetPointeeData() operations we use to retrieve strings is extremely expensive.
Rather than pull the character data out of the debugger one byte at a time
through the GetPointeeData() API, retrieve the memory contents of the string through
the ReadMemory() API, and convert the retrieved memory into a python string.

Reviewed by Anders Carlsson.

* lldb/lldb_webkit.py:
(__lldb_init_module.lldb_webkit):
(guess_string_length):
(ustring_to_string):
(lstring_to_string):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][WK2] SIGSEV in WebKit::WebPageContextMenuClient::customContextMenuItemSelected
https://bugs.webkit.org/show_bug.cgi?id=116867

Reviewed by Anders Carlsson.

We did not reset the clients on WebPageProxy::close(), so right
clicking on a link after starting the navigation to some other
page was causing crashes because code was trying to access an
already freed m_contextMenuClient.

There were some other clients that could potentially trigger the
same issues. Reset them all to null to prevent this situation.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebTextCheckerClient doesn't initialize output arguments.
https://bugs.webkit.org/show_bug.cgi?id=83683

Patch by Simon Pena <simon.pena@samsung.com> on 2013-07-03
Reviewed by Martin Robinson.

Source/WebKit2:

Callers of checkSpellingOfString and checkGrammarOfString expect
certain default values when no misspelled (or bad grammar) string
is found. They try to do that by initialising the reply arguments
that go into the IPC calls, but these values are ultimately ignored (see
HandleMessage.h, where the replyArguments are declared).

In the past, this seems to have led to various issues, (see
TextCheckingHelper::findFirstMisspelling in TextCheckingHelper.cpp),
where these return values are asserted and checked to be in the right range.

This patch initialises the values, so even if no available client
implements the methods (or if the implementation forgets to do it) the callers
will have their expected output.

However, and for a general case, we probably need a way to tell the caller
that any existing value in the output arguments will be ignored.

* UIProcess/WebTextCheckerClient.cpp:
(WebKit::WebTextCheckerClient::checkSpellingOfString):
(WebKit::WebTextCheckerClient::checkGrammarOfString):

LayoutTests:

Unskip editing/pasteboard/pasting-empty-html-falls-back-to-text.html, which no longer
crashes after the fix.

* platform/gtk-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[ATK] Leak: more leaks in AccessibilityUIElement
https://bugs.webkit.org/show_bug.cgi?id=118362

Patch by Brian Holt <brian.holt@samsung.com> on 2013-07-03
Reviewed by Christophe Dumez.

Free the memory created by g_strdup_printf.

* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::language):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::language):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add Makefile to WebKitLauncher
https://bugs.webkit.org/show_bug.cgi?id=118365

Reviewed by Mark Rowe.

* WebKitLauncher/Makefile: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Ran update-webkit-localizable-strings.

Rubber-stamped by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        <rdar://problem/14271105> Flash Player: deny ipc-posix-sem 59918130
        <rdar://problem/14349560> Flash Player: deny ipc-posix-sem MacromediaSemaphoreDig on many sites

        Reviewed by Sam Weinig.

        * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb:
        semaphore-owner doesn't appear to work the way we need it to, removing it (at least for now).



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Guard remaining calls to decodeURIComponent with a try/catch.

https://bugs.webkit.org/show_bug.cgi?id=118371

Reviewed by Joseph Pecoraro.

* UserInterface/Main.js:
(WebInspector.displayNameForURL):
(WebInspector.updateWindowTitle):
* UserInterface/Utilities.js:
(arrayResult):
(queryString):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Unreviewed build correction.

* WTF.vcxproj/copy-files.cmd: Limit path (for this file) to DOS-only to avoid
the Cygwin variant of rmdir from being used.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement mechanism to detect (partially) hidden blocked plugins.
https://bugs.webkit.org/show_bug.cgi?id=117998

Patch by Gordon Sheridan <gordon_sheridan@apple.com> on 2013-07-03
Reviewed by Dean Jackson.

Source/WebCore:

* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::replacementTextRect):
Added private method for calculating the size of the replacement text for blocked plugins.

(WebCore::RenderEmbeddedObject::isReplacementObscured):
Added public method to determine if the EMBED element used for a blocked plugin is inaccessible to the user.
* rendering/RenderEmbeddedObject.h:
Declare the two new methods mentioned above.

* WebCore.exp.in:
Export RenderEmbeddedObject::isReplacementObscured().

Source/WebKit2:

* Shared/Plugins/Netscape/PluginInformation.h:
* Shared/Plugins/Netscape/PluginInformation.cpp:
(WebKit::plugInInformationReplacementObscuredKey):
Add key for plugInInformation dictionaries.

(WebKit::createPluginInformationDictionary):
Add boolean parameter identifying whether the replacement for a blocked plugin is obscured, and add it to the dictionary.

* Shared/API/c/WKPluginInformation.h:
* Shared/API/c/WKPluginInformation.cpp:
(WKPluginInformationReplacementObscuredKey):
Provide the C API for the plugInInformationReplacementObscuredKey().

* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didBlockInsecurePluginVersion):
Add bool replacementObscured parameter to pass on argument to createPluginInformationDictionary().

* UIProcess/WebPageProxy.messages.in:
Add bool replacementObscured parameter to DidBlockInsecurePluginVersion() message.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
Invoke isReplacementObscured() method for blocked plugins.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Updates to support changes in CoreGraphics libraries.
https://bugs.webkit.org/show_bug.cgi?id=118373

Reviewed by Anders Carlsson.

* WebCorePrefix.h: Include definitions for isnan/round/roundf for versions of
Visual Studio that do not provide them natively.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Simplify PageThrottler ownership.
https://bugs.webkit.org/show_bug.cgi?id=118372

Reviewed by Sam Weinig.

* page/Page.cpp:
(WebCore::Page::~Page):
    - 'clearPage' method removed - just clear the own pointer.
* page/Page.h:
    - make m_pageThrottler an OwnPtr.
* page/PageThrottler.cpp:
(WebCore::PageThrottler::~PageThrottler):
    - moved 'setThrottled(false)' from 'clearPage' (removed).
(WebCore::PageThrottler::throttlePage):
(WebCore::PageThrottler::unthrottlePage):
    - no need to check 'm_page'
* page/PageThrottler.h:
(WebCore::PageThrottler::create):
    - create a PassOwnPtr, not PassRefPtr.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Exclude unsupported QuartzCore Features.
https://bugs.webkit.org/show_bug.cgi?id=118374

Reviewed by Anders Carlsson.

* WebCore.vcxproj/WebCoreCG.props: Exclude a few non-Windows
concepts from the QuartzCore headers.


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