Merge pull request #6 from matt-langston/javascriptcore_jsexport_api

Initial implementation of JSVirtualMachineRef and JSManagedValueRef.
Attempt to appease windows bot.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed.  Added my webkit.org email address.

Patch by Alex Christensen <alex.christensen@flexsim.com> on 2013-08-23

* Scripts/webkitpy/common/config/contributors.json:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154502 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r153534.
http://trac.webkit.org/changeset/153534
https://bugs.webkit.org/show_bug.cgi?id=120216

Too many tests failing just WinEWS bots (Requested by rfong on
#webkit).

* Scripts/webkitpy/common/config/ews.json:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154503 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Merge pull request #7 from matt-langston/javascriptcore_jsexport_api

Merge in webkit/master.
RenderView::compositor() should return a reference.
<https://webkit.org/b/120217>

Reviewed by Beth Dakin.

The RenderLayerCompositor is lazily constructed by compositor() and never returns null.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        http/tests/cache/partitioned-cache.html breaks subsequent cookie tests
        https://bugs.webkit.org/show_bug.cgi?id=120212

        Reviewed by Tim Horton.

        The test never deleted its localhost cookie, so subsequent third party cookie
        relaxing tests saw the existing cookie and failed.

        There is no need to use cookies in this test, and it's actually slightly incorrect,
        as the network layer may refuse to use a cached result simply because cookies changed,
        and then we wouldn't test 3rd party data blocking.

        * platform/qt/http/tests/cache/partitioned-cache-expected.txt:
        * http/tests/cache/partitioned-cache-expected.txt: Updated results. It took me 
        a long time to understand what the test was doing, so made it a bit more self-descriptive.

        * http/tests/cache/partitioned-cache.html: Tabs to spaces.

        * http/tests/cache/resources/echo-cookie.cgi: Removed.
        * http/tests/cache/resources/partitioned-cache-echo-state.php: Added.
        * http/tests/cache/resources/partitioned-cache-loader.html:
        Changed to use a local file on the server to modify resource content.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
regexp-match-reify-before-putbyval is not a JSRegress test
https://bugs.webkit.org/show_bug.cgi?id=120181

Reviewed by Geoffrey Garen.

Moved and re-baselined regexp-match-reify-before-putbyval test into fast/js.

* fast/js/regexp-match-reify-before-putbyval-expected.txt: Copied from LayoutTests/fast/js/regress/regexp-match-reify-before-putbyval-expected.txt.
* fast/js/regexp-match-reify-before-putbyval.html: Copied from LayoutTests/fast/js/regress/regexp-match-reify-before-putbyval.html.
* fast/js/regress/regexp-match-reify-before-putbyval-expected.txt: Removed.
* fast/js/regress/regexp-match-reify-before-putbyval.html: Removed.
* fast/js/regress/script-tests/regexp-match-reify-before-putbyval.js: Removed.
* fast/js/script-tests/regexp-match-reify-before-putbyval.js: Copied from LayoutTests/fast/js/regress/script-tests/regexp-match-reify-before-putbyval.js.


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

* WTF.vcxproj/WTF.vcxproj.filters: Adjust files so they show up
in the proper folders.
* WTF.vcxproj/WTFCommon.props: Add search path for zlib header and
include link directive.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Windows] Refactor WebFrame to compose with WebFrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=120092

Reviewed by Anders Carlsson.

Revise WebFrame implementation on Windows to no longer subclass from
WebFrameLoaderClient, instead using a fully-functional WebFrameLoaderClient
as a helper object to perform the tasks, as is done in the other
ports. This is a step towards completing
https://bugs.webkit.org/show_bug.cgi?id=119964.

