Fix build when DFG_JIT is not enabled
https://bugs.webkit.org/show_bug.cgi?id=110991

Patch by Julien Brianceau <jbrianceau@nds.com> on 2013-02-27
Reviewed by Csaba Osztrogonác.

* jit/JIT.h:
(JSC::JIT::canBeOptimizedOrInlined):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Remove myself from watchlist.

Patch by Yong Li <yong.li.webkit@outlook.com> on 2013-02-27

* Scripts/webkitpy/common/config/watchlist:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144211 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add ENABLE_STREAM guards to FileReaderLoader
https://bugs.webkit.org/show_bug.cgi?id=110938

Patch by Zach Kuznia <zork@chromium.org> on 2013-02-27
Reviewed by Hajime Morrita.

* fileapi/FileReaderLoader.cpp:
* fileapi/FileReaderLoader.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r124739): fast/lists/list-marker-remove-crash.html hits an assertion in MoveParagraphs
https://bugs.webkit.org/show_bug.cgi?id=93247

Reviewed by Darin Adler.

Source/WebCore:

The listifyParagraph function inside InsertListCommand triggered a layout for the new list and updated
only the "start" Position. The insertion and layout may have changed the "end" Position as well. The patch
makes sure "end" is also recomputed.

Test: No new test, the patch fixes a regression.

* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::listifyParagraph):

LayoutTests:

Update TestExpectations because the test doesn't crash any more.

* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/qt-4.8/TestExpectations:
* platform/qt-mac/TestExpectations:
* platform/qt/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144213 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add ENABLE_CSS3_TEXT_LINE_BREAK flag.
https://bugs.webkit.org/show_bug.cgi?id=110944

Reviewed by Dean Jackson.

.:

* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/chromium:

* features.gypi:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Tools:

* Scripts/webkitperl/FeatureList.pm:
* qmake/mkspecs/features/features.pri:

WebKitLibraries:

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


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Test expectations updates

Unreviewed expectations after recent bug fixes.

* platform/chromium-mac-lion/fast/borders/border-radius-percent-expected.png: Added.
* platform/chromium-mac-lion/svg/css/text-shadow-multiple-expected.png:
* platform/chromium-mac-snowleopard/fast/borders/border-radius-percent-expected.png: Added.
* platform/chromium-mac-snowleopard/svg/css/text-shadow-multiple-expected.png:
* platform/chromium-mac/fast/borders/border-radius-percent-expected.png: Added.
* platform/chromium-mac/svg/css/text-shadow-multiple-expected.png:
* platform/chromium-mac/svg/custom/transform-with-shadow-and-gradient-expected.png:
* platform/chromium-win/fast/borders/border-radius-percent-expected.png: Added.
* platform/chromium-win/svg/css/text-shadow-multiple-expected.png:
* platform/chromium-win/svg/custom/transform-with-shadow-and-gradient-expected.png:
* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        Don't add a body to platform request until necessary
        https://bugs.webkit.org/show_bug.cgi?id=110900

        Reviewed by NOBODY (OOPS!).

        Reviewed by Brady Eidson.

        ResourceRequest now has more state for syncing between resource and platform parts.
        In addition to tracking which is up to date, we also track which has up to date
        HTTP Body.

        The reason is that we don't need the body on request before it's actually sent,
        and we actually cannot build it when networking is out of process.

        * WebCore.exp.in: Updated exports.

        * platform/network/ResourceRequestBase.h:
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::setHTTPBody): Update HTTP body before returning it.
        (WebCore::ResourceRequestBase::updatePlatformRequest): Update according to HTTPBodyUpdatePolicy.
        (WebCore::ResourceRequestBase::updateResourceRequest): Ditto.

        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::formDataStreamLengthPropertyName):
        (WebCore::formCopyProperty):
        (WebCore::setHTTPBody):
        Changed to not update Content-Length in platform request directly. We need to keep it
        in sync with resource request, and it's easier to do in a caller. Exposed computed
        length as a property do avoid duplicating the work.

        * platform/network/cf/FormDataStreamCFNet.h: Removed unnecessary httpBodyFromStream().

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willSendRequest):
        (WebCore::didReceiveResponse):
        (WebCore::ResourceHandle::createCFURLConnection):
        Update body when necessary.

        (WebCore::ResourceRequest::nsURLRequest):
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        (WebCore::ResourceRequest::doUpdateResourceHTTPBody):
        (WebCore):
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody):
        (WebCore::ResourceRequest::applyWebArchiveHackForMail):
        Ditto.

        * platform/network/cf/ResourceRequest.h: Track body up-to-date state.

        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::cfURLRequest): Honor HTTPBodyUpdatePolicy.
        (WebCore::ResourceRequest::doUpdatePlatformRequest): Don't update body here.
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Update the body, and make sure
        that Content-Length is correct.
        (WebCore::ResourceRequest::doUpdateResourceRequest): Don't update body here.
        (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Update the body, fixing a bug
        where body stream was lost if this function got called.
        (WebCore::ResourceRequest::applyWebArchiveHackForMail): No need to update body for this one.

        * platform/network/mac/ResourceRequestMac.mm: Ditto (but this didn't have a bug
        with streams in doUpdateResourceRequest()).

        * platform/network/mac/FormDataStreamMac.h: Forward declare formDataStreamLengthPropertyName().

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::createNSURLConnection):
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
        Update body when necessary.

        * platform/network/blackberry/ResourceRequest.h:
        * platform/network/chromium/ResourceRequest.h:
        * platform/network/curl/ResourceRequest.h:
        * platform/network/qt/ResourceRequest.h:
        * platform/network/soup/ResourceRequest.h:
        * platform/network/win/ResourceRequest.h:
        Added stubs for new functions. These ports don't keep a platform request in ResourceRequest,
        and don't need updating.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION: Loading flash switches to discrete graphics, 100 MB on membuster
