"webkit-patch rebaseline <test>" fails with exit_code 1
https://bugs.webkit.org/show_bug.cgi?id=91560

Reviewed by Adam Barth.

webkit-patch rebaseline-json crashes in an svn checkout if it
tries to add files and there are no files to add; arguably
svn.add() should be robust against this, but rebaseline-json
shouldn't be calling it, either. This patch fixes the latter and
adds better debugging info to garden-o-matic so we can see what
caused the crash.

* Scripts/webkitpy/tool/commands/rebaseline.py:
(AbstractParallelRebaselineCommand._rebaseline):
* Scripts/webkitpy/tool/servers/gardeningserver.py:
(GardeningHTTPRequestHandler.rebaselineall):
(GardeningHTTPRequestHandler.rebaselineall.error_handler):
(GardeningHTTPRequestHandler):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reset the set of "seen" plugins when the main frame load is committed.
https://bugs.webkit.org/show_bug.cgi?id=92564

Reviewed by Anders Carlsson.

Because the Page object is re-used across navigation and reload, reset the list
of seen plugins when the main frame load commits. This gives a good baseline to
compare against the number of pages loaded.

No new tests; the "seen" plugin list is for diagnostic purposes only.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchDidCommitLoad):
* page/Page.cpp:
(WebCore::Page::resetSeenPlugins):
* page/Page.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r123679.
http://trac.webkit.org/changeset/123679
https://bugs.webkit.org/show_bug.cgi?id=92565

Slowed down HTML parsing by 3.6% (Requested by abarth on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-07-27

Source/WebCore:

* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::append):
* html/parser/HTMLEntityParser.cpp:
(WebCore::HTMLEntityParser::consumeNamedEntity):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::stripLeadingAndTrailingHTMLSpaces):
* html/parser/HTMLSourceTracker.cpp:
(WebCore::HTMLSourceTracker::sourceForToken):
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::script):
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::SegmentedString):
(WebCore::SegmentedString::operator=):
(WebCore::SegmentedString::clear):
(WebCore::SegmentedString::append):
(WebCore::SegmentedString::prepend):
(WebCore::SegmentedString::advanceSubstring):
(WebCore::SegmentedString::advance):
(WebCore::SegmentedString::advanceSlowCase):
(WebCore::SegmentedString::advanceAndUpdateLineNumberSlowCase):
* platform/text/SegmentedString.h:
(WebCore::SegmentedSubstring::SegmentedSubstring):
(WebCore::SegmentedSubstring::clear):
(WebCore::SegmentedSubstring::appendTo):
(SegmentedSubstring):
(WebCore::SegmentedString::SegmentedString):
(WebCore::SegmentedString::push):
(WebCore::SegmentedString::isEmpty):
(WebCore::SegmentedString::lookAhead):
(WebCore::SegmentedString::lookAheadIgnoringCase):
(WebCore::SegmentedString::advance):
(WebCore::SegmentedString::advanceAndASSERT):
(WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
(WebCore::SegmentedString::advancePastNewlineAndUpdateLineNumber):
(SegmentedString):
(WebCore::SegmentedString::advancePastNonNewline):
(WebCore::SegmentedString::advanceAndUpdateLineNumber):
(WebCore::SegmentedString::operator*):
(WebCore::SegmentedString::operator->):
(WebCore::SegmentedString::current):
(WebCore::SegmentedString::equalsLiterally):
(WebCore::SegmentedString::equalsIgnoringCase):
(WebCore::SegmentedString::lookAheadInline):
(WebCore::SegmentedString::lookAheadSlowCase):
* xml/parser/CharacterReferenceParserInlineMethods.h:
(WebCore::consumeCharacterReference):
* xml/parser/MarkupTokenizerBase.h:
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::nextInputCharacter):
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::peek):
(WebCore::MarkupTokenizerBase::InputStreamPreprocessor::advance):

Source/WTF:

* wtf/text/WTFString.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[V8] Optimize Element::getAttributeNS() by replacing String with AtomicString
https://bugs.webkit.org/show_bug.cgi?id=90276

Patch by Kentaro Hara <haraken@chromium.org> on 2012-07-27
Reviewed by Adam Barth.

In r121439, we changed the argument type of Element::getAttribute()
from String to AtomicString for optimization. This patch changes the
argument type of Element::getAttributeNS() from String to AtomicString.

Actually this change affects V8 performance only.