* WebCoreSupport/WebFrameLoaderClient.cpp: Add a new 'private data'
object to house the policy delegate and function.
(WebFrameLoaderClient::WebFramePolicyListenerPrivate::WebFramePolicyListenerPrivate):
Create the new private data object.
(WebFrameLoaderClient::WebFramePolicyListenerPrivate::~WebFramePolicyListenerPrivate):
Destroy the new private data object.
(WebFrameLoaderClient::WebFrameLoaderClient): Moved from WebFrame.cpp
(WebFrameLoaderClient::frameLoaderDestroyed): Ditto
(WebFrameLoaderClient::makeRepresentation): Ditto
(WebFrameLoaderClient::forceLayoutForNonHTML): Ditto
(WebFrameLoaderClient::setCopiesOnScroll): Ditto
(WebFrameLoaderClient::detachedFromParent2): Ditto
(WebFrameLoaderClient::detachedFromParent3): Ditto
(WebFrameLoaderClient::convertMainResourceLoadToDownload): Ditto
(WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): Ditto
(WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Ditto
(WebFrameLoaderClient::dispatchDidFailLoad): Ditto
(WebFrameLoaderClient::dispatchDecidePolicyForResponse): Ditto
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto
(WebFrameLoaderClient::dispatchUnableToImplementPolicy): Ditto
(WebFrameLoaderClient::dispatchWillSendSubmitEvent): Ditto
(WebFrameLoaderClient::dispatchWillSubmitForm): Ditto
(WebFrameLoaderClient::startDownload): Ditto
(WebFrameLoaderClient::willChangeTitle): Ditto
(WebFrameLoaderClient::didChangeTitle): Ditto
(WebFrameLoaderClient::cancelledError): Ditto
(WebFrameLoaderClient::blockedError): Ditto
(WebFrameLoaderClient::cannotShowURLError): Ditto
(WebFrameLoaderClient::interruptedForPolicyChangeError): Ditto
(WebFrameLoaderClient::cannotShowMIMETypeError): Ditto
(WebFrameLoaderClient::fileDoesNotExistError): Ditto
(WebFrameLoaderClient::pluginWillHandleLoadError): Ditto
(WebFrameLoaderClient::shouldFallBack): Ditto
(WebFrameLoaderClient::canHandleRequest): Ditto
(WebFrameLoaderClient::canShowMIMEType): Ditto
(WebFrameLoaderClient::canShowMIMETypeAsHTML): Ditto
(WebFrameLoaderClient::representationExistsForURLScheme): Ditto
(WebFrameLoaderClient::generatedMIMETypeForURLScheme): Ditto
(WebFrameLoaderClient::frameLoadCompleted): Ditto
(WebFrameLoaderClient::saveViewStateToItem): Ditto
(WebFrameLoaderClient::restoreViewState): Ditto
(WebFrameLoaderClient::provisionalLoadStarted): Ditto
(WebFrameLoaderClient::didFinishLoad): Ditto
(WebFrameLoaderClient::prepareForDataSourceReplacement): Ditto
(WebFrameLoaderClient::userAgent): Ditto
(WebFrameLoaderClient::objectContentType): Ditto
(WebFrameLoaderClient::createJavaAppletWidget): Ditto
(WebFrameLoaderClient::overrideMediaType): Ditto
(WebFrameLoaderClient::documentElementAvailable): Ditto
(WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld): Ditto
(WebFrameLoaderClient::registerForIconNotification): Ditto
(WebFrameLoaderClient::didPerformFirstNavigation): Ditto
(WebFrameLoaderClient::createNetworkingContext): Ditto
(WebFrameLoaderClient::shouldAlwaysUsePluginDocument): Ditto
(WebFrameLoaderClient::revertToProvisionalState): Ditto
(WebFrameLoaderClient::setMainFrameDocumentReady): Ditto
(WebFrameLoaderClient::cancelPolicyCheck): Ditto
(WebFrameLoaderClient::setUpPolicyListener): Ditto
(WebFrameLoaderClient::receivedPolicyDecision): Ditto
* WebCoreSupport/WebFrameLoaderClient.h:
(WebFrameLoaderClient::webFrame): Add accessor method
* WebDataSource.cpp:
(WebDataSource::representation): Loader client is now
a WebFrameLoaderClient (not a WebFrame).
(WebDataSource::webFrame): Ditto
* WebElementPropertyBag.cpp:
(WebElementPropertyBag::Read): Loader client is now
a WebFrameLoaderClient (not a WebFrame)
* WebFrame.cpp:
(kit): Revise for WebFrameLoaderClient use.
(WebFrame::WebFramePrivate::WebFramePrivate): Remove
WebFramePolicyListener and FramePolicyFunction, since
they are no longer needed here. They were moved to
the WebFrameLoaderClient object.
(WebFrame::WebFrame): No longer inheriting from
WebFramePolicyListener.
(WebFrame::init): Frame::create now needs to be supplied
with a new WebFramePolicyListener, rather than 'this'
* WebFrame.h:
* WebFramePolicyListener.cpp:
(WebFramePolicyListener::receivedPolicyDecision): Loader
client is now a WebFramePolicyClient, not a WebFrame.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154508 268f45cc-cd09-0410-ab3c-d52691b4dbfc
build-jsc --ftl-jit should work
https://bugs.webkit.org/show_bug.cgi?id=120194

Reviewed by Oliver Hunt.

Source/JavaScriptCore: 

* Configurations/Base.xcconfig: CPPFLAGS should include FEATURE_DEFINES
* Configurations/JSC.xcconfig: The 'jsc' tool includes headers where field layout may depend on FEATURE_DEFINES
* Configurations/ToolExecutable.xcconfig: All other tools include headers where field layout may depend on FEATURE_DEFINES
* ftl/FTLLowerDFGToLLVM.cpp: Build fix
(JSC::FTL::LowerDFGToLLVM::compilePutStructure):
(JSC::FTL::LowerDFGToLLVM::compilePhantomPutStructure):

Source/WTF: 

* wtf/LLVMHeaders.h: I don't know what went wrong here. If HAVE(LLVM), then we need those headers!

Tools: 

* Scripts/build-jsc: Need to pass the feature flag to xcodebuild



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154509 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move TestWebKitAPI_LIBRARIES before platform specific cmake include
https://bugs.webkit.org/show_bug.cgi?id=120220

Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-08-23
Reviewed by Martin Robinson.

* TestWebKitAPI/CMakeLists.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154511 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        http/tests/cache/partitioned-cache.html breaks subsequent cookie tests
        https://bugs.webkit.org/show_bug.cgi?id=120212

        Updating test results for a last minute change that moved lines.

        * http/tests/cache/partitioned-cache-expected.txt:
        * platform/qt/http/tests/cache/partitioned-cache-expected.txt:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Re-separating Win32 and Win64 builds.
https://bugs.webkit.org/show_bug.cgi?id=120178

Reviewed by Brent Fulgham.

Source/JavaScriptCore: 

* JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make:
* JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make:
* JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make:
Pass PlatformArchitecture as a command line parameter to bash scripts.
* JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.sh:
* JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.sh:
* JavaScriptCore.vcxproj/build-generated-files.sh:
Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).

