Home | History | Annotate | Download | only in API
      1 /*
      2  * Copyright (C) 2008 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 #import <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     #else
     90         #define WEBKIT_VERSION_MIN_REQUIRED WEBKIT_VERSION_LATEST
     91     #endif
     92 #endif
     93 
     94 
     95 /* If maximum WebKit version is not specified, assume largerof(latest, minimum) */
     96 #ifndef WEBKIT_VERSION_MAX_ALLOWED
     97     #if WEBKIT_VERSION_MIN_REQUIRED > WEBKIT_VERSION_LATEST
     98         #define WEBKIT_VERSION_MAX_ALLOWED WEBKIT_VERSION_MIN_REQUIRED
     99     #else
    100         #define WEBKIT_VERSION_MAX_ALLOWED WEBKIT_VERSION_LATEST
    101     #endif
    102 #endif
    103 
    104 
    105 /* Sanity check the configured values */
    106 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_MIN_REQUIRED
    107     #error WEBKIT_VERSION_MAX_ALLOWED must be >= WEBKIT_VERSION_MIN_REQUIRED
    108 #endif
    109 #if WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_0
    110     #error WEBKIT_VERSION_MIN_REQUIRED must be >= WEBKIT_VERSION_1_0
    111 #endif
    112 
    113 
    114 
    115 
    116 
    117 
    118 /*
    119  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    120  *
    121  * Used on functions introduced in WebKit 1.0
    122  */
    123 #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    124 
    125 /*
    126  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED
    127  *
    128  * Used on functions introduced in WebKit 1.0,
    129  * and deprecated in WebKit 1.0
    130  */
    131 #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    132 
    133 /*
    134  * DEPRECATED_IN_WEBKIT_VERSION_1_0_AND_LATER
    135  *
    136  * Used on types deprecated in WebKit 1.0
    137  */
    138 #define DEPRECATED_IN_WEBKIT_VERSION_1_0_AND_LATER     DEPRECATED_ATTRIBUTE
    139 
    140 
    141 
    142 
    143 
    144 
    145 /*
    146  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    147  *
    148  * Used on declarations introduced in WebKit 1.1
    149  */
    150 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_1_1
    151     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
    152 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_1
    153     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    154 #else
    155     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    156 #endif
    157 
    158 /*
    159  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED
    160  *
    161  * Used on declarations introduced in WebKit 1.1,
    162  * and deprecated in WebKit 1.1
    163  */
    164 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_1
    165     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    166 #else
    167     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    168 #endif
    169 
    170 /*
    171  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_1
    172  *
    173  * Used on declarations introduced in WebKit 1.0,
    174  * but later deprecated in WebKit 1.1
    175  */
    176 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_1
    177     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_1    DEPRECATED_ATTRIBUTE
    178 #else
    179     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_1    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    180 #endif
    181 
    182 /*
    183  * DEPRECATED_IN_WEBKIT_VERSION_1_1_AND_LATER
    184  *
    185  * Used on types deprecated in WebKit 1.1
    186  */
    187 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_1
    188     #define DEPRECATED_IN_WEBKIT_VERSION_1_1_AND_LATER    DEPRECATED_ATTRIBUTE
    189 #else
    190     #define DEPRECATED_IN_WEBKIT_VERSION_1_1_AND_LATER
    191 #endif
    192 
    193 
    194 
    195 
    196 
    197 
    198 /*
    199  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    200  *
    201  * Used on declarations introduced in WebKit 1.2
    202  */
    203 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_1_2
    204     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER     UNAVAILABLE_ATTRIBUTE
    205 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_2
    206     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    207 #else
    208     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    209 #endif
    210 
    211 /*
    212  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED
    213  *
    214  * Used on declarations introduced in WebKit 1.2,
    215  * and deprecated in WebKit 1.2
    216  */
    217 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    218     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    219 #else
    220     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    221 #endif
    222 
    223 /*
    224  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2
    225  *
    226  * Used on declarations introduced in WebKit 1.0,
    227  * but later deprecated in WebKit 1.2
    228  */
    229 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    230     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    DEPRECATED_ATTRIBUTE
    231 #else
    232     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    233 #endif
    234 
    235 /*
    236  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2
    237  *
    238  * Used on declarations introduced in WebKit 1.1,
    239  * but later deprecated in WebKit 1.2
    240  */
    241 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    242     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    DEPRECATED_ATTRIBUTE
    243 #else
    244     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_2    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    245 #endif
    246 
    247 /*
    248  * DEPRECATED_IN_WEBKIT_VERSION_1_2_AND_LATER
    249  *
    250  * Used on types deprecated in WebKit 1.2
    251  */
    252 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_2
    253     #define DEPRECATED_IN_WEBKIT_VERSION_1_2_AND_LATER    DEPRECATED_ATTRIBUTE
    254 #else
    255     #define DEPRECATED_IN_WEBKIT_VERSION_1_2_AND_LATER
    256 #endif
    257 
    258 
    259 
    260 
    261 
    262 
    263 /*
    264  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    265  *
    266  * Used on declarations introduced in WebKit 1.3
    267  */
    268 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_1_3
    269     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER     UNAVAILABLE_ATTRIBUTE
    270 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_1_3
    271     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    272 #else
    273     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    274 #endif
    275 
    276 /*
    277  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED
    278  *
    279  * Used on declarations introduced in WebKit 1.3,
    280  * and deprecated in WebKit 1.3
    281  */
    282 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    283     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    284 #else
    285     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    286 #endif
    287 
    288 /*
    289  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3
    290  *
    291  * Used on declarations introduced in WebKit 1.0,
    292  * but later deprecated in WebKit 1.3
    293  */
    294 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    295     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    DEPRECATED_ATTRIBUTE
    296 #else
    297     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    298 #endif
    299 
    300 /*
    301  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3
    302  *
    303  * Used on declarations introduced in WebKit 1.1,
    304  * but later deprecated in WebKit 1.3
    305  */
    306 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    307     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    DEPRECATED_ATTRIBUTE
    308 #else
    309     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    310 #endif
    311 
    312 /*
    313  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3
    314  *
    315  * Used on declarations introduced in WebKit 1.2,
    316  * but later deprecated in WebKit 1.3
    317  */
    318 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    319     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    DEPRECATED_ATTRIBUTE
    320 #else
    321     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_1_3    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    322 #endif
    323 
    324 /*
    325  * DEPRECATED_IN_WEBKIT_VERSION_1_3_AND_LATER
    326  *
    327  * Used on types deprecated in WebKit 1.3
    328  */
    329 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_1_3
    330     #define DEPRECATED_IN_WEBKIT_VERSION_1_3_AND_LATER    DEPRECATED_ATTRIBUTE
    331 #else
    332     #define DEPRECATED_IN_WEBKIT_VERSION_1_3_AND_LATER
    333 #endif
    334 
    335 
    336 
    337 
    338 
    339 
    340 /*
    341  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    342  *
    343  * Used on declarations introduced in WebKit 2.0
    344  */
    345 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_2_0
    346     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER     UNAVAILABLE_ATTRIBUTE
    347 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_2_0
    348     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    349 #else
    350     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    351 #endif
    352 
    353 /*
    354  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED
    355  *
    356  * Used on declarations introduced in WebKit 2.0,
    357  * and deprecated in WebKit 2.0
    358  */
    359 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    360     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    361 #else
    362     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    363 #endif
    364 
    365 /*
    366  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    367  *
    368  * Used on declarations introduced in WebKit 1.0,
    369  * but later deprecated in WebKit 2.0
    370  */
    371 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    372     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    373 #else
    374     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    375 #endif
    376 
    377 /*
    378  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    379  *
    380  * Used on declarations introduced in WebKit 1.1,
    381  * but later deprecated in WebKit 2.0
    382  */
    383 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    384     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    385 #else
    386     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    387 #endif
    388 
    389 /*
    390  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    391  *
    392  * Used on declarations introduced in WebKit 1.2,
    393  * but later deprecated in WebKit 2.0
    394  */
    395 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    396     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    397 #else
    398     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    399 #endif
    400 
    401 /*
    402  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0
    403  *
    404  * Used on declarations introduced in WebKit 1.3,
    405  * but later deprecated in WebKit 2.0
    406  */
    407 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    408     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    DEPRECATED_ATTRIBUTE
    409 #else
    410     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_2_0    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    411 #endif
    412 
    413 /*
    414  * DEPRECATED_IN_WEBKIT_VERSION_2_0_AND_LATER
    415  *
    416  * Used on types deprecated in WebKit 2.0
    417  */
    418 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_2_0
    419     #define DEPRECATED_IN_WEBKIT_VERSION_2_0_AND_LATER    DEPRECATED_ATTRIBUTE
    420 #else
    421     #define DEPRECATED_IN_WEBKIT_VERSION_2_0_AND_LATER
    422 #endif
    423 
    424 
    425 
    426 
    427 
    428 
    429 /*
    430  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    431  *
    432  * Used on declarations introduced in WebKit 3.0
    433  */
    434 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_3_0
    435     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER     UNAVAILABLE_ATTRIBUTE
    436 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_3_0
    437     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    438 #else
    439     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    440 #endif
    441 
    442 /*
    443  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED
    444  *
    445  * Used on declarations introduced in WebKit 3.0,
    446  * and deprecated in WebKit 3.0
    447  */
    448 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    449     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    450 #else
    451     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    452 #endif
    453 
    454 /*
    455  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    456  *
    457  * Used on declarations introduced in WebKit 1.0,
    458  * but later deprecated in WebKit 3.0
    459  */
    460 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    461     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    462 #else
    463     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    464 #endif
    465 
    466 /*
    467  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    468  *
    469  * Used on declarations introduced in WebKit 1.1,
    470  * but later deprecated in WebKit 3.0
    471  */
    472 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    473     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    474 #else
    475     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    476 #endif
    477 
    478 /*
    479  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    480  *
    481  * Used on declarations introduced in WebKit 1.2,
    482  * but later deprecated in WebKit 3.0
    483  */
    484 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    485     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    486 #else
    487     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    488 #endif
    489 
    490 /*
    491  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    492  *
    493  * Used on declarations introduced in WebKit 1.3,
    494  * but later deprecated in WebKit 3.0
    495  */
    496 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    497     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    498 #else
    499     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    500 #endif
    501 
    502 /*
    503  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0
    504  *
    505  * Used on declarations introduced in WebKit 2.0,
    506  * but later deprecated in WebKit 3.0
    507  */
    508 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    509     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    DEPRECATED_ATTRIBUTE
    510 #else
    511     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_0    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    512 #endif
    513 
    514 /*
    515  * DEPRECATED_IN_WEBKIT_VERSION_3_0_AND_LATER
    516  *
    517  * Used on types deprecated in WebKit 3.0
    518  */
    519 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_0
    520     #define DEPRECATED_IN_WEBKIT_VERSION_3_0_AND_LATER    DEPRECATED_ATTRIBUTE
    521 #else
    522     #define DEPRECATED_IN_WEBKIT_VERSION_3_0_AND_LATER
    523 #endif
    524 
    525 
    526 
    527 
    528 
    529 
    530 /*
    531  * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    532  *
    533  * Used on declarations introduced in WebKit 3.1
    534  */
    535 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_3_1
    536     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER     UNAVAILABLE_ATTRIBUTE
    537 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_3_1
    538     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE
    539 #else
    540     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    541 #endif
    542 
    543 /*
    544  * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED
    545  *
    546  * Used on declarations introduced in WebKit 3.1,
    547  * and deprecated in WebKit 3.1
    548  */
    549 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    550     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    551 #else
    552     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    553 #endif
    554 
    555 /*
    556  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    557  *
    558  * Used on declarations introduced in WebKit 1.0,
    559  * but later deprecated in WebKit 3.1
    560  */
    561 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    562     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    563 #else
    564     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    565 #endif
    566 
    567 /*
    568  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    569  *
    570  * Used on declarations introduced in WebKit 1.1,
    571  * but later deprecated in WebKit 3.1
    572  */
    573 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    574     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    575 #else
    576     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    577 #endif
    578 
    579 /*
    580  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    581  *
    582  * Used on declarations introduced in WebKit 1.2,
    583  * but later deprecated in WebKit 3.1
    584  */
    585 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    586     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    587 #else
    588     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    589 #endif
    590 
    591 /*
    592  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    593  *
    594  * Used on declarations introduced in WebKit 1.3,
    595  * but later deprecated in WebKit 3.1
    596  */
    597 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    598     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    599 #else
    600     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    601 #endif
    602 
    603 /*
    604  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    605  *
    606  * Used on declarations introduced in WebKit 2.0,
    607  * but later deprecated in WebKit 3.1
    608  */
    609 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    610     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    611 #else
    612     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    613 #endif
    614 
    615 /*
    616  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1
    617  *
    618  * Used on declarations introduced in WebKit 3.0,
    619  * but later deprecated in WebKit 3.1
    620  */
    621 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    622     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    DEPRECATED_ATTRIBUTE
    623 #else
    624     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_3_1    AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    625 #endif
    626 
    627 /*
    628  * DEPRECATED_IN_WEBKIT_VERSION_3_1_AND_LATER
    629  *
    630  * Used on types deprecated in WebKit 3.1
    631  */
    632 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_3_1
    633     #define DEPRECATED_IN_WEBKIT_VERSION_3_1_AND_LATER    DEPRECATED_ATTRIBUTE
    634 #else
    635     #define DEPRECATED_IN_WEBKIT_VERSION_3_1_AND_LATER
    636 #endif
    637 
    638 
    639 
    640 
    641 
    642 
    643 /*
    644  * AVAILABLE_IN_WEBKIT_VERSION_4_0
    645  *
    646  * Used on declarations introduced in WebKit 4.0
    647  */
    648 #if WEBKIT_VERSION_MAX_ALLOWED < WEBKIT_VERSION_LATEST
    649     #define AVAILABLE_IN_WEBKIT_VERSION_4_0     UNAVAILABLE_ATTRIBUTE
    650 #elif WEBKIT_VERSION_MIN_REQUIRED < WEBKIT_VERSION_LATEST
    651     #define AVAILABLE_IN_WEBKIT_VERSION_4_0     WEAK_IMPORT_ATTRIBUTE
    652 #else
    653     #define AVAILABLE_IN_WEBKIT_VERSION_4_0
    654 #endif
    655 
    656 /*
    657  * AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED
    658  *
    659  * Used on declarations introduced in WebKit 4.0,
    660  * and deprecated in WebKit 4.0
    661  */
    662 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    663     #define AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE
    664 #else
    665     #define AVAILABLE_IN_WEBKIT_VERSION_4_0_BUT_DEPRECATED    AVAILABLE_IN_WEBKIT_VERSION_4_0
    666 #endif
    667 
    668 /*
    669  * AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    670  *
    671  * Used on declarations introduced in WebKit 1.0,
    672  * but later deprecated in WebKit 4.0
    673  */
    674 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    675     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    676 #else
    677     #define AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_0_AND_LATER
    678 #endif
    679 
    680 /*
    681  * AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    682  *
    683  * Used on declarations introduced in WebKit 1.1,
    684  * but later deprecated in WebKit 4.0
    685  */
    686 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    687     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    688 #else
    689     #define AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_1_AND_LATER
    690 #endif
    691 
    692 /*
    693  * AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    694  *
    695  * Used on declarations introduced in WebKit 1.2,
    696  * but later deprecated in WebKit 4.0
    697  */
    698 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    699     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    700 #else
    701     #define AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_2_AND_LATER
    702 #endif
    703 
    704 /*
    705  * AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    706  *
    707  * Used on declarations introduced in WebKit 1.3,
    708  * but later deprecated in WebKit 4.0
    709  */
    710 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    711     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    712 #else
    713     #define AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER
    714 #endif
    715 
    716 /*
    717  * AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    718  *
    719  * Used on declarations introduced in WebKit 2.0,
    720  * but later deprecated in WebKit 4.0
    721  */
    722 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    723     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    724 #else
    725     #define AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_2_0_AND_LATER
    726 #endif
    727 
    728 /*
    729  * AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    730  *
    731  * Used on declarations introduced in WebKit 3.0,
    732  * but later deprecated in WebKit 4.0
    733  */
    734 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    735     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    736 #else
    737     #define AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_3_0_AND_LATER
    738 #endif
    739 
    740 /*
    741  * AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0
    742  *
    743  * Used on declarations introduced in WebKit 3.1,
    744  * but later deprecated in WebKit 4.0
    745  */
    746 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    747     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    748 #else
    749     #define AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER_BUT_DEPRECATED_IN_WEBKIT_VERSION_4_0    AVAILABLE_WEBKIT_VERSION_3_1_AND_LATER
    750 #endif
    751 
    752 /*
    753  * DEPRECATED_IN_WEBKIT_VERSION_4_0
    754  *
    755  * Used on types deprecated in WebKit 4.0
    756  */
    757 #if WEBKIT_VERSION_MIN_REQUIRED >= WEBKIT_VERSION_LATEST
    758     #define DEPRECATED_IN_WEBKIT_VERSION_4_0    DEPRECATED_ATTRIBUTE
    759 #else
    760     #define DEPRECATED_IN_WEBKIT_VERSION_4_0
    761 #endif
    762 
    763 
    764 #endif /* __WebKitAvailability__ */
    765