Skip to content

Commit

Permalink
[third-party] Netty Server and dependencies
Browse files Browse the repository at this point in the history
Added new libraries to the Chromium third-party library collection:
1. Netty 4 Server. See http://netty.io
2. Netty fork of Tomcat Native (netty-tcnative). See http://netty.io/wiki/forked-tomcat-native.html
and the library tc-native depends on:
3. 'Apache Portable Runtime'. See http://apr.apache.org

The server provides support for Http/2 protocol, which is needed for testing some of the Cronet features
on Android, in particular, the new Bidirectional Streaming API.

To build the netty-tcnative library call:
ninja -C out/Debug netty-tcnative

The output files can be found here:
- out/Debug/lib/libnetty-tcnative.so
- out/Debug/lib.java/netty-tcnative.jar

BUG=563732

Committed: https://crrev.com/6dd98af3db0b8e809ed95ff66620181efbf3f8f1
Cr-Commit-Position: refs/heads/master@{#370791}

Review URL: https://codereview.chromium.org/1537473002

Cr-Commit-Position: refs/heads/master@{#372172}
  • Loading branch information
kapishnikov authored and Commit bot committed Jan 28, 2016
1 parent 65b7f83 commit 810c220
Show file tree
Hide file tree
Showing 20 changed files with 1,653 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ vs-chromium-project.txt
/third_party/angle
/third_party/angle_dx11
/third_party/apache-mime4j
/third_party/apache-portable-runtime/src
/third_party/apache-win32/bin/*.exe
/third_party/apache-win32/bin/*.dll
/third_party/apache-win32/bin/iconv/*.so
Expand Down Expand Up @@ -367,6 +368,8 @@ vs-chromium-project.txt
/third_party/mocha
/third_party/mockito/src
/third_party/nacl_sdk_binaries/
/third_party/netty-tcnative/src
/third_party/netty4/src
/third_party/nss
/third_party/omaha/src/omaha
/third_party/openmax_dl/
Expand Down
11 changes: 10 additions & 1 deletion DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,9 @@ deps_os = {
'src/third_party/apache-mime4j':
Var('chromium_git') + '/chromium/deps/apache-mime4j.git' + '@' + '28cb1108bff4b6cf0a2e86ff58b3d025934ebe3a',

'src/third_party/apache-portable-runtime/src':
Var('chromium_git') + '/external/apache-portable-runtime.git' + '@' + 'c76a8c4277e09a82eaa229e35246edea1ee0a6a1',

'src/third_party/appurify-python/src':
Var('chromium_git') + '/external/github.com/appurify/appurify-python.git' + '@' + 'ee7abd5c5ae3106f72b2a0b9d2cb55094688e867',

Expand All @@ -449,7 +452,7 @@ deps_os = {
'src/third_party/freetype-android/src':
Var('chromium_git') + '/chromium/src/third_party/freetype2.git' + '@' + 'a512b0fe7a8d9db0e5aa9c0a4db1e92cb861722d',

'src/third_party/elfutils/src':
'src/third_party/elfutils/src':
Var('chromium_git') + '/external/elfutils.git' + '@' + '249673729a7e5dbd5de4f3760bdcaa3d23d154d7',

'src/third_party/httpcomponents-client':
Expand All @@ -470,6 +473,12 @@ deps_os = {
'src/third_party/mockito/src':
Var('chromium_git') + '/external/mockito/mockito.git' + '@' + '4d987dcd923b81525c42b1333e6c4e07440776c3',

'src/third_party/netty-tcnative/src':
Var('chromium_git') + '/external/netty-tcnative.git' + '@' + '12d01332921695e974175870175eb14a889313a1',

'src/third_party/netty4/src':
Var('chromium_git') + '/external/netty4.git' + '@' + 'e0f26303b4ce635365be19414d0ac81f2ef6ba3c',

'src/third_party/robolectric/lib':
Var('chromium_git') + '/chromium/third_party/robolectric.git' + '@' + '6b63c99a8b6967acdb42cbed0adb067c80efc810',

Expand Down
5 changes: 5 additions & 0 deletions components/cronet.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,8 @@
'dependencies': [
'cronet_java',
'../net/net.gyp:net_java_test_support',
'../third_party/netty-tcnative/netty-tcnative.gyp:netty-tcnative',
'../third_party/netty4/netty.gyp:netty_all',
],
'variables': {
'apk_name': 'CronetTest',
Expand All @@ -389,6 +391,9 @@
'asset_location': 'cronet/android/test/assets',
'native_lib_target': 'libcronet_tests',
'run_findbugs': 1,
'additional_bundled_libs': [
'>(netty_tcnative_so_file_location)',
],
},
'includes': [ '../build/java_apk.gypi' ],
},
Expand Down
3 changes: 3 additions & 0 deletions components/cronet/android/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -452,13 +452,16 @@ android_apk("cronet_test_apk") {
apk_name = "CronetTest"
android_manifest = "test/AndroidManifest.xml"
native_libs = [ "libcronet_tests.so" ]
loadable_modules = [ "$root_out_dir/libnetty-tcnative.so" ]

deps = [
":cronet_test_apk_assets",
":cronet_test_apk_java",
":cronet_test_apk_resources",
":cronet_tests",
"//base:base_java",
"//third_party/netty-tcnative:netty-tcnative_all",
"//third_party/netty4:netty_all",
]

run_findbugs = true
Expand Down
116 changes: 116 additions & 0 deletions third_party/apache-portable-runtime/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/android/config.gni")

# Builds 'Apache Portable Runtime'. See http://apr.apache.org
static_library("apr") {
sources = [
"src/atomic/unix/builtins.c",
"src/atomic/unix/ia32.c",
"src/atomic/unix/mutex.c",
"src/atomic/unix/ppc.c",
"src/atomic/unix/s390.c",
"src/atomic/unix/solaris.c",
"src/dso/unix/dso.c",
"src/file_io/unix/buffer.c",
"src/file_io/unix/copy.c",
"src/file_io/unix/dir.c",
"src/file_io/unix/fileacc.c",
"src/file_io/unix/filedup.c",
"src/file_io/unix/filepath.c",
"src/file_io/unix/filepath_util.c",
"src/file_io/unix/filestat.c",
"src/file_io/unix/flock.c",
"src/file_io/unix/fullrw.c",
"src/file_io/unix/mktemp.c",
"src/file_io/unix/open.c",
"src/file_io/unix/pipe.c",
"src/file_io/unix/readwrite.c",
"src/file_io/unix/seek.c",
"src/file_io/unix/tempdir.c",
"src/include/apr_skiplist.h",
"src/include/arch/apr_private_common.h",
"src/include/arch/unix/apr_arch_atomic.h",
"src/include/arch/unix/apr_arch_dso.h",
"src/include/arch/unix/apr_arch_file_io.h",
"src/include/arch/unix/apr_arch_global_mutex.h",
"src/include/arch/unix/apr_arch_internal_time.h",
"src/include/arch/unix/apr_arch_misc.h",
"src/include/arch/unix/apr_arch_networkio.h",
"src/include/arch/unix/apr_arch_poll_private.h",
"src/include/arch/unix/apr_arch_proc_mutex.h",
"src/include/arch/unix/apr_arch_shm.h",
"src/include/arch/unix/apr_arch_thread_cond.h",
"src/include/arch/unix/apr_arch_thread_mutex.h",
"src/include/arch/unix/apr_arch_thread_rwlock.h",
"src/include/arch/unix/apr_arch_threadproc.h",
"src/include/arch/unix/apr_private.h",
"src/locks/unix/global_mutex.c",
"src/locks/unix/proc_mutex.c",
"src/locks/unix/thread_cond.c",
"src/locks/unix/thread_mutex.c",
"src/locks/unix/thread_rwlock.c",
"src/memory/unix/apr_pools.c",
"src/misc/unix/charset.c",
"src/misc/unix/env.c",
"src/misc/unix/errorcodes.c",
"src/misc/unix/getopt.c",
"src/misc/unix/otherchild.c",
"src/misc/unix/rand.c",
"src/misc/unix/start.c",
"src/misc/unix/version.c",
"src/mmap/unix/common.c",
"src/mmap/unix/mmap.c",
"src/network_io/unix/inet_ntop.c",
"src/network_io/unix/inet_pton.c",
"src/network_io/unix/multicast.c",
"src/network_io/unix/sendrecv.c",
"src/network_io/unix/sockaddr.c",
"src/network_io/unix/sockets.c",
"src/network_io/unix/sockopt.c",
"src/passwd/apr_getpass.c",
"src/poll/unix/epoll.c",
"src/poll/unix/kqueue.c",
"src/poll/unix/poll.c",
"src/poll/unix/pollcb.c",
"src/poll/unix/pollset.c",
"src/poll/unix/port.c",
"src/poll/unix/select.c",
"src/random/unix/apr_random.c",
"src/random/unix/sha2.c",
"src/random/unix/sha2.h",
"src/random/unix/sha2_glue.c",
"src/shmem/unix/shm.c",
"src/strings/apr_cpystrn.c",
"src/strings/apr_fnmatch.c",
"src/strings/apr_snprintf.c",
"src/strings/apr_strings.c",
"src/strings/apr_strnatcmp.c",
"src/strings/apr_strtok.c",
"src/support/unix/waitio.c",
"src/tables/apr_hash.c",
"src/tables/apr_skiplist.c",
"src/tables/apr_tables.c",
"src/threadproc/unix/proc.c",
"src/threadproc/unix/procsup.c",
"src/threadproc/unix/signals.c",
"src/threadproc/unix/thread.c",
"src/threadproc/unix/threadpriv.c",
"src/time/unix/time.c",
"src/time/unix/timestr.c",
"src/user/unix/groupinfo.c",
"src/user/unix/userinfo.c",
]
include_dirs = [
"src/include",
"src/include/arch/unix",
]
cflags = [
"-isystem" +
rebase_path("$android_ndk_root/sources/android/support/include",
root_build_dir),
"-w",
]
}
Loading

0 comments on commit 810c220

Please sign in to comment.