summaryrefslogtreecommitdiffstats
path: root/WebCore/WebCorePrefixAndroid.h
blob: a354b08842894f9e687281cf68f49acc0ef38124 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/*
 * Copyright 2007, The Android Open Source Project
 *
 * 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.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. 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.
 */

// This prefix file is for Android only. It should contain only:
//    - the special trick to catch us using new or delete without including "config.h"
// Things that need to be defined globally should go into "config.h".

#include <limits.h>
#include <math.h>   // !!! is this allowed as a standard include?
#include <pthread.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>

// Both JavaScriptCore and WebCore include config.h in almost every file.
// Unfortunately only one gets picked up if we compile all the files in one
// library. Since they can operate together, include it here so it is always
// pulled in.
#include <JavaScriptCore/config.h>

#ifdef __cplusplus
#define PREFIX_FOR_WEBCORE 1
#define EXPORT __attribute__((visibility("default")))

#include <algorithm>
#include "stl_iterator_base.h"
#include "heap.h"
#include <memory>
#include <new>

#endif

#ifdef __cplusplus
#define new ("if you use new/delete make sure to include config.h at the top of the file"()) 
#define delete ("if you use new/delete make sure to include config.h at the top of the file"()) 
#endif

typedef short int   flex_int16_t;
typedef int     flex_int32_t;
typedef signed char     flex_int8_t;
typedef unsigned short int  flex_uint16_t;
typedef unsigned int    flex_uint32_t;
typedef unsigned char   flex_uint8_t;

#define FLATTEN_FRAMESET
#define FLATTEN_IFRAME

#define ANDROID_EXPOSE_COLUMN_GAP

#define ANDROID_LAYOUT

#define ANDROID_FIX

// Fix for issue 878095.  Only call onBlur on an element if it has an
// onBlur event.
#define ANDROID_IGNORE_BLUR

// Passes the webkit-originated changes of a focused textfield to our UI thread
#define ANDROID_ACCEPT_CHANGES_TO_FOCUSED_TEXTFIELDS

// Fix for an issue where WebKit was scrolling a focused element onscreen.
// Unnecessary for us, since we handle scrolling outside of WebKit.
#define ANDROID_SCROLL_FIX

#define ANDROID_META_SUPPORT

// Converts ListBoxes to dropdown popup lists.
#define ANDROID_LISTBOX_USES_MENU_LIST

#define ANDROID_ALLOW_TRANSPARENT_BACKGROUNDS
#define ANDROID_HISTORY_CLIENT
#define ANDROID_MULTIPLE_WINDOWS
#define ANDROID_CSS_TAP_HIGHLIGHT_COLOR

// Hack to make File Upload buttons draw disabled.
// Will be removed if/when we get file uploads working.
#define ANDROID_DISABLE_UPLOAD

#define ANDROID_BLOCK_NETWORK_IMAGE

// Changes needed to support native plugins (npapi.h). If the change is generic,
// it may be under a different #define (see: PLUGIN_PLATFORM_SETVALUE,
// PLUGIN_SCHEDULE_TIMER)
#define ANDROID_PLUGINS

// This should possibly be patched back to WebKit since they seem to lose the
// user gesture hint. If we do decide to patch this back, the user gesture flag
// should probably be passed in the NavigationAction rather than the
// ResourceRequest.
#define ANDROID_USER_GESTURE

// Add support for the orientation window property
#define ANDROID_ORIENTATION_SUPPORT

// This enables a portable implementation of NPN_[Un]ScheduleTimer
// Will submit this as a patch to apple
#define PLUGIN_SCHEDULE_TIMER

// This adds platformInit() and platformSetValue() to pluginview
// Will submit this as a patch to apple
#define PLUGIN_PLATFORM_SETVALUE

// This enables logging the DOM tree, Render tree even for the release build
#define ANDROID_DOM_LOGGING

// Notify WebViewCore when a clipped out rectangle is drawn,
// so that all invals are captured by the display tree.  
#define ANDROID_CAPTURE_OFFSCREEN_PAINTS

// This disables the css position:fixed to the Browser window. Instead the fixed
// element will be always fixed to the top page.
#define ANDROID_DISABLE_POSITION_FIXED

// Fix exceptions not surfacing through NPAPI bindings to the
// JavaScriptCore execution context.
#define ANDROID_NPN_SETEXCEPTION 1

// Enable dumping the display tree to a file (triggered in WebView.java)
#define ANDROID_DUMP_DISPLAY_TREE

// Allow webkit to initiate scroll when going to an anchor on a page
// The implementation is not acceptable to webkit. Either scrollRectToVisible
// needs additional flavor or parameter to know that it can't be ignored,
// and/or script engine must keep whether event was user initiated.
#define ANDROID_SCROLL_ON_GOTO_ANCHOR

// Animated GIF support.
#define ANDROID_ANIMATED_GIF