Home | History | Annotate | Download | only in API
      1 /*
      2  * Copyright (C) 2008, 2009, 2010 Apple Inc. All Rights Reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions
      6  * are met:
      7  * 1. Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  * 2. Redistributions in binary form must reproduce the above copyright
     10  *    notice, this list of conditions and the following disclaimer in the
     11  *    documentation and/or other materials provided with the distribution.
     12  *
     13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
     14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
     17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24  */
     25 
     26 #ifndef __WebKitAvailability__
     27 #define __WebKitAvailability__
     28 
     29 /* The structure of this header is based on AvailabilityMacros.h.  The major difference is that the availability
     30    macros are defined in terms of WebKit version numbers rather than Mac OS X system version numbers, as WebKit
     31    releases span multiple versions of Mac OS X.
     32 */
     33 
     34 #define WEBKIT_VERSION_1_0    0x0100
     35 #define WEBKIT_VERSION_1_1    0x0110
     36 #define WEBKIT_VERSION_1_2    0x0120
     37 #define WEBKIT_VERSION_1_3    0x0130
     38 #define WEBKIT_VERSION_2_0    0x0200
     39 #define WEBKIT_VERSION_3_0    0x0300
     40 #define WEBKIT_VERSION_3_1    0x0310
     41 #define WEBKIT_VERSION_4_0    0x0400
     42 #define WEBKIT_VERSION_LATEST 0x9999
     43 
     44 #ifdef __APPLE__
     45 #include <AvailabilityMacros.h>
     46 #else
     47 /*
     48  * For non-Mac platforms, require the newest version.
     49  */
     50 #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_LATEST
     51 /*
     52  * only certain compilers support __attribute__((deprecated))
     53  */
     54 #if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
     55     #define DEPRECATED_ATTRIBUTE __attribute__((deprecated))
     56 #else
     57     #define DEPRECATED_ATTRIBUTE
     58 #endif
     59 #endif
     60 
     61 /* The versions of GCC that shipped with Xcode prior to 3.0 (GCC build number < 5400) did not support attributes on methods.
     62    If we are building with one of these versions, we need to omit the attribute.  We achieve this by wrapping the annotation
     63    in WEBKIT_OBJC_METHOD_ANNOTATION, which will remove the annotation when an old version of GCC is in use and will otherwise
     64    expand to the annotation. The same is needed for protocol methods.
     65 */
     66 #if defined(__APPLE_CC__) && __APPLE_CC__ < 5400
     67     #define WEBKIT_OBJC_METHOD_ANNOTATION(ANNOTATION)
     68 #else
     69     #define WEBKIT_OBJC_METHOD_ANNOTATION(ANNOTATION) ANNOTATION
     70 #endif
     71 
     72 
     73 /* If minimum WebKit version is not specified, assume the version that shipped with the target Mac OS X version */
     74 #ifndef WEBKIT_VERSION_MIN_REQUIRED
     75     #if !defined(MAC_OS_X_VERSION_10_2) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_2
     76         #error WebKit was not available prior to Mac OS X 10.2
     77     #elif !defined(MAC_OS_X_VERSION_10_3) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_3
     78         /* WebKit 1.0 is the only version available on Mac OS X 10.2. */
     79         #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_1_0
     80     #elif !defined(MAC_OS_X_VERSION_10_4) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_4
     81         /* WebKit 1.1 is the version that shipped on Mac OS X 10.3. */
     82         #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_1_1
     83     #elif !defined(MAC_OS_X_VERSION_10_5) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
     84         /* WebKit 2.0 is the version that shipped on Mac OS X 10.4. */
     85         #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_2_0
     86     #elif !defined(MAC_OS_X_VERSION_10_6) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
     87         /* WebKit 3.0 is the version that shipped on Mac OS X 10.5. */
     88         #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_3_0
     89     #elif !defined(MAC_OS_X_VERSION_10_7) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
     90         /* WebKit 4.0 is the version that shipped on Mac OS X 10.6. */
     91         #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_4_0
     92     #else
     93         #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_LATEST
     94     #endif
     95 #endif
     96 
     97 
     98 /* If maximum WebKit version is not specified, assume largerof(latest, minimum) */
     99 #ifndef WEBKIT_VERSION_MAX_ALLOWED
    100     #if WEBKIT_VERSION_MIN_REQUIRED > WEBKIT_VERSION_LATEST
    101         #define WEBKIT_VERSION_MAX_ALLOWED WEBKIT_VERSION_MIN_REQUIRED
    102     #else
    103         #define WEBKIT_VERSION_MAX_ALLOWED WEBKIT_VERSION_LATEST
    104     #endif
    105 #endif
    106 
    107 
    108 /* Sanity check the configured values */
    109 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_MIN_REQUIRED
    110     #error WEBKIT_VERSION_MAX_ALLOWED must be >= WEBKIT_VERSION_MIN_REQUIRED
    111 #endif
    112 #if WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_0
    113     #error WEBKIT_VERSION_MIN_REQUIRED must be >= WEBKIT_VERSION_1_0
    114 #endif
    115 
    116 
    117 
    118 
    119 
    120 
    121 /*
    122  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    123  *
    124  * Used on functions introduced in WebKit 1.0
    125  */
    126 #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    127 
    128 /*
    129  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED
    130  *
    131  * Used on functions introduced in WebKit 1.0,
    132  * and deprecated in WebKit 1.0
    133  */
    134 #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    135 
    136 /*
    137  * DEPRECATED_IN_WEBKIT_VERSION_1_0_AND_LATER
    138  *
    139  * Used on types deprecated in WebKit 1.0
    140  */
    141 #define DEPRECATED_IN_WEBKIT_VERSION_1_0_AND_LATER     DEPRECATED_ATTRIBUTE
    142 
    143 
    144 
    145 
    146 
    147 
    148 /*
    149  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    150  *
    151  * Used on declarations introduced in WebKit 1.1
    152  */
    153 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_1_1
    154     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
    155 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_1
    156     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    157 #else
    158     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    159 #endif
    160 
    161 /*
    162  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED
    163  *
    164  * Used on declarations introduced in WebKit 1.1,
    165  * and deprecated in WebKit 1.1
    166  */
    167 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_1
    168     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    169 #else
    170     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    171 #endif
    172 
    173 /*
    174  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_1
    175  *
    176  * Used on declarations introduced in WebKit 1.0,
    177  * but later deprecated in WebKit 1.1
    178  */
    179 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_1
    180     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_1    DEPRECATED_ATTRIBUTE
    181 #else
    182     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_1    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    183 #endif
    184 
    185 /*
    186  * DEPRECATED_IN_WEBKIT_VERSION_1_1_AND_LATER
    187  *
    188  * Used on types deprecated in WebKit 1.1
    189  */
    190 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_1
    191     #define DEPRECATED_IN_WEBKIT_VERSION_1_1_AND_LATER    DEPRECATED_ATTRIBUTE
    192 #else
    193     #define DEPRECATED_IN_WEBKIT_VERSION_1_1_AND_LATER
    194 #endif
    195 
    196 
    197 
    198 
    199 
    200 
    201 /*
    202  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    203  *
    204  * Used on declarations introduced in WebKit 1.2
    205  */
    206 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_1_2
    207     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
    208 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_2
    209     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    210 #else
    211     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    212 #endif
    213 
    214 /*
    215  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED
    216  *
    217  * Used on declarations introduced in WebKit 1.2,
    218  * and deprecated in WebKit 1.2
    219  */
    220 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    221     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    222 #else
    223     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    224 #endif
    225 
    226 /*
    227  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2
    228  *
    229  * Used on declarations introduced in WebKit 1.0,
    230  * but later deprecated in WebKit 1.2
    231  */
    232 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    233     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    DEPRECATED_ATTRIBUTE
    234 #else
    235     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    236 #endif
    237 
    238 /*
    239  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2
    240  *
    241  * Used on declarations introduced in WebKit 1.1,
    242  * but later deprecated in WebKit 1.2
    243  */
    244 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    245     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    DEPRECATED_ATTRIBUTE
    246 #else
    247     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    248 #endif
    249 
    250 /*
    251  * DEPRECATED_IN_WEBKIT_VERSION_1_2_AND_LATER
    252  *
    253  * Used on types deprecated in WebKit 1.2
    254  */
    255 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    256     #define DEPRECATED_IN_WEBKIT_VERSION_1_2_AND_LATER    DEPRECATED_ATTRIBUTE
    257 #else
    258     #define DEPRECATED_IN_WEBKIT_VERSION_1_2_AND_LATER
    259 #endif
    260 
    261 
    262 
    263 
    264 
    265 
    266 /*
    267  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    268  *
    269  * Used on declarations introduced in WebKit 1.3
    270  */
    271 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_1_3
    272     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
    273 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_3
    274     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    275 #else
    276     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    277 #endif
    278 
    279 /*
    280  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED
    281  *
    282  * Used on declarations introduced in WebKit 1.3,
    283  * and deprecated in WebKit 1.3
    284  */
    285 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    286     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    287 #else
    288     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    289 #endif
    290 
    291 /*
    292  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3
    293  *
    294  * Used on declarations introduced in WebKit 1.0,
    295  * but later deprecated in WebKit 1.3
    296  */
    297 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    298     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    DEPRECATED_ATTRIBUTE
    299 #else
    300     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    301 #endif
    302 
    303 /*
    304  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3
    305  *
    306  * Used on declarations introduced in WebKit 1.1,
    307  * but later deprecated in WebKit 1.3
    308  */
    309 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    310     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    DEPRECATED_ATTRIBUTE
    311 #else
    312     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    313 #endif
    314 
    315 /*
    316  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3
    317  *
    318  * Used on declarations introduced in WebKit 1.2,
    319  * but later deprecated in WebKit 1.3
    320  */
    321 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    322     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    DEPRECATED_ATTRIBUTE
    323 #else
    324     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    325 #endif
    326 
    327 /*
    328  * DEPRECATED_IN_WEBKIT_VERSION_1_3_AND_LATER
    329  *
    330  * Used on types deprecated in WebKit 1.3
    331  */
    332 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    333     #define DEPRECATED_IN_WEBKIT_VERSION_1_3_AND_LATER    DEPRECATED_ATTRIBUTE
    334 #else
    335     #define DEPRECATED_IN_WEBKIT_VERSION_1_3_AND_LATER
    336 #endif
    337 
    338 
    339 
    340 
    341 
    342 
    343 /*
    344  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    345  *
    346  * Used on declarations introduced in WebKit 2.0
    347  */
    348 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_2_0
    349     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER     UNAVAILABLE_ATTRIBUTE
    350 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_2_0
    351     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    352 #else
    353     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    354 #endif
    355 
    356 /*
    357  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED
    358  *
    359  * Used on declarations introduced in WebKit 2.0,
    360  * and deprecated in WebKit 2.0
    361  */
    362 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    363     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    364 #else
    365     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    366 #endif
    367 
    368 /*
    369  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    370  *
    371  * Used on declarations introduced in WebKit 1.0,
    372  * but later deprecated in WebKit 2.0
    373  */
    374 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    375     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    376 #else
    377     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    378 #endif
    379 
    380 /*
    381  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    382  *
    383  * Used on declarations introduced in WebKit 1.1,
    384  * but later deprecated in WebKit 2.0
    385  */
    386 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    387     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    388 #else
    389     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    390 #endif
    391 
    392 /*
    393  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    394  *
    395  * Used on declarations introduced in WebKit 1.2,
    396  * but later deprecated in WebKit 2.0
    397  */
    398 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    399     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    400 #else
    401     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    402 #endif
    403 
    404 /*
    405  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    406  *
    407  * Used on declarations introduced in WebKit 1.3,
    408  * but later deprecated in WebKit 2.0
    409  */
    410 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    411     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    412 #else
    413     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    414 #endif
    415 
    416 /*
    417  * DEPRECATED_IN_WEBKIT_VERSION_2_0_AND_LATER
    418  *
    419  * Used on types deprecated in WebKit 2.0
    420  */
    421 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    422     #define DEPRECATED_IN_WEBKIT_VERSION_2_0_AND_LATER    DEPRECATED_ATTRIBUTE
    423 #else
    424     #define DEPRECATED_IN_WEBKIT_VERSION_2_0_AND_LATER
    425 #endif
    426 
    427 
    428 
    429 
    430 
    431 
    432 /*
    433  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    434  *
    435  * Used on declarations introduced in WebKit 3.0
    436  */
    437 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_3_0
    438     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER     UNAVAILABLE_ATTRIBUTE
    439 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_3_0
    440     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    441 #else
    442     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    443 #endif
    444 
    445 /*
    446  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED
    447  *
    448  * Used on declarations introduced in WebKit 3.0,
    449  * and deprecated in WebKit 3.0
    450  */
    451 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    452     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    453 #else
    454     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    455 #endif
    456 
    457 /*
    458  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    459  *
    460  * Used on declarations introduced in WebKit 1.0,
    461  * but later deprecated in WebKit 3.0
    462  */
    463 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    464     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    465 #else
    466     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    467 #endif
    468 
    469 /*
    470  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    471  *
    472  * Used on declarations introduced in WebKit 1.1,
    473  * but later deprecated in WebKit 3.0
    474  */
    475 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    476     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    477 #else
    478     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    479 #endif
    480 
    481 /*
    482  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    483  *
    484  * Used on declarations introduced in WebKit 1.2,
    485  * but later deprecated in WebKit 3.0
    486  */
    487 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    488     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    489 #else
    490     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    491 #endif
    492 
    493 /*
    494  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    495  *
    496  * Used on declarations introduced in WebKit 1.3,
    497  * but later deprecated in WebKit 3.0
    498  */
    499 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    500     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    501 #else
    502     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    503 #endif
    504 
    505 /*
    506  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    507  *
    508  * Used on declarations introduced in WebKit 2.0,
    509  * but later deprecated in WebKit 3.0
    510  */
    511 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    512     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    513 #else
    514     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    515 #endif
    516 
    517 /*
    518  * DEPRECATED_IN_WEBKIT_VERSION_3_0_AND_LATER
    519  *
    520  * Used on types deprecated in WebKit 3.0
    521  */
    522 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    523     #define DEPRECATED_IN_WEBKIT_VERSION_3_0_AND_LATER    DEPRECATED_ATTRIBUTE
    524 #else
    525     #define DEPRECATED_IN_WEBKIT_VERSION_3_0_AND_LATER
    526 #endif
    527 
    528 
    529 
    530 
    531 
    532 
    533 /*
    534  * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    535  *
    536  * Used on declarations introduced in WebKit 3.1
    537  */
    538 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_3_1
    539     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
    540 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_3_1
    541     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    542 #else
    543     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    544 #endif
    545 
    546 /*
    547  * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED
    548  *
    549  * Used on declarations introduced in WebKit 3.1,
    550  * and deprecated in WebKit 3.1
    551  */
    552 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    553     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    554 #else
    555     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    556 #endif
    557 
    558 /*
    559  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    560  *
    561  * Used on declarations introduced in WebKit 1.0,
    562  * but later deprecated in WebKit 3.1
    563  */
    564 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    565     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    566 #else
    567     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    568 #endif
    569 
    570 /*
    571  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    572  *
    573  * Used on declarations introduced in WebKit 1.1,
    574  * but later deprecated in WebKit 3.1
    575  */
    576 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    577     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    578 #else
    579     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    580 #endif
    581 
    582 /*
    583  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    584  *
    585  * Used on declarations introduced in WebKit 1.2,
    586  * but later deprecated in WebKit 3.1
    587  */
    588 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    589     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    590 #else
    591     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    592 #endif
    593 
    594 /*
    595  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    596  *
    597  * Used on declarations introduced in WebKit 1.3,
    598  * but later deprecated in WebKit 3.1
    599  */
    600 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    601     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    602 #else
    603     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    604 #endif
    605 
    606 /*
    607  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    608  *
    609  * Used on declarations introduced in WebKit 2.0,
    610  * but later deprecated in WebKit 3.1
    611  */
    612 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    613     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    614 #else
    615     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    616 #endif
    617 
    618 /*
    619  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    620  *
    621  * Used on declarations introduced in WebKit 3.0,
    622  * but later deprecated in WebKit 3.1
    623  */
    624 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    625     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    626 #else
    627     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    628 #endif
    629 
    630 /*
    631  * DEPRECATED_IN_WEBKIT_VERSION_3_1_AND_LATER
    632  *
    633  * Used on types deprecated in WebKit 3.1
    634  */
    635 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    636     #define DEPRECATED_IN_WEBKIT_VERSION_3_1_AND_LATER    DEPRECATED_ATTRIBUTE
    637 #else
    638     #define DEPRECATED_IN_WEBKIT_VERSION_3_1_AND_LATER
    639 #endif
    640 
    641 
    642 
    643 
    644 
    645 
    646 /*
    647  * AVAILABLE_IN_WEBKIT_VERSION_4_0
    648  *
    649  * Used on declarations introduced in WebKit 4.0
    650  */
    651 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_4_0
    652     #define AVAILABLE_IN_WEBKIT_VERSION_4_0     UNAVAILABLE_ATTRIBUTE
    653 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_4_0
    654     #define AVAILABLE_IN_WEBKIT_VERSION_4_0     WEAK_IMPORT_ATTRIBUTE
    655 #else
    656     #define AVAILABLE_IN_WEBKIT_VERSION_4_0
    657 #endif
    658 
    659 /*
    660  * AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED
    661  *
    662  * Used on declarations introduced in WebKit 4.0,
    663  * and deprecated in WebKit 4.0
    664  */
    665 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    666     #define AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    667 #else
    668     #define AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED    AVAILABLE_IN_WEBKIT_VERSION_4_0
    669 #endif
    670 
    671 /*
    672  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    673  *
    674  * Used on declarations introduced in WebKit 1.0,
    675  * but later deprecated in WebKit 4.0
    676  */
    677 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    678     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    679 #else
    680     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    681 #endif
    682 
    683 /*
    684  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    685  *
    686  * Used on declarations introduced in WebKit 1.1,
    687  * but later deprecated in WebKit 4.0
    688  */
    689 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    690     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    691 #else
    692     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    693 #endif
    694 
    695 /*
    696  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    697  *
    698  * Used on declarations introduced in WebKit 1.2,
    699  * but later deprecated in WebKit 4.0
    700  */
    701 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    702     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    703 #else
    704     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    705 #endif
    706 
    707 /*
    708  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    709  *
    710  * Used on declarations introduced in WebKit 1.3,
    711  * but later deprecated in WebKit 4.0
    712  */
    713 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    714     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    715 #else
    716     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    717 #endif
    718 
    719 /*
    720  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    721  *
    722  * Used on declarations introduced in WebKit 2.0,
    723  * but later deprecated in WebKit 4.0
    724  */
    725 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    726     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    727 #else
    728     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    729 #endif
    730 
    731 /*
    732  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    733  *
    734  * Used on declarations introduced in WebKit 3.0,
    735  * but later deprecated in WebKit 4.0
    736  */
    737 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    738     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    739 #else
    740     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    741 #endif
    742 
    743 /*
    744  * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    745  *
    746  * Used on declarations introduced in WebKit 3.1,
    747  * but later deprecated in WebKit 4.0
    748  */
    749 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    750     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    751 #else
    752     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    753 #endif
    754 
    755 /*
    756  * DEPRECATED_IN_WEBKIT_VERSION_4_0
    757  *
    758  * Used on types deprecated in WebKit 4.0
    759  */
    760 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_4_0
    761     #define DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    762 #else
    763     #define DEPRECATED_IN_WEBKIT_VERSION_4_0
    764 #endif
    765 
    766 
    767 
    768 
    769 
    770 
    771 /*
    772  * AVAILABLE_AFTER_WEBKIT_VERSION_4_0
    773  *
    774  * Used on declarations introduced after WebKit 4.0
    775  */
    776 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_LATEST
    777     #define AVAILABLE_AFTER_WEBKIT_VERSION_4_0     UNAVAILABLE_ATTRIBUTE
    778 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_LATEST
    779     #define AVAILABLE_AFTER_WEBKIT_VERSION_4_0     WEAK_IMPORT_ATTRIBUTE
    780 #else
    781     #define AVAILABLE_AFTER_WEBKIT_VERSION_4_0
    782 #endif
    783 
    784 /*
    785  * AVAILABLE_AFTER_WEBKIT_VERSION_4_0_BUT_DEPRECATED
    786  *
    787  * Used on declarations introduced after WebKit 4.0,
    788  * and deprecated after WebKit 4.0
    789  */
    790 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    791     #define AVAILABLE_AFTER_WEBKIT_VERSION_4_0_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    792 #else
    793     #define AVAILABLE_AFTER_WEBKIT_VERSION_4_0_BUT_DEPRECATED    AVAILABLE_AFTER_WEBKIT_VERSION_4_0
    794 #endif
    795 
    796 /*
    797  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    798  *
    799  * Used on declarations introduced in WebKit 1.0,
    800  * but later deprecated after WebKit 4.0
    801  */
    802 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    803     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    804 #else
    805     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    806 #endif
    807 
    808 /*
    809  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    810  *
    811  * Used on declarations introduced in WebKit 1.1,
    812  * but later deprecated after WebKit 4.0
    813  */
    814 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    815     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    816 #else
    817     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    818 #endif
    819 
    820 /*
    821  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    822  *
    823  * Used on declarations introduced in WebKit 1.2,
    824  * but later deprecated after WebKit 4.0
    825  */
    826 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    827     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    828 #else
    829     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    830 #endif
    831 
    832 /*
    833  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    834  *
    835  * Used on declarations introduced in WebKit 1.3,
    836  * but later deprecated after WebKit 4.0
    837  */
    838 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    839     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    840 #else
    841     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    842 #endif
    843 
    844 /*
    845  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    846  *
    847  * Used on declarations introduced in WebKit 2.0,
    848  * but later deprecated after WebKit 4.0
    849  */
    850 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    851     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    852 #else
    853     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    854 #endif
    855 
    856 /*
    857  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    858  *
    859  * Used on declarations introduced in WebKit 3.0,
    860  * but later deprecated after WebKit 4.0
    861  */
    862 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    863     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    864 #else
    865     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    866 #endif
    867 
    868 /*
    869  * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    870  *
    871  * Used on declarations introduced in WebKit 3.1,
    872  * but later deprecated after WebKit 4.0
    873  */
    874 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    875     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    876 #else
    877     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    878 #endif
    879 
    880 /*
    881  * AVAILABLE_WEBKIT_VERSION_4_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    882  *
    883  * Used on declarations introduced in WebKit 4.0
    884  * but later deprecated after WebKit 4.0
    885  */
    886 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    887     #define AVAILABLE_WEBKIT_VERSION_4_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    888 #else
    889     #define AVAILABLE_WEBKIT_VERSION_4_0_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_4_0_AND_LATER
    890 #endif
    891 
    892 /*
    893  * DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    894  *
    895  * Used on types deprecated after WebKit 4.0
    896  */
    897 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    898     #define DEPRECATED_AFTER_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    899 #else
    900     #define DEPRECATED_AFTER_WEBKIT_VERSION_4_0
    901 #endif
    902 
    903 
    904 #endif /* __WebKitAvailability__ */
    905