[iOS WebGL] Float texture extension has a slightly different name
https://bugs.webkit.org/show_bug.cgi?id=133580
<rdar://problem/17113451>

Reviewed by Brady Eidson.

Floating point textures were not available on iOS, because we were
looking for the wrong extension.

Covered by the Khronos test (and in LayoutTests):
conformance/extensions/oes-texture-float.html

* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension): Look for GL_OES_texture_float
as well as GL_ARB_texture_float.
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::texImage2D): Increase the set of things skipped
on PLATFORM(IOS) since they are supported natively there.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169654 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: WebCore part of <rdar://problem/17095692> [iOS] Client-certificate authentication isn’t working
https://bugs.webkit.org/show_bug.cgi?id=133527

Reviewed by Darin Adler.

* WebCore.exp.in: Exported some Credential member functions.

Source/WebKit2: <rdar://problem/17095692> [iOS] Client-certificate authentication isn’t working
https://bugs.webkit.org/show_bug.cgi?id=133527

Reviewed by Darin Adler.

* Configurations/Network-iOS.entitlements: Enabled the Network process to access the keys
needed to create identities to authenticate with.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Credential>::encode): Encode the credential type, and if it is a client
certificate, encode the identity and the certificates.
(IPC::ArgumentCoder<Credential>::decode): Decode the credential type. If it is a client
certificate, decode the identity and the certificates and use the proper Credential
constructor.

* Shared/cf/ArgumentCodersCF.cpp:
(IPC::typeFromCFTypeRef): Handle SecIdentityRef.
(IPC::encode): Encode an identity by encoding its certificate and a persistent reference to
its key.
(IPC::decode): Decode a certificate and a persistent reference to a key, find the key, and
create an identity.
* Shared/cf/ArgumentCodersCF.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169655 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Try to fix the build after http://trac.webkit.org/changeset/169655

Unfortunately, the fix is very fragile, and will likely not work for some SDKs
or possibly local headers - all OS versions have multiple SecBase.h headers with
different definitions for SecIdentityRef.

We'll see.

* WebCore.exp.in:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169657 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fix after <http://trac.webkit.org/changeset/169655>.

The SPIs used do not exist on Mac, limit the code to iOS.

* Shared/Authentication/mac/AuthenticationManager.mac.mm:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Credential>::encode):
(IPC::ArgumentCoder<Credential>::decode):
* Shared/cf/ArgumentCodersCF.cpp:
(IPC::typeFromCFTypeRef):
(IPC::encode):
(IPC::decode):
* Shared/cf/ArgumentCodersCF.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169658 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix builds on 10.8; -firstObject isn't declared on NSArray there.

* DumpRenderTree/mac/DumpRenderTree.mm:
(createWebViewAndOffscreenWindow):
* DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController mouseScrollByX:andY:continuously:]):
(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]):
* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169659 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Support pasting HTML
https://bugs.webkit.org/show_bug.cgi?id=133581
<rdar://problem/17070305>

Reviewed by Enrica Casucci.

We can probably share a lot of code between Mac and iOS here, but for now, just
implement the unimplemented functions.

* editing/ios/EditorIOS.mm: (WebCore::Editor::WebContentReader::readHTML):
Implemented based on WebArchive reading code above, and on Mac version of readHTML.
Unlike on Mac, we don't need to support Microsoft CF_HTML format, as nothing
generates it.

* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::supportedPasteboardTypes):
Added HTML support, as the second preferred format after WebArchive.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169660 268f45cc-cd09-0410-ab3c-d52691b4dbfc
32-bit build fix.

* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Should boost ChildProcesses on iOS
https://bugs.webkit.org/show_bug.cgi?id=133583

Reviewed by Sam Weinig.

* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
    - boost all child processes on iOS.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Adopt the new UIAlertController API to replace UIActionSheet.
https://bugs.webkit.org/show_bug.cgi?id=133582
<rdar://problem/16845223>

Reviewed by Joseph Pecoraro.

UIActionSheet is deprecated. We need to move out action sheets
implementation to UIAlertView.

