Diff
Modified: trunk/Source/WebKit/chromium/ChangeLog (94858 => 94859)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-09-09 16:49:49 UTC (rev 94858)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-09-09 16:58:11 UTC (rev 94859)
@@ -1,3 +1,24 @@
+2011-09-09 Hao Zheng <zheng...@chromium.org>
+
+ [Chromium] Add WebSandboxSupport and WebThemeEngine for Android.
+ https://bugs.webkit.org/show_bug.cgi?id=67584
+
+ Reviewed by Steve Block.
+
+ Make src/PlatformSupport.cpp and src/WebFrameImpl.cpp compile on
+ Chromium port for Android.
+
+ * WebKit.gyp:
+ * public/android: Added.
+ * public/android/WebSandboxSupport.h: Added.
+ * public/android/WebThemeEngine.h: Added.
+ (WebKit::WebThemeEngine::getSize):
+ (WebKit::WebThemeEngine::paint):
+ * src/PlatformSupport.cpp:
+ (WebCore::PlatformSupport::getFontFamilyForCharacters):
+ (WebCore::PlatformSupport::getRenderStyleForStrike):
+ * src/WebFrameImpl.cpp:
+
2011-09-09 Martin Kosiba <mkos...@chromium.org>
Exposing the isLink method on WebNode for the Chromium port on Android.
Modified: trunk/Source/WebKit/chromium/WebKit.gyp (94858 => 94859)
--- trunk/Source/WebKit/chromium/WebKit.gyp 2011-09-09 16:49:49 UTC (rev 94858)
+++ trunk/Source/WebKit/chromium/WebKit.gyp 2011-09-09 16:58:11 UTC (rev 94859)
@@ -89,6 +89,8 @@
'WEBKIT_IMPLEMENTATION=1',
],
'sources': [
+ 'public/android/WebSandboxSupport.h',
+ 'public/android/WebThemeEngine.h',
'public/gtk/WebInputEventFactory.h',
'public/linux/WebFontRendering.h',
'public/linux/WebFontRenderStyle.h',
@@ -704,6 +706,11 @@
['exclude', '/linux/'],
],
}],
+ ['OS=="android"', {
+ 'include_dirs': [
+ 'public/android',
+ ],
+ }],
['OS=="mac"', {
'include_dirs': [
'public/mac',
Added: trunk/Source/WebKit/chromium/public/android/WebSandboxSupport.h (0 => 94859)
--- trunk/Source/WebKit/chromium/public/android/WebSandboxSupport.h (rev 0)
+++ trunk/Source/WebKit/chromium/public/android/WebSandboxSupport.h 2011-09-09 16:58:11 UTC (rev 94859)
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+#ifndef WebSandboxSupport_h
+#define WebSandboxSupport_h
+
+namespace WebKit {
+
+// Empty class, as we need it to compile.
+class WebSandboxSupport {
+public:
+};
+
+} // namespace WebKit
+
+#endif
Added: trunk/Source/WebKit/chromium/public/android/WebThemeEngine.h (0 => 94859)
--- trunk/Source/WebKit/chromium/public/android/WebThemeEngine.h (rev 0)
+++ trunk/Source/WebKit/chromium/public/android/WebThemeEngine.h 2011-09-09 16:58:11 UTC (rev 94859)
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+
+#ifndef WebThemeEngine_h
+#define WebThemeEngine_h
+
+#include "../WebCanvas.h"
+#include "../WebColor.h"
+#include "../WebSize.h"
+
+namespace WebKit {
+
+struct WebRect;
+
+class WebThemeEngine {
+public:
+ // The UI part which is being accessed.
+ enum Part {
+ // ScrollbarTheme parts
+ PartScrollbarDownArrow,
+ PartScrollbarLeftArrow,
+ PartScrollbarRightArrow,
+ PartScrollbarUpArrow,
+ PartScrollbarHorizontalThumb,
+ PartScrollbarVerticalThumb,
+ PartScrollbarHorizontalTrack,
+ PartScrollbarVerticalTrack,
+
+ // RenderTheme parts
+ PartCheckbox,
+ PartRadio,
+ PartButton,
+ PartTextField,
+ PartMenuList,
+ PartSliderTrack,
+ PartSliderThumb,
+ PartInnerSpinButton,
+ PartProgressBar
+ };
+
+ // The current state of the associated Part.
+ enum State {
+ StateDisabled,
+ StateHover,
+ StateNormal,
+ StatePressed,
+ };
+
+ // Extra parameters for drawing the PartScrollbarHorizontalTrack and
+ // PartScrollbarVerticalTrack.
+ struct ScrollbarTrackExtraParams {
+ // The bounds of the entire track, as opposed to the part being painted.
+ int trackX;
+ int trackY;
+ int trackWidth;
+ int trackHeight;
+ };
+
+ // Extra parameters for PartCheckbox, PartPushButton and PartRadio.
+ struct ButtonExtraParams {
+ bool checked;
+ bool indeterminate; // Whether the button state is indeterminate.
+ bool isDefault; // Whether the button is default button.
+ bool hasBorder;
+ WebColor backgroundColor;
+ };
+
+ // Extra parameters for PartTextField
+ struct TextFieldExtraParams {
+ bool isTextArea;
+ bool isListbox;
+ WebColor backgroundColor;
+ };
+
+ // Extra parameters for PartMenuList
+ struct MenuListExtraParams {
+ bool hasBorder;
+ bool hasBorderRadius;
+ int arrowX;
+ int arrowY;
+ WebColor backgroundColor;
+ };
+
+ // Extra parameters for PartSliderTrack and PartSliderThumb
+ struct SliderExtraParams {
+ bool vertical;
+ bool inDrag;
+ };
+
+ // Extra parameters for PartInnerSpinButton
+ struct InnerSpinButtonExtraParams {
+ bool spinUp;
+ bool readOnly;
+ };
+
+ // Extra parameters for PartProgressBar
+ struct ProgressBarExtraParams {
+ bool determinate;
+ int valueRectX;
+ int valueRectY;
+ int valueRectWidth;
+ int valueRectHeight;
+ };
+
+ union ExtraParams {
+ ScrollbarTrackExtraParams scrollbarTrack;
+ ButtonExtraParams button;
+ TextFieldExtraParams textField;
+ MenuListExtraParams menuList;
+ SliderExtraParams slider;
+ InnerSpinButtonExtraParams innerSpin;
+ ProgressBarExtraParams progressBar;
+ };
+
+ // Gets the size of the given theme part. For variable sized items
+ // like vertical scrollbar thumbs, the width will be the required width of
+ // the track while the height will be the minimum height.
+ virtual WebSize getSize(Part) { return WebSize(); }
+ // Paint the given the given theme part.
+ virtual void paint(WebCanvas*, Part, State, const WebRect&, const ExtraParams*) { }
+};
+
+} // namespace WebKit
+
+#endif
Modified: trunk/Source/WebKit/chromium/src/PlatformSupport.cpp (94858 => 94859)
--- trunk/Source/WebKit/chromium/src/PlatformSupport.cpp 2011-09-09 16:49:49 UTC (rev 94858)
+++ trunk/Source/WebKit/chromium/src/PlatformSupport.cpp 2011-09-09 16:58:11 UTC (rev 94859)
@@ -73,10 +73,12 @@
#if OS(DARWIN)
#include "mac/WebThemeEngine.h"
-#elif OS(UNIX)
+#elif OS(UNIX) && !OS(ANDROID)
#include "linux/WebThemeEngine.h"
#include "WebFontInfo.h"
#include "WebFontRenderStyle.h"
+#elif OS(ANDROID)
+#include "android/WebThemeEngine.h"
#endif
#if WEBKIT_USING_SKIA
@@ -461,6 +463,11 @@
#elif OS(UNIX)
String PlatformSupport::getFontFamilyForCharacters(const UChar* characters, size_t numCharacters, const char* preferredLocale)
{
+#if OS(ANDROID)
+ // FIXME: We do not use fontconfig on Android, so use simple logic for now.
+ // https://bugs.webkit.org/show_bug.cgi?id=67587
+ return WebString("Arial");
+#else
if (webKitPlatformSupport()->sandboxSupport())
return webKitPlatformSupport()->sandboxSupport()->getFontFamilyForCharacters(characters, numCharacters, preferredLocale);
@@ -469,10 +476,12 @@
return WebString::fromUTF8(family.data());
return WebString();
+#endif
}
void PlatformSupport::getRenderStyleForStrike(const char* font, int sizeAndStyle, FontRenderStyle* result)
{
+#if !OS(ANDROID)
WebFontRenderStyle style;
if (webKitPlatformSupport()->sandboxSupport())
@@ -481,6 +490,7 @@
WebFontInfo::renderStyleForStrike(font, sizeAndStyle, &style);
style.toFontRenderStyle(result);
+#endif
}
#endif
Modified: trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp (94858 => 94859)
--- trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp 2011-09-09 16:49:49 UTC (rev 94858)
+++ trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp 2011-09-09 16:58:11 UTC (rev 94859)
@@ -163,7 +163,7 @@
#include <algorithm>
#include <wtf/CurrentTime.h>
-#if OS(UNIX) && !OS(DARWIN)
+#if OS(UNIX) && !OS(DARWIN) && !OS(ANDROID)
#include <gdk/gdk.h>
#endif