[JSC without the patch]
The binding code converts a given JavaScript string to a String
-> the String is passed to getAttributeNS()
-> the String is converted to an AtomicString when it is passed to
QualifiedName() constructor.

[JSC with the patch]
The binding code converts a given JavaScript string to a String
-> the String is converted to an AtomicString when it is passed to
getAttributeNS()
-> the AtomicString is passed to QualifiedName() constructor.

[V8 without the patch]
The binding code retrieves a cached external String for a given
JavaScript string
-> the String is passed to getAttributeNS()
-> the String is converted to AtomicString when it is passed to
QualifiedName() constructor.

[V8 with the patch]
The binding code retrieves a cached external AtomicString for a given
JavaScript string
-> the AtomicString is passed to getAttributeNS()
-> the AtomicString is passed to QualifiedName() constructor.

In this way, in JSC, the change affects where a String is converted to
an AtomicString. On the other hand, in V8, (since the AtomicString is already
cached,) we can skip the conversion step.

Performance test: https://bugs.webkit.org/attachment.cgi?id=150158

getAttributeNS (Chromium/Linux):
577.80ms => 454.60ms

* dom/Element.cpp:
(WebCore::Element::getAttributeNS):
* dom/Element.h:
(Element):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change constructor with explicit constructor in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=92529

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2012-07-27
Reviewed by Kentaro Hara.

As a step to let *explicit* keyword add to constructors which have a parameter,
*explicit* keyword is added to Source/WebCore/Modules in order to avoid implicit
type conversion.

No new tests. Covered by existing tests.

* Modules/filesystem/LocalFileSystem.h:
(WebCore::LocalFileSystem::LocalFileSystem):
* Modules/filesystem/Metadata.h:
(WebCore::Metadata::Metadata):
* Modules/filesystem/SyncCallbackHelper.h:
(WebCore::SyncCallbackHelper::SuccessCallbackImpl::SuccessCallbackImpl):
(WebCore::SyncCallbackHelper::ErrorCallbackImpl::ErrorCallbackImpl):
* Modules/mediastream/IceCandidate.h:
(IceCandidate):
* Modules/mediastream/NavigatorUserMediaError.h:
(WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
* Modules/mediastream/SessionDescription.h:
(SessionDescription):
* Modules/mediastream/UserMediaController.h:
(UserMediaController):
* Modules/notifications/NotificationController.h:
(NotificationController):
* Modules/speech/SpeechRecognition.h:
(SpeechRecognition):
* Modules/speech/SpeechRecognitionController.h:
(SpeechRecognitionController):
* Modules/speech/SpeechRecognitionEvent.h:
(SpeechRecognitionEvent):
* Modules/speech/SpeechRecognitionResultList.h:
(SpeechRecognitionResultList):
* Modules/vibration/Vibration.h:
(Vibration):
* Modules/webaudio/AudioBuffer.h:
(AudioBuffer):
* Modules/webaudio/AudioContext.h:
(AudioContext):
* Modules/webaudio/AudioNodeInput.h:
(AudioNodeInput):
* Modules/webaudio/AudioSummingJunction.h:
(AudioSummingJunction):
* Modules/webaudio/BiquadDSPKernel.h:
(WebCore::BiquadDSPKernel::BiquadDSPKernel):
* Modules/webaudio/DefaultAudioDestinationNode.h:
(DefaultAudioDestinationNode):
* Modules/webaudio/DelayDSPKernel.h:
(DelayDSPKernel):
* Modules/webaudio/OfflineAudioCompletionEvent.h:
(OfflineAudioCompletionEvent):
* Modules/webaudio/WaveShaperDSPKernel.h:
(WebCore::WaveShaperDSPKernel::WaveShaperDSPKernel):
* Modules/webaudio/WaveShaperNode.h:
(WaveShaperNode):
* Modules/webaudio/WaveTable.h:
(WaveTable):
* Modules/webdatabase/DatabaseAuthorizer.h:
(DatabaseAuthorizer):
* Modules/webdatabase/DatabaseTask.h:
(Database::DatabaseTransactionTask):
* Modules/webdatabase/DatabaseTracker.h:
(DatabaseTracker):
* Modules/webdatabase/SQLCallbackWrapper.h:
(WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask):
* Modules/webdatabase/SQLException.h:
(WebCore::SQLException::SQLException):
* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocketExtensionProcessor.h:
(WebCore::WebSocketExtensionProcessor::WebSocketExtensionProcessor):

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