Reverted r127468 (the fix for <http://webkit.org/b/93443>) because the test it included caused
an assertion failure in Document::updateStyleIfNeeded().

Source/WebCore: 

* dom/NamedFlowCollection.cpp:
(WebCore::NamedFlowCollection::ensureFlowWithName):
(WebCore::NamedFlowCollection::discardNamedFlow):
* inspector/Inspector.json:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::didCreateNamedFlow):
(WebCore::InspectorCSSAgent::didRemoveNamedFlow):
(WebCore::InspectorCSSAgent::getNamedFlowCollection):
(WebCore::InspectorCSSAgent::getFlowByName):
(WebCore):
* inspector/InspectorCSSAgent.h:
(InspectorCSSAgent):
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::didCreateNamedFlowImpl):
(WebCore::InspectorInstrumentation::didRemoveNamedFlowImpl):
* inspector/InspectorInstrumentation.h:
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::didCreateNamedFlow):
(WebCore::InspectorInstrumentation::didRemoveNamedFlow):
* inspector/front-end/CSSStyleModel.js:
(WebInspector.CSSStyleModel):
(WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
(WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
(WebInspector.CSSStyleModel.prototype._namedFlowCreated.callback):
(WebInspector.CSSStyleModel.prototype._namedFlowCreated):
(WebInspector.CSSStyleModel.prototype._namedFlowRemoved.callback):
(WebInspector.CSSStyleModel.prototype._namedFlowRemoved):
(WebInspector.CSSDispatcher.prototype.namedFlowCreated):
(WebInspector.CSSDispatcher.prototype.namedFlowRemoved):
(WebInspector.NamedFlow):
(WebInspector.NamedFlow.parsePayloadArray):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent):

LayoutTests: 

* inspector/styles/protocol-css-regions-commands-expected.txt:
* inspector/styles/protocol-css-regions-commands.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127500 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MediaStream API: Add the async createOffer functionality to RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=95734

Reviewed by Adam Barth.

Source/Platform:

* Platform.gypi:
* chromium/public/WebRTCPeerConnectionHandler.h:
(WebKit):
(WebRTCPeerConnectionHandler):
* chromium/public/WebRTCSessionDescriptionDescriptor.h: Added.
(WebCore):
(WebKit):
(WebRTCSessionDescriptionDescriptor):
(WebKit::WebRTCSessionDescriptionDescriptor::WebRTCSessionDescriptionDescriptor):
(WebKit::WebRTCSessionDescriptionDescriptor::~WebRTCSessionDescriptionDescriptor):
(WebKit::WebRTCSessionDescriptionDescriptor::operator=):
(WebKit::WebRTCSessionDescriptionDescriptor::isNull):
* chromium/public/WebRTCSessionDescriptionRequest.h: Added.
(WebCore):
(WebKit):
(WebRTCSessionDescriptionRequest):
(ExtraData):
(WebKit::WebRTCSessionDescriptionRequest::ExtraData::~ExtraData):
(WebKit::WebRTCSessionDescriptionRequest::WebRTCSessionDescriptionRequest):
(WebKit::WebRTCSessionDescriptionRequest::~WebRTCSessionDescriptionRequest):
(WebKit::WebRTCSessionDescriptionRequest::operator=):
(WebKit::WebRTCSessionDescriptionRequest::isNull):

Source/WebCore:

createOffer sends a request to the platform implementer requesting it to gather up all candidates.
This can take some time, therefore the request is async.

Test: fast/mediastream/RTCPeerConnection-createOffer.html

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCErrorCallback.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
(WebCore):
(RTCErrorCallback):
(WebCore::RTCErrorCallback::~RTCErrorCallback):
* Modules/mediastream/RTCErrorCallback.idl: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createOffer):
(WebCore):
* Modules/mediastream/RTCPeerConnection.h:
(WebCore):
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCSessionDescriptionCallback.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
(WebCore):
(RTCSessionDescriptionCallback):
(WebCore::RTCSessionDescriptionCallback::~RTCSessionDescriptionCallback):
* Modules/mediastream/RTCSessionDescriptionCallback.idl: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
* Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp: Added.
(WebCore):
(WebCore::RTCSessionDescriptionRequestImpl::create):
(WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
(WebCore::RTCSessionDescriptionRequestImpl::~RTCSessionDescriptionRequestImpl):
(WebCore::RTCSessionDescriptionRequestImpl::requestSucceeded):
(WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
(WebCore::RTCSessionDescriptionRequestImpl::stop):
(WebCore::RTCSessionDescriptionRequestImpl::clear):
* Modules/mediastream/RTCSessionDescriptionRequestImpl.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
(WebCore):
(RTCSessionDescriptionRequestImpl):
* WebCore.gypi:
* platform/chromium/support/WebRTCSessionDescriptionDescriptor.cpp: Copied from Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h.
(WebKit):
(WebKit::WebRTCSessionDescriptionDescriptor::WebRTCSessionDescriptionDescriptor):
(WebKit::WebRTCSessionDescriptionDescriptor::assign):
(WebKit::WebRTCSessionDescriptionDescriptor::reset):
(WebKit::WebRTCSessionDescriptionDescriptor::operator WTF::PassRefPtr<WebCore::RTCSessionDescriptionDescriptor>):
(WebKit::WebRTCSessionDescriptionDescriptor::initialize):
(WebKit::WebRTCSessionDescriptionDescriptor::type):
(WebKit::WebRTCSessionDescriptionDescriptor::setType):
(WebKit::WebRTCSessionDescriptionDescriptor::sdp):
(WebKit::WebRTCSessionDescriptionDescriptor::setSDP):
* platform/chromium/support/WebRTCSessionDescriptionRequest.cpp: Added.
(WebKit):
(WebKit::WebRTCSessionDescriptionRequest::WebRTCSessionDescriptionRequest):
(WebKit::WebRTCSessionDescriptionRequest::assign):
(WebKit::WebRTCSessionDescriptionRequest::reset):
(WebKit::WebRTCSessionDescriptionRequest::requestSucceeded):
(WebKit::WebRTCSessionDescriptionRequest::requestFailed):
(ExtraDataContainer):
(WebKit::ExtraDataContainer::ExtraDataContainer):
(WebKit::ExtraDataContainer::extraData):
(WebKit::WebRTCSessionDescriptionRequest::extraData):
(WebKit::WebRTCSessionDescriptionRequest::setExtraData):
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::createOffer):
(WebCore):
* platform/mediastream/RTCPeerConnectionHandler.h:
(WebCore):
(RTCPeerConnectionHandler):
* platform/mediastream/RTCSessionDescriptionDescriptor.h:
(WebCore::RTCSessionDescriptionDescriptor::type):
(WebCore::RTCSessionDescriptionDescriptor::sdp):
* platform/mediastream/RTCSessionDescriptionRequest.h: Copied from Source/WebCore/platform/mediastream/RTCSessionDescriptionDescriptor.h.
(WebCore):
(RTCSessionDescriptionRequest):
(ExtraData):
(WebCore::RTCSessionDescriptionRequest::ExtraData::~ExtraData):
(WebCore::RTCSessionDescriptionRequest::~RTCSessionDescriptionRequest):
(WebCore::RTCSessionDescriptionRequest::extraData):
(WebCore::RTCSessionDescriptionRequest::setExtraData):
(WebCore::RTCSessionDescriptionRequest::RTCSessionDescriptionRequest):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::createOffer):
(WebCore):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):