<rdar://problem/13229828>

Reviewed by Dan Bernstein.

Due the change in CFBundleIdentifier, the WebProcess and PluginProcess were
unnecessarily muxing (they used to be whitelisted by OpenGL) to the discrete
GPU.

* PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
* PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:
* WebProcess/EntryPoint/mac/LegacyProcess/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info.plist:
* WebProcess/EntryPoint/mac/XPCService/WebContentService/Info.plist:
Add NSSupportsAutomaticGraphicsSwitching YES.

* WebKit2.xcodeproj/project.pbxproj:
Re-add the PluginService.32-64.Info.plist plist to the project file.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144217 268f45cc-cd09-0410-ab3c-d52691b4dbfc
More storage scaffolding
https://bugs.webkit.org/show_bug.cgi?id=110997

Reviewed by Andreas Kling.

* DerivedSources.make:
Add StorageAreaProxy.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::setItem):
Send back a DidSetItem message.

* WebKit2.xcodeproj/project.pbxproj:
Add generated files.

* WebProcess/Storage/StorageAreaProxy.cpp:
(WebKit::StorageAreaProxy::StorageAreaProxy):
Add the message receiver.

(WebKit::StorageAreaProxy::~StorageAreaProxy):
Remove the message receiver.

(WebKit::StorageAreaProxy::didSetItem):
add stub.

* WebProcess/Storage/StorageAreaProxy.h:
(StorageAreaProxy):
* WebProcess/Storage/StorageAreaProxy.messages.in: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144218 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Disable some unsound DFG DCE
https://bugs.webkit.org/show_bug.cgi?id=110948

Reviewed by Michael Saboff.
        
DCE of bitops is not sound since the bitops might call some variant of valueOf.
        
This used to work right because ValueToInt32 was MustGenerate. From the DFG IR
standpoint it feels weird to make ValueToInt32 be MustGenerate since that node is
implemented entirely as a pure conversion. If we ever gave the DFG the ability to
do effectful bitops, we would most likely implement them as special nodes not
related to the ValueToInt32 and bitop nodes we have now.
        
This change is performance neutral.

* dfg/DFGNodeType.h:
(DFG):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144219 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebSpeech: Support pause/resume ability
https://bugs.webkit.org/show_bug.cgi?id=107345

Reviewed by Beth Dakin.

Source/WebCore:

