[Cocoa] Put most of the Cocoa API behind WK_API_ENABLED guards
https://bugs.webkit.org/show_bug.cgi?id=124850

Reviewed by Brady Eidson.

Source/WebKit2:

Guarded all Cocoa API headers and implementatiosn with WK_API_ENABLED. Left the WKView class
unguarded, but limited its API.

* Shared/API/Cocoa/WKFoundation.h: Replaced OBJ_VISIBLE with an explicit attribute.
* Shared/API/Cocoa/WKRemoteObjectCoder.mm: Moved #if WK_API_ENABLED before the rest of the
imports.
* Shared/API/Cocoa/WKRemoteObjectInterface.mm: Ditto.
* Shared/API/Cocoa/WKRemoteObjectRegistry.mm: Ditto.
* Shared/API/Cocoa/WKRemoteObjectRegistryPrivate.h: Ditto.
* UIProcess/API/mac/WKBrowsingContextController.h: Guarded all declarations with
WK_API_ENABLED, changed to use WK_API_CLASS instead of WK_EXPORT.
* UIProcess/API/mac/WKBrowsingContextController.mm: Guarded everything with WK_API_ENABLED.
(-[WKBrowsingContextController dealloc]):
(-[WKBrowsingContextController setPolicyDelegate:]):
(-[WKBrowsingContextController backForwardList]):
(didChangeBackForwardList):
(setUpPageLoaderClient):
(setUpPagePolicyClient):
(-[WKBrowsingContextController _initWithPageRef:]):
* UIProcess/API/mac/WKBrowsingContextControllerInternal.h: Ditto.
* UIProcess/API/mac/WKBrowsingContextControllerPrivate.h: Ditto.
* UIProcess/API/mac/WKBrowsingContextGroup.h: Guarded all declarations with WK_API_ENABLED,
chanegd to use WK_API_CLASS instead of WK_EXPORT.
* UIProcess/API/mac/WKBrowsingContextGroup.mm: Removed redundant import, guarded everything
with WK_API_ENABLED.
* UIProcess/API/mac/WKBrowsingContextGroupPrivate.h: Guarded with WK_API_ENABLED.
* UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h: Added necessary import.
* UIProcess/API/mac/WKConnection.h: Guarded all declarations with WK_API_ENABLED, chanegd to
use WK_API_CLASS instead of WK_EXPORT.
* UIProcess/API/mac/WKConnection.mm: Guarded everything with WK_API_ENABLED.
(-[WKConnection remoteObjectRegistry]):
(didReceiveMessage):
* UIProcess/API/mac/WKConnectionInternal.h: Guarded the delcarations with WK_API_ENABLED.
* UIProcess/API/mac/WKProcessGroup.h: Ditto. Also changed to use WK_API_CLASS instead of
WK_EXPORT.
* UIProcess/API/mac/WKProcessGroup.mm: Guarded everything with WK_API_ENABLED.
(-[WKProcessGroup initWithInjectedBundleURL:]):
* UIProcess/API/mac/WKProcessGroupPrivate.h: Guarded the declarations with WK_API_ENABLED.
* UIProcess/API/mac/WKTypeRefWrapper.h: Moved #if WK_API_ENABLED before the rest of the
imports, changed to use WK_API_CLASS instead of WK_EXPORT.
* UIProcess/API/mac/WKTypeRefWrapper.mm: Removed empty line after #import "config.h".
* UIProcess/API/mac/WKView.h: Added #if WK_API_ENABLED around API that uses other Cocoa API
types.
* UIProcess/API/mac/WKView.mm: Added #if WK_API_ENABLED around implementations of methods
that are only declared when the API is enabled.
* UIProcess/API/mac/WKViewInternal.h: Reordered imports.
* UIProcess/mac/WKFullScreenWindowController.mm: Added comment to #endif.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::platformInitializeWebProcess): Guarded use of
WKBrowsingContextController with WK_API_ENABLED.
(WebKit::WebContext::platformInitializeNetworkProcess): Ditto.
* UIProcess/mac/WebContextMenuProxyMac.mm: Removed newline between imports.
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: Moved #if WK_API_ENABLED before the
rest of the imports, and changed to use WK_API_CLASS instead of WK_EXPORT.
* WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: Removed newline after #import
"config.h".
* WebProcess/InjectedBundle/API/mac/WKDOMElement.h: Moved #if WK_API_ENABLED before the
rest of the imports, and changed to use WK_API_CLASS instead of WK_EXPORT.
* WebProcess/InjectedBundle/API/mac/WKDOMElement.mm: Removed newline after #import
"config.h".
* WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm: Ditto.
* WebProcess/InjectedBundle/API/mac/WKDOMNode.h: Moved #if WK_API_ENABLED before the
rest of the imports, and changed to use WK_API_CLASS instead of WK_EXPORT.
* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm: Removed redundant import.
* WebProcess/InjectedBundle/API/mac/WKDOMRange.h:  Moved #if WK_API_ENABLED before the
rest of the imports, and changed to use WK_API_CLASS instead of WK_EXPORT.
* WebProcess/InjectedBundle/API/mac/WKDOMRange.mm: Removed newline and redundant import.
* WebProcess/InjectedBundle/API/mac/WKDOMText.h: Moved #if WK_API_ENABLED before the
rest of the imports, and changed to use WK_API_CLASS instead of WK_EXPORT.
* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h: Ditto.
* WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm: Removed newline after
#import "config.h".
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h: Moved #if WK_API_ENABLED before
the rest of the imports, and changed to use WK_API_CLASS instead of WK_EXPORT.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: Removed newline and redundant
imports.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:  Moved #if
WK_API_ENABLED before the rest of the imports, and changed to use WK_API_CLASS instead of
WK_EXPORT.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: Removed
newline after #import "config.h".