* UIProcess/API/Cocoa/_WKElementAction.h:
* UIProcess/API/Cocoa/_WKElementAction.mm:
* UIProcess/ios/WKActionSheet.h:
* UIProcess/ios/WKActionSheet.mm:
(-[WKActionSheet presentSheetFromRect:]):
(-[WKActionSheet doneWithSheet]):
(-[WKActionSheet willRotate]):
(-[WKActionSheet updateSheetPosition]):
(-[WKActionSheet _didRotateAndLayout]):
(-[WKActionSheet didRotate]):
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant showDataDetectorsSheet]):
(-[WKActionSheetAssistant cleanupSheet]):
(-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]): Deleted.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _longPressRecognized:]):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Initialize a char* that needs to be initialized.
<rdar://problem/15840022> and https://bugs.webkit.org/show_bug.cgi?id=133585

Reviewed by Mark Rowe.

r152134 (erroneously) removed this initialization.

* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare): tail should start out initialized to 0.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
GenericCueData elements prematurely removed
https://bugs.webkit.org/show_bug.cgi?id=133588

Reviewed by Eric Carlson.

Add a 'removeCompletedCues' method instead of using the 'resetCueValues' method
after processing new cues. We do not want to reset cue state if we have pending
cues that are being extended by future updates (such as paint-on cues).

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCue):  Call new 'removeCompletedCues' method.
(WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Added.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169666 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Indexed getters should return values directly on the PropertySlot.
<https://webkit.org/b/133586>

Source/JavaScriptCore:
Remove PropertySlot's custom index mode.

Reviewed by Darin Adler.

* runtime/JSObject.h:
(JSC::PropertySlot::getValue):
* runtime/PropertySlot.h:
(JSC::PropertySlot::setCustomIndex): Deleted.

Source/WebCore:
Make indexed getters more efficient by using PropertySlot::setValue()
to pass the value directly back through the slot, instead of giving it
a function pointer that JSC would then immediately call back through
to retrieve the value.

The function pointer approach would make sense if we did inline caching
of indexed getters but since we currently don't, this is pure overhead.

Reviewed by Darin Adler.

* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate):
(WebCore::cssPropertyGetterPixelOrPosPrefixCallback): Deleted.
(WebCore::cssPropertyGetterCallback): Deleted.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::indexGetter): Deleted.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateHeader):
(GetIndexedGetterExpression):
(GenerateImplementation):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::getOwnPropertySlotByIndex):
(JSC::RuntimeArray::indexGetter): Deleted.
* bridge/runtime_array.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169668 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (iOS WebKit2): backspace key does not repeat beyond a single word.
https://bugs.webkit.org/show_bug.cgi?id=133593
<rdar://problem/16352228>

Reviewed by Benjamin Poulain.

We need to provide a way for the keyboard layer to select from
the current position to the beginning of the word moving backwards
and implement the method to know when we have reached the beginning of the document.

* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView selectWordBackward]):
(-[WKContentView _selectionAtDocumentStart]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::selectWordBackward):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectWordBackward):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Scheme of content utils should be compared in an ASCII case-insensitive manner
https://bugs.webkit.org/show_bug.cgi?id=133502

Reviewed by Darin Adler.

Source/WebCore:
According to spec, scheme must be compared in an ASCII case-insensitive manner by user agents.

Covered by existing tests.

* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::isProtocolWhitelisted):

LayoutTests:
Tests are updated to compare protocol in ASCII case-insensitive manner.

* fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt:
* fast/dom/NavigatorContentUtils/register-protocol-handler.html:
* fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt:
* fast/dom/NavigatorContentUtils/unregister-protocol-handler.html:
* platform/efl/fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt:
* platform/efl/fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169670 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add tests for dynamic changes in msqrt/mroot
https://bugs.webkit.org/show_bug.cgi?id=133557

Reviewed by Chris Fleizach.

This patch adds some tests to verify that a MathML msqrt/mroot element to which we applied dynamic additions and removals of children renders the same as its static equivalent and that no crashes happen.
Unfortunately, the existing code does not handle them very well so they are skipped until we do the refactoring of bug 119038.