Source/WebCore: 

* WebCore.vcxproj/WebCoreGenerated.make:
* WebCore.vcxproj/WebCoreGeneratedWinCairo.make:
Pass PlatformArchitecture as a command line parameter to bash scripts
and use PlatformArchitecture to determine which directory to delete
while cleaning (obj32 or obj64).
* WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props:
Export PlatformArchitecture to be used by make and cmd scripts.
* WebCore.vcxproj/build-generated-files.sh:
Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
* WebCore.vcxproj/copyForwardingHeaders.cmd:
* WebCore.vcxproj/copyWebCoreResourceFiles.cmd:
Use PlatformArchitecture to determine which directory to copy to (obj32 or obj64).

Source/WebKit: 

* WebKit.vcxproj/WebKit/WebKitPostBuild.cmd:
* WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd:
* WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd:
* WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd:
Use PlatformArchitecture to determine correct object directory (obj32 or obj64).

Source/WTF: 

* WTF.vcxproj/WTFGenerated.make:
Pass PlatformArchitecture as a command line parameter to bash scripts.
* WTF.vcxproj/build-generated-files.sh:
Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).

WebKitLibraries: 

* win/tools/vsprops/common.props:
Export PlatformArchitecture to be used by make and cmd scripts.
Use PlatformArchitecture to determine correct build directory
(lib32/bin32/obj32 or lib64/bin64/obj64).



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154513 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/http/tests/media/video-throttled-load.cgi issue on range support
https://bugs.webkit.org/show_bug.cgi?id=120219

Patch by Andre Moreira Magalhaes <andre.magalhaes@collabora.co.uk> on 2013-08-23
Reviewed by Eric Carlson.

Properly count bytes when handling range requests.

* http/tests/media/video-throttled-load.cgi:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reduce use of Node in HTMLTableRowsCollection, and use modern traversal idiom
https://bugs.webkit.org/show_bug.cgi?id=120222

Reviewed by Antti Koivisto.

* html/HTMLTableRowElement.h:
(WebCore::isHTMLTableRowElement): Added.
(WebCore::isElementOfType<HTMLTableRowElement>): Added.
(WebCore::toHTMLTableRowElement): Added.

