summaryrefslogtreecommitdiff
path: root/Source/web
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2013-08-05 13:57:57 +0100
committerTorne (Richard Coles) <torne@google.com>2013-08-05 13:57:57 +0100
commitf5e4ad553afbc08dd2e729bb77e937a9a94d5827 (patch)
tree84c228a18f67255be6379502cec968b827fcca93 /Source/web
parent52fc097512339b2eb93f1942027565a180ee04ce (diff)
downloadWebKit-f5e4ad553afbc08dd2e729bb77e937a9a94d5827.tar.gz
Merge from Chromium at DEPS revision r215573
This commit was generated by merge_to_master.py. Change-Id: I07a9d4f856da71a9fb8fcd4d688596ef141bf5a3
Diffstat (limited to 'Source/web')
-rw-r--r--Source/web/ContextFeaturesClientImpl.cpp2
-rw-r--r--Source/web/EditorClientImpl.cpp4
-rw-r--r--Source/web/FrameLoaderClientImpl.cpp16
-rw-r--r--Source/web/FrameLoaderClientImpl.h1
-rw-r--r--Source/web/FullscreenController.cpp185
-rw-r--r--Source/web/FullscreenController.h79
-rw-r--r--Source/web/InspectorFrontendClientImpl.cpp15
-rw-r--r--Source/web/InspectorFrontendClientImpl.h3
-rw-r--r--Source/web/ScrollbarGroup.cpp35
-rw-r--r--Source/web/ScrollbarGroup.h3
-rw-r--r--Source/web/WebDocument.cpp6
-rw-r--r--Source/web/WebElement.cpp16
-rw-r--r--Source/web/WebFontImpl.cpp29
-rw-r--r--Source/web/WebFontImpl.h3
-rw-r--r--Source/web/WebHelperPluginImpl.cpp5
-rw-r--r--Source/web/WebInputEventConversion.cpp6
-rw-r--r--Source/web/WebKitUnitTests.isolate1
-rw-r--r--Source/web/WebMIDIPermissionRequest.cpp5
-rw-r--r--Source/web/WebNotification.cpp10
-rw-r--r--Source/web/WebPluginScrollbarImpl.cpp2
-rw-r--r--Source/web/WebSecurityPolicy.cpp5
-rw-r--r--Source/web/WebSurroundingText.cpp2
-rw-r--r--Source/web/WebViewImpl.cpp299
-rw-r--r--Source/web/WebViewImpl.h46
-rw-r--r--Source/web/blink_common.target.darwin-arm.mk358
-rw-r--r--Source/web/blink_common.target.darwin-mips.mk354
-rw-r--r--Source/web/blink_common.target.darwin-x86.mk358
-rw-r--r--Source/web/blink_common.target.linux-arm.mk358
-rw-r--r--Source/web/blink_common.target.linux-mips.mk354
-rw-r--r--Source/web/blink_common.target.linux-x86.mk358
-rw-r--r--Source/web/linux/WebFontInfo.cpp240
-rw-r--r--Source/web/tests/ArenaTestHelpers.h79
-rw-r--r--Source/web/tests/GraphicsLayerTest.cpp8
-rw-r--r--Source/web/tests/IDBRequestTest.cpp196
-rw-r--r--Source/web/tests/IDBTransactionTest.cpp155
-rw-r--r--Source/web/tests/PODArenaTest.cpp106
-rw-r--r--Source/web/tests/PODIntervalTreeTest.cpp356
-rw-r--r--Source/web/tests/PODRedBlackTreeTest.cpp214
-rw-r--r--Source/web/tests/ScrollAnimatorNoneTest.cpp5
-rw-r--r--Source/web/tests/TreeTestHelpers.cpp60
-rw-r--r--Source/web/tests/TreeTestHelpers.h53
-rw-r--r--Source/web/tests/WebFrameTest.cpp135
-rw-r--r--Source/web/tests/WebInputEventConversionTest.cpp8
-rw-r--r--Source/web/tests/WebInputEventFactoryTestGtk.cpp2
-rw-r--r--Source/web/tests/WebViewTest.cpp25
-rw-r--r--Source/web/web.gyp320
-rw-r--r--Source/web/web.gypi10
-rw-r--r--Source/web/web_tests.gyp164
-rw-r--r--Source/web/webkit.target.darwin-arm.mk622
-rw-r--r--Source/web/webkit.target.darwin-mips.mk616
-rw-r--r--Source/web/webkit.target.darwin-x86.mk622
-rw-r--r--Source/web/webkit.target.linux-arm.mk622
-rw-r--r--Source/web/webkit.target.linux-mips.mk616
-rw-r--r--Source/web/webkit.target.linux-x86.mk622
54 files changed, 7149 insertions, 1625 deletions
diff --git a/Source/web/ContextFeaturesClientImpl.cpp b/Source/web/ContextFeaturesClientImpl.cpp
index 86c489e2e..4fc801b7a 100644
--- a/Source/web/ContextFeaturesClientImpl.cpp
+++ b/Source/web/ContextFeaturesClientImpl.cpp
@@ -141,8 +141,6 @@ bool ContextFeaturesClientImpl::askIfIsEnabled(Document* document, ContextFeatur
switch (type) {
case ContextFeatures::StyleScoped:
return m_client->allowWebComponents(WebDocument(document), defaultValue);
- case ContextFeatures::HTMLNotifications:
- return m_client->allowHTMLNotifications(WebDocument(document));
case ContextFeatures::MutationEvents:
return m_client->allowMutationEvents(WebDocument(document), defaultValue);
case ContextFeatures::PushState:
diff --git a/Source/web/EditorClientImpl.cpp b/Source/web/EditorClientImpl.cpp
index 3f0ec5ee5..7b1741f74 100644
--- a/Source/web/EditorClientImpl.cpp
+++ b/Source/web/EditorClientImpl.cpp
@@ -100,7 +100,7 @@ bool EditorClientImpl::isSelectTrailingWhitespaceEnabled()
bool EditorClientImpl::shouldSpellcheckByDefault()
{
// Spellcheck should be enabled for all editable areas (such as textareas,
- // contentEditable regions, and designMode docs), except text inputs.
+ // contentEditable regions, designMode docs and inputs).
const Frame* frame = m_webView->focusedWebCoreFrame();
if (!frame)
return false;
@@ -125,7 +125,7 @@ bool EditorClientImpl::shouldSpellcheckByDefault()
if (!renderer)
return false;
- return !renderer->isTextField();
+ return true;
}
bool EditorClientImpl::isContinuousSpellCheckingEnabled()
diff --git a/Source/web/FrameLoaderClientImpl.cpp b/Source/web/FrameLoaderClientImpl.cpp
index 38de0cd65..8aa25afdd 100644
--- a/Source/web/FrameLoaderClientImpl.cpp
+++ b/Source/web/FrameLoaderClientImpl.cpp
@@ -352,12 +352,6 @@ void FrameLoaderClientImpl::dispatchDidReceiveServerRedirectForProvisionalLoad()
m_webFrame->client()->didReceiveServerRedirectForProvisionalLoad(m_webFrame);
}
-void FrameLoaderClientImpl::dispatchDidCompleteClientRedirect(const KURL& sourceURL)
-{
- if (m_webFrame->client())
- m_webFrame->client()->didCompleteClientRedirect(m_webFrame, sourceURL);
-}
-
void FrameLoaderClientImpl::dispatchDidNavigateWithinPage()
{
bool isNewNavigation;
@@ -464,18 +458,22 @@ void FrameLoaderClientImpl::dispatchDidLayout(LayoutMilestones milestones)
m_webFrame->client()->didFirstVisuallyNonEmptyLayout(m_webFrame);
}
-NavigationPolicy FrameLoaderClientImpl::decidePolicyForNavigation(const ResourceRequest& request, NavigationType type, NavigationPolicy policy, bool isRedirect)
+NavigationPolicy FrameLoaderClientImpl::decidePolicyForNavigation(const ResourceRequest& request, NavigationType type, NavigationPolicy policy, bool /*isRedirect*/)
{
if (!m_webFrame->client())
return NavigationPolicyIgnore;
- if (!m_webFrame->provisionalDataSource())
+ // FIXME: We need to pull isRedirect off of provisionalDataSourceImpl() for compat reasons,
+ // but it seems wrong, since the request that triggered this policy check might not be the
+ // provisional data source.
+ WebDataSourceImpl* ds = m_webFrame->provisionalDataSourceImpl();
+ if (!ds)
return policy;
WrappedResourceRequest webRequest(request);
WebNavigationPolicy webPolicy = m_webFrame->client()->decidePolicyForNavigation(
- m_webFrame, webRequest, WebDataSourceImpl::toWebNavigationType(type), static_cast<WebNavigationPolicy>(policy), isRedirect);
+ m_webFrame, webRequest, WebDataSourceImpl::toWebNavigationType(type), static_cast<WebNavigationPolicy>(policy), ds->isRedirect());
return static_cast<NavigationPolicy>(webPolicy);
}
diff --git a/Source/web/FrameLoaderClientImpl.h b/Source/web/FrameLoaderClientImpl.h
index 0de50fe98..a8dfee800 100644
--- a/Source/web/FrameLoaderClientImpl.h
+++ b/Source/web/FrameLoaderClientImpl.h
@@ -81,7 +81,6 @@ public:
virtual void dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length);
virtual void dispatchDidHandleOnloadEvents();
virtual void dispatchDidReceiveServerRedirectForProvisionalLoad();
- virtual void dispatchDidCompleteClientRedirect(const WebCore::KURL&);
virtual void dispatchDidNavigateWithinPage();
virtual void dispatchDidChangeLocationWithinPage();
virtual void dispatchWillClose();
diff --git a/Source/web/FullscreenController.cpp b/Source/web/FullscreenController.cpp
new file mode 100644
index 000000000..6268f88b8
--- /dev/null
+++ b/Source/web/FullscreenController.cpp
@@ -0,0 +1,185 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "FullscreenController.h"
+
+#include "WebFrame.h"
+#include "WebViewClient.h"
+#include "WebViewImpl.h"
+#include "core/dom/Document.h"
+#include "core/dom/FullscreenElementStack.h"
+#include "core/html/HTMLMediaElement.h"
+#include "core/page/Frame.h"
+
+using namespace WebCore;
+
+namespace WebKit {
+
+PassOwnPtr<FullscreenController> FullscreenController::create(WebViewImpl* webViewImpl)
+{
+ return adoptPtr(new FullscreenController(webViewImpl));
+}
+
+FullscreenController::FullscreenController(WebViewImpl* webViewImpl)
+ : m_webViewImpl(webViewImpl)
+ , m_exitFullscreenPageScaleFactor(0)
+ , m_isCancelingFullScreen(false)
+{
+}
+
+void FullscreenController::willEnterFullScreen()
+{
+ if (!m_provisionalFullScreenElement)
+ return;
+
+ // Ensure that this element's document is still attached.
+ Document* doc = m_provisionalFullScreenElement->document();
+ if (doc->frame()) {
+ FullscreenElementStack::from(doc)->webkitWillEnterFullScreenForElement(m_provisionalFullScreenElement.get());
+ m_fullScreenFrame = doc->frame();
+ }
+ m_provisionalFullScreenElement.clear();
+}
+
+void FullscreenController::didEnterFullScreen()
+{
+ if (!m_fullScreenFrame)
+ return;
+
+ if (Document* doc = m_fullScreenFrame->document()) {
+ if (FullscreenElementStack::isFullScreen(doc)) {
+ if (!m_exitFullscreenPageScaleFactor) {
+ m_exitFullscreenPageScaleFactor = m_webViewImpl->pageScaleFactor();
+ m_exitFullscreenScrollOffset = m_webViewImpl->mainFrame()->scrollOffset();
+ m_webViewImpl->setPageScaleFactorPreservingScrollOffset(1.0f);
+ }
+
+ FullscreenElementStack::from(doc)->webkitDidEnterFullScreenForElement(0);
+ }
+ }
+}
+
+void FullscreenController::willExitFullScreen()
+{
+ if (!m_fullScreenFrame)
+ return;
+
+ if (Document* doc = m_fullScreenFrame->document()) {
+ FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExists(doc);
+ if (!fullscreen)
+ return;
+ if (fullscreen->isFullScreen(doc)) {
+ // When the client exits from full screen we have to call webkitCancelFullScreen to
+ // notify the document. While doing that, suppress notifications back to the client.
+ m_isCancelingFullScreen = true;
+ fullscreen->webkitCancelFullScreen();
+ m_isCancelingFullScreen = false;
+ fullscreen->webkitWillExitFullScreenForElement(0);
+ }
+ }
+}
+
+void FullscreenController::didExitFullScreen()
+{
+ if (!m_fullScreenFrame)
+ return;
+
+ if (Document* doc = m_fullScreenFrame->document()) {
+ if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExists(doc)) {
+ if (fullscreen->webkitIsFullScreen()) {
+ if (m_exitFullscreenPageScaleFactor) {
+ m_webViewImpl->setPageScaleFactor(m_exitFullscreenPageScaleFactor,
+ WebPoint(m_exitFullscreenScrollOffset.width(), m_exitFullscreenScrollOffset.height()));
+ m_exitFullscreenPageScaleFactor = 0;
+ m_exitFullscreenScrollOffset = IntSize();
+ }
+
+ fullscreen->webkitDidExitFullScreenForElement(0);
+ }
+ }
+ }
+
+ m_fullScreenFrame.clear();
+}
+
+void FullscreenController::enterFullScreenForElement(WebCore::Element* element)
+{
+ // We are already transitioning to fullscreen for a different element.
+ if (m_provisionalFullScreenElement) {
+ m_provisionalFullScreenElement = element;
+ return;
+ }
+
+ // We are already in fullscreen mode.
+ if (m_fullScreenFrame) {
+ m_provisionalFullScreenElement = element;
+ willEnterFullScreen();
+ didEnterFullScreen();
+ return;
+ }
+
+#if USE(NATIVE_FULLSCREEN_VIDEO)
+ if (element && element->isMediaElement()) {
+ HTMLMediaElement* mediaElement = toMediaElement(element);
+ if (mediaElement->player() && mediaElement->player()->canEnterFullscreen()) {
+ mediaElement->player()->enterFullscreen();
+ m_provisionalFullScreenElement = element;
+ }
+ return;
+ }
+#endif
+
+ // We need to transition to fullscreen mode.
+ if (WebViewClient* client = m_webViewImpl->client()) {
+ if (client->enterFullScreen())
+ m_provisionalFullScreenElement = element;
+ }
+}
+
+void FullscreenController::exitFullScreenForElement(WebCore::Element* element)
+{
+ // The client is exiting full screen, so don't send a notification.
+ if (m_isCancelingFullScreen)
+ return;
+#if USE(NATIVE_FULLSCREEN_VIDEO)
+ if (element && element->isMediaElement()) {
+ HTMLMediaElement* mediaElement = static_cast<HTMLMediaElement*>(element);
+ if (mediaElement->player())
+ mediaElement->player()->exitFullscreen();
+ return;
+ }
+#endif
+ if (WebViewClient* client = m_webViewImpl->client())
+ client->exitFullScreen();
+}
+
+}
+
diff --git a/Source/web/FullscreenController.h b/Source/web/FullscreenController.h
new file mode 100644
index 000000000..c0d3edc59
--- /dev/null
+++ b/Source/web/FullscreenController.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef FullscreenController_h
+#define FullscreenController_h
+
+#include "core/platform/graphics/IntSize.h"
+#include "wtf/PassOwnPtr.h"
+#include "wtf/RefPtr.h"
+
+namespace WebCore {
+class Element;
+class Frame;
+}
+
+namespace WebKit {
+class WebViewImpl;
+
+class FullscreenController {
+public:
+ static PassOwnPtr<FullscreenController> create(WebViewImpl*);
+
+ void willEnterFullScreen();
+ void didEnterFullScreen();
+ void willExitFullScreen();
+ void didExitFullScreen();
+
+ void enterFullScreenForElement(WebCore::Element*);
+ void exitFullScreenForElement(WebCore::Element*);
+
+protected:
+ explicit FullscreenController(WebViewImpl*);
+
+private:
+ WebViewImpl* m_webViewImpl;
+
+ float m_exitFullscreenPageScaleFactor;
+ WebCore::IntSize m_exitFullscreenScrollOffset;
+
+ // If set, the WebView is transitioning to fullscreen for this element.
+ RefPtr<WebCore::Element> m_provisionalFullScreenElement;
+
+ // If set, the WebView is in fullscreen mode for an element in this frame.
+ RefPtr<WebCore::Frame> m_fullScreenFrame;
+
+ bool m_isCancelingFullScreen;
+};
+
+}
+
+#endif
+
diff --git a/Source/web/InspectorFrontendClientImpl.cpp b/Source/web/InspectorFrontendClientImpl.cpp
index f5f63f75e..c5ebdab8c 100644
--- a/Source/web/InspectorFrontendClientImpl.cpp
+++ b/Source/web/InspectorFrontendClientImpl.cpp
@@ -137,6 +137,21 @@ void InspectorFrontendClientImpl::requestFileSystems()
m_client->requestFileSystems();
}
+void InspectorFrontendClientImpl::indexPath(int requestId, const String& fileSystemPath)
+{
+ m_client->indexPath(requestId, fileSystemPath);
+}
+
+void InspectorFrontendClientImpl::stopIndexing(int requestId)
+{
+ m_client->stopIndexing(requestId);
+}
+
+void InspectorFrontendClientImpl::searchInPath(int requestId, const String& fileSystemPath, const String& query)
+{
+ m_client->searchInPath(requestId, fileSystemPath, query);
+}
+
void InspectorFrontendClientImpl::addFileSystem()
{
m_client->addFileSystem();
diff --git a/Source/web/InspectorFrontendClientImpl.h b/Source/web/InspectorFrontendClientImpl.h
index 2eedeb485..2f9c0c48e 100644
--- a/Source/web/InspectorFrontendClientImpl.h
+++ b/Source/web/InspectorFrontendClientImpl.h
@@ -73,6 +73,9 @@ public:
virtual void requestFileSystems();
virtual void addFileSystem();
virtual void removeFileSystem(const String& fileSystemPath);
+ virtual void indexPath(int requestId, const String& fileSystemPath);
+ virtual void stopIndexing(int requestId);
+ virtual void searchInPath(int requestId, const String& fileSystemPath, const String& query);
virtual bool isUnderTest();
diff --git a/Source/web/ScrollbarGroup.cpp b/Source/web/ScrollbarGroup.cpp
index 3fa766eb8..f44ec53d6 100644
--- a/Source/web/ScrollbarGroup.cpp
+++ b/Source/web/ScrollbarGroup.cpp
@@ -100,14 +100,6 @@ int ScrollbarGroup::scrollSize(WebCore::ScrollbarOrientation orientation) const
return scrollbar->totalSize() - scrollbar->visibleSize();
}
-int ScrollbarGroup::scrollPosition(Scrollbar* scrollbar) const
-{
- WebPluginScrollbarImpl* webScrollbar = scrollbar->orientation() == HorizontalScrollbar ? m_horizontalScrollbar : m_verticalScrollbar;
- if (!webScrollbar)
- return 0;
- return webScrollbar->scrollOffset();
-}
-
void ScrollbarGroup::setScrollOffset(const IntPoint& offset)
{
if (m_horizontalScrollbar && m_horizontalScrollbar->scrollOffset() != offset.x())
@@ -268,4 +260,31 @@ bool ScrollbarGroup::scrollbarsCanBeActive() const
return true;
}
+bool ScrollbarGroup::userInputScrollable(ScrollbarOrientation orientation) const
+{
+ return orientation == HorizontalScrollbar ? horizontalScrollbar() : verticalScrollbar();
+}
+
+int ScrollbarGroup::pageStep(ScrollbarOrientation orientation) const
+{
+ int length;
+ if (orientation == VerticalScrollbar) {
+ if (!m_verticalScrollbar)
+ return 0;
+
+ length = m_verticalScrollbar->scrollbar()->height();
+ } else {
+ if (!m_horizontalScrollbar)
+ return 0;
+
+ length = m_horizontalScrollbar->scrollbar()->width();
+ }
+
+ int pageStep = std::max(
+ static_cast<int>(static_cast<float>(length) * ScrollableArea::minFractionToStepWhenPaging()),
+ length - ScrollableArea::maxOverlapBetweenPages());
+
+ return std::max(pageStep, 1);
+}
+
} // namespace WebKit
diff --git a/Source/web/ScrollbarGroup.h b/Source/web/ScrollbarGroup.h
index 9159e4049..838338044 100644
--- a/Source/web/ScrollbarGroup.h
+++ b/Source/web/ScrollbarGroup.h
@@ -50,7 +50,6 @@ public:
// WebCore::ScrollableArea methods
virtual int scrollSize(WebCore::ScrollbarOrientation) const OVERRIDE;
- virtual int scrollPosition(WebCore::Scrollbar*) const OVERRIDE;
virtual void setScrollOffset(const WebCore::IntPoint&) OVERRIDE;
virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&) OVERRIDE;
virtual void invalidateScrollCornerRect(const WebCore::IntRect&) OVERRIDE;
@@ -74,6 +73,8 @@ public:
virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE;
virtual bool scrollbarsCanBeActive() const OVERRIDE;
virtual WebCore::IntRect scrollableAreaBoundingBox() const OVERRIDE;
+ virtual bool userInputScrollable(WebCore::ScrollbarOrientation) const OVERRIDE;
+ virtual int pageStep(WebCore::ScrollbarOrientation) const OVERRIDE;
private:
WebCore::FrameView* m_frameView;
diff --git a/Source/web/WebDocument.cpp b/Source/web/WebDocument.cpp
index fcd8c01cd..b19970b47 100644
--- a/Source/web/WebDocument.cpp
+++ b/Source/web/WebDocument.cpp
@@ -48,7 +48,7 @@
#include "core/dom/DocumentStyleSheetCollection.h"
#include "core/dom/DocumentType.h"
#include "core/dom/Element.h"
-#include "core/dom/FullscreenController.h"
+#include "core/dom/FullscreenElementStack.h"
#include "core/dom/NodeList.h"
#include "core/html/HTMLAllCollection.h"
#include "core/html/HTMLBodyElement.h"
@@ -210,14 +210,14 @@ void WebDocument::insertUserStyleSheet(const WebString& sourceCode, UserStyleLev
void WebDocument::cancelFullScreen()
{
- if (FullscreenController* fullscreen = FullscreenController::fromIfExists(unwrap<Document>()))
+ if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExists(unwrap<Document>()))
fullscreen->webkitCancelFullScreen();
}
WebElement WebDocument::fullScreenElement() const
{
Element* fullScreenElement = 0;
- if (FullscreenController* fullscreen = FullscreenController::fromIfExists(const_cast<WebDocument*>(this)->unwrap<Document>()))
+ if (FullscreenElementStack* fullscreen = FullscreenElementStack::fromIfExists(const_cast<WebDocument*>(this)->unwrap<Document>()))
fullScreenElement = fullscreen->webkitCurrentFullScreenElement();
return WebElement(fullScreenElement);
}
diff --git a/Source/web/WebElement.cpp b/Source/web/WebElement.cpp
index 2dbf4fcde..c4f5f4dc9 100644
--- a/Source/web/WebElement.cpp
+++ b/Source/web/WebElement.cpp
@@ -152,6 +152,22 @@ WebRect WebElement::boundsInViewportSpace()
return unwrap<Element>()->boundsInRootViewSpace();
}
+WebImage WebElement::imageContents()
+{
+ if (isNull())
+ return WebImage();
+
+ WebCore::Image* image = unwrap<Element>()->imageContents();
+ if (!image)
+ return WebImage();
+
+ RefPtr<NativeImageSkia> bitmap = image->nativeImageForCurrentFrame();
+ if (!bitmap)
+ return WebImage();
+
+ return bitmap->bitmap();
+}
+
WebElement::WebElement(const PassRefPtr<Element>& elem)
: WebNode(elem)
{
diff --git a/Source/web/WebFontImpl.cpp b/Source/web/WebFontImpl.cpp
index 59f06ff04..cc04c69c5 100644
--- a/Source/web/WebFontImpl.cpp
+++ b/Source/web/WebFontImpl.cpp
@@ -107,24 +107,6 @@ void WebFontImpl::drawText(WebCanvas* canvas, const WebTextRun& run, const WebFl
gc.clip(textClipRect);
m_font.drawText(&gc, runInfo, leftBaseline);
gc.restore();
-
-#if defined(WIN32)
- if (canvasIsOpaque && SkColorGetA(color) == 0xFF && !canvas->isDrawingToLayer()) {
- // The text drawing logic on Windows ignores the alpha component
- // intentionally, for performance reasons.
- // (Please see TransparencyAwareFontPainter::initializeForGDI in
- // FontChromiumWin.cpp.)
- const SkBitmap& bitmap = canvas->getTopDevice()->accessBitmap(true);
- IntRect textBounds = estimateTextBounds(run, leftBaseline);
- IntRect destRect = gc.getCTM().mapRect(textBounds);
- destRect.intersect(IntRect(0, 0, bitmap.width(), bitmap.height()));
- for (int y = destRect.y(), maxY = destRect.maxY(); y < maxY; y++) {
- uint32_t* row = bitmap.getAddr32(0, y);
- for (int x = destRect.x(), maxX = destRect.maxX(); x < maxX; x++)
- row[x] |= (0xFF << SK_A32_SHIFT);
- }
- }
-#endif
}
int WebFontImpl::calculateWidth(const WebTextRun& run) const
@@ -145,15 +127,4 @@ WebFloatRect WebFontImpl::selectionRectForText(const WebTextRun& run, const WebF
return m_font.selectionRectForText(run, leftBaseline, height, from, to);
}
-WebRect WebFontImpl::estimateTextBounds(const WebTextRun& run, const WebFloatPoint& leftBaseline) const
-{
- FontCachePurgePreventer fontCachePurgePreventer;
- int totalWidth = m_font.width(run, 0);
- const WebCore::FontMetrics& fontMetrics = m_font.fontMetrics();
- return WebRect(leftBaseline.x - (fontMetrics.ascent() + fontMetrics.descent()) / 2,
- leftBaseline.y - fontMetrics.ascent() - fontMetrics.lineGap(),
- totalWidth + fontMetrics.ascent() + fontMetrics.descent(),
- fontMetrics.lineSpacing());
-}
-
} // namespace WebKit
diff --git a/Source/web/WebFontImpl.h b/Source/web/WebFontImpl.h
index aba6f6ce1..9142c2d15 100644
--- a/Source/web/WebFontImpl.h
+++ b/Source/web/WebFontImpl.h
@@ -58,9 +58,6 @@ public:
int height, int from = 0, int to = -1) const;
private:
- // Estimates the bounding box of the given text.
- WebRect estimateTextBounds(const WebTextRun&, const WebFloatPoint& leftBaseline) const;
-
WebCore::Font m_font;
};
diff --git a/Source/web/WebHelperPluginImpl.cpp b/Source/web/WebHelperPluginImpl.cpp
index 5a0592904..028f52200 100644
--- a/Source/web/WebHelperPluginImpl.cpp
+++ b/Source/web/WebHelperPluginImpl.cpp
@@ -186,8 +186,7 @@ bool WebHelperPluginImpl::initializePage(const String& pluginType, const WebDocu
pageClients.chromeClient = m_chromeClient.get();
m_page = adoptPtr(new Page(pageClients));
- // Scripting must be enabled in ScriptController::windowScriptNPObject().
- m_page->settings()->setScriptEnabled(true);
+ ASSERT(!m_page->settings()->isScriptEnabled());
m_page->settings()->setPluginsEnabled(true);
unsigned layoutMilestones = DidFirstLayout | DidFirstVisuallyNonEmptyLayout;
@@ -198,7 +197,7 @@ bool WebHelperPluginImpl::initializePage(const String& pluginType, const WebDocu
// The page's main frame was set in initializeFrame() as a result of the above call.
Frame* frame = m_page->mainFrame();
ASSERT(frame);
- frame->loader()->forceSandboxFlags(SandboxAll & ~SandboxPlugins & ~SandboxScripts);
+ frame->loader()->forceSandboxFlags(SandboxAll & ~SandboxPlugins);
frame->setView(FrameView::create(frame));
// No need to set a size or make it not transparent.
diff --git a/Source/web/WebInputEventConversion.cpp b/Source/web/WebInputEventConversion.cpp
index b61f9ad7e..c2735f786 100644
--- a/Source/web/WebInputEventConversion.cpp
+++ b/Source/web/WebInputEventConversion.cpp
@@ -602,11 +602,11 @@ WebKeyboardEventBuilder::WebKeyboardEventBuilder(const KeyboardEvent& event)
return; // Skip all other keyboard events.
modifiers = getWebInputModifiers(event);
- if (event.keyLocation() == KeyboardEvent::DOMKeyLocationNumpad)
+ if (event.location() == KeyboardEvent::DOM_KEY_LOCATION_NUMPAD)
modifiers |= WebInputEvent::IsKeyPad;
- else if (event.keyLocation() == KeyboardEvent::DOMKeyLocationLeft)
+ else if (event.location() == KeyboardEvent::DOM_KEY_LOCATION_LEFT)
modifiers |= WebInputEvent::IsLeft;
- else if (event.keyLocation() == KeyboardEvent::DOMKeyLocationRight)
+ else if (event.location() == KeyboardEvent::DOM_KEY_LOCATION_RIGHT)
modifiers |= WebInputEvent::IsRight;
timeStampSeconds = event.timeStamp() / millisPerSecond;
diff --git a/Source/web/WebKitUnitTests.isolate b/Source/web/WebKitUnitTests.isolate
index c05b8c9d3..870cd5492 100644
--- a/Source/web/WebKitUnitTests.isolate
+++ b/Source/web/WebKitUnitTests.isolate
@@ -33,7 +33,6 @@
['OS=="android"', {
'variables': {
'isolate_dependency_tracked': [
- '../../../hyphen/hyph_en_US.dic',
],
'isolate_dependency_untracked': [
'tests/data/',
diff --git a/Source/web/WebMIDIPermissionRequest.cpp b/Source/web/WebMIDIPermissionRequest.cpp
index 8d663aa66..869fa2ced 100644
--- a/Source/web/WebMIDIPermissionRequest.cpp
+++ b/Source/web/WebMIDIPermissionRequest.cpp
@@ -50,6 +50,11 @@ WebMIDIPermissionRequest::WebMIDIPermissionRequest(WebCore::MIDIAccess* midi)
{
}
+void WebMIDIPermissionRequest::reset()
+{
+ m_private.reset();
+}
+
void WebMIDIPermissionRequest::assign(const WebMIDIPermissionRequest& other)
{
m_private = other.m_private;
diff --git a/Source/web/WebNotification.cpp b/Source/web/WebNotification.cpp
index 745052e05..bc0f462f4 100644
--- a/Source/web/WebNotification.cpp
+++ b/Source/web/WebNotification.cpp
@@ -58,7 +58,7 @@ void WebNotification::assign(const WebNotification& other)
{
WebNotificationPrivate* p = const_cast<WebNotificationPrivate*>(other.m_private);
if (p)
- p->ref();
+ p->ref(); // FIXME: We should use WebPrivatePtr.
assign(p);
}
@@ -69,30 +69,26 @@ bool WebNotification::lessThan(const WebNotification& other) const
bool WebNotification::isHTML() const
{
- return m_private->isHTML();
+ return false;
}
WebURL WebNotification::url() const
{
- ASSERT(isHTML());
- return m_private->url();
+ return WebURL();
}
WebURL WebNotification::iconURL() const
{
- ASSERT(!isHTML());
return m_private->iconURL();
}
WebString WebNotification::title() const
{
- ASSERT(!isHTML());
return m_private->title();
}
WebString WebNotification::body() const
{
- ASSERT(!isHTML());
return m_private->body();
}
diff --git a/Source/web/WebPluginScrollbarImpl.cpp b/Source/web/WebPluginScrollbarImpl.cpp
index 0085db491..514755d2f 100644
--- a/Source/web/WebPluginScrollbarImpl.cpp
+++ b/Source/web/WebPluginScrollbarImpl.cpp
@@ -202,8 +202,6 @@ void WebPluginScrollbarImpl::setLocation(const WebRect& rect)
m_scrollbar->invalidate();
int length = m_scrollbar->orientation() == HorizontalScrollbar ? m_scrollbar->width() : m_scrollbar->height();
- int pageStep = max(max(static_cast<int>(static_cast<float>(length) * Scrollbar::minFractionToStepWhenPaging()), length - Scrollbar::maxOverlapBetweenPages()), 1);
- m_scrollbar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep);
m_scrollbar->setEnabled(m_scrollbar->totalSize() > length);
m_scrollbar->setProportion(length, m_scrollbar->totalSize());
}
diff --git a/Source/web/WebSecurityPolicy.cpp b/Source/web/WebSecurityPolicy.cpp
index 7609b68db..caaecbadb 100644
--- a/Source/web/WebSecurityPolicy.cpp
+++ b/Source/web/WebSecurityPolicy.cpp
@@ -104,11 +104,6 @@ void WebSecurityPolicy::resetOriginAccessWhitelists()
SecurityPolicy::resetOriginAccessWhitelists();
}
-bool WebSecurityPolicy::shouldHideReferrer(const WebURL& url, const WebString& referrer)
-{
- return SecurityPolicy::shouldHideReferrer(url, referrer);
-}
-
WebString WebSecurityPolicy::generateReferrerHeader(WebReferrerPolicy referrerPolicy, const WebURL& url, const WebString& referrer)
{
return SecurityPolicy::generateReferrerHeader(static_cast<ReferrerPolicy>(referrerPolicy), url, referrer);
diff --git a/Source/web/WebSurroundingText.cpp b/Source/web/WebSurroundingText.cpp
index cf0be1b5a..887eba737 100644
--- a/Source/web/WebSurroundingText.cpp
+++ b/Source/web/WebSurroundingText.cpp
@@ -45,7 +45,7 @@ void WebSurroundingText::initialize(const WebNode& webNode, const WebPoint& node
if (!node || !node->renderer())
return;
- m_private.reset(new SurroundingText(node->renderer()->positionForPoint(static_cast<IntPoint>(nodePoint)), maxLength));
+ m_private.reset(new SurroundingText(VisiblePosition(node->renderer()->positionForPoint(static_cast<IntPoint>(nodePoint))), maxLength));
}
WebString WebSurroundingText::textContent() const
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp
index 15ddc59a5..b28411a93 100644
--- a/Source/web/WebViewImpl.cpp
+++ b/Source/web/WebViewImpl.cpp
@@ -52,6 +52,7 @@
#include "CompositionUnderlineVectorBuilder.h"
#include "ContextFeaturesClientImpl.h"
#include "DeviceOrientationClientProxy.h"
+#include "FullscreenController.h"
#include "GeolocationClientProxy.h"
#include "GraphicsLayerFactoryChromium.h"
#include "HTMLNames.h"
@@ -92,7 +93,6 @@
#include "core/css/resolver/StyleResolver.h"
#include "core/dom/Document.h"
#include "core/dom/DocumentMarkerController.h"
-#include "core/dom/FullscreenController.h"
#include "core/dom/KeyboardEvent.h"
#include "core/dom/NodeRenderStyle.h"
#include "core/dom/Text.h"
@@ -191,6 +191,9 @@ static const float doubleTapZoomContentMinimumMargin = 2;
static const double doubleTapZoomAnimationDurationInSeconds = 0.25;
static const float doubleTapZoomAlreadyLegibleRatio = 1.2f;
+static const double multipleTargetsZoomAnimationDurationInSeconds = 0.25;
+static const double findInPageAnimationDurationInSeconds = 0;
+
// Constants for viewport anchoring on resize.
static const float viewportAnchorXCoord = 0.5f;
static const float viewportAnchorYCoord = 0;
@@ -381,12 +384,11 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
, m_minimumZoomLevel(zoomFactorToZoomLevel(minTextSizeMultiplier))
, m_maximumZoomLevel(zoomFactorToZoomLevel(maxTextSizeMultiplier))
, m_savedPageScaleFactor(0)
- , m_exitFullscreenPageScaleFactor(0)
, m_doubleTapZoomPageScaleFactor(0)
, m_doubleTapZoomPending(false)
- , m_enableFakeDoubleTapAnimationForTesting(false)
- , m_fakeDoubleTapPageScaleFactor(0)
- , m_fakeDoubleTapUseAnchor(false)
+ , m_enableFakePageScaleAnimationForTesting(false)
+ , m_fakePageScaleAnimationPageScaleFactor(0)
+ , m_fakePageScaleAnimationUseAnchor(false)
, m_contextMenuAllowed(false)
, m_doingDragAndDrop(false)
, m_ignoreInputEvents(false)
@@ -399,7 +401,6 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
, m_autofillPopup(0)
, m_isTransparent(false)
, m_tabsToLinks(false)
- , m_isCancelingFullScreen(false)
, m_benchmarkSupport(this)
, m_layerTreeView(0)
, m_rootLayer(0)
@@ -423,6 +424,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client)
#endif
, m_flingModifier(0)
, m_flingSourceDevice(false)
+ , m_fullscreenController(FullscreenController::create(this))
, m_showFPSCounter(false)
, m_showPaintRects(false)
, m_showDebugBorders(false)
@@ -771,7 +773,7 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event)
case WebInputEvent::GestureDoubleTap:
if (m_webSettings->doubleTapToZoomEnabled() && minimumPageScaleFactor() != maximumPageScaleFactor()) {
m_client->cancelScheduledContentIntents();
- animateZoomAroundPoint(platformEvent.position(), DoubleTap);
+ animateDoubleTapZoom(platformEvent.position());
}
// GestureDoubleTap is currently only used by Android for zooming. For WebCore,
// GestureTap with tap count = 2 is used instead. So we drop GestureDoubleTap here.
@@ -822,10 +824,10 @@ bool WebViewImpl::startPageScaleAnimation(const IntPoint& targetPosition, bool u
if (useAnchor && newScale == pageScaleFactor())
return false;
- if (m_enableFakeDoubleTapAnimationForTesting) {
- m_fakeDoubleTapTargetPosition = targetPosition;
- m_fakeDoubleTapUseAnchor = useAnchor;
- m_fakeDoubleTapPageScaleFactor = newScale;
+ if (m_enableFakePageScaleAnimationForTesting) {
+ m_fakePageScaleAnimationTargetPosition = targetPosition;
+ m_fakePageScaleAnimationUseAnchor = useAnchor;
+ m_fakePageScaleAnimationPageScaleFactor = newScale;
} else {
if (!m_layerTreeView)
return false;
@@ -834,9 +836,9 @@ bool WebViewImpl::startPageScaleAnimation(const IntPoint& targetPosition, bool u
return true;
}
-void WebViewImpl::enableFakeDoubleTapAnimationForTesting(bool enable)
+void WebViewImpl::enableFakePageScaleAnimationForTesting(bool enable)
{
- m_enableFakeDoubleTapAnimationForTesting = enable;
+ m_enableFakePageScaleAnimationForTesting = enable;
}
WebViewBenchmarkSupport* WebViewImpl::benchmarkSupport()
@@ -1062,15 +1064,14 @@ bool WebViewImpl::handleCharEvent(const WebKeyboardEvent& event)
return true;
}
-WebRect WebViewImpl::computeBlockBounds(const WebRect& rect, AutoZoomType zoomType)
+WebRect WebViewImpl::computeBlockBounds(const WebRect& rect, bool ignoreClipping)
{
if (!mainFrameImpl())
return WebRect();
// Use the rect-based hit test to find the node.
IntPoint point = mainFrameImpl()->frameView()->windowToContents(IntPoint(rect.x, rect.y));
- HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent
- | ((zoomType == FindInPage) ? HitTestRequest::IgnoreClipping : 0);
+ HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::DisallowShadowContent | (ignoreClipping ? HitTestRequest::IgnoreClipping : 0);
HitTestResult result = mainFrameImpl()->frame()->eventHandler()->hitTestResultAtPoint(point, hitType, IntSize(rect.width, rect.height));
Node* node = result.innerNonSharedNode();
@@ -1122,21 +1123,12 @@ WebRect WebViewImpl::widenRectWithinPageBounds(const WebRect& source, int target
return WebRect(newX, source.y, newWidth, source.height);
}
-void WebViewImpl::computeScaleAndScrollForHitRect(const WebRect& hitRect, AutoZoomType zoomType, float& scale, WebPoint& scroll, bool& isAnchor)
+void WebViewImpl::computeScaleAndScrollForBlockRect(const WebRect& blockRect, float padding, float& scale, WebPoint& scroll, bool& doubleTapShouldZoomOut)
{
scale = pageScaleFactor();
scroll.x = scroll.y = 0;
- WebRect targetRect = hitRect;
- // Padding only depends on page scale when triggered by manually tapping
- int padding = (zoomType == DoubleTap) ? touchPointPadding : nonUserInitiatedPointPadding;
- if (targetRect.isEmpty())
- targetRect.width = targetRect.height = padding;
- WebRect rect = computeBlockBounds(targetRect, zoomType);
- if (zoomType == FindInPage && rect.isEmpty()) {
- // Keep current scale (no need to scroll as x,y will normally already
- // be visible). FIXME: Revisit this if it isn't always true.
- return;
- }
+
+ WebRect rect = blockRect;
bool scaleUnchanged = true;
if (!rect.isEmpty()) {
@@ -1173,46 +1165,40 @@ void WebViewImpl::computeScaleAndScrollForHitRect(const WebRect& hitRect, AutoZo
bool stillAtPreviousDoubleTapScale = (pageScaleFactor() == m_doubleTapZoomPageScaleFactor
&& m_doubleTapZoomPageScaleFactor != minimumPageScaleFactor())
|| m_doubleTapZoomPending;
- if (zoomType == DoubleTap && (rect.isEmpty() || scaleUnchanged || stillAtPreviousDoubleTapScale)) {
- // Zoom out to minimum scale.
- scale = minimumPageScaleFactor();
- scroll = WebPoint(hitRect.x, hitRect.y);
- isAnchor = true;
+
+ doubleTapShouldZoomOut = rect.isEmpty() || scaleUnchanged || stillAtPreviousDoubleTapScale;
+
+ // FIXME: If this is being called for auto zoom during find in page,
+ // then if the user manually zooms in it'd be nice to preserve the
+ // relative increase in zoom they caused (if they zoom out then it's ok
+ // to zoom them back in again). This isn't compatible with our current
+ // double-tap zoom strategy (fitting the containing block to the screen)
+ // though.
+
+ float screenWidth = m_size.width / scale;
+ float screenHeight = m_size.height / scale;
+
+ // Scroll to vertically align the block.
+ if (rect.height < screenHeight) {
+ // Vertically center short blocks.
+ rect.y -= 0.5 * (screenHeight - rect.height);
} else {
- // FIXME: If this is being called for auto zoom during find in page,
- // then if the user manually zooms in it'd be nice to preserve the
- // relative increase in zoom they caused (if they zoom out then it's ok
- // to zoom them back in again). This isn't compatible with our current
- // double-tap zoom strategy (fitting the containing block to the screen)
- // though.
-
- float screenWidth = m_size.width / scale;
- float screenHeight = m_size.height / scale;
-
- // Scroll to vertically align the block.
- if (rect.height < screenHeight) {
- // Vertically center short blocks.
- rect.y -= 0.5 * (screenHeight - rect.height);
- } else {
- // Ensure position we're zooming to (+ padding) isn't off the bottom of
- // the screen.
- rect.y = max<float>(rect.y, hitRect.y + padding - screenHeight);
- } // Otherwise top align the block.
-
- // Do the same thing for horizontal alignment.
- if (rect.width < screenWidth)
- rect.x -= 0.5 * (screenWidth - rect.width);
- else
- rect.x = max<float>(rect.x, hitRect.x + padding - screenWidth);
- scroll.x = rect.x;
- scroll.y = rect.y;
- isAnchor = false;
- }
+ // Ensure position we're zooming to (+ padding) isn't off the bottom of
+ // the screen.
+ rect.y = max<float>(rect.y, blockRect.y + padding - screenHeight);
+ } // Otherwise top align the block.
+
+ // Do the same thing for horizontal alignment.
+ if (rect.width < screenWidth)
+ rect.x -= 0.5 * (screenWidth - rect.width);
+ else
+ rect.x = max<float>(rect.x, blockRect.x + padding - screenWidth);
+ scroll.x = rect.x;
+ scroll.y = rect.y;
scale = clampPageScaleFactorToLimits(scale);
scroll = mainFrameImpl()->frameView()->windowToContents(scroll);
- if (!isAnchor)
- scroll = clampOffsetAtScale(scroll, scale);
+ scroll = clampOffsetAtScale(scroll, scale);
}
static bool invokesHandCursor(Node* node, bool shiftKey, Frame* frame)
@@ -1271,22 +1257,29 @@ void WebViewImpl::enableTapHighlight(const PlatformGestureEvent& tapEvent)
m_linkHighlight = LinkHighlight::create(touchNode, this);
}
-void WebViewImpl::animateZoomAroundPoint(const IntPoint& point, AutoZoomType zoomType)
+void WebViewImpl::animateDoubleTapZoom(const IntPoint& point)
{
if (!mainFrameImpl())
return;
+ WebRect rect(point.x(), point.y(), touchPointPadding, touchPointPadding);
+ WebRect blockBounds = computeBlockBounds(rect, false);
+
float scale;
WebPoint scroll;
- bool isAnchor;
- WebPoint webPoint = point;
- computeScaleAndScrollForHitRect(WebRect(webPoint.x, webPoint.y, 0, 0), zoomType, scale, scroll, isAnchor);
+ bool doubleTapShouldZoomOut;
+
+ computeScaleAndScrollForBlockRect(blockBounds, touchPointPadding, scale, scroll, doubleTapShouldZoomOut);
- bool isDoubleTap = (zoomType == DoubleTap);
- double durationInSeconds = isDoubleTap ? doubleTapZoomAnimationDurationInSeconds : 0;
- bool isAnimating = startPageScaleAnimation(scroll, isAnchor, scale, durationInSeconds);
+ bool isAnimating;
- if (isDoubleTap && isAnimating) {
+ if (doubleTapShouldZoomOut) {
+ isAnimating = startPageScaleAnimation(mainFrameImpl()->frameView()->windowToContents(point), true, minimumPageScaleFactor(), doubleTapZoomAnimationDurationInSeconds);
+ } else {
+ isAnimating = startPageScaleAnimation(scroll, false, scale, doubleTapZoomAnimationDurationInSeconds);
+ }
+
+ if (isAnimating) {
m_doubleTapZoomPageScaleFactor = scale;
m_doubleTapZoomPending = true;
}
@@ -1294,7 +1287,42 @@ void WebViewImpl::animateZoomAroundPoint(const IntPoint& point, AutoZoomType zoo
void WebViewImpl::zoomToFindInPageRect(const WebRect& rect)
{
- animateZoomAroundPoint(IntRect(rect).center(), FindInPage);
+ if (!mainFrameImpl())
+ return;
+
+ WebRect blockBounds = computeBlockBounds(rect, true);
+
+ if (blockBounds.isEmpty()) {
+ // Keep current scale (no need to scroll as x,y will normally already
+ // be visible). FIXME: Revisit this if it isn't always true.
+ return;
+ }
+
+ float scale;
+ WebPoint scroll;
+ bool doubleTapShouldZoomOut;
+
+ computeScaleAndScrollForBlockRect(blockBounds, nonUserInitiatedPointPadding, scale, scroll, doubleTapShouldZoomOut);
+
+ startPageScaleAnimation(scroll, false, scale, findInPageAnimationDurationInSeconds);
+}
+
+bool WebViewImpl::zoomToMultipleTargetsRect(const WebRect& rect)
+{
+ if (!mainFrameImpl())
+ return false;
+
+ float scale;
+ WebPoint scroll;
+ bool doubleTapShouldZoomOut;
+
+ computeScaleAndScrollForBlockRect(rect, nonUserInitiatedPointPadding, scale, scroll, doubleTapShouldZoomOut);
+
+ if (scale <= pageScaleFactor())
+ return false;
+
+ startPageScaleAnimation(scroll, false, scale, multipleTargetsZoomAnimationDurationInSeconds);
+ return true;
}
void WebViewImpl::numberOfWheelEventHandlersChanged(unsigned numberOfWheelHandlers)
@@ -1659,77 +1687,22 @@ void WebViewImpl::willEndLiveResize()
void WebViewImpl::willEnterFullScreen()
{
- if (!m_provisionalFullScreenElement)
- return;
-
- // Ensure that this element's document is still attached.
- Document* doc = m_provisionalFullScreenElement->document();
- if (doc->frame()) {
- FullscreenController::from(doc)->webkitWillEnterFullScreenForElement(m_provisionalFullScreenElement.get());
- m_fullScreenFrame = doc->frame();
- }
- m_provisionalFullScreenElement.clear();
+ m_fullscreenController->willEnterFullScreen();
}
void WebViewImpl::didEnterFullScreen()
{
- if (!m_fullScreenFrame)
- return;
-
- if (Document* doc = m_fullScreenFrame->document()) {
- if (FullscreenController::isFullScreen(doc)) {
- if (!m_exitFullscreenPageScaleFactor) {
- m_exitFullscreenPageScaleFactor = pageScaleFactor();
- m_exitFullscreenScrollOffset = mainFrame()->scrollOffset();
- setPageScaleFactorPreservingScrollOffset(1.0f);
- }
-
- FullscreenController::from(doc)->webkitDidEnterFullScreenForElement(0);
- }
- }
+ m_fullscreenController->didEnterFullScreen();
}
void WebViewImpl::willExitFullScreen()
{
- if (!m_fullScreenFrame)
- return;
-
- if (Document* doc = m_fullScreenFrame->document()) {
- FullscreenController* fullscreen = FullscreenController::fromIfExists(doc);
- if (!fullscreen)
- return;
- if (fullscreen->isFullScreen(doc)) {
- // When the client exits from full screen we have to call webkitCancelFullScreen to
- // notify the document. While doing that, suppress notifications back to the client.
- m_isCancelingFullScreen = true;
- fullscreen->webkitCancelFullScreen();
- m_isCancelingFullScreen = false;
- fullscreen->webkitWillExitFullScreenForElement(0);
- }
- }
+ m_fullscreenController->willExitFullScreen();
}
void WebViewImpl::didExitFullScreen()
{
- if (!m_fullScreenFrame)
- return;
-
- if (Document* doc = m_fullScreenFrame->document()) {
- if (FullscreenController* fullscreen = FullscreenController::fromIfExists(doc)) {
- if (fullscreen->webkitIsFullScreen()) {
- if (m_exitFullscreenPageScaleFactor) {
- setPageScaleFactor(m_exitFullscreenPageScaleFactor,
- WebPoint(m_exitFullscreenScrollOffset.width(), m_exitFullscreenScrollOffset.height()));
- m_exitFullscreenPageScaleFactor = 0;
- m_exitFullscreenScrollOffset = IntSize();
- }
-
- fullscreen->webkitDidExitFullScreenForElement(0);
- }
- }
- }
-
- m_fullScreenFrame.clear();
+ m_fullscreenController->didExitFullScreen();
}
void WebViewImpl::animate(double monotonicFrameBeginTime)
@@ -1879,51 +1852,12 @@ void WebViewImpl::setNeedsRedraw()
void WebViewImpl::enterFullScreenForElement(WebCore::Element* element)
{
- // We are already transitioning to fullscreen for a different element.
- if (m_provisionalFullScreenElement) {
- m_provisionalFullScreenElement = element;
- return;
- }
-
- // We are already in fullscreen mode.
- if (m_fullScreenFrame) {
- m_provisionalFullScreenElement = element;
- willEnterFullScreen();
- didEnterFullScreen();
- return;
- }
-
-#if USE(NATIVE_FULLSCREEN_VIDEO)
- if (element && element->isMediaElement()) {
- HTMLMediaElement* mediaElement = toMediaElement(element);
- if (mediaElement->player() && mediaElement->player()->canEnterFullscreen()) {
- mediaElement->player()->enterFullscreen();
- m_provisionalFullScreenElement = element;
- }
- return;
- }
-#endif
-
- // We need to transition to fullscreen mode.
- if (m_client && m_client->enterFullScreen())
- m_provisionalFullScreenElement = element;
+ m_fullscreenController->enterFullScreenForElement(element);
}
void WebViewImpl::exitFullScreenForElement(WebCore::Element* element)
{
- // The client is exiting full screen, so don't send a notification.
- if (m_isCancelingFullScreen)
- return;
-#if USE(NATIVE_FULLSCREEN_VIDEO)
- if (element && element->isMediaElement()) {
- HTMLMediaElement* mediaElement = static_cast<HTMLMediaElement*>(element);
- if (mediaElement->player())
- mediaElement->player()->exitFullscreen();
- return;
- }
-#endif
- if (m_client)
- m_client->exitFullScreen();
+ m_fullscreenController->exitFullScreenForElement(element);
}
bool WebViewImpl::hasHorizontalScrollbar()
@@ -2417,7 +2351,6 @@ bool WebViewImpl::setCompositionFromExistingText(int compositionStart, int compo
editor->setIgnoreCompositionSelectionChange(true);
editor->setSelectionOffsets(compositionStart, compositionEnd);
String text = editor->selectedText();
- focused->document()->execCommand("delete", true);
editor->setComposition(text, CompositionUnderlineVectorBuilder(underlines), 0, 0);
// Need to set setIgnoreCompositionSelectionChange(true) again because setComposition resets it to false.
editor->setIgnoreCompositionSelectionChange(true);
@@ -2654,24 +2587,10 @@ void WebViewImpl::setInitialFocus(bool reverse)
{
if (!m_page)
return;
-
- // Since we don't have a keyboard event, we'll create one.
- WebKeyboardEvent keyboardEvent;
- keyboardEvent.type = WebInputEvent::RawKeyDown;
- if (reverse)
- keyboardEvent.modifiers = WebInputEvent::ShiftKey;
-
- // VK_TAB which is only defined on Windows.
- keyboardEvent.windowsKeyCode = 0x09;
- PlatformKeyboardEventBuilder platformEvent(keyboardEvent);
- RefPtr<KeyboardEvent> webkitEvent = KeyboardEvent::create(platformEvent, 0);
-
Frame* frame = page()->focusController()->focusedOrMainFrame();
if (Document* document = frame->document())
document->setFocusedElement(0);
- page()->focusController()->setInitialFocus(
- reverse ? FocusDirectionBackward : FocusDirectionForward,
- webkitEvent.get());
+ page()->focusController()->setInitialFocus(reverse ? FocusDirectionBackward : FocusDirectionForward);
}
void WebViewImpl::clearFocusedNode()
@@ -2794,7 +2713,7 @@ void WebViewImpl::computeScaleAndScrollForFocusedNode(Node* focusedNode, float&
void WebViewImpl::advanceFocus(bool reverse)
{
- page()->focusController()->advanceFocus(reverse ? FocusDirectionBackward : FocusDirectionForward, 0);
+ page()->focusController()->advanceFocus(reverse ? FocusDirectionBackward : FocusDirectionForward);
}
double WebViewImpl::zoomLevel()
diff --git a/Source/web/WebViewImpl.h b/Source/web/WebViewImpl.h
index 9fccd8ea6..03795c80c 100644
--- a/Source/web/WebViewImpl.h
+++ b/Source/web/WebViewImpl.h
@@ -120,6 +120,7 @@ class WebPrerendererClient;
class WebSettingsImpl;
class WebTouchEvent;
class WebViewBenchmarkSupport;
+class FullscreenController;
class WebViewImpl : public WebView
, public RefCounted<WebViewImpl>
@@ -127,10 +128,6 @@ class WebViewImpl : public WebView
, public WebCore::PagePopupDriver
, public PageWidgetEventHandler {
public:
- enum AutoZoomType {
- DoubleTap,
- FindInPage,
- };
// WebWidget methods:
virtual void close();
@@ -225,6 +222,7 @@ public:
virtual void zoomLimitsChanged(double minimumZoomLevel,
double maximumZoomLevel);
virtual void setInitialPageScaleOverride(float);
+ virtual bool zoomToMultipleTargetsRect(const WebRect&);
virtual float pageScaleFactor() const;
virtual void setPageScaleFactorPreservingScrollOffset(float);
virtual void setPageScaleFactor(float scaleFactor, const WebPoint& origin);
@@ -528,17 +526,18 @@ public:
// a plugin can update its own zoom, say because of its own UI.
void fullFramePluginZoomLevelChanged(double zoomLevel);
- void computeScaleAndScrollForHitRect(const WebRect& hitRect, AutoZoomType, float& scale, WebPoint& scroll, bool& isAnchor);
+ void computeScaleAndScrollForBlockRect(const WebRect& blockRect, float padding, float& scale, WebPoint& scroll, bool& doubleTapShouldZoomOut);
WebCore::Node* bestTapNode(const WebCore::PlatformGestureEvent& tapEvent);
void enableTapHighlight(const WebCore::PlatformGestureEvent& tapEvent);
void computeScaleAndScrollForFocusedNode(WebCore::Node* focusedNode, float& scale, WebCore::IntPoint& scroll, bool& needAnimation);
- void animateZoomAroundPoint(const WebCore::IntPoint&, AutoZoomType);
- void enableFakeDoubleTapAnimationForTesting(bool);
+ void animateDoubleTapZoom(const WebCore::IntPoint&);
+
+ void enableFakePageScaleAnimationForTesting(bool);
bool fakeDoubleTapAnimationPendingForTesting() const { return m_doubleTapZoomPending; }
- WebCore::IntPoint fakeDoubleTapTargetPositionForTesting() const { return m_fakeDoubleTapTargetPosition; }
- float fakeDoubleTapPageScaleFactorForTesting() const { return m_fakeDoubleTapPageScaleFactor; }
- bool fakeDoubleTapUseAnchorForTesting() const { return m_fakeDoubleTapUseAnchor; }
+ WebCore::IntPoint fakePageScaleAnimationTargetPositionForTesting() const { return m_fakePageScaleAnimationTargetPosition; }
+ float fakePageScaleAnimationPageScaleForTesting() const { return m_fakePageScaleAnimationPageScaleFactor; }
+ bool fakePageScaleAnimationUseAnchorForTesting() const { return m_fakePageScaleAnimationUseAnchor; }
void enterFullScreenForElement(WebCore::Element*);
void exitFullScreenForElement(WebCore::Element*);
@@ -565,11 +564,15 @@ public:
WebSettingsImpl* settingsImpl();
+ // Returns the bounding box of the block type node touched by the WebRect.
+ WebRect computeBlockBounds(const WebRect&, bool ignoreClipping);
+
+ WebCore::IntPoint clampOffsetAtScale(const WebCore::IntPoint& offset, float scale);
+
private:
void refreshPageScaleFactorAfterLayout();
void setUserAgentPageScaleConstraints(WebCore::PageScaleConstraints newConstraints);
float clampPageScaleFactorToLimits(float) const;
- WebCore::IntPoint clampOffsetAtScale(const WebCore::IntPoint& offset, float scale);
WebCore::IntSize contentsSize() const;
void resetSavedScrollAndScaleState();
@@ -630,9 +633,6 @@ private:
void reallocateRenderer();
void updateLayerTreeViewport();
- // Returns the bounding box of the block type node touched by the WebRect.
- WebRect computeBlockBounds(const WebRect&, AutoZoomType);
-
// Helper function: Widens the width of |source| by the specified margins
// while keeping it smaller than page width.
WebRect widenRectWithinPageBounds(const WebRect& source, int targetMargin, int minimumMargin);
@@ -709,8 +709,6 @@ private:
// Saved page scale state.
float m_savedPageScaleFactor; // 0 means that no page scale factor is saved.
WebCore::IntSize m_savedScrollOffset;
- float m_exitFullscreenPageScaleFactor;
- WebCore::IntSize m_exitFullscreenScrollOffset;
// The scale moved to by the latest double tap zoom, if any.
float m_doubleTapZoomPageScaleFactor;
@@ -718,10 +716,10 @@ private:
bool m_doubleTapZoomPending;
// Used for testing purposes.
- bool m_enableFakeDoubleTapAnimationForTesting;
- WebCore::IntPoint m_fakeDoubleTapTargetPosition;
- float m_fakeDoubleTapPageScaleFactor;
- bool m_fakeDoubleTapUseAnchor;
+ bool m_enableFakePageScaleAnimationForTesting;
+ WebCore::IntPoint m_fakePageScaleAnimationTargetPosition;
+ float m_fakePageScaleAnimationPageScaleFactor;
+ bool m_fakePageScaleAnimationUseAnchor;
bool m_contextMenuAllowed;
@@ -787,13 +785,6 @@ private:
// If set, the (plugin) node which has mouse capture.
RefPtr<WebCore::Node> m_mouseCaptureNode;
- // If set, the WebView is transitioning to fullscreen for this element.
- RefPtr<WebCore::Element> m_provisionalFullScreenElement;
-
- // If set, the WebView is in fullscreen mode for an element in this frame.
- RefPtr<WebCore::Frame> m_fullScreenFrame;
- bool m_isCancelingFullScreen;
-
WebViewBenchmarkSupportImpl m_benchmarkSupport;
WebCore::IntRect m_rootLayerScrollDamage;
@@ -831,6 +822,7 @@ private:
bool m_flingSourceDevice;
OwnPtr<LinkHighlight> m_linkHighlight;
OwnPtr<ValidationMessageClientImpl> m_validationMessage;
+ OwnPtr<FullscreenController> m_fullscreenController;
bool m_showFPSCounter;
bool m_showPaintRects;
diff --git a/Source/web/blink_common.target.darwin-arm.mk b/Source/web/blink_common.target.darwin-arm.mk
new file mode 100644
index 000000000..4da8bf0de
--- /dev/null
+++ b/Source/web/blink_common.target.darwin-arm.mk
@@ -0,0 +1,358 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_blink_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCString.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebString.cpp \
+ third_party/WebKit/Source/web/WebCommon.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_blink_common_gyp
+
+# Alias gyp target name.
+.PHONY: blink_common
+blink_common: third_party_WebKit_Source_web_blink_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/blink_common.target.darwin-mips.mk b/Source/web/blink_common.target.darwin-mips.mk
new file mode 100644
index 000000000..44bc0d01f
--- /dev/null
+++ b/Source/web/blink_common.target.darwin-mips.mk
@@ -0,0 +1,354 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_blink_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCString.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebString.cpp \
+ third_party/WebKit/Source/web/WebCommon.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_blink_common_gyp
+
+# Alias gyp target name.
+.PHONY: blink_common
+blink_common: third_party_WebKit_Source_web_blink_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/blink_common.target.darwin-x86.mk b/Source/web/blink_common.target.darwin-x86.mk
new file mode 100644
index 000000000..3e0331e70
--- /dev/null
+++ b/Source/web/blink_common.target.darwin-x86.mk
@@ -0,0 +1,358 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_blink_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCString.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebString.cpp \
+ third_party/WebKit/Source/web/WebCommon.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer \
+ -fno-unwind-tables \
+ -fno-asynchronous-unwind-tables
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_blink_common_gyp
+
+# Alias gyp target name.
+.PHONY: blink_common
+blink_common: third_party_WebKit_Source_web_blink_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/blink_common.target.linux-arm.mk b/Source/web/blink_common.target.linux-arm.mk
new file mode 100644
index 000000000..4da8bf0de
--- /dev/null
+++ b/Source/web/blink_common.target.linux-arm.mk
@@ -0,0 +1,358 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_blink_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCString.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebString.cpp \
+ third_party/WebKit/Source/web/WebCommon.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_blink_common_gyp
+
+# Alias gyp target name.
+.PHONY: blink_common
+blink_common: third_party_WebKit_Source_web_blink_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/blink_common.target.linux-mips.mk b/Source/web/blink_common.target.linux-mips.mk
new file mode 100644
index 000000000..44bc0d01f
--- /dev/null
+++ b/Source/web/blink_common.target.linux-mips.mk
@@ -0,0 +1,354 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_blink_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCString.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebString.cpp \
+ third_party/WebKit/Source/web/WebCommon.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_blink_common_gyp
+
+# Alias gyp target name.
+.PHONY: blink_common
+blink_common: third_party_WebKit_Source_web_blink_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/blink_common.target.linux-x86.mk b/Source/web/blink_common.target.linux-x86.mk
new file mode 100644
index 000000000..3e0331e70
--- /dev/null
+++ b/Source/web/blink_common.target.linux-x86.mk
@@ -0,0 +1,358 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_blink_common_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCString.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebString.cpp \
+ third_party/WebKit/Source/web/WebCommon.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ --param=ssp-buffer-size=4 \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -Wno-format \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer \
+ -fno-unwind-tables \
+ -fno-asynchronous-unwind-tables
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DBLINK_COMMON_IMPLEMENTATION=1' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wno-deprecated \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_blink_common_gyp
+
+# Alias gyp target name.
+.PHONY: blink_common
+blink_common: third_party_WebKit_Source_web_blink_common_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/linux/WebFontInfo.cpp b/Source/web/linux/WebFontInfo.cpp
index 3d3629e0d..cc9cc7886 100644
--- a/Source/web/linux/WebFontInfo.cpp
+++ b/Source/web/linux/WebFontInfo.cpp
@@ -32,8 +32,14 @@
#include "WebFontInfo.h"
#include "WebFontRenderStyle.h"
-#include <fontconfig/fontconfig.h>
#include "public/platform/linux/WebFontFamily.h"
+#include "wtf/HashMap.h"
+#include "wtf/Noncopyable.h"
+#include "wtf/OwnPtr.h"
+#include "wtf/PassOwnPtr.h"
+#include "wtf/Vector.h"
+#include "wtf/text/AtomicStringHash.h"
+#include <fontconfig/fontconfig.h>
#include <string.h>
#include <unicode/utf16.h>
@@ -46,89 +52,187 @@ void WebFontInfo::setSubpixelPositioning(bool subpixelPositioning)
useSubpixelPositioning = subpixelPositioning;
}
-void WebFontInfo::familyForChars(const WebUChar* characters, size_t numCharacters, const char* preferredLocale, WebFontFamily* family)
-{
- FcCharSet* cset = FcCharSetCreate();
- for (size_t i = 0; i < numCharacters; ++i) {
- if (U16_IS_SURROGATE(characters[i])
- && U16_IS_SURROGATE_LEAD(characters[i])
- && i != numCharacters - 1
- && U16_IS_TRAIL(characters[i + 1])) {
- FcCharSetAddChar(cset, U16_GET_SUPPLEMENTARY(characters[i], characters[i+1]));
- i++;
- } else
- FcCharSetAddChar(cset, characters[i]);
+class CachedFont {
+public:
+ // Note: We pass the charset explicitly as callers
+ // should not create CachedFont entries without knowing
+ // that the FcPattern contains a valid charset.
+ CachedFont(FcPattern* pattern, FcCharSet* charSet)
+ : m_supportedCharacters(charSet)
+ {
+ ASSERT(pattern);
+ ASSERT(charSet);
+ m_family.name = fontName(pattern);
+ m_family.isBold = fontIsBold(pattern);
+ m_family.isItalic = fontIsItalic(pattern);
+ }
+ const WebFontFamily& family() const { return m_family; }
+ bool hasGlyphForCharacter(WebUChar32 c)
+ {
+ return m_supportedCharacters && FcCharSetHasChar(m_supportedCharacters, c);
}
- FcPattern* pattern = FcPatternCreate();
- FcValue fcvalue;
- fcvalue.type = FcTypeCharSet;
- fcvalue.u.c = cset;
- FcPatternAdd(pattern, FC_CHARSET, fcvalue, FcFalse);
+private:
+ static WebCString fontName(FcPattern* pattern)
+ {
+ FcChar8* familyName;
+ if (FcPatternGetString(pattern, FC_FAMILY, 0, &familyName) != FcResultMatch)
+ return WebCString();
+
+ // FCChar8 is unsigned char, so we cast to char for WebCString.
+ const char* charFamily = reinterpret_cast<char*>(familyName);
+ // FIXME: This should use WebString instead, and we should be
+ // explicit about which encoding we're using. Right now callers
+ // assume that this is utf8, but that may be wrong!
+ return WebCString(charFamily, strlen(charFamily));
+ }
- fcvalue.type = FcTypeBool;
- fcvalue.u.b = FcTrue;
- FcPatternAdd(pattern, FC_SCALABLE, fcvalue, FcFalse);
+ static bool fontIsBold(FcPattern* pattern)
+ {
+ int weight;
+ if (FcPatternGetInteger(pattern, FC_WEIGHT, 0, &weight) != FcResultMatch)
+ return false;
+ return weight >= FC_WEIGHT_BOLD;
+ }
- if (preferredLocale) {
- FcLangSet* langset = FcLangSetCreate();
- FcLangSetAdd(langset, reinterpret_cast<const FcChar8 *>(preferredLocale));
- FcPatternAddLangSet(pattern, FC_LANG, langset);
- FcLangSetDestroy(langset);
+ static bool fontIsItalic(FcPattern* pattern)
+ {
+ int slant;
+ if (FcPatternGetInteger(pattern, FC_SLANT, 0, &slant) != FcResultMatch)
+ return false;
+ return slant != FC_SLANT_ROMAN;
}
- FcConfigSubstitute(0, pattern, FcMatchPattern);
- FcDefaultSubstitute(pattern);
+ WebFontFamily m_family;
+ // m_supportedCharaters is owned by the parent
+ // FcFontSet and should never be freed.
+ FcCharSet* m_supportedCharacters;
+};
+
+
+class CachedFontSet {
+ WTF_MAKE_NONCOPYABLE(CachedFontSet);
+public:
+ // CachedFontSet takes ownership of the passed FcFontSet.
+ static PassOwnPtr<CachedFontSet> createForLocale(const char* locale)
+ {
+ FcFontSet* fontSet = createFcFontSetForLocale(locale);
+ return adoptPtr(new CachedFontSet(fontSet));
+ }
- FcResult result;
- FcFontSet* fontSet = FcFontSort(0, pattern, 0, 0, &result);
- FcPatternDestroy(pattern);
- FcCharSetDestroy(cset);
+ ~CachedFontSet()
+ {
+ m_fallbackList.clear();
+ FcFontSetDestroy(m_fontSet);
+ }
- if (!fontSet) {
- family->name = WebCString();
- family->isBold = false;
- family->isItalic = false;
- return;
+ WebFontFamily familyForChar(WebUChar32 c)
+ {
+ Vector<CachedFont>::iterator itr = m_fallbackList.begin();
+ for (; itr != m_fallbackList.end(); itr++) {
+ if (itr->hasGlyphForCharacter(c))
+ return itr->family();
+ }
+ // The previous code just returned garbage if the user didn't
+ // have the necessary fonts, this seems better than garbage.
+ // Current callers happen to ignore any values with an empty family string.
+ return WebFontFamily();
}
- // Older versions of fontconfig have a bug where they cannot select
- // only scalable fonts so we have to manually filter the results.
- for (int i = 0; i < fontSet->nfont; ++i) {
- FcPattern* current = fontSet->fonts[i];
- FcBool isScalable;
- if (FcPatternGetBool(current, FC_SCALABLE, 0, &isScalable) != FcResultMatch
- || !isScalable)
- continue;
+private:
+ static FcFontSet* createFcFontSetForLocale(const char* locale)
+ {
+ ASSERT(locale);
+ FcPattern* pattern = FcPatternCreate();
+ // FcChar* is unsigned char* so we have to cast.
+ FcPatternAddString(pattern, FC_LANG, reinterpret_cast<const FcChar8*>(locale));
+ FcConfigSubstitute(0, pattern, FcMatchPattern);
+ FcDefaultSubstitute(pattern);
+
+ // The result parameter returns if any fonts were found.
+ // We already handle 0 fonts correctly, so we ignore the param.
+ FcResult result;
+ FcFontSet* fontSet = FcFontSort(0, pattern, 0, 0, &result);
+ FcPatternDestroy(pattern);
+
+ // The caller will take ownership of this FcFontSet.
+ return fontSet;
+ }
- // fontconfig can also return fonts which are unreadable
- FcChar8* cFilename;
- if (FcPatternGetString(current, FC_FILE, 0, &cFilename) != FcResultMatch)
- continue;
+ CachedFontSet(FcFontSet* fontSet)
+ : m_fontSet(fontSet)
+ {
+ fillFallbackList();
+ }
- if (access(reinterpret_cast<char*>(cFilename), R_OK))
- continue;
+ void fillFallbackList()
+ {
+ ASSERT(m_fallbackList.isEmpty());
+ if (!m_fontSet)
+ return;
+
+ for (int i = 0; i < m_fontSet->nfont; ++i) {
+ FcPattern* pattern = m_fontSet->fonts[i];
+
+ // Ignore any bitmap fonts users may still have installed from last century.
+ FcBool isScalable;
+ if (FcPatternGetBool(pattern, FC_SCALABLE, 0, &isScalable) != FcResultMatch
+ || !isScalable)
+ continue;
+
+ // Ignore any fonts FontConfig knows about, but that we don't have persmision to read.
+ FcChar8* cFilename;
+ if (FcPatternGetString(pattern, FC_FILE, 0, &cFilename) != FcResultMatch)
+ continue;
+ if (access(reinterpret_cast<char*>(cFilename), R_OK))
+ continue;
+
+ // Make sure this font can tell us what characters it has glyphs for.
+ FcCharSet* charSet;
+ if (FcPatternGetCharSet(pattern, FC_CHARSET, 0, &charSet) != FcResultMatch)
+ continue;
+
+ m_fallbackList.append(CachedFont(pattern, charSet));
+ }
+ }
- FcChar8* familyName;
- if (FcPatternGetString(current, FC_FAMILY, 0, &familyName) == FcResultMatch) {
- const char* charFamily = reinterpret_cast<char*>(familyName);
- family->name = WebCString(charFamily, strlen(charFamily));
+ FcFontSet* m_fontSet; // Owned by this object.
+ // CachedFont has a FcCharset* which points into the FcFontSet.
+ // If the FcFontSet is ever destoryed, the fallbackList
+ // must be cleared first.
+ Vector<CachedFont> m_fallbackList;
+};
+
+class FontSetCache {
+public:
+ static FontSetCache& shared()
+ {
+ DEFINE_STATIC_LOCAL(FontSetCache, cache, ());
+ return cache;
+ }
+
+ WebFontFamily fontFamilyForCharInLocale(WebUChar32 c, const char* locale)
+ {
+ LocaleToCachedFont::iterator itr = m_setsByLocale.find(locale);
+ if (itr == m_setsByLocale.end()) {
+ OwnPtr<CachedFontSet> newEntry = CachedFontSet::createForLocale(locale);
+ itr = m_setsByLocale.add(locale, newEntry.release()).iterator;
}
- int weight;
- if (FcPatternGetInteger(current, FC_WEIGHT, 0, &weight) == FcResultMatch)
- family->isBold = weight >= FC_WEIGHT_BOLD;
- else
- family->isBold = false;
- int slant;
- if (FcPatternGetInteger(current, FC_SLANT, 0, &slant) == FcResultMatch)
- family->isItalic = slant != FC_SLANT_ROMAN;
- else
- family->isItalic = false;
- FcFontSetDestroy(fontSet);
- return;
+ return itr.get()->value->familyForChar(c);
}
+ // FIXME: We may wish to add a way to prune the cache at a later time.
- FcFontSetDestroy(fontSet);
+private:
+ // FIXME: This shouldn't need to be AtomicString, but
+ // currently HashTraits<const char*> isn't smart enough
+ // to hash the string (only does pointer compares).
+ typedef HashMap<AtomicString, OwnPtr<CachedFontSet> > LocaleToCachedFont;
+ LocaleToCachedFont m_setsByLocale;
+};
+
+void WebFontInfo::familyForChar(WebUChar32 c, const char* locale, WebFontFamily* family)
+{
+ *family = FontSetCache::shared().fontFamilyForCharInLocale(c, locale);
}
void WebFontInfo::renderStyleForStrike(const char* family, int sizeAndStyle, WebFontRenderStyle* out)
diff --git a/Source/web/tests/ArenaTestHelpers.h b/Source/web/tests/ArenaTestHelpers.h
deleted file mode 100644
index d812f1f96..000000000
--- a/Source/web/tests/ArenaTestHelpers.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ArenaTestHelpers_h
-#define ArenaTestHelpers_h
-
-#include <gtest/gtest.h>
-#include "core/platform/PODArena.h"
-#include "wtf/NotFound.h"
-#include "wtf/Vector.h"
-
-namespace WebCore {
-namespace ArenaTestHelpers {
-
-// An allocator for the PODArena which tracks the regions which have
-// been allocated.
-class TrackedAllocator : public PODArena::FastMallocAllocator {
-public:
- static PassRefPtr<TrackedAllocator> create()
- {
- return adoptRef(new TrackedAllocator);
- }
-
- virtual void* allocate(size_t size)
- {
- void* result = PODArena::FastMallocAllocator::allocate(size);
- m_allocatedRegions.append(result);
- return result;
- }
-
- virtual void free(void* ptr)
- {
- size_t slot = m_allocatedRegions.find(ptr);
- ASSERT_NE(slot, notFound);
- m_allocatedRegions.remove(slot);
- PODArena::FastMallocAllocator::free(ptr);
- }
-
- bool isEmpty() const
- {
- return !numRegions();
- }
-
- int numRegions() const
- {
- return m_allocatedRegions.size();
- }
-
-private:
- TrackedAllocator() { }
- Vector<void*> m_allocatedRegions;
-};
-
-} // namespace ArenaTestHelpers
-} // namespace WebCore
-
-#endif // ArenaTestHelpers_h
diff --git a/Source/web/tests/GraphicsLayerTest.cpp b/Source/web/tests/GraphicsLayerTest.cpp
index 05f6b6b33..a93afcecb 100644
--- a/Source/web/tests/GraphicsLayerTest.cpp
+++ b/Source/web/tests/GraphicsLayerTest.cpp
@@ -118,7 +118,6 @@ class FakeScrollableArea : public ScrollableArea {
public:
virtual bool isActive() const OVERRIDE { return false; }
virtual int scrollSize(ScrollbarOrientation) const OVERRIDE { return 100; }
- virtual int scrollPosition(Scrollbar*) const OVERRIDE { return 0; }
virtual bool isScrollCornerVisible() const OVERRIDE { return false; }
virtual IntRect scrollCornerRect() const OVERRIDE { return IntRect(); }
virtual int visibleWidth() const OVERRIDE { return 10; }
@@ -129,6 +128,13 @@ public:
virtual IntRect scrollableAreaBoundingBox() const OVERRIDE { return IntRect(); }
virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) OVERRIDE { }
virtual void invalidateScrollCornerRect(const IntRect&) OVERRIDE { }
+ virtual bool userInputScrollable(ScrollbarOrientation) const OVERRIDE { return true; }
+ virtual int pageStep(ScrollbarOrientation) const OVERRIDE { return 0; }
+ virtual IntPoint minimumScrollPosition() const OVERRIDE { return IntPoint(); }
+ virtual IntPoint maximumScrollPosition() const OVERRIDE
+ {
+ return IntPoint(contentsSize().width() - visibleWidth(), contentsSize().height() - visibleHeight());
+ }
virtual void setScrollOffset(const IntPoint& scrollOffset) OVERRIDE { m_scrollPosition = scrollOffset; }
virtual IntPoint scrollPosition() const OVERRIDE { return m_scrollPosition; }
diff --git a/Source/web/tests/IDBRequestTest.cpp b/Source/web/tests/IDBRequestTest.cpp
deleted file mode 100644
index 3aaedc2d9..000000000
--- a/Source/web/tests/IDBRequestTest.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "modules/indexeddb/IDBRequest.h"
-
-#include "FrameTestHelpers.h"
-#include "WebFrame.h"
-#include "WebFrameImpl.h"
-#include "WebView.h"
-#include "bindings/v8/ScriptController.h"
-#include "core/dom/DOMError.h"
-#include "core/dom/DOMStringList.h"
-#include "core/dom/Document.h"
-#include "core/dom/ExceptionCode.h"
-#include "core/page/Frame.h"
-#include "modules/indexeddb/IDBCursorBackendInterface.h"
-#include "modules/indexeddb/IDBDatabaseBackendInterface.h"
-#include "modules/indexeddb/IDBDatabaseCallbacksImpl.h"
-#include "modules/indexeddb/IDBKeyRange.h"
-#include "modules/indexeddb/IDBOpenDBRequest.h"
-
-#include <gtest/gtest.h>
-
-using namespace WebCore;
-using namespace WebKit;
-
-namespace {
-
-class IDBRequestTest : public testing::Test {
-public:
- IDBRequestTest()
- : m_webView(0)
- {
- }
-
- void SetUp() OVERRIDE
- {
- m_webView = FrameTestHelpers::createWebViewAndLoad("about:blank");
- m_webView->setFocus(true);
- }
-
- void TearDown() OVERRIDE
- {
- m_webView->close();
- }
-
- v8::Handle<v8::Context> context()
- {
- return static_cast<WebFrameImpl*>(m_webView->mainFrame())->frame()->script()->mainWorldContext();
- }
-
- ScriptExecutionContext* scriptExecutionContext()
- {
- return static_cast<WebFrameImpl*>(m_webView->mainFrame())->frame()->document();
- }
-
-private:
- WebView* m_webView;
-};
-
-TEST_F(IDBRequestTest, EventsAfterStopping)
-{
- v8::HandleScope handleScope;
- v8::Context::Scope scope(context());
-
- IDBTransaction* transaction = 0;
- RefPtr<IDBRequest> request = IDBRequest::create(scriptExecutionContext(), IDBAny::createInvalid(), transaction);
- EXPECT_EQ(request->readyState(), "pending");
- scriptExecutionContext()->stopActiveDOMObjects();
-
- // Ensure none of the following raise assertions in stopped state:
- request->onError(DOMError::create(AbortError, "Description goes here."));
- request->onSuccess(Vector<String>());
- request->onSuccess(PassRefPtr<IDBCursorBackendInterface>(), IDBKey::createInvalid(), IDBKey::createInvalid(), 0);
- request->onSuccess(IDBKey::createInvalid());
- request->onSuccess(PassRefPtr<SharedBuffer>(0));
- request->onSuccess(PassRefPtr<SharedBuffer>(0), IDBKey::createInvalid(), IDBKeyPath());
- request->onSuccess(0LL);
- request->onSuccess();
- request->onSuccess(IDBKey::createInvalid(), IDBKey::createInvalid(), 0);
-}
-
-TEST_F(IDBRequestTest, AbortErrorAfterAbort)
-{
- v8::HandleScope handleScope;
- v8::Context::Scope scope(context());
-
- IDBTransaction* transaction = 0;
- RefPtr<IDBRequest> request = IDBRequest::create(scriptExecutionContext(), IDBAny::createInvalid(), transaction);
- EXPECT_EQ(request->readyState(), "pending");
-
- // Simulate the IDBTransaction having received onAbort from back end and aborting the request:
- request->abort();
-
- // Now simulate the back end having fired an abort error at the request to clear up any intermediaries.
- // Ensure an assertion is not raised.
- request->onError(DOMError::create(AbortError, "Description goes here."));
-}
-
-class MockIDBDatabaseBackendInterface : public IDBDatabaseBackendInterface {
-public:
- static PassRefPtr<MockIDBDatabaseBackendInterface> create()
- {
- return adoptRef(new MockIDBDatabaseBackendInterface());
- }
- virtual ~MockIDBDatabaseBackendInterface()
- {
- EXPECT_TRUE(m_closeCalled);
- }
-
- virtual void createObjectStore(int64_t transactionId, int64_t objectStoreId, const String& name, const IDBKeyPath&, bool autoIncrement) OVERRIDE { }
- virtual void deleteObjectStore(int64_t transactionId, int64_t objectStoreId) OVERRIDE { }
- virtual void createTransaction(int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks>, const Vector<int64_t>& objectStoreIds, unsigned short mode) OVERRIDE { }
- virtual void close(PassRefPtr<IDBDatabaseCallbacks>) OVERRIDE
- {
- m_closeCalled = true;
- }
-
- virtual void commit(int64_t transactionId) OVERRIDE { }
- virtual void abort(int64_t transactionId) OVERRIDE { }
-
- virtual void createIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId, const String& name, const IDBKeyPath&, bool unique, bool multiEntry) OVERRIDE { }
- virtual void deleteIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId) OVERRIDE { }
-
- virtual void get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, bool keyOnly, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey>, PutMode, PassRefPtr<IDBCallbacks>, const Vector<int64_t>& indexIds, const Vector<IndexKeys>&) OVERRIDE { }
- virtual void setIndexKeys(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKey>, const Vector<int64_t>& indexIds, const Vector<IndexKeys>&) OVERRIDE { }
- virtual void setIndexesReady(int64_t transactionId, int64_t objectStoreId, const Vector<int64_t>& indexIds) OVERRIDE { }
- virtual void openCursor(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, IndexedDB::CursorDirection, bool keyOnly, TaskType, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void count(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void clear(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBCallbacks>) OVERRIDE { }
-
-private:
- MockIDBDatabaseBackendInterface()
- : m_closeCalled(false)
- {
- }
-
- bool m_closeCalled;
-};
-
-TEST_F(IDBRequestTest, ConnectionsAfterStopping)
-{
- v8::HandleScope handleScope;
- v8::Context::Scope scope(context());
-
- const int64_t transactionId = 1234;
- const int64_t version = 1;
- const int64_t oldVersion = 0;
- const IDBDatabaseMetadata metadata;
- RefPtr<IDBDatabaseCallbacksImpl> callbacks = IDBDatabaseCallbacksImpl::create();
-
- {
- RefPtr<MockIDBDatabaseBackendInterface> interface = MockIDBDatabaseBackendInterface::create();
- RefPtr<IDBOpenDBRequest> request = IDBOpenDBRequest::create(scriptExecutionContext(), callbacks, transactionId, version);
- EXPECT_EQ(request->readyState(), "pending");
-
- scriptExecutionContext()->stopActiveDOMObjects();
- request->onUpgradeNeeded(oldVersion, interface, metadata, WebKit::WebIDBCallbacks::DataLossNone);
- }
-
- {
- RefPtr<MockIDBDatabaseBackendInterface> interface = MockIDBDatabaseBackendInterface::create();
- RefPtr<IDBOpenDBRequest> request = IDBOpenDBRequest::create(scriptExecutionContext(), callbacks, transactionId, version);
- EXPECT_EQ(request->readyState(), "pending");
-
- scriptExecutionContext()->stopActiveDOMObjects();
- request->onSuccess(interface, metadata);;
- }
-}
-
-} // namespace
diff --git a/Source/web/tests/IDBTransactionTest.cpp b/Source/web/tests/IDBTransactionTest.cpp
deleted file mode 100644
index 5d9d7b529..000000000
--- a/Source/web/tests/IDBTransactionTest.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "modules/indexeddb/IDBTransaction.h"
-
-#include "FrameTestHelpers.h"
-#include "WebFrame.h"
-#include "WebFrameImpl.h"
-#include "WebView.h"
-#include "bindings/v8/ScriptController.h"
-#include "core/dom/DOMError.h"
-#include "core/dom/Document.h"
-#include "core/dom/ExceptionCode.h"
-#include "modules/indexeddb/IDBDatabase.h"
-#include "modules/indexeddb/IDBDatabaseCallbacks.h"
-#include "modules/indexeddb/IDBPendingTransactionMonitor.h"
-#include "modules/indexeddb/IDBTransaction.h"
-
-#include <gtest/gtest.h>
-
-using namespace WebCore;
-using namespace WebKit;
-
-namespace {
-
-class IDBTransactionTest : public testing::Test {
-public:
- IDBTransactionTest()
- : m_webView(0)
- {
- }
-
- void SetUp() OVERRIDE
- {
- m_webView = FrameTestHelpers::createWebViewAndLoad("about:blank");
- m_webView->setFocus(true);
- }
-
- void TearDown() OVERRIDE
- {
- m_webView->close();
- }
-
- v8::Handle<v8::Context> context()
- {
- return static_cast<WebFrameImpl*>(m_webView->mainFrame())->frame()->script()->mainWorldContext();
- }
-
- ScriptExecutionContext* scriptExecutionContext()
- {
- return static_cast<WebFrameImpl*>(m_webView->mainFrame())->frame()->document();
- }
-
-private:
- WebView* m_webView;
-};
-
-class FakeIDBDatabaseBackendProxy : public IDBDatabaseBackendInterface {
-public:
- static PassRefPtr<FakeIDBDatabaseBackendProxy> create() { return adoptRef(new FakeIDBDatabaseBackendProxy()); }
-
- virtual void createObjectStore(int64_t transactionId, int64_t objectStoreId, const String& name, const IDBKeyPath&, bool autoIncrement) OVERRIDE { }
- virtual void deleteObjectStore(int64_t transactionId, int64_t objectStoreId) OVERRIDE { }
- virtual void createTransaction(int64_t transactionId, PassRefPtr<IDBDatabaseCallbacks>, const Vector<int64_t>& objectStoreIds, unsigned short mode) OVERRIDE { }
- virtual void close(PassRefPtr<IDBDatabaseCallbacks>) OVERRIDE { }
-
- virtual void commit(int64_t transactionId) OVERRIDE { }
- virtual void abort(int64_t transactionId) OVERRIDE { }
-
- virtual void createIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId, const String& name, const IDBKeyPath&, bool unique, bool multiEntry) OVERRIDE { }
- virtual void deleteIndex(int64_t transactionId, int64_t objectStoreId, int64_t indexId) OVERRIDE { }
-
- virtual void get(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, bool keyOnly, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void put(int64_t transactionId, int64_t objectStoreId, PassRefPtr<SharedBuffer> value, PassRefPtr<IDBKey>, PutMode, PassRefPtr<IDBCallbacks>, const Vector<int64_t>& indexIds, const Vector<IndexKeys>&) OVERRIDE { }
- virtual void setIndexKeys(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKey>, const Vector<int64_t>& indexIds, const Vector<IndexKeys>&) OVERRIDE { }
- virtual void setIndexesReady(int64_t transactionId, int64_t objectStoreId, const Vector<int64_t>& indexIds) OVERRIDE { }
- virtual void openCursor(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, IndexedDB::CursorDirection, bool keyOnly, TaskType, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void count(int64_t transactionId, int64_t objectStoreId, int64_t indexId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void deleteRange(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBKeyRange>, PassRefPtr<IDBCallbacks>) OVERRIDE { }
- virtual void clear(int64_t transactionId, int64_t objectStoreId, PassRefPtr<IDBCallbacks>) OVERRIDE { }
-
-private:
- FakeIDBDatabaseBackendProxy() { }
-};
-
-class FakeIDBDatabaseCallbacks : public IDBDatabaseCallbacks {
-public:
- static PassRefPtr<FakeIDBDatabaseCallbacks> create() { return adoptRef(new FakeIDBDatabaseCallbacks()); }
- virtual void onVersionChange(int64_t oldVersion, int64_t newVersion) OVERRIDE { }
- virtual void onForcedClose() OVERRIDE { }
- virtual void onAbort(int64_t transactionId, PassRefPtr<DOMError> error) OVERRIDE { }
- virtual void onComplete(int64_t transactionId) OVERRIDE { }
-private:
- FakeIDBDatabaseCallbacks() { }
-};
-
-TEST_F(IDBTransactionTest, EnsureLifetime)
-{
- v8::HandleScope handleScope;
- v8::Context::Scope scope(context());
-
- RefPtr<FakeIDBDatabaseBackendProxy> proxy = FakeIDBDatabaseBackendProxy::create();
- RefPtr<FakeIDBDatabaseCallbacks> connection = FakeIDBDatabaseCallbacks::create();
- RefPtr<IDBDatabase> db = IDBDatabase::create(scriptExecutionContext(), proxy, connection);
-
- const int64_t transactionId = 1234;
- const Vector<String> transactionScope;
- RefPtr<IDBTransaction> transaction = IDBTransaction::create(scriptExecutionContext(), transactionId, transactionScope, IndexedDB::TransactionReadOnly, db.get());
-
- // Local reference, IDBDatabase's reference and IDBPendingTransactionMonitor's reference:
- EXPECT_EQ(3, transaction->refCount());
-
- RefPtr<IDBRequest> request = IDBRequest::create(scriptExecutionContext(), IDBAny::createInvalid(), transaction.get());
- IDBPendingTransactionMonitor::deactivateNewTransactions();
-
- // Local reference, IDBDatabase's reference, and the IDBRequest's reference
- EXPECT_EQ(3, transaction->refCount());
-
- // This will generate an abort() call to the back end which is dropped by the fake proxy,
- // so an explicit onAbort call is made.
- scriptExecutionContext()->stopActiveDOMObjects();
- transaction->onAbort(DOMError::create(AbortError, "Aborted"));
-
- EXPECT_EQ(1, transaction->refCount());
-}
-
-} // namespace
diff --git a/Source/web/tests/PODArenaTest.cpp b/Source/web/tests/PODArenaTest.cpp
deleted file mode 100644
index a23814373..000000000
--- a/Source/web/tests/PODArenaTest.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#include "core/platform/PODArena.h"
-
-#include <gtest/gtest.h>
-#include <algorithm>
-#include "ArenaTestHelpers.h"
-#include "wtf/FastMalloc.h"
-#include "wtf/RefPtr.h"
-#include "wtf/Vector.h"
-
-namespace WebCore {
-
-using ArenaTestHelpers::TrackedAllocator;
-
-namespace {
-
-// A couple of simple structs to allocate.
-struct TestClass1 {
- TestClass1()
- : x(0), y(0), z(0), w(1) { }
-
- float x, y, z, w;
-};
-
-struct TestClass2 {
- TestClass2()
- : a(1), b(2), c(3), d(4) { }
-
- float a, b, c, d;
-};
-
-} // anonymous namespace
-
-class PODArenaTest : public testing::Test {
-};
-
-// Make sure the arena can successfully allocate from more than one
-// region.
-TEST_F(PODArenaTest, CanAllocateFromMoreThanOneRegion)
-{
- RefPtr<TrackedAllocator> allocator = TrackedAllocator::create();
- RefPtr<PODArena> arena = PODArena::create(allocator);
- int numIterations = 10 * PODArena::DefaultChunkSize / sizeof(TestClass1);
- for (int i = 0; i < numIterations; ++i)
- arena->allocateObject<TestClass1>();
- EXPECT_GT(allocator->numRegions(), 1);
-}
-
-// Make sure the arena frees all allocated regions during destruction.
-TEST_F(PODArenaTest, FreesAllAllocatedRegions)
-{
- RefPtr<TrackedAllocator> allocator = TrackedAllocator::create();
- {
- RefPtr<PODArena> arena = PODArena::create(allocator);
- for (int i = 0; i < 3; i++)
- arena->allocateObject<TestClass1>();
- EXPECT_GT(allocator->numRegions(), 0);
- }
- EXPECT_TRUE(allocator->isEmpty());
-}
-
-// Make sure the arena runs constructors of the objects allocated within.
-TEST_F(PODArenaTest, RunsConstructors)
-{
- RefPtr<PODArena> arena = PODArena::create();
- for (int i = 0; i < 10000; i++) {
- TestClass1* tc1 = arena->allocateObject<TestClass1>();
- EXPECT_EQ(0, tc1->x);
- EXPECT_EQ(0, tc1->y);
- EXPECT_EQ(0, tc1->z);
- EXPECT_EQ(1, tc1->w);
- TestClass2* tc2 = arena->allocateObject<TestClass2>();
- EXPECT_EQ(1, tc2->a);
- EXPECT_EQ(2, tc2->b);
- EXPECT_EQ(3, tc2->c);
- EXPECT_EQ(4, tc2->d);
- }
-}
-
-} // namespace WebCore
diff --git a/Source/web/tests/PODIntervalTreeTest.cpp b/Source/web/tests/PODIntervalTreeTest.cpp
deleted file mode 100644
index c241e1cd8..000000000
--- a/Source/web/tests/PODIntervalTreeTest.cpp
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// Tests for the interval tree class.
-
-#include "config.h"
-
-#include "core/platform/PODIntervalTree.h"
-
-#include <gtest/gtest.h>
-#include "TreeTestHelpers.h"
-#include "core/platform/Logging.h"
-#include "wtf/text/WTFString.h"
-#include "wtf/Vector.h"
-
-namespace WebCore {
-
-using TreeTestHelpers::generateSeed;
-using TreeTestHelpers::initRandom;
-using TreeTestHelpers::nextRandom;
-
-#ifndef NDEBUG
-template<>
-struct ValueToString<float> {
- static String string(const float& value) { return String::number(value); }
-};
-
-template<>
-struct ValueToString<void*> {
- static String string(void* const& value)
- {
- return String::format("0x%p", value);
- }
-};
-#endif
-
-TEST(PODIntervalTreeTest, TestInsertion)
-{
- PODIntervalTree<float> tree;
- tree.add(PODInterval<float>(2, 4));
- ASSERT_TRUE(tree.checkInvariants());
-}
-
-TEST(PODIntervalTreeTest, TestInsertionAndQuery)
-{
- PODIntervalTree<float> tree;
- tree.add(PODInterval<float>(2, 4));
- ASSERT_TRUE(tree.checkInvariants());
- Vector<PODInterval<float> > result = tree.allOverlaps(PODInterval<float>(1, 3));
- EXPECT_EQ(1U, result.size());
- EXPECT_EQ(2, result[0].low());
- EXPECT_EQ(4, result[0].high());
-}
-
-TEST(PODIntervalTreeTest, TestQueryAgainstZeroSizeInterval)
-{
- PODIntervalTree<float> tree;
- tree.add(PODInterval<float>(1, 2.5));
- tree.add(PODInterval<float>(3.5, 5));
- tree.add(PODInterval<float>(2, 4));
- ASSERT_TRUE(tree.checkInvariants());
- Vector<PODInterval<float> > result = tree.allOverlaps(PODInterval<float>(3, 3));
- EXPECT_EQ(1U, result.size());
- EXPECT_EQ(2, result[0].low());
- EXPECT_EQ(4, result[0].high());
-}
-
-#ifndef NDEBUG
-template<>
-struct ValueToString<int*> {
- static String string(int* const& value)
- {
- return String::format("0x%p", value);
- }
-};
-#endif
-
-TEST(PODIntervalTreeTest, TestDuplicateElementInsertion)
-{
- PODIntervalTree<float, int*> tree;
- int tmp1 = 1;
- int tmp2 = 2;
- typedef PODIntervalTree<float, int*>::IntervalType IntervalType;
- IntervalType interval1(1, 3, &tmp1);
- IntervalType interval2(1, 3, &tmp2);
- tree.add(interval1);
- tree.add(interval2);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(interval1));
- EXPECT_TRUE(tree.contains(interval2));
- EXPECT_TRUE(tree.remove(interval1));
- EXPECT_TRUE(tree.contains(interval2));
- EXPECT_FALSE(tree.contains(interval1));
- EXPECT_TRUE(tree.remove(interval2));
- EXPECT_EQ(0, tree.size());
-}
-
-namespace {
-
-struct UserData1 {
-public:
- UserData1()
- : a(0), b(1) { }
-
- float a;
- int b;
-};
-
-} // anonymous namespace
-
-#ifndef NDEBUG
-template<>
-struct ValueToString<UserData1> {
- static String string(const UserData1& value)
- {
- return String("[UserData1 a=") + String::number(value.a) + " b=" + String::number(value.b) + "]";
- }
-};
-#endif
-
-TEST(PODIntervalTreeTest, TestInsertionOfComplexUserData)
-{
- PODIntervalTree<float, UserData1> tree;
- UserData1 data1;
- data1.a = 5;
- data1.b = 6;
- tree.add(tree.createInterval(2, 4, data1));
- ASSERT_TRUE(tree.checkInvariants());
-}
-
-TEST(PODIntervalTreeTest, TestQueryingOfComplexUserData)
-{
- PODIntervalTree<float, UserData1> tree;
- UserData1 data1;
- data1.a = 5;
- data1.b = 6;
- tree.add(tree.createInterval(2, 4, data1));
- ASSERT_TRUE(tree.checkInvariants());
- Vector<PODInterval<float, UserData1> > overlaps = tree.allOverlaps(tree.createInterval(3, 5, data1));
- EXPECT_EQ(1U, overlaps.size());
- EXPECT_EQ(5, overlaps[0].data().a);
- EXPECT_EQ(6, overlaps[0].data().b);
-}
-
-namespace {
-
-class EndpointType1 {
-public:
- explicit EndpointType1(int value)
- : m_value(value) { }
-
- int value() const { return m_value; }
-
- bool operator<(const EndpointType1& other) const { return m_value < other.m_value; }
- bool operator==(const EndpointType1& other) const { return m_value == other.m_value; }
-
-private:
- int m_value;
- // These operators should not be called by the interval tree.
- bool operator>(const EndpointType1& other);
- bool operator<=(const EndpointType1& other);
- bool operator>=(const EndpointType1& other);
- bool operator!=(const EndpointType1& other);
-};
-
-} // anonymous namespace
-
-#ifndef NDEBUG
-template<>
-struct ValueToString<EndpointType1> {
- static String string(const EndpointType1& value)
- {
- return String("[EndpointType1 value=") + String::number(value.value()) + "]";
- }
-};
-#endif
-
-TEST(PODIntervalTreeTest, TestTreeDoesNotRequireMostOperators)
-{
- PODIntervalTree<EndpointType1> tree;
- tree.add(tree.createInterval(EndpointType1(1), EndpointType1(2)));
- ASSERT_TRUE(tree.checkInvariants());
-}
-
-// Uncomment to debug a failure of the insertion and deletion test. Won't work
-// in release builds.
-// #define DEBUG_INSERTION_AND_DELETION_TEST
-
-#ifndef NDEBUG
-template<>
-struct ValueToString<int> {
- static String string(const int& value) { return String::number(value); }
-};
-#endif
-
-namespace {
-
-void InsertionAndDeletionTest(int32_t seed, int treeSize)
-{
- initRandom(seed);
- int maximumValue = treeSize;
- // Build the tree
- PODIntervalTree<int> tree;
- Vector<PODInterval<int> > addedElements;
- Vector<PODInterval<int> > removedElements;
- for (int i = 0; i < treeSize; i++) {
- int left = nextRandom(maximumValue);
- int length = nextRandom(maximumValue);
- PODInterval<int> interval(left, left + length);
- tree.add(interval);
-#ifdef DEBUG_INSERTION_AND_DELETION_TEST
- LOG_ERROR("*** Adding element %s", ValueToString<PODInterval<int> >::string(interval).ascii().data());
-#endif
- addedElements.append(interval);
- }
- // Churn the tree's contents.
- // First remove half of the elements in random order.
- for (int i = 0; i < treeSize / 2; i++) {
- int index = nextRandom(addedElements.size());
-#ifdef DEBUG_INSERTION_AND_DELETION_TEST
- LOG_ERROR("*** Removing element %s", ValueToString<PODInterval<int> >::string(addedElements[index]).ascii().data());
-#endif
- ASSERT_TRUE(tree.contains(addedElements[index])) << "Test failed for seed " << seed;
- tree.remove(addedElements[index]);
- removedElements.append(addedElements[index]);
- addedElements.remove(index);
- ASSERT_TRUE(tree.checkInvariants()) << "Test failed for seed " << seed;
- }
- // Now randomly add or remove elements.
- for (int i = 0; i < 2 * treeSize; i++) {
- bool add = false;
- if (!addedElements.size())
- add = true;
- else if (!removedElements.size())
- add = false;
- else
- add = (nextRandom(2) == 1);
- if (add) {
- int index = nextRandom(removedElements.size());
-#ifdef DEBUG_INSERTION_AND_DELETION_TEST
- LOG_ERROR("*** Adding element %s", ValueToString<PODInterval<int> >::string(removedElements[index]).ascii().data());
-#endif
- tree.add(removedElements[index]);
- addedElements.append(removedElements[index]);
- removedElements.remove(index);
- } else {
- int index = nextRandom(addedElements.size());
-#ifdef DEBUG_INSERTION_AND_DELETION_TEST
- LOG_ERROR("*** Removing element %s", ValueToString<PODInterval<int> >::string(addedElements[index]).ascii().data());
-#endif
- ASSERT_TRUE(tree.contains(addedElements[index])) << "Test failed for seed " << seed;
- ASSERT_TRUE(tree.remove(addedElements[index])) << "Test failed for seed " << seed;
- removedElements.append(addedElements[index]);
- addedElements.remove(index);
- }
- ASSERT_TRUE(tree.checkInvariants()) << "Test failed for seed " << seed;
- }
-}
-
-} // anonymous namespace
-
-TEST(PODIntervalTreeTest, RandomDeletionAndInsertionRegressionTest1)
-{
- InsertionAndDeletionTest(13972, 100);
-}
-
-TEST(PODIntervalTreeTest, RandomDeletionAndInsertionRegressionTest2)
-{
- InsertionAndDeletionTest(1283382113, 10);
-}
-
-TEST(PODIntervalTreeTest, RandomDeletionAndInsertionRegressionTest3)
-{
- // This is the sequence of insertions and deletions that triggered
- // the failure in RandomDeletionAndInsertionRegressionTest2.
- PODIntervalTree<int> tree;
- tree.add(tree.createInterval(0, 5));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(4, 5));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(8, 9));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(1, 4));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(3, 5));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(4, 12));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(0, 2));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(0, 2));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(9, 13));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(0, 1));
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(tree.createInterval(0, 2));
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(tree.createInterval(9, 13));
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(tree.createInterval(0, 2));
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(tree.createInterval(0, 1));
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(tree.createInterval(4, 5));
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(tree.createInterval(4, 12));
- ASSERT_TRUE(tree.checkInvariants());
-}
-
-TEST(PODIntervalTreeTest, RandomDeletionAndInsertionRegressionTest4)
-{
- // Even further reduced test case for RandomDeletionAndInsertionRegressionTest3.
- PODIntervalTree<int> tree;
- tree.add(tree.createInterval(0, 5));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(8, 9));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(1, 4));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(3, 5));
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(tree.createInterval(4, 12));
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(tree.createInterval(4, 12));
- ASSERT_TRUE(tree.checkInvariants());
-}
-
-TEST(PODIntervalTreeTest, TestRandomDeletionAndInsertion)
-{
- InsertionAndDeletionTest(generateSeed(), 1000);
-}
-
-} // namespace WebCore
diff --git a/Source/web/tests/PODRedBlackTreeTest.cpp b/Source/web/tests/PODRedBlackTreeTest.cpp
deleted file mode 100644
index 0f1607b55..000000000
--- a/Source/web/tests/PODRedBlackTreeTest.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// Tests for the red-black tree class.
-
-#include "config.h"
-
-#include "core/platform/PODRedBlackTree.h"
-
-#include <gtest/gtest.h>
-#include "ArenaTestHelpers.h"
-#include "TreeTestHelpers.h"
-#include "wtf/Vector.h"
-
-namespace WebCore {
-
-using ArenaTestHelpers::TrackedAllocator;
-using TreeTestHelpers::generateSeed;
-using TreeTestHelpers::initRandom;
-using TreeTestHelpers::nextRandom;
-
-TEST(PODRedBlackTreeTest, TestTreeAllocatesFromArena)
-{
- RefPtr<TrackedAllocator> allocator = TrackedAllocator::create();
- {
- typedef PODFreeListArena<PODRedBlackTree<int>::Node> PODIntegerArena;
- RefPtr<PODIntegerArena> arena = PODIntegerArena::create(allocator);
- PODRedBlackTree<int> tree(arena);
- int numAdditions = 2 * PODArena::DefaultChunkSize / sizeof(int);
- for (int i = 0; i < numAdditions; ++i)
- tree.add(i);
- EXPECT_GT(allocator->numRegions(), 1);
- }
- EXPECT_EQ(allocator->numRegions(), 0);
-}
-
-TEST(PODRedBlackTreeTest, TestSingleElementInsertion)
-{
- PODRedBlackTree<int> tree;
- tree.add(5);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(5));
-}
-
-TEST(PODRedBlackTreeTest, TestMultipleElementInsertion)
-{
- PODRedBlackTree<int> tree;
- tree.add(4);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(4));
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(3));
- tree.add(5);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(5));
- EXPECT_TRUE(tree.contains(4));
- EXPECT_TRUE(tree.contains(3));
-}
-
-TEST(PODRedBlackTreeTest, TestDuplicateElementInsertion)
-{
- PODRedBlackTree<int> tree;
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_EQ(3, tree.size());
- EXPECT_TRUE(tree.contains(3));
-}
-
-TEST(PODRedBlackTreeTest, TestSingleElementInsertionAndDeletion)
-{
- PODRedBlackTree<int> tree;
- tree.add(5);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(5));
- tree.remove(5);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_FALSE(tree.contains(5));
-}
-
-TEST(PODRedBlackTreeTest, TestMultipleElementInsertionAndDeletion)
-{
- PODRedBlackTree<int> tree;
- tree.add(4);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(4));
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(3));
- tree.add(5);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(5));
- EXPECT_TRUE(tree.contains(4));
- EXPECT_TRUE(tree.contains(3));
- tree.remove(4);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(3));
- EXPECT_FALSE(tree.contains(4));
- EXPECT_TRUE(tree.contains(5));
- tree.remove(5);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_TRUE(tree.contains(3));
- EXPECT_FALSE(tree.contains(4));
- EXPECT_FALSE(tree.contains(5));
- EXPECT_EQ(1, tree.size());
-}
-
-TEST(PODRedBlackTreeTest, TestDuplicateElementInsertionAndDeletion)
-{
- PODRedBlackTree<int> tree;
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(3);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_EQ(3, tree.size());
- EXPECT_TRUE(tree.contains(3));
- tree.remove(3);
- ASSERT_TRUE(tree.checkInvariants());
- tree.remove(3);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_EQ(1, tree.size());
- EXPECT_TRUE(tree.contains(3));
- tree.remove(3);
- ASSERT_TRUE(tree.checkInvariants());
- EXPECT_EQ(0, tree.size());
- EXPECT_FALSE(tree.contains(3));
-}
-
-TEST(PODRedBlackTreeTest, FailingInsertionRegressionTest1)
-{
- // These numbers came from a previously-failing randomized test run.
- PODRedBlackTree<int> tree;
- tree.add(5113);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(4517);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(3373);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(9307);
- ASSERT_TRUE(tree.checkInvariants());
- tree.add(7077);
- ASSERT_TRUE(tree.checkInvariants());
-}
-
-namespace {
-void InsertionAndDeletionTest(const int32_t seed, const int treeSize)
-{
- initRandom(seed);
- const int maximumValue = treeSize;
- // Build the tree.
- PODRedBlackTree<int> tree;
- Vector<int> values;
- for (int i = 0; i < treeSize; i++) {
- int value = nextRandom(maximumValue);
- tree.add(value);
- ASSERT_TRUE(tree.checkInvariants()) << "Test failed for seed " << seed;
- values.append(value);
- }
- // Churn the tree's contents.
- for (int i = 0; i < treeSize; i++) {
- // Pick a random value to remove.
- int index = nextRandom(treeSize);
- int value = values[index];
- // Remove this value.
- tree.remove(value);
- ASSERT_TRUE(tree.checkInvariants()) << "Test failed for seed " << seed;
- // Replace it with a new one.
- value = nextRandom(maximumValue);
- values[index] = value;
- tree.add(value);
- ASSERT_TRUE(tree.checkInvariants()) << "Test failed for seed " << seed;
- }
-}
-} // anonymous namespace
-
-TEST(PODRedBlackTreeTest, RandomDeletionAndInsertionRegressionTest1)
-{
- InsertionAndDeletionTest(12311, 100);
-}
-
-TEST(PODRedBlackTreeTest, TestRandomDeletionAndInsertion)
-{
- InsertionAndDeletionTest(generateSeed(), 100);
-}
-
-} // namespace WebCore
diff --git a/Source/web/tests/ScrollAnimatorNoneTest.cpp b/Source/web/tests/ScrollAnimatorNoneTest.cpp
index 3c5da2945..ee27e6e3a 100644
--- a/Source/web/tests/ScrollAnimatorNoneTest.cpp
+++ b/Source/web/tests/ScrollAnimatorNoneTest.cpp
@@ -31,12 +31,12 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
-#include "TreeTestHelpers.h"
#include "core/platform/Logging.h"
#include "core/platform/ScrollAnimator.h"
#include "core/platform/ScrollableArea.h"
#include "core/platform/graphics/FloatPoint.h"
#include "core/platform/graphics/IntRect.h"
+#include "core/tests/TreeTestHelpers.h"
using namespace std;
using namespace WebCore;
@@ -52,7 +52,6 @@ public:
MOCK_CONST_METHOD0(isActive, bool());
MOCK_CONST_METHOD1(scrollSize, int(ScrollbarOrientation));
- MOCK_CONST_METHOD1(scrollPosition, int(Scrollbar*));
MOCK_METHOD2(invalidateScrollbar, void(Scrollbar*, const IntRect&));
MOCK_CONST_METHOD0(isScrollCornerVisible, bool());
MOCK_CONST_METHOD0(scrollCornerRect, IntRect());
@@ -69,10 +68,12 @@ public:
MOCK_CONST_METHOD0(scrollbarsCanBeActive, bool());
MOCK_CONST_METHOD0(scrollableAreaBoundingBox, IntRect());
+ virtual bool userInputScrollable(ScrollbarOrientation) const OVERRIDE { return true; }
virtual IntPoint scrollPosition() const OVERRIDE { return IntPoint(); }
virtual int visibleHeight() const OVERRIDE { return 768; }
virtual int visibleWidth() const OVERRIDE { return 1024; }
virtual bool scrollAnimatorEnabled() const OVERRIDE { return m_scrollAnimatorEnabled; }
+ virtual int pageStep(ScrollbarOrientation) const OVERRIDE { return 0; }
private:
bool m_scrollAnimatorEnabled;
diff --git a/Source/web/tests/TreeTestHelpers.cpp b/Source/web/tests/TreeTestHelpers.cpp
deleted file mode 100644
index 5ace79d49..000000000
--- a/Source/web/tests/TreeTestHelpers.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#include "TreeTestHelpers.h"
-
-#include <cstdlib>
-#include "wtf/CurrentTime.h"
-
-namespace WebCore {
-namespace TreeTestHelpers {
-
-int32_t generateSeed()
-{
- // A seed of 1 has the special behavior of resetting the random
- // number generator. Assume that if we call this routine that we
- // don't want this behavior.
- int32_t seed;
- do {
- seed = static_cast<int32_t>(currentTime());
- } while (seed <= 1);
- return seed;
-}
-
-void initRandom(const int32_t seed)
-{
- srand(seed);
-}
-
-int32_t nextRandom(const int32_t maximumValue)
-{
- // rand_r is not available on Windows
- return rand() % maximumValue;
-}
-
-} // namespace TreeTestHelpers
-} // namespace WebCore
diff --git a/Source/web/tests/TreeTestHelpers.h b/Source/web/tests/TreeTestHelpers.h
deleted file mode 100644
index af07b2ad4..000000000
--- a/Source/web/tests/TreeTestHelpers.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// Simple pseudorandom number generator helper functions, used by the
-// red-black and interval tree tests.
-//
-// These are **not** thread safe!
-
-#ifndef TreeTestHelpers_h
-#define TreeTestHelpers_h
-
-#include <stdint.h>
-
-namespace WebCore {
-namespace TreeTestHelpers {
-
-// Generates a seed value to be passed to initRandom().
-int32_t generateSeed();
-
-// Initializes the pseudo-random number generator with a specific seed.
-void initRandom(const int32_t seed);
-
-// Produces the next pseudo-random number in the sequence, in the
-// range from [0..maximumValue). Negative numbers are not allowed and will
-// produce undefined results.
-int32_t nextRandom(const int32_t maximumValue);
-
-} // namespace TreeTestHelpers
-} // namespace WebCore
-
-#endif // TreeTestHelpers_h
diff --git a/Source/web/tests/WebFrameTest.cpp b/Source/web/tests/WebFrameTest.cpp
index 96601bbcf..39a185d45 100644
--- a/Source/web/tests/WebFrameTest.cpp
+++ b/Source/web/tests/WebFrameTest.cpp
@@ -62,6 +62,7 @@
#include "core/editing/Editor.h"
#include "core/editing/FrameSelection.h"
#include "core/editing/SpellChecker.h"
+#include "core/editing/VisiblePosition.h"
#include "core/html/HTMLFormElement.h"
#include "core/loader/FrameLoadRequest.h"
#include "core/page/EventHandler.h"
@@ -96,6 +97,8 @@ using WebKit::FrameTestHelpers::runPendingTasks;
namespace {
+const int touchPointPadding = 32;
+
#define EXPECT_EQ_RECT(a, b) \
EXPECT_EQ(a.x(), b.x()); \
EXPECT_EQ(a.y(), b.y()); \
@@ -1170,55 +1173,71 @@ TEST_F(WebFrameTest, DivAutoZoomParamsTest)
WebRect wideDiv(200, 100, 400, 150);
WebRect tallDiv(200, 300, 400, 800);
- WebRect doubleTapPointWide(wideDiv.x + 50, wideDiv.y + 50, 0, 0);
- WebRect doubleTapPointTall(tallDiv.x + 50, tallDiv.y + 50, 0, 0);
+ WebRect doubleTapPointWide(wideDiv.x + 50, wideDiv.y + 50, touchPointPadding, touchPointPadding);
+ WebRect doubleTapPointTall(tallDiv.x + 50, tallDiv.y + 50, touchPointPadding, touchPointPadding);
+ WebRect wideBlockBounds;
+ WebRect tallBlockBounds;
float scale;
WebPoint scroll;
- bool isAnchor;
+ bool doubleTapShouldZoomOut;
WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
// Test double-tap zooming into wide div.
- webViewImpl->computeScaleAndScrollForHitRect(doubleTapPointWide, WebViewImpl::DoubleTap, scale, scroll, isAnchor);
+ wideBlockBounds = webViewImpl->computeBlockBounds(doubleTapPointWide, false);
+ webViewImpl->computeScaleAndScrollForBlockRect(wideBlockBounds, touchPointPadding, scale, scroll, doubleTapShouldZoomOut);
// The div should horizontally fill the screen (modulo margins), and
// vertically centered (modulo integer rounding).
EXPECT_NEAR(viewportWidth / (float) wideDiv.width, scale, 0.1);
EXPECT_NEAR(wideDiv.x, scroll.x, 20);
EXPECT_EQ(0, scroll.y);
- EXPECT_FALSE(isAnchor);
+ EXPECT_FALSE(doubleTapShouldZoomOut);
setScaleAndScrollAndLayout(webViewImpl, scroll, scale);
// Test zoom out back to minimum scale.
- webViewImpl->computeScaleAndScrollForHitRect(doubleTapPointWide, WebViewImpl::DoubleTap, scale, scroll, isAnchor);
- EXPECT_FLOAT_EQ(webViewImpl->minimumPageScaleFactor(), scale);
- EXPECT_TRUE(isAnchor);
+ wideBlockBounds = webViewImpl->computeBlockBounds(doubleTapPointWide, false);
+ webViewImpl->computeScaleAndScrollForBlockRect(wideBlockBounds, touchPointPadding, scale, scroll, doubleTapShouldZoomOut);
+ EXPECT_TRUE(doubleTapShouldZoomOut);
+ scale = webViewImpl->minimumPageScaleFactor();
setScaleAndScrollAndLayout(webViewImpl, WebPoint(0, 0), scale);
// Test double-tap zooming into tall div.
- webViewImpl->computeScaleAndScrollForHitRect(doubleTapPointTall, WebViewImpl::DoubleTap, scale, scroll, isAnchor);
+ tallBlockBounds = webViewImpl->computeBlockBounds(doubleTapPointTall, false);
+ webViewImpl->computeScaleAndScrollForBlockRect(tallBlockBounds, touchPointPadding, scale, scroll, doubleTapShouldZoomOut);
// The div should start at the top left of the viewport.
EXPECT_NEAR(viewportWidth / (float) tallDiv.width, scale, 0.1);
EXPECT_NEAR(tallDiv.x, scroll.x, 20);
EXPECT_NEAR(tallDiv.y, scroll.y, 20);
- EXPECT_FALSE(isAnchor);
+ EXPECT_FALSE(doubleTapShouldZoomOut);
// Test for Non-doubletap scaling
// Test zooming into div.
- webViewImpl->computeScaleAndScrollForHitRect(WebRect(250, 250, 10, 10), WebViewImpl::FindInPage, scale, scroll, isAnchor);
+ webViewImpl->computeScaleAndScrollForBlockRect(webViewImpl->computeBlockBounds(WebRect(250, 250, 10, 10), true), 0, scale, scroll, doubleTapShouldZoomOut);
EXPECT_NEAR(viewportWidth / (float) wideDiv.width, scale, 0.1);
}
-void simulateDoubleTap(WebViewImpl* webViewImpl, WebPoint& point, float& scale)
+void simulatePageScale(WebViewImpl* webViewImpl, float& scale)
{
- webViewImpl->animateZoomAroundPoint(point, WebViewImpl::DoubleTap);
- EXPECT_TRUE(webViewImpl->fakeDoubleTapAnimationPendingForTesting());
- WebCore::IntSize scrollDelta = webViewImpl->fakeDoubleTapTargetPositionForTesting() - webViewImpl->mainFrameImpl()->frameView()->scrollPosition();
- float scaleDelta = webViewImpl->fakeDoubleTapPageScaleFactorForTesting() / webViewImpl->pageScaleFactor();
+ WebCore::IntSize scrollDelta = webViewImpl->fakePageScaleAnimationTargetPositionForTesting() - webViewImpl->mainFrameImpl()->frameView()->scrollPosition();
+ float scaleDelta = webViewImpl->fakePageScaleAnimationPageScaleForTesting() / webViewImpl->pageScaleFactor();
webViewImpl->applyScrollAndScale(scrollDelta, scaleDelta);
scale = webViewImpl->pageScaleFactor();
}
+void simulateMultiTargetZoom(WebViewImpl* webViewImpl, const WebRect& rect, float& scale)
+{
+ if (webViewImpl->zoomToMultipleTargetsRect(rect))
+ simulatePageScale(webViewImpl, scale);
+}
+
+void simulateDoubleTap(WebViewImpl* webViewImpl, WebPoint& point, float& scale)
+{
+ webViewImpl->animateDoubleTapZoom(point);
+ EXPECT_TRUE(webViewImpl->fakeDoubleTapAnimationPendingForTesting());
+ simulatePageScale(webViewImpl, scale);
+}
+
TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest)
{
registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html");
@@ -1236,7 +1255,7 @@ TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest)
m_webView->layout();
WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
- webViewImpl->enableFakeDoubleTapAnimationForTesting(true);
+ webViewImpl->enableFakePageScaleAnimationForTesting(true);
WebRect topDiv(200, 100, 200, 150);
WebRect bottomDiv(200, 300, 200, 150);
@@ -1263,7 +1282,7 @@ TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest)
// If we didn't yet get an auto-zoom update and a second double-tap arrives, should go back to minimum scale.
webViewImpl->applyScrollAndScale(WebSize(), 1.1f);
- webViewImpl->animateZoomAroundPoint(topPoint, WebViewImpl::DoubleTap);
+ webViewImpl->animateDoubleTapZoom(topPoint);
EXPECT_TRUE(webViewImpl->fakeDoubleTapAnimationPendingForTesting());
simulateDoubleTap(webViewImpl, bottomPoint, scale);
EXPECT_FLOAT_EQ(webViewImpl->minimumPageScaleFactor(), scale);
@@ -1283,7 +1302,7 @@ TEST_F(WebFrameTest, DivAutoZoomScaleBoundsTest)
m_webView->layout();
WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
- webViewImpl->enableFakeDoubleTapAnimationForTesting(true);
+ webViewImpl->enableFakePageScaleAnimationForTesting(true);
WebRect div(200, 100, 200, 150);
WebPoint doubleTapPoint(div.x + 50, div.y + 50);
@@ -1345,7 +1364,7 @@ TEST_F(WebFrameTest, DivAutoZoomScaleFontScaleFactorTest)
m_webView->layout();
WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
- webViewImpl->enableFakeDoubleTapAnimationForTesting(true);
+ webViewImpl->enableFakePageScaleAnimationForTesting(true);
webViewImpl->page()->settings()->setTextAutosizingFontScaleFactor(textAutosizingFontScaleFactor);
WebRect div(200, 100, 200, 150);
@@ -1409,6 +1428,42 @@ TEST_F(WebFrameTest, DivAutoZoomScaleFontScaleFactorTest)
EXPECT_FLOAT_EQ(legibleScale, scale);
}
+TEST_F(WebFrameTest, DivMultipleTargetZoomMultipleDivsTest)
+{
+ registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html");
+
+ const float deviceScaleFactor = 2.0f;
+ int viewportWidth = 640 / deviceScaleFactor;
+ int viewportHeight = 1280 / deviceScaleFactor;
+ float doubleTapZoomAlreadyLegibleRatio = 1.2f;
+ m_webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom_test.html");
+ m_webView->enableFixedLayoutMode(true);
+ m_webView->resize(WebSize(viewportWidth, viewportHeight));
+ m_webView->setPageScaleFactorLimits(0.5f, 4);
+ m_webView->setDeviceScaleFactor(deviceScaleFactor);
+ m_webView->setPageScaleFactor(0.5f, WebPoint(0, 0));
+ m_webView->layout();
+
+ WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
+ webViewImpl->enableFakePageScaleAnimationForTesting(true);
+
+ WebRect viewportRect(0, 0, viewportWidth, viewportHeight);
+ WebRect topDiv(200, 100, 200, 150);
+ WebRect bottomDiv(200, 300, 200, 150);
+ float scale;
+ setScaleAndScrollAndLayout(webViewImpl, WebPoint(0, 0), (webViewImpl->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyLegibleRatio) / 2);
+
+ simulateMultiTargetZoom(webViewImpl, topDiv, scale);
+ EXPECT_FLOAT_EQ(1, scale);
+ simulateMultiTargetZoom(webViewImpl, bottomDiv, scale);
+ EXPECT_FLOAT_EQ(1, scale);
+ simulateMultiTargetZoom(webViewImpl, viewportRect, scale);
+ EXPECT_FLOAT_EQ(1, scale);
+ webViewImpl->setPageScaleFactor(webViewImpl->minimumPageScaleFactor(), WebPoint(0, 0));
+ simulateMultiTargetZoom(webViewImpl, topDiv, scale);
+ EXPECT_FLOAT_EQ(1, scale);
+}
+
TEST_F(WebFrameTest, DivScrollIntoEditableTest)
{
registerMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html");
@@ -1427,7 +1482,7 @@ TEST_F(WebFrameTest, DivScrollIntoEditableTest)
m_webView->settings()->setAutoZoomFocusedNodeToLegibleScale(true);
WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(m_webView);
- webViewImpl->enableFakeDoubleTapAnimationForTesting(true);
+ webViewImpl->enableFakePageScaleAnimationForTesting(true);
WebRect editBoxWithText(200, 200, 250, 20);
WebRect editBoxWithNoText(200, 250, 250, 20);
@@ -2549,6 +2604,11 @@ TEST_F(WebFrameTest, SelectRangeCanMoveSelectionEnd)
// EXPECT_EQ("Editable 1. Editable 2. ]", selectionAsString(frame));
}
+static int computeOffset(WebCore::RenderObject* renderer, int x, int y)
+{
+ return WebCore::VisiblePosition(renderer->positionForPoint(WebCore::LayoutPoint(x, y))).deepEquivalent().computeOffsetInContainerNode();
+}
+
// positionForPoint returns the wrong values for contenteditable spans. See
// http://crbug.com/238334.
TEST_F(WebFrameTest, DISABLED_PositionForPointTest)
@@ -2557,15 +2617,15 @@ TEST_F(WebFrameTest, DISABLED_PositionForPointTest)
m_webView = createWebViewForTextSelection(m_baseURL + "select_range_span_editable.html");
WebFrameImpl* mainFrame = static_cast<WebFrameImpl*>(m_webView->mainFrame());
WebCore::RenderObject* renderer = mainFrame->frame()->selection()->rootEditableElement()->renderer();
- EXPECT_EQ(0, renderer->positionForPoint(WebCore::LayoutPoint(-1, -1)).deepEquivalent().computeOffsetInContainerNode());
- EXPECT_EQ(64, renderer->positionForPoint(WebCore::LayoutPoint(1000, 1000)).deepEquivalent().computeOffsetInContainerNode());
+ EXPECT_EQ(0, computeOffset(renderer, -1, -1));
+ EXPECT_EQ(64, computeOffset(renderer, 1000, 1000));
registerMockedHttpURLLoad("select_range_div_editable.html");
m_webView = createWebViewForTextSelection(m_baseURL + "select_range_div_editable.html");
mainFrame = static_cast<WebFrameImpl*>(m_webView->mainFrame());
renderer = mainFrame->frame()->selection()->rootEditableElement()->renderer();
- EXPECT_EQ(0, renderer->positionForPoint(WebCore::LayoutPoint(-1, -1)).deepEquivalent().computeOffsetInContainerNode());
- EXPECT_EQ(64, renderer->positionForPoint(WebCore::LayoutPoint(1000, 1000)).deepEquivalent().computeOffsetInContainerNode());
+ EXPECT_EQ(0, computeOffset(renderer, -1, -1));
+ EXPECT_EQ(64, computeOffset(renderer, 1000, 1000));
}
#if !OS(DARWIN)
@@ -3466,5 +3526,30 @@ TEST_F(WebFrameTest, NavigateToSame)
m_webView = 0;
}
+TEST_F(WebFrameTest, WebNodeImageContents)
+{
+ m_webView = FrameTestHelpers::createWebViewAndLoad("about:blank", true);
+ WebFrame* frame = m_webView->mainFrame();
+
+ static const char bluePNG[] = "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYV2NkYPj/n4EIwDiqEF8oUT94AFIQE/cCn90IAAAAAElFTkSuQmCC\">";
+
+ // Load up the image and test that we can extract the contents.
+ WebCore::KURL testURL = toKURL("about:blank");
+ frame->loadHTMLString(bluePNG, testURL);
+ runPendingTasks();
+
+ WebNode node = frame->document().body().firstChild();
+ EXPECT_TRUE(node.isElementNode());
+ WebElement element = node.to<WebElement>();
+ WebImage image = element.imageContents();
+ ASSERT_FALSE(image.isNull());
+ EXPECT_EQ(image.size().width, 10);
+ EXPECT_EQ(image.size().height, 10);
+// FIXME: The rest of this test is disabled since the ImageDecodeCache state may be inconsistent when this test runs.
+// crbug.com/266088
+// SkBitmap bitmap = image.getSkBitmap();
+// SkAutoLockPixels locker(bitmap);
+// EXPECT_EQ(bitmap.getColor(0, 0), SK_ColorBLUE);
+}
} // namespace
diff --git a/Source/web/tests/WebInputEventConversionTest.cpp b/Source/web/tests/WebInputEventConversionTest.cpp
index a4b74a2d6..a65834133 100644
--- a/Source/web/tests/WebInputEventConversionTest.cpp
+++ b/Source/web/tests/WebInputEventConversionTest.cpp
@@ -67,18 +67,18 @@ int getModifiersForKeyLocationCode(WebCore::KeyboardEvent::KeyLocationCode locat
TEST(WebInputEventConversionTest, WebKeyboardEventBuilder)
{
// Test key location conversion.
- int modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOMKeyLocationStandard);
+ int modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_STANDARD);
EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent::IsRight);
- modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOMKeyLocationLeft);
+ modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_LEFT);
EXPECT_TRUE(modifiers & WebInputEvent::IsLeft);
EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEvent::IsRight);
- modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOMKeyLocationRight);
+ modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_RIGHT);
EXPECT_TRUE(modifiers & WebInputEvent::IsRight);
EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEvent::IsLeft);
- modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOMKeyLocationNumpad);
+ modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_NUMPAD);
EXPECT_TRUE(modifiers & WebInputEvent::IsKeyPad);
EXPECT_FALSE(modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent::IsRight);
}
diff --git a/Source/web/tests/WebInputEventFactoryTestGtk.cpp b/Source/web/tests/WebInputEventFactoryTestGtk.cpp
index 47f8cc83d..51a884c23 100644
--- a/Source/web/tests/WebInputEventFactoryTestGtk.cpp
+++ b/Source/web/tests/WebInputEventFactoryTestGtk.cpp
@@ -194,7 +194,7 @@ TEST(WebInputEventFactoryTest, NumPadConversion)
// Round-trip through the WebCore KeyboardEvent class.
WebKit::PlatformKeyboardEventBuilder platformBuilder(webEvent);
RefPtr<WebCore::KeyboardEvent> keypress = WebCore::KeyboardEvent::create(platformBuilder, 0);
- EXPECT_TRUE(keypress->keyLocation() == WebCore::KeyboardEvent::DOMKeyLocationNumpad);
+ EXPECT_TRUE(keypress->location() == WebCore::KeyboardEvent::DOM_KEY_LOCATION_NUMPAD);
WebKit::WebKeyboardEventBuilder builder(*keypress);
EXPECT_TRUE(builder.modifiers & WebInputEvent::IsKeyPad);
diff --git a/Source/web/tests/WebViewTest.cpp b/Source/web/tests/WebViewTest.cpp
index 09bb6cf9a..f0ae503e0 100644
--- a/Source/web/tests/WebViewTest.cpp
+++ b/Source/web/tests/WebViewTest.cpp
@@ -1007,6 +1007,31 @@ TEST_F(WebViewTest, ConfirmCompositionTriggersAutofillTextChange)
webView->close();
}
+TEST_F(WebViewTest, SetCompositionFromExistingTextTriggersAutofillTextChange)
+{
+ URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("input_field_populated.html"));
+ MockAutofillClient client;
+ WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "input_field_populated.html");
+ webView->setAutofillClient(&client);
+ webView->setInitialFocus(false);
+
+ WebVector<WebCompositionUnderline> emptyUnderlines;
+
+ client.clearChangeCounts();
+ webView->setCompositionFromExistingText(8, 12, emptyUnderlines);
+
+ WebTextInputInfo info = webView->textInputInfo();
+ EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", std::string(info.value.utf8().data()));
+ EXPECT_EQ(8, info.compositionStart);
+ EXPECT_EQ(12, info.compositionEnd);
+
+ EXPECT_EQ(0, client.textChangesWhileIgnored());
+ EXPECT_EQ(1, client.textChangesWhileNotIgnored());
+
+ webView->setAutofillClient(0);
+ webView->close();
+}
+
TEST_F(WebViewTest, ShadowRoot)
{
URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("shadow_dom_test.html"));
diff --git a/Source/web/web.gyp b/Source/web/web.gyp
new file mode 100644
index 000000000..de6124ae5
--- /dev/null
+++ b/Source/web/web.gyp
@@ -0,0 +1,320 @@
+#
+# Copyright (C) 2011 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+{
+ 'includes': [
+ '../build/win/precompile.gypi',
+ '../bindings/bindings.gypi',
+ '../core/core.gypi',
+ '../core/features.gypi',
+ '../modules/modules.gypi',
+ '../wtf/wtf.gypi',
+ 'web.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'webkit',
+ 'type': '<(component)',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'dependencies': [
+ '../core/core.gyp:webcore',
+ '../modules/modules.gyp:modules',
+ '<(DEPTH)/skia/skia.gyp:skia',
+ '<(DEPTH)/third_party/angle_dx11/src/build_angle.gyp:translator_glsl',
+ '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
+ '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ 'blink_common',
+ ],
+ 'export_dependent_settings': [
+ '<(DEPTH)/skia/skia.gyp:skia',
+ '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
+ '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ ],
+ 'include_dirs': [
+ '../../public/web',
+ '../web',
+ '<(DEPTH)/third_party/angle_dx11/include',
+ '<(DEPTH)/third_party/skia/include/utils',
+ ],
+ 'defines': [
+ 'WEBKIT_IMPLEMENTATION=1',
+ 'INSIDE_WEBKIT',
+ ],
+ 'sources': [
+ '<@(webcore_platform_support_files)',
+ '<@(web_files)',
+ ],
+ 'conditions': [
+ ['component=="shared_library"', {
+ 'dependencies': [
+ '../core/core.gyp:webcore_derived',
+ '../core/core.gyp:webcore_test_support',
+ '<(DEPTH)/base/base.gyp:test_support_base',
+ '<(DEPTH)/testing/gmock.gyp:gmock',
+ '<(DEPTH)/testing/gtest.gyp:gtest',
+ '<(DEPTH)/third_party/icu/icu.gyp:*',
+ '<(libjpeg_gyp_path):libjpeg',
+ '<(DEPTH)/third_party/libpng/libpng.gyp:libpng',
+ '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp',
+ '<(DEPTH)/third_party/libxml/libxml.gyp:libxml',
+ '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt',
+ '<(DEPTH)/third_party/modp_b64/modp_b64.gyp:modp_b64',
+ '<(DEPTH)/third_party/ots/ots.gyp:ots',
+ '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
+ '<(DEPTH)/url/url.gyp:url_lib',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ # We must not add webkit_support here because of cyclic dependency.
+ ],
+ 'export_dependent_settings': [
+ '<(DEPTH)/url/url.gyp:url_lib',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ ],
+ 'include_dirs': [
+ # WARNING: Do not view this particular case as a precedent for
+ # including WebCore headers in DumpRenderTree project.
+ '../core/testing/v8', # for WebCoreTestSupport.h, needed to link in window.internals code.
+ ],
+ 'sources': [
+ '<@(bindings_unittest_files)',
+ '<@(core_unittest_files)',
+ '<@(modules_unittest_files)',
+ '<@(web_unittest_files)',
+ 'WebTestingSupport.cpp',
+ 'tests/WebUnitTests.cpp', # Components test runner support.
+ ],
+ 'conditions': [
+ ['OS=="win" or OS=="mac"', {
+ 'dependencies': [
+ '<(DEPTH)/third_party/nss/nss.gyp:*',
+ ],
+ }],
+ ['clang==1', {
+ # FIXME: It would be nice to enable this in shared builds too,
+ # but the test files have global constructors from the GTEST macro
+ # and we pull in the test files into the webkit target in the
+ # shared build.
+ 'cflags!': ['-Wglobal-constructors'],
+ 'xcode_settings': {
+ 'WARNING_CFLAGS!': ['-Wglobal-constructors'],
+ },
+ }],
+ ],
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'conditions': [
+ ['incremental_chrome_dll==1', {
+ 'UseLibraryDependencyInputs': "true",
+ }],
+ ],
+ },
+ },
+ }],
+ ['OS == "linux"', {
+ 'dependencies': [
+ '<(DEPTH)/build/linux/system.gyp:fontconfig',
+ ],
+ 'include_dirs': [
+ '../../public/web/linux',
+ ],
+ }, {
+ 'sources/': [
+ ['exclude', 'linux/'],
+ ],
+ }],
+ ['use_x11 == 1', {
+ 'dependencies': [
+ '<(DEPTH)/build/linux/system.gyp:x11',
+ ],
+ 'include_dirs': [
+ '../../public/web/x11',
+ ],
+ }, {
+ 'sources/': [
+ ['exclude', 'x11/'],
+ ]
+ }],
+ ['toolkit_uses_gtk == 1', {
+ 'dependencies': [
+ '<(DEPTH)/build/linux/system.gyp:gtk',
+ ],
+ 'include_dirs': [
+ '../../public/web/gtk',
+ ],
+ }, { # else: toolkit_uses_gtk != 1
+ 'sources/': [
+ ['exclude', 'gtk/'],
+ ],
+ }],
+ ['OS=="android"', {
+ 'include_dirs': [
+ '../../public/web/android',
+ '../../public/web/linux', # We need linux/WebFontRendering.h on Android.
+ ],
+ }, { # else: OS!="android"
+ 'sources/': [
+ ['exclude', 'android/'],
+ ],
+ }],
+ ['OS=="mac"', {
+ 'include_dirs': [
+ '../../public/web/mac',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework',
+ '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
+ ],
+ },
+ }, { # else: OS!="mac"
+ 'sources/': [
+ ['exclude', 'mac/'],
+ ],
+ }],
+ ['OS=="win"', {
+ 'include_dirs': [
+ '../../public/web/win',
+ ],
+ }, { # else: OS!="win"
+ 'sources/': [
+ ['exclude', 'win/']
+ ],
+ 'variables': {
+ # FIXME: Turn on warnings on Windows.
+ 'chromium_code': 1,
+ }
+ }],
+ ['use_default_render_theme==1', {
+ 'include_dirs': [
+ '../../public/web/default',
+ ],
+ }, { # else use_default_render_theme==0
+ 'sources/': [
+ ['exclude', 'default/WebRenderTheme.cpp'],
+ ],
+ }],
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '../../',
+ ],
+ },
+ 'target_conditions': [
+ ['OS=="android"', {
+ 'sources/': [
+ ['include', '^linux/WebFontRendering\\.cpp$'],
+ ['include', '^linux/WebFontRenderStyle\\.cpp$'],
+ ],
+ }],
+ ],
+ },
+ {
+ 'target_name': 'webkit_test_support',
+ 'conditions': [
+ ['component=="shared_library"', {
+ 'type': 'none',
+ }, {
+ 'type': 'static_library',
+ 'dependencies': [
+ '../core/core.gyp:webcore_test_support',
+ '../wtf/wtf.gyp:wtf',
+ '<(DEPTH)/skia/skia.gyp:skia',
+ ],
+ 'include_dirs': [
+ '../../public/web',
+ '../core/testing/v8', # for WebCoreTestSupport.h, needed to link in window.internals code.
+ '../../',
+ ],
+ 'sources': [
+ 'WebTestingSupport.cpp',
+ ],
+ }],
+ ],
+ },
+ {
+ 'target_name': 'blink_common',
+ 'type': '<(component)',
+ 'variables': { 'enable_wexit_time_destructors': 1 },
+ 'dependencies': [
+ '../wtf/wtf.gyp:wtf',
+ '<(DEPTH)/skia/skia.gyp:skia',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ ],
+ 'export_dependent_settings': [
+ '<(DEPTH)/skia/skia.gyp:skia',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ ],
+ 'defines': [
+ 'INSIDE_WEBKIT',
+ 'BLINK_COMMON_IMPLEMENTATION=1',
+ ],
+ 'include_dirs': [
+ '..',
+ '../..',
+ ],
+ 'sources': [
+ '../core/platform/chromium/support/WebCString.cpp',
+ '../core/platform/chromium/support/WebString.cpp',
+ 'WebCommon.cpp',
+ ],
+ },
+ ], # targets
+ 'conditions': [
+ ['gcc_version>=46', {
+ 'target_defaults': {
+ # Disable warnings about c++0x compatibility, as some names (such
+ # as nullptr) conflict with upcoming c++0x types.
+ 'cflags_cc': ['-Wno-c++0x-compat'],
+ },
+ }],
+ ['OS=="mac"', {
+ 'targets': [
+ {
+ 'target_name': 'copy_mesa',
+ 'type': 'none',
+ 'dependencies': ['<(DEPTH)/third_party/mesa/mesa.gyp:osmesa'],
+ 'copies': [{
+ 'destination': '<(PRODUCT_DIR)/DumpRenderTree.app/Contents/MacOS/',
+ 'files': ['<(PRODUCT_DIR)/osmesa.so'],
+ }],
+ },
+ ],
+ }],
+ ['clang==1', {
+ 'target_defaults': {
+ 'cflags': ['-Wglobal-constructors'],
+ 'xcode_settings': {
+ 'WARNING_CFLAGS': ['-Wglobal-constructors'],
+ },
+ },
+ }],
+ ], # conditions
+}
diff --git a/Source/web/web.gypi b/Source/web/web.gypi
index d17dd6aa4..7e967449c 100644
--- a/Source/web/web.gypi
+++ b/Source/web/web.gypi
@@ -48,6 +48,8 @@
'FindInPageCoordinates.h',
'FrameLoaderClientImpl.cpp',
'FrameLoaderClientImpl.h',
+ 'FullscreenController.cpp',
+ 'FullscreenController.h',
'GeolocationClientProxy.cpp',
'GeolocationClientProxy.h',
'GraphicsLayerFactoryChromium.cpp',
@@ -289,7 +291,6 @@
'win/WebInputEventFactory.cpp',
],
'web_unittest_files': [
- 'tests/ArenaTestHelpers.h',
'tests/AssociatedURLLoaderTest.cpp',
'tests/ChromeClientImplTest.cpp',
'tests/CustomEventTest.cpp',
@@ -301,8 +302,6 @@
'tests/FrameTestHelpers.cpp',
'tests/FrameTestHelpers.h',
'tests/GraphicsLayerTest.cpp',
- 'tests/IDBRequestTest.cpp',
- 'tests/IDBTransactionTest.cpp',
'tests/ImageFilterBuilderTest.cpp',
'tests/ImageLayerChromiumTest.cpp',
'tests/KeyboardTest.cpp',
@@ -311,9 +310,6 @@
'tests/MemoryInfo.cpp',
'tests/OpaqueRectTrackingContentLayerDelegateTest.cpp',
'tests/OpenTypeVerticalDataTest.cpp',
- 'tests/PODArenaTest.cpp',
- 'tests/PODIntervalTreeTest.cpp',
- 'tests/PODRedBlackTreeTest.cpp',
'tests/PaintAggregatorTest.cpp',
'tests/PopupContainerTest.cpp',
'tests/PrerenderingTest.cpp',
@@ -323,8 +319,6 @@
'tests/RenderTableCellTest.cpp',
'tests/RenderTableRowTest.cpp',
'tests/ScrollingCoordinatorChromiumTest.cpp',
- 'tests/TreeTestHelpers.cpp',
- 'tests/TreeTestHelpers.h',
'tests/URLTestHelpers.cpp',
'tests/URLTestHelpers.h',
'tests/WebFrameTest.cpp',
diff --git a/Source/web/web_tests.gyp b/Source/web/web_tests.gyp
new file mode 100644
index 000000000..41904b776
--- /dev/null
+++ b/Source/web/web_tests.gyp
@@ -0,0 +1,164 @@
+#
+# Copyright (C) 2011 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+{
+ 'includes': [
+ '../bindings/bindings.gypi',
+ '../core/core.gypi',
+ '../core/features.gypi',
+ '../modules/modules.gypi',
+ '../web/web.gypi',
+ '../wtf/wtf.gypi',
+ ],
+ 'targets': [
+ {
+ 'target_name': 'webkit_unit_tests',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'msvs_guid': '7CEFE800-8403-418A-AD6A-2D52C6FC3EAD',
+ 'dependencies': [
+ '../../public/blink.gyp:blink',
+ '../../Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:DumpRenderTree_resources',
+ '<(DEPTH)/base/base.gyp:base',
+ '<(DEPTH)/base/base.gyp:base_i18n',
+ '<(DEPTH)/base/base.gyp:test_support_base',
+ '<(DEPTH)/testing/gmock.gyp:gmock',
+ '<(DEPTH)/testing/gtest.gyp:gtest',
+ '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp',
+ '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
+ '<(DEPTH)/url/url.gyp:url_lib',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ '<(DEPTH)/content/content.gyp:content_webkit_unit_test_support',
+ ],
+ 'sources': [
+ '../web/tests/RunAllTests.cpp',
+ ],
+ 'include_dirs': [
+ '../../public/web',
+ '../web',
+ 'src',
+ ],
+ 'conditions': [
+ ['component=="shared_library"', {
+ 'defines': [
+ 'WEBKIT_DLL_UNITTEST',
+ ],
+ }, {
+ 'dependencies': [
+ '../core/core.gyp:webcore',
+ ],
+ 'defines': [
+ 'WEBKIT_IMPLEMENTATION=1',
+ 'INSIDE_WEBKIT',
+ ],
+ 'sources': [
+ '<@(bindings_unittest_files)',
+ '<@(core_unittest_files)',
+ '<@(modules_unittest_files)',
+ '<@(web_unittest_files)',
+ ],
+ 'conditions': [
+ ['toolkit_uses_gtk == 1', {
+ 'include_dirs': [
+ '../../public/web/gtk',
+ ],
+ 'variables': {
+ # FIXME: Enable warnings on other platforms.
+ 'chromium_code': 1,
+ },
+ }],
+ ],
+ }],
+ ['OS=="win" and component!="shared_library"', {
+ 'configurations': {
+ 'Debug_Base': {
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
+ },
+ },
+ },
+ },
+ }],
+ ['OS=="android" and gtest_target_type == "shared_library"', {
+ 'type': 'shared_library',
+ 'dependencies': [
+ '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
+ '<(DEPTH)/tools/android/forwarder2/forwarder.gyp:forwarder2',
+ ],
+ }],
+ ['OS=="mac"', {
+ 'include_dirs': [
+ '../../public/web/mac',
+ ],
+ }],
+ [ 'os_posix==1 and OS!="mac" and OS!="android" and OS!="ios" and linux_use_tcmalloc==1', {
+ 'dependencies': [
+ '<(DEPTH)/base/allocator/allocator.gyp:allocator',
+ ],
+ }],
+ ],
+ }
+ ], # targets
+ 'conditions': [
+ ['gcc_version>=46', {
+ 'target_defaults': {
+ # Disable warnings about c++0x compatibility, as some names (such
+ # as nullptr) conflict with upcoming c++0x types.
+ 'cflags_cc': ['-Wno-c++0x-compat'],
+ },
+ }],
+ ['OS=="android" and android_webview_build==0 and gtest_target_type == "shared_library"', {
+ # Wrap libwebkit_unit_tests.so into an android apk for execution.
+ 'targets': [{
+ 'target_name': 'webkit_unit_tests_apk',
+ 'type': 'none',
+ 'dependencies': [
+ '<(DEPTH)/base/base.gyp:base_java',
+ '<(DEPTH)/net/net.gyp:net_java',
+ 'webkit_unit_tests',
+ ],
+ 'variables': {
+ 'test_suite_name': 'webkit_unit_tests',
+ 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)webkit_unit_tests<(SHARED_LIB_SUFFIX)',
+ },
+ 'includes': [ '../../../../build/apk_test.gypi' ],
+ }],
+ }],
+ ['clang==1', {
+ 'target_defaults': {
+ 'cflags': ['-Wunused-parameter'],
+ 'xcode_settings': {
+ 'WARNING_CFLAGS': ['-Wunused-parameter'],
+ },
+ },
+ }],
+ ],
+}
diff --git a/Source/web/webkit.target.darwin-arm.mk b/Source/web/webkit.target.darwin-arm.mk
new file mode 100644
index 000000000..dbf3a6405
--- /dev/null
+++ b/Source/web/webkit.target.darwin-arm.mk
@@ -0,0 +1,622 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_webkit_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,third_party_WebKit_Source_core_webcore_gyp)/webcore.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_WebKit_Source_core_webcore_derived_gyp)/third_party_WebKit_Source_core_webcore_derived_gyp.a \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,GYP,third_party_npapi_npapi_gyp)/npapi.stamp \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/Platform.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebActiveGestureAnimation.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebArrayBuffer.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebAudioBus.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCrypto.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoAlgorithm.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoKey.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCursorInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceMotionData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceOrientationData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebFloatQuad.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPBody.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPLoadInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaConstraints.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStream.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamSource.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamTrack.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerender.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerenderingSupport.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCConfiguration.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCICECandidate.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescription.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescriptionRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsResponse.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCVoidRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeGeometryNative.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSocketStreamError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSourceInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisUtterance.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisVoice.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebThreadSafeData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebTransformKeyframe.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURL.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLResponse.cpp \
+ third_party/WebKit/Source/web/ApplicationCacheHost.cpp \
+ third_party/WebKit/Source/web/AssertMatchingEnums.cpp \
+ third_party/WebKit/Source/web/AssociatedURLLoader.cpp \
+ third_party/WebKit/Source/web/AsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/AsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/AutofillPopupMenuClient.cpp \
+ third_party/WebKit/Source/web/BackForwardClientImpl.cpp \
+ third_party/WebKit/Source/web/ChromeClientImpl.cpp \
+ third_party/WebKit/Source/web/ColorChooserPopupUIController.cpp \
+ third_party/WebKit/Source/web/ColorChooserUIController.cpp \
+ third_party/WebKit/Source/web/CompositionUnderlineVectorBuilder.cpp \
+ third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp \
+ third_party/WebKit/Source/web/ContextMenuClientImpl.cpp \
+ third_party/WebKit/Source/web/DOMUtilitiesPrivate.cpp \
+ third_party/WebKit/Source/web/DatabaseObserver.cpp \
+ third_party/WebKit/Source/web/DateTimeChooserImpl.cpp \
+ third_party/WebKit/Source/web/DeviceOrientationClientProxy.cpp \
+ third_party/WebKit/Source/web/DragClientImpl.cpp \
+ third_party/WebKit/Source/web/EditorClientImpl.cpp \
+ third_party/WebKit/Source/web/EventListenerWrapper.cpp \
+ third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp \
+ third_party/WebKit/Source/web/ExternalPopupMenu.cpp \
+ third_party/WebKit/Source/web/FindInPageCoordinates.cpp \
+ third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp \
+ third_party/WebKit/Source/web/FullscreenController.cpp \
+ third_party/WebKit/Source/web/GeolocationClientProxy.cpp \
+ third_party/WebKit/Source/web/GraphicsLayerFactoryChromium.cpp \
+ third_party/WebKit/Source/web/IDBCursorBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBDatabaseBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBFactoryBackendProxy.cpp \
+ third_party/WebKit/Source/web/InbandTextTrackPrivateImpl.cpp \
+ third_party/WebKit/Source/web/InspectorClientImpl.cpp \
+ third_party/WebKit/Source/web/InspectorFrontendClientImpl.cpp \
+ third_party/WebKit/Source/web/LinkHighlight.cpp \
+ third_party/WebKit/Source/web/LocalFileSystemClient.cpp \
+ third_party/WebKit/Source/web/MIDIClientImpl.cpp \
+ third_party/WebKit/Source/web/MediaSourcePrivateImpl.cpp \
+ third_party/WebKit/Source/web/NotificationPresenterImpl.cpp \
+ third_party/WebKit/Source/web/PageOverlay.cpp \
+ third_party/WebKit/Source/web/PageOverlayList.cpp \
+ third_party/WebKit/Source/web/PageWidgetDelegate.cpp \
+ third_party/WebKit/Source/web/PinchViewports.cpp \
+ third_party/WebKit/Source/web/PopupContainer.cpp \
+ third_party/WebKit/Source/web/PopupListBox.cpp \
+ third_party/WebKit/Source/web/PopupMenuChromium.cpp \
+ third_party/WebKit/Source/web/PrerendererClientImpl.cpp \
+ third_party/WebKit/Source/web/ScrollbarGroup.cpp \
+ third_party/WebKit/Source/web/SharedWorkerRepository.cpp \
+ third_party/WebKit/Source/web/SourceBufferPrivateImpl.cpp \
+ third_party/WebKit/Source/web/SpeechInputClientImpl.cpp \
+ third_party/WebKit/Source/web/SpeechRecognitionClientProxy.cpp \
+ third_party/WebKit/Source/web/StorageAreaProxy.cpp \
+ third_party/WebKit/Source/web/StorageNamespaceProxy.cpp \
+ third_party/WebKit/Source/web/StorageQuotaChromium.cpp \
+ third_party/WebKit/Source/web/UserMediaClientImpl.cpp \
+ third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp \
+ third_party/WebKit/Source/web/ViewportAnchor.cpp \
+ third_party/WebKit/Source/web/WebAccessibilityObject.cpp \
+ third_party/WebKit/Source/web/WebArrayBufferView.cpp \
+ third_party/WebKit/Source/web/WebBindings.cpp \
+ third_party/WebKit/Source/web/WebBlob.cpp \
+ third_party/WebKit/Source/web/WebBlobData.cpp \
+ third_party/WebKit/Source/web/WebCache.cpp \
+ third_party/WebKit/Source/web/WebCachedURLRequest.cpp \
+ third_party/WebKit/Source/web/WebColorName.cpp \
+ third_party/WebKit/Source/web/WebCrossOriginPreflightResultCache.cpp \
+ third_party/WebKit/Source/web/WebDOMActivityLogger.cpp \
+ third_party/WebKit/Source/web/WebDOMCustomEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListener.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListenerPrivate.cpp \
+ third_party/WebKit/Source/web/WebDOMMessageEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMouseEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMutationEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMResourceProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDataSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebDatabase.cpp \
+ third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp \
+ third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientation.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationClientMock.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationController.cpp \
+ third_party/WebKit/Source/web/WebDocument.cpp \
+ third_party/WebKit/Source/web/WebDocumentType.cpp \
+ third_party/WebKit/Source/web/WebDragData.cpp \
+ third_party/WebKit/Source/web/WebElement.cpp \
+ third_party/WebKit/Source/web/WebEntities.cpp \
+ third_party/WebKit/Source/web/WebFileChooserCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebFontCache.cpp \
+ third_party/WebKit/Source/web/WebFontDescription.cpp \
+ third_party/WebKit/Source/web/WebFontImpl.cpp \
+ third_party/WebKit/Source/web/WebFormControlElement.cpp \
+ third_party/WebKit/Source/web/WebFormElement.cpp \
+ third_party/WebKit/Source/web/WebFrameImpl.cpp \
+ third_party/WebKit/Source/web/WebGeolocationClientMock.cpp \
+ third_party/WebKit/Source/web/WebGeolocationController.cpp \
+ third_party/WebKit/Source/web/WebGeolocationError.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequestManager.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPosition.cpp \
+ third_party/WebKit/Source/web/WebGlyphCache.cpp \
+ third_party/WebKit/Source/web/WebHelperPluginImpl.cpp \
+ third_party/WebKit/Source/web/WebHistoryItem.cpp \
+ third_party/WebKit/Source/web/WebHitTestResult.cpp \
+ third_party/WebKit/Source/web/WebIDBCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseError.cpp \
+ third_party/WebKit/Source/web/WebIDBKey.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyPath.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyRange.cpp \
+ third_party/WebKit/Source/web/WebIDBMetadata.cpp \
+ third_party/WebKit/Source/web/WebImageCache.cpp \
+ third_party/WebKit/Source/web/WebImageDecoder.cpp \
+ third_party/WebKit/Source/web/WebImageSkia.cpp \
+ third_party/WebKit/Source/web/WebInputElement.cpp \
+ third_party/WebKit/Source/web/WebInputEvent.cpp \
+ third_party/WebKit/Source/web/WebInputEventConversion.cpp \
+ third_party/WebKit/Source/web/WebKit.cpp \
+ third_party/WebKit/Source/web/WebLabelElement.cpp \
+ third_party/WebKit/Source/web/WebMIDIPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebMediaPlayerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaStreamRegistry.cpp \
+ third_party/WebKit/Source/web/WebNetworkStateNotifier.cpp \
+ third_party/WebKit/Source/web/WebNode.cpp \
+ third_party/WebKit/Source/web/WebNodeCollection.cpp \
+ third_party/WebKit/Source/web/WebNodeList.cpp \
+ third_party/WebKit/Source/web/WebNotification.cpp \
+ third_party/WebKit/Source/web/WebOptionElement.cpp \
+ third_party/WebKit/Source/web/WebPagePopupImpl.cpp \
+ third_party/WebKit/Source/web/WebPageSerializer.cpp \
+ third_party/WebKit/Source/web/WebPageSerializerImpl.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormData.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormUtils.cpp \
+ third_party/WebKit/Source/web/WebPerformance.cpp \
+ third_party/WebKit/Source/web/WebPluginContainerImpl.cpp \
+ third_party/WebKit/Source/web/WebPluginDocument.cpp \
+ third_party/WebKit/Source/web/WebPluginLoadObserver.cpp \
+ third_party/WebKit/Source/web/WebPluginScrollbarImpl.cpp \
+ third_party/WebKit/Source/web/WebPopupMenuImpl.cpp \
+ third_party/WebKit/Source/web/WebRange.cpp \
+ third_party/WebKit/Source/web/WebRuntimeFeatures.cpp \
+ third_party/WebKit/Source/web/WebScopedMicrotaskSuppression.cpp \
+ third_party/WebKit/Source/web/WebScopedUserGesture.cpp \
+ third_party/WebKit/Source/web/WebScriptBindings.cpp \
+ third_party/WebKit/Source/web/WebScriptController.cpp \
+ third_party/WebKit/Source/web/WebScrollbarThemePainter.cpp \
+ third_party/WebKit/Source/web/WebSearchableFormData.cpp \
+ third_party/WebKit/Source/web/WebSecurityOrigin.cpp \
+ third_party/WebKit/Source/web/WebSecurityPolicy.cpp \
+ third_party/WebKit/Source/web/WebSelectElement.cpp \
+ third_party/WebKit/Source/web/WebSerializedScriptValue.cpp \
+ third_party/WebKit/Source/web/WebSettingsImpl.cpp \
+ third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp \
+ third_party/WebKit/Source/web/WebSocket.cpp \
+ third_party/WebKit/Source/web/WebSocketImpl.cpp \
+ third_party/WebKit/Source/web/WebSpeechGrammar.cpp \
+ third_party/WebKit/Source/web/WebSpeechInputResult.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionHandle.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionResult.cpp \
+ third_party/WebKit/Source/web/WebStorageEventDispatcherImpl.cpp \
+ third_party/WebKit/Source/web/WebSurroundingText.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingResult.cpp \
+ third_party/WebKit/Source/web/WebTextInputInfo.cpp \
+ third_party/WebKit/Source/web/WebTextRun.cpp \
+ third_party/WebKit/Source/web/WebURLLoadTiming.cpp \
+ third_party/WebKit/Source/web/WebUserGestureIndicator.cpp \
+ third_party/WebKit/Source/web/WebUserGestureToken.cpp \
+ third_party/WebKit/Source/web/WebUserMediaRequest.cpp \
+ third_party/WebKit/Source/web/WebViewBenchmarkSupportImpl.cpp \
+ third_party/WebKit/Source/web/WebViewImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerBase.cpp \
+ third_party/WebKit/Source/web/WebWorkerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerInfo.cpp \
+ third_party/WebKit/Source/web/WebWorkerRunLoop.cpp \
+ third_party/WebKit/Source/web/WorkerAllowMainThreadBridgeBase.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemClient.cpp \
+ third_party/WebKit/Source/web/WorkerFileWriterCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/android/WebInputEventFactory.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRenderStyle.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRendering.cpp \
+ third_party/WebKit/Source/web/painting/ContinuousPainter.cpp \
+ third_party/WebKit/Source/web/painting/PaintAggregator.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ third_party_WebKit_Source_core_webcore_derived_gyp \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_webkit_gyp
+
+# Alias gyp target name.
+.PHONY: webkit
+webkit: third_party_WebKit_Source_web_webkit_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/webkit.target.darwin-mips.mk b/Source/web/webkit.target.darwin-mips.mk
new file mode 100644
index 000000000..0d3ef852a
--- /dev/null
+++ b/Source/web/webkit.target.darwin-mips.mk
@@ -0,0 +1,616 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_webkit_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,third_party_WebKit_Source_core_webcore_gyp)/webcore.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_WebKit_Source_core_webcore_derived_gyp)/third_party_WebKit_Source_core_webcore_derived_gyp.a \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,GYP,third_party_npapi_npapi_gyp)/npapi.stamp \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/Platform.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebActiveGestureAnimation.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebArrayBuffer.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebAudioBus.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCrypto.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoAlgorithm.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoKey.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCursorInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceMotionData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceOrientationData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebFloatQuad.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPBody.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPLoadInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaConstraints.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStream.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamSource.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamTrack.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerender.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerenderingSupport.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCConfiguration.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCICECandidate.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescription.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescriptionRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsResponse.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCVoidRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeGeometryNative.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSocketStreamError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSourceInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisUtterance.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisVoice.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebThreadSafeData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebTransformKeyframe.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURL.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLResponse.cpp \
+ third_party/WebKit/Source/web/ApplicationCacheHost.cpp \
+ third_party/WebKit/Source/web/AssertMatchingEnums.cpp \
+ third_party/WebKit/Source/web/AssociatedURLLoader.cpp \
+ third_party/WebKit/Source/web/AsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/AsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/AutofillPopupMenuClient.cpp \
+ third_party/WebKit/Source/web/BackForwardClientImpl.cpp \
+ third_party/WebKit/Source/web/ChromeClientImpl.cpp \
+ third_party/WebKit/Source/web/ColorChooserPopupUIController.cpp \
+ third_party/WebKit/Source/web/ColorChooserUIController.cpp \
+ third_party/WebKit/Source/web/CompositionUnderlineVectorBuilder.cpp \
+ third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp \
+ third_party/WebKit/Source/web/ContextMenuClientImpl.cpp \
+ third_party/WebKit/Source/web/DOMUtilitiesPrivate.cpp \
+ third_party/WebKit/Source/web/DatabaseObserver.cpp \
+ third_party/WebKit/Source/web/DateTimeChooserImpl.cpp \
+ third_party/WebKit/Source/web/DeviceOrientationClientProxy.cpp \
+ third_party/WebKit/Source/web/DragClientImpl.cpp \
+ third_party/WebKit/Source/web/EditorClientImpl.cpp \
+ third_party/WebKit/Source/web/EventListenerWrapper.cpp \
+ third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp \
+ third_party/WebKit/Source/web/ExternalPopupMenu.cpp \
+ third_party/WebKit/Source/web/FindInPageCoordinates.cpp \
+ third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp \
+ third_party/WebKit/Source/web/FullscreenController.cpp \
+ third_party/WebKit/Source/web/GeolocationClientProxy.cpp \
+ third_party/WebKit/Source/web/GraphicsLayerFactoryChromium.cpp \
+ third_party/WebKit/Source/web/IDBCursorBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBDatabaseBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBFactoryBackendProxy.cpp \
+ third_party/WebKit/Source/web/InbandTextTrackPrivateImpl.cpp \
+ third_party/WebKit/Source/web/InspectorClientImpl.cpp \
+ third_party/WebKit/Source/web/InspectorFrontendClientImpl.cpp \
+ third_party/WebKit/Source/web/LinkHighlight.cpp \
+ third_party/WebKit/Source/web/LocalFileSystemClient.cpp \
+ third_party/WebKit/Source/web/MIDIClientImpl.cpp \
+ third_party/WebKit/Source/web/MediaSourcePrivateImpl.cpp \
+ third_party/WebKit/Source/web/NotificationPresenterImpl.cpp \
+ third_party/WebKit/Source/web/PageOverlay.cpp \
+ third_party/WebKit/Source/web/PageOverlayList.cpp \
+ third_party/WebKit/Source/web/PageWidgetDelegate.cpp \
+ third_party/WebKit/Source/web/PinchViewports.cpp \
+ third_party/WebKit/Source/web/PopupContainer.cpp \
+ third_party/WebKit/Source/web/PopupListBox.cpp \
+ third_party/WebKit/Source/web/PopupMenuChromium.cpp \
+ third_party/WebKit/Source/web/PrerendererClientImpl.cpp \
+ third_party/WebKit/Source/web/ScrollbarGroup.cpp \
+ third_party/WebKit/Source/web/SharedWorkerRepository.cpp \
+ third_party/WebKit/Source/web/SourceBufferPrivateImpl.cpp \
+ third_party/WebKit/Source/web/SpeechInputClientImpl.cpp \
+ third_party/WebKit/Source/web/SpeechRecognitionClientProxy.cpp \
+ third_party/WebKit/Source/web/StorageAreaProxy.cpp \
+ third_party/WebKit/Source/web/StorageNamespaceProxy.cpp \
+ third_party/WebKit/Source/web/StorageQuotaChromium.cpp \
+ third_party/WebKit/Source/web/UserMediaClientImpl.cpp \
+ third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp \
+ third_party/WebKit/Source/web/ViewportAnchor.cpp \
+ third_party/WebKit/Source/web/WebAccessibilityObject.cpp \
+ third_party/WebKit/Source/web/WebArrayBufferView.cpp \
+ third_party/WebKit/Source/web/WebBindings.cpp \
+ third_party/WebKit/Source/web/WebBlob.cpp \
+ third_party/WebKit/Source/web/WebBlobData.cpp \
+ third_party/WebKit/Source/web/WebCache.cpp \
+ third_party/WebKit/Source/web/WebCachedURLRequest.cpp \
+ third_party/WebKit/Source/web/WebColorName.cpp \
+ third_party/WebKit/Source/web/WebCrossOriginPreflightResultCache.cpp \
+ third_party/WebKit/Source/web/WebDOMActivityLogger.cpp \
+ third_party/WebKit/Source/web/WebDOMCustomEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListener.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListenerPrivate.cpp \
+ third_party/WebKit/Source/web/WebDOMMessageEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMouseEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMutationEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMResourceProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDataSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebDatabase.cpp \
+ third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp \
+ third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientation.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationClientMock.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationController.cpp \
+ third_party/WebKit/Source/web/WebDocument.cpp \
+ third_party/WebKit/Source/web/WebDocumentType.cpp \
+ third_party/WebKit/Source/web/WebDragData.cpp \
+ third_party/WebKit/Source/web/WebElement.cpp \
+ third_party/WebKit/Source/web/WebEntities.cpp \
+ third_party/WebKit/Source/web/WebFileChooserCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebFontCache.cpp \
+ third_party/WebKit/Source/web/WebFontDescription.cpp \
+ third_party/WebKit/Source/web/WebFontImpl.cpp \
+ third_party/WebKit/Source/web/WebFormControlElement.cpp \
+ third_party/WebKit/Source/web/WebFormElement.cpp \
+ third_party/WebKit/Source/web/WebFrameImpl.cpp \
+ third_party/WebKit/Source/web/WebGeolocationClientMock.cpp \
+ third_party/WebKit/Source/web/WebGeolocationController.cpp \
+ third_party/WebKit/Source/web/WebGeolocationError.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequestManager.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPosition.cpp \
+ third_party/WebKit/Source/web/WebGlyphCache.cpp \
+ third_party/WebKit/Source/web/WebHelperPluginImpl.cpp \
+ third_party/WebKit/Source/web/WebHistoryItem.cpp \
+ third_party/WebKit/Source/web/WebHitTestResult.cpp \
+ third_party/WebKit/Source/web/WebIDBCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseError.cpp \
+ third_party/WebKit/Source/web/WebIDBKey.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyPath.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyRange.cpp \
+ third_party/WebKit/Source/web/WebIDBMetadata.cpp \
+ third_party/WebKit/Source/web/WebImageCache.cpp \
+ third_party/WebKit/Source/web/WebImageDecoder.cpp \
+ third_party/WebKit/Source/web/WebImageSkia.cpp \
+ third_party/WebKit/Source/web/WebInputElement.cpp \
+ third_party/WebKit/Source/web/WebInputEvent.cpp \
+ third_party/WebKit/Source/web/WebInputEventConversion.cpp \
+ third_party/WebKit/Source/web/WebKit.cpp \
+ third_party/WebKit/Source/web/WebLabelElement.cpp \
+ third_party/WebKit/Source/web/WebMIDIPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebMediaPlayerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaStreamRegistry.cpp \
+ third_party/WebKit/Source/web/WebNetworkStateNotifier.cpp \
+ third_party/WebKit/Source/web/WebNode.cpp \
+ third_party/WebKit/Source/web/WebNodeCollection.cpp \
+ third_party/WebKit/Source/web/WebNodeList.cpp \
+ third_party/WebKit/Source/web/WebNotification.cpp \
+ third_party/WebKit/Source/web/WebOptionElement.cpp \
+ third_party/WebKit/Source/web/WebPagePopupImpl.cpp \
+ third_party/WebKit/Source/web/WebPageSerializer.cpp \
+ third_party/WebKit/Source/web/WebPageSerializerImpl.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormData.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormUtils.cpp \
+ third_party/WebKit/Source/web/WebPerformance.cpp \
+ third_party/WebKit/Source/web/WebPluginContainerImpl.cpp \
+ third_party/WebKit/Source/web/WebPluginDocument.cpp \
+ third_party/WebKit/Source/web/WebPluginLoadObserver.cpp \
+ third_party/WebKit/Source/web/WebPluginScrollbarImpl.cpp \
+ third_party/WebKit/Source/web/WebPopupMenuImpl.cpp \
+ third_party/WebKit/Source/web/WebRange.cpp \
+ third_party/WebKit/Source/web/WebRuntimeFeatures.cpp \
+ third_party/WebKit/Source/web/WebScopedMicrotaskSuppression.cpp \
+ third_party/WebKit/Source/web/WebScopedUserGesture.cpp \
+ third_party/WebKit/Source/web/WebScriptBindings.cpp \
+ third_party/WebKit/Source/web/WebScriptController.cpp \
+ third_party/WebKit/Source/web/WebScrollbarThemePainter.cpp \
+ third_party/WebKit/Source/web/WebSearchableFormData.cpp \
+ third_party/WebKit/Source/web/WebSecurityOrigin.cpp \
+ third_party/WebKit/Source/web/WebSecurityPolicy.cpp \
+ third_party/WebKit/Source/web/WebSelectElement.cpp \
+ third_party/WebKit/Source/web/WebSerializedScriptValue.cpp \
+ third_party/WebKit/Source/web/WebSettingsImpl.cpp \
+ third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp \
+ third_party/WebKit/Source/web/WebSocket.cpp \
+ third_party/WebKit/Source/web/WebSocketImpl.cpp \
+ third_party/WebKit/Source/web/WebSpeechGrammar.cpp \
+ third_party/WebKit/Source/web/WebSpeechInputResult.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionHandle.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionResult.cpp \
+ third_party/WebKit/Source/web/WebStorageEventDispatcherImpl.cpp \
+ third_party/WebKit/Source/web/WebSurroundingText.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingResult.cpp \
+ third_party/WebKit/Source/web/WebTextInputInfo.cpp \
+ third_party/WebKit/Source/web/WebTextRun.cpp \
+ third_party/WebKit/Source/web/WebURLLoadTiming.cpp \
+ third_party/WebKit/Source/web/WebUserGestureIndicator.cpp \
+ third_party/WebKit/Source/web/WebUserGestureToken.cpp \
+ third_party/WebKit/Source/web/WebUserMediaRequest.cpp \
+ third_party/WebKit/Source/web/WebViewBenchmarkSupportImpl.cpp \
+ third_party/WebKit/Source/web/WebViewImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerBase.cpp \
+ third_party/WebKit/Source/web/WebWorkerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerInfo.cpp \
+ third_party/WebKit/Source/web/WebWorkerRunLoop.cpp \
+ third_party/WebKit/Source/web/WorkerAllowMainThreadBridgeBase.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemClient.cpp \
+ third_party/WebKit/Source/web/WorkerFileWriterCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/android/WebInputEventFactory.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRenderStyle.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRendering.cpp \
+ third_party/WebKit/Source/web/painting/ContinuousPainter.cpp \
+ third_party/WebKit/Source/web/painting/PaintAggregator.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ third_party_WebKit_Source_core_webcore_derived_gyp \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_webkit_gyp
+
+# Alias gyp target name.
+.PHONY: webkit
+webkit: third_party_WebKit_Source_web_webkit_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/webkit.target.darwin-x86.mk b/Source/web/webkit.target.darwin-x86.mk
new file mode 100644
index 000000000..2c4a7772e
--- /dev/null
+++ b/Source/web/webkit.target.darwin-x86.mk
@@ -0,0 +1,622 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_webkit_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,third_party_WebKit_Source_core_webcore_gyp)/webcore.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_WebKit_Source_core_webcore_derived_gyp)/third_party_WebKit_Source_core_webcore_derived_gyp.a \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,GYP,third_party_npapi_npapi_gyp)/npapi.stamp \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/Platform.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebActiveGestureAnimation.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebArrayBuffer.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebAudioBus.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCrypto.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoAlgorithm.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoKey.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCursorInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceMotionData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceOrientationData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebFloatQuad.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPBody.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPLoadInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaConstraints.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStream.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamSource.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamTrack.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerender.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerenderingSupport.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCConfiguration.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCICECandidate.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescription.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescriptionRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsResponse.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCVoidRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeGeometryNative.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSocketStreamError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSourceInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisUtterance.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisVoice.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebThreadSafeData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebTransformKeyframe.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURL.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLResponse.cpp \
+ third_party/WebKit/Source/web/ApplicationCacheHost.cpp \
+ third_party/WebKit/Source/web/AssertMatchingEnums.cpp \
+ third_party/WebKit/Source/web/AssociatedURLLoader.cpp \
+ third_party/WebKit/Source/web/AsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/AsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/AutofillPopupMenuClient.cpp \
+ third_party/WebKit/Source/web/BackForwardClientImpl.cpp \
+ third_party/WebKit/Source/web/ChromeClientImpl.cpp \
+ third_party/WebKit/Source/web/ColorChooserPopupUIController.cpp \
+ third_party/WebKit/Source/web/ColorChooserUIController.cpp \
+ third_party/WebKit/Source/web/CompositionUnderlineVectorBuilder.cpp \
+ third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp \
+ third_party/WebKit/Source/web/ContextMenuClientImpl.cpp \
+ third_party/WebKit/Source/web/DOMUtilitiesPrivate.cpp \
+ third_party/WebKit/Source/web/DatabaseObserver.cpp \
+ third_party/WebKit/Source/web/DateTimeChooserImpl.cpp \
+ third_party/WebKit/Source/web/DeviceOrientationClientProxy.cpp \
+ third_party/WebKit/Source/web/DragClientImpl.cpp \
+ third_party/WebKit/Source/web/EditorClientImpl.cpp \
+ third_party/WebKit/Source/web/EventListenerWrapper.cpp \
+ third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp \
+ third_party/WebKit/Source/web/ExternalPopupMenu.cpp \
+ third_party/WebKit/Source/web/FindInPageCoordinates.cpp \
+ third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp \
+ third_party/WebKit/Source/web/FullscreenController.cpp \
+ third_party/WebKit/Source/web/GeolocationClientProxy.cpp \
+ third_party/WebKit/Source/web/GraphicsLayerFactoryChromium.cpp \
+ third_party/WebKit/Source/web/IDBCursorBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBDatabaseBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBFactoryBackendProxy.cpp \
+ third_party/WebKit/Source/web/InbandTextTrackPrivateImpl.cpp \
+ third_party/WebKit/Source/web/InspectorClientImpl.cpp \
+ third_party/WebKit/Source/web/InspectorFrontendClientImpl.cpp \
+ third_party/WebKit/Source/web/LinkHighlight.cpp \
+ third_party/WebKit/Source/web/LocalFileSystemClient.cpp \
+ third_party/WebKit/Source/web/MIDIClientImpl.cpp \
+ third_party/WebKit/Source/web/MediaSourcePrivateImpl.cpp \
+ third_party/WebKit/Source/web/NotificationPresenterImpl.cpp \
+ third_party/WebKit/Source/web/PageOverlay.cpp \
+ third_party/WebKit/Source/web/PageOverlayList.cpp \
+ third_party/WebKit/Source/web/PageWidgetDelegate.cpp \
+ third_party/WebKit/Source/web/PinchViewports.cpp \
+ third_party/WebKit/Source/web/PopupContainer.cpp \
+ third_party/WebKit/Source/web/PopupListBox.cpp \
+ third_party/WebKit/Source/web/PopupMenuChromium.cpp \
+ third_party/WebKit/Source/web/PrerendererClientImpl.cpp \
+ third_party/WebKit/Source/web/ScrollbarGroup.cpp \
+ third_party/WebKit/Source/web/SharedWorkerRepository.cpp \
+ third_party/WebKit/Source/web/SourceBufferPrivateImpl.cpp \
+ third_party/WebKit/Source/web/SpeechInputClientImpl.cpp \
+ third_party/WebKit/Source/web/SpeechRecognitionClientProxy.cpp \
+ third_party/WebKit/Source/web/StorageAreaProxy.cpp \
+ third_party/WebKit/Source/web/StorageNamespaceProxy.cpp \
+ third_party/WebKit/Source/web/StorageQuotaChromium.cpp \
+ third_party/WebKit/Source/web/UserMediaClientImpl.cpp \
+ third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp \
+ third_party/WebKit/Source/web/ViewportAnchor.cpp \
+ third_party/WebKit/Source/web/WebAccessibilityObject.cpp \
+ third_party/WebKit/Source/web/WebArrayBufferView.cpp \
+ third_party/WebKit/Source/web/WebBindings.cpp \
+ third_party/WebKit/Source/web/WebBlob.cpp \
+ third_party/WebKit/Source/web/WebBlobData.cpp \
+ third_party/WebKit/Source/web/WebCache.cpp \
+ third_party/WebKit/Source/web/WebCachedURLRequest.cpp \
+ third_party/WebKit/Source/web/WebColorName.cpp \
+ third_party/WebKit/Source/web/WebCrossOriginPreflightResultCache.cpp \
+ third_party/WebKit/Source/web/WebDOMActivityLogger.cpp \
+ third_party/WebKit/Source/web/WebDOMCustomEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListener.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListenerPrivate.cpp \
+ third_party/WebKit/Source/web/WebDOMMessageEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMouseEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMutationEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMResourceProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDataSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebDatabase.cpp \
+ third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp \
+ third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientation.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationClientMock.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationController.cpp \
+ third_party/WebKit/Source/web/WebDocument.cpp \
+ third_party/WebKit/Source/web/WebDocumentType.cpp \
+ third_party/WebKit/Source/web/WebDragData.cpp \
+ third_party/WebKit/Source/web/WebElement.cpp \
+ third_party/WebKit/Source/web/WebEntities.cpp \
+ third_party/WebKit/Source/web/WebFileChooserCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebFontCache.cpp \
+ third_party/WebKit/Source/web/WebFontDescription.cpp \
+ third_party/WebKit/Source/web/WebFontImpl.cpp \
+ third_party/WebKit/Source/web/WebFormControlElement.cpp \
+ third_party/WebKit/Source/web/WebFormElement.cpp \
+ third_party/WebKit/Source/web/WebFrameImpl.cpp \
+ third_party/WebKit/Source/web/WebGeolocationClientMock.cpp \
+ third_party/WebKit/Source/web/WebGeolocationController.cpp \
+ third_party/WebKit/Source/web/WebGeolocationError.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequestManager.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPosition.cpp \
+ third_party/WebKit/Source/web/WebGlyphCache.cpp \
+ third_party/WebKit/Source/web/WebHelperPluginImpl.cpp \
+ third_party/WebKit/Source/web/WebHistoryItem.cpp \
+ third_party/WebKit/Source/web/WebHitTestResult.cpp \
+ third_party/WebKit/Source/web/WebIDBCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseError.cpp \
+ third_party/WebKit/Source/web/WebIDBKey.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyPath.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyRange.cpp \
+ third_party/WebKit/Source/web/WebIDBMetadata.cpp \
+ third_party/WebKit/Source/web/WebImageCache.cpp \
+ third_party/WebKit/Source/web/WebImageDecoder.cpp \
+ third_party/WebKit/Source/web/WebImageSkia.cpp \
+ third_party/WebKit/Source/web/WebInputElement.cpp \
+ third_party/WebKit/Source/web/WebInputEvent.cpp \
+ third_party/WebKit/Source/web/WebInputEventConversion.cpp \
+ third_party/WebKit/Source/web/WebKit.cpp \
+ third_party/WebKit/Source/web/WebLabelElement.cpp \
+ third_party/WebKit/Source/web/WebMIDIPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebMediaPlayerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaStreamRegistry.cpp \
+ third_party/WebKit/Source/web/WebNetworkStateNotifier.cpp \
+ third_party/WebKit/Source/web/WebNode.cpp \
+ third_party/WebKit/Source/web/WebNodeCollection.cpp \
+ third_party/WebKit/Source/web/WebNodeList.cpp \
+ third_party/WebKit/Source/web/WebNotification.cpp \
+ third_party/WebKit/Source/web/WebOptionElement.cpp \
+ third_party/WebKit/Source/web/WebPagePopupImpl.cpp \
+ third_party/WebKit/Source/web/WebPageSerializer.cpp \
+ third_party/WebKit/Source/web/WebPageSerializerImpl.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormData.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormUtils.cpp \
+ third_party/WebKit/Source/web/WebPerformance.cpp \
+ third_party/WebKit/Source/web/WebPluginContainerImpl.cpp \
+ third_party/WebKit/Source/web/WebPluginDocument.cpp \
+ third_party/WebKit/Source/web/WebPluginLoadObserver.cpp \
+ third_party/WebKit/Source/web/WebPluginScrollbarImpl.cpp \
+ third_party/WebKit/Source/web/WebPopupMenuImpl.cpp \
+ third_party/WebKit/Source/web/WebRange.cpp \
+ third_party/WebKit/Source/web/WebRuntimeFeatures.cpp \
+ third_party/WebKit/Source/web/WebScopedMicrotaskSuppression.cpp \
+ third_party/WebKit/Source/web/WebScopedUserGesture.cpp \
+ third_party/WebKit/Source/web/WebScriptBindings.cpp \
+ third_party/WebKit/Source/web/WebScriptController.cpp \
+ third_party/WebKit/Source/web/WebScrollbarThemePainter.cpp \
+ third_party/WebKit/Source/web/WebSearchableFormData.cpp \
+ third_party/WebKit/Source/web/WebSecurityOrigin.cpp \
+ third_party/WebKit/Source/web/WebSecurityPolicy.cpp \
+ third_party/WebKit/Source/web/WebSelectElement.cpp \
+ third_party/WebKit/Source/web/WebSerializedScriptValue.cpp \
+ third_party/WebKit/Source/web/WebSettingsImpl.cpp \
+ third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp \
+ third_party/WebKit/Source/web/WebSocket.cpp \
+ third_party/WebKit/Source/web/WebSocketImpl.cpp \
+ third_party/WebKit/Source/web/WebSpeechGrammar.cpp \
+ third_party/WebKit/Source/web/WebSpeechInputResult.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionHandle.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionResult.cpp \
+ third_party/WebKit/Source/web/WebStorageEventDispatcherImpl.cpp \
+ third_party/WebKit/Source/web/WebSurroundingText.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingResult.cpp \
+ third_party/WebKit/Source/web/WebTextInputInfo.cpp \
+ third_party/WebKit/Source/web/WebTextRun.cpp \
+ third_party/WebKit/Source/web/WebURLLoadTiming.cpp \
+ third_party/WebKit/Source/web/WebUserGestureIndicator.cpp \
+ third_party/WebKit/Source/web/WebUserGestureToken.cpp \
+ third_party/WebKit/Source/web/WebUserMediaRequest.cpp \
+ third_party/WebKit/Source/web/WebViewBenchmarkSupportImpl.cpp \
+ third_party/WebKit/Source/web/WebViewImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerBase.cpp \
+ third_party/WebKit/Source/web/WebWorkerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerInfo.cpp \
+ third_party/WebKit/Source/web/WebWorkerRunLoop.cpp \
+ third_party/WebKit/Source/web/WorkerAllowMainThreadBridgeBase.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemClient.cpp \
+ third_party/WebKit/Source/web/WorkerFileWriterCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/android/WebInputEventFactory.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRenderStyle.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRendering.cpp \
+ third_party/WebKit/Source/web/painting/ContinuousPainter.cpp \
+ third_party/WebKit/Source/web/painting/PaintAggregator.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer \
+ -fno-unwind-tables \
+ -fno-asynchronous-unwind-tables
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ third_party_WebKit_Source_core_webcore_derived_gyp \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_webkit_gyp
+
+# Alias gyp target name.
+.PHONY: webkit
+webkit: third_party_WebKit_Source_web_webkit_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/webkit.target.linux-arm.mk b/Source/web/webkit.target.linux-arm.mk
new file mode 100644
index 000000000..dbf3a6405
--- /dev/null
+++ b/Source/web/webkit.target.linux-arm.mk
@@ -0,0 +1,622 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_webkit_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,third_party_WebKit_Source_core_webcore_gyp)/webcore.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_WebKit_Source_core_webcore_derived_gyp)/third_party_WebKit_Source_core_webcore_derived_gyp.a \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,GYP,third_party_npapi_npapi_gyp)/npapi.stamp \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/Platform.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebActiveGestureAnimation.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebArrayBuffer.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebAudioBus.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCrypto.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoAlgorithm.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoKey.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCursorInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceMotionData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceOrientationData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebFloatQuad.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPBody.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPLoadInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaConstraints.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStream.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamSource.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamTrack.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerender.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerenderingSupport.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCConfiguration.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCICECandidate.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescription.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescriptionRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsResponse.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCVoidRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeGeometryNative.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSocketStreamError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSourceInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisUtterance.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisVoice.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebThreadSafeData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebTransformKeyframe.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURL.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLResponse.cpp \
+ third_party/WebKit/Source/web/ApplicationCacheHost.cpp \
+ third_party/WebKit/Source/web/AssertMatchingEnums.cpp \
+ third_party/WebKit/Source/web/AssociatedURLLoader.cpp \
+ third_party/WebKit/Source/web/AsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/AsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/AutofillPopupMenuClient.cpp \
+ third_party/WebKit/Source/web/BackForwardClientImpl.cpp \
+ third_party/WebKit/Source/web/ChromeClientImpl.cpp \
+ third_party/WebKit/Source/web/ColorChooserPopupUIController.cpp \
+ third_party/WebKit/Source/web/ColorChooserUIController.cpp \
+ third_party/WebKit/Source/web/CompositionUnderlineVectorBuilder.cpp \
+ third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp \
+ third_party/WebKit/Source/web/ContextMenuClientImpl.cpp \
+ third_party/WebKit/Source/web/DOMUtilitiesPrivate.cpp \
+ third_party/WebKit/Source/web/DatabaseObserver.cpp \
+ third_party/WebKit/Source/web/DateTimeChooserImpl.cpp \
+ third_party/WebKit/Source/web/DeviceOrientationClientProxy.cpp \
+ third_party/WebKit/Source/web/DragClientImpl.cpp \
+ third_party/WebKit/Source/web/EditorClientImpl.cpp \
+ third_party/WebKit/Source/web/EventListenerWrapper.cpp \
+ third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp \
+ third_party/WebKit/Source/web/ExternalPopupMenu.cpp \
+ third_party/WebKit/Source/web/FindInPageCoordinates.cpp \
+ third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp \
+ third_party/WebKit/Source/web/FullscreenController.cpp \
+ third_party/WebKit/Source/web/GeolocationClientProxy.cpp \
+ third_party/WebKit/Source/web/GraphicsLayerFactoryChromium.cpp \
+ third_party/WebKit/Source/web/IDBCursorBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBDatabaseBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBFactoryBackendProxy.cpp \
+ third_party/WebKit/Source/web/InbandTextTrackPrivateImpl.cpp \
+ third_party/WebKit/Source/web/InspectorClientImpl.cpp \
+ third_party/WebKit/Source/web/InspectorFrontendClientImpl.cpp \
+ third_party/WebKit/Source/web/LinkHighlight.cpp \
+ third_party/WebKit/Source/web/LocalFileSystemClient.cpp \
+ third_party/WebKit/Source/web/MIDIClientImpl.cpp \
+ third_party/WebKit/Source/web/MediaSourcePrivateImpl.cpp \
+ third_party/WebKit/Source/web/NotificationPresenterImpl.cpp \
+ third_party/WebKit/Source/web/PageOverlay.cpp \
+ third_party/WebKit/Source/web/PageOverlayList.cpp \
+ third_party/WebKit/Source/web/PageWidgetDelegate.cpp \
+ third_party/WebKit/Source/web/PinchViewports.cpp \
+ third_party/WebKit/Source/web/PopupContainer.cpp \
+ third_party/WebKit/Source/web/PopupListBox.cpp \
+ third_party/WebKit/Source/web/PopupMenuChromium.cpp \
+ third_party/WebKit/Source/web/PrerendererClientImpl.cpp \
+ third_party/WebKit/Source/web/ScrollbarGroup.cpp \
+ third_party/WebKit/Source/web/SharedWorkerRepository.cpp \
+ third_party/WebKit/Source/web/SourceBufferPrivateImpl.cpp \
+ third_party/WebKit/Source/web/SpeechInputClientImpl.cpp \
+ third_party/WebKit/Source/web/SpeechRecognitionClientProxy.cpp \
+ third_party/WebKit/Source/web/StorageAreaProxy.cpp \
+ third_party/WebKit/Source/web/StorageNamespaceProxy.cpp \
+ third_party/WebKit/Source/web/StorageQuotaChromium.cpp \
+ third_party/WebKit/Source/web/UserMediaClientImpl.cpp \
+ third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp \
+ third_party/WebKit/Source/web/ViewportAnchor.cpp \
+ third_party/WebKit/Source/web/WebAccessibilityObject.cpp \
+ third_party/WebKit/Source/web/WebArrayBufferView.cpp \
+ third_party/WebKit/Source/web/WebBindings.cpp \
+ third_party/WebKit/Source/web/WebBlob.cpp \
+ third_party/WebKit/Source/web/WebBlobData.cpp \
+ third_party/WebKit/Source/web/WebCache.cpp \
+ third_party/WebKit/Source/web/WebCachedURLRequest.cpp \
+ third_party/WebKit/Source/web/WebColorName.cpp \
+ third_party/WebKit/Source/web/WebCrossOriginPreflightResultCache.cpp \
+ third_party/WebKit/Source/web/WebDOMActivityLogger.cpp \
+ third_party/WebKit/Source/web/WebDOMCustomEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListener.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListenerPrivate.cpp \
+ third_party/WebKit/Source/web/WebDOMMessageEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMouseEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMutationEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMResourceProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDataSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebDatabase.cpp \
+ third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp \
+ third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientation.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationClientMock.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationController.cpp \
+ third_party/WebKit/Source/web/WebDocument.cpp \
+ third_party/WebKit/Source/web/WebDocumentType.cpp \
+ third_party/WebKit/Source/web/WebDragData.cpp \
+ third_party/WebKit/Source/web/WebElement.cpp \
+ third_party/WebKit/Source/web/WebEntities.cpp \
+ third_party/WebKit/Source/web/WebFileChooserCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebFontCache.cpp \
+ third_party/WebKit/Source/web/WebFontDescription.cpp \
+ third_party/WebKit/Source/web/WebFontImpl.cpp \
+ third_party/WebKit/Source/web/WebFormControlElement.cpp \
+ third_party/WebKit/Source/web/WebFormElement.cpp \
+ third_party/WebKit/Source/web/WebFrameImpl.cpp \
+ third_party/WebKit/Source/web/WebGeolocationClientMock.cpp \
+ third_party/WebKit/Source/web/WebGeolocationController.cpp \
+ third_party/WebKit/Source/web/WebGeolocationError.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequestManager.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPosition.cpp \
+ third_party/WebKit/Source/web/WebGlyphCache.cpp \
+ third_party/WebKit/Source/web/WebHelperPluginImpl.cpp \
+ third_party/WebKit/Source/web/WebHistoryItem.cpp \
+ third_party/WebKit/Source/web/WebHitTestResult.cpp \
+ third_party/WebKit/Source/web/WebIDBCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseError.cpp \
+ third_party/WebKit/Source/web/WebIDBKey.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyPath.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyRange.cpp \
+ third_party/WebKit/Source/web/WebIDBMetadata.cpp \
+ third_party/WebKit/Source/web/WebImageCache.cpp \
+ third_party/WebKit/Source/web/WebImageDecoder.cpp \
+ third_party/WebKit/Source/web/WebImageSkia.cpp \
+ third_party/WebKit/Source/web/WebInputElement.cpp \
+ third_party/WebKit/Source/web/WebInputEvent.cpp \
+ third_party/WebKit/Source/web/WebInputEventConversion.cpp \
+ third_party/WebKit/Source/web/WebKit.cpp \
+ third_party/WebKit/Source/web/WebLabelElement.cpp \
+ third_party/WebKit/Source/web/WebMIDIPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebMediaPlayerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaStreamRegistry.cpp \
+ third_party/WebKit/Source/web/WebNetworkStateNotifier.cpp \
+ third_party/WebKit/Source/web/WebNode.cpp \
+ third_party/WebKit/Source/web/WebNodeCollection.cpp \
+ third_party/WebKit/Source/web/WebNodeList.cpp \
+ third_party/WebKit/Source/web/WebNotification.cpp \
+ third_party/WebKit/Source/web/WebOptionElement.cpp \
+ third_party/WebKit/Source/web/WebPagePopupImpl.cpp \
+ third_party/WebKit/Source/web/WebPageSerializer.cpp \
+ third_party/WebKit/Source/web/WebPageSerializerImpl.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormData.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormUtils.cpp \
+ third_party/WebKit/Source/web/WebPerformance.cpp \
+ third_party/WebKit/Source/web/WebPluginContainerImpl.cpp \
+ third_party/WebKit/Source/web/WebPluginDocument.cpp \
+ third_party/WebKit/Source/web/WebPluginLoadObserver.cpp \
+ third_party/WebKit/Source/web/WebPluginScrollbarImpl.cpp \
+ third_party/WebKit/Source/web/WebPopupMenuImpl.cpp \
+ third_party/WebKit/Source/web/WebRange.cpp \
+ third_party/WebKit/Source/web/WebRuntimeFeatures.cpp \
+ third_party/WebKit/Source/web/WebScopedMicrotaskSuppression.cpp \
+ third_party/WebKit/Source/web/WebScopedUserGesture.cpp \
+ third_party/WebKit/Source/web/WebScriptBindings.cpp \
+ third_party/WebKit/Source/web/WebScriptController.cpp \
+ third_party/WebKit/Source/web/WebScrollbarThemePainter.cpp \
+ third_party/WebKit/Source/web/WebSearchableFormData.cpp \
+ third_party/WebKit/Source/web/WebSecurityOrigin.cpp \
+ third_party/WebKit/Source/web/WebSecurityPolicy.cpp \
+ third_party/WebKit/Source/web/WebSelectElement.cpp \
+ third_party/WebKit/Source/web/WebSerializedScriptValue.cpp \
+ third_party/WebKit/Source/web/WebSettingsImpl.cpp \
+ third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp \
+ third_party/WebKit/Source/web/WebSocket.cpp \
+ third_party/WebKit/Source/web/WebSocketImpl.cpp \
+ third_party/WebKit/Source/web/WebSpeechGrammar.cpp \
+ third_party/WebKit/Source/web/WebSpeechInputResult.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionHandle.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionResult.cpp \
+ third_party/WebKit/Source/web/WebStorageEventDispatcherImpl.cpp \
+ third_party/WebKit/Source/web/WebSurroundingText.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingResult.cpp \
+ third_party/WebKit/Source/web/WebTextInputInfo.cpp \
+ third_party/WebKit/Source/web/WebTextRun.cpp \
+ third_party/WebKit/Source/web/WebURLLoadTiming.cpp \
+ third_party/WebKit/Source/web/WebUserGestureIndicator.cpp \
+ third_party/WebKit/Source/web/WebUserGestureToken.cpp \
+ third_party/WebKit/Source/web/WebUserMediaRequest.cpp \
+ third_party/WebKit/Source/web/WebViewBenchmarkSupportImpl.cpp \
+ third_party/WebKit/Source/web/WebViewImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerBase.cpp \
+ third_party/WebKit/Source/web/WebWorkerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerInfo.cpp \
+ third_party/WebKit/Source/web/WebWorkerRunLoop.cpp \
+ third_party/WebKit/Source/web/WorkerAllowMainThreadBridgeBase.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemClient.cpp \
+ third_party/WebKit/Source/web/WorkerFileWriterCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/android/WebInputEventFactory.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRenderStyle.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRendering.cpp \
+ third_party/WebKit/Source/web/painting/ContinuousPainter.cpp \
+ third_party/WebKit/Source/web/painting/PaintAggregator.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -fno-tree-sra \
+ -fuse-ld=gold \
+ -Wno-psabi \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-abi \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -Wl,-z,relro \
+ -Wl,-z,now \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--icf=safe \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ third_party_WebKit_Source_core_webcore_derived_gyp \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_webkit_gyp
+
+# Alias gyp target name.
+.PHONY: webkit
+webkit: third_party_WebKit_Source_web_webkit_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/webkit.target.linux-mips.mk b/Source/web/webkit.target.linux-mips.mk
new file mode 100644
index 000000000..0d3ef852a
--- /dev/null
+++ b/Source/web/webkit.target.linux-mips.mk
@@ -0,0 +1,616 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_webkit_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,third_party_WebKit_Source_core_webcore_gyp)/webcore.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_WebKit_Source_core_webcore_derived_gyp)/third_party_WebKit_Source_core_webcore_derived_gyp.a \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,GYP,third_party_npapi_npapi_gyp)/npapi.stamp \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/Platform.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebActiveGestureAnimation.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebArrayBuffer.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebAudioBus.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCrypto.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoAlgorithm.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoKey.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCursorInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceMotionData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceOrientationData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebFloatQuad.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPBody.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPLoadInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaConstraints.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStream.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamSource.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamTrack.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerender.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerenderingSupport.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCConfiguration.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCICECandidate.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescription.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescriptionRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsResponse.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCVoidRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeGeometryNative.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSocketStreamError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSourceInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisUtterance.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisVoice.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebThreadSafeData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebTransformKeyframe.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURL.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLResponse.cpp \
+ third_party/WebKit/Source/web/ApplicationCacheHost.cpp \
+ third_party/WebKit/Source/web/AssertMatchingEnums.cpp \
+ third_party/WebKit/Source/web/AssociatedURLLoader.cpp \
+ third_party/WebKit/Source/web/AsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/AsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/AutofillPopupMenuClient.cpp \
+ third_party/WebKit/Source/web/BackForwardClientImpl.cpp \
+ third_party/WebKit/Source/web/ChromeClientImpl.cpp \
+ third_party/WebKit/Source/web/ColorChooserPopupUIController.cpp \
+ third_party/WebKit/Source/web/ColorChooserUIController.cpp \
+ third_party/WebKit/Source/web/CompositionUnderlineVectorBuilder.cpp \
+ third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp \
+ third_party/WebKit/Source/web/ContextMenuClientImpl.cpp \
+ third_party/WebKit/Source/web/DOMUtilitiesPrivate.cpp \
+ third_party/WebKit/Source/web/DatabaseObserver.cpp \
+ third_party/WebKit/Source/web/DateTimeChooserImpl.cpp \
+ third_party/WebKit/Source/web/DeviceOrientationClientProxy.cpp \
+ third_party/WebKit/Source/web/DragClientImpl.cpp \
+ third_party/WebKit/Source/web/EditorClientImpl.cpp \
+ third_party/WebKit/Source/web/EventListenerWrapper.cpp \
+ third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp \
+ third_party/WebKit/Source/web/ExternalPopupMenu.cpp \
+ third_party/WebKit/Source/web/FindInPageCoordinates.cpp \
+ third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp \
+ third_party/WebKit/Source/web/FullscreenController.cpp \
+ third_party/WebKit/Source/web/GeolocationClientProxy.cpp \
+ third_party/WebKit/Source/web/GraphicsLayerFactoryChromium.cpp \
+ third_party/WebKit/Source/web/IDBCursorBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBDatabaseBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBFactoryBackendProxy.cpp \
+ third_party/WebKit/Source/web/InbandTextTrackPrivateImpl.cpp \
+ third_party/WebKit/Source/web/InspectorClientImpl.cpp \
+ third_party/WebKit/Source/web/InspectorFrontendClientImpl.cpp \
+ third_party/WebKit/Source/web/LinkHighlight.cpp \
+ third_party/WebKit/Source/web/LocalFileSystemClient.cpp \
+ third_party/WebKit/Source/web/MIDIClientImpl.cpp \
+ third_party/WebKit/Source/web/MediaSourcePrivateImpl.cpp \
+ third_party/WebKit/Source/web/NotificationPresenterImpl.cpp \
+ third_party/WebKit/Source/web/PageOverlay.cpp \
+ third_party/WebKit/Source/web/PageOverlayList.cpp \
+ third_party/WebKit/Source/web/PageWidgetDelegate.cpp \
+ third_party/WebKit/Source/web/PinchViewports.cpp \
+ third_party/WebKit/Source/web/PopupContainer.cpp \
+ third_party/WebKit/Source/web/PopupListBox.cpp \
+ third_party/WebKit/Source/web/PopupMenuChromium.cpp \
+ third_party/WebKit/Source/web/PrerendererClientImpl.cpp \
+ third_party/WebKit/Source/web/ScrollbarGroup.cpp \
+ third_party/WebKit/Source/web/SharedWorkerRepository.cpp \
+ third_party/WebKit/Source/web/SourceBufferPrivateImpl.cpp \
+ third_party/WebKit/Source/web/SpeechInputClientImpl.cpp \
+ third_party/WebKit/Source/web/SpeechRecognitionClientProxy.cpp \
+ third_party/WebKit/Source/web/StorageAreaProxy.cpp \
+ third_party/WebKit/Source/web/StorageNamespaceProxy.cpp \
+ third_party/WebKit/Source/web/StorageQuotaChromium.cpp \
+ third_party/WebKit/Source/web/UserMediaClientImpl.cpp \
+ third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp \
+ third_party/WebKit/Source/web/ViewportAnchor.cpp \
+ third_party/WebKit/Source/web/WebAccessibilityObject.cpp \
+ third_party/WebKit/Source/web/WebArrayBufferView.cpp \
+ third_party/WebKit/Source/web/WebBindings.cpp \
+ third_party/WebKit/Source/web/WebBlob.cpp \
+ third_party/WebKit/Source/web/WebBlobData.cpp \
+ third_party/WebKit/Source/web/WebCache.cpp \
+ third_party/WebKit/Source/web/WebCachedURLRequest.cpp \
+ third_party/WebKit/Source/web/WebColorName.cpp \
+ third_party/WebKit/Source/web/WebCrossOriginPreflightResultCache.cpp \
+ third_party/WebKit/Source/web/WebDOMActivityLogger.cpp \
+ third_party/WebKit/Source/web/WebDOMCustomEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListener.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListenerPrivate.cpp \
+ third_party/WebKit/Source/web/WebDOMMessageEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMouseEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMutationEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMResourceProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDataSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebDatabase.cpp \
+ third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp \
+ third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientation.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationClientMock.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationController.cpp \
+ third_party/WebKit/Source/web/WebDocument.cpp \
+ third_party/WebKit/Source/web/WebDocumentType.cpp \
+ third_party/WebKit/Source/web/WebDragData.cpp \
+ third_party/WebKit/Source/web/WebElement.cpp \
+ third_party/WebKit/Source/web/WebEntities.cpp \
+ third_party/WebKit/Source/web/WebFileChooserCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebFontCache.cpp \
+ third_party/WebKit/Source/web/WebFontDescription.cpp \
+ third_party/WebKit/Source/web/WebFontImpl.cpp \
+ third_party/WebKit/Source/web/WebFormControlElement.cpp \
+ third_party/WebKit/Source/web/WebFormElement.cpp \
+ third_party/WebKit/Source/web/WebFrameImpl.cpp \
+ third_party/WebKit/Source/web/WebGeolocationClientMock.cpp \
+ third_party/WebKit/Source/web/WebGeolocationController.cpp \
+ third_party/WebKit/Source/web/WebGeolocationError.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequestManager.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPosition.cpp \
+ third_party/WebKit/Source/web/WebGlyphCache.cpp \
+ third_party/WebKit/Source/web/WebHelperPluginImpl.cpp \
+ third_party/WebKit/Source/web/WebHistoryItem.cpp \
+ third_party/WebKit/Source/web/WebHitTestResult.cpp \
+ third_party/WebKit/Source/web/WebIDBCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseError.cpp \
+ third_party/WebKit/Source/web/WebIDBKey.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyPath.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyRange.cpp \
+ third_party/WebKit/Source/web/WebIDBMetadata.cpp \
+ third_party/WebKit/Source/web/WebImageCache.cpp \
+ third_party/WebKit/Source/web/WebImageDecoder.cpp \
+ third_party/WebKit/Source/web/WebImageSkia.cpp \
+ third_party/WebKit/Source/web/WebInputElement.cpp \
+ third_party/WebKit/Source/web/WebInputEvent.cpp \
+ third_party/WebKit/Source/web/WebInputEventConversion.cpp \
+ third_party/WebKit/Source/web/WebKit.cpp \
+ third_party/WebKit/Source/web/WebLabelElement.cpp \
+ third_party/WebKit/Source/web/WebMIDIPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebMediaPlayerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaStreamRegistry.cpp \
+ third_party/WebKit/Source/web/WebNetworkStateNotifier.cpp \
+ third_party/WebKit/Source/web/WebNode.cpp \
+ third_party/WebKit/Source/web/WebNodeCollection.cpp \
+ third_party/WebKit/Source/web/WebNodeList.cpp \
+ third_party/WebKit/Source/web/WebNotification.cpp \
+ third_party/WebKit/Source/web/WebOptionElement.cpp \
+ third_party/WebKit/Source/web/WebPagePopupImpl.cpp \
+ third_party/WebKit/Source/web/WebPageSerializer.cpp \
+ third_party/WebKit/Source/web/WebPageSerializerImpl.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormData.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormUtils.cpp \
+ third_party/WebKit/Source/web/WebPerformance.cpp \
+ third_party/WebKit/Source/web/WebPluginContainerImpl.cpp \
+ third_party/WebKit/Source/web/WebPluginDocument.cpp \
+ third_party/WebKit/Source/web/WebPluginLoadObserver.cpp \
+ third_party/WebKit/Source/web/WebPluginScrollbarImpl.cpp \
+ third_party/WebKit/Source/web/WebPopupMenuImpl.cpp \
+ third_party/WebKit/Source/web/WebRange.cpp \
+ third_party/WebKit/Source/web/WebRuntimeFeatures.cpp \
+ third_party/WebKit/Source/web/WebScopedMicrotaskSuppression.cpp \
+ third_party/WebKit/Source/web/WebScopedUserGesture.cpp \
+ third_party/WebKit/Source/web/WebScriptBindings.cpp \
+ third_party/WebKit/Source/web/WebScriptController.cpp \
+ third_party/WebKit/Source/web/WebScrollbarThemePainter.cpp \
+ third_party/WebKit/Source/web/WebSearchableFormData.cpp \
+ third_party/WebKit/Source/web/WebSecurityOrigin.cpp \
+ third_party/WebKit/Source/web/WebSecurityPolicy.cpp \
+ third_party/WebKit/Source/web/WebSelectElement.cpp \
+ third_party/WebKit/Source/web/WebSerializedScriptValue.cpp \
+ third_party/WebKit/Source/web/WebSettingsImpl.cpp \
+ third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp \
+ third_party/WebKit/Source/web/WebSocket.cpp \
+ third_party/WebKit/Source/web/WebSocketImpl.cpp \
+ third_party/WebKit/Source/web/WebSpeechGrammar.cpp \
+ third_party/WebKit/Source/web/WebSpeechInputResult.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionHandle.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionResult.cpp \
+ third_party/WebKit/Source/web/WebStorageEventDispatcherImpl.cpp \
+ third_party/WebKit/Source/web/WebSurroundingText.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingResult.cpp \
+ third_party/WebKit/Source/web/WebTextInputInfo.cpp \
+ third_party/WebKit/Source/web/WebTextRun.cpp \
+ third_party/WebKit/Source/web/WebURLLoadTiming.cpp \
+ third_party/WebKit/Source/web/WebUserGestureIndicator.cpp \
+ third_party/WebKit/Source/web/WebUserGestureToken.cpp \
+ third_party/WebKit/Source/web/WebUserMediaRequest.cpp \
+ third_party/WebKit/Source/web/WebViewBenchmarkSupportImpl.cpp \
+ third_party/WebKit/Source/web/WebViewImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerBase.cpp \
+ third_party/WebKit/Source/web/WebWorkerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerInfo.cpp \
+ third_party/WebKit/Source/web/WebWorkerRunLoop.cpp \
+ third_party/WebKit/Source/web/WorkerAllowMainThreadBridgeBase.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemClient.cpp \
+ third_party/WebKit/Source/web/WorkerFileWriterCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/android/WebInputEventFactory.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRenderStyle.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRendering.cpp \
+ third_party/WebKit/Source/web/painting/ContinuousPainter.cpp \
+ third_party/WebKit/Source/web/painting/PaintAggregator.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ -fstack-protector \
+ --param=ssp-buffer-size=4 \
+ \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -EL \
+ -mhard-float \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fstack-protector \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-uninitialized \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -EL \
+ -Wl,--no-keep-memory \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ third_party_WebKit_Source_core_webcore_derived_gyp \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_webkit_gyp
+
+# Alias gyp target name.
+.PHONY: webkit
+webkit: third_party_WebKit_Source_web_webkit_gyp
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/Source/web/webkit.target.linux-x86.mk b/Source/web/webkit.target.linux-x86.mk
new file mode 100644
index 000000000..2c4a7772e
--- /dev/null
+++ b/Source/web/webkit.target.linux-x86.mk
@@ -0,0 +1,622 @@
+# This file is generated by gyp; do not edit.
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_MODULE := third_party_WebKit_Source_web_webkit_gyp
+LOCAL_MODULE_SUFFIX := .a
+LOCAL_MODULE_TAGS := optional
+gyp_intermediate_dir := $(call local-intermediates-dir)
+gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)
+
+# Make sure our deps are built first.
+GYP_TARGET_DEPENDENCIES := \
+ $(call intermediates-dir-for,GYP,third_party_WebKit_Source_core_webcore_gyp)/webcore.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,third_party_WebKit_Source_core_webcore_derived_gyp)/third_party_WebKit_Source_core_webcore_derived_gyp.a \
+ $(call intermediates-dir-for,GYP,skia_skia_gyp)/skia.stamp \
+ $(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp)/skia_skia_library_gyp.a \
+ $(call intermediates-dir-for,GYP,third_party_icu_icuuc_gyp)/icuuc.stamp \
+ $(call intermediates-dir-for,GYP,third_party_npapi_npapi_gyp)/npapi.stamp \
+ $(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp)/v8.stamp
+
+GYP_GENERATED_OUTPUTS :=
+
+# Make sure our deps and generated files are built first.
+LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)
+
+LOCAL_GENERATED_SOURCES :=
+
+GYP_COPIED_SOURCE_ORIGIN_DIRS :=
+
+LOCAL_SRC_FILES := \
+ third_party/WebKit/Source/core/platform/chromium/support/Platform.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebActiveGestureAnimation.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebArrayBuffer.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebAudioBus.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCrypto.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoAlgorithm.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCryptoKey.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebCursorInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceMotionData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebDeviceOrientationData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebFloatQuad.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPBody.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebHTTPLoadInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaConstraints.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStream.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamSource.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebMediaStreamTrack.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerender.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebPrerenderingSupport.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCConfiguration.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCICECandidate.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescription.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCSessionDescriptionRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCStatsResponse.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebRTCVoidRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebScrollbarThemeGeometryNative.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSocketStreamError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSourceInfo.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisUtterance.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesisVoice.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebThreadSafeData.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebTransformKeyframe.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURL.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLError.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLRequest.cpp \
+ third_party/WebKit/Source/core/platform/chromium/support/WebURLResponse.cpp \
+ third_party/WebKit/Source/web/ApplicationCacheHost.cpp \
+ third_party/WebKit/Source/web/AssertMatchingEnums.cpp \
+ third_party/WebKit/Source/web/AssociatedURLLoader.cpp \
+ third_party/WebKit/Source/web/AsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/AsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/AutofillPopupMenuClient.cpp \
+ third_party/WebKit/Source/web/BackForwardClientImpl.cpp \
+ third_party/WebKit/Source/web/ChromeClientImpl.cpp \
+ third_party/WebKit/Source/web/ColorChooserPopupUIController.cpp \
+ third_party/WebKit/Source/web/ColorChooserUIController.cpp \
+ third_party/WebKit/Source/web/CompositionUnderlineVectorBuilder.cpp \
+ third_party/WebKit/Source/web/ContextFeaturesClientImpl.cpp \
+ third_party/WebKit/Source/web/ContextMenuClientImpl.cpp \
+ third_party/WebKit/Source/web/DOMUtilitiesPrivate.cpp \
+ third_party/WebKit/Source/web/DatabaseObserver.cpp \
+ third_party/WebKit/Source/web/DateTimeChooserImpl.cpp \
+ third_party/WebKit/Source/web/DeviceOrientationClientProxy.cpp \
+ third_party/WebKit/Source/web/DragClientImpl.cpp \
+ third_party/WebKit/Source/web/EditorClientImpl.cpp \
+ third_party/WebKit/Source/web/EventListenerWrapper.cpp \
+ third_party/WebKit/Source/web/ExternalDateTimeChooser.cpp \
+ third_party/WebKit/Source/web/ExternalPopupMenu.cpp \
+ third_party/WebKit/Source/web/FindInPageCoordinates.cpp \
+ third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp \
+ third_party/WebKit/Source/web/FullscreenController.cpp \
+ third_party/WebKit/Source/web/GeolocationClientProxy.cpp \
+ third_party/WebKit/Source/web/GraphicsLayerFactoryChromium.cpp \
+ third_party/WebKit/Source/web/IDBCursorBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBDatabaseBackendProxy.cpp \
+ third_party/WebKit/Source/web/IDBFactoryBackendProxy.cpp \
+ third_party/WebKit/Source/web/InbandTextTrackPrivateImpl.cpp \
+ third_party/WebKit/Source/web/InspectorClientImpl.cpp \
+ third_party/WebKit/Source/web/InspectorFrontendClientImpl.cpp \
+ third_party/WebKit/Source/web/LinkHighlight.cpp \
+ third_party/WebKit/Source/web/LocalFileSystemClient.cpp \
+ third_party/WebKit/Source/web/MIDIClientImpl.cpp \
+ third_party/WebKit/Source/web/MediaSourcePrivateImpl.cpp \
+ third_party/WebKit/Source/web/NotificationPresenterImpl.cpp \
+ third_party/WebKit/Source/web/PageOverlay.cpp \
+ third_party/WebKit/Source/web/PageOverlayList.cpp \
+ third_party/WebKit/Source/web/PageWidgetDelegate.cpp \
+ third_party/WebKit/Source/web/PinchViewports.cpp \
+ third_party/WebKit/Source/web/PopupContainer.cpp \
+ third_party/WebKit/Source/web/PopupListBox.cpp \
+ third_party/WebKit/Source/web/PopupMenuChromium.cpp \
+ third_party/WebKit/Source/web/PrerendererClientImpl.cpp \
+ third_party/WebKit/Source/web/ScrollbarGroup.cpp \
+ third_party/WebKit/Source/web/SharedWorkerRepository.cpp \
+ third_party/WebKit/Source/web/SourceBufferPrivateImpl.cpp \
+ third_party/WebKit/Source/web/SpeechInputClientImpl.cpp \
+ third_party/WebKit/Source/web/SpeechRecognitionClientProxy.cpp \
+ third_party/WebKit/Source/web/StorageAreaProxy.cpp \
+ third_party/WebKit/Source/web/StorageNamespaceProxy.cpp \
+ third_party/WebKit/Source/web/StorageQuotaChromium.cpp \
+ third_party/WebKit/Source/web/UserMediaClientImpl.cpp \
+ third_party/WebKit/Source/web/ValidationMessageClientImpl.cpp \
+ third_party/WebKit/Source/web/ViewportAnchor.cpp \
+ third_party/WebKit/Source/web/WebAccessibilityObject.cpp \
+ third_party/WebKit/Source/web/WebArrayBufferView.cpp \
+ third_party/WebKit/Source/web/WebBindings.cpp \
+ third_party/WebKit/Source/web/WebBlob.cpp \
+ third_party/WebKit/Source/web/WebBlobData.cpp \
+ third_party/WebKit/Source/web/WebCache.cpp \
+ third_party/WebKit/Source/web/WebCachedURLRequest.cpp \
+ third_party/WebKit/Source/web/WebColorName.cpp \
+ third_party/WebKit/Source/web/WebCrossOriginPreflightResultCache.cpp \
+ third_party/WebKit/Source/web/WebDOMActivityLogger.cpp \
+ third_party/WebKit/Source/web/WebDOMCustomEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListener.cpp \
+ third_party/WebKit/Source/web/WebDOMEventListenerPrivate.cpp \
+ third_party/WebKit/Source/web/WebDOMMessageEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMouseEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMMutationEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDOMResourceProgressEvent.cpp \
+ third_party/WebKit/Source/web/WebDataSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebDatabase.cpp \
+ third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp \
+ third_party/WebKit/Source/web/WebDevToolsFrontendImpl.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientation.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationClientMock.cpp \
+ third_party/WebKit/Source/web/WebDeviceOrientationController.cpp \
+ third_party/WebKit/Source/web/WebDocument.cpp \
+ third_party/WebKit/Source/web/WebDocumentType.cpp \
+ third_party/WebKit/Source/web/WebDragData.cpp \
+ third_party/WebKit/Source/web/WebElement.cpp \
+ third_party/WebKit/Source/web/WebEntities.cpp \
+ third_party/WebKit/Source/web/WebFileChooserCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebFileSystemCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebFontCache.cpp \
+ third_party/WebKit/Source/web/WebFontDescription.cpp \
+ third_party/WebKit/Source/web/WebFontImpl.cpp \
+ third_party/WebKit/Source/web/WebFormControlElement.cpp \
+ third_party/WebKit/Source/web/WebFormElement.cpp \
+ third_party/WebKit/Source/web/WebFrameImpl.cpp \
+ third_party/WebKit/Source/web/WebGeolocationClientMock.cpp \
+ third_party/WebKit/Source/web/WebGeolocationController.cpp \
+ third_party/WebKit/Source/web/WebGeolocationError.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPermissionRequestManager.cpp \
+ third_party/WebKit/Source/web/WebGeolocationPosition.cpp \
+ third_party/WebKit/Source/web/WebGlyphCache.cpp \
+ third_party/WebKit/Source/web/WebHelperPluginImpl.cpp \
+ third_party/WebKit/Source/web/WebHistoryItem.cpp \
+ third_party/WebKit/Source/web/WebHitTestResult.cpp \
+ third_party/WebKit/Source/web/WebIDBCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseCallbacksImpl.cpp \
+ third_party/WebKit/Source/web/WebIDBDatabaseError.cpp \
+ third_party/WebKit/Source/web/WebIDBKey.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyPath.cpp \
+ third_party/WebKit/Source/web/WebIDBKeyRange.cpp \
+ third_party/WebKit/Source/web/WebIDBMetadata.cpp \
+ third_party/WebKit/Source/web/WebImageCache.cpp \
+ third_party/WebKit/Source/web/WebImageDecoder.cpp \
+ third_party/WebKit/Source/web/WebImageSkia.cpp \
+ third_party/WebKit/Source/web/WebInputElement.cpp \
+ third_party/WebKit/Source/web/WebInputEvent.cpp \
+ third_party/WebKit/Source/web/WebInputEventConversion.cpp \
+ third_party/WebKit/Source/web/WebKit.cpp \
+ third_party/WebKit/Source/web/WebLabelElement.cpp \
+ third_party/WebKit/Source/web/WebMIDIPermissionRequest.cpp \
+ third_party/WebKit/Source/web/WebMediaPlayerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaSourceImpl.cpp \
+ third_party/WebKit/Source/web/WebMediaStreamRegistry.cpp \
+ third_party/WebKit/Source/web/WebNetworkStateNotifier.cpp \
+ third_party/WebKit/Source/web/WebNode.cpp \
+ third_party/WebKit/Source/web/WebNodeCollection.cpp \
+ third_party/WebKit/Source/web/WebNodeList.cpp \
+ third_party/WebKit/Source/web/WebNotification.cpp \
+ third_party/WebKit/Source/web/WebOptionElement.cpp \
+ third_party/WebKit/Source/web/WebPagePopupImpl.cpp \
+ third_party/WebKit/Source/web/WebPageSerializer.cpp \
+ third_party/WebKit/Source/web/WebPageSerializerImpl.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormData.cpp \
+ third_party/WebKit/Source/web/WebPasswordFormUtils.cpp \
+ third_party/WebKit/Source/web/WebPerformance.cpp \
+ third_party/WebKit/Source/web/WebPluginContainerImpl.cpp \
+ third_party/WebKit/Source/web/WebPluginDocument.cpp \
+ third_party/WebKit/Source/web/WebPluginLoadObserver.cpp \
+ third_party/WebKit/Source/web/WebPluginScrollbarImpl.cpp \
+ third_party/WebKit/Source/web/WebPopupMenuImpl.cpp \
+ third_party/WebKit/Source/web/WebRange.cpp \
+ third_party/WebKit/Source/web/WebRuntimeFeatures.cpp \
+ third_party/WebKit/Source/web/WebScopedMicrotaskSuppression.cpp \
+ third_party/WebKit/Source/web/WebScopedUserGesture.cpp \
+ third_party/WebKit/Source/web/WebScriptBindings.cpp \
+ third_party/WebKit/Source/web/WebScriptController.cpp \
+ third_party/WebKit/Source/web/WebScrollbarThemePainter.cpp \
+ third_party/WebKit/Source/web/WebSearchableFormData.cpp \
+ third_party/WebKit/Source/web/WebSecurityOrigin.cpp \
+ third_party/WebKit/Source/web/WebSecurityPolicy.cpp \
+ third_party/WebKit/Source/web/WebSelectElement.cpp \
+ third_party/WebKit/Source/web/WebSerializedScriptValue.cpp \
+ third_party/WebKit/Source/web/WebSettingsImpl.cpp \
+ third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp \
+ third_party/WebKit/Source/web/WebSocket.cpp \
+ third_party/WebKit/Source/web/WebSocketImpl.cpp \
+ third_party/WebKit/Source/web/WebSpeechGrammar.cpp \
+ third_party/WebKit/Source/web/WebSpeechInputResult.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionHandle.cpp \
+ third_party/WebKit/Source/web/WebSpeechRecognitionResult.cpp \
+ third_party/WebKit/Source/web/WebStorageEventDispatcherImpl.cpp \
+ third_party/WebKit/Source/web/WebSurroundingText.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingCompletionImpl.cpp \
+ third_party/WebKit/Source/web/WebTextCheckingResult.cpp \
+ third_party/WebKit/Source/web/WebTextInputInfo.cpp \
+ third_party/WebKit/Source/web/WebTextRun.cpp \
+ third_party/WebKit/Source/web/WebURLLoadTiming.cpp \
+ third_party/WebKit/Source/web/WebUserGestureIndicator.cpp \
+ third_party/WebKit/Source/web/WebUserGestureToken.cpp \
+ third_party/WebKit/Source/web/WebUserMediaRequest.cpp \
+ third_party/WebKit/Source/web/WebViewBenchmarkSupportImpl.cpp \
+ third_party/WebKit/Source/web/WebViewImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerBase.cpp \
+ third_party/WebKit/Source/web/WebWorkerClientImpl.cpp \
+ third_party/WebKit/Source/web/WebWorkerInfo.cpp \
+ third_party/WebKit/Source/web/WebWorkerRunLoop.cpp \
+ third_party/WebKit/Source/web/WorkerAllowMainThreadBridgeBase.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileSystemChromium.cpp \
+ third_party/WebKit/Source/web/WorkerAsyncFileWriterChromium.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/WorkerFileSystemClient.cpp \
+ third_party/WebKit/Source/web/WorkerFileWriterCallbacksBridge.cpp \
+ third_party/WebKit/Source/web/android/WebInputEventFactory.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRenderStyle.cpp \
+ third_party/WebKit/Source/web/linux/WebFontRendering.cpp \
+ third_party/WebKit/Source/web/painting/ContinuousPainter.cpp \
+ third_party/WebKit/Source/web/painting/PaintAggregator.cpp
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Debug := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -g \
+ -fomit-frame-pointer \
+ -fdata-sections \
+ -ffunction-sections
+
+MY_DEFS_Debug := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=1' \
+ '-DWTF_USE_DYNAMIC_ANNOTATIONS=1' \
+ '-D_DEBUG'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Debug := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Debug := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+# Flags passed to both C and C++ files.
+MY_CFLAGS_Release := \
+ --param=ssp-buffer-size=4 \
+ -Werror \
+ -fno-exceptions \
+ -fno-strict-aliasing \
+ -Wall \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -fvisibility=hidden \
+ -pipe \
+ -fPIC \
+ -m32 \
+ -mmmx \
+ -march=pentium4 \
+ -msse2 \
+ -mfpmath=sse \
+ -fuse-ld=gold \
+ -ffunction-sections \
+ -funwind-tables \
+ -g \
+ -fno-short-enums \
+ -finline-limit=64 \
+ -Wa,--noexecstack \
+ -U_FORTIFY_SOURCE \
+ -Wno-extra \
+ -Wno-ignored-qualifiers \
+ -Wno-type-limits \
+ -Wno-address \
+ -Wno-format-security \
+ -Wno-return-type \
+ -Wno-sequence-point \
+ -fno-stack-protector \
+ -Os \
+ -fno-ident \
+ -fdata-sections \
+ -ffunction-sections \
+ -fomit-frame-pointer \
+ -fno-unwind-tables \
+ -fno-asynchronous-unwind-tables
+
+MY_DEFS_Release := \
+ '-DANGLE_DX11' \
+ '-D_FILE_OFFSET_BITS=64' \
+ '-DNO_TCMALLOC' \
+ '-DDISCARDABLE_MEMORY_ALWAYS_SUPPORTED_NATIVELY' \
+ '-DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE' \
+ '-DDISABLE_NACL' \
+ '-DCHROMIUM_BUILD' \
+ '-DUSE_LIBJPEG_TURBO=1' \
+ '-DUSE_PROPRIETARY_CODECS' \
+ '-DENABLE_CONFIGURATION_POLICY' \
+ '-DENABLE_GPU=1' \
+ '-DUSE_OPENSSL=1' \
+ '-DENABLE_EGLIMAGE=1' \
+ '-DWEBKIT_IMPLEMENTATION=1' \
+ '-DINSIDE_WEBKIT' \
+ '-DENABLE_CSS3_TEXT=0' \
+ '-DENABLE_CSS_EXCLUSIONS=1' \
+ '-DENABLE_CSS_REGIONS=1' \
+ '-DENABLE_CUSTOM_SCHEME_HANDLER=0' \
+ '-DENABLE_ENCRYPTED_MEDIA_V2=1' \
+ '-DENABLE_SVG_FONTS=1' \
+ '-DENABLE_TOUCH_ICON_LOADING=1' \
+ '-DENABLE_GDI_FONTS_ON_WINDOWS=1' \
+ '-DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1' \
+ '-DENABLE_CALENDAR_PICKER=0' \
+ '-DENABLE_FAST_MOBILE_SCROLLING=1' \
+ '-DENABLE_INPUT_SPEECH=0' \
+ '-DENABLE_LEGACY_NOTIFICATIONS=0' \
+ '-DENABLE_MEDIA_CAPTURE=1' \
+ '-DENABLE_NOTIFICATIONS=0' \
+ '-DENABLE_ORIENTATION_EVENTS=1' \
+ '-DENABLE_PRINTING=0' \
+ '-DENABLE_NAVIGATOR_CONTENT_UTILS=0' \
+ '-DWTF_USE_NATIVE_FULLSCREEN_VIDEO=1' \
+ '-DENABLE_OPENTYPE_VERTICAL=1' \
+ '-DWTF_USE_HARFBUZZ=1' \
+ '-DU_USING_ICU_NAMESPACE=0' \
+ '-DSK_ENABLE_INST_COUNT=0' \
+ '-DSK_SUPPORT_GPU=1' \
+ '-DGR_GL_CUSTOM_SETUP_HEADER="GrGLConfig_chrome.h"' \
+ '-DSK_BUILD_FOR_ANDROID' \
+ '-DUSE_CHROMIUM_SKIA' \
+ '-DSK_USE_POSIX_THREADS' \
+ '-D__STDC_CONSTANT_MACROS' \
+ '-D__STDC_FORMAT_MACROS' \
+ '-DANDROID' \
+ '-D__GNU_SOURCE=1' \
+ '-DUSE_STLPORT=1' \
+ '-D_STLP_USE_PTR_SPECIALIZATIONS=1' \
+ '-DCHROME_BUILD_ID=""' \
+ '-DNDEBUG' \
+ '-DNVALGRIND' \
+ '-DDYNAMIC_ANNOTATIONS_ENABLED=0'
+
+
+# Include paths placed before CFLAGS/CPPFLAGS
+LOCAL_C_INCLUDES_Release := \
+ $(gyp_shared_intermediate_dir)/shim_headers/ashmem/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icuuc/target \
+ $(gyp_shared_intermediate_dir)/shim_headers/icui18n/target \
+ $(LOCAL_PATH)/third_party/WebKit/public/web \
+ $(LOCAL_PATH)/third_party/WebKit/Source/web \
+ $(LOCAL_PATH)/third_party/angle_dx11/include \
+ $(LOCAL_PATH)/third_party/skia/include/utils \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/android \
+ $(LOCAL_PATH)/third_party/WebKit/public/web/linux \
+ $(LOCAL_PATH)/third_party/khronos \
+ $(LOCAL_PATH)/gpu \
+ $(LOCAL_PATH) \
+ $(LOCAL_PATH)/third_party/WebKit \
+ $(LOCAL_PATH)/third_party/WebKit/Source \
+ $(gyp_shared_intermediate_dir)/blink \
+ $(gyp_shared_intermediate_dir)/blink/bindings \
+ $(PWD)/external/icu4c/common \
+ $(PWD)/external/icu4c/i18n \
+ $(LOCAL_PATH)/third_party/qcms/src \
+ $(LOCAL_PATH)/third_party/skia/src/core \
+ $(LOCAL_PATH)/skia/config \
+ $(LOCAL_PATH)/third_party/skia/include/config \
+ $(LOCAL_PATH)/third_party/skia/include/core \
+ $(LOCAL_PATH)/third_party/skia/include/effects \
+ $(LOCAL_PATH)/third_party/skia/include/pdf \
+ $(LOCAL_PATH)/third_party/skia/include/gpu \
+ $(LOCAL_PATH)/third_party/skia/include/gpu/gl \
+ $(LOCAL_PATH)/third_party/skia/include/lazy \
+ $(LOCAL_PATH)/third_party/skia/include/pathops \
+ $(LOCAL_PATH)/third_party/skia/include/pipe \
+ $(LOCAL_PATH)/third_party/skia/include/ports \
+ $(LOCAL_PATH)/skia/ext \
+ $(LOCAL_PATH)/third_party/npapi \
+ $(LOCAL_PATH)/third_party/npapi/bindings \
+ $(LOCAL_PATH)/v8/include \
+ $(PWD)/frameworks/wilhelm/include \
+ $(PWD)/bionic \
+ $(PWD)/external/stlport/stlport
+
+
+# Flags passed to only C++ (and not C) files.
+LOCAL_CPPFLAGS_Release := \
+ -Wno-c++0x-compat \
+ -fno-rtti \
+ -fno-threadsafe-statics \
+ -fvisibility-inlines-hidden \
+ -Wsign-compare \
+ -Wno-error=c++0x-compat \
+ -Wno-non-virtual-dtor \
+ -Wno-sign-promo \
+ -Wno-non-virtual-dtor
+
+
+LOCAL_CFLAGS := $(MY_CFLAGS_$(GYP_CONFIGURATION)) $(MY_DEFS_$(GYP_CONFIGURATION))
+LOCAL_C_INCLUDES := $(GYP_COPIED_SOURCE_ORIGIN_DIRS) $(LOCAL_C_INCLUDES_$(GYP_CONFIGURATION))
+LOCAL_CPPFLAGS := $(LOCAL_CPPFLAGS_$(GYP_CONFIGURATION))
+### Rules for final target.
+
+LOCAL_LDFLAGS_Debug := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,--gc-sections \
+ -Wl,-O1 \
+ -Wl,--as-needed
+
+
+LOCAL_LDFLAGS_Release := \
+ -Wl,-z,now \
+ -Wl,-z,relro \
+ -Wl,-z,noexecstack \
+ -fPIC \
+ -m32 \
+ -fuse-ld=gold \
+ -nostdlib \
+ -Wl,--no-undefined \
+ -Wl,--exclude-libs=ALL \
+ -Wl,-O1 \
+ -Wl,--as-needed \
+ -Wl,--gc-sections
+
+
+LOCAL_LDFLAGS := $(LOCAL_LDFLAGS_$(GYP_CONFIGURATION))
+
+LOCAL_STATIC_LIBRARIES := \
+ third_party_WebKit_Source_core_webcore_derived_gyp \
+ skia_skia_library_gyp
+
+# Enable grouping to fix circular references
+LOCAL_GROUP_STATIC_LIBRARIES := true
+
+LOCAL_SHARED_LIBRARIES := \
+ libstlport \
+ libdl
+
+# Add target alias to "gyp_all_modules" target.
+.PHONY: gyp_all_modules
+gyp_all_modules: third_party_WebKit_Source_web_webkit_gyp
+
+# Alias gyp target name.
+.PHONY: webkit
+webkit: third_party_WebKit_Source_web_webkit_gyp
+
+include $(BUILD_STATIC_LIBRARY)