* TestExpectations: skip the tests.
* mathml/roots-addChild-expected.html: Added.
* mathml/roots-addChild.html: Added.
* mathml/roots-removeChild-expected.html: Added.
* mathml/roots-removeChild.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Fix a path used for sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=133602
<rdar://problem/17212011>

Reviewed by David Kilzer.

* WebKit2.xcodeproj/project.pbxproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Replace uses of CrossThreadTask in DefaultSharedWorkerRepository, WorkerMessagingProxy with C++11 lambdas
https://bugs.webkit.org/show_bug.cgi?id=133375

Reviewed by Darin Adler.

Uses of CrossThreadTask in the two classes are replaced with C++11 lambdas.
The necessary cross-thread copies are created manually and passed into the
lambdas by value, removing the need for CrossThreadTask and its use of CrossThreadCopier.

Remove the explicit use of this pointer in some lambdas -- it is captured automatically when
capturing by value, so enforcing its capturing through explicit use is not necessary.

* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
(WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
(WebCore::postExceptionTask): Deleted.
(WebCore::postConsoleMessageTask): Deleted.
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::workerObjectDestroyed):
(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
(WebCore::WorkerMessagingProxy::connectToInspector):
(WebCore::WorkerMessagingProxy::disconnectFromInspector):
(WebCore::WorkerMessagingProxy::sendMessageToInspector):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
(WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
(WebCore::WorkerMessagingProxy::reportPendingActivity):
(WebCore::postConsoleMessageTask): Deleted.
(WebCore::WorkerMessagingProxy::workerObjectDestroyedInternal): Deleted.
(WebCore::connectToWorkerGlobalScopeInspectorTask): Deleted.
(WebCore::disconnectFromWorkerGlobalScopeInspectorTask): Deleted.
(WebCore::dispatchOnInspectorBackendTask): Deleted.
* workers/WorkerMessagingProxy.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169673 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Pass C++11 lambdas to callOnMainThread() calls in IconDatabase
https://bugs.webkit.org/show_bug.cgi?id=133374

Reviewed by Darin Adler.

Use C++11 lambads to inline the main thread tasks into the calling code,
modernizing the look of the code and removing a few static methods and
classes that were used as helpers.

* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::scheduleOrDeferSyncTimer):
(WebCore::IconDatabase::performURLImport):
(WebCore::IconDatabase::dispatchDidImportIconURLForPageURLOnMainThread):
(WebCore::IconDatabase::dispatchDidImportIconDataForPageURLOnMainThread):
(WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread):
(WebCore::IconDatabase::dispatchDidFinishURLImportOnMainThread):
(WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread): Deleted.
(WebCore::IconDatabase::performScheduleOrDeferSyncTimer): Deleted.
(WebCore::IconDatabase::performScheduleOrDeferSyncTimerOnMainThread): Deleted.
(WebCore::ClientWorkItem::ClientWorkItem): Deleted.
(WebCore::ClientWorkItem::~ClientWorkItem): Deleted.
(WebCore::ImportedIconURLForPageURLWorkItem::ImportedIconURLForPageURLWorkItem): Deleted.
(WebCore::ImportedIconURLForPageURLWorkItem::~ImportedIconURLForPageURLWorkItem): Deleted.
(WebCore::ImportedIconURLForPageURLWorkItem::performWork): Deleted.
(WebCore::ImportedIconDataForPageURLWorkItem::ImportedIconDataForPageURLWorkItem): Deleted.
(WebCore::ImportedIconDataForPageURLWorkItem::~ImportedIconDataForPageURLWorkItem): Deleted.
(WebCore::ImportedIconDataForPageURLWorkItem::performWork): Deleted.
(WebCore::RemovedAllIconsWorkItem::RemovedAllIconsWorkItem): Deleted.
(WebCore::RemovedAllIconsWorkItem::performWork): Deleted.
(WebCore::FinishedURLImport::FinishedURLImport): Deleted.
(WebCore::FinishedURLImport::performWork): Deleted.
(WebCore::performWorkItem): Deleted.
* loader/icon/IconDatabase.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169674 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use C++11 lambdas to construct FileThread::Task objects
https://bugs.webkit.org/show_bug.cgi?id=133079

Reviewed by Darin Adler.

Have FileThread::Task constructor take in a std::function<void ()>-like object
as the second parameter. Much like with ScriptExecutionContext::Task, the idea here
is to use inlined C++11 lambdas in FileThread::postTask() calls. Because FileThread::Task
also requires an instance pointer, a brace-init list is passed to these calls, passing
in the instance pointer as the first parameter and the C++11 lambda as the second.

FileThread::postTask() now takes in a FileThread::Task rvalue and moves it onto the heap
and into the queue.

In AsyncFileStream.cpp, calls to FileThread::postTask() are updated to use C++11 lambdas.
Uses of MainThreadTask are also replaced by C++11 lambdas. This modernizes the code and
removes a lot of helper functions.

FileThread::Task doesn't use CrossThreadCopier anymore. Instead, we manually produce
thread-safe copies as necessary. At the moment this approach produces another copy when
passing the freshly-copied object into the lambda, but this will be avoidable once we
make C++14 and the lambda capture expression support mandatory.

* fileapi/AsyncFileStream.cpp:
(WebCore::AsyncFileStream::create):
(WebCore::AsyncFileStream::stop):
(WebCore::AsyncFileStream::getSize):
(WebCore::AsyncFileStream::openForRead):
(WebCore::AsyncFileStream::openForWrite):
(WebCore::AsyncFileStream::close):
(WebCore::AsyncFileStream::read):
(WebCore::AsyncFileStream::write):
(WebCore::AsyncFileStream::truncate):
(WebCore::didStart): Deleted.
(WebCore::AsyncFileStream::startOnFileThread): Deleted.
(WebCore::derefProxyOnMainThread): Deleted.
(WebCore::AsyncFileStream::stopOnFileThread): Deleted.
(WebCore::didGetSize): Deleted.
(WebCore::AsyncFileStream::getSizeOnFileThread): Deleted.
(WebCore::didOpen): Deleted.
(WebCore::AsyncFileStream::openForReadOnFileThread): Deleted.
(WebCore::AsyncFileStream::openForWriteOnFileThread): Deleted.
(WebCore::AsyncFileStream::closeOnFileThread): Deleted.
(WebCore::didRead): Deleted.
(WebCore::AsyncFileStream::readOnFileThread): Deleted.
(WebCore::didWrite): Deleted.
(WebCore::AsyncFileStream::writeOnFileThread): Deleted.
(WebCore::didTruncate): Deleted.
(WebCore::AsyncFileStream::truncateOnFileThread): Deleted.
* fileapi/AsyncFileStream.h:
* fileapi/FileThread.cpp:
(WebCore::FileThread::postTask):
* fileapi/FileThread.h:
(WebCore::FileThread::Task::Task):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
HTTPHeaderMap should not derive from HashMap
https://bugs.webkit.org/show_bug.cgi?id=133392

Reviewed by Darin Adler.

Source/WebCore:
Use a HashMap member variable instead.

* WebCore.exp.in:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::copyData):
(WebCore::HTTPHeaderMap::adopt):
(WebCore::HTTPHeaderMap::get):
(WebCore::HTTPHeaderMap::set):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::contains):
(WebCore::HTTPHeaderMap::find):
(WebCore::HTTPHeaderMap::remove):
(WebCore::HTTPHeaderMap::keys):
* platform/network/HTTPHeaderMap.h:
(WebCore::HTTPHeaderMap::isEmpty):
(WebCore::HTTPHeaderMap::size):
(WebCore::HTTPHeaderMap::clear):
(WebCore::HTTPHeaderMap::begin):
(WebCore::HTTPHeaderMap::end):
(WebCore::HTTPHeaderMap::operator==):
(WebCore::HTTPHeaderMap::operator!=):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::adopt):
* platform/network/ResourceRequestBase.h:
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::adopt):
* platform/network/ResourceResponseBase.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):

Source/WebKit2:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<HTTPHeaderMap>::encode):
(IPC::ArgumentCoder<HTTPHeaderMap>::decode):

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