Home | History | Annotate | Download | only in WebCoreSupport
      1 /*
      2  * Copyright 2010, The Android Open Source Project
      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  *  * Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  *  * 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 THE COPYRIGHT HOLDERS ``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 THE COPYRIGHT OWNER 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 // All source files wishing to include Chromium headers must include this file
     27 // and must not incude Chromium headers directly.
     28 
     29 #ifndef ChromiumIncludes_h
     30 #define ChromiumIncludes_h
     31 
     32 #include "config.h"
     33 
     34 // Both WebKit and Chromium define LOG. In AOSP, the framework also defines
     35 // LOG. To avoid conflicts, we undefine LOG before including Chromium code,
     36 // then define it back to the WebKit macro.
     37 #ifdef LOG
     38 #define LOG_WAS_DEFINED
     39 #undef LOG
     40 #endif
     41 
     42 // In AOSP, the framework still uses LOG_ASSERT (as well as ALOG_ASSERT), which
     43 // conflicts with Chromium's LOG_ASSERT. So we undefine LOG_ASSERT to allow the
     44 // Chromium implementation to be picked up. We also redefine ALOG_ASSERT to the
     45 // underlying framework implementation without using LOG_ASSERT.
     46 // TODO: Remove this once LOG_ASSERT is removed from the framework in AOSP.
     47 #undef LOG_ASSERT
     48 #undef ALOG_ASSERT
     49 // Copied from log.h.
     50 #define ALOG_ASSERT(cond, ...) LOG_FATAL_IF(!(cond), ## __VA_ARGS__)
     51 
     52 // Chromium won't build without NDEBUG set, so we set it for all source files
     53 // that use Chromium code. This means that if NDEBUG was previously unset, we
     54 // have to redefine ASSERT() to a no-op, as this is enabled in debug builds.
     55 // Unfortunately, ASSERT() is defined from config.h, so we can't get in first.
     56 #ifndef NDEBUG
     57 #define NDEBUG 1
     58 #undef ASSERT
     59 #define ASSERT(assertion) (void(0))
     60 #endif
     61 
     62 #include <android/net/android_network_library_impl.h>
     63 #include <android/jni/jni_utils.h>
     64 #include <base/callback.h>
     65 #include <base/lazy_instance.h>
     66 #include <base/memory/ref_counted.h>
     67 #include <base/message_loop_proxy.h>
     68 #include <base/openssl_util.h>
     69 #include <base/string_util.h>
     70 #include <base/synchronization/condition_variable.h>
     71 #include <base/synchronization/lock.h>
     72 #include <base/sys_string_conversions.h>
     73 #include <base/threading/thread.h>
     74 #include <base/time.h>
     75 #include <base/tuple.h>
     76 #include <base/utf_string_conversions.h>
     77 #include <chrome/browser/net/sqlite_persistent_cookie_store.h>
     78 #include <net/base/auth.h>
     79 #include <net/base/cert_verifier.h>
     80 #include <net/base/cookie_monster.h>
     81 #include <net/base/cookie_policy.h>
     82 #include <net/base/data_url.h>
     83 #include <net/base/host_resolver.h>
     84 #include <net/base/io_buffer.h>
     85 #include <net/base/load_flags.h>
     86 #include <net/base/net_errors.h>
     87 #include <net/base/mime_util.h>
     88 #include <net/base/net_util.h>
     89 #include <net/base/openssl_private_key_store.h>
     90 #include <net/base/ssl_cert_request_info.h>
     91 #include <net/base/ssl_config_service.h>
     92 #include <net/disk_cache/disk_cache.h>
     93 #include <net/http/http_auth_handler_factory.h>
     94 #include <net/http/http_cache.h>
     95 #include <net/http/http_network_layer.h>
     96 #include <net/http/http_response_headers.h>
     97 #include <net/proxy/proxy_config_service_android.h>
     98 #include <net/proxy/proxy_service.h>
     99 #include <net/url_request/url_request.h>
    100 #include <net/url_request/url_request_context.h>
    101 
    102 #if ENABLE(WEB_AUTOFILL)
    103 #include <autofill/autofill_manager.h>
    104 #include <autofill/autofill_profile.h>
    105 #include <autofill/personal_data_manager.h>
    106 #include <base/logging.h>
    107 #include <base/memory/scoped_vector.h>
    108 #include <base/string16.h>
    109 #include <base/utf_string_conversions.h>
    110 #include <chrome/browser/autofill/autofill_host.h>
    111 #include <chrome/browser/profiles/profile.h>
    112 #include <content/browser/tab_contents/tab_contents.h>
    113 #include <webkit/glue/form_data.h>
    114 #include <webkit/glue/form_field.h>
    115 #endif
    116 
    117 #undef LOG
    118 // If LOG was defined, restore it to the WebKit macro.
    119 #ifdef LOG_WAS_DEFINED
    120 // If LOG was defined, JOIN_LOG_CHANNEL_WITH_PREFIX must be too.
    121 // Copied from Assertions.h.
    122 #if LOG_DISABLED
    123 #define LOG(channel, ...) ((void)0)
    124 #else
    125 #define LOG(channel, ...) WTFLog(&JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
    126 #endif
    127 #endif
    128 
    129 #endif
    130