Implement WebCrypto wrapKey
https://bugs.webkit.org/show_bug.cgi?id=124738

Reviewed by Anders Carlsson.

Source/WebCore: 

Tests: crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html
       crypto/subtle/aes-cbc-wrap-rsa.html

* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::exportKey): Factored out the actual operation that can be chained with
encryption for wrapKey.
(WebCore::JSSubtleCrypto::exportKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey): Fixed a memory leak in failure code path.

* crypto/SubtleCrypto.idl: Added wrapKey.

LayoutTests: 

* crypto/subtle/aes-cbc-wrap-rsa-expected.txt: Added.
* crypto/subtle/aes-cbc-wrap-rsa-non-extractable-expected.txt: Added.
* crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html: Added.
* crypto/subtle/aes-cbc-wrap-rsa.html: Added.

* crypto/subtle/aes-export-key-expected.txt:
* crypto/subtle/hmac-export-key-expected.txt:
There is no longer a console message, the error is in an exception.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159644 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a new mode to extend the tile cache beyond the page
https://bugs.webkit.org/show_bug.cgi?id=124216

Reviewed by Simon Fraser.

This patch makes it possible to give the tile cache a margin of tiles. If there is 
a margin of tiles, this patch paints those tiles with the background color. Note 
that this patch does not actually give the tile cache a margin at this time.

You opt into a margined tiled cache by called setTileMargins() with number of 
pixels that the margin on that side should be. 
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tilesWouldChangeForVisibleRect):

TileController::bounds() now computes the bounds INCLUDING the margin.
(WebCore::TileController::bounds):

adjustRectAtTileIndexForMargin() is a new function that is required to get the 
rect size for tiles in the margin right. rectForTileIndex() assumes all tiles 
strive to be the size of m_tileSize, but now margin tiles will be whatever the 
margin sizes were set to.
(WebCore::TileController::adjustRectAtTileIndexForMargin):
(WebCore::TileController::rectForTileIndex):

This is another instance where m_tileSize is not always the right size to use.
(WebCore::TileController::getTileIndexRangeForRect):

The tile coverage rect now might include the margin tiles. Only include them in 
slow-scrolling mode if the current position is within one tile of the edge.
(WebCore::TileController::computeTileCoverageRect):

tileSizeForCoverageRect() does not make sense in a world where the coverage rect 
will include margin. Instead, this patch implements the current strategy more 
explicitly by returning the visibleRect in the slow scrolling case, and in the 
process this patch also re-names tileSizeForCoverageRect() to computeTileSize() 
since it no longer takes a coverageRect.
(WebCore::TileController::computeTileSize):
(WebCore::TileController::revalidateTiles):

New setters and getters for the tile margins on each side.
(WebCore::TileController::setTileMargins):
(WebCore::TileController::hasMargins):
(WebCore::TileController::topMarginHeight):
(WebCore::TileController::bottomMarginHeight):
(WebCore::TileController::leftMarginWidth):
(WebCore::TileController::rightMarginWidth):

New function to add margin onto the composited bounds if there is one.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::tiledBackingHasMargin):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::compositedBoundsIncludingMargin):
* rendering/RenderLayerBacking.h:

Do not set masks to bounds if there is a margin on the root layer.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::mainFrameBackingIsTiledWithMargin):
* rendering/RenderLayerCompositor.h:

Allow background color to paint into the margin tiles.
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][GTK][WK2] Build fix after r159641
https://bugs.webkit.org/show_bug.cgi?id=124742

Patch by Sergio Correia <sergio.correia@openbossa.org> on 2013-11-21
Reviewed by Csaba Osztrogonác.

Should fetch activeURL from page load state.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewUpdateURI):
* UIProcess/InspectorServer/efl/WebInspectorServerEfl.cpp:
(WebKit::WebInspectorServer::buildPageList):
* UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
(WebKit::WebInspectorServer::buildPageList):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename PlatformCertificateInfo to CertificateInfo
https://bugs.webkit.org/show_bug.cgi?id=124150

Reviewed by Darin Adler.