Tools:

Added #if WK_API_ENABLED guards around tests that use the Objective-C API.

* TestWebKitAPI/Tests/CustomProtocolsSyncXHRTest.mm:
* TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme.mm:
* TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm:
* TestWebKitAPI/Tests/WebKit2ObjC/PreventImageLoadWithAutoResizing.mm:
* TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm:
* TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextGroupTest.mm:
* TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextLoadDelegateTest.mm:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fixed a typo in the change log.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159761 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unnecessary MediaStreamTrackDescriptor forward declaration
https://bugs.webkit.org/show_bug.cgi?id=124854

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-11-25
Reviewed by Eric Carlson.

No new tests needed. No behavior changed.

* Modules/mediastream/VideoStreamTrack.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159762 268f45cc-cd09-0410-ab3c-d52691b4dbfc
RenderTableSection Blink merge asserting
https://bugs.webkit.org/show_bug.cgi?id=124857

Skipping these tests for now, since Ossy + Laszlo checked
in a lot of rebaselines and I didn't want to roll
everything out.

* TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Deduplicate shortish Text node strings during tree construction.
<https://webkit.org/b/124855>

Let HTMLConstructionSite keep a hash set of already seen strings over
its lifetime. Use this to deduplicate the strings inside Text nodes
for any string up to 64 characters of length.

This optimization already sort-of existed for whitespace-only Texts,
but those are laundered in the AtomicString table which we definitely
don't want to pollute with every single Text. It might be a good idea
to stop using the AtomicString table for all-whitespace Text too.

3.82 MB progression on HTML5-8266 locally.

Reviewed by Anders Carlsson.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r159740.
http://trac.webkit.org/changeset/159740
https://bugs.webkit.org/show_bug.cgi?id=124859

Crashing xmlhttprequest/access-control-repeated-failed-
preflight-crash.html on Mavericks and Mountain Lion -
ASSERT(m_pageGroup) WebPage.cpp:352 (Requested by dino_ on
#webkit).

* Scripts/webkit2/messages.py:
(struct_or_class):
* Shared/UserMessageCoders.h:
(WebKit::UserMessageEncoder::baseEncode):
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* Shared/mac/ObjCObjectGraphCoders.h:
* Shared/mac/ObjCObjectGraphCoders.mm:
(WebKit::ObjCObjectGraphEncoder::baseEncode):
(WebKit::WebContextObjCObjectGraphEncoderImpl::WebContextObjCObjectGraphEncoderImpl):
(WebKit::WebContextObjCObjectGraphEncoderImpl::encode):
(WebKit::InjectedBundleObjCObjectGraphEncoderImpl::encode):
(WebKit::WebContextObjCObjectGraphEncoder::WebContextObjCObjectGraphEncoder):
(WebKit::WebContextObjCObjectGraphEncoder::encode):
* UIProcess/WebConnectionToWebProcess.cpp:
(WebKit::WebConnectionToWebProcess::encodeMessageBody):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::createWebPage):
(WebKit::WebContext::postMessageToInjectedBundle):
(WebKit::WebContext::didReceiveSyncMessage):
* UIProcess/WebContextUserMessageCoders.h:
(WebKit::WebContextUserMessageEncoder::WebContextUserMessageEncoder):
(WebKit::WebContextUserMessageEncoder::encode):
(WebKit::WebContextUserMessageDecoder::decode):
* UIProcess/WebPageGroup.cpp:
* UIProcess/WebPageGroup.h:
(WebKit::WebPageGroup::sendToAllProcessesInGroup):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::loadURL):
(WebKit::WebPageProxy::loadURLRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString):
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::postMessageToInjectedBundle):
(WebKit::WebPageProxy::initializeCreationParameters):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::disconnect):
(WebKit::WebProcessProxy::createWebPage):
* UIProcess/WebProcessProxy.h:
* WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
(WebKit::InjectedBundleUserMessageEncoder::encode):
(WebKit::InjectedBundleUserMessageDecoder::decode):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::webPageGroup):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159765 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WinCairo] Compile fails when GSTREAMER is not used.
https://bugs.webkit.org/show_bug.cgi?id=124853

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-11-25
Reviewed by Philippe Normand.

* platform/graphics/gstreamer/GStreamerUtilities.cpp: Don't include GStreamerUtilities.h when GSTREAMER is not used.

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