Tools:

* DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:
(MockWebRTCPeerConnectionHandler::SuccessCallbackTask::SuccessCallbackTask):
(MockWebRTCPeerConnectionHandler::SuccessCallbackTask::runIfValid):
(MockWebRTCPeerConnectionHandler::FailureCallbackTask::FailureCallbackTask):
(MockWebRTCPeerConnectionHandler::FailureCallbackTask::runIfValid):
(MockWebRTCPeerConnectionHandler::createOffer):
* DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h:
(MockWebRTCPeerConnectionHandler):
(MockWebRTCPeerConnectionHandler::taskList):
(SuccessCallbackTask):
(FailureCallbackTask):

LayoutTests:

* fast/mediastream/RTCPeerConnection-createOffer-expected.txt: Added.
* fast/mediastream/RTCPeerConnection-createOffer.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Use child/ScrollableContent layer's position instead of parent/ScrollLayer's boundsOrigin
https://bugs.webkit.org/show_bug.cgi?id=95778
PR #202252

Reviewed by Rob Buis.
Patch by Antonio Gomes <agomes@rim.com>
Internally reviewed by Arvid Nilsson.

Upstream has switch away from using the parent scroll layer's bounds origin
in order to translate contents of all its child layers. Instead now, it directly
sets the scroll position of the child scrollable contents layer.

Source/WebCore:

No new tests, since it is a catch-up with upstreaming code.

Source/WebCore:
* platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
(WebCore):
* platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
(GraphicsLayerBlackBerry):
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::updateAnimations):
* platform/graphics/blackberry/LayerCompositingThread.h:
(WebCore::LayerOverride::LayerOverride):
(LayerOverride):
* platform/graphics/blackberry/LayerData.h:
(LayerData):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::updateLayersRecursive):
* platform/graphics/blackberry/LayerWebKitThread.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