* html/HTMLTableRowsCollection.cpp:
(WebCore::assertRowIsInTable): Refactored a bit. Changed #if as Andy Estes
requested during rewview and got rid of local variables.
(WebCore::HTMLTableRowsCollection::rowAfter): Moved a ocmment in here.
Changed code to traverse elements instead of nodes, and used the Traversal<>
template to eliminate some loops entirely.
(WebCore::HTMLTableRowsCollection::lastRow): Ditto.
(WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection): Changed argument
type from Node to HTMLTableElement.
(WebCore::HTMLTableRowsCollection::create): Added an assertion for the value
of the collection type argument, and added the typecast here needed for the
change above.
(WebCore::HTMLTableRowsCollection::virtualItemAfter): Removed the assertion
here that was a subset of the assertion we now have inside the rowAfter function.

* html/HTMLTableRowsCollection.h: Added FINAL. Made single-argument constructor
explicit.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154515 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add more validation logic to CompressibleVector
https://bugs.webkit.org/show_bug.cgi?id=120227

Reviewed by Brent Fulgham.

Add a pile of assertions to try on catch whatever is going wrong
in the windows environment or other platforms.

* wtf/Compression.cpp:
(WTF::GenericCompressedData::create):
(WTF::GenericCompressedData::decompress):
* wtf/Compression.h:
(WTF::CompressedVector::decompress):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154516 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Let Document keep its RenderView during render tree attach.
<https://webkit.org/b/120224>

Reviewed by Antti Koivisto.

Remove prehistoric code that cleared Document's renderer pointer during tree attach.

* dom/Document.cpp:
(WebCore::Document::attach):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Incorrect TypedArray#set behavior
https://bugs.webkit.org/show_bug.cgi?id=83818

Source/JavaScriptCore: 

Reviewed by Oliver Hunt and Mark Hahnenberg.
        
This was so much fun! typedArray.set() is like a memmove on steroids, and I'm
not smart enough to figure out optimal versions for *all* of the cases. But I
did come up with optimal implementations for most of the cases, and I wrote
spec-literal code (i.e. copy via a transfer buffer) for the cases I'm not smart
enough to write optimal code for.

* runtime/JSArrayBufferView.h:
(JSC::JSArrayBufferView::hasArrayBuffer):
* runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::buffer):
(JSC::JSArrayBufferView::existingBufferInButterfly):
(JSC::JSArrayBufferView::neuter):
(JSC::JSArrayBufferView::byteOffset):
* runtime/JSGenericTypedArrayView.h:
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::::setWithSpecificType):
(JSC::::set):
(JSC::::existingBuffer):

LayoutTests: 

Reviewed by Oliver Hunt and Mark Hahnenberg.
        
Made it possible for shouldBe() to compare typed arrays to each other and to any array-like
object.
        
Added a bunch of tests for different kinds of overlapping typedArray.set()'s.
        
For sanity, also added the reduced test case from the bug. Interestingly, though, that test
case already passed on trunk - probably by luck (we had incidentally changed the default
copy direction from one that happened to not work to one that happened to be fine, but only
for this test).

* fast/js/jsc-test-list:
* fast/js/resources/js-test-pre.js:
(isTypedArray):
(isResultCorrect):
(stringify):
(shouldBe):
* fast/js/script-tests/typed-array-copy.js: Added.
* fast/js/script-tests/typedarray-set-destination-smaller-than-source.js: Added.
* fast/js/script-tests/typedarray-set-overlapping-elements-of-same-size.js: Added.
* fast/js/script-tests/typedarray-set-same-type-memmove.js: Added.
(arraysEqual):
* fast/js/script-tests/typedarray-set-source-smaller-than-destination.js: Added.
* fast/js/typed-array-copy-expected.txt: Added.
* fast/js/typed-array-copy.html: Added.
* fast/js/typedarray-set-destination-smaller-than-source-expected.txt: Added.
* fast/js/typedarray-set-destination-smaller-than-source.html: Added.
* fast/js/typedarray-set-overlapping-elements-of-same-size-expected.txt: Added.
* fast/js/typedarray-set-overlapping-elements-of-same-size.html: Added.
* fast/js/typedarray-set-same-type-memmove-expected.txt: Added.
* fast/js/typedarray-set-same-type-memmove.html: Added.
* fast/js/typedarray-set-source-smaller-than-destination-expected.txt: Added.
* fast/js/typedarray-set-source-smaller-than-destination.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Cut down repeated code in RefPtr and RetainPtr by using copy/move-and-swap for assignment operators
https://bugs.webkit.org/show_bug.cgi?id=120223

Reviewed by Anders Carlsson.

* wtf/RefPtr.h: Switch to copy-and-swap in the assignment operators. The move ones already were done
that way.
* wtf/RetainPtr.h: Ditto, except for the move ones too.

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