130e7f21d3
Objective-C names in our libwebcore.a by giving our Objective-C WebCore classes alternate names. Review URL: http://codereview.chromium.org/43094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11631 0039d316-1c4b-4281-b951-d872f2087c98
212 linhas
5.7 KiB
C
212 linhas
5.7 KiB
C
/*
|
|
* Copyright (C) 2004, 2005, 2006 Apple Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public License
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#if defined(HAVE_CONFIG_H) && HAVE_CONFIG_H
|
|
#include "autotoolsconfig.h"
|
|
#endif
|
|
|
|
#include <wtf/Platform.h>
|
|
|
|
#define MOBILE 0
|
|
|
|
#ifdef __APPLE__
|
|
#define HAVE_FUNC_USLEEP 1
|
|
#endif /* __APPLE__ */
|
|
|
|
#if PLATFORM(WIN_OS)
|
|
|
|
#ifndef _WIN32_WINNT
|
|
#define _WIN32_WINNT 0x0500
|
|
#endif
|
|
|
|
#ifndef WINVER
|
|
#define WINVER 0x0500
|
|
#endif
|
|
|
|
// If we don't define these, they get defined in windef.h.
|
|
// We want to use std::min and std::max.
|
|
#ifndef max
|
|
#define max max
|
|
#endif
|
|
#ifndef min
|
|
#define min min
|
|
#endif
|
|
|
|
// CURL needs winsock, so don't prevent inclusion of it
|
|
#if !USE(CURL)
|
|
#ifndef _WINSOCKAPI_
|
|
#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* PLATFORM(WIN_OS) */
|
|
|
|
// On MSW, wx headers need to be included before windows.h is.
|
|
// The only way we can always ensure this is if we include wx here.
|
|
#if PLATFORM(WX)
|
|
// The defines in KeyboardCodes.h conflict with Windows as well, and the only way I've found
|
|
// to address the problem is include KeyboarddCodes.h before windows.h, so do it here.
|
|
#include "KeyboardCodes.h"
|
|
#include <wx/defs.h>
|
|
#endif
|
|
|
|
#if !PLATFORM(SYMBIAN)
|
|
#define IMPORT_C
|
|
#define EXPORT_C
|
|
#endif
|
|
|
|
#define WTF_CHANGES 1
|
|
|
|
#ifdef __cplusplus
|
|
|
|
// These undefs match up with defines in WebCorePrefix.h for Mac OS X.
|
|
// Helps us catch if anyone uses new or delete by accident in code and doesn't include "config.h".
|
|
#undef new
|
|
#undef delete
|
|
#include <wtf/FastMalloc.h>
|
|
|
|
#endif
|
|
|
|
// this breaks compilation of <QFontDatabase>, at least, so turn it off for now
|
|
// Also generates errors on wx on Windows, presumably because these functions
|
|
// are used from wx headers.
|
|
#if !PLATFORM(QT) && !PLATFORM(WX) && !PLATFORM(CHROMIUM)
|
|
#include <wtf/DisallowCType.h>
|
|
#endif
|
|
|
|
#if COMPILER(MSVC)
|
|
#define SKIP_STATIC_CONSTRUCTORS_ON_MSVC 1
|
|
#else
|
|
#define SKIP_STATIC_CONSTRUCTORS_ON_GCC 1
|
|
#endif
|
|
|
|
#if PLATFORM(WIN)
|
|
#define WTF_PLATFORM_CG 1
|
|
#undef WTF_PLATFORM_CAIRO
|
|
#define WTF_USE_CFNETWORK 1
|
|
#undef WTF_USE_WININET
|
|
#define WTF_PLATFORM_CF 1
|
|
#define WTF_USE_PTHREADS 0
|
|
#endif
|
|
|
|
#if PLATFORM(SYMBIAN)
|
|
#undef WIN32
|
|
#undef _WIN32
|
|
#undef SKIP_STATIC_CONSTRUCTORS_ON_GCC
|
|
#define USE_SYSTEM_MALLOC 1
|
|
#define U_HAVE_INT8_T 0
|
|
#define U_HAVE_INT16_T 0
|
|
#define U_HAVE_INT32_T 0
|
|
#define U_HAVE_INT64_T 0
|
|
#define U_HAVE_INTTYPES_H 0
|
|
|
|
#include <stdio.h>
|
|
#include <snprintf.h>
|
|
#include <limits.h>
|
|
#include <wtf/MathExtras.h>
|
|
#endif
|
|
|
|
#if PLATFORM(CHROMIUM)
|
|
|
|
#define WTF_USE_GOOGLEURL 1
|
|
|
|
#if PLATFORM(DARWIN)
|
|
|
|
// Chromium's version of WebCore includes the following Objective-C classes.
|
|
// The system-provided WebCore framework may also provide these classes.
|
|
// Because of the nature of Objective-C binding (dynamically at runtime),
|
|
// it's possible for the Chromium-provided versions to interfere with the
|
|
// system-provided versions. This may happen when a system framework attempts
|
|
// to use WebCore.framework, such as when converting an HTML-flavored string
|
|
// to an NSAttributedString. The solution is to force Objective-C class names
|
|
// that would conflict to use alternate names.
|
|
//
|
|
// TODO(mark): This list will hopefully shrink but may also grow. Periodically
|
|
// run "nm libwebcore.a | grep -E '[atsATS] ([+-]\[|\.objc_class_name)'" and
|
|
// make sure that everything listed there has the alternate ChromiumWebCoreObjC
|
|
// name, and that nothing extraneous is listed here. If all Objective-C can
|
|
// be eliminated from Chromium's WebCore library, these defines should be
|
|
// removed entirely.
|
|
|
|
#define ScrollbarPrefsObserver \
|
|
ChromiumWebCoreObjCScrollbarPrefsObserver
|
|
#define WebCoreControlTintObserver \
|
|
ChromiumWebCoreObjCWebCoreControlTintObserver
|
|
#define WebCoreRenderThemeNotificationObserver \
|
|
ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver
|
|
#define WebFontCache \
|
|
ChromiumWebCoreObjCWebFontCache
|
|
|
|
#else // !PLATFORM(DARWIN)
|
|
|
|
// Don't define SKIA on Mac. Undefine other things as well that might get set
|
|
// as side-effects.
|
|
#define WTF_PLATFORM_SKIA 1
|
|
#undef WTF_PLATFORM_CG
|
|
#undef WTF_PLATFORM_CF
|
|
|
|
#endif // !PLATFORM(DARWIN)
|
|
|
|
#if !defined(WTF_USE_V8)
|
|
#define WTF_USE_V8 1
|
|
#endif
|
|
|
|
#undef WTF_USE_CFNETWORK
|
|
// Upstream Platform.h's #ifdef check for other graphics libraries doesn't
|
|
// check SKIA, so it falls back on defining CAIRO. Undo that here.
|
|
// TODO(evanm): clean this up.
|
|
#undef WTF_PLATFORM_CAIRO
|
|
#endif // if PLATFORM(CHROMIUM)
|
|
|
|
#if !defined(WTF_USE_V8)
|
|
#define WTF_USE_V8 0
|
|
#endif
|
|
|
|
/* Using V8 implies not using JSC and vice versa */
|
|
#define WTF_USE_JSC !WTF_USE_V8
|
|
|
|
#if PLATFORM(CG)
|
|
#ifndef CGFLOAT_DEFINED
|
|
#ifdef __LP64__
|
|
typedef double CGFloat;
|
|
#else
|
|
typedef float CGFloat;
|
|
#endif
|
|
#define CGFLOAT_DEFINED 1
|
|
#endif
|
|
#endif /* PLATFORM(CG) */
|
|
|
|
#ifdef BUILDING_ON_TIGER
|
|
#undef ENABLE_FTPDIR
|
|
#define ENABLE_FTPDIR 0
|
|
#endif
|
|
|
|
#if PLATFORM(WIN) && PLATFORM(CG)
|
|
#define WTF_USE_SAFARI_THEME 1
|
|
#endif
|
|
|
|
#ifndef WEBCORE_NAVIGATOR_VENDOR
|
|
#ifdef GOOGLE_CHROME_BUILD
|
|
#define WEBCORE_NAVIGATOR_VENDOR "Google Inc."
|
|
#else
|
|
#define WEBCORE_NAVIGATOR_VENDOR ""
|
|
#endif // ifdef GOOGLE_CHROME_BUILD
|
|
#endif // ifndef WEBCORE_NAVIGATOR_VENDOR
|