Source/WebKit/blackberry:

Source/WebKit/blackberry:
* Api/InRegionScroller.cpp:
(BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionCompositingThread):
* WebKitSupport/InRegionScrollableArea.cpp:
(BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea):

No new tests, since it is a catch-up with upstreaming code.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127502 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG GetByVal for JSArrays shouldn't OSR exit every time that the index is out of bound
https://bugs.webkit.org/show_bug.cgi?id=95717

Reviewed by Oliver Hunt.

Make GetByVal for JSArrayOutOfBounds do meaningful things. The profiling was already
there so we should just use it!

* bytecode/DFGExitProfile.h:
(JSC::DFG::exitKindToString):
* dfg/DFGAbstractState.cpp:
(JSC::DFG::AbstractState::execute):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127503 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Improve JSC use of Strings after the UString->String change
https://bugs.webkit.org/show_bug.cgi?id=95633

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-09-04
Reviewed by Geoffrey Garen.

This patch improve the use of strings in the JSC runtime.

The initialization of Identifier is left for future patches.

The improvements are the following:
-5% faster to raise one of the modified exception.
-3 times faster to execute Boolean::toString()

Most of the changes are just about using the new methods
for string literals.

With the changes, the binary on x86_64 gets 176 bytes smaller.

* API/JSCallbackObjectFunctions.h:
(JSC::::staticFunctionGetter):
(JSC::::callbackGetter):
* API/JSContextRef.cpp:
(JSContextCreateBacktrace):
* API/JSObjectRef.cpp:
(JSObjectMakeFunctionWithCallback):
* bytecode/CodeBlock.cpp:
(JSC::valueToSourceString):
(JSC::CodeBlock::nameForRegister):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::addStackTraceIfNecessary):
* runtime/ArrayConstructor.cpp:
(JSC::constructArrayWithSizeQuirk):
* runtime/ArrayPrototype.cpp:
(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncReverse):
* runtime/BooleanPrototype.cpp:
(JSC::booleanProtoFuncToString): Instead of instanciating new strings, reuse the
keywords available in SmallStrings. Avoiding the creation of the JSString and StringImpl
makes the method significantly faster.

* runtime/DateConversion.cpp:
(JSC::formatDateTime):
* runtime/DatePrototype.cpp:
(JSC::formatLocaleDate):
(JSC::formateDateInstance):
(JSC::dateProtoFuncToISOString):
Change the way we use snprintf() for clarity and performance.

Instead of allocating one extra byte to put a zero "just in case", we use the size returned
by snprintf().
To prevent any overflow from a programming mistake, we explicitely test for overflow and
return an empty string.

(JSC::dateProtoFuncToJSON):
* runtime/Error.cpp:
(JSC::createNotEnoughArgumentsError):
(JSC::throwTypeError):
(JSC::throwSyntaxError):
* runtime/Error.h:
(JSC::StrictModeTypeErrorFunction::create):
* runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::finishCreation):
(JSC::errorProtoFuncToString):
Using a null String is correct because (8) uses jsString(), (9) tests for a length of 0.

* runtime/ExceptionHelpers.cpp:
(JSC::InterruptedExecutionError::defaultValue):
(JSC::TerminatedExecutionError::defaultValue):
(JSC::createStackOverflowError):
(JSC::createOutOfMemoryError):
* runtime/Executable.cpp:
(JSC::EvalExecutable::compileInternal):
(JSC::FunctionExecutable::paramString):
* runtime/FunctionConstructor.cpp:
(JSC::constructFunction):
(JSC::constructFunctionSkippingEvalEnabledCheck):
* runtime/FunctionPrototype.h:
(JSC::FunctionPrototype::create):
Using a null String for the name is correct because InternalFunction uses jsString()
to create the name value.

* runtime/InternalFunction.cpp:
(JSC::InternalFunction::finishCreation):
There is no need to create an empty string for a null string, jsString() handle both
cases as empty JSString.

* runtime/JSArray.cpp:
(JSC::reject):
(JSC::SparseArrayValueMap::put):
(JSC::JSArray::put):
(JSC::JSArray::putByIndexBeyondVectorLength):
(JSC::JSArray::putDirectIndexBeyondVectorLength):
(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::push):
* runtime/JSFunction.cpp:
(JSC::JSFunction::finishCreation): Same issue as InternalFunction::finishCreation.

(JSC::JSFunction::callerGetter):
(JSC::JSFunction::defineOwnProperty):
* runtime/JSGlobalData.cpp:
(JSC::enableAssembler): Use CFSTR() instead of CFStringCreateWithCString().
CFStringCreateWithCString() copy the content and may choose to decode the data.
CFSTR() is much more efficient.

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
JSFunction uses jsString() to create the name, we can use null strings instead
of creating empty strings.