* GNUmakefile.list.am:
* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
(WebKit::AsynchronousNetworkLoaderClient::didReceiveResponse):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/API/c/mac/WKCertificateInfoMac.mm:
(WKCertificateInfoCreateWithCertficateChain):
(WKCertificateInfoGetCertificateChain):
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForChallenge):
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/AuthenticationManager.messages.in:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebCertificateInfo.h:
(WebKit::WebCertificateInfo::create):
(WebKit::WebCertificateInfo::certificateInfo):
(WebKit::WebCertificateInfo::WebCertificateInfo):
* Shared/mac/CertificateInfo.h: Renamed from Source/WebKit2/Shared/mac/PlatformCertificateInfo.h.
(WebKit::CertificateInfo::certificateChain):
* Shared/mac/CertificateInfo.mm: Renamed from Source/WebKit2/Shared/mac/PlatformCertificateInfo.mm.
(WebKit::CertificateInfo::CertificateInfo):
(WebKit::CertificateInfo::encode):
(WebKit::CertificateInfo::decode):
(WebKit::CertificateInfo::dump):
* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* Shared/soup/CertificateInfo.cpp: Renamed from Source/WebKit2/Shared/soup/PlatformCertificateInfo.cpp.
(WebKit::CertificateInfo::CertificateInfo):
(WebKit::CertificateInfo::~CertificateInfo):
(WebKit::CertificateInfo::encode):
(WebKit::CertificateInfo::decode):
* Shared/soup/CertificateInfo.h: Renamed from Source/WebKit2/Shared/soup/PlatformCertificateInfo.h.
(WebKit::CertificateInfo::certificate):
(WebKit::CertificateInfo::tlsErrors):
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* UIProcess/API/gtk/WebKitCertificateInfo.cpp:
(webkitCertificateInfoGetCertificateInfo):
* UIProcess/API/gtk/WebKitCertificateInfoPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_tls_info):
* UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::useCredential):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didCommitLoad):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Only generate isObservable() when IDL specifies GenerateIsReachable
https://bugs.webkit.org/show_bug.cgi?id=124729

Reviewed by Geoffrey Garen.

We should only generate the static inline function isObservable() when the IDL
specifies GenerateIsReachable. Otherwise, this function is unused.

Added a new test IDL TestGenerateIsReachable.idl and expected results to test that
we generate isObservable() when an IDL specifies GenerateIsReachable. Additionally,
rebased existing test results.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.cpp: Added.
* bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp: Added.
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachablePrivate.h: Added.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Removed unused function isObservable().
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
* bindings/scripts/test/JS/JSTestEventConstructor.cpp: Ditto.
* bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
* bindings/scripts/test/JS/JSTestException.cpp: Ditto.
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Added.
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h: Added.
* bindings/scripts/test/JS/JSTestInterface.cpp: Removed unused function isObservable().
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
* bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
* bindings/scripts/test/JS/JSattribute.cpp: Ditto.
* bindings/scripts/test/JS/JSreadonly.cpp: Ditto.
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h: Added.
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm: Added.
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h: Added.
* bindings/scripts/test/TestGenerateIsReachable.idl: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused functions from WebCore and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=124739

Reviewed by Alexey Proskuryakov.

Source/WebCore:

* editing/markup.cpp: Remove unused functions isHTMLBlockElement and
ancestorToRetainStructureAndAppearanceWithNoRenderer.
* rendering/InlineElementBox.cpp: Append newline to the end of the file.

Source/WebKit2:

Remove unused functions autoreleased({WKURLRequestRef, WKURLResponseRef}).

* UIProcess/API/mac/WKBrowsingContextController.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159649 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard
https://bugs.webkit.org/show_bug.cgi?id=124741

Reviewed by Alexey Proskuryakov.

Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard around code that is unused
when building with feature NETWORK_CFDATA_ARRAY_CALLBACK.

Additionally, add a declaration for allocateSegment() with attribute WARN_UNUSED_RETURN
to have the compiler warn when the return value of this function is unused. Together with
warnings treated as errors this change will prevent a memory leak.

* platform/SharedBuffer.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159650 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Build fix; export symbol for WebCore::provideDeviceOrientationTo()

Add the symbol __ZN7WebCore26provideDeviceOrientationToEPNS_4PageEPNS_23DeviceOrientationClientE.

* WebCore.exp.in:

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