Add in the pause/resume functionality to SpeechSynthesis. Also hook up
the callback events.

Test: platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html

* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::pending):
(WebCore::SpeechSynthesis::paused):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::pause):
(WebCore::SpeechSynthesis::resume):
(WebCore):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore):
(WebCore::PlatformSpeechSynthesizer::resume):

LayoutTests:

* platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume-expected.txt: Added.
* platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144220 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add smartInsertDeleteEnabled setting to WebCore::Page
https://bugs.webkit.org/show_bug.cgi?id=107840

Patch by Manuel Rego Casasnovas <rego@igalia.com> on 2013-02-27
Reviewed by Ryosuke Niwa.

Source/WebCore:

Covered by editing/deleting/smart-editing-disabled.html.

* page/Settings.in: Add new setting with true as initial value.

Source/WebKit2:

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode): Remove code related to
isSmartInsertDeleteEnabled.
* Shared/WebPageCreationParameters.h:
(WebPageCreationParameters): Remove isSmartInsertDeleteEnabled.
* Shared/WebPreferencesStore.h:
(WebKit): Add macro for smartInsertDeleteEnabled setting.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetSmartInsertDeleteEnabled):
(WKPreferencesGetSmartInsertDeleteEnabled): Implement methods using the
new setting.
* UIProcess/API/C/WKPreferencesPrivate.h: Add new methods headers.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::initializeWebPage): Set smartInsertDeleteEnabled
setting using m_isSmartInsertDeleteEnabled to keep initial value on Mac.
(WebKit::WebPageProxy::creationParameters): Remove usage of
parameters.isSmartInsertDeleteEnabled.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::smartInsertDeleteEnabled): Enable method for
all platforms.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Remove m_isSmartInsertDeleteEnabled
initialization.
(WebKit::WebPage::updatePreferences): Set smartInsertDeleteEnabled
setting.
(WebKit::WebPage::isSmartInsertDeleteEnabled): Implement method using
settings.
(WebKit):
(WebKit::WebPage::setSmartInsertDeleteEnabled): Implement method using
settings.
* WebProcess/WebPage/WebPage.h:
(WebPage): Enable methods dealing with smartInsertDeleteEnabled for all
platforms and remove m_isSmartInsertDeleteEnabled as it will be a
setting.

LayoutTests:

Replace testRunner.setSmartInsertDeleteEnabled by
internals.settings.setSmartInsertDeleteEnabled in tests.

* editing/deleting/smart-editing-disabled.html:
* editing/selection/doubleclick-beside-cr-span.html:
* editing/selection/doubleclick-whitespace-crash.html:
* editing/selection/doubleclick-whitespace-img-crash.html:
* editing/selection/doubleclick-whitespace.html:
* platform/wk2/TestExpectations: Unflag
editing/deleting/smart-editing-disabled.html as it passes now.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144221 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Disable MathML support in release builds
https://bugs.webkit.org/show_bug.cgi?id=110981

Patch by Zan Dobersek <zdobersek@igalia.com> on 2013-02-27
Reviewed by Martin Robinson.

* Source/autotools/SetupWebKitFeatures.m4: Disable the MathML support in release builds
as the code is not yet deemed production-ready.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144222 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Touch CSSGrammar.y.in to fix an internal buildbot

* css/CSSGrammar.y.in: Add copyright dates based on previous
commits.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144223 268f45cc-cd09-0410-ab3c-d52691b4dbfc
plugins/netscape-plugin-setwindow-size*.html and plugins/pass-different-npp-struct.html should be async
https://bugs.webkit.org/show_bug.cgi?id=110973

Reviewed by Adam Barth.

There is nothing that ensures that the log messages from the plugin
come in before the layout test finished loading.

Tools:

* DumpRenderTree/TestNetscapePlugIn/Tests/PassDifferentNPPStruct.cpp:
(PassDifferentNPPStruct::NPP_SetWindow):
* DumpRenderTree/TestNetscapePlugIn/main.cpp:
(NPP_SetWindow):

LayoutTests:

* platform/mac-wk2/plugins/netscape-plugin-setwindow-size-2-expected.txt: Removed.
* plugins/netscape-plugin-setwindow-size-2.html:
* plugins/netscape-plugin-setwindow-size.html:
* plugins/pass-different-npp-struct.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Remove suppression invalidation logic from WebViewImpl
https://bugs.webkit.org/show_bug.cgi?id=110999

Patch by James Robinson <jamesr@chromium.org> on 2013-02-27
Reviewed by Adrienne Walker.

This suppression logic is now handled on the embedder side. In fact, scheduleComposite() is now only used
by DumpRenderTree.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::suppressInvalidations):
(WebKit::WebViewImpl::scheduleComposite):
* src/WebViewImpl.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refactor transform painting/hit testing code in RenderLayer.
https://bugs.webkit.org/show_bug.cgi?id=110998

Reviewed by Eric Seidel.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
Pull the code that applies the transform for painting into a new
function that can also apply an additional translation offset. This
offset will be used by the new columns code when that patch lands.
        
(WebCore::RenderLayer::createLocalTransformState):
Also patched to be able to apply an additional translation offset.

(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestLayerByApplyingTransform):
Same as with painting, pull the code that applies the transform into
its own function and also enable an extra translation offset to be
applied.
        
* rendering/RenderLayer.h:
Added the new functions to the header.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144226 268f45cc-cd09-0410-ab3c-d52691b4dbfc
RenderTableCellDeathTest unit test fails on mac
https://bugs.webkit.org/show_bug.cgi?id=110992

Unreviewed disabling of test that is hanging or crashing on Mac.

* tests/RenderTableCellTest.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (48533): Full-frame plugins stopped working (download instead of loading the plugin)
https://bugs.webkit.org/show_bug.cgi?id=111003

Reviewed by Anders Carlsson.

Also query the Page's pluginData when determining whether a given MIME type can be shown.

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCanShowMIMEType):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::canShowMIMEType):
* WebProcess/WebPage/WebPage.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] User credentials is not correctly handled
https://bugs.webkit.org/show_bug.cgi?id=110994

Source/WebCore:

Internal PR: 280990
Internal reviewed by Leo Yang.

Reviewed by Yong Li.

Following changes are made:
    Remove url from generating the hash to index user credential.
    Remove url from database.
    Use new CertMgrWrapper API to remove password from CertMgr.
    Handle encrypted password as binary data, instead of normal text string.
    When authentication fails, remove the saved user credential only when they match.
    Remove some url related API from CredentialBackingStore, as they are obsolete now.

No new tests as this is platform specific change about user credential.

* platform/network/blackberry/CredentialBackingStore.cpp:
(WebCore::hashCredentialInfo):
(WebCore::CredentialBackingStore::CredentialBackingStore):
(WebCore::CredentialBackingStore::~CredentialBackingStore):
(WebCore::CredentialBackingStore::open):
(WebCore::CredentialBackingStore::addLogin):
(WebCore::CredentialBackingStore::updateLogin):
(WebCore::CredentialBackingStore::hasLogin):
(WebCore::CredentialBackingStore::getLogin):
(WebCore::CredentialBackingStore::removeLogin):
(WebCore::CredentialBackingStore::addNeverRemember):
(WebCore::CredentialBackingStore::encryptedString):
(WebCore::CredentialBackingStore::decryptedString):
* platform/network/blackberry/CredentialBackingStore.h:
(CredentialBackingStore):
* platform/network/blackberry/NetworkJob.cpp:
(WebCore::NetworkJob::sendRequestWithCredentials):
(WebCore::NetworkJob::purgeCredentials):

Source/WebKit/blackberry:

Reviewed by Yong Li.

Following change are made:
    Remove url from CredentialTransformData, as url is not used anymore.
    Adapt to updated CredentialBackingStore API about removing url.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::authenticationChallenge):
* WebCoreSupport/CredentialManager.cpp:
(WebCore::CredentialManager::autofillPasswordForms):
(WebCore::CredentialManager::saveCredentialIfConfirmed):
* WebCoreSupport/CredentialTransformData.cpp:
(WebCore::CredentialTransformData::CredentialTransformData):
* WebCoreSupport/CredentialTransformData.h:
(CredentialTransformData):


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