(JSC::JSGlobalObject::createThrowTypeError): ditto.
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::encode):
(JSC::decode):
(JSC::globalFuncEval):
* runtime/JSONObject.cpp:
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::JSONProtoFuncParse):
(JSC::JSONProtoFuncStringify):
* runtime/JSObject.cpp:
(JSC::JSObject::put):
(JSC::JSObject::defaultValue):
(JSC::JSObject::hasInstance):
(JSC::JSObject::defineOwnProperty):
* runtime/JSString.cpp:
Return an empty JSString to avoid the creation of a temporary empty String.

(JSC::JSRopeString::getIndexSlowCase):
* runtime/JSString.h:
(JSC): Remove the versions of jsNontrivialString() taking a char*. All the callers
have been replaced by calls using ASCIILiteral.

* runtime/JSValue.cpp:
(JSC::JSValue::putToPrimitive):
* runtime/LiteralParser.cpp:
(JSC::::Lexer::lex):
(JSC::::Lexer::lexString):
(JSC::::Lexer::lexNumber):
(JSC::::parse):
* runtime/LiteralParser.h:
(JSC::LiteralParser::getErrorMessage):
* runtime/NumberPrototype.cpp:
(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorGetPrototypeOf):
(JSC::objectConstructorGetOwnPropertyDescriptor):
(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorKeys):
(JSC::toPropertyDescriptor):
(JSC::objectConstructorDefineProperty):
(JSC::objectConstructorDefineProperties):
(JSC::objectConstructorCreate):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorPreventExtensions):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):
(JSC::objectConstructorIsExtensible):
* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):
(JSC::objectProtoFuncToString):
* runtime/RegExpConstructor.cpp:
(JSC::constructRegExp):
* runtime/RegExpObject.cpp:
(JSC::reject):
(JSC::regExpObjectSource):
* runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncCompile):
* runtime/StringObject.cpp:
(JSC::StringObject::defineOwnProperty):
* runtime/StringPrototype.cpp:
(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed gardening. meda/video-controls-captions.html fails on Windows after it was introduced in http://trac.webkit.org/changeset/127035.
https://bugs.webkit.org/show_bug.cgi?id=95428

* platform/win/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127506 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Run git commands within the checkout directory
https://bugs.webkit.org/show_bug.cgi?id=95742

Reviewed by Eric Seidel.

git commands run from scm/git.py are sometimes run with cwd set to the
checkout_root and other times with whatever directory was the default cwd.
Instead all these should run with the checkout root set as the cwd
(except where we explicitly need a different path)

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git._run_git):
(Git.find_checkout_root):
(Git.discard_local_commits):
(Git.local_commits):
(Git.working_directory_is_clean):
(Git.clean_working_directory):
(Git.add_list):
(Git.delete_list):
(Git.exists):
(Git._current_branch):
(Git._changes_files_for_commit):
(Git.revisions_changing_file):
(Git.svn_revision):
(Git._run_git_svn_find_rev):
(Git.contents_at_revision):
(Git.diff_for_file):
(Git.show_head):
(Git.committer_email_for_revision):
(Git.apply_reverse_diff):
(Git.revert_files):
(Git.commit_with_message):
(Git._commit_on_branch):
(Git.svn_commit_log):
(Git.last_svn_commit_log):
(Git.svn_blame):
(Git._branch_ref_exists):
(Git.delete_branch):
(Git.remote_merge_base):
(Git.commit_locally_with_message):
(Git.push_local_commits_to_server):
(Git.commit_ids_from_commitish_arguments):
(Git.commit_message_for_local_commit):
(Git.files_changed_summary_for_commit):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
equal() in CSSParser.cpp should check the length of characters
https://bugs.webkit.org/show_bug.cgi?id=95706

Source/WebCore: 

Reviewed by Abhishek Arya.

Pass the length of string literals to CSSParser static functions equal() and 
equalIgnoringCase() so that checks won't access out of bounds memory.

Added test fast/css/crash-comparing-equal.html.

* css/CSSParser.cpp:
(WebCore::equal): Use template to retrieve the length of string literal.
(WebCore::equalIgnoringCase): Ditto.
(WebCore::CSSParser::parseDashboardRegions): Use const char[] instead of const char*

LayoutTests: 

Added test from duplicate defect https://bugs.webkit.org/show_bug.cgi?id=95634.

Reviewed by Abhishek Arya.

* fast/css/crash-comparing-equal-expected.txt: Added.
* fast/css/crash-comparing-equal.html: Added.


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