[M67 Dev][EFL] Integrate GN configuration 72/184772/1
authorYoungsoo Choi <kenshin.choi@samsung.com>
Fri, 9 Feb 2018 14:53:16 +0000 (20:23 +0530)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Mon, 23 Jul 2018 05:01:37 +0000 (05:01 +0000)
The upstream chromium hasn't supported EFL port.
So, this enables GN configurations for that.

Temporary command:
$ ./tizen_src/build/build_desktop.sh --use-gn

Reference:
https://review.tizen.org/gerrit/#/c/169727/
https://review.tizen.org/gerrit/#/c/174607/
https://review.tizen.org/gerrit/#/c/178028/

Change-Id: Ie426852c63a4ebcbfea482297ef2915c4a3b6edf
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
137 files changed:
base/BUILD.gn
base/third_party/libevent/BUILD.gn
build/config/arm.gni
build/config/chromecast_build.gni
build/config/clang/BUILD.gn
build/config/compiler/BUILD.gn
build/config/features.gni
build/config/linux/BUILD.gn
build/config/sysroot.gni
build/config/ui.gni
build/gn_helpers.pyc [new file with mode: 0644]
build/secondary/third_party/nss/BUILD.gn
build/split_static_library.gni
chrome/BUILD.gn
chrome/browser/BUILD.gn
chrome/browser/ui/BUILD.gn
chrome/test/BUILD.gn
chrome/test/chromedriver/BUILD.gn
components/BUILD.gn
components/crash/content/app/BUILD.gn
components/crash/content/browser/BUILD.gn
components/nacl/features.gni
content/BUILD.gn
content/browser/BUILD.gn
content/common/BUILD.gn
content/gpu/BUILD.gn
content/public/browser/BUILD.gn
content/public/common/BUILD.gn
content/public/renderer/BUILD.gn
content/renderer/BUILD.gn
content/shell/BUILD.gn
device/bluetooth/BUILD.gn
device/serial/BUILD.gn
device/udev_linux/BUILD.gn
gpu/config/BUILD.gn
gpu/ipc/service/BUILD.gn
media/BUILD.gn
media/audio/BUILD.gn
media/capture/BUILD.gn
media/media_options.gni
net/BUILD.gn
printing/BUILD.gn
sandbox/BUILD.gn
services/device/BUILD.gn
testing/test.gni
third_party/BUILD.gn
third_party/angle/gni/angle.gni
third_party/boringssl/BUILD.gn
third_party/ffmpeg/ffmpeg_options.gni
third_party/libvpx/BUILD.gn
third_party/libxml/BUILD.gn
third_party/libxslt/BUILD.gn
third_party/mesa/BUILD.gn
third_party/opus/BUILD.gn
third_party/webrtc/BUILD.gn
tizen_src/.gn [new file with mode: 0644]
tizen_src/BUILD.gn [new file with mode: 0644]
tizen_src/DEPS.efl
tizen_src/build/BUILD.gn [new file with mode: 0644]
tizen_src/build/build_desktop.sh
tizen_src/build/cmd_execution.py [new file with mode: 0644]
tizen_src/build/common.sh
tizen_src/build/config/BUILD.gn [new file with mode: 0644]
tizen_src/build/config/BUILDCONFIG.gn [new file with mode: 0644]
tizen_src/build/config/compiler/BUILD.gn [new file with mode: 0644]
tizen_src/build/config/linux/pkg_config.gni [new file with mode: 0644]
tizen_src/build/config/tizen/BUILD.gn [new file with mode: 0644]
tizen_src/build/config/tizen_features.gni [new file with mode: 0644]
tizen_src/build/gn_chromiumefl [new file with mode: 0755]
tizen_src/build/gn_chromiumefl.sh [new file with mode: 0755]
tizen_src/build/jhbuild/jhbuildrc
tizen_src/build/patches/crosswalk/crosswalk-do-not-build-several-chromium-dependencies.diff
tizen_src/build/patches/gn_build_is_tizen_on_ffmpeg.diff [new file with mode: 0644]
tizen_src/build/toolchain/tizen/BUILD.gn [new file with mode: 0644]
tizen_src/buildtools/arm/gn.arm [new file with mode: 0644]
tizen_src/chromium-efl-gn.patch [new file with mode: 0644]
tizen_src/chromium_impl/base/base_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/chrome/chrome_tests_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/chromium_impl.gypi
tizen_src/chromium_impl/components/components.gni [new file with mode: 0644]
tizen_src/chromium_impl/components/js_dialogs_efl/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/content/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/content/browser/browser_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/content/common/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/content/common/common_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/content/content_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/content/content_efl.gyp
tizen_src/chromium_impl/content/gpu/gpu_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/content/renderer/renderer_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/content/shell/shell_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/device/battery_tizen.gni [new file with mode: 0644]
tizen_src/chromium_impl/device/vibration/vibration_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/edje_resources/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/efl/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/gpu/gpu_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/media/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/media/media_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/third_party/WebKit/Source/core/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/third_party/WebKit/Source/core/core_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/third_party/WebKit/Source/core/core_efl.gypi
tizen_src/chromium_impl/third_party/WebKit/Source/core/make-file-arrays.py
tizen_src/chromium_impl/third_party/WebKit/Source/modules/modules_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/third_party/WebKit/Source/platform/blink_platform_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/ui/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/ui/ozone/BUILD.gn [new file with mode: 0644]
tizen_src/chromium_impl/ui/ui_efl.gni [new file with mode: 0644]
tizen_src/chromium_impl/ui/ui_efl_injections.gni [new file with mode: 0644]
tizen_src/ewk/BUILD.gn [new file with mode: 0644]
tizen_src/ewk/efl_integration/BUILD.gn [new file with mode: 0644]
tizen_src/ewk/efl_integration/efl_integration.gypi
tizen_src/ewk/efl_integration/launch_exec.sh
tizen_src/ewk/efl_integration/link_xwalk_against_chromium_efl.gypi
tizen_src/ewk/efl_integration/resource/BUILD.gn [new file with mode: 0644]
tizen_src/ewk/efl_webview_app/BUILD.gn [new file with mode: 0644]
tizen_src/ewk/po_tizen/BUILD.gn [new file with mode: 0644]
tizen_src/ewk/tizen_version_defines_for_apps.gni [new file with mode: 0644]
tizen_src/ewk/ubrowser/BUILD.gn [new file with mode: 0644]
tizen_src/ewk/unittest/BUILD.gn [new file with mode: 0644]
tools/battor_agent/BUILD.gn
tools/perf/BUILD.gn
tools/perf/chrome_telemetry_build/BUILD.gn
ui/base/BUILD.gn
ui/events/BUILD.gn
ui/events/devices/BUILD.gn
ui/events/ozone/BUILD.gn
ui/events/platform/x11/BUILD.gn
ui/gfx/BUILD.gn
ui/gfx/x/BUILD.gn
ui/gl/BUILD.gn
ui/native_theme/BUILD.gn
ui/ozone/BUILD.gn
ui/ozone/common/BUILD.gn
ui/shell_dialogs/BUILD.gn
ui/snapshot/BUILD.gn
ui/surface/BUILD.gn
ui/views/BUILD.gn
v8/BUILD.gn

index 93b3794..31e8168 100644 (file)
@@ -30,6 +30,9 @@ import("//build/config/ui.gni")
 import("//build/nocompile.gni")
 import("//testing/libfuzzer/fuzzer_test.gni")
 import("//testing/test.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/base/base_efl.gni")
+}
 
 declare_args() {
   # Override this value to give a specific build date.
@@ -1586,14 +1589,21 @@ jumbo_component("base") {
     ]
   } else {
     # Non-Linux.
-    sources -= [
-      "nix/mime_util_xdg.cc",
-      "nix/mime_util_xdg.h",
-      "nix/xdg_util.cc",
-      "nix/xdg_util.h",
-    ]
-
-    if (!is_android) {
+    if (is_tizen) {
+      deps += [
+        "//base/third_party/xdg_mime",
+        "//base/third_party/xdg_user_dirs",
+      ]
+    }
+    if (!is_tizen) {
+      sources -= [
+        "nix/mime_util_xdg.cc",
+        "nix/mime_util_xdg.h",
+        "nix/xdg_util.cc",
+        "nix/xdg_util.h",
+      ]
+    }
+    if (!is_android && !is_tizen) {
       sources -= [
         "linux_util.cc",
         "linux_util.h",
@@ -2379,8 +2389,16 @@ test("base_unittests") {
     "win/wrapped_window_proc_unittest.cc",
   ]
 
+  if (use_efl) {
+    sources += external_base_sources
+  }
+
   defines = []
 
+  if (use_efl) {
+    configs += external_base_configs
+  }
+
   deps = [
     ":base",
     ":i18n",
@@ -2502,6 +2520,28 @@ test("base_unittests") {
     }
   }
 
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "files/file_path_watcher_linux.cc",
+      "files/file_util_linux.cc",
+      "posix/unix_domain_socket_linux.cc",
+      "posix/unix_domain_socket_linux.h",
+      "process/internal_linux.cc",
+      "process/internal_linux.h",
+      "process/process_iterator_linux.cc",
+      "process/process_handle_linux.cc",
+      "process/memory_linux.cc",
+      "process/process_linux.cc",
+      "process/process_metrics_linux.cc",
+      "sys_info_linux.cc",
+      "threading/platform_thread_linux.cc",
+      "trace_event/malloc_dump_provider.cc",
+      "trace_event/malloc_dump_provider.h",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
+
   if (!use_glib) {
     sources -= [ "message_loop/message_pump_glib_unittest.cc" ]
   }
index e934454..a39ad80 100644 (file)
@@ -43,7 +43,7 @@ static_library("libevent") {
       "mac/event-config.h",
     ]
     include_dirs = [ "mac" ]
-  } else if (is_linux) {
+  } else if (is_linux || is_tizen) {
     sources += [
       "epoll.c",
       "linux/config.h",
index abd4dd0..87916af 100644 (file)
@@ -80,7 +80,7 @@ if (current_cpu == "arm" || v8_current_cpu == "arm") {
     }
 
     if (arm_float_abi == "") {
-      if (current_os == "android") {
+      if (current_os == "android" || target_os == "android" || is_tizen) {
         arm_float_abi = "softfp"
       } else if (target_os == "android") {
         if (build_devil_arm_deps) {
index d4869d7..8869b55 100644 (file)
@@ -23,7 +23,7 @@ declare_args() {
   # of Cast functionality. Though this defaults to true for x86 Linux devices,
   # this should be overriden manually for an embedded x86 build.
   # TODO(slan): Remove instances of this when x86 is a fully supported platform.
-  is_cast_desktop_build = is_chromecast && target_os == "linux" &&
+  is_cast_desktop_build = is_chromecast && target_os == "linux" && !use_efl &&
                           (target_cpu == "x86" || target_cpu == "x64")
 }
 
index 0092f8d..594d596 100644 (file)
@@ -18,7 +18,7 @@ config("find_bad_constructs") {
         rebase_path("${clang_base_path}/lib/libFindBadConstructs.dylib",
                     root_build_dir),
       ]
-    } else if (host_os == "linux") {
+    } else if (host_os == "linux" && !use_efl) {
       cflags += [
         "-Xclang",
         "-load",
index 461e62d..d99a9a4 100644 (file)
@@ -40,7 +40,7 @@ declare_args() {
   # warnings with known toolchains. Allow overriding this e.g. for Chromium
   # builds on Linux that could use a different version of the compiler.
   # With GCC, warnings in no-Chromium code are always not treated as errors.
-  treat_warnings_as_errors = true
+  treat_warnings_as_errors = !use_efl
 
   # Normally, Android builds are lightly optimized, even for debug builds, to
   # keep binary size down. Setting this flag to true disables such optimization
@@ -1497,7 +1497,7 @@ config("no_chromium_code") {
   } else {
     # GCC may emit unsuppressible warnings so don't add -Werror for no chromium
     # code. crbug.com/589724
-    if (treat_warnings_as_errors && is_clang) {
+    if (treat_warnings_as_errors && is_clang && !use_efl) {
       cflags += [ "-Werror" ]
       ldflags = [ "-Werror" ]
     }
@@ -1850,7 +1850,7 @@ config("no_optimize") {
       "/Ob0",  # Disable all inlining (on by default).
       "/GF",  # Enable string pooling (off by default).
     ]
-  } else if (is_android && !android_full_debug) {
+  } else if ((is_android && !android_full_debug) || is_tizen) {
     # On Android we kind of optimize some things that don't affect debugging
     # much even when optimization is disabled to get the binary size down.
     if (is_clang) {
index 09cddfd..4c1b2ef 100644 (file)
@@ -46,9 +46,9 @@ declare_args() {
   fieldtrial_testing_like_official_build = is_chrome_branded
 
   # libudev usage. This currently only affects the content layer.
-  use_udev = is_linux && !is_chromecast
+  use_udev = (is_linux && !is_chromecast) || is_tizen
 
-  use_dbus = is_linux && !is_chromecast
+  use_dbus = (is_linux && !is_chromecast) || is_tizen
 
   use_gio = is_linux && !is_chromeos && !is_chromecast
 }
@@ -58,3 +58,7 @@ declare_args() {
 # =============================================
 #
 # See comment at the top.
+
+if (use_efl) {
+  import("//tizen_src/build/config/tizen_features.gni")
+}
index e3488ab..4dd971d 100644 (file)
@@ -33,6 +33,45 @@ config("runtime_library") {
   }
 }
 
+pkg_config("freetype2") {
+  visibility = [ "//build/linux:freetype2" ]
+
+  packages = [ "freetype2" ]
+}
+
+pkg_config("glib") {
+  packages = [
+    "glib-2.0",
+    "gmodule-2.0",
+    "gobject-2.0",
+    "gthread-2.0",
+  ]
+}
+
+#if (use_pango || use_cairo) {
+#  pkg_config("pangocairo") {
+#    packages = [ "pangocairo" ]
+#  }
+#}
+
+#if (use_pango) {
+#  pkg_config("pangoft2") {
+#    packages = [ "pangoft2" ]
+#  }
+#}
+
+# Note: if your target also depends on //dbus, you don't need to add this
+# config (it will get added automatically if you depend on //dbus).
+pkg_config("dbus") {
+  packages = [ "dbus-1" ]
+}
+
+if (!is_tizen) {
+  pkg_config("libffi") {
+    packages = [ "libffi" ]
+  }
+}
+
 config("x11") {
   libs = [
     "X11",
index d5daf2d..2aac587 100644 (file)
@@ -47,6 +47,10 @@ if (current_os == target_os && current_cpu == target_cpu &&
     assert(false, "No linux sysroot for cpu: $target_cpu")
   }
 
+  if (target_os == "tizen") {
+    sysroot = "/"
+  }
+
   if (sysroot != "") {
     _script_arch = current_cpu
     if (_script_arch == "x86") {
@@ -66,6 +70,8 @@ if (current_os == target_os && current_cpu == target_cpu &&
 } else if (is_ios) {
   import("//build/config/ios/ios_sdk.gni")
   sysroot = ios_sdk_path
+} else if (is_tizen) {
+  sysroot = "/"
 } else if (is_fuchsia) {
   import("//build/config/fuchsia/config.gni")
   if (current_cpu == "arm64") {
index 547b42f..1ac6cfa 100644 (file)
@@ -23,20 +23,20 @@ declare_args() {
   # Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux
   # that does not require X11. Enabling this feature disables use of glib, x11,
   # Pango, and Cairo.
-  use_ozone = is_chromeos || (is_chromecast && !is_android) || is_fuchsia
+  use_ozone = use_efl || is_chromeos || (is_chromecast && !is_android) || is_fuchsia
 
   # Indicates if Aura is enabled. Aura is a low-level windowing library, sort
   # of a replacement for GDI or GTK.
   use_aura = is_win || is_linux || is_fuchsia
 
   # Whether we should use glib, a low level C utility library.
-  use_glib = is_linux
+  use_glib = is_linux || use_efl
 }
 
 declare_args() {
   # True means the UI is built using the "views" framework.
   toolkit_views = (is_mac || is_win || is_chromeos || use_aura) &&
-                  !is_chromecast && !is_fuchsia
+                  !is_chromecast && !is_fuchsia && !use_efl
 }
 
 # Additional dependent variables -----------------------------------------------
diff --git a/build/gn_helpers.pyc b/build/gn_helpers.pyc
new file mode 100644 (file)
index 0000000..7feab5e
Binary files /dev/null and b/build/gn_helpers.pyc differ
index 5788f3e..7df0ce1 100644 (file)
@@ -3,8 +3,7 @@
 # found in the LICENSE file.
 
 import("//build/config/linux/pkg_config.gni")
-
-if (is_linux) {
+if (is_linux || is_tizen) {
   # This is a dependency on NSS with no libssl. On Linux we use a built-in SSL
   # library but the system NSS libraries. Non-Linux platforms using NSS use the
   # hermetic one in //third_party/nss.
index ea378e3..92e7292 100644 (file)
@@ -68,6 +68,8 @@ template("split_static_library") {
   }
 }
 
-set_defaults("split_static_library") {
-  configs = default_compiler_configs
+if (!use_efl) {
+  set_defaults("split_static_library") {
+    configs = default_compiler_configs
+  }
 }
index 4304cc8..1792cf9 100644 (file)
@@ -103,7 +103,7 @@ group("assert_no_deps") {
   assert_no_deps = [ "//chrome/installer/util:strings" ]
 }
 
-if (!is_android && !is_mac) {
+if (!is_android && !is_mac && !is_tizen) {
   group("chrome") {
     public_deps = [
       ":chrome_initial",
index ac64f5c..1698999 100644 (file)
@@ -1551,7 +1551,7 @@ jumbo_split_static_library("browser") {
     "win/ui_automation_util.h",
   ]
 
-  configs += [
+  configs = [
     "//build/config/compiler:wexit_time_destructors",
     "//build/config:precompiled_headers",
   ]
index 72dde06..5e308fb 100644 (file)
@@ -901,7 +901,7 @@ split_static_library("ui") {
   }
   libs = []
 
-  configs += [
+  configs = [
     ":ui_warnings",
     "//build/config:precompiled_headers",
     "//build/config/compiler:wexit_time_destructors",
index f0199c3..7e2cde0 100644 (file)
@@ -2193,7 +2193,7 @@ if (is_mac) {
     ]
   }
 }
-
+if (!is_tizen) {
 test("unit_tests") {
   sources = [
     # enums.xml is analyzed by AboutFlagsHistogramTest, so this
@@ -5548,6 +5548,7 @@ if (!is_android && !is_fuchsia) {
     ]
   }
 }
+}
 
 if (safe_browsing_mode == 1 && is_mac) {
   action("mac_safe_browsing_test_data") {
index b068720..5e7e51e 100644 (file)
@@ -5,6 +5,10 @@
 import("//build/config/ui.gni")
 import("//testing/test.gni")
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/chrome/chrome_tests_efl.gni")
+}
+
 action("embed_js_in_cpp") {
   script = "embed_js_in_cpp.py"
 
@@ -309,6 +313,10 @@ source_set("lib") {
   if (is_mac) {
     libs = [ "Carbon.framework" ]
   }
+
+  if (use_efl) {
+    sources -= external_exclude_chrome_test_driver_sources
+  }
 }
 
 executable("chromedriver") {
index bd18adc..6418eb2 100644 (file)
@@ -421,7 +421,7 @@ if (is_android) {
   }
 }
 
-if (!is_ios) {
+if (!is_ios || !is_tizen) {
   test("components_browsertests") {
     defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
 
index 79aa52b..b7e1771 100644 (file)
@@ -32,7 +32,7 @@ static_library("app") {
     "crashpad_win.cc",
   ]
 
-  if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) {
+  if (is_mac || is_win || is_android || (is_linux && !is_chromeos && !use_efl)) {
     sources += [ "crashpad.cc" ]
   }
 
@@ -58,7 +58,7 @@ static_library("app") {
     "//base",
   ]
 
-  if (is_mac || is_win || is_android || (is_linux && !is_chromeos)) {
+  if ((is_mac || is_win || is_android || (is_linux && !is_chromeos)) && !use_efl) {
     deps += [
       "//third_party/crashpad/crashpad/client",
       "//third_party/crashpad/crashpad/snapshot:snapshot_api",
index 64761ea..9daf69d 100644 (file)
@@ -27,7 +27,7 @@ source_set("browser") {
     "//third_party/breakpad:client",
   ]
 
-  if (is_linux || is_android) {
+  if ((is_linux || is_android) && !use_efl) {
     set_sources_assignment_filter([])
 
     # Want this file on both Linux and Android.
index 1a09aaf..26af61e 100644 (file)
@@ -12,7 +12,7 @@ declare_args() {
   enable_nacl =
       checkout_nacl && !is_ios && !is_android && !is_fuchsia &&
       !is_chromecast && current_cpu != "mipsel" && current_cpu != "mips64el" &&
-      !(is_linux && target_cpu == "arm64") && !(is_win && host_os != "win")
+      !(is_linux && target_cpu == "arm64") && !(is_win && host_os != "win") && !use_efl
 
   # Non-SFI is not yet supported on mipsel
   enable_nacl_nonsfi = current_cpu != "mipsel" && current_cpu != "mips64el"
index 7c56748..4ae6691 100644 (file)
@@ -5,6 +5,13 @@
 import("//tools/grit/grit_rule.gni")
 import("//build/config/nacl/config.gni")
 import("//ppapi/buildflags/buildflags.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/common/common_efl.gni")
+  import("//tizen_src/chromium_impl/content/browser/browser_efl.gni")
+  import("//tizen_src/chromium_impl/content/gpu/gpu_efl.gni")
+  import("//tizen_src/chromium_impl/content/renderer/renderer_efl.gni")
+}
 
 # Applied by targets internal to content.
 config("content_implementation") {
@@ -84,6 +91,20 @@ if (is_component_build) {
     deps = [
       "//build/config:exe_and_shlib_deps",
     ]
+    if (use_efl) {
+      public_configs = external_content_common_configs
+      public_configs += external_content_browser_configs
+      public_configs += external_content_gpu_configs
+      public_deps += external_content_browser_deps
+      public_deps += external_content_renderer_deps
+      sources = external_content_common_efl_sources
+      sources -= external_exclude_content_common_efl_sources
+      sources += external_content_browser_efl_sources
+      sources += external_content_gpu_efl_sources
+      sources -= external_exclude_content_gpu_efl_sources
+      sources += external_content_renderer_efl_sources
+      sources -= external_exclude_content_renderer_efl_sources
+    }
   }
 } else if (is_nacl_nonsfi) {
   source_set("content") {
@@ -105,10 +126,54 @@ if (is_component_build) {
       "//sandbox/linux:sandbox",
       "//services/service_manager/sandbox",
     ]
+    if (use_efl) {
+      configs += external_content_common_configs
+      configs += external_content_browser_configs
+      configs += external_content_gpu_configs
+      deps += external_content_browser_deps
+      deps += external_content_renderer_deps
+      sources += external_content_common_efl_sources
+      sources -= external_exclude_content_common_efl_sources
+      sources += external_content_browser_efl_sources
+      sources += external_content_renderer_efl_sources
+      sources -= external_exclude_content_renderer_efl_sources
+    }
+  }
+} else if (is_tizen) {
+  source_set("content") {
+    set_sources_assignment_filter([])
+    sources = [
+      "common/sandbox_linux/sandbox_seccomp_bpf_linux.cc",
+      "common/send_zygote_child_ping_linux.cc",
+      "public/common/content_switches.cc",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+    defines = [ "USE_SECCOMP_BPF=1" ]
+
+    public_deps = content_shared_components
+    public_deps += external_content_browser_deps
+    public_deps += external_content_renderer_deps
+    deps += external_content_browser_deps
+    deps += external_content_renderer_deps
+    public_configs = external_content_common_configs
+    public_configs += external_content_browser_configs
+    public_configs += external_content_gpu_configs
+    sources += external_content_common_efl_sources
+    sources -= external_exclude_content_common_efl_sources
+    sources += external_content_browser_efl_sources
+    sources += external_content_renderer_efl_sources
+    sources -= external_exclude_content_renderer_efl_sources
   }
 } else {
   group("content") {
     public_deps = content_shared_components
+    if (use_efl) {
+      public_deps += external_content_browser_deps
+      public_deps += external_content_renderer_deps
+      public_configs = external_content_common_configs
+      public_configs += external_content_browser_configs
+      public_configs += external_content_gpu_configs
+    }
   }
 }
 
index a967e1b..25c8cc1 100644 (file)
@@ -15,6 +15,10 @@ import("//ppapi/buildflags/buildflags.gni")
 import("//printing/buildflags/buildflags.gni")
 import("//third_party/blink/public/public_features.gni")
 import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/browser/browser_efl.gni")
+}
 
 jumbo_source_set("browser") {
   # Only the public target should depend on this. All other targets (even
@@ -34,6 +38,11 @@ jumbo_source_set("browser") {
   libs = []
   ldflags = []
 
+  if (use_efl) {
+    configs += external_content_browser_configs
+    configs += external_content_browser_extra_configs
+  }
+
   deps = [
     "//base",
     "//base:base_static",
@@ -1717,6 +1726,15 @@ jumbo_source_set("browser") {
     "zygote_host/zygote_host_impl_linux.h",
   ]
 
+  if (use_efl) {
+    sources -= [
+      "renderer_host/ui_events_helper.cc",
+      "renderer_host/ui_events_helper.h",
+    ]
+    deps += [ "//third_party/leveldatabase" ]
+    deps += external_content_browser_deps
+  }
+
   if (toolkit_views) {
     deps += [ "//ui/events" ]
   }
@@ -2200,6 +2218,21 @@ jumbo_source_set("browser") {
     deps += [ "//third_party/flac" ]
   }
 
+  if (use_efl) {
+    sources -= [
+      "speech/audio_encoder.cc",
+      "speech/audio_encoder.h",
+      "speech/speech_recognition_dispatcher_host.cc",
+      "speech/speech_recognition_dispatcher_host.h",
+      "speech/speech_recognition_engine.cc",
+      "speech/speech_recognition_engine.h",
+      "speech/speech_recognition_manager_impl.cc",
+      "speech/speech_recognition_manager_impl.h",
+      "speech/speech_recognizer_impl.cc",
+      "speech/speech_recognizer_impl.h",
+    ]
+  }
+
   if (is_mac) {
     deps += [
       "//media",
@@ -2361,6 +2394,42 @@ jumbo_source_set("browser") {
       "net/reporting_service_proxy.h",
     ]
   }
+
+  if (use_efl) {
+    sources += external_content_browser_efl_sources
+    if (building_for_tizen_mobile) {
+      sources -= external_exclude_content_browser_efl_sources
+    }
+  }
+
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "//content/zygote/zygote_linux.cc",
+      "//content/zygote/zygote_linux.h",
+      "//content/zygote/zygote_main_linux.cc",
+      "download/base_file_linux.cc",
+      "download/file_metadata_linux.cc",
+      "download/file_metadata_linux.h",
+      "gamepad/gamepad_platform_data_fetcher_linux.cc",
+      "gamepad/gamepad_platform_data_fetcher_linux.h",
+      "gamepad/gamepad_standard_mappings_linux.cc",
+      "renderer_host/font_utils_linux.cc",
+      "renderer_host/font_utils_linux.h",
+      "renderer_host/pepper/pepper_truetype_font_linux.cc",
+      "renderer_host/render_sandbox_host_linux.cc",
+      "renderer_host/render_sandbox_host_linux.h",
+      "renderer_host/sandbox_ipc_linux.cc",
+      "renderer_host/sandbox_ipc_linux.h",
+      "time_zone_monitor_linux.cc",
+      "zygote_host/zygote_communication_linux.cc",
+      "zygote_host/zygote_communication_linux.h",
+      "zygote_host/zygote_handle_linux.cc",
+      "zygote_host/zygote_host_impl_linux.cc",
+      "zygote_host/zygote_host_impl_linux.h",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
 }
 
 buildflag_header("accessibility_buildflags") {
index 397d917..c556b45 100644 (file)
@@ -15,6 +15,10 @@ import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
 if (is_mac) {
   import("//build/config/mac/mac_sdk.gni")
 }
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/common/common_efl.gni")
+}
 
 # For feature flags internal to content. See content/public/common:features
 # for feature flags that clients of contents need to know about.
@@ -303,6 +307,9 @@ source_set("common") {
     "wrapper_shared_url_loader_factory.h",
     "zygote_commands_linux.h",
   ]
+  if (use_efl) {
+    visibility += [ "//tizen_src/ewk/efl_integration:chromium-ewk" ]
+  }
 
   configs += [
     "//content:content_implementation",
@@ -310,6 +317,11 @@ source_set("common") {
     "//build/config/compiler:no_size_t_to_int_warning",
   ]
 
+  if (use_efl) {
+    configs += external_content_common_configs
+    configs += external_content_common_efl_configs
+  }
+
   public_deps = [
     ":mojo_bindings",
     "//cc",
@@ -398,6 +410,7 @@ source_set("common") {
     "//url/ipc:url_ipc",
   ]
 
+
   defines = []
   include_dirs = []
   libs = []
@@ -408,7 +421,7 @@ source_set("common") {
     "//content/public/common:interfaces",
   ]
 
-  if (is_android && use_seccomp_bpf) {
+  if ((is_android || is_tizen) && use_seccomp_bpf) {
     set_sources_assignment_filter([])
     sources += [
       "//services/service_manager/sandbox/linux/bpf_base_policy_linux.cc",
@@ -511,6 +524,11 @@ source_set("common") {
       "sandbox_policy_fuchsia.h",
     ]
   }
+
+  if (use_efl) {
+    sources += external_content_common_efl_sources
+    sources -= external_exclude_content_common_efl_sources
+  }
 }
 
 # See comment at the top of //content/BUILD.gn for how this works.
index 3e85872..b11397e 100644 (file)
@@ -7,6 +7,10 @@ import("//build/config/ui.gni")
 import("//gpu/vulkan/features.gni")
 import("//media/media_options.gni")
 import("//ui/ozone/ozone.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/gpu/gpu_efl.gni")
+}
 
 # See //content/BUILD.gn for how this works.
 group("gpu") {
@@ -21,6 +25,9 @@ group("gpu") {
       ":gpu_sources",
     ]
   }
+  if (use_efl) {
+    public_configs = external_content_gpu_configs
+  }
 }
 
 if (is_component_build) {
@@ -130,4 +137,9 @@ target(link_target_type, "gpu_sources") {
       (!is_chromecast || is_cast_desktop_build)) {
     configs += [ "//build/config/linux/dri" ]
   }
+
+  if (use_efl) {
+    sources += external_content_gpu_efl_sources
+    sources -= external_exclude_content_gpu_efl_sources
+  }
 }
index 9646d6b..8d442ef 100644 (file)
@@ -5,6 +5,10 @@
 import("//build/config/jumbo.gni")
 import("//build/config/ui.gni")
 import("//media/media_options.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/browser/browser_efl.gni")
+}
 
 # See //content/BUILD.gn for how this works.
 group("browser") {
@@ -17,6 +21,11 @@ group("browser") {
       ":browser_sources",
     ]
   }
+  if (use_efl) {
+    public_configs = external_content_browser_configs
+    public_configs += external_content_browser_extra_configs
+    public_deps += external_content_browser_deps
+  }
 }
 
 jumbo_source_set("browser_sources") {
index 6758879..653a500 100644 (file)
@@ -12,6 +12,10 @@ import("//media/media_options.gni")
 import("//mojo/public/tools/bindings/mojom.gni")
 import("//ppapi/buildflags/buildflags.gni")
 import("//third_party/webrtc/webrtc.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/common/common_efl.gni")
+}
 
 # See //content/BUILD.gn for how this works.
 group("common") {
@@ -24,6 +28,10 @@ group("common") {
       ":common_sources",
     ]
   }
+  if (use_efl) {
+    public_configs = external_content_common_configs
+    public_configs += external_content_common_efl_configs
+  }
 }
 
 # This target allows other targets to depend on result_codes.h which is a
@@ -329,6 +337,13 @@ jumbo_source_set("common_sources") {
     ]
   }
 
+  if (use_efl) {
+    configs += external_content_common_efl_configs
+    # This target depends on the //content/common so below
+    # sources are not required here
+    sources -= external_exclude_content_common_efl_sources
+  }
+
   if (use_zygote_handle) {
     sources += [ "zygote_handle.h" ]
   }
index 004fc2e..4caef70 100644 (file)
@@ -6,6 +6,10 @@ import("//build/config/features.gni")
 import("//build/config/jumbo.gni")
 import("//media/media_options.gni")
 import("//ppapi/buildflags/buildflags.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/renderer/renderer_efl.gni")
+}
 
 # See //content/BUILD.gn for how this works.
 group("renderer") {
@@ -17,6 +21,10 @@ group("renderer") {
     public_deps = [
       ":renderer_sources",
     ]
+    if (use_efl) {
+      public_configs = external_content_renderer_extra_configs
+      public_deps += external_content_renderer_deps
+    }
   }
 }
 
@@ -144,4 +152,11 @@ target(link_target_type, "renderer_sources") {
       "key_system_support.h",
     ]
   }
+
+  if (use_efl) {
+    #this target is depend on the //content/renderer so below
+    # sources are not reuqired to add here.
+    #sources += external_content_renderer_efl_sources
+    sources -= external_exclude_content_renderer_efl_sources
+  }
 }
index e90c9c2..43d8319 100644 (file)
@@ -13,6 +13,10 @@ import("//ppapi/buildflags/buildflags.gni")
 import("//printing/buildflags/buildflags.gni")
 import("//third_party/webrtc/webrtc.gni")
 import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/renderer/renderer_efl.gni")
+}
 
 if (is_component_build) {
   link_target_type = "jumbo_source_set"
@@ -511,6 +515,9 @@ target(link_target_type, "renderer") {
     "//content:content_implementation",
     "//build/config/compiler:no_size_t_to_int_warning",
   ]
+  if (use_efl) {
+    configs += external_content_renderer_extra_configs
+  }
   defines = []
 
   public_deps = [
@@ -602,6 +609,9 @@ target(link_target_type, "renderer") {
     "//ui/surface",
     "//v8",
   ]
+  if (use_efl) {
+    deps += external_content_renderer_deps
+  }
   allow_circular_includes_from = []
 
   if (use_aura) {
@@ -1081,6 +1091,15 @@ target(link_target_type, "renderer") {
       "//third_party/libvpx",
       "//third_party/opus",
     ]
+
+    if (building_for_tizen) {
+      sources -= [
+        "pepper/video_decoder_shim.cc",
+        "pepper/video_decoder_shim.h",
+        "pepper/video_encoder_shim.cc",
+        "pepper/video_encoder_shim.h",
+      ]
+    }
   }
 
   if (enable_basic_printing || enable_print_preview) {
@@ -1109,6 +1128,20 @@ target(link_target_type, "renderer") {
   if (is_chromecast) {
     defines += [ "MEDIA_EVENT_LOG_UTILITY=LOG(INFO)" ]
   }
+
+  if (is_tizen) {
+    sources += external_content_renderer_efl_sources
+    sources -= external_exclude_content_renderer_efl_sources
+  }
+
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "render_view_linux.cc",
+      "renderer_main_platform_delegate_linux.cc",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
 }
 
 # See comment at the top of //content/BUILD.gn for how this works.
index 744a78e..86f60b6 100644 (file)
@@ -22,6 +22,10 @@ if (is_android) {
   import("//third_party/icu/config.gni")
   import("//v8/gni/v8.gni")
 }
+if (use_efl) {
+  import("//tizen_src/chromium_impl/content/content_efl.gni")
+  import("//tizen_src/chromium_impl/content/shell/shell_efl.gni")
+}
 
 declare_args() {
   content_shell_product_name = "Content Shell"
@@ -212,6 +216,9 @@ static_library("content_shell_lib") {
     # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
     "//build/config/compiler:no_size_t_to_int_warning",
   ]
+  if (use_efl) {
+    configs += external_content_shell_configs
+  }
 
   defines = [ "CONTENT_SHELL_VERSION=\"$content_shell_version\"" ]
 
@@ -310,6 +317,9 @@ static_library("content_shell_lib") {
       "//components/crash/content/browser",
     ]
   }
+  if (use_efl) {
+    deps += external_content_shell_deps
+  }
 
   # Annoyingly, this target and layouttest_support have circular includes.
   allow_circular_includes_from = [ "//content/test:layouttest_support" ]
@@ -412,6 +422,10 @@ static_library("content_shell_lib") {
       "browser/shell_plugin_service_filter.h",
     ]
   }
+
+  if (use_efl) {
+    sources += external_content_shell_lib_efl_sources
+  }
 }
 
 grit("content_shell_resources_grit") {
@@ -601,6 +615,14 @@ if (is_android) {
       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
     }
 
+    if (use_efl) {
+      deps += external_content_shell_deps
+      configs += external_content_shell_configs
+
+      sources += external_content_shell_efl_sources
+      sources -= external_exclude_content_shell_efl_sources
+    }
+
     if (use_aura) {
       data_deps += [ "//services/ui" ]
     }
index 5cb4e7c..74c875b 100644 (file)
@@ -246,7 +246,7 @@ component("bluetooth") {
     ]
   }
 
-  if (is_chromeos || is_linux) {
+  if (is_chromeos || is_linux || is_tizen) {
     if (use_dbus) {
       sources += [
         "bluez/bluetooth_adapter_bluez.cc",
@@ -401,6 +401,16 @@ component("bluetooth") {
           "chromeos/bluetooth_utils.h",
         ]
       }
+      if (is_tizen) {
+        set_sources_assignment_filter([])
+        sources += [
+          "dbus/dbus_bluez_manager_wrapper_linux.cc",
+          "dbus/dbus_bluez_manager_wrapper_linux.h",
+          "dbus/dbus_thread_manager_linux.cc",
+          "dbus/dbus_thread_manager_linux.h",
+        ]
+        set_sources_assignment_filter(sources_assignment_filter)
+      }
       deps += [ "//dbus" ]
     } else {  # !use_dbus
       if (is_chromecast && is_linux) {
index fa48ed0..db061ff 100644 (file)
@@ -6,7 +6,7 @@ import("//build/config/features.gni")
 import("//mojo/public/tools/bindings/mojom.gni")
 
 # Library works only on desktop platforms.
-if (is_win || is_linux || is_mac) {
+if (is_win || is_linux || is_mac || is_tizen) {
   config("platform_support") {
     visibility = [ ":serial" ]
     if (is_win) {
@@ -89,4 +89,12 @@ if (is_win || is_linux || is_mac) {
       ":serial",
     ]
   }
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "serial_device_enumerator_linux.cc",
+      "serial_device_enumerator_linux.h",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
 }
index 853f58c..6319d56 100644 (file)
@@ -22,6 +22,15 @@ if (use_udev) {
       "udev_watcher.h",
     ]
 
+    if (is_tizen) {
+      set_sources_assignment_filter([])
+      sources += [
+        "udev_linux.cc",
+        "udev_linux.h",
+      ]
+      set_sources_assignment_filter(sources_assignment_filter)
+    }
+
     deps = [
       "//base",
       "//build/linux/libudev",
index 266a2fe..0a52166 100644 (file)
@@ -5,6 +5,9 @@
 import("//build/config/chrome_build.gni")
 import("//build/config/chromecast_build.gni")
 import("//build/config/ui.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/gpu/gpu_efl.gni")
+}
 
 group("config") {
   if (is_component_build) {
index 7bd0fca..22aeb2d 100644 (file)
@@ -126,6 +126,12 @@ component("service") {
       "image_transport_surface_linux.cc",
     ]
   }
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [ "image_transport_surface_linux.cc" ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
+
   if (use_x11) {
     sources += [ "x_util.h" ]
     libs += [ "X11" ]
index a5d98cc..d14d6f0 100644 (file)
@@ -12,6 +12,9 @@ import("//media/media_options.gni")
 import("//testing/libfuzzer/fuzzer_test.gni")
 import("//testing/test.gni")
 import("//third_party/ffmpeg/ffmpeg_options.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/media/media_efl.gni")
+}
 
 buildflag_header("media_buildflags") {
   header = "media_buildflags.h"
@@ -350,6 +353,13 @@ fuzzer_test("media_webm_muxer_fuzzer") {
     "//base",
     "//third_party/libwebm",
   ]
+
+  if (use_efl && tizen_multimedia_support) {
+    deps += external_media_efl_deps
+    sources += external_media_efl_sources
+    sources -= external_exclude_media_efl_sources
+    configs += external_media_efl_config
+  }
 }
 
 if (proprietary_codecs) {
index 35e67c9..52e407c 100644 (file)
@@ -318,6 +318,12 @@ source_set("audio") {
     ]
   }
 
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [ "linux/audio_manager_linux.cc" ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
+
   configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
 }
 
index ec675c7..a1bacc0 100644 (file)
@@ -242,6 +242,18 @@ component("capture_lib") {
       "//third_party/libsync",
     ]
   }
+
+  if (is_tizen && !tizen_multimedia_support) {
+    set_sources_assignment_filter([])
+    sources += [
+      "video/linux/v4l2_capture_delegate.cc",
+      "video/linux/video_capture_device_factory_linux.cc",
+      "video/linux/video_capture_device_factory_linux.h",
+      "video/linux/video_capture_device_linux.cc",
+      "video/linux/video_capture_device_linux.h",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
 }
 
 source_set("test_support") {
index 3ea9aa2..80e24b1 100644 (file)
@@ -35,7 +35,7 @@ declare_args() {
   # Enable usage of FFmpeg within the media library. Used for most software
   # based decoding, demuxing, and sometimes optimized FFTs. If disabled,
   # implementors must provide their own demuxers and decoders.
-  media_use_ffmpeg = true
+  media_use_ffmpeg = is_tizen
 
   # Enable usage of libvpx within the media library. Used for software based
   # decoding of VP9 and VP8A type content.
index 7521d6b..7efe3c9 100644 (file)
@@ -2047,6 +2047,20 @@ component("net") {
     public_deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
   }
 
+  if (is_tizen) {
+    net_unfiltered_sources += [
+      "base/address_tracker_linux.cc",
+      "base/address_tracker_linux.h",
+      "base/network_change_notifier_linux.cc",
+      "base/network_change_notifier_linux.h",
+      "base/network_interfaces_linux.cc",
+      "base/network_interfaces_linux.h",
+      "base/platform_mime_util_linux.cc",
+      "proxy/proxy_config_service_linux.cc",
+      "proxy/proxy_config_service_linux.h",
+    ]
+  }
+
   if (enable_unix_sockets) {
     sources += [
       "socket/unix_domain_client_socket_posix.cc",
index 8f75d8f..36acd2e 100644 (file)
@@ -215,6 +215,20 @@ component("printing") {
       "printing_context_no_system_dialog.cc",
       "printing_context_no_system_dialog.h",
     ]
+  } else if (is_linux) {  # Non-ChromeOS Linux.
+    sources += [
+      "printed_document_linux.cc",
+      "printing_context_linux.cc",
+      "printing_context_linux.h",
+    ]
+  } else if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "image_linux.cc",
+      "printing_context_linux.cc",
+      "printing_context_linux.h",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
   } else if (is_android) {
     sources += [
       "printing_context_android.cc",
index c60d5f8..315d4fe 100644 (file)
@@ -26,7 +26,7 @@ group("sandbox") {
       "//sandbox/mac:seatbelt_extension",
       "//sandbox/mac/mojom",
     ]
-  } else if (is_linux || is_android) {
+  } else if (is_linux || is_android || is_tizen) {
     public_deps = [
       "//sandbox/linux:sandbox",
     ]
index 5b179a1..9b0d4e8 100644 (file)
@@ -19,6 +19,7 @@ source_set("lib") {
   visibility = [
     ":test_support",
     "//content/browser",
+    "//tizen_src/ewk/efl_integration:chromium-ewk",
   ]
   sources = [
     "device_service.cc",
index 0f92985..63ceeae 100644 (file)
@@ -344,6 +344,30 @@ template("test") {
       }
       bundle_deps += [ ":$_resources_bundle_data" ]
     }
+  } else if (use_efl) {
+    executable(target_name) {
+      deps = []
+      forward_variables_from(invoker, "*")
+
+      testonly = true
+      deps += [
+        # All shared libraries must have the sanitizer deps to properly link in
+        # asan mode (this target will be empty in other cases).
+        "//build/config:exe_and_shlib_deps",
+
+        # Give tests the default manifest on Windows (a no-op elsewhere).
+        #"//build/win:default_exe_manifest",
+      ]
+    }
+
+    # TODO(GYP): Delete this after we've converted everything to GN.
+    # The _run targets exist only for compatibility with GYP.
+    group("${target_name}_run") {
+      testonly = true
+      deps = [
+        ":${invoker.target_name}",
+      ]
+    }
   } else {
     executable(target_name) {
       deps = []
index f0a8651..6d94ec7 100644 (file)
@@ -43,7 +43,7 @@ group("jpeg_includes") {
   if (use_system_libjpeg) {
     public_configs = [ ":system_libjpeg_config" ]
   } else if (use_libjpeg_turbo) {
-    public_configs = [ "//third_party/libjpeg_turbo:libjpeg_config" ]
+    public_configs = [ "//build/secondary/third_party/libjpeg_turbo:libjpeg_config" ]
   } else {
     public_configs = [ "//third_party/libjpeg:libjpeg_config" ]
   }
index 2390949..32e1c3d 100644 (file)
@@ -20,8 +20,10 @@ if (build_with_chromium) {
   }
 }
 
-# Subdirectory to place data files (e.g. layer JSON files).
-data_dir = "angledata"
+declare_args() {
+  # Subdirectory to place data files (e.g. layer JSON files).
+  data_dir = "angledata"
+}
 
 declare_args() {
   if (!is_android) {
index 64de692..ee40d16 100644 (file)
@@ -85,7 +85,7 @@ if (is_win && !is_msan) {
         public_configs = [ ":no_asm_config" ]
       }
     } else if (current_cpu == "arm") {
-      if (is_linux || is_android) {
+      if (is_linux || is_android || is_tizen) {
         sources += crypto_sources_linux_arm
       } else if (is_ios) {
         sources += crypto_sources_ios_arm
index c51c213..c1ae7dd 100644 (file)
@@ -57,8 +57,10 @@ assert(ffmpeg_branding == "Chromium" ||
 
 if (current_cpu == "x86") {
   ffmpeg_arch = "ia32"
-} else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) {
+} else if ((current_cpu == "arm" || is_tizen) && arm_version >= 7 && arm_use_neon) {
   ffmpeg_arch = "arm-neon"
+} else if (is_tizen) {
+  ffmpeg_arch = "arm"
 } else {
   ffmpeg_arch = current_cpu
 }
index 4e817b6..60b920a 100644 (file)
@@ -17,7 +17,7 @@ if (current_cpu == "x86") {
   } else {
     cpu_arch_full = "x64"
   }
-} else if (current_cpu == "arm") {
+} else if (current_cpu == "arm" || is_tizen) {
   if (arm_use_neon) {
     cpu_arch_full = "arm-neon"
   } else if (is_android) {
@@ -251,7 +251,7 @@ if (current_cpu == "arm") {
 }
 
 # Converts ARM assembly files to GAS style.
-if (current_cpu == "arm" && arm_assembly_sources != []) {
+if ((current_cpu == "arm" && arm_assembly_sources != []) || is_tizen) {
   action_foreach("convert_arm_assembly") {
     script = "//third_party/libvpx/run_perl.py"
     sources = arm_assembly_sources
index 80b82fb..aafa506 100644 (file)
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Copyright 2018 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.
 
-# Define an "os_include" variable that points at the OS-specific generated
-# headers.  These were generated by running the configure script offline.
-if (is_linux || is_android || is_nacl || is_fuchsia) {
-  os_include = "linux"
-} else if (is_mac || is_ios) {
-  os_include = "mac"
-} else if (is_win) {
-  os_include = "win32"
-}
-
-config("libxml_config") {
-  # Define LIBXML_STATIC as nothing to match how libxml.h (an internal header)
-  # defines LIBXML_STATIC, otherwise we get the macro redefined warning from
-  # GCC. ("defines" does "-DFOO" which defines the macro FOO as 1.)
-  cflags = [ "-DLIBXML_STATIC=" ]
-
-  include_dirs = [
-    "src/include",
-    "$os_include/include",
-  ]
-}
-
-config("libxml_warnings") {
-  if (is_win) {
-    cflags_c = [
-      "/wd4018",  # Signed/unsigned mismatch in comparison.
-      "/wd4267",  # TODO(brucedawson): http://crbug.com/554200 fix C4267
-      "/wd4311",  # and C4311 warnings.
-    ]
-  }
-  if (is_clang) {
-    cflags = [
-      # libxml passes `const unsigned char*` through `const char*`.
-      "-Wno-pointer-sign",
-
-      # pattern.c and uri.c both have an intentional `for (...);` /
-      # `while(...);` loop. I submitted a patch to move the `'` to its own
-      # line, but until that's landed suppress the warning:
-      "-Wno-empty-body",
-
-      # debugXML.c compares array 'arg' to NULL.
-      "-Wno-tautological-pointer-compare",
-
-      # threads.c attempts to forward declare a pthread_equal which doesn't
-      # match the prototype in pthreads.h
-      "-Wno-ignored-attributes",
+import("//build/config/linux/pkg_config.gni")
 
-      # libxml casts from int to long to void*.
-      "-Wno-int-to-void-pointer-cast",
-
-      # libxml passes a volatile LPCRITICAL_SECTION* to a function expecting
-      # a void* volatile*.
-      "-Wno-incompatible-pointer-types",
-
-      # trio_is_special_quantity and trio_is_negative are only
-      # used with certain preprocessor defines set.
-      "-Wno-unused-function",
-
-      # Comparison between xmlElementType and xmlXPathTypeVal.
-      # TODO(hans): See if we can fix upstream (http://crbug.com/763944).
-      "-Wno-enum-compare",
-    ]
-  } else if (is_linux) {
-    cflags = [
-      # gcc spits out a bunch of warnings about passing too many arguments to
-      # __xmlSimpleError.
-      "-Wno-format-extra-args",
-    ]
-  }
+pkg_config("system_libxml") {
+  packages = [ "libxml-2.0" ]
 }
 
 static_library("libxml") {
-  output_name = "libxml2"
-
-  # Commented out sources are libxml2 files we do not want to include. They are
-  # here to make it easy to identify files which are new.
   sources = [
     "chromium/libxml_utils.cc",
     "chromium/libxml_utils.h",
-    "linux/config.h",
-    "linux/include/libxml/xmlversion.h",
-    "mac/config.h",
-    "mac/include/libxml/xmlversion.h",
-
-    #"src/DOCBparser.c",
-    "src/HTMLparser.c",
-    "src/HTMLtree.c",
-
-    #"src/SAX.c",
-    "src/SAX2.c",
-    "src/buf.c",
-    "src/buf.h",
-
-    #"src/c14n.c",
-    #"src/catalog.c",
-    "src/chvalid.c",
-
-    #"src/debugXML.c",
-    "src/dict.c",
-    "src/elfgcchack.h",
-    "src/enc.h",
-    "src/encoding.c",
-    "src/entities.c",
-    "src/error.c",
-    "src/globals.c",
-    "src/hash.c",
-    "src/include/libxml/DOCBparser.h",
-    "src/include/libxml/HTMLparser.h",
-    "src/include/libxml/HTMLtree.h",
-    "src/include/libxml/SAX.h",
-    "src/include/libxml/SAX2.h",
-    "src/include/libxml/c14n.h",
-    "src/include/libxml/catalog.h",
-    "src/include/libxml/chvalid.h",
-    "src/include/libxml/debugXML.h",
-    "src/include/libxml/dict.h",
-    "src/include/libxml/encoding.h",
-    "src/include/libxml/entities.h",
-    "src/include/libxml/globals.h",
-    "src/include/libxml/hash.h",
-    "src/include/libxml/list.h",
-    "src/include/libxml/nanoftp.h",
-    "src/include/libxml/nanohttp.h",
-    "src/include/libxml/parser.h",
-    "src/include/libxml/parserInternals.h",
-    "src/include/libxml/pattern.h",
-    "src/include/libxml/relaxng.h",
-    "src/include/libxml/schemasInternals.h",
-    "src/include/libxml/schematron.h",
-    "src/include/libxml/threads.h",
-    "src/include/libxml/tree.h",
-    "src/include/libxml/uri.h",
-    "src/include/libxml/valid.h",
-    "src/include/libxml/xinclude.h",
-    "src/include/libxml/xlink.h",
-    "src/include/libxml/xmlIO.h",
-    "src/include/libxml/xmlautomata.h",
-    "src/include/libxml/xmlerror.h",
-    "src/include/libxml/xmlexports.h",
-    "src/include/libxml/xmlmemory.h",
-    "src/include/libxml/xmlmodule.h",
-    "src/include/libxml/xmlreader.h",
-    "src/include/libxml/xmlregexp.h",
-    "src/include/libxml/xmlsave.h",
-    "src/include/libxml/xmlschemas.h",
-    "src/include/libxml/xmlschemastypes.h",
-    "src/include/libxml/xmlstring.h",
-    "src/include/libxml/xmlunicode.h",
-    "src/include/libxml/xmlwriter.h",
-    "src/include/libxml/xpath.h",
-    "src/include/libxml/xpathInternals.h",
-    "src/include/libxml/xpointer.h",
-    "src/include/win32config.h",
-    "src/include/wsockcompat.h",
-
-    #"src/legacy.c",
-    "src/libxml.h",
-    "src/list.c",
-    "src/parser.c",
-    "src/parserInternals.c",
-    "src/pattern.c",
-
-    #"src/relaxng.c",
-    "src/save.h",
-
-    #"src/schematron.c",
-    "src/threads.c",
-    "src/timsort.h",
-    "src/tree.c",
-    "src/triodef.h",
-    "src/trionan.h",
-
-    #"src/trio.c",
-    #"src/trio.h",
-    #"src/triodef.h",
-    # Note: xpath.c #includes trionan.c
-    #"src/trionan.c",
-    #"src/triop.h",
-    #"src/triostr.c",
-    #"src/triostr.h",
-    "src/uri.c",
-    "src/valid.c",
-
-    #"src/xinclude.c",
-    #"src/xlink.c",
-    "src/xmlIO.c",
-    "src/xmlmemory.c",
-
-    #"src/xmlmodule.c",
-    "src/xmlreader.c",
-
-    #"src/xmlregexp.c",
-    "src/xmlsave.c",
-
-    #"src/xmlschemas.c",
-    #"src/xmlschemastypes.c",
-    "src/xmlstring.c",
-    "src/xmlunicode.c",
-    "src/xmlwriter.c",
-    "src/xpath.c",
-
-    #"src/xpointer.c",
-    #"src/xzlib.c",
-    "src/xzlib.h",
-    "win32/config.h",
-    "win32/include/libxml/xmlversion.h",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [
-    "//build/config/compiler:no_chromium_code",
-
-    # Must be after no_chromium_code for warning flags to be ordered correctly.
-    ":libxml_warnings",
-  ]
-
-  if (is_win) {
-    # libxml2 already defines WIN32_LEAN_AND_MEAN.
-    configs -= [ "//build/config/win:lean_and_mean" ]
-  }
-
-  public_configs = [ ":libxml_config" ]
-  public_deps = [
-    "//third_party/icu:icuuc",
-  ]
-  deps = [
-    "//third_party/zlib",
-  ]
-
-  if (is_mac || is_ios || is_android || is_fuchsia) {
-    # http://www.xmlsoft.org/threads.html says that this is required when using
-    # libxml from several threads, which can possibly happen in chrome. On
-    # linux, this is picked up by transitivity from pkg-config output from
-    # build/linux/system.gyp.
-    defines = [ "_REENTRANT" ]
-  }
-
-  include_dirs = [ "$os_include" ]
+  public_configs = [ ":system_libxml" ]
 }
+
index de06534..d6a7617 100644 (file)
@@ -82,7 +82,7 @@ static_library("libxslt") {
   public_configs = [ ":libxslt_config" ]
 
   cflags = []
-  if (is_linux || is_android || is_fuchsia) {
+  if (is_linux || is_android || is_fuchsia || is_tizen) {
     include_dirs = [ "linux" ]
   } else if (is_win) {
     include_dirs = [ "win32" ]
index 148b7ec..49834b7 100644 (file)
@@ -290,7 +290,8 @@ static_library("mesa_libglslcommon") {
 
   if (is_clang) {
     # Mesa triggers some of these Clang warnings.
-    configs -= [ "//build/config/clang:extra_warnings" ]
+    # TODO : check for uncomment or use use_efl
+    #configs -= [ "//build/config/clang:extra_warnings" ]
   }
 
   # UBsan's vptr is not compatible with -fno-rtti,
@@ -679,7 +680,8 @@ static_library("mesa") {
 
   if (is_clang) {
     # Mesa triggers some of these Clang warnings.
-    configs -= [ "//build/config/clang:extra_warnings" ]
+    # TODO : check for uncomment or use use_efl
+    #configs -= [ "//build/config/clang:extra_warnings" ]
   }
 
   # UBsan's vptr is not compatible with -fno-rtti,
@@ -739,7 +741,8 @@ loadable_module("osmesa") {
 
   if (is_clang) {
     # Mesa triggers some of these Clang warnings.
-    configs -= [ "//build/config/clang:extra_warnings" ]
+    # TODO : check for uncomment or use use_efl
+    #configs -= [ "//build/config/clang:extra_warnings" ]
   }
 
   # UBsan's vptr is not compatible with -fno-rtti,
index 516ba08..e653e2f 100644 (file)
@@ -11,12 +11,12 @@ use_opus_fixed_point = current_cpu == "arm" || current_cpu == "arm64"
 # If ARM optimizations shall be used to accelerate performance.
 # TODO(scottmg): Disabled on Fuchsia for now, see https://crbug.com/775272.
 use_opus_arm_optimization =
-    current_cpu == "arm" || (current_cpu == "arm64" && is_ios)
+    current_cpu == "arm" || (current_cpu == "arm64" && is_ios || is_tizen)
 
 # If OPUS Run Time CPU Detections (RTCD) shall be used.
 # Based on the conditions in celt/arm/armcpu.c:
 # defined(_MSC_VER) || defined(__linux__).
-use_opus_rtcd = current_cpu == "arm" && (is_win || is_android || is_linux)
+use_opus_rtcd = current_cpu == "arm" && (is_win || is_android || is_linux) || is_tizen
 
 config("opus_config") {
   include_dirs = [ "src/include" ]
index de5e773..2a9ae4a 100644 (file)
@@ -129,7 +129,7 @@ config("common_inherited_config") {
       "WEBRTC_IOS",
     ]
   }
-  if (is_linux) {
+  if (is_linux || is_tizen) {
     defines += [ "WEBRTC_LINUX" ]
   }
   if (is_mac) {
diff --git a/tizen_src/.gn b/tizen_src/.gn
new file mode 100644 (file)
index 0000000..9aebe3e
--- /dev/null
@@ -0,0 +1,256 @@
+# This file is used by the GN meta build system to find the root of the source
+# tree and to set startup options. For documentation on the values set in this
+# file, run "gn help dotfile" at the command line.
+
+import("//build/dotfile_settings.gni")
+
+# The location of the build configuration file.
+buildconfig = "//tizen_src/build/config/BUILDCONFIG.gn"
+
+# The secondary source root is a parallel directory tree where
+# GN build files are placed when they can not be placed directly
+# in the source tree, e.g. for third party source trees.
+secondary_source = "//build/secondary/"
+
+# These arguments override the default values for items in a declare_args
+# block. "gn args" in turn can override these.
+#
+# In general the value for a build arg in the declare_args block should be the
+# default. In some cases, a DEPS-ed in project will want different defaults for
+# being built as part of Chrome vs. being built standalone. In this case, the
+# Chrome defaults should go here. There should be no overrides here for
+# values declared in the main Chrome repository.
+#
+# Important note for defining defaults: This file is executed before the
+# BUILDCONFIG.gn file. That file sets up the global variables like "is_ios".
+# This means that the default_args can not depend on the platform,
+# architecture, or other build parameters. If you really need that, the other
+# repo should define a flag that toggles on a behavior that implements the
+# additional logic required by Chrome to set the variables.
+default_args = {
+  # TODO(brettw) bug 684096: Chrome on iOS does not build v8, so "gn gen" prints
+  # a warning that "Build argument has no effect". When adding a v8 variable, it
+  # also needs to be defined to src/ios/BUILD.gn (respectively removed from both
+  # location when it is removed).
+
+  v8_extra_library_files = [
+    # Dependencies used by the extra libraries. Putting them here causes them
+    # to be executed first during snapshot creation.
+    "//third_party/blink/renderer/core/streams/CommonOperations.js",
+    "//third_party/blink/renderer/core/streams/CommonStrings.js",
+    "//third_party/blink/renderer/core/streams/SimpleQueue.js",
+
+    # Extra libraries.
+    "//third_party/blink/renderer/core/streams/ByteLengthQueuingStrategy.js",
+    "//third_party/blink/renderer/core/streams/CountQueuingStrategy.js",
+    "//third_party/blink/renderer/core/streams/ReadableStream.js",
+    "//third_party/blink/renderer/core/streams/WritableStream.js",
+  ]
+  v8_experimental_extra_library_files = []
+  v8_enable_gdbjit = false
+  v8_imminent_deprecation_warnings = false
+
+  # TODO(jochen): Remove this. http://crbug.com/v8/5830,
+  # http://crbug.com/728583.
+  v8_check_microtasks_scopes_consistency = false
+}
+
+# These are the targets to check headers for by default. The files in targets
+# matching these patterns (see "gn help label_pattern" for format) will have
+# their includes checked for proper dependencies when you run either
+# "gn check" or "gn gen --check".
+check_targets = [
+  #"//apps/*",  # Medium-hard.
+  "//ash/*",
+  "//base/*",
+  "//blink/*",
+  "//build/*",
+  "//cc/*",
+
+  #"//chrome/*",  # Epic number of errors.
+  "//chrome/app/*",
+  "//chrome/app_shim/*",
+  "//chrome/browser/chromeos/*",
+  "//chrome/browser/extensions/*",
+  "//chrome/browser/ui/*",
+  "//chrome/common/*",
+  "//chrome/installer/*",
+  "//chrome/profiling",
+  "//chrome/third_party/mozilla_security_manager/*",
+  "//chrome/tools/*",
+  "//chrome/utility/*",
+  "//chromecast/*",
+  "//chromeos/*",
+  "//chrome_elf/*",
+  "//cloud_print/*",
+  "//components/*",
+  "//content/*",
+  "//courgette/*",
+  "//crypto/*",
+  "//data/*",
+  "//dbus/*",
+  "//device/*",
+
+  #"//extensions/*",  # Lots of errors.
+  "//extensions:extensions_unittests",
+  "//extensions/browser:browser_tests",
+  "//extensions/browser:unit_tests",
+  "//extensions/common:unit_tests",
+  "//extensions/renderer:unit_tests",
+  "//extensions/shell:browser_tests",
+  "//extensions/shell:unit_tests",
+  "//extensions/utility:unit_tests",
+  "//gin/*",
+  "//google_apis/*",
+  "//google_update/*",
+  "//gpu/*",
+
+  "//ios/*",
+  "//ios_internal/*",
+  "//ipc/*",
+
+  #"//jingle/*",
+  "//mash/*",
+
+  "//media/*",
+  "//mojo/*",
+
+  #"//native_client/*",
+  "//net/*",
+
+  #"//pdf/*",  # Medium-hard.
+  #"//ppapi/*",  # Lots of errors.
+  "//ppapi/examples/*",
+  "//printing/*",
+
+  #"//remoting/*",  # Medium-hard.
+  "//rlz/*",
+
+  #"//sandbox/*",  # Medium-hard.
+  "//services/*",
+  "//skia/*",
+  "//sql/*",
+  "//storage/*",
+  "//testing/*",
+
+  #"//third_party/*",  # May not ever want this.
+  "//third_party/breakpad/*",
+  "//third_party/brotli/*",
+  "//third_party/hunspell/*",
+  "//third_party/leveldatabase/*",
+  "//third_party/libaddressinput/*",
+  "//third_party/libphonenumber/*",
+  "//third_party/libwebp/*",
+  "//third_party/snappy/*",
+  "//third_party/WebKit/*",
+  "//tools/*",
+
+  "//ui/*",
+  "//url/*",
+  "//v8/*",
+  "//win8/*",
+]
+
+# These are the list of GN files that run exec_script. This whitelist exists
+# to force additional review for new uses of exec_script, which is strongly
+# discouraged.
+#
+# GYPI_TO_GN
+#
+# Some of these entries are for legacy gypi_to_gn calls. We should not be
+# adding new calls to this script in the build (see //build/gypi_to_gn.py for
+# detailed advice). The only time you should be editing this list for
+# gypi_to_gn purposes is when moving an existing call to a different place.
+#
+# PLEASE READ
+#
+# You should almost never need to add new exec_script calls. exec_script is
+# slow, especially on Windows, and can cause confusing effects. Although
+# individually each call isn't slow or necessarily very confusing, at the scale
+# of our repo things get out of hand quickly. By strongly pushing back on all
+# additions, we keep the build fast and clean. If you think you need to add a
+# new call, please consider:
+#
+# - Do not use a script to check for the existance of a file or directory to
+#   enable a different mode. Instead, use GN build args to enable or disable
+#   functionality and set options. An example is checking for a file in the
+#   src-internal repo to see if the corresponding src-internal feature should
+#   be enabled. There are several things that can go wrong with this:
+#
+#    - It's mysterious what causes some things to happen. Although in many cases
+#      such behavior can be conveniently automatic, GN optimizes for explicit
+#      and obvious behavior so people can more easily diagnose problems.
+#
+#    - The user can't enable a mode for one build and not another. With GN build
+#      args, the user can choose the exact configuration of multiple builds
+#      using one checkout. But implicitly basing flags on the state of the
+#      checkout, this functionality is broken.
+#
+#    - It's easy to get stale files. If for example the user edits the gclient
+#      to stop checking out src-internal (or any other optional thing), it's
+#      easy to end up with stale files still mysteriously triggering build
+#      conditions that are no longer appropriate (yes, this happens in real
+#      life).
+#
+# - Do not use a script to iterate files in a directory (glob):
+#
+#    - This has the same "stale file" problem as the above discussion. Various
+#      operations can leave untracked files in the source tree which can cause
+#      surprising effects.
+#
+#    - It becomes impossible to use "git grep" to find where a certain file is
+#      referenced. This operation is very common and people really do get
+#      confused when things aren't listed.
+#
+#    - It's easy to screw up. One common case is a build-time script that packs
+#      up a directory. The author notices that the script isn't re-run when the
+#      directory is updated, so adds a glob so all the files are listed as
+#      inputs. This seems to work great... until a file is deleted. When a
+#      file is deleted, all the inputs the glob lists will still be up to date
+#      and no command-lines will have been changed. The action will not be
+#      re-run and the build will be broken. It is possible to get this correct
+#      using glob, and it's possible to mess it up without glob, but globs make
+#      this situation much easier to create. if the build always lists the
+#      files and passes them to a script, it will always be correct.
+
+exec_script_whitelist =
+    build_dotfile_settings.exec_script_whitelist + [
+      # Whitelist entries for //build should go into
+      # //build/dotfile_settings.gni instead, so that they can be shared
+      # with other repos. The entries in this list should be only for files
+      # in the Chromium repo outside of //build.
+      "//build_overrides/build.gni",
+
+      # TODO(dgn): Layer violation but breaks the build otherwise, see
+      # https://crbug.com/474506.
+      "//clank/java/BUILD.gn",
+      "//clank/native/BUILD.gn",
+
+      "//cowboy/BUILD.gn",
+      "//cowboy/make_sbrowser_apk.gni",
+      "//remoting/host/installer/linux/BUILD.gn",
+      "//remoting/remoting_version.gni",
+      "//remoting/host/installer/win/generate_clsids.gni",
+
+      "//terrace/BUILD.gn",
+      "//terrace/make_terrace_target.gni",
+      # TODO(dpranke): Get these from the appropriate repos instead.
+      "//third_party/angle/BUILD.gn",
+      "//third_party/angle/src/tests/BUILD.gn",
+      "//third_party/angle/src/vulkan_support/BUILD.gn",
+      "//third_party/catapult/tracing/BUILD.gn",
+      "//third_party/google_input_tools/inputview.gni",
+      "//third_party/skia/gn/shared_sources.gni",
+
+      "//tizen_src/ewk/efl_integration/BUILD.gn",
+
+      # CLD2 should be removed soon, delete this when we do.
+      "//third_party/cld_2/BUILD.gn",
+      "//tools/grit/grit_rule.gni",
+
+      # Not gypi-to-gn.
+      "//google_apis/BUILD.gn",
+      "//printing/BUILD.gn",
+
+      "//v8/BUILD.gn",
+    ]
diff --git a/tizen_src/BUILD.gn b/tizen_src/BUILD.gn
new file mode 100644 (file)
index 0000000..3550d31
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright (c) 2015 Samsung Electronics. 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/features.gni")
+#import("//tizen_src/supplement.gni")
+#import("//build/config/sanitizers/sanitizers.gni")
+#import("//build/config/ui.gni")
+#import("//build_overrides/v8.gni")
+#import("//media/media_options.gni")
+#import("//third_party/openh264/openh264_args.gni")
+
+group("tizen_src_root") {
+  testonly = true
+  deps = [
+    "//tizen_src/ewk:chromium_efl_all"
+  ]
+}
index 94e8d4d..a354b2b 100644 (file)
@@ -26,7 +26,7 @@ khronos_cl_api_rev = '6f4be98d10f03ce2b12c769cd9835c73a441c00f'
 # SVN revision while Blink is still in SVN.
 blink_upstream_rev = '191638' #TODO(TK) : need to update revision number
 
-efl_integration_branch = 'origin/dev/m53_2785'
+efl_integration_branch = 'origin/dev/m63_3239'
 ct_git = 'ssh://165.213.202.130:29418/webplatform'
 crosswalk_git = 'https://github.com/crosswalk-project'
 
@@ -46,8 +46,8 @@ solutions = [
         ct_git + '/s-chromium.git@' + efl_integration_branch,
       'src/third_party/skia':
         ct_git + '/s-skia.git@' + efl_integration_branch,
-      'src/third_party/webrtc':
-        ct_git + '/s-webrtc.git@' + efl_integration_branch,
+      #'src/third_party/webrtc':
+      #  ct_git + '/s-webrtc.git@' + efl_integration_branch,
       'src/v8':
         ct_git + '/s-v8.git@' + efl_integration_branch,
 
diff --git a/tizen_src/build/BUILD.gn b/tizen_src/build/BUILD.gn
new file mode 100644 (file)
index 0000000..4b125f2
--- /dev/null
@@ -0,0 +1,596 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+import("//tizen_src/build/config/linux/pkg_config.gni")
+
+config("evas") {
+  ldflags = [ "-levas" ]
+}
+
+tizen_pkg_config("libevas") {
+  packages = [ "evas" ]
+}
+
+config("evas-public") {
+  #cflags = [ "-evas" ]
+}
+
+config("ecore") {
+  #TODO: toolsets may be required
+  #'toolsets': ['host', 'target'],
+  ldflags = [ "-lecore" ]
+}
+
+tizen_pkg_config("libecore") {
+  #TODO: toolsets may be required
+  #'toolsets': ['host', 'target'],
+  packages = [ "ecore" ]
+}
+
+config("ecore-imf-evas") {
+  ldflags = [ "-lecore_imf_evas" ]
+}
+
+tizen_pkg_config("libecore-imf-evas") {
+  packages = [ "ecore-imf-evas" ]
+}
+
+config("ecore-imf-evas-public") {
+}
+
+config("ecore-x") {
+  if (!use_wayland) {
+    ldflags = [ "-lecore_x" ]
+  }
+}
+
+tizen_pkg_config("libecore-x") {
+  packages = []
+  if (!use_wayland) {
+    packages = [ "ecore-x" ]
+  }
+}
+
+config("ecore-x-public") {
+  if (!use_wayland) {
+    #cflags = [ "-ecore-x" ]
+  }
+}
+
+config("ecore-wayland") {
+  if (building_for_tizen && use_wayland) {
+    ldflags = [ "-lecore_wayland" ]
+  }
+}
+
+tizen_pkg_config("libecore-wayland") {
+  packages = []
+  if (building_for_tizen && use_wayland) {
+    packages = [ "ecore-wayland" ]
+  }
+}
+
+config("ecore-wayland-public") {
+  if (building_for_tizen && use_wayland) {
+    cflags = [ "-ecore-wayland" ]
+  }
+}
+
+config("ecore-evas") {
+  ldflags = [ "-lecore_evas" ]
+}
+
+tizen_pkg_config("libecore-evas") {
+  packages = [ "ecore-evas" ]
+}
+
+config("ecore-evas-public") {
+}
+
+config("ecore-input") {
+  ldflags = [ "-lecore_input" ]
+}
+
+tizen_pkg_config("libecore-input") {
+  packages = [ "ecore-input" ]
+}
+
+config("ecore-input-public") {
+  cflags = [ "-ecore-input" ]
+}
+
+config("elementary") {
+  ldflags = [
+    "-lelementary",
+    "-leet",
+    "-lefreet",
+    "-lefreet_mime",
+    "-lefreet_trash",
+  ]
+}
+
+tizen_pkg_config("libelementary") {
+  packages = [ "elementary" ]
+}
+
+config("elementary-public") {
+  cflags = [] #[ "-elementary" ]
+  if (is_clang) {
+    # Fix: elm_prefs_common.h:27:9: warning: empty struct has size 0 in C, size 1 in C++
+    cflags += [ "-Wno-extern-c-compat" ]
+  }
+}
+
+config("edje") {
+  ldflags = [ "-ledje" ]
+}
+
+tizen_pkg_config("libedje") {
+  packages = [ "edje" ]
+}
+
+config("edje-public") {
+  cflags = [ "-edje" ]
+}
+
+config("efl-extension") {
+  if (building_for_tizen) {
+    ldflags = [ "-lefl-extension" ]
+  }
+}
+
+tizen_pkg_config("libefl-extension") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "efl-extension" ]
+  }
+}
+
+config("efl-extension-public") {
+  if (building_for_tizen) {
+    cflags = [ "-efl-extension" ]
+  }
+}
+
+config("ui-gadget") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    ldflags = [ "-lui-gadget-1" ]
+  }
+}
+
+tizen_pkg_config("libui-gadget") {
+  packages = []
+  if (building_for_tizen && building_strategy=="ewk") {
+    packages = [ "ui-gadget-1" ]
+  }
+}
+
+config("ui-gadget-public") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    cflags = [ "-DUG_WAYLAND" ]
+  }
+}
+
+config("capi-appfw-application") {
+  if (building_for_tizen) {
+    ldflags = [ "-lcapi-appfw-application" ]
+  }
+}
+
+tizen_pkg_config("libcapi-appfw-application") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "capi-appfw-application" ]
+  }
+}
+
+config("capi-appfw-application-public") {
+  if (building_for_tizen) {
+#    cflags = [ "-capi-appfw-application" ]
+  }
+}
+
+config("capi-location-manager") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    ldflags = [ "-lcapi-location-manager" ]
+  }
+}
+
+tizen_pkg_config("libcapi-location-manager") {
+  packages = []
+  if (building_for_tizen && building_strategy=="ewk") {
+    packages = [ "capi-location-manager" ]
+  }
+}
+
+config("capi-location-manager-public") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    #cflags = [ "-capi-location-manager" ]
+  }
+}
+
+config("capi-system-info") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    ldflags = [ "-lcapi-system-info" ]
+  }
+}
+
+tizen_pkg_config("libcapi-system-info") {
+  packages = []
+  if (building_for_tizen && building_strategy=="ewk") {
+    packages = [ "capi-system-info" ]
+  }
+}
+
+config("capi-system-info-public") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    #cflags = [ "-capi-system-info" ]
+  }
+}
+
+config("capi-system-device") {
+  if (building_for_tizen_mobile) {
+    ldflags = [ "-lcapi-system-device" ]
+  }
+}
+
+tizen_pkg_config("libcapi-system-device") {
+  packages = []
+  if (building_for_tizen_mobile) {
+    packages = [ "capi-system-device" ]
+  }
+}
+
+config("capi-system-device-public") {
+  if (building_for_tizen_mobile) {
+    #cflags = [ "-capi-system-device" ]
+  }
+}
+
+config("capi-system-sensor") {
+  if (building_for_tizen_mobile) {
+    #ldflags = [ "-capi-system-sensor" ]
+  }
+}
+
+tizen_pkg_config("libcapi-system-sensor") {
+  packages = []
+  if (building_for_tizen_mobile) {
+    packages = [ "capi-system-sensor" ]
+  }
+}
+
+config("capi-system-sensor-public") {
+  if (building_for_tizen_mobile) {
+    cflags = [ "-capi-system-sensor" ]
+  }
+}
+
+config("capi-system-system-settings") {
+  if (building_for_tizen) {
+    ldflags = [ "-lcapi-system-system-settings" ]
+  }
+}
+
+tizen_pkg_config("libcapi-system-system-settings") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "capi-system-system-settings" ]
+  }
+}
+
+config("capi-system-system-settings-public") {
+  if (building_for_tizen) {
+    cflags = [ "-capi-system-system-settings" ]
+  }
+}
+
+config("libdri2") {
+  if (building_for_tizen && !use_wayland) {
+    ldflags = [ "-llibdri2" ]
+  }
+}
+
+tizen_pkg_config("liblibdri2") {
+  packages = []
+  if (building_for_tizen && !use_wayland) {
+    packages = [ "libdri2" ]
+  }
+}
+
+config("libdri2-public") {
+  if (building_for_tizen && !use_wayland) {
+    cflags = [ "-libdri2" ]
+  }
+}
+
+config("libdrm") {
+  if (building_for_tizen) {
+    ldflags = [ "-llibdrm" ]
+  }
+}
+
+tizen_pkg_config("liblibdrm") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "libdrm" ]
+  }
+}
+
+config("libdrm-public") {
+  if (building_for_tizen) {
+    cflags = [ "-libdrm" ]
+  }
+}
+
+config("libtbm") {
+  if (building_for_tizen) {
+    ldflags = [ "-llibtbm" ]
+  }
+}
+
+tizen_pkg_config("liblibtbm") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "libtbm" ]
+  }
+}
+
+config("libtbm-public") {
+  if (building_for_tizen) {
+    cflags = [ "-libtbm" ]
+  }
+}
+
+config("x11") {
+  if (!use_wayland) {
+    #ldflags = [ "-x11" ]
+  }
+}
+
+tizen_pkg_config("libx11") {
+  packages = []
+  if (!use_wayland) {
+    packages = [ "x11" ]
+  }
+}
+
+config("x11-public") {
+  if (!use_wayland) {
+    cflags = [ "-x11" ]
+  }
+}
+
+config("gstreamer") {
+  if (chromium_efl_tizen_version >= 24) {
+    ldflags = [
+      "-lgstreamer-1.0",
+      "-lgstbase-1.0",
+      "-lgstapp-1.0",
+      "-lgstpbutils-1.0",
+      "-lgstvideo-1.0",
+    ]
+  } else { # for Tizen v2.X
+    ldflags = [
+      "gstreamer-0.10",
+      "gstreamer-base-0.10",
+      "gstreamer-app-0.10",
+      "gstreamer-pbutils-0.10",
+      "gstreamer-interfaces-0.10",
+      "gstreamer-video-0.10",
+    ]
+  }
+}
+
+tizen_pkg_config("libgstreamer") {
+  if (chromium_efl_tizen_version >= 24) {
+    packages = [
+      "gstreamer-1.0",
+      "gstreamer-base-1.0",
+      "gstreamer-app-1.0",
+      "gstreamer-pbutils-1.0",
+      "gstreamer-video-1.0",
+    ]
+  } else { # for Tizen v2.X
+    packages = [
+      "gstreamer-0.10",
+      "gstreamer-base-0.10",
+      "gstreamer-app-0.10",
+      "gstreamer-pbutils-0.10",
+      "gstreamer-interfaces-0.10",
+      "gstreamer-video-0.10",
+    ]
+  }
+}
+
+config("gstreamer-public") {
+  #cflags = dependent_pkgs
+}
+
+config("gstreamer-fft") {
+  ldflags = [ "-gstreamer-fft-1.0" ]
+}
+
+tizen_pkg_config("libgstreamer-fft") {
+  packages = [ "gstreamer-fft-1.0" ]
+}
+
+config("gstreamer-fft-public") {
+  cflags = [ "-gstreamer-fft-1.0" ]
+}
+
+config("capi-media-camera") {
+  if (building_for_tizen) {
+    #ldflags = [ "-capi-media-camera" ]
+  }
+}
+
+tizen_pkg_config("libcapi-media-camera") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "capi-media-camera" ]
+  }
+}
+
+config("capi-media-camera-public") {
+  if (building_for_tizen) {
+    #cflags = [ "-capi-media-camera" ]
+  }
+}
+
+config("capi-media-audio-io") {
+  if (building_for_tizen) {
+    ldflags = [ "-lcapi-media-audio-io" ]
+  }
+}
+
+tizen_pkg_config("libcapi-media-audio-io") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "capi-media-audio-io" ]
+  }
+}
+
+config("capi-media-audio-io-public") {
+  if (building_for_tizen) {
+    cflags = [ "-capi-media-audio-io" ]
+  }
+}
+
+config("capi-media-player") {
+  if (building_for_tizen) {
+    #ldflags = [ "-capi-media-player" ]
+  }
+}
+
+tizen_pkg_config("libcapi-media-player") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "capi-media-player" ]
+  }
+}
+
+config("capi-media-player-public") {
+  if (building_for_tizen) {
+    cflags = [ "-capi-media-player" ]
+  }
+}
+
+config("capi-media-tool") {
+  if (building_for_tizen) {
+    ldflags = [ "-lcapi-media-tool" ]
+  }
+}
+
+tizen_pkg_config("libcapi-media-tool") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "capi-media-tool" ]
+  }
+}
+
+config("capi-media-tool-public") {
+  if (building_for_tizen) {
+    cflags = [ "-capi-media-tool" ]
+  }
+}
+
+config("mm-player") {
+  if (building_for_tizen) {
+    ldflags = [ "-lmm-player" ]
+  }
+}
+
+tizen_pkg_config("libmm-player") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "mm-player" ]
+  }
+}
+
+config("mm-player-public") {
+  if (building_for_tizen) {
+    cflags = [ "-mm-player" ]
+  }
+}
+
+config("tts") {
+  if (building_for_tizen) {
+    ldflags = [ "-ltts" ]
+  }
+}
+
+tizen_pkg_config("libtts") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "tts" ]
+  }
+}
+
+config("tts-public") {
+  if (building_for_tizen) {
+    cflags = [ "-tts" ]
+  }
+}
+
+config("vconf") {
+  if (building_for_tizen) {
+    ldflags = [ "-lvconf" ]
+  }
+}
+
+tizen_pkg_config("libvconf") {
+  packages = []
+  if (building_for_tizen) {
+    packages = [ "vconf" ]
+  }
+}
+
+config("vconf-public") {
+  if (building_for_tizen) {
+    #cflags = [ "-vconf" ]
+  }
+}
+
+config("feedback") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    ldflags = [ "-lfeedback" ]
+  }
+}
+
+tizen_pkg_config("libfeedback") {
+  packages = []
+  if (building_for_tizen && building_strategy=="ewk") {
+    packages = [ "feedback" ]
+  }
+}
+
+config("feedback-public") {
+  if (building_for_tizen && building_strategy=="ewk") {
+    #cflags = [ "-feedback" ]
+  }
+}
+
+config("tizen_tzplatform_config") {
+  if (chromium_efl_tizen_version >= 30 && is_tizen) {
+    ldflags = [
+      "-ltzplatform-config-static",
+      "-ltzplatform-config-2.0",
+    ]
+  }
+}
+
+tizen_pkg_config("libtizen_tzplatform_config") {
+  packages = []
+  if (chromium_efl_tizen_version >= 30) {
+    #packages = [ "libtzplatform-config" ]
+  }
+}
+
+config("tizen_tzplatform_config-public") {
+  if (chromium_efl_tizen_version >= 30) {
+    cflags = [ "-libtzplatform-config" ]
+  }
+}
index 576a2c6..1e9463f 100755 (executable)
@@ -7,13 +7,20 @@ trap 'error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
 
 host_arch=$(getHostArch)
 
-if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
-  export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
-fi
-
 parseHostBuildScriptParams desktop $@
 
-JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
+JHBUILD_STAMPFILE=""
+if [ "$USE_GN" ]; then
+  if [ -z "$GN_GENERATOR_OUTPUT" ]; then
+    export GN_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
+  fi
+  JHBUILD_STAMPFILE="${GN_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
+else
+  if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
+    export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
+  fi
+  JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
+fi
 
 forceJHBuildIfNeeded() {
   if [[ $FORCE_JHBUILD == 1 ]]; then
@@ -29,7 +36,12 @@ forceJHBuildIfNeeded() {
 
 forceJHBuildIfNeeded
 
-JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
+JHBUILD_DEPS=""
+if [ "$USE_GN" ]; then
+  JHBUILD_DEPS="${GN_GENERATOR_OUTPUT}/Dependencies/Root"
+else
+  JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
+fi
 if [ "${host_arch}" == "x64" ]; then
   _LIBDIR=lib64
 elif [ "${host_arch}" == "ia32" ]; then
@@ -47,9 +59,29 @@ fi
 
 ${SCRIPTDIR}/apply_patches.sh ${SCRIPTDIR}/patches
 
-export __GYP_CHROMIUMEFL_TARGET=desktop
+if [ "$USE_GN" ]; then
+  export __GN_CHROMIUMEFL_TARGET=desktop
+else
+  export __GYP_CHROMIUMEFL_TARGET=desktop
+fi
 
-hostGypChromiumEfl
+#export BUILD_DEPENDENCIES_LIB_PATH="${JHBUILD_DEPS}/${_LIBDIR}"
+#export BUILD_DEPENDENCIES_INCLUDE_PATH="${JHBUILD_DEPS}/include"
+
+#deps_include_path="\"${JHBUILD_DEPS}/include "
+#for module in "${JHBUILD_DEPS}/include/*"
+#do
+#  deps_include_path="$deps_include_path$module "
+#done
+#deps_include_path="$deps_include_path\""
+
+if [ "$USE_GN" ]; then
+  #hostGnChromiumEfl "deps_include_path=$deps_include_path deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
+  hostGnChromiumEfl "deps_include_path=\"${JHBUILD_DEPS}/include\" deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
+# deps_efl_pc_path=\"${JHBUILD_DEPS}/Source/efl-1.16.0/pc\"
+else
+  hostGypChromiumEfl
+fi
 
 export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}:$LD_LIBRARY_PATH"
 export PATH="${JHBUILD_DEPS}/bin:$PATH"
diff --git a/tizen_src/build/cmd_execution.py b/tizen_src/build/cmd_execution.py
new file mode 100644 (file)
index 0000000..0159933
--- /dev/null
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+
+import sys
+import os
+
+if __name__ == '__main__':
+
+  l = len(sys.argv)
+  c = 1;
+  cmd = ""
+  while c < l:
+    cmd += sys.argv[c] + " "
+    c += 1
+
+  os.system(cmd)
+
+  sys.exit(0)
index 63b0867..1f029d4 100755 (executable)
@@ -78,6 +78,12 @@ function parseHostBuildScriptParams() {
       --skip-gyp)
         export SKIP_GYP=1
         ;;
+      --use-gn)
+        export USE_GN=1
+        ;;
+      --skip-gn)
+        export SKIP_GN=1
+        ;;
       --ccache)
         echo using ccache
         export USE_CCACHE=1
@@ -137,6 +143,25 @@ function hostGypChromiumEfl() {
   fi
 }
 
+function hostGnChromiumEfl() {
+  if [[ $SKIP_GN != 1 ]]; then
+    local XWALK_ARG=""
+    local COMPONENT_ARG=""
+    if [[ $BUILD_XWALK == 1 ]]; then
+      XWALK_ARG="xwalk=true"
+    fi
+    if [[ $COMPONENT_BUILD == 1 ]]; then
+      COMPONENT_ARG="component=shared_library"
+    fi
+    ${TOPDIR}/tizen_src/build/gn_chromiumefl.sh \
+      $XWALK_ARG \
+      $COMPONENT_ARG \
+      "outdir=\"$TOPDIR/out.$(getHostArch)\"" \
+      "chromium_efl_tizen_version=30" \
+      $@
+  fi
+}
+
 function hostNinja() {
   if [[ $SKIP_NINJA == 0 ]]; then
     TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser"
@@ -149,7 +174,15 @@ function hostNinja() {
     if [[ $BUILD_XWALK == 1 ]]; then
       TARGETS="$TARGETS xwalk"
     fi
-    BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
+    if [[ $BUILD_CHROMEDRIVER == 1 ]]; then
+      TARGETS="$TARGETS chromedriver"
+    fi
+    if [ "$USE_GN" ]; then
+      export BUILD_SUBDIRECTORY=""
+      BUILDDIR=${GN_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
+    else
+      BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
+    fi
     ninja -C $BUILDDIR ${JOBS} ${TARGETS}
   fi
 }
@@ -245,6 +278,16 @@ function setupAndExecuteTargetBuild() {
         count=$(( $count + 1 ))
         ARGS[$count]="_skip_gyp 1"
     ;;
+    --use-gn)
+        ARGS[$count]=--define
+        count=$(( $count + 1 ))
+        ARGS[$count]="_use_gn 1"
+    ;;
+    --skip-gn)
+        ARGS[$count]=--define
+        count=$(( $count + 1 ))
+        ARGS[$count]="_skip_gn 1"
+    ;;
     --xwalk)
         ARGS[$count]=--define
         count=$(( $count + 1 ))
diff --git a/tizen_src/build/config/BUILD.gn b/tizen_src/build/config/BUILD.gn
new file mode 100644 (file)
index 0000000..67a787e
--- /dev/null
@@ -0,0 +1,131 @@
+# Copyright (c) 2013 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/features.gni")
+import("//build/config/ui.gni")
+
+# One common error that happens is that GYP-generated headers within gen/ get
+# included rather than the GN-generated ones within gen/ subdirectories.
+# TODO(agrieve): Remove once GYP is gone (as well as exec_script exception).
+#assert(
+#    exec_script("//build/dir_exists.py", [ "obj.host" ], "string") == "False",
+#    "GYP artifacts detected in $root_build_dir.$0x0A" +
+#        "You must wipe this directory before building with GN.")
+
+# TODO(brettw) Most of these should be removed. Instead of global feature
+# flags, we should have more modular flags that apply only to a target and its
+# dependents. For example, depending on the "x11" meta-target should define
+# USE_X11 for all dependents so that everything that could use X11 gets the
+# define, but anything that doesn't depend on X11 doesn't see it.
+#
+# For now we define these globally to match the current GYP build.
+config("tizen_feature_flags") {
+  defines = [
+    # TODO: Check if those defines are still necessary. If they are add an explanation why.
+    "COMPONENT_BUILD",
+    "SKIA_DLL",
+    "BUILDING_V8_SHARED",
+    "V8_SHARED",
+  ]
+
+  if (use_efl) {
+    defines += [ "USE_EFL" ]
+  }
+  if (tizen_tbm_support) {
+    defines += [ "TIZEN_TBM_SUPPORT" ]
+  }
+  if (ewk_bringup) {
+    defines += [ "EWK_BRINGUP" ]
+  }
+
+  if (prebuilt_ld_gold_dir != "") {
+    ldflags = [ "-B${prebuilt_ld_gold_dir}" ]
+
+    if (gcc_version >= 49) {
+      # In GCC 4.9, the linker (either bfd or gold) is called with the -plugin argument
+      # which our current bundled gold linker (in build/prebuild) does not accept.
+      # Since our gold a x64 64bit statically linked binary, even if we rebuild it
+      # with plugin support enabled, the plugin being loaded would be a 32bit ARM binary.
+      # and load would fail. So we disable linker's plugin loadeir (specifically
+      # gcc's liblto_plugin).
+      cflags = [ "-fPIC" ]
+      ldflags += [ "-shared" ]
+      ldflags += [ "-fno-use-linker-plugin" ]
+    }
+  }
+
+  if (building_for_tizen) {
+    defines += [
+      "OS_TIZEN",
+      "WTF_OS_TIZEN",
+    ]
+    # Tizen build system has a global option '-Wformat-security'.
+    # So, a cflag '-Wno-format' from chromium-efl needs to be ignored.
+    # Otherwise, following error will happen.
+    # error: -Wformat-security ignored without -Wformat [-Werror=format-security]
+    if (prebuilt_ld_gold_dir == "") {
+      cflags = [ "-Wno-format" ]
+    }
+
+    defines += [ "NO_UNWIND_TABLES" ]
+
+    if (chromium_efl_tizen_version == 30) {
+      defines += [
+        "TIZEN_MAJOR_VERSION=3",
+        "TIZEN_MINOR_VERSION=0",
+        "TIZEN_PATCH_VERSION=0",
+      ]
+    } else if (chromium_efl_tizen_version == 24) {
+      defines += [
+        "TIZEN_MAJOR_VERSION=2",
+        "TIZEN_MINOR_VERSION=4",
+        "TIZEN_PATCH_VERSION=0",
+      ]
+    } else if (chromium_efl_tizen_version == 23) {
+      defines += [
+        "TIZEN_MAJOR_VERSION=2",
+        "TIZEN_MINOR_VERSION=3",
+        "TIZEN_PATCH_VERSION=0",
+      ]
+    }
+
+    if (use_wayland) {
+      defines += [ "USE_WAYLAND" ]
+    }
+    if (tizen_multimedia_support) {
+      defines += [
+        "TIZEN_MULTIMEDIA_SUPPORT",
+        "TIZEN_MULTIMEDIA_USE_CAPI_AUDIO_IO",
+      ]
+    }
+
+    # TODO: There are X11 dependencies in following condition.
+    #       The files need to be implemented based on Wayland.
+    if (wayland_bringup) {
+      defines += [ "WAYLAND_BRINGUP" ]
+    }
+  }
+
+  if (building_for_tizen_mobile) {
+    defines += [
+      "OS_TIZEN_MOBILE",
+      "WTF_OS_TIZEN_MOBILE",
+      "TIZEN_CONTENTS_DETECTION",
+    ]
+  }
+
+  if (building_for_tizen_tv) {
+    defines += [
+      "OS_TIZEN_TV",
+      "WTF_OS_TIZEN_TV",
+    ]
+
+    if (chromium_efl_tizen_version == 24) {
+      cflags -= [
+        "-march=armv7-a",
+        "-mtune=generic-armv7-a",
+      ]
+    }
+  }
+}
diff --git a/tizen_src/build/config/BUILDCONFIG.gn b/tizen_src/build/config/BUILDCONFIG.gn
new file mode 100644 (file)
index 0000000..72d85b1
--- /dev/null
@@ -0,0 +1,675 @@
+# Copyright (c) 2013 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.
+
+# =============================================================================
+# WHAT IS THIS FILE?
+# =============================================================================
+#
+# This is the master GN build configuration. This file is loaded after the
+# build args (args.gn) for the build directory and after the toplevel ".gn"
+# file (which points to this file as the build configuration).
+#
+# This file will be executed and the resulting context will be used to execute
+# every other file in the build. So variables declared here (that don't start
+# with an underscore) will be implicitly global.
+
+# =============================================================================
+# PLATFORM SELECTION
+# =============================================================================
+#
+# There are two main things to set: "os" and "cpu". The "toolchain" is the name
+# of the GN thing that encodes combinations of these things.
+#
+# Users typically only set the variables "target_os" and "target_cpu" in "gn
+# args", the rest are set up by our build and internal to GN.
+#
+# There are three different types of each of these things: The "host"
+# represents the computer doing the compile and never changes. The "target"
+# represents the main thing we're trying to build. The "current" represents
+# which configuration is currently being defined, which can be either the
+# host, the target, or something completely different (like nacl). GN will
+# run the same build file multiple times for the different required
+# configuration in the same build.
+#
+# This gives the following variables:
+#  - host_os, host_cpu, host_toolchain
+#  - target_os, target_cpu, default_toolchain
+#  - current_os, current_cpu, current_toolchain.
+#
+# Note the default_toolchain isn't symmetrical (you would expect
+# target_toolchain). This is because the "default" toolchain is a GN built-in
+# concept, and "target" is something our build sets up that's symmetrical with
+# its GYP counterpart. Potentially the built-in default_toolchain variable
+# could be renamed in the future.
+#
+# When writing build files, to do something only for the host:
+#   if (current_toolchain == host_toolchain) { ...
+
+if (target_os == "") {
+  target_os = host_os
+}
+
+if (target_cpu == "") {
+  if (target_os == "tizen") {
+    # If we're building for Tizen, we should assume that we want to
+    # build for ARM by default, not the host_cpu (which is likely x64).
+    # This allows us to not have to specify both target_os and target_cpu
+    # on the command line.
+    target_cpu = "arm"
+  } else {
+    target_cpu = host_cpu
+  }
+}
+
+if (current_cpu == "") {
+  current_cpu = target_cpu
+}
+if (current_os == "") {
+  current_os = target_os
+}
+
+# =============================================================================
+# BUILD FLAGS
+# =============================================================================
+#
+# This block lists input arguments to the build, along with their default
+# values.
+#
+# If a value is specified on the command line, it will overwrite the defaults
+# given in a declare_args block, otherwise the default will be used.
+#
+# YOU SHOULD ALMOST NEVER NEED TO ADD FLAGS TO THIS FILE. GN allows any file in
+# the build to declare build flags. If you need a flag for a single component,
+# you can just declare it in the corresponding BUILD.gn file.
+#
+# - If your feature is a single target, say //components/foo, you can put
+#   a declare_args() block in //components/foo/BUILD.gn and use it there.
+#   Nobody else in the build needs to see the flag.
+#
+# - Defines based on build variables should be implemented via the generated
+#   build flag header system. See //build/buildflag_header.gni. You can put
+#   the buildflag_header target in the same file as the build flag itself. You
+#   should almost never set "defines" directly.
+#
+# - If your flag toggles a target on and off or toggles between different
+#   versions of similar things, write a "group" target that forwards to the
+#   right target (or no target) depending on the value of the build flag. This
+#   group can be in the same BUILD.gn file as the build flag, and targets can
+#   depend unconditionally on the group rather than duplicating flag checks
+#   across many targets.
+#
+# - If a semi-random set of build files REALLY needs to know about a define and
+#   the above pattern for isolating the build logic in a forwarding group
+#   doesn't work, you can put the argument in a .gni file. This should be put
+#   in the lowest level of the build that knows about this feature (which should
+#   almost always be outside of the //build directory!).
+#
+# Other flag advice:
+#
+# - Use boolean values when possible. If you need a default value that expands
+#   to some complex thing in the default case (like the location of the
+#   compiler which would be computed by a script), use a default value of -1 or
+#   the empty string. Outside of the declare_args block, conditionally expand
+#   the default value as necessary.
+#
+# - Use a name like "use_foo" or "is_foo" (whatever is more appropriate for
+#   your feature) rather than just "foo".
+#
+# - Write good comments directly above the declaration with no blank line.
+#   These comments will appear as documentation in "gn args --list".
+#
+# - Don't call exec_script inside declare_args. This will execute the script
+#   even if the value is overridden, which is wasteful. See first bullet.
+
+declare_args() {
+  # Set to enable the official build level of optimization. This has nothing
+  # to do with branding, but enables an additional level of optimization above
+  # release (!is_debug). This might be better expressed as a tri-state
+  # (debug, release, official) but for historical reasons there are two
+  # separate flags.
+  is_official_build = false
+
+  # Debug build. Enabling official builds automatically sets is_debug to false.
+  is_debug = false
+
+  # Whether we're a traditional desktop unix.
+  is_desktop_linux = current_os == "linux"
+
+  # Set to true when compiling with the Clang compiler. Typically this is used
+  # to configure warnings.
+  is_clang = current_os == "ios"
+
+  # Allows the path to a custom target toolchain to be injected as a single
+  # argument, and set as the default toolchain.
+  custom_toolchain = ""
+
+  # This should not normally be set as a build argument.  It's here so that
+  # every toolchain can pass through the "global" value via toolchain_args().
+  if (current_os == "tizen") {
+    host_toolchain = "//tizen_src/build/toolchain/tizen:$host_cpu"
+  } else {
+    host_toolchain = ""
+  }
+
+  # DON'T ADD MORE FLAGS HERE. Read the comment above.
+}
+
+declare_args() {
+  # Component build. Setting to true compiles targets declared as "components"
+  # as shared libraries loaded dynamically. This speeds up development time.
+  # When false, components will be linked statically.
+  #
+  # For more information see
+  # https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md
+  is_component_build = is_debug && current_os != "ios"
+}
+
+assert(!(is_debug && is_official_build), "Can't do official debug builds")
+
+# ==============================================================================
+# TOOLCHAIN SETUP
+# ==============================================================================
+#
+# Here we set the default toolchain, as well as the variable host_toolchain
+# which will identify the toolchain corresponding to the local system when
+# doing cross-compiles. When not cross-compiling, this will be the same as the
+# default toolchain.
+#
+# We do this before anything else to make sure we complain about any
+# unsupported os/cpu combinations as early as possible.
+
+if (host_toolchain == "") {
+  # This should only happen in the top-level context.
+  # In a specific toolchain context, the toolchain_args()
+  # block should have propagated a value down.
+  # TODO(dpranke): Add some sort of assert here that verifies that
+  # no toolchain omitted host_toolchain from its toolchain_args().
+
+  if (host_os == "linux") {
+    if (target_os != "linux") {
+      # TODO(dpranke) - is_clang normally applies only to the target
+      # build, and there is no way to indicate that you want to override
+      # it for both the target build *and* the host build. Do we need to
+      # support this?
+      host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
+    } else if (is_clang) {
+      host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
+    } else {
+      host_toolchain = "//build/toolchain/linux:$host_cpu"
+    }
+  } else if (host_os == "mac") {
+    host_toolchain = "//build/toolchain/mac:clang_$host_cpu"
+  } else if (host_os == "win") {
+    # On Windows always use the target CPU for host builds. On the
+    # configurations we support this will always work and it saves build steps.
+    if (is_clang) {
+      host_toolchain = "//build/toolchain/win:clang_$target_cpu"
+    } else {
+      host_toolchain = "//build/toolchain/win:$target_cpu"
+    }
+  } else {
+    assert(false, "Unsupported host_os: $host_os")
+  }
+}
+
+_default_toolchain = ""
+
+if (target_os == "tizen") {
+  assert(host_os == "linux" || host_os == "mac",
+         "Tizen builds are only supported on Linux and Mac hosts.")
+  if (is_clang) {
+    _default_toolchain = "//tizen_src/build/toolchain/tizen_clang_$target_cpu"
+  } else {
+    _default_toolchain = "//tizen_src/build/toolchain/tizen_$target_cpu"
+  }
+} else if (target_os == "chromeos" || target_os == "linux") {
+  # See comments in build/toolchain/cros/BUILD.gn about board compiles.
+  if (is_clang) {
+    _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
+  } else {
+    _default_toolchain = "//build/toolchain/linux:$target_cpu"
+  }
+} else if (target_os == "ios") {
+  _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu"
+} else if (target_os == "mac") {
+  assert(host_os == "mac", "Mac cross-compiles are unsupported.")
+  _default_toolchain = host_toolchain
+} else if (target_os == "win") {
+  # On Windows we use the same toolchain for host and target by default.
+  assert(target_os == host_os, "Win cross-compiles only work on win hosts.")
+  if (is_clang) {
+    _default_toolchain = "//build/toolchain/win:clang_$target_cpu"
+  } else {
+    _default_toolchain = "//build/toolchain/win:$target_cpu"
+  }
+} else if (target_os == "winrt_81" || target_os == "winrt_81_phone" ||
+           target_os == "winrt_10") {
+  _default_toolchain = "//build/toolchain/win:winrt_$target_cpu"
+} else {
+  assert(false, "Unsupported target_os: $target_os")
+}
+
+# If a custom toolchain has been set in the args, set it as default. Otherwise,
+# set the default toolchain for the platform (if any).
+if (custom_toolchain != "") {
+  set_default_toolchain(custom_toolchain)
+} else if (_default_toolchain != "") {
+  set_default_toolchain(_default_toolchain)
+}
+
+# =============================================================================
+# OS DEFINITIONS
+# =============================================================================
+#
+# We set these various is_FOO booleans for convenience in writing OS-based
+# conditions.
+#
+# - is_android, is_chromeos, is_ios, and is_win should be obvious.
+# - is_mac is set only for desktop Mac. It is not set on iOS.
+# - is_posix is true for mac and any Unix-like system (basically everything
+#   except Windows).
+# - is_linux is true for desktop Linux and ChromeOS, but not Android (which is
+#   generally too different despite being based on the Linux kernel).
+#
+# Do not add more is_* variants here for random lesser-used Unix systems like
+# aix or one of the BSDs. If you need to check these, just check the
+# current_os value directly.
+
+if (current_os == "win" || current_os == "winrt_81" ||
+    current_os == "winrt_81_phone" || current_os == "winrt_10") {
+  is_android = false
+  is_chromeos = false
+  is_ios = false
+  is_linux = false
+  is_mac = false
+  is_nacl = false
+  is_posix = false
+  is_win = true
+  is_tizen = false
+  use_efl = false
+} else if (current_os == "mac") {
+  is_android = false
+  is_chromeos = false
+  is_ios = false
+  is_linux = false
+  is_mac = true
+  is_nacl = false
+  is_posix = true
+  is_win = false
+  is_tizen = false
+  use_efl = false
+} else if (current_os == "tizen") {
+  is_android = false
+  is_chromeos = false
+  is_fuchsia = false
+  is_ios = false
+  is_linux = false
+  is_mac = false
+  is_nacl = false
+  is_posix = true
+  is_win = false
+  is_tizen = true
+  use_efl = true
+  is_official_build = false
+} else if (current_os == "nacl") {
+  # current_os == "nacl" will be passed by the nacl toolchain definition.
+  # It is not set by default or on the command line. We treat is as a
+  # Posix variant.
+  is_android = false
+  is_chromeos = false
+  is_ios = false
+  is_linux = false
+  is_mac = false
+  is_nacl = true
+  is_posix = true
+  is_win = false
+  is_tizen = false
+  use_efl = false
+} else if (current_os == "ios") {
+  is_android = false
+  is_chromeos = false
+  is_ios = true
+  is_linux = false
+  is_mac = false
+  is_nacl = false
+  is_posix = true
+  is_win = false
+  is_tizen = false
+  use_efl = false
+} else if (current_os == "linux") {
+  is_android = false
+  is_chromeos = false
+  is_fuchsia = false
+  is_ios = false
+  is_linux = true
+  is_mac = false
+  is_nacl = false
+  is_posix = true
+  is_win = false
+  is_tizen = false
+  use_efl = true
+  is_official_build = false
+}
+
+# =============================================================================
+# SOURCES FILTERS
+# =============================================================================
+#
+# These patterns filter out platform-specific files when assigning to the
+# sources variable. The magic variable |sources_assignment_filter| is applied
+# to each assignment or appending to the sources variable and matches are
+# automatically removed.
+#
+# Note that the patterns are NOT regular expressions. Only "*" and "\b" (path
+# boundary = end of string or slash) are supported, and the entire string
+# must match the pattern (so you need "*.cc" to match all .cc files, for
+# example).
+
+# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
+# below.
+sources_assignment_filter = []
+if (!is_posix) {
+  sources_assignment_filter += [
+    "*_posix.h",
+    "*_posix.cc",
+    "*_posix_unittest.h",
+    "*_posix_unittest.cc",
+    "*\bposix/*",
+  ]
+}
+if (!is_win) {
+  sources_assignment_filter += [
+    "*_win.cc",
+    "*_win.h",
+    "*_win_unittest.cc",
+    "*\bwin/*",
+    "*.def",
+    "*.rc",
+  ]
+}
+if (!is_mac) {
+  sources_assignment_filter += [
+    "*_mac.h",
+    "*_mac.cc",
+    "*_mac.mm",
+    "*_mac_unittest.h",
+    "*_mac_unittest.cc",
+    "*_mac_unittest.mm",
+    "*\bmac/*",
+    "*_cocoa.h",
+    "*_cocoa.cc",
+    "*_cocoa.mm",
+    "*_cocoa_unittest.h",
+    "*_cocoa_unittest.cc",
+    "*_cocoa_unittest.mm",
+    "*\bcocoa/*",
+  ]
+}
+if (!is_ios) {
+  sources_assignment_filter += [
+    "*_ios.h",
+    "*_ios.cc",
+    "*_ios.mm",
+    "*_ios_unittest.h",
+    "*_ios_unittest.cc",
+    "*_ios_unittest.mm",
+    "*\bios/*",
+  ]
+}
+if (!is_mac && !is_ios) {
+  sources_assignment_filter += [ "*.mm" ]
+}
+if (!is_linux) {
+  sources_assignment_filter += [
+    "*_linux.h",
+    "*_linux.cc",
+    "*_linux_unittest.h",
+    "*_linux_unittest.cc",
+    "*\blinux/*",
+  ]
+}
+if (!is_android) {
+  sources_assignment_filter += [
+    "*_android.h",
+    "*_android.cc",
+    "*_android_unittest.h",
+    "*_android_unittest.cc",
+    "*\bandroid/*",
+  ]
+}
+if (!is_chromeos) {
+  sources_assignment_filter += [
+    "*_chromeos.h",
+    "*_chromeos.cc",
+    "*_chromeos_unittest.h",
+    "*_chromeos_unittest.cc",
+    "*\bchromeos/*",
+  ]
+}
+
+# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
+# below.
+
+# Actually save this list.
+#
+# These patterns are executed for every file in the source tree of every run.
+# Therefore, adding more patterns slows down the build for everybody. We should
+# only add automatic patterns for configurations affecting hundreds of files
+# across many projects in the tree.
+#
+# Therefore, we only add rules to this list corresponding to platforms on the
+# Chromium waterfall.  This is not for non-officially-supported platforms
+# (FreeBSD, etc.) toolkits, (X11, GTK, etc.), or features. For these cases,
+# write a conditional in the target to remove the file(s) from the list when
+# your platform/toolkit/feature doesn't apply.
+set_sources_assignment_filter(sources_assignment_filter)
+
+# =============================================================================
+# TARGET DEFAULTS
+# =============================================================================
+#
+# Set up the default configuration for every build target of the given type.
+# The values configured here will be automatically set on the scope of the
+# corresponding target. Target definitions can add or remove to the settings
+# here as needed.
+
+# Holds all configs used for running the compiler.
+default_compiler_configs = [
+  "//build/config:feature_flags",
+  "//tizen_src/build/config:tizen_feature_flags",
+  "//build/config/compiler:afdo",
+  "//build/config/compiler:compiler",
+  "//build/config/compiler:clang_stackrealign",
+  "//build/config/compiler:compiler_arm_fpu",
+  "//build/config/compiler:chromium_code",
+  "//build/config/compiler:default_include_dirs",
+  "//tizen_src/build/config/compiler:tizen_default_include_dirs",
+  "//build/config/compiler:default_optimization",
+  "//build/config/compiler:default_stack_frames",
+  "//build/config/compiler:default_symbols",
+  "//build/config/compiler:no_rtti",
+  "//build/config/compiler:runtime_library",
+  "//build/config/compiler:thin_archive",
+  "//build/config/coverage:default_coverage",
+  "//build/config/sanitizers:default_sanitizer_flags",
+]
+if (!is_tizen) {
+  default_compiler_configs += [
+    "//tizen_src/build/config/compiler:tizen_default_lib_dirs",
+  ]
+}
+if (is_win) {
+  default_compiler_configs += [
+    "//build/config/win:default_crt",
+    "//build/config/win:lean_and_mean",
+    "//build/config/win:nominmax",
+    "//build/config/win:unicode",
+    "//build/config/win:winver",
+    "//build/config/win:vs_code_analysis",
+  ]
+}
+if (current_os == "winrt_81" || current_os == "winrt_81_phone" ||
+    current_os == "winrt_10") {
+  default_compiler_configs += [ "//build/config/win:target_winrt" ]
+}
+if (is_posix) {
+  default_compiler_configs += [
+    "//build/config/compiler:no_exceptions",
+    "//build/config/gcc:symbol_visibility_hidden",
+  ]
+}
+
+if (!use_efl) {
+  default_compiler_configs +=
+      [ "//build/config/android:default_cygprofile_instrumentation" ]
+}
+
+if (is_clang && !is_nacl) {
+  default_compiler_configs += [
+    "//build/config/clang:find_bad_constructs",
+    "//build/config/clang:extra_warnings",
+  ]
+}
+
+# Debug/release-related defines.
+if (is_debug) {
+  default_compiler_configs += [ "//build/config:debug" ]
+} else {
+  default_compiler_configs += [ "//build/config:release" ]
+}
+
+# Static libraries and source sets use only the compiler ones.
+set_defaults("static_library") {
+  configs = default_compiler_configs
+}
+set_defaults("source_set") {
+  configs = default_compiler_configs
+}
+
+# Compute the set of configs common to all linked targets (shared libraries,
+# loadable modules, executables) to avoid duplication below.
+if (is_win) {
+  # Many targets remove these configs, so they are not contained within
+  # //build/config:executable_config for easy removal.
+  _linker_configs = [
+    "//build/config/win:default_incremental_linking",
+
+    # Default to console-mode apps. Most of our targets are tests and such
+    # that shouldn't use the windows subsystem.
+    "//build/config/win:console",
+  ]
+} else if (is_mac || is_ios) {
+  _linker_configs = [ "//build/config/mac:strip_all" ]
+} else {
+  _linker_configs = []
+}
+
+# Executable defaults.
+default_executable_configs = default_compiler_configs + [
+                               "//build/config:default_libs",
+                               "//build/config:executable_config",
+                             ] + _linker_configs
+set_defaults("executable") {
+  configs = default_executable_configs
+}
+
+# Test defaults.
+set_defaults("test") {
+  configs = default_executable_configs
+}
+
+# Shared library and loadable module defaults (also for components in component
+# Test defaults.# mode).
+default_shared_library_configs = default_compiler_configs + [
+                                   "//build/config:default_libs",
+                                   "//build/config:shared_library_config",
+                                 ] + _linker_configs
+if (!use_efl) {
+  # Strip native JNI exports from shared libraries by default. Binaries that
+  # want this can remove this config.
+  default_shared_library_configs +=
+      [ "//build/config/android:hide_native_jni_exports" ]
+}
+set_defaults("shared_library") {
+  configs = default_shared_library_configs
+}
+set_defaults("loadable_module") {
+  configs = default_shared_library_configs
+}
+
+# ==============================================================================
+# COMPONENT SETUP
+# ==============================================================================
+
+# Defines a component, which equates to a shared_library when
+# is_component_build == true and a static_library otherwise.
+#
+# Use static libraries for the static build rather than source sets because
+# many of of our test binaries link many large dependencies but often don't
+# use large portions of them. The static libraries are much more efficient to
+# link in this situation since only the necessary object files are linked.
+#
+# The invoker can override the type of the target in the non-component-build
+# case by setting static_component_type to either "source_set" or
+# "static_library". If unset, the default will be used.
+template("component") {
+  if (is_component_build) {
+    _component_mode = "shared_library"
+  } else if (defined(invoker.static_component_type)) {
+    assert(invoker.static_component_type == "static_library" ||
+           invoker.static_component_type == "source_set")
+    _component_mode = invoker.static_component_type
+  } else if (is_android || !defined(invoker.sources)) {
+    # When there are no sources defined, use a source set to avoid creating
+    # an empty static library (which generally don't work).
+    #
+    # When we changed components to default from source sets to static
+    # libraries, an Android benchmark regressed slightly
+    # (https://crbug.com/619593). We don't have a good theory on why this might
+    # be since theoretically it should be the same. It could be something as
+    # silly as random code locality luck.
+    #
+    # There seems to be no build-time performance hit to using source sets on
+    # Android (the normal reason for defaulting to static libraries), so we
+    # make the default on Android to be source set.
+    #
+    # If it's been a long time since this was added and you're skeptical,
+    # please feel free to remove the Android exception and see if any
+    # benchmarks obviously regress. If not, it would be great to standardize
+    # with the rest of the platforms.
+    _component_mode = "source_set"
+  } else {
+    _component_mode = "static_library"
+  }
+  target(_component_mode, target_name) {
+    # Explicitly forward visibility, implicitly forward everything else.
+    # Forwarding "*" doesn't recurse into nested scopes (to avoid copying all
+    # globals into each template invocation), so won't pick up file-scoped
+    # variables. Normally this isn't too bad, but visibility is commonly
+    # defined at the file scope. Explicitly forwarding visibility and then
+    # excluding it from the "*" set works around this problem.
+    # See http://crbug.com/594610
+    forward_variables_from(invoker, [ "visibility" ])
+    forward_variables_from(invoker, "*", [ "visibility" ])
+
+    # All shared libraries must have the sanitizer deps to properly link in
+    # asan mode (this target will be empty in other cases).
+    if (!defined(deps)) {
+      deps = []
+    }
+    deps += [ "//build/config:exe_and_shlib_deps" ]
+  }
+}
+
+# Component defaults
+set_defaults("component") {
+  if (is_component_build) {
+    configs = default_shared_library_configs
+    if (is_android) {
+      configs -= [ "//build/config/android:hide_native_jni_exports" ]
+    }
+  } else {
+    configs = default_compiler_configs
+  }
+}
diff --git a/tizen_src/build/config/compiler/BUILD.gn b/tizen_src/build/config/compiler/BUILD.gn
new file mode 100644 (file)
index 0000000..dc194a3
--- /dev/null
@@ -0,0 +1,131 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+declare_args() {
+  if (is_tizen) {
+    deps_include_path = "/usr/include"
+    deps_lib_path = "/usr/lib"
+  } else {
+    deps_include_path = ""
+  }
+}
+
+config("tizen_default_lib_dirs") {
+  lib_dirs = [
+  ]
+}
+
+config("tizen_default_include_dirs") {
+  include_dirs = [
+    "//tizen_src",
+    "//tizen_src/chromium_impl",
+    "//tizen_src/ecore_wrapper",
+
+    "//third_party/blink/renderer",
+
+    deps_include_path,
+    # find / -name *.h -printf '%h\n' | sort --unique
+    "$deps_include_path/dbus-1.0",
+    "$deps_include_path/ecore-1",
+    "$deps_include_path/ecore-audio-1",
+    "$deps_include_path/ecore-audio-cxx-1",
+    "$deps_include_path/ecore-avahi-1",
+    "$deps_include_path/ecore-con-1",
+    "$deps_include_path/ecore-cxx-1",
+    "$deps_include_path/ecore-evas-1",
+    "$deps_include_path/ecore-file-1",
+    "$deps_include_path/ecore-imf-1",
+    "$deps_include_path/ecore-imf-evas-1",
+    "$deps_include_path/ecore-input-1",
+    "$deps_include_path/ecore-input-evas-1",
+    "$deps_include_path/ecore-ipc-1",
+    "$deps_include_path/ecore-x-1",
+    "$deps_include_path/ector-1",
+    "$deps_include_path/ector-1/cairo",
+    "$deps_include_path/ector-1/generic",
+    "$deps_include_path/ector-1/software",
+    "$deps_include_path/edje-1",
+    "$deps_include_path/eet-1",
+    "$deps_include_path/eet-cxx-1",
+    "$deps_include_path/eet-cxx-1/eet-cxx",
+    "$deps_include_path/eeze-1",
+    "$deps_include_path/efl-1",
+    "$deps_include_path/efl-1/interfaces",
+    "$deps_include_path/efl-cxx-1",
+    "$deps_include_path/efreet-1",
+    "$deps_include_path/eina-1",
+    "$deps_include_path/eina-1/eina",
+    "$deps_include_path/eina-cxx-1",
+    "$deps_include_path/eina-cxx-1/eina-cxx",
+    "$deps_include_path/eio-1",
+    "$deps_include_path/eio-cxx-1",
+    "$deps_include_path/eldbus-1",
+    "$deps_include_path/eldbus_cxx-1",
+    "$deps_include_path/elementary-1",
+    "$deps_include_path/elementary-cxx-1",
+    "$deps_include_path/elocation-1",
+    "$deps_include_path/elua-1",
+    "$deps_include_path/embryo-1",
+    "$deps_include_path/emile-1",
+    "$deps_include_path/emotion-1",
+    "$deps_include_path/eo-1",
+    "$deps_include_path/eo-cxx-1",
+    "$deps_include_path/eolian-1",
+    "$deps_include_path/eolian-cxx-1",
+    "$deps_include_path/eolian-cxx-1/grammar",
+    "$deps_include_path/ethumb-1",
+    "$deps_include_path/ethumb-client-1",
+    "$deps_include_path/evas-1",
+    "$deps_include_path/evas-1/canvas",
+    "$deps_include_path/evas-cxx-1",
+    "$deps_include_path/evas-cxx-1/canvas",
+    "$deps_include_path/gio-unix-2.0",
+    "$deps_include_path/gio-unix-2.0/gio",
+    "$deps_include_path/glib-2.0",
+    "$deps_include_path/glib-2.0/gio",
+    "$deps_include_path/glib-2.0/glib",
+    "$deps_include_path/glib-2.0/glib/deprecated",
+    "$deps_include_path/glib-2.0/gobject",
+    "$deps_include_path/gstreamer-1.0",
+    "$deps_include_path/gstreamer-1.0/gst",
+    "$deps_include_path/gstreamer-1.0/gst/allocators",
+    "$deps_include_path/gstreamer-1.0/gst/app",
+    "$deps_include_path/gstreamer-1.0/gst/audio",
+    "$deps_include_path/gstreamer-1.0/gst/base",
+    "$deps_include_path/gstreamer-1.0/gst/basecamerabinsrc",
+    "$deps_include_path/gstreamer-1.0/gst/check",
+    "$deps_include_path/gstreamer-1.0/gst/codecparsers",
+    "$deps_include_path/gstreamer-1.0/gst/controller",
+    "$deps_include_path/gstreamer-1.0/gst/egl",
+    "$deps_include_path/gstreamer-1.0/gst/fft",
+    "$deps_include_path/gstreamer-1.0/gst/insertbin",
+    "$deps_include_path/gstreamer-1.0/gst/interfaces",
+    "$deps_include_path/gstreamer-1.0/gst/mpegts",
+    "$deps_include_path/gstreamer-1.0/gst/net",
+    "$deps_include_path/gstreamer-1.0/gst/pbutils",
+    "$deps_include_path/gstreamer-1.0/gst/riff",
+    "$deps_include_path/gstreamer-1.0/gst/rtp",
+    "$deps_include_path/gstreamer-1.0/gst/rtsp",
+    "$deps_include_path/gstreamer-1.0/gst/sdp",
+    "$deps_include_path/gstreamer-1.0/gst/tag",
+    "$deps_include_path/gstreamer-1.0/gst/uridownloader",
+    "$deps_include_path/gstreamer-1.0/gst/video",
+    "$deps_include_path/libsoup-2.4",
+    "$deps_include_path/libsoup-2.4/libsoup",
+    "$deps_include_path/orc-0.4",
+    "$deps_include_path/orc-0.4/orc",
+    "$deps_include_path/orc-0.4/orc-test",
+  ]
+
+  if (is_tizen) {
+    include_dirs += [
+      "$deps_include_path/appfw",
+      "$deps_include_path/system",
+
+      "$deps_lib_path/dbus-1.0/include",
+      "$deps_lib_path/gstreamer-1.0/include",
+      "$deps_lib_path/gstreamer-1.0/include/gst",
+    ]
+  }
+}
diff --git a/tizen_src/build/config/linux/pkg_config.gni b/tizen_src/build/config/linux/pkg_config.gni
new file mode 100644 (file)
index 0000000..19f6d5c
--- /dev/null
@@ -0,0 +1,33 @@
+# Copyright (c) 2015 Samsung Electronics. 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/linux/pkg_config.gni")
+
+template("tizen_pkg_config") {
+  assert(defined(invoker.packages),
+         "Variable |packages| must be defined to be a list in pkg_config.")
+
+  if (invoker.packages == []) {
+    config(target_name) {
+    }
+  } else {
+    pkg_config(target_name) {
+      packages = invoker.packages
+
+      if (defined(invoker.extra_args)) {
+        extra_args = invoker.extra_args
+      }
+
+      if (defined(invoker.ignore_libs)) {
+        ignore_libs = invoker.ignore_libs
+      }
+
+      forward_variables_from(invoker,
+                             [
+                               "defines",
+                               "visibility",
+                             ])
+    }
+  }
+}
diff --git a/tizen_src/build/config/tizen/BUILD.gn b/tizen_src/build/config/tizen/BUILD.gn
new file mode 100644 (file)
index 0000000..4c1430a
--- /dev/null
@@ -0,0 +1,156 @@
+# Copyright 2014 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/sanitizers/sanitizers.gni")
+import("//build/config/sysroot.gni")
+
+assert(is_tizen)
+
+# This is included by reference in the //build/config/compiler config that
+# is applied to all targets. It is here to separate out the logic that is
+# Android-only.
+config("compiler") {
+  cflags = [
+    "-ffunction-sections",
+    "-fno-short-enums",
+  ]
+  ldflags = []
+
+  if (!is_clang) {
+    # Clang doesn't support these flags.
+    cflags += [ "-finline-limit=64" ]
+  }
+  if (is_clang) {
+    rebased_android_toolchain_root =
+        rebase_path(android_toolchain_root, root_build_dir)
+    assert(rebased_android_toolchain_root != "")  # Mark as used.
+    if (current_cpu == "mipsel") {
+      cflags += [
+        # TODO(gordanac) Enable integrated-as.
+        "-no-integrated-as",
+        "-B${rebased_android_toolchain_root}/bin",  # Else /usr/bin/as gets picked up.
+      ]
+    }
+  }
+
+  # Use gold for Android for most CPU architectures.
+  if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") {
+    if (linux_use_gold_flags == true) {
+      cflags += [ "-Wno-deprecated" ]
+      ldflags += [ "-fuse-ld=gold" ]
+    }
+    if (is_clang) {
+      # Let clang find the ld.gold in the NDK.
+      ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
+    }
+
+    # Use -mstackrealign due to a bug on ia32 Jelly Bean.
+    # See crbug.com/521527
+    if (current_cpu == "x86") {
+      cflags += [ "-mstackrealign" ]
+    }
+  }
+
+  if (current_cpu == "mipsel" && is_clang) {
+    # Let clang find the ld.bfd in the NDK.
+    ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
+  }
+
+  ldflags += [
+    #"-Wl,--build-id=sha1",
+    #"-Wl,--no-undefined",
+
+    # Don't allow visible symbols from libgcc or libc++ to be
+    # re-exported.
+    "-Wl,--exclude-libs=libgcc.a",
+    "-Wl,--exclude-libs=libc++_static.a",
+
+    # Don't allow visible symbols from libraries that contain
+    # assembly code with symbols that aren't hidden properly.
+    # http://crbug.com/448386
+    "-Wl,--exclude-libs=libvpx_assembly_arm.a",
+  ]
+
+  if (is_clang) {
+    if (current_cpu == "arm") {
+      abi_target = "arm-linux-androideabi"
+    } else if (current_cpu == "x86") {
+      abi_target = "i686-linux-androideabi"
+    } else if (current_cpu == "arm64") {
+      # Place holder for arm64 support, not tested.
+      # TODO: Enable clang support for Android Arm64. http://crbug.com/539781
+      abi_target = "aarch64-linux-androideabi"
+    } else if (current_cpu == "x64") {
+      # Place holder for x64 support, not tested.
+      # TODO: Enable clang support for Android x64. http://crbug.com/539781
+      abi_target = "x86_64-linux-androideabi"
+    } else if (current_cpu == "mipsel") {
+      abi_target = "mipsel-linux-android"
+    } else if (current_cpu == "mips64el") {
+      # Place holder for mips64 support, not tested.
+      abi_target = "mips64el-linux-androideabi"
+    } else {
+      assert(false, "Architecture not supported")
+    }
+    cflags += [
+      "-target",
+      abi_target,
+    ]
+    ldflags += [
+      "-target",
+      abi_target,
+    ]
+  }
+
+  # Assign any flags set for the C compiler to asmflags so that they are sent
+  # to the assembler.
+  asmflags = cflags
+}
+
+config("executable_config") {
+  cflags = [ "-fPIE" ]
+  asmflags = [ "-fPIE" ]
+  ldflags = [ "-pie" ]
+}
+
+config("hide_native_jni_exports") {
+  ldflags = [ "-Wl,--version-script=" +
+              rebase_path("//build/android/android_no_jni_exports.lst") ]
+}
+
+# Instrumentation -------------------------------------------------------------
+#
+# The BUILDCONFIG file sets the "default_cygprofile_instrumentation" config on
+# targets by default. You can override whether the cygprofile instrumentation is
+# used on a per-target basis:
+#
+# configs -= [ "//build/config/android:default_cygprofile_instrumentation" ]
+# configs += [ "//build/config/android:no_cygprofile_instrumentation" ]
+
+#config("default_cygprofile_instrumentation") {
+#  if (use_order_profiling) {
+#    configs = [ ":cygprofile_instrumentation" ]
+#  } else {
+#    configs = [ ":no_cygprofile_instrumentation" ]
+#  }
+#}
+
+config("cygprofile_instrumentation") {
+  defines = [ "CYGPROFILE_INSTRUMENTATION=1" ]
+  cflags = [ "-finstrument-functions" ]
+
+  if (!is_clang) {
+    cflags += [
+      # Allow mmx intrinsics to inline, so that the compiler can expand the intrinsics.
+      "-finstrument-functions-exclude-file-list=mmintrin.h",
+
+      # Avoid errors with current NDK:
+      # "third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/include/arm_neon.h:3426:3: error: argument must be a constant"
+      "-finstrument-functions-exclude-file-list=arm_neon.h",
+    ]
+  }
+}
+
+config("no_cygprofile_instrumentation") {
+}
diff --git a/tizen_src/build/config/tizen_features.gni b/tizen_src/build/config/tizen_features.gni
new file mode 100644 (file)
index 0000000..b5e4f0b
--- /dev/null
@@ -0,0 +1,87 @@
+# Copyright (c) 2015 Samsung Electronics. 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/ui.gni")
+
+declare_args() {
+  gcc_version = 49
+
+  use_wayland = false
+
+  linux_use_gold_flags = false   # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+
+  deps_lib_path = ""
+  disable_fatal_linker_warnings = true  # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+
+  python_ver = "2.5"  # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+
+  depth = ""  # no use of this variable, if removing then revome from gn_chromiumefl.sh also
+  outdir = ""
+
+  use_cairo = false
+  use_pango = false
+
+  tizen_multimedia_support = false
+  werror=false
+  # declared from BUILDCONFIG.gn
+  #is_clang = false
+  xwalk_link_against_chromium_ewk = false
+
+  tizen_mobile = false
+  building_for_tizen_tv = false
+  building_for_tizen_mobile = false
+  if (is_tizen && tizen_multimedia_support) {
+    tizen_multimedia_eme_support = true
+  } else {
+    tizen_multimedia_eme_support = false
+  }
+
+  exe_dir = "/usr/lib/chromium-efl/"
+  edje_dir = "/usr/share/chromium-efl/themes/"
+  tizen_data_dir = "/usr/share/chromium-efl/"
+  locale_dir = "/usr/share/chromium-efl/locale/"
+
+  prebuilt_ld_gold_dir = ""
+  chromium_efl_tizen_version = 24
+  tizen_tbm_support = false
+  building_for_tizen = false
+}
+
+werror = false
+
+# This file should contain gn code that is supposed to be common
+# for all build targets we have in chromium-ewk. Things specific only to one
+# component should go to appropriate gni file included below.
+
+use_gstreamer_fft = false
+
+use_aura = false
+
+ewk_bringup = true
+wayland_bringup = use_wayland
+
+building_strategy = "ewk" # 'ewk', 'libs' and 'crosswalk-bin'
+
+compile_suid_client = true
+compile_credentials = true
+
+edje_compiler = "edje_cc"
+
+grit_additional_defines = "-Duse_aura"
+
+if (use_ozone) {
+  # Declared from the //build/config/ui.gni
+  #use_glib = true
+  external_ozone_platforms = [ "efl" ]
+}
+
+if (xwalk_link_against_chromium_ewk) {
+  import("//tizen_src/ewk/efl_integration/link_xwalk_against_chromium_efl.gni")
+}
+
+is_official_build = false
+
+treat_warnings_as_errors=werror
+
+use_x11=false
diff --git a/tizen_src/build/gn_chromiumefl b/tizen_src/build/gn_chromiumefl
new file mode 100755 (executable)
index 0000000..52d6101
--- /dev/null
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+
+import argparse
+import glob
+import os
+import shlex
+import subprocess
+import sys
+
+top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+if '--xwalk' in sys.argv:
+  xwalk_dir = os.path.join(top_dir, '..', 'xwalk')
+  sys.argv.remove('--xwalk')
+else:
+  xwalk_dir = None
+chrome_src = os.environ.get('CHROME_SRC')
+if chrome_src:
+  chrome_src = os.path.abspath(chrome_src)
+if not chrome_src or not os.path.isdir(chrome_src):
+  chrome_src = os.path.join(top_dir, '..')
+  print 'CHROME_SRC not set, falling back to ' + chrome_src
+
+script_dir = os.path.abspath(os.path.join(chrome_src, 'build'))
+if not os.path.isdir(script_dir):
+  print script_dir + " is not a valid directory"
+  sys.exit(1)
+
+sys.path.insert(0, script_dir)
+import gn_helpers
+
+
+# Add paths so that pymod_do_main(...) can import files.
+sys.path.insert(1, os.path.join(chrome_src, 'tools', 'generate_shim_headers'))
+sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
+
+# Remove the above and keep the line below once we require a newer specific
+# Chromium revision.
+sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'WebKit',
+    'Source', 'build', 'scripts'))
+sys.path.insert(1, os.path.join(chrome_src, 'chrome', 'tools', 'build'))
+sys.path.insert(1, os.path.join(chrome_src, 'native_client', 'build'))
+
+def GetOutputDirectory():
+  """Returns the output directory that GN will use."""
+
+  # Handle command line generator flags.
+  parser = argparse.ArgumentParser()
+  parser.add_argument('-G', dest='genflags', default=[], action='append')
+  genflags = parser.parse_known_args()[0].genflags
+
+  # Handle generator flags from the environment.
+  genflags += shlex.split(os.environ.get('GN_GENERATOR_FLAGS', ''))
+
+  needle = 'output_dir='
+  for item in genflags:
+    if item.startswith(needle):
+      return item[len(needle):]
+
+  return 'out'
+
+
+if __name__ == '__main__':
+  arg = 0
+  args = []
+  for i in range(len(sys.argv)):
+    if arg > 0:
+      args[arg] += " " + sys.argv[i];
+      continue
+    if sys.argv[i] in ("--args="):
+      args.append(sys.argv[i])
+      arg=i
+    else:
+      args.append(sys.argv[i])
+
+  # On Mac we want to override CXX and CC that is provided with
+  # the Chromium GYP environment.
+  if sys.platform.startswith('darwin'):
+    os.environ['CXX'] = 'clang++'
+    os.environ['CC'] = 'clang'
+
+  #gyp_helper.apply_chromium_gyp_env()
+
+#  args.extend(['-I' + i for i in additional_include_files(args)])
+
+  # On Mac we want to build in x64 mode. And we want to use libc++.
+  # Even though we are not on linux, it seems we specifically have to disable linux_use_tcmalloc.
+  if sys.platform in ('darwin',):
+      args[arg] += " host_arch=\"x64\" use_libcpp=true linux_use_tcmalloc=false"
+
+  # There shouldn't be a circular dependency relationship between .gyp files,
+  # but in Chromium's .gyp files, on non-Mac platforms, circular relationships
+  # currently exist.  The check for circular dependencies is currently
+  # bypassed on other platforms, but is left enabled on the Mac, where a
+  # violation of the rule causes Xcode to misbehave badly.
+  # TODO(mark): Find and kill remaining circular dependencies, and remove this
+  # option.  http://crbug.com/35878.
+  # TODO(tc): Fix circular dependencies in ChromiumOS then add linux2 to the
+  # list.
+  #if sys.platform not in ('darwin',):
+  #  args[arg] += " no_circular_check=true"
+
+  # the top_level source directory is the first common ancestor of our module and the chromium source tree for the build to be sane.
+  # commonprefix works on a character basis, so it might return a phony common prefix (not the common parent directory we expect),
+  toplevel= os.path.commonprefix([top_dir, chrome_src])
+
+  if not os.path.exists(toplevel):
+    toplevel = os.path.join(toplevel, os.pardir)
+  #args[arg] += " toplevel-dir=\"" + toplevel + "\""
+  # Tweak the output location.
+  #args[arg] += "generator-output=\"" + os.path.abspath(GetOutputDirectory()) + "\""
+  #args[arg] += " Goutput_dir=\"" + os.path.abspath(GetOutputDirectory()) + "\""
+  #args[arg] += " check=true"
+
+  # gyp on gbs fails with multiprocessing.SemLock() not implemented
+  # disabling parallel gyp for gbs
+  gbs_build = os.environ.get('BUILDING_WITH_GBS')
+  #if gbs_build:
+    #args[arg] += " no-parallel=true"
+
+  os.environ["CHROMIUM_BUILDTOOLS_PATH"]=os.path.join(chrome_src, "buildtools")
+
+  #notifications -> enable_notifications in build/config/features.gni
+  #args[arg] += " ewk_bringup=false xwalk_link_against_chromium_ewk=false notifications=false"
+  args[arg] += " xwalk_link_against_chromium_ewk=false"
+
+  args[arg] += " gcc_version=49"  # It should be in condition for arm target
+
+  args.append("--defines=USE_EFL")
+  args.append("-v")
+
+  buildtools_path = os.environ.get('CHROMIUM_BUILDTOOLS_PATH')
+  host_arch = os.environ.get('HOST_ARCH')
+  if not buildtools_path:
+    print "build tool path is empty"
+    sys.exit(1)
+  else:
+    if sys.platform.startswith(('cygwin', 'win')):
+      subdir = 'win'
+    elif sys.platform == 'darwin':
+      subdir = 'mac'
+    elif host_arch.startswith('arm'):
+      buildtools_path = os.path.join(buildtools_path, "../tizen_src/buildtools/")
+      subdir = 'arm'
+    elif sys.platform.startswith('linux'):
+        subdir = 'linux64'
+    else:
+      raise Error('Unknown platform: ' + sys.platform)
+
+    bin_path = os.path.join(buildtools_path, subdir)
+
+    exeSuffix = ''
+    if sys.platform.startswith(('cygwin', 'win')):
+      exeSuffix = '.exe'
+    elif host_arch.startswith('arm'):
+      exeSuffix = '.arm'
+
+    gn_path = os.path.join(bin_path, 'gn' + exeSuffix)
+    if not os.path.exists(gn_path):
+      print 'Could not find gn executable at: %s' % gn_path
+      sys.exit(2)
+    else:
+      print 'Updating projects from gn files...'
+      sys.exit(subprocess.call([gn_path] + args[1:]))
+
diff --git a/tizen_src/build/gn_chromiumefl.sh b/tizen_src/build/gn_chromiumefl.sh
new file mode 100755 (executable)
index 0000000..03d27b3
--- /dev/null
@@ -0,0 +1,308 @@
+#!/bin/bash
+
+source $(dirname $0)/common.sh
+trap 'error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
+host_arch=$(getHostArch)
+export HOST_ARCH=$host_arch
+
+supported_targets=("mobile" "tv" "desktop")
+
+if [ -z "$GN_GENERATOR_OUTPUT" ]; then
+  GN_GENERATOR_OUTPUT="out.${host_arch}"
+fi
+
+echo ${host_arch}
+echo $GN_GENERATOR_OUTPUT
+
+if [ -z "$GN_GENERATOR_FLAG" ]; then
+  export GN_GENERATOR_FLAG=$GN_GENERATOR_OUTPUT
+fi
+
+EXTRA_GN_ARGS="$@"
+
+# __GN_CHROMIUMEFL_TARGET is defined when we are called from build_desktop.sh.
+# Otherwise we are called by gbs whch already passes the correct building_for_* flag.
+if [ "$__GN_CHROMIUMEFL_TARGET" == "desktop" ]; then
+  target=desktop
+fi
+
+while [[ $# > 0 ]]; do
+  case "$1" in
+    building_for_tizen_*=true)
+      buildType="gbs"
+      target=$(echo $1 | sed -e 's/building_for_tizen_\(.*\)=true/\1/')
+      target_arch="arm"
+      ;;
+    chromium_efl_tizen_version=*)
+      tizen_version=$(echo $1 | sed -e 's#chromium_efl_tizen_version\=\([0-9.]*\)#\1#')
+      ;;
+    tizen_emulator_support=1)
+      tizen_emulator_support=1
+      ;;
+    #use_wayland=true)
+    #  use_wayland=true
+    #  ;;
+    --xwalk)
+      building_xwalk=1
+      ;;
+    building_crosswalk_bin=*)
+      building_xwalk_for_development=1
+      ;;
+  esac
+  shift;
+done
+
+findElementInArray "$target" "${supported_targets[@]}"
+if [[ $? == 1 ]]; then
+  echo "Unsupported target: $target"
+  exit 1
+fi
+
+if [ "$__GN_CHROMIUMEFL_TARGET" == "crosscompile" ]; then
+  buildType=crosscompile
+  EXTRA_GN_ARGS+=" edje_compiler=${TOPDIR}/out.${host_arch}/Dependencies/Root/bin/edje_cc"
+fi
+
+ORIGINAL_GN_DEFINES="$GN_DEFINES"
+export GN_DEFINES=$(echo "$GN_DEFINES" | sed -e 's/component\s*=\s*shared_library//g')
+if [ "$ORIGINAL_GN_DEFINES" != "$GN_DEFINES" ]; then
+    echo "WARNING: component build is not supported."
+    echo "Removing component=shared_library from GN_DEFINES."
+fi
+
+COMMON_GN_PARAMETERS="
+                      use_libjpeg_turbo=true
+                      proprietary_codecs=true
+                      use_alsa=false
+                      use_aura=false
+                      use_kerberos=false
+                      use_ozone=true
+                      ozone_auto_platforms=false
+                      ozone_platform_wayland=false
+                      is_desktop_linux=false
+                      use_pango=false
+                      use_cairo=false
+                      enable_plugins=true
+                      enable_extensions=true
+                      use_cups=false
+                      use_allocator=\"none\"
+                      disable_fatal_linker_warnings=true
+                      depth=\"${TOPDIR}\"
+                      use_libpci=false
+                      "
+                      # Moved it in //tizen_src/build/config/BUILDCONFIG.gn
+                      # use_efl=true
+                      # declared also from build config
+                      # is_desktop_linux=false
+                      # declared also from //build/config/features.gni
+                      # proprietary_codecs=true
+                      # enable_plugins=true
+
+if [ "$building_xwalk" == "1" ] && [ "$building_xwalk_for_development" != "1" ]; then
+  COMMON_GN_PARAMETERS+="
+                         xwalk_link_against_chromium_ewk=true
+                         "
+fi
+
+add_desktop_flags() {
+  clang="true"
+  if [ "$USECLANG" == "0" ]; then
+    clang="false"
+  fi
+  ADDITIONAL_GN_PARAMETERS+="building_for_tizen=false
+                              building_for_tizen_mobile=false
+                              building_for_tizen_tv=false
+                              is_clang=${clang}
+                              werror=false
+                              use_sysroot=false
+                              use_wayland=false
+                              target_os="\"linux\""
+                              target_cpu=\"${host_arch}\"
+                             "
+}
+
+add_arm_flags() {
+  ADDITIONAL_GN_PARAMETERS+="armv7=true
+                              arm_thumb=true
+                              arm_use_neon=true
+                             "
+}
+
+add_tizen_flags() {
+  ADDITIONAL_GN_PARAMETERS+="building_for_tizen=true
+                              python_ver=\"$(getPythonVersion)\"
+                              enable_basic_printing=true
+                              enable_print_preview=true
+                              is_clang=false
+                              linux_use_bundled_binutils=false
+                              enable_nacl=false
+                              tizen_multimedia_eme_support=false
+                              target_os="\"tizen\""
+                             "
+                              # We do not need it
+                              # tizen=true
+                              # not used any place
+                              # linux_use_bundled_gold=false
+                              # declared also from //build/config/features.gni
+                              #enable_basic_printing=true
+                              #enable_print_preview=true
+                              #It is defined from //build/toolchain/gcc_toolchain.gni
+                              #is_clang=false
+
+  # TODO(youngsoo): Once binutils-gold issue on tizen v3.0 ARM 64bit is fixed,
+  #                 make the latest tizen version unconditional.
+  if [ "$tizen_version" == "30" ] && [ "$host_arch" == "arm" ]; then
+    # [M48_2564] Temporary disabling the flag for switching to new chromium
+    #            FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
+    ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=true
+                              "
+                                #prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
+                               #"
+  elif [ "$tizen_version" == "24" -a "$target" == "tv" ]; then
+    ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
+                                prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild/tizen_v2.4_tv\"
+                               "
+  else
+    ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
+                                prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
+                               "
+  fi
+
+  if [ "$tizen_version" == "30" ]; then
+    # [M49_2623] Temporary disabling the flag.
+    #            FIXME: http://165.213.149.170/jira/browse/TWF-610
+    ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
+                                tizen_tbm_support=false
+                               "
+  else
+    ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
+                                werror=false
+                               "
+  fi
+
+  # use_wayland come from spec file and based on that wayland_bringup sets in tizen_features.gni
+  #add_wayland_flags
+}
+
+add_wayland_flags() {
+  if [ "$use_wayland" == "true" ]; then
+    ADDITIONAL_GN_PARAMETERS+="use_wayland=true
+                                wayland_bringup=true
+                               "
+  else
+    ADDITIONAL_GN_PARAMETERS+="use_wayland=false
+                                wayland_bringup=false
+                               "
+  fi
+}
+
+add_gbs_flags() {
+  # target_arch changed to target_cpu but not changed because it seems that
+  # it is used for gbs and added target_cpu also.
+  ADDITIONAL_GN_PARAMETERS+="target_cpu=\"${host_arch}\"
+                            "
+                            #  sysroot=""
+                            #"
+                              #no-parallel=true
+                             #"
+  # TODO(b.kelemen): ideally crosscompile should also support system libs.
+  # Unfortunately the gbs root doesn't contain everything chromium needs.
+#  SYSTEM_DEPS="-Duse_system_expat=true
+#               -Duse_system_libjpeg=false
+#               -Duse_system_libpng=true
+#               -Duse_system_libusb=true
+#               -Duse_system_libxml=true
+#               -Duse_system_libxslt=true
+#               -Duse_system_re2=true
+#               -Duse_system_zlib=true
+#              "
+  SYSTEM_DEPS="" #"--system-libraries
+               #libxml
+              #"
+
+  # [M50_2661] Temporary using the icu of internal chformium instead of system.
+  #            The icu of system doesn't support utrie2.h
+  #            FIXME: http://suprem.sec.samsung.net/jira/browse/TWF-967
+#  SYSTEM_DEPS+="-Duse_system_icu=false
+#               "
+
+  if [ "$target" == "mobile" ]; then
+#    SYSTEM_DEPS+="-Duse_system_bzip2=true
+#                  -Duse_system_libexif=true
+#                  -Duse_system_nspr=true
+#                 "
+    SYSTEM_DEPS+="
+                 "
+  fi
+}
+
+add_cross_flags() {
+  # target_arch changed to target_cpu but not changed because it seems that
+  # it is used for gbs and added target_cpu also.
+  ADDITIONAL_GN_PARAMETERS+="target_cpu=\"arm\"
+                             sysroot=\"$SYSROOTDIR\"
+                             arm_tune=\"arm7\"
+                             "
+
+  # Compiling yasm with crosscompile + icecc leads to some strange errors (one file is built for target instead of host).
+  # Yasm is an assembler used only by the build (not at runtime) and it is generally available in Linux distros so let's just
+  # use it from the system.
+  ADDITIONAL_GN_PARAMETERS+="use_system_yasm=true"
+}
+
+if [ "$target" == "desktop" ]; then
+  add_desktop_flags
+else
+  add_tizen_flags
+  if [ "$target" == "mobile" -o "$target" == "tv" ]; then
+    if [ "$target_arch" == "arm" ]; then
+      add_arm_flags
+    fi
+    if [ "$buildType" == "gbs" ]; then
+      add_gbs_flags
+    elif [ "$buildType" == "crosscompile" ]; then
+      add_cross_flags
+    fi
+  fi
+  if [ "$SYSTEM_DEPS" != "" ]; then
+    #replacing original files with correct ones according to $SYSTEM_DEPS
+    $TOPDIR/build/linux/unbundle/replace_gn_files.py $SYSTEM_DEPS
+  fi
+fi
+
+_GN_ARGS="
+    gen
+    $GN_GENERATOR_FLAG
+    --root=${TOPDIR}
+    --dotfile=${TOPDIR}/tizen_src/.gn
+    --args=
+    $COMMON_GN_PARAMETERS
+    $SYSTEM_DEPS
+    $ADDITIONAL_GN_PARAMETERS
+    $EXTRA_GN_ARGS
+    "
+printf "GN_ARGUMENTS:\n"
+for arg in $_GN_ARGS; do
+  printf "    * ${arg##-D}\n"
+done
+
+if [ -f "${TOPDIR}/BUILD_.gn" ]; then
+  rm "${TOPDIR}/BUILD.gn"
+else
+  mv "${TOPDIR}/BUILD.gn" "${TOPDIR}/BUILD_.gn"
+fi
+ln -s "${TOPDIR}/tizen_src/BUILD.gn" "${TOPDIR}/BUILD.gn"
+
+${TOPDIR}/tizen_src/build/gn_chromiumefl \
+    ${_GN_ARGS}
+
+ret=$?
+
+mv ${TOPDIR}/BUILD_.gn ${TOPDIR}/BUILD.gn
+
+if [ "$SYSTEM_DEPS" != "" ]; then
+  # Restore gn files to their original states not to mess up the tree permanently.
+  $TOPDIR/build/linux/unbundle/replace_gn_files.py --undo $SYSTEM_DEPS
+fi
+
+exit $ret
index 6ae610c..8a90c1b 100644 (file)
@@ -30,7 +30,10 @@ moduleset = [ __moduleset_file_uri, ]
 __extra_modules = os.environ.get("WEBKIT_EXTRA_MODULES", "").split(",")
 modules = [ 'chromeefl-dependencies', ]
 
-outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
+if os.environ['USE_GN']:
+  outdir = os.environ.get('GN_GENERATOR_OUTPUT', 'out')
+else:
+  outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
 
 checkoutroot = os.path.abspath(os.path.join(outdir,'Dependencies', 'Source'))
 prefix = os.path.abspath(os.path.join(outdir,'Dependencies', 'Root'))
index 75cbc03..7f9e74d 100644 (file)
@@ -192,7 +192,7 @@ BUG=XWALK-2571
 +
 +      'dependencies': [
 +        '../ui/accessibility/accessibility.gyp:ax_gen',
-+        '../third_party/WebKit/public/blink_headers.gyp:blink_headers',
++        '../third_party/blink/public/blink_headers.gyp:blink_headers',
 +        '../skia/skia.gyp:skia',
 +
 +        '../device/battery/battery.gyp:device_battery_mojo_bindings',
@@ -208,7 +208,7 @@ BUG=XWALK-2571
 +        # The public content API headers directly include Blink API headers, so we
 +        # have to export the blink header settings so that relative paths in these
 +        # headers resolve correctly.
-+        '../third_party/WebKit/public/blink_headers.gyp:blink_headers',
++        '../third_party/blink/public/blink_headers.gyp:blink_headers',
 +        # The public render_widget_host.h needs to re-export skia defines.
 +        '../skia/skia.gyp:skia',
 +        'content_common_mojo_bindings.gyp:content_common_mojo_bindings',
@@ -603,10 +603,10 @@ BUG=XWALK-2571
        'type': '<(component)',
        'variables': { 'enable_wexit_time_desctructors': 1, },
        'defines': [
---- src/third_party/WebKit/public/blink.gyp
-+++ src/third_party/WebKit/public/blink.gyp
+--- src/third_party/blink/public/blink.gyp
++++ src/third_party/blink/public/blink.gyp
 @@ -36,17 +36,18 @@
-             # GN version: //third_party/WebKit/public:blink
+             # GN version: //third_party/blink/public:blink
              'target_name': 'blink',
              'type': 'none',
 -            'dependencies': [
diff --git a/tizen_src/build/patches/gn_build_is_tizen_on_ffmpeg.diff b/tizen_src/build/patches/gn_build_is_tizen_on_ffmpeg.diff
new file mode 100644 (file)
index 0000000..342adbf
--- /dev/null
@@ -0,0 +1,100 @@
+diff --git a/third_party/ffmpeg/ffmpeg_generated.gni b/third_party/ffmpeg/ffmpeg_generated.gni
+index e952679..d0208c7 100644
+--- a/third_party/ffmpeg/ffmpeg_generated.gni
++++ b/third_party/ffmpeg/ffmpeg_generated.gni
+@@ -12,7 +12,7 @@ ffmpeg_c_sources = []
+ ffmpeg_gas_sources = []
+ ffmpeg_yasm_sources = []
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
+   ffmpeg_c_sources += [
+     "libavcodec/allcodecs.c",
+     "libavcodec/autorename_libavcodec_utils.c",
+@@ -146,7 +146,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
+   ]
+ }
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
+   ffmpeg_c_sources += [
+     "libavcodec/h264pred.c",
+     "libavcodec/hpeldsp.c",
+@@ -167,7 +167,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
+   ]
+ }
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || is_tizen) {
+   ffmpeg_c_sources += [
+     "libavcodec/aac_ac3_parser.c",
+     "libavcodec/aac_parser.c",
+@@ -255,7 +255,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+   ]
+ }
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/fft_fixed_init_arm.c",
+     "libavcodec/arm/fft_init_arm.c",
+@@ -282,7 +282,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+   ]
+ }
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/h264pred_init_arm.c",
+     "libavcodec/arm/hpeldsp_init_arm.c",
+@@ -302,7 +302,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+   ]
+ }
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
+   ffmpeg_c_sources += [
+     "libavutil/arm/float_dsp_init_neon.c",
+   ]
+@@ -361,7 +361,7 @@ if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_l
+   ]
+ }
+-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || is_tizen) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/aacpsdsp_init_arm.c",
+     "libavcodec/arm/mpegaudiodsp_init_arm.c",
+@@ -483,7 +483,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
+   ]
+ }
+-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
+   ffmpeg_c_sources += [
+     "libavcodec/arm/hpeldsp_init_neon.c",
+     "libavcodec/arm/vp8dsp_init_neon.c",
+diff --git a/third_party/ffmpeg/ffmpeg_options.gni b/third_party/ffmpeg/ffmpeg_options.gni
+index 6bb719a..44735d6 100644
+--- a/third_party/ffmpeg/ffmpeg_options.gni
++++ b/third_party/ffmpeg/ffmpeg_options.gni
+@@ -47,8 +47,10 @@ assert(ffmpeg_branding == "Chromium" ||
+ if (current_cpu == "x86") {
+   ffmpeg_arch = "ia32"
+-} else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) {
++} else if ((current_cpu == "arm" || is_tizen) && arm_version >= 7 && arm_use_neon) {
+   ffmpeg_arch = "arm-neon"
++} else if (is_tizen) {
++  ffmpeg_arch = "arm"
+ } else {
+   ffmpeg_arch = current_cpu
+ }
+@@ -61,6 +63,6 @@ os_config = current_os
+ if ((is_linux || is_chromeos) && is_msan) {
+   os_config = "linux-noasm"
+   disable_ffmpeg_asm = true
+-} else if (is_chromeos) {
++} else if (is_chromeos || is_tizen) {
+   os_config = "linux"
+ }
diff --git a/tizen_src/build/toolchain/tizen/BUILD.gn b/tizen_src/build/toolchain/tizen/BUILD.gn
new file mode 100644 (file)
index 0000000..af68b41
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright 2013 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/sysroot.gni")  # Imports android/config.gni.
+import("//build/toolchain/gcc_toolchain.gni")
+
+template("tizen_gcc_toolchain") {
+  gcc_toolchain(target_name) {
+
+    is_clang = invoker.is_clang
+    if (is_clang) {
+      prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
+                           root_build_dir)
+      cc = "$prefix/clang"
+      cxx = "$prefix/clang++"
+    } else {
+      cc = "gcc"
+      cxx = "g++"
+    }
+    ar = cc + "-ar"
+    ld = cxx
+    readelf = "readelf"
+    nm = "nm"
+    #strip = "strip"
+
+    # Don't use .cr.so for loadable_modules since they are always loaded via
+    # absolute path.
+    loadable_module_extension = ".so"
+
+    toolchain_os = "tizen"
+    toolchain_cpu = invoker.toolchain_cpu
+    use_goma = false
+  }
+}
+
+template("tizen_gcc_toolchains_helper") {
+  tizen_gcc_toolchain(target_name) {
+    toolchain_cpu = invoker.toolchain_cpu
+  }
+
+  tizen_gcc_toolchain("clang_$target_name") {
+    toolchain_cpu = invoker.toolchain_cpu
+    is_clang = true
+  }
+}
+
+tizen_gcc_toolchains_helper("x86") {
+  toolchain_cpu = "x86"
+}
+
+tizen_gcc_toolchains_helper("arm") {
+  toolchain_cpu = "arm"
+}
+
+tizen_gcc_toolchains_helper("mipsel") {
+  toolchain_cpu = "mipsel"
+}
+
+tizen_gcc_toolchains_helper("x64") {
+  toolchain_cpu = "x86_64"
+}
+
+tizen_gcc_toolchains_helper("arm64") {
+  toolchain_cpu = "aarch64"
+}
+
+tizen_gcc_toolchains_helper("mips64el") {
+  toolchain_cpu = "mipsel64el"
+}
diff --git a/tizen_src/buildtools/arm/gn.arm b/tizen_src/buildtools/arm/gn.arm
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tizen_src/chromium-efl-gn.patch b/tizen_src/chromium-efl-gn.patch
new file mode 100644 (file)
index 0000000..0c0514d
--- /dev/null
@@ -0,0 +1,5851 @@
+diff --git a/.gn b/.gn
+new file mode 100644
+index 0000000..53ef4d0
+--- /dev/null
++++ b/.gn
+@@ -0,0 +1,253 @@
++# This file is used by the GN meta build system to find the root of the source
++# tree and to set startup options. For documentation on the values set in this
++# file, run "gn help dotfile" at the command line.
++
++# The location of the build configuration file.
++buildconfig = "//tizen_src/build/config/BUILDCONFIG.gn"
++
++# The secondary source root is a parallel directory tree where
++# GN build files are placed when they can not be placed directly
++# in the source tree, e.g. for third party source trees.
++secondary_source = "//build/secondary/"
++
++# These are the targets to check headers for by default. The files in targets
++# matching these patterns (see "gn help label_pattern" for format) will have
++# their includes checked for proper dependencies when you run either
++# "gn check" or "gn gen --check".
++check_targets = [
++  #"//apps/*",  # Medium-hard.
++  "//ash/*",
++  "//base/*",
++  "//blink/*",
++  "//breakpad/*",
++  "//build/*",
++  "//cc/*",
++
++  #"//chrome/*",  # Epic number of errors.
++  "//chrome/app/*",
++  "//chrome/common/*",
++  "//chrome/installer/*",
++  "//chrome/third_party/mozilla_security_manager/*",
++  "//chrome/tools/*",
++  "//chrome/utility/*",
++  "//chromecast/*",
++  "//chrome_elf/*",
++  "//cloud_print/*",
++  "//components/*",
++
++  #"//content/*",  # A whole lot of errors.
++  "//content/gpu/*",
++  "//content/public/*",
++  "//content/renderer/*",
++
++  #"//content/shell/*",  # Needs Android fix, bug 597020.
++
++  #"//content/test/*",  # A couple of errors left.
++  "//content/test:content_gl_benchmark",
++  "//content/test:content_gl_tests",
++  "//content/test:content_perftests",
++  "//content/test:content_site_isolation_browsertests",
++  "//content/test:content_test_mojo_bindings",
++  "//content/test:content_unittests",
++  "//content/test:test_support",
++  "//courgette/*",
++  "//crypto/*",
++  "//data/*",
++  "//dbus/*",
++  "//device/*",
++
++  #"//extensions/*",  # Lots of errors.
++  "//gin/*",
++  "//google_apis/*",
++  "//google_update/*",
++  "//gpu/*",
++
++  #"//ios/*",
++  "//ipc/*",
++
++  #"//jingle/*",
++  "//mash/*",
++
++  #"//media/*",  # Lots of errors.
++  "mojo/*",
++
++  #"//native_client/*",
++  "//net/*",
++
++  #"//pdf/*",  # Medium-hard.
++  #"//ppapi/*",  # Lots of errors.
++  "//ppapi/examples/*",
++  "//printing/*",
++
++  #"//remoting/*",  # Medium-hard.
++  "//rlz/*",
++
++  #"//sandbox/*",  # Medium-hard.
++  "//sdch/*",
++  "//skia/*",
++  "//sql/*",
++  "//storage/*",
++  "//sync/*",
++  "//testing/*",
++
++  #"//third_party/*",  # May not ever want this.
++  "//third_party/hunspell/*",
++  "//third_party/kasko/*",
++  "//third_party/libaddressinput/*",
++  "//third_party/libphonenumber/*",
++  "//third_party/blink/renderer/*",
++  "//tools/*",
++
++  #"//ui/*",  # Work left on Chromeos w/ use_ozone. Some parts of UI that work:
++  "//ui/accessibility/*",
++  "//ui/android/*",
++  "//ui/app_list/*",
++  "//ui/aura/*",
++  "//ui/aura_extra/*",
++  "//ui/base/*",
++  "//ui/chromeos/*",
++  "//ui/compositor/*",
++  "//ui/display/*",
++  "//ui/events:events",  # Specifically avoid //ui/events/ozone
++  "//ui/events:events_base",
++  "//ui/events:events_unittests",
++  "//ui/file_manager/*",
++  "//ui/gfx/*",
++  "//ui/gl/*",
++  "//ui/keyboard/*",
++  "//ui/login/*",
++  "//ui/message_center/*",
++  "//ui/mojo/*",
++  "//ui/native_theme/*",
++  "//ui/platform_window/*",
++  "//ui/resources/*",
++  "//ui/shell_dialogs/*",
++  "//ui/snapshot/*",
++  "//ui/strings/*",
++  "//ui/surface/*",
++  "//ui/touch_selection/*",
++  "//ui/views/*",
++  "//ui/views_content_client/*",
++  "//ui/web_dialogs/*",
++  "//ui/webui/*",
++  "//ui/wm/*",
++  "//url/*",
++  "//v8/*",
++  "//win8/*",
++]
++
++# These are the list of GN files that run exec_script. This whitelist exists
++# to force additional review for new uses of exec_script, which is strongly
++# discouraged except for gypi_to_gn calls.
++exec_script_whitelist = [
++  "//android_webview/BUILD.gn",
++  "//ash/BUILD.gn",
++  "//build/config/BUILD.gn",
++  "//build/config/android/config.gni",
++  "//build/config/android/internal_rules.gni",
++  "//build/config/android/rules.gni",
++  "//build/config/compiler/BUILD.gn",
++  "//build/config/gcc/gcc_version.gni",
++  "//build/config/ios/ios_sdk.gni",
++  "//build/config/linux/BUILD.gn",
++  "//build/config/linux/pkg_config.gni",
++  "//build/config/mac/mac_sdk.gni",
++  "//build/config/posix/BUILD.gn",
++  "//build/config/sysroot.gni",
++  "//build/config/win/BUILD.gn",
++  "//build/config/win/visual_studio_version.gni",
++  "//build/gn_helpers.py",
++  "//build/gypi_to_gn.py",
++  "//build/linux/BUILD.gn",
++  "//build/toolchain/concurrent_links.gni",
++  "//build/toolchain/gcc_toolchain.gni",
++  "//build/toolchain/mac/BUILD.gn",
++  "//build/toolchain/nacl/BUILD.gn",
++  "//build/toolchain/win/BUILD.gn",
++  "//build/util/version.gni",
++  "//chrome/android/BUILD.gn",
++  "//chrome/browser/BUILD.gn",
++  "//chrome/browser/chromeos/BUILD.gn",
++  "//chrome/browser/extensions/BUILD.gn",
++  "//chrome/browser/resources/chromeos/chromevox/BUILD.gn",
++  "//chrome/browser/media/router/BUILD.gn",
++  "//chrome/browser/ui/BUILD.gn",
++  "//chrome/chrome_tests.gni",
++  "//chrome/common/BUILD.gn",
++  "//chrome/common/extensions/api/schemas.gni",
++  "//chrome/renderer/BUILD.gn",
++  "//chrome/test/BUILD.gn",
++  "//chrome/utility/BUILD.gn",
++  "//chromeos/BUILD.gn",
++
++  # TODO(dgn): Layer violation but breaks the build otherwise, see
++  # https://crbug.com/474506
++  "//clank/java/BUILD.gn",
++  "//clank/native/BUILD.gn",
++
++  "//components/domain_reliability/BUILD.gn",
++  "//content/browser/browser.gni",
++  "//content/child/child.gni",
++  "//content/common/common.gni",
++  "//content/public/android/BUILD.gn",
++  "//content/renderer/renderer.gni",
++  "//content/test/BUILD.gn",
++  "//content/utility/utility.gni",
++  "//extensions/common/api/schemas.gni",
++  "//extensions/extensions.gni",
++  "//extensions/shell/app_shell.gni",
++  "//extensions/shell/common/api/schemas.gni",
++  "//google_apis/BUILD.gn",
++  "//gpu/gles2_conform_support/BUILD.gn",
++  "//gpu/khronos_glcts_support/BUILD.gn",
++  "//jingle/BUILD.gn",
++  "//net/BUILD.gn",
++  "//ppapi/ppapi_sources.gni",
++  "//printing/BUILD.gn",
++  "//remoting/host/BUILD.gn",
++  "//remoting/remoting_srcs.gni",
++  "//remoting/remoting_version.gni",
++  "//skia/BUILD.gn",
++  "//sync/protocol/protocol_sources.gni",
++  "//third_party/android_platform/BUILD.gn",
++  "//third_party/angle/BUILD.gn",
++  "//third_party/angle/src/tests/BUILD.gn",
++  "//third_party/boringssl/BUILD.gn",
++  "//third_party/catapult/tracing/BUILD.gn",
++  "//third_party/cld_2/BUILD.gn",
++  "//third_party/cython/rules.gni",
++  "//third_party/google_input_tools/inputview.gni",
++  "//third_party/harfbuzz-ng/BUILD.gn",
++  "//third_party/libaddressinput/BUILD.gn",
++  "//third_party/opus/BUILD.gn",
++  "//third_party/openh264/BUILD.gn",
++  "//third_party/blink/renderer/bindings/bindings.gni",
++  "//third_party/blink/renderer/bindings/scripts/scripts.gni",
++  "//third_party/blink/renderer/config.gni",
++  "//third_party/blink/renderer/core/core.gni",
++  "//third_party/blink/renderer/devtools/BUILD.gn",
++  "//third_party/blink/renderer/modules/modules.gni",
++  "//third_party/blink/renderer/platform/BUILD.gn",
++  "//third_party/blink/renderer/platform/platform.gni",
++  "//third_party/blink/renderer/web/BUILD.gn",
++  "//third_party/blink/renderer/wtf/BUILD.gn",
++  "//third_party/blink/public/BUILD.gn",
++  "//tools/gn/BUILD.gn",
++  "//tools/gn/build_settings.h",
++  "//tools/gn/command_help.cc",
++  "//tools/gn/docs/language.md",
++  "//tools/gn/format_test_data/053.gn",
++  "//tools/gn/format_test_data/053.golden",
++  "//tools/gn/format_test_data/055.gn",
++  "//tools/gn/format_test_data/055.golden",
++  "//tools/gn/function_exec_script.cc",
++  "//tools/gn/gn.gyp",
++  "//tools/gn/input_conversion.cc",
++  "//tools/gn/misc/emacs/gn.el",
++  "//tools/gn/misc/vim/syntax/gn.vim",
++  "//tools/gn/setup.cc",
++  "//ui/accessibility/BUILD.gn",
++  "//ui/views/BUILD.gn",
++  "//v8/test/cctest/BUILD.gn",
++  "//v8/test/unittests/BUILD.gn",
++]
+diff --git a/BUILD.gn b/BUILD.gn
+new file mode 100644
+index 0000000..3550d31
+--- /dev/null
++++ b/BUILD.gn
+@@ -0,0 +1,18 @@
++# Copyright (c) 2015 Samsung Electronics. 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/features.gni")
++#import("//tizen_src/supplement.gni")
++#import("//build/config/sanitizers/sanitizers.gni")
++#import("//build/config/ui.gni")
++#import("//build_overrides/v8.gni")
++#import("//media/media_options.gni")
++#import("//third_party/openh264/openh264_args.gni")
++
++group("tizen_src_root") {
++  testonly = true
++  deps = [
++    "//tizen_src/ewk:chromium_efl_all"
++  ]
++}
+diff --git a/build/BUILD.gn b/build/BUILD.gn
+new file mode 100644
+index 0000000..4b125f2
+--- /dev/null
++++ b/build/BUILD.gn
+@@ -0,0 +1,596 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++import("//tizen_src/build/config/linux/pkg_config.gni")
++
++config("evas") {
++  ldflags = [ "-levas" ]
++}
++
++tizen_pkg_config("libevas") {
++  packages = [ "evas" ]
++}
++
++config("evas-public") {
++  #cflags = [ "-evas" ]
++}
++
++config("ecore") {
++  #TODO: toolsets may be required
++  #'toolsets': ['host', 'target'],
++  ldflags = [ "-lecore" ]
++}
++
++tizen_pkg_config("libecore") {
++  #TODO: toolsets may be required
++  #'toolsets': ['host', 'target'],
++  packages = [ "ecore" ]
++}
++
++config("ecore-imf-evas") {
++  ldflags = [ "-lecore_imf_evas" ]
++}
++
++tizen_pkg_config("libecore-imf-evas") {
++  packages = [ "ecore-imf-evas" ]
++}
++
++config("ecore-imf-evas-public") {
++}
++
++config("ecore-x") {
++  if (!use_wayland) {
++    ldflags = [ "-lecore_x" ]
++  }
++}
++
++tizen_pkg_config("libecore-x") {
++  packages = []
++  if (!use_wayland) {
++    packages = [ "ecore-x" ]
++  }
++}
++
++config("ecore-x-public") {
++  if (!use_wayland) {
++    #cflags = [ "-ecore-x" ]
++  }
++}
++
++config("ecore-wayland") {
++  if (building_for_tizen && use_wayland) {
++    ldflags = [ "-lecore_wayland" ]
++  }
++}
++
++tizen_pkg_config("libecore-wayland") {
++  packages = []
++  if (building_for_tizen && use_wayland) {
++    packages = [ "ecore-wayland" ]
++  }
++}
++
++config("ecore-wayland-public") {
++  if (building_for_tizen && use_wayland) {
++    cflags = [ "-ecore-wayland" ]
++  }
++}
++
++config("ecore-evas") {
++  ldflags = [ "-lecore_evas" ]
++}
++
++tizen_pkg_config("libecore-evas") {
++  packages = [ "ecore-evas" ]
++}
++
++config("ecore-evas-public") {
++}
++
++config("ecore-input") {
++  ldflags = [ "-lecore_input" ]
++}
++
++tizen_pkg_config("libecore-input") {
++  packages = [ "ecore-input" ]
++}
++
++config("ecore-input-public") {
++  cflags = [ "-ecore-input" ]
++}
++
++config("elementary") {
++  ldflags = [
++    "-lelementary",
++    "-leet",
++    "-lefreet",
++    "-lefreet_mime",
++    "-lefreet_trash",
++  ]
++}
++
++tizen_pkg_config("libelementary") {
++  packages = [ "elementary" ]
++}
++
++config("elementary-public") {
++  cflags = [] #[ "-elementary" ]
++  if (is_clang) {
++    # Fix: elm_prefs_common.h:27:9: warning: empty struct has size 0 in C, size 1 in C++
++    cflags += [ "-Wno-extern-c-compat" ]
++  }
++}
++
++config("edje") {
++  ldflags = [ "-ledje" ]
++}
++
++tizen_pkg_config("libedje") {
++  packages = [ "edje" ]
++}
++
++config("edje-public") {
++  cflags = [ "-edje" ]
++}
++
++config("efl-extension") {
++  if (building_for_tizen) {
++    ldflags = [ "-lefl-extension" ]
++  }
++}
++
++tizen_pkg_config("libefl-extension") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "efl-extension" ]
++  }
++}
++
++config("efl-extension-public") {
++  if (building_for_tizen) {
++    cflags = [ "-efl-extension" ]
++  }
++}
++
++config("ui-gadget") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    ldflags = [ "-lui-gadget-1" ]
++  }
++}
++
++tizen_pkg_config("libui-gadget") {
++  packages = []
++  if (building_for_tizen && building_strategy=="ewk") {
++    packages = [ "ui-gadget-1" ]
++  }
++}
++
++config("ui-gadget-public") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    cflags = [ "-DUG_WAYLAND" ]
++  }
++}
++
++config("capi-appfw-application") {
++  if (building_for_tizen) {
++    ldflags = [ "-lcapi-appfw-application" ]
++  }
++}
++
++tizen_pkg_config("libcapi-appfw-application") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "capi-appfw-application" ]
++  }
++}
++
++config("capi-appfw-application-public") {
++  if (building_for_tizen) {
++#    cflags = [ "-capi-appfw-application" ]
++  }
++}
++
++config("capi-location-manager") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    ldflags = [ "-lcapi-location-manager" ]
++  }
++}
++
++tizen_pkg_config("libcapi-location-manager") {
++  packages = []
++  if (building_for_tizen && building_strategy=="ewk") {
++    packages = [ "capi-location-manager" ]
++  }
++}
++
++config("capi-location-manager-public") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    #cflags = [ "-capi-location-manager" ]
++  }
++}
++
++config("capi-system-info") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    ldflags = [ "-lcapi-system-info" ]
++  }
++}
++
++tizen_pkg_config("libcapi-system-info") {
++  packages = []
++  if (building_for_tizen && building_strategy=="ewk") {
++    packages = [ "capi-system-info" ]
++  }
++}
++
++config("capi-system-info-public") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    #cflags = [ "-capi-system-info" ]
++  }
++}
++
++config("capi-system-device") {
++  if (building_for_tizen_mobile) {
++    ldflags = [ "-lcapi-system-device" ]
++  }
++}
++
++tizen_pkg_config("libcapi-system-device") {
++  packages = []
++  if (building_for_tizen_mobile) {
++    packages = [ "capi-system-device" ]
++  }
++}
++
++config("capi-system-device-public") {
++  if (building_for_tizen_mobile) {
++    #cflags = [ "-capi-system-device" ]
++  }
++}
++
++config("capi-system-sensor") {
++  if (building_for_tizen_mobile) {
++    #ldflags = [ "-capi-system-sensor" ]
++  }
++}
++
++tizen_pkg_config("libcapi-system-sensor") {
++  packages = []
++  if (building_for_tizen_mobile) {
++    packages = [ "capi-system-sensor" ]
++  }
++}
++
++config("capi-system-sensor-public") {
++  if (building_for_tizen_mobile) {
++    cflags = [ "-capi-system-sensor" ]
++  }
++}
++
++config("capi-system-system-settings") {
++  if (building_for_tizen) {
++    ldflags = [ "-lcapi-system-system-settings" ]
++  }
++}
++
++tizen_pkg_config("libcapi-system-system-settings") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "capi-system-system-settings" ]
++  }
++}
++
++config("capi-system-system-settings-public") {
++  if (building_for_tizen) {
++    cflags = [ "-capi-system-system-settings" ]
++  }
++}
++
++config("libdri2") {
++  if (building_for_tizen && !use_wayland) {
++    ldflags = [ "-llibdri2" ]
++  }
++}
++
++tizen_pkg_config("liblibdri2") {
++  packages = []
++  if (building_for_tizen && !use_wayland) {
++    packages = [ "libdri2" ]
++  }
++}
++
++config("libdri2-public") {
++  if (building_for_tizen && !use_wayland) {
++    cflags = [ "-libdri2" ]
++  }
++}
++
++config("libdrm") {
++  if (building_for_tizen) {
++    ldflags = [ "-llibdrm" ]
++  }
++}
++
++tizen_pkg_config("liblibdrm") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "libdrm" ]
++  }
++}
++
++config("libdrm-public") {
++  if (building_for_tizen) {
++    cflags = [ "-libdrm" ]
++  }
++}
++
++config("libtbm") {
++  if (building_for_tizen) {
++    ldflags = [ "-llibtbm" ]
++  }
++}
++
++tizen_pkg_config("liblibtbm") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "libtbm" ]
++  }
++}
++
++config("libtbm-public") {
++  if (building_for_tizen) {
++    cflags = [ "-libtbm" ]
++  }
++}
++
++config("x11") {
++  if (!use_wayland) {
++    #ldflags = [ "-x11" ]
++  }
++}
++
++tizen_pkg_config("libx11") {
++  packages = []
++  if (!use_wayland) {
++    packages = [ "x11" ]
++  }
++}
++
++config("x11-public") {
++  if (!use_wayland) {
++    cflags = [ "-x11" ]
++  }
++}
++
++config("gstreamer") {
++  if (chromium_efl_tizen_version >= 24) {
++    ldflags = [
++      "-lgstreamer-1.0",
++      "-lgstbase-1.0",
++      "-lgstapp-1.0",
++      "-lgstpbutils-1.0",
++      "-lgstvideo-1.0",
++    ]
++  } else { # for Tizen v2.X
++    ldflags = [
++      "gstreamer-0.10",
++      "gstreamer-base-0.10",
++      "gstreamer-app-0.10",
++      "gstreamer-pbutils-0.10",
++      "gstreamer-interfaces-0.10",
++      "gstreamer-video-0.10",
++    ]
++  }
++}
++
++tizen_pkg_config("libgstreamer") {
++  if (chromium_efl_tizen_version >= 24) {
++    packages = [
++      "gstreamer-1.0",
++      "gstreamer-base-1.0",
++      "gstreamer-app-1.0",
++      "gstreamer-pbutils-1.0",
++      "gstreamer-video-1.0",
++    ]
++  } else { # for Tizen v2.X
++    packages = [
++      "gstreamer-0.10",
++      "gstreamer-base-0.10",
++      "gstreamer-app-0.10",
++      "gstreamer-pbutils-0.10",
++      "gstreamer-interfaces-0.10",
++      "gstreamer-video-0.10",
++    ]
++  }
++}
++
++config("gstreamer-public") {
++  #cflags = dependent_pkgs
++}
++
++config("gstreamer-fft") {
++  ldflags = [ "-gstreamer-fft-1.0" ]
++}
++
++tizen_pkg_config("libgstreamer-fft") {
++  packages = [ "gstreamer-fft-1.0" ]
++}
++
++config("gstreamer-fft-public") {
++  cflags = [ "-gstreamer-fft-1.0" ]
++}
++
++config("capi-media-camera") {
++  if (building_for_tizen) {
++    #ldflags = [ "-capi-media-camera" ]
++  }
++}
++
++tizen_pkg_config("libcapi-media-camera") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "capi-media-camera" ]
++  }
++}
++
++config("capi-media-camera-public") {
++  if (building_for_tizen) {
++    #cflags = [ "-capi-media-camera" ]
++  }
++}
++
++config("capi-media-audio-io") {
++  if (building_for_tizen) {
++    ldflags = [ "-lcapi-media-audio-io" ]
++  }
++}
++
++tizen_pkg_config("libcapi-media-audio-io") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "capi-media-audio-io" ]
++  }
++}
++
++config("capi-media-audio-io-public") {
++  if (building_for_tizen) {
++    cflags = [ "-capi-media-audio-io" ]
++  }
++}
++
++config("capi-media-player") {
++  if (building_for_tizen) {
++    #ldflags = [ "-capi-media-player" ]
++  }
++}
++
++tizen_pkg_config("libcapi-media-player") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "capi-media-player" ]
++  }
++}
++
++config("capi-media-player-public") {
++  if (building_for_tizen) {
++    cflags = [ "-capi-media-player" ]
++  }
++}
++
++config("capi-media-tool") {
++  if (building_for_tizen) {
++    ldflags = [ "-lcapi-media-tool" ]
++  }
++}
++
++tizen_pkg_config("libcapi-media-tool") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "capi-media-tool" ]
++  }
++}
++
++config("capi-media-tool-public") {
++  if (building_for_tizen) {
++    cflags = [ "-capi-media-tool" ]
++  }
++}
++
++config("mm-player") {
++  if (building_for_tizen) {
++    ldflags = [ "-lmm-player" ]
++  }
++}
++
++tizen_pkg_config("libmm-player") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "mm-player" ]
++  }
++}
++
++config("mm-player-public") {
++  if (building_for_tizen) {
++    cflags = [ "-mm-player" ]
++  }
++}
++
++config("tts") {
++  if (building_for_tizen) {
++    ldflags = [ "-ltts" ]
++  }
++}
++
++tizen_pkg_config("libtts") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "tts" ]
++  }
++}
++
++config("tts-public") {
++  if (building_for_tizen) {
++    cflags = [ "-tts" ]
++  }
++}
++
++config("vconf") {
++  if (building_for_tizen) {
++    ldflags = [ "-lvconf" ]
++  }
++}
++
++tizen_pkg_config("libvconf") {
++  packages = []
++  if (building_for_tizen) {
++    packages = [ "vconf" ]
++  }
++}
++
++config("vconf-public") {
++  if (building_for_tizen) {
++    #cflags = [ "-vconf" ]
++  }
++}
++
++config("feedback") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    ldflags = [ "-lfeedback" ]
++  }
++}
++
++tizen_pkg_config("libfeedback") {
++  packages = []
++  if (building_for_tizen && building_strategy=="ewk") {
++    packages = [ "feedback" ]
++  }
++}
++
++config("feedback-public") {
++  if (building_for_tizen && building_strategy=="ewk") {
++    #cflags = [ "-feedback" ]
++  }
++}
++
++config("tizen_tzplatform_config") {
++  if (chromium_efl_tizen_version >= 30 && is_tizen) {
++    ldflags = [
++      "-ltzplatform-config-static",
++      "-ltzplatform-config-2.0",
++    ]
++  }
++}
++
++tizen_pkg_config("libtizen_tzplatform_config") {
++  packages = []
++  if (chromium_efl_tizen_version >= 30) {
++    #packages = [ "libtzplatform-config" ]
++  }
++}
++
++config("tizen_tzplatform_config-public") {
++  if (chromium_efl_tizen_version >= 30) {
++    cflags = [ "-libtzplatform-config" ]
++  }
++}
+diff --git a/build/build_desktop.sh b/build/build_desktop.sh
+index 576a2c6..1e9463f 100755
+--- a/build/build_desktop.sh
++++ b/build/build_desktop.sh
+@@ -7,13 +7,20 @@ trap 'error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
+ host_arch=$(getHostArch)
+-if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
+-  export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
+-fi
+-
+ parseHostBuildScriptParams desktop $@
+-JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
++JHBUILD_STAMPFILE=""
++if [ "$USE_GN" ]; then
++  if [ -z "$GN_GENERATOR_OUTPUT" ]; then
++    export GN_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
++  fi
++  JHBUILD_STAMPFILE="${GN_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
++else
++  if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
++    export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.${host_arch}"
++  fi
++  JHBUILD_STAMPFILE="${GYP_GENERATOR_OUTPUT}/Dependencies/Root/jhbuild.stamp"
++fi
+ forceJHBuildIfNeeded() {
+   if [[ $FORCE_JHBUILD == 1 ]]; then
+@@ -29,7 +36,12 @@ forceJHBuildIfNeeded() {
+ forceJHBuildIfNeeded
+-JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
++JHBUILD_DEPS=""
++if [ "$USE_GN" ]; then
++  JHBUILD_DEPS="${GN_GENERATOR_OUTPUT}/Dependencies/Root"
++else
++  JHBUILD_DEPS="${GYP_GENERATOR_OUTPUT}/Dependencies/Root"
++fi
+ if [ "${host_arch}" == "x64" ]; then
+   _LIBDIR=lib64
+ elif [ "${host_arch}" == "ia32" ]; then
+@@ -47,9 +59,29 @@ fi
+ ${SCRIPTDIR}/apply_patches.sh ${SCRIPTDIR}/patches
+-export __GYP_CHROMIUMEFL_TARGET=desktop
++if [ "$USE_GN" ]; then
++  export __GN_CHROMIUMEFL_TARGET=desktop
++else
++  export __GYP_CHROMIUMEFL_TARGET=desktop
++fi
+-hostGypChromiumEfl
++#export BUILD_DEPENDENCIES_LIB_PATH="${JHBUILD_DEPS}/${_LIBDIR}"
++#export BUILD_DEPENDENCIES_INCLUDE_PATH="${JHBUILD_DEPS}/include"
++
++#deps_include_path="\"${JHBUILD_DEPS}/include "
++#for module in "${JHBUILD_DEPS}/include/*"
++#do
++#  deps_include_path="$deps_include_path$module "
++#done
++#deps_include_path="$deps_include_path\""
++
++if [ "$USE_GN" ]; then
++  #hostGnChromiumEfl "deps_include_path=$deps_include_path deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
++  hostGnChromiumEfl "deps_include_path=\"${JHBUILD_DEPS}/include\" deps_lib_path=\"${JHBUILD_DEPS}/${_LIBDIR}\""
++# deps_efl_pc_path=\"${JHBUILD_DEPS}/Source/efl-1.16.0/pc\"
++else
++  hostGypChromiumEfl
++fi
+ export LD_LIBRARY_PATH="${JHBUILD_DEPS}/${_LIBDIR}:$LD_LIBRARY_PATH"
+ export PATH="${JHBUILD_DEPS}/bin:$PATH"
+diff --git a/build/cmd_execution.py b/build/cmd_execution.py
+new file mode 100755
+index 0000000..0159933
+--- /dev/null
++++ b/build/cmd_execution.py
+@@ -0,0 +1,17 @@
++#!/usr/bin/env python
++
++import sys
++import os
++
++if __name__ == '__main__':
++
++  l = len(sys.argv)
++  c = 1;
++  cmd = ""
++  while c < l:
++    cmd += sys.argv[c] + " "
++    c += 1
++
++  os.system(cmd)
++
++  sys.exit(0)
+diff --git a/build/common.sh b/build/common.sh
+index 63b0867..1f029d4 100755
+--- a/build/common.sh
++++ b/build/common.sh
+@@ -78,6 +78,12 @@ function parseHostBuildScriptParams() {
+       --skip-gyp)
+         export SKIP_GYP=1
+         ;;
++      --use-gn)
++        export USE_GN=1
++        ;;
++      --skip-gn)
++        export SKIP_GN=1
++        ;;
+       --ccache)
+         echo using ccache
+         export USE_CCACHE=1
+@@ -137,6 +143,25 @@ function hostGypChromiumEfl() {
+   fi
+ }
++function hostGnChromiumEfl() {
++  if [[ $SKIP_GN != 1 ]]; then
++    local XWALK_ARG=""
++    local COMPONENT_ARG=""
++    if [[ $BUILD_XWALK == 1 ]]; then
++      XWALK_ARG="xwalk=true"
++    fi
++    if [[ $COMPONENT_BUILD == 1 ]]; then
++      COMPONENT_ARG="component=shared_library"
++    fi
++    ${TOPDIR}/tizen_src/build/gn_chromiumefl.sh \
++      $XWALK_ARG \
++      $COMPONENT_ARG \
++      "outdir=\"$TOPDIR/out.$(getHostArch)\"" \
++      "chromium_efl_tizen_version=30" \
++      $@
++  fi
++}
++
+ function hostNinja() {
+   if [[ $SKIP_NINJA == 0 ]]; then
+     TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser"
+@@ -149,7 +174,15 @@ function hostNinja() {
+     if [[ $BUILD_XWALK == 1 ]]; then
+       TARGETS="$TARGETS xwalk"
+     fi
+-    BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
++    if [[ $BUILD_CHROMEDRIVER == 1 ]]; then
++      TARGETS="$TARGETS chromedriver"
++    fi
++    if [ "$USE_GN" ]; then
++      export BUILD_SUBDIRECTORY=""
++      BUILDDIR=${GN_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
++    else
++      BUILDDIR=${GYP_GENERATOR_OUTPUT}/${BUILD_SUBDIRECTORY}
++    fi
+     ninja -C $BUILDDIR ${JOBS} ${TARGETS}
+   fi
+ }
+@@ -245,6 +278,16 @@ function setupAndExecuteTargetBuild() {
+         count=$(( $count + 1 ))
+         ARGS[$count]="_skip_gyp 1"
+     ;;
++    --use-gn)
++        ARGS[$count]=--define
++        count=$(( $count + 1 ))
++        ARGS[$count]="_use_gn 1"
++    ;;
++    --skip-gn)
++        ARGS[$count]=--define
++        count=$(( $count + 1 ))
++        ARGS[$count]="_skip_gn 1"
++    ;;
+     --xwalk)
+         ARGS[$count]=--define
+         count=$(( $count + 1 ))
+diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn
+new file mode 100644
+index 0000000..67a787e
+--- /dev/null
++++ b/build/config/BUILD.gn
+@@ -0,0 +1,131 @@
++# Copyright (c) 2013 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/features.gni")
++import("//build/config/ui.gni")
++
++# One common error that happens is that GYP-generated headers within gen/ get
++# included rather than the GN-generated ones within gen/ subdirectories.
++# TODO(agrieve): Remove once GYP is gone (as well as exec_script exception).
++#assert(
++#    exec_script("//build/dir_exists.py", [ "obj.host" ], "string") == "False",
++#    "GYP artifacts detected in $root_build_dir.$0x0A" +
++#        "You must wipe this directory before building with GN.")
++
++# TODO(brettw) Most of these should be removed. Instead of global feature
++# flags, we should have more modular flags that apply only to a target and its
++# dependents. For example, depending on the "x11" meta-target should define
++# USE_X11 for all dependents so that everything that could use X11 gets the
++# define, but anything that doesn't depend on X11 doesn't see it.
++#
++# For now we define these globally to match the current GYP build.
++config("tizen_feature_flags") {
++  defines = [
++    # TODO: Check if those defines are still necessary. If they are add an explanation why.
++    "COMPONENT_BUILD",
++    "SKIA_DLL",
++    "BUILDING_V8_SHARED",
++    "V8_SHARED",
++  ]
++
++  if (use_efl) {
++    defines += [ "USE_EFL" ]
++  }
++  if (tizen_tbm_support) {
++    defines += [ "TIZEN_TBM_SUPPORT" ]
++  }
++  if (ewk_bringup) {
++    defines += [ "EWK_BRINGUP" ]
++  }
++
++  if (prebuilt_ld_gold_dir != "") {
++    ldflags = [ "-B${prebuilt_ld_gold_dir}" ]
++
++    if (gcc_version >= 49) {
++      # In GCC 4.9, the linker (either bfd or gold) is called with the -plugin argument
++      # which our current bundled gold linker (in build/prebuild) does not accept.
++      # Since our gold a x64 64bit statically linked binary, even if we rebuild it
++      # with plugin support enabled, the plugin being loaded would be a 32bit ARM binary.
++      # and load would fail. So we disable linker's plugin loadeir (specifically
++      # gcc's liblto_plugin).
++      cflags = [ "-fPIC" ]
++      ldflags += [ "-shared" ]
++      ldflags += [ "-fno-use-linker-plugin" ]
++    }
++  }
++
++  if (building_for_tizen) {
++    defines += [
++      "OS_TIZEN",
++      "WTF_OS_TIZEN",
++    ]
++    # Tizen build system has a global option '-Wformat-security'.
++    # So, a cflag '-Wno-format' from chromium-efl needs to be ignored.
++    # Otherwise, following error will happen.
++    # error: -Wformat-security ignored without -Wformat [-Werror=format-security]
++    if (prebuilt_ld_gold_dir == "") {
++      cflags = [ "-Wno-format" ]
++    }
++
++    defines += [ "NO_UNWIND_TABLES" ]
++
++    if (chromium_efl_tizen_version == 30) {
++      defines += [
++        "TIZEN_MAJOR_VERSION=3",
++        "TIZEN_MINOR_VERSION=0",
++        "TIZEN_PATCH_VERSION=0",
++      ]
++    } else if (chromium_efl_tizen_version == 24) {
++      defines += [
++        "TIZEN_MAJOR_VERSION=2",
++        "TIZEN_MINOR_VERSION=4",
++        "TIZEN_PATCH_VERSION=0",
++      ]
++    } else if (chromium_efl_tizen_version == 23) {
++      defines += [
++        "TIZEN_MAJOR_VERSION=2",
++        "TIZEN_MINOR_VERSION=3",
++        "TIZEN_PATCH_VERSION=0",
++      ]
++    }
++
++    if (use_wayland) {
++      defines += [ "USE_WAYLAND" ]
++    }
++    if (tizen_multimedia_support) {
++      defines += [
++        "TIZEN_MULTIMEDIA_SUPPORT",
++        "TIZEN_MULTIMEDIA_USE_CAPI_AUDIO_IO",
++      ]
++    }
++
++    # TODO: There are X11 dependencies in following condition.
++    #       The files need to be implemented based on Wayland.
++    if (wayland_bringup) {
++      defines += [ "WAYLAND_BRINGUP" ]
++    }
++  }
++
++  if (building_for_tizen_mobile) {
++    defines += [
++      "OS_TIZEN_MOBILE",
++      "WTF_OS_TIZEN_MOBILE",
++      "TIZEN_CONTENTS_DETECTION",
++    ]
++  }
++
++  if (building_for_tizen_tv) {
++    defines += [
++      "OS_TIZEN_TV",
++      "WTF_OS_TIZEN_TV",
++    ]
++
++    if (chromium_efl_tizen_version == 24) {
++      cflags -= [
++        "-march=armv7-a",
++        "-mtune=generic-armv7-a",
++      ]
++    }
++  }
++}
+diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
+new file mode 100644
+index 0000000..2e3d330
+--- /dev/null
++++ b/build/config/BUILDCONFIG.gn
+@@ -0,0 +1,671 @@
++# Copyright (c) 2013 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.
++
++# =============================================================================
++# WHAT IS THIS FILE?
++# =============================================================================
++#
++# This is the master GN build configuration. This file is loaded after the
++# build args (args.gn) for the build directory and after the toplevel ".gn"
++# file (which points to this file as the build configuration).
++#
++# This file will be executed and the resulting context will be used to execute
++# every other file in the build. So variables declared here (that don't start
++# with an underscore) will be implicitly global.
++
++# =============================================================================
++# PLATFORM SELECTION
++# =============================================================================
++#
++# There are two main things to set: "os" and "cpu". The "toolchain" is the name
++# of the GN thing that encodes combinations of these things.
++#
++# Users typically only set the variables "target_os" and "target_cpu" in "gn
++# args", the rest are set up by our build and internal to GN.
++#
++# There are three different types of each of these things: The "host"
++# represents the computer doing the compile and never changes. The "target"
++# represents the main thing we're trying to build. The "current" represents
++# which configuration is currently being defined, which can be either the
++# host, the target, or something completely different (like nacl). GN will
++# run the same build file multiple times for the different required
++# configuration in the same build.
++#
++# This gives the following variables:
++#  - host_os, host_cpu, host_toolchain
++#  - target_os, target_cpu, default_toolchain
++#  - current_os, current_cpu, current_toolchain.
++#
++# Note the default_toolchain isn't symmetrical (you would expect
++# target_toolchain). This is because the "default" toolchain is a GN built-in
++# concept, and "target" is something our build sets up that's symmetrical with
++# its GYP counterpart. Potentially the built-in default_toolchain variable
++# could be renamed in the future.
++#
++# When writing build files, to do something only for the host:
++#   if (current_toolchain == host_toolchain) { ...
++
++if (target_os == "") {
++  target_os = host_os
++}
++
++if (target_cpu == "") {
++  if (target_os == "tizen") {
++    # If we're building for Tizen, we should assume that we want to
++    # build for ARM by default, not the host_cpu (which is likely x64).
++    # This allows us to not have to specify both target_os and target_cpu
++    # on the command line.
++    target_cpu = "arm"
++  } else {
++    target_cpu = host_cpu
++  }
++}
++
++if (current_cpu == "") {
++  current_cpu = target_cpu
++}
++if (current_os == "") {
++  current_os = target_os
++}
++
++# =============================================================================
++# BUILD FLAGS
++# =============================================================================
++#
++# This block lists input arguments to the build, along with their default
++# values.
++#
++# If a value is specified on the command line, it will overwrite the defaults
++# given in a declare_args block, otherwise the default will be used.
++#
++# YOU SHOULD ALMOST NEVER NEED TO ADD FLAGS TO THIS FILE. GN allows any file in
++# the build to declare build flags. If you need a flag for a single component,
++# you can just declare it in the corresponding BUILD.gn file.
++#
++# - If your feature is a single target, say //components/foo, you can put
++#   a declare_args() block in //components/foo/BUILD.gn and use it there.
++#   Nobody else in the build needs to see the flag.
++#
++# - Defines based on build variables should be implemented via the generated
++#   build flag header system. See //build/buildflag_header.gni. You can put
++#   the buildflag_header target in the same file as the build flag itself. You
++#   should almost never set "defines" directly.
++#
++# - If your flag toggles a target on and off or toggles between different
++#   versions of similar things, write a "group" target that forwards to the
++#   right target (or no target) depending on the value of the build flag. This
++#   group can be in the same BUILD.gn file as the build flag, and targets can
++#   depend unconditionally on the group rather than duplicating flag checks
++#   across many targets.
++#
++# - If a semi-random set of build files REALLY needs to know about a define and
++#   the above pattern for isolating the build logic in a forwarding group
++#   doesn't work, you can put the argument in a .gni file. This should be put
++#   in the lowest level of the build that knows about this feature (which should
++#   almost always be outside of the //build directory!).
++#
++# Other flag advice:
++#
++# - Use boolean values when possible. If you need a default value that expands
++#   to some complex thing in the default case (like the location of the
++#   compiler which would be computed by a script), use a default value of -1 or
++#   the empty string. Outside of the declare_args block, conditionally expand
++#   the default value as necessary.
++#
++# - Use a name like "use_foo" or "is_foo" (whatever is more appropriate for
++#   your feature) rather than just "foo".
++#
++# - Write good comments directly above the declaration with no blank line.
++#   These comments will appear as documentation in "gn args --list".
++#
++# - Don't call exec_script inside declare_args. This will execute the script
++#   even if the value is overridden, which is wasteful. See first bullet.
++
++declare_args() {
++  # Set to enable the official build level of optimization. This has nothing
++  # to do with branding, but enables an additional level of optimization above
++  # release (!is_debug). This might be better expressed as a tri-state
++  # (debug, release, official) but for historical reasons there are two
++  # separate flags.
++  is_official_build = false
++
++  # Debug build. Enabling official builds automatically sets is_debug to false.
++  is_debug = false
++
++  # Whether we're a traditional desktop unix.
++  is_desktop_linux = current_os == "linux"
++
++  # Set to true when compiling with the Clang compiler. Typically this is used
++  # to configure warnings.
++  is_clang = current_os == "ios"
++
++  # Allows the path to a custom target toolchain to be injected as a single
++  # argument, and set as the default toolchain.
++  custom_toolchain = ""
++
++  # This should not normally be set as a build argument.  It's here so that
++  # every toolchain can pass through the "global" value via toolchain_args().
++  if (current_os == "tizen") {
++    host_toolchain = "//tizen_src/build/toolchain/tizen:$host_cpu"
++  } else {
++    host_toolchain = ""
++  }
++
++  # DON'T ADD MORE FLAGS HERE. Read the comment above.
++}
++
++declare_args() {
++  # Component build. Setting to true compiles targets declared as "components"
++  # as shared libraries loaded dynamically. This speeds up development time.
++  # When false, components will be linked statically.
++  #
++  # For more information see
++  # https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md
++  is_component_build = is_debug && current_os != "ios"
++}
++
++assert(!(is_debug && is_official_build), "Can't do official debug builds")
++
++# ==============================================================================
++# TOOLCHAIN SETUP
++# ==============================================================================
++#
++# Here we set the default toolchain, as well as the variable host_toolchain
++# which will identify the toolchain corresponding to the local system when
++# doing cross-compiles. When not cross-compiling, this will be the same as the
++# default toolchain.
++#
++# We do this before anything else to make sure we complain about any
++# unsupported os/cpu combinations as early as possible.
++
++if (host_toolchain == "") {
++  # This should only happen in the top-level context.
++  # In a specific toolchain context, the toolchain_args()
++  # block should have propagated a value down.
++  # TODO(dpranke): Add some sort of assert here that verifies that
++  # no toolchain omitted host_toolchain from its toolchain_args().
++
++  if (host_os == "linux") {
++    if (target_os != "linux") {
++      # TODO(dpranke) - is_clang normally applies only to the target
++      # build, and there is no way to indicate that you want to override
++      # it for both the target build *and* the host build. Do we need to
++      # support this?
++      host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
++    } else if (is_clang) {
++      host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
++    } else {
++      host_toolchain = "//build/toolchain/linux:$host_cpu"
++    }
++  } else if (host_os == "mac") {
++    host_toolchain = "//build/toolchain/mac:clang_$host_cpu"
++  } else if (host_os == "win") {
++    # On Windows always use the target CPU for host builds. On the
++    # configurations we support this will always work and it saves build steps.
++    if (is_clang) {
++      host_toolchain = "//build/toolchain/win:clang_$target_cpu"
++    } else {
++      host_toolchain = "//build/toolchain/win:$target_cpu"
++    }
++  } else {
++    assert(false, "Unsupported host_os: $host_os")
++  }
++}
++
++_default_toolchain = ""
++
++if (target_os == "tizen") {
++  assert(host_os == "linux" || host_os == "mac",
++         "Tizen builds are only supported on Linux and Mac hosts.")
++  if (is_clang) {
++    _default_toolchain = "//tizen_src/build/toolchain/tizen_clang_$target_cpu"
++  } else {
++    _default_toolchain = "//tizen_src/build/toolchain/tizen_$target_cpu"
++  }
++} else if (target_os == "chromeos" || target_os == "linux") {
++  # See comments in build/toolchain/cros/BUILD.gn about board compiles.
++  if (is_clang) {
++    _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
++  } else {
++    _default_toolchain = "//build/toolchain/linux:$target_cpu"
++  }
++} else if (target_os == "ios") {
++  _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu"
++} else if (target_os == "mac") {
++  assert(host_os == "mac", "Mac cross-compiles are unsupported.")
++  _default_toolchain = host_toolchain
++} else if (target_os == "win") {
++  # On Windows we use the same toolchain for host and target by default.
++  assert(target_os == host_os, "Win cross-compiles only work on win hosts.")
++  if (is_clang) {
++    _default_toolchain = "//build/toolchain/win:clang_$target_cpu"
++  } else {
++    _default_toolchain = "//build/toolchain/win:$target_cpu"
++  }
++} else if (target_os == "winrt_81" || target_os == "winrt_81_phone" ||
++           target_os == "winrt_10") {
++  _default_toolchain = "//build/toolchain/win:winrt_$target_cpu"
++} else {
++  assert(false, "Unsupported target_os: $target_os")
++}
++
++# If a custom toolchain has been set in the args, set it as default. Otherwise,
++# set the default toolchain for the platform (if any).
++if (custom_toolchain != "") {
++  set_default_toolchain(custom_toolchain)
++} else if (_default_toolchain != "") {
++  set_default_toolchain(_default_toolchain)
++}
++
++# =============================================================================
++# OS DEFINITIONS
++# =============================================================================
++#
++# We set these various is_FOO booleans for convenience in writing OS-based
++# conditions.
++#
++# - is_android, is_chromeos, is_ios, and is_win should be obvious.
++# - is_mac is set only for desktop Mac. It is not set on iOS.
++# - is_posix is true for mac and any Unix-like system (basically everything
++#   except Windows).
++# - is_linux is true for desktop Linux and ChromeOS, but not Android (which is
++#   generally too different despite being based on the Linux kernel).
++#
++# Do not add more is_* variants here for random lesser-used Unix systems like
++# aix or one of the BSDs. If you need to check these, just check the
++# current_os value directly.
++
++if (current_os == "win" || current_os == "winrt_81" ||
++    current_os == "winrt_81_phone" || current_os == "winrt_10") {
++  is_android = false
++  is_chromeos = false
++  is_ios = false
++  is_linux = false
++  is_mac = false
++  is_nacl = false
++  is_posix = false
++  is_win = true
++  is_tizen = false
++  use_efl = false
++} else if (current_os == "mac") {
++  is_android = false
++  is_chromeos = false
++  is_ios = false
++  is_linux = false
++  is_mac = true
++  is_nacl = false
++  is_posix = true
++  is_win = false
++  is_tizen = false
++  use_efl = false
++} else if (current_os == "tizen") {
++  is_android = false
++  is_chromeos = false
++  is_ios = false
++  is_linux = false
++  is_mac = false
++  is_nacl = false
++  is_posix = true
++  is_win = false
++  is_tizen = true
++  use_efl = true
++  is_official_build = false
++} else if (current_os == "nacl") {
++  # current_os == "nacl" will be passed by the nacl toolchain definition.
++  # It is not set by default or on the command line. We treat is as a
++  # Posix variant.
++  is_android = false
++  is_chromeos = false
++  is_ios = false
++  is_linux = false
++  is_mac = false
++  is_nacl = true
++  is_posix = true
++  is_win = false
++  is_tizen = false
++  use_efl = false
++} else if (current_os == "ios") {
++  is_android = false
++  is_chromeos = false
++  is_ios = true
++  is_linux = false
++  is_mac = false
++  is_nacl = false
++  is_posix = true
++  is_win = false
++  is_tizen = false
++  use_efl = false
++} else if (current_os == "linux") {
++  is_android = false
++  is_chromeos = false
++  is_ios = false
++  is_linux = true
++  is_mac = false
++  is_nacl = false
++  is_posix = true
++  is_win = false
++  is_tizen = false
++  use_efl = true
++  is_official_build = false
++}
++
++# =============================================================================
++# SOURCES FILTERS
++# =============================================================================
++#
++# These patterns filter out platform-specific files when assigning to the
++# sources variable. The magic variable |sources_assignment_filter| is applied
++# to each assignment or appending to the sources variable and matches are
++# automatically removed.
++#
++# Note that the patterns are NOT regular expressions. Only "*" and "\b" (path
++# boundary = end of string or slash) are supported, and the entire string
++# must match the pattern (so you need "*.cc" to match all .cc files, for
++# example).
++
++# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
++# below.
++sources_assignment_filter = []
++if (!is_posix) {
++  sources_assignment_filter += [
++    "*_posix.h",
++    "*_posix.cc",
++    "*_posix_unittest.h",
++    "*_posix_unittest.cc",
++    "*\bposix/*",
++  ]
++}
++if (!is_win) {
++  sources_assignment_filter += [
++    "*_win.cc",
++    "*_win.h",
++    "*_win_unittest.cc",
++    "*\bwin/*",
++    "*.def",
++    "*.rc",
++  ]
++}
++if (!is_mac) {
++  sources_assignment_filter += [
++    "*_mac.h",
++    "*_mac.cc",
++    "*_mac.mm",
++    "*_mac_unittest.h",
++    "*_mac_unittest.cc",
++    "*_mac_unittest.mm",
++    "*\bmac/*",
++    "*_cocoa.h",
++    "*_cocoa.cc",
++    "*_cocoa.mm",
++    "*_cocoa_unittest.h",
++    "*_cocoa_unittest.cc",
++    "*_cocoa_unittest.mm",
++    "*\bcocoa/*",
++  ]
++}
++if (!is_ios) {
++  sources_assignment_filter += [
++    "*_ios.h",
++    "*_ios.cc",
++    "*_ios.mm",
++    "*_ios_unittest.h",
++    "*_ios_unittest.cc",
++    "*_ios_unittest.mm",
++    "*\bios/*",
++  ]
++}
++if (!is_mac && !is_ios) {
++  sources_assignment_filter += [ "*.mm" ]
++}
++if (!is_linux) {
++  sources_assignment_filter += [
++    "*_linux.h",
++    "*_linux.cc",
++    "*_linux_unittest.h",
++    "*_linux_unittest.cc",
++    "*\blinux/*",
++  ]
++}
++if (!is_android) {
++  sources_assignment_filter += [
++    "*_android.h",
++    "*_android.cc",
++    "*_android_unittest.h",
++    "*_android_unittest.cc",
++    "*\bandroid/*",
++  ]
++}
++if (!is_chromeos) {
++  sources_assignment_filter += [
++    "*_chromeos.h",
++    "*_chromeos.cc",
++    "*_chromeos_unittest.h",
++    "*_chromeos_unittest.cc",
++    "*\bchromeos/*",
++  ]
++}
++
++# DO NOT ADD MORE PATTERNS TO THIS LIST, see set_sources_assignment_filter call
++# below.
++
++# Actually save this list.
++#
++# These patterns are executed for every file in the source tree of every run.
++# Therefore, adding more patterns slows down the build for everybody. We should
++# only add automatic patterns for configurations affecting hundreds of files
++# across many projects in the tree.
++#
++# Therefore, we only add rules to this list corresponding to platforms on the
++# Chromium waterfall.  This is not for non-officially-supported platforms
++# (FreeBSD, etc.) toolkits, (X11, GTK, etc.), or features. For these cases,
++# write a conditional in the target to remove the file(s) from the list when
++# your platform/toolkit/feature doesn't apply.
++set_sources_assignment_filter(sources_assignment_filter)
++
++# =============================================================================
++# TARGET DEFAULTS
++# =============================================================================
++#
++# Set up the default configuration for every build target of the given type.
++# The values configured here will be automatically set on the scope of the
++# corresponding target. Target definitions can add or remove to the settings
++# here as needed.
++
++# Holds all configs used for running the compiler.
++default_compiler_configs = [
++  "//build/config:feature_flags",
++  "//tizen_src/build/config:tizen_feature_flags",
++  "//build/config/compiler:afdo",
++  "//build/config/compiler:compiler",
++  "//build/config/compiler:clang_stackrealign",
++  "//build/config/compiler:compiler_arm_fpu",
++  "//build/config/compiler:chromium_code",
++  "//build/config/compiler:default_include_dirs",
++  "//tizen_src/build/config/compiler:tizen_default_include_dirs",
++  "//build/config/compiler:default_optimization",
++  "//build/config/compiler:default_stack_frames",
++  "//build/config/compiler:default_symbols",
++  "//build/config/compiler:no_rtti",
++  "//build/config/compiler:runtime_library",
++  "//build/config/sanitizers:default_sanitizer_flags",
++]
++if (!is_tizen) {
++  default_compiler_configs += [
++    "//tizen_src/build/config/compiler:tizen_default_lib_dirs",
++  ]
++}
++if (is_win) {
++  default_compiler_configs += [
++    "//build/config/win:default_crt",
++    "//build/config/win:lean_and_mean",
++    "//build/config/win:nominmax",
++    "//build/config/win:unicode",
++    "//build/config/win:winver",
++    "//build/config/win:vs_code_analysis",
++  ]
++}
++if (current_os == "winrt_81" || current_os == "winrt_81_phone" ||
++    current_os == "winrt_10") {
++  default_compiler_configs += [ "//build/config/win:target_winrt" ]
++}
++if (is_posix) {
++  default_compiler_configs += [
++    "//build/config/gcc:no_exceptions",
++    "//build/config/gcc:symbol_visibility_hidden",
++  ]
++}
++
++if (!use_efl) {
++  default_compiler_configs +=
++      [ "//build/config/android:default_cygprofile_instrumentation" ]
++}
++
++if (is_clang && !is_nacl) {
++  default_compiler_configs += [
++    "//build/config/clang:find_bad_constructs",
++    "//build/config/clang:extra_warnings",
++  ]
++}
++
++# Debug/release-related defines.
++if (is_debug) {
++  default_compiler_configs += [ "//build/config:debug" ]
++} else {
++  default_compiler_configs += [ "//build/config:release" ]
++}
++
++# Static libraries and source sets use only the compiler ones.
++set_defaults("static_library") {
++  configs = default_compiler_configs
++}
++set_defaults("source_set") {
++  configs = default_compiler_configs
++}
++
++# Compute the set of configs common to all linked targets (shared libraries,
++# loadable modules, executables) to avoid duplication below.
++if (is_win) {
++  # Many targets remove these configs, so they are not contained within
++  # //build/config:executable_config for easy removal.
++  _linker_configs = [
++    "//build/config/win:default_incremental_linking",
++
++    # Default to console-mode apps. Most of our targets are tests and such
++    # that shouldn't use the windows subsystem.
++    "//build/config/win:console",
++  ]
++} else if (is_mac || is_ios) {
++  _linker_configs = [ "//build/config/mac:strip_all" ]
++} else {
++  _linker_configs = []
++}
++
++# Executable defaults.
++default_executable_configs = default_compiler_configs + [
++                               "//build/config:default_libs",
++                               "//build/config:executable_config",
++                             ] + _linker_configs
++set_defaults("executable") {
++  configs = default_executable_configs
++}
++
++# Test defaults.
++set_defaults("test") {
++  configs = default_executable_configs
++}
++
++# Shared library and loadable module defaults (also for components in component
++# Test defaults.# mode).
++default_shared_library_configs = default_compiler_configs + [
++                                   "//build/config:default_libs",
++                                   "//build/config:shared_library_config",
++                                 ] + _linker_configs
++if (!use_efl) {
++  # Strip native JNI exports from shared libraries by default. Binaries that
++  # want this can remove this config.
++  default_shared_library_configs +=
++      [ "//build/config/android:hide_native_jni_exports" ]
++}
++set_defaults("shared_library") {
++  configs = default_shared_library_configs
++}
++set_defaults("loadable_module") {
++  configs = default_shared_library_configs
++}
++
++# ==============================================================================
++# COMPONENT SETUP
++# ==============================================================================
++
++# Defines a component, which equates to a shared_library when
++# is_component_build == true and a static_library otherwise.
++#
++# Use static libraries for the static build rather than source sets because
++# many of of our test binaries link many large dependencies but often don't
++# use large portions of them. The static libraries are much more efficient to
++# link in this situation since only the necessary object files are linked.
++#
++# The invoker can override the type of the target in the non-component-build
++# case by setting static_component_type to either "source_set" or
++# "static_library". If unset, the default will be used.
++template("component") {
++  if (is_component_build) {
++    _component_mode = "shared_library"
++  } else if (defined(invoker.static_component_type)) {
++    assert(invoker.static_component_type == "static_library" ||
++           invoker.static_component_type == "source_set")
++    _component_mode = invoker.static_component_type
++  } else if (is_android || !defined(invoker.sources)) {
++    # When there are no sources defined, use a source set to avoid creating
++    # an empty static library (which generally don't work).
++    #
++    # When we changed components to default from source sets to static
++    # libraries, an Android benchmark regressed slightly
++    # (https://crbug.com/619593). We don't have a good theory on why this might
++    # be since theoretically it should be the same. It could be something as
++    # silly as random code locality luck.
++    #
++    # There seems to be no build-time performance hit to using source sets on
++    # Android (the normal reason for defaulting to static libraries), so we
++    # make the default on Android to be source set.
++    #
++    # If it's been a long time since this was added and you're skeptical,
++    # please feel free to remove the Android exception and see if any
++    # benchmarks obviously regress. If not, it would be great to standardize
++    # with the rest of the platforms.
++    _component_mode = "source_set"
++  } else {
++    _component_mode = "static_library"
++  }
++  target(_component_mode, target_name) {
++    # Explicitly forward visibility, implicitly forward everything else.
++    # Forwarding "*" doesn't recurse into nested scopes (to avoid copying all
++    # globals into each template invocation), so won't pick up file-scoped
++    # variables. Normally this isn't too bad, but visibility is commonly
++    # defined at the file scope. Explicitly forwarding visibility and then
++    # excluding it from the "*" set works around this problem.
++    # See http://crbug.com/594610
++    forward_variables_from(invoker, [ "visibility" ])
++    forward_variables_from(invoker, "*", [ "visibility" ])
++
++    # All shared libraries must have the sanitizer deps to properly link in
++    # asan mode (this target will be empty in other cases).
++    if (!defined(deps)) {
++      deps = []
++    }
++    deps += [ "//build/config/sanitizers:deps" ]
++  }
++}
++
++# Component defaults
++set_defaults("component") {
++  if (is_component_build) {
++    configs = default_shared_library_configs
++    if (is_android) {
++      configs -= [ "//build/config/android:hide_native_jni_exports" ]
++    }
++  } else {
++    configs = default_compiler_configs
++  }
++}
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+new file mode 100644
+index 0000000..ede97e0
+--- /dev/null
++++ b/build/config/compiler/BUILD.gn
+@@ -0,0 +1,131 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++declare_args() {
++  if (is_tizen) {
++    deps_include_path = "/usr/include"
++    deps_lib_path = "/usr/lib"
++  } else {
++    deps_include_path = ""
++  }
++}
++
++config("tizen_default_lib_dirs") {
++  lib_dirs = [
++  ]
++}
++
++config("tizen_default_include_dirs") {
++  include_dirs = [
++    "//tizen_src",
++    "//tizen_src/chromium_impl",
++    "//tizen_src/ecore_wrapper",
++
++    "//third_party/blink/renderer",
++
++    deps_include_path,
++    # find / -name *.h -printf '%h\n' | sort --unique
++    "$deps_include_path/dbus-1.0",
++    "$deps_include_path/ecore-1",
++    "$deps_include_path/ecore-audio-1",
++    "$deps_include_path/ecore-audio-cxx-1",
++    "$deps_include_path/ecore-avahi-1",
++    "$deps_include_path/ecore-con-1",
++    "$deps_include_path/ecore-cxx-1",
++    "$deps_include_path/ecore-evas-1",
++    "$deps_include_path/ecore-file-1",
++    "$deps_include_path/ecore-imf-1",
++    "$deps_include_path/ecore-imf-evas-1",
++    "$deps_include_path/ecore-input-1",
++    "$deps_include_path/ecore-input-evas-1",
++    "$deps_include_path/ecore-ipc-1",
++    "$deps_include_path/ecore-x-1",
++    "$deps_include_path/ector-1",
++    "$deps_include_path/ector-1/cairo",
++    "$deps_include_path/ector-1/generic",
++    "$deps_include_path/ector-1/software",
++    "$deps_include_path/edje-1",
++    "$deps_include_path/eet-1",
++    "$deps_include_path/eet-cxx-1",
++    "$deps_include_path/eet-cxx-1/eet-cxx",
++    "$deps_include_path/eeze-1",
++    "$deps_include_path/efl-1",
++    "$deps_include_path/efl-1/interfaces",
++    "$deps_include_path/efl-cxx-1",
++    "$deps_include_path/efreet-1",
++    "$deps_include_path/eina-1",
++    "$deps_include_path/eina-1/eina",
++    "$deps_include_path/eina-cxx-1",
++    "$deps_include_path/eina-cxx-1/eina-cxx",
++    "$deps_include_path/eio-1",
++    "$deps_include_path/eio-cxx-1",
++    "$deps_include_path/eldbus-1",
++    "$deps_include_path/eldbus_cxx-1",
++    "$deps_include_path/elementary-1",
++    "$deps_include_path/elementary-cxx-1",
++    "$deps_include_path/elocation-1",
++    "$deps_include_path/elua-1",
++    "$deps_include_path/embryo-1",
++    "$deps_include_path/emile-1",
++    "$deps_include_path/emotion-1",
++    "$deps_include_path/eo-1",
++    "$deps_include_path/eo-cxx-1",
++    "$deps_include_path/eolian-1",
++    "$deps_include_path/eolian-cxx-1",
++    "$deps_include_path/eolian-cxx-1/grammar",
++    "$deps_include_path/ethumb-1",
++    "$deps_include_path/ethumb-client-1",
++    "$deps_include_path/evas-1",
++    "$deps_include_path/evas-1/canvas",
++    "$deps_include_path/evas-cxx-1",
++    "$deps_include_path/evas-cxx-1/canvas",
++    "$deps_include_path/gio-unix-2.0",
++    "$deps_include_path/gio-unix-2.0/gio",
++    "$deps_include_path/glib-2.0",
++    "$deps_include_path/glib-2.0/gio",
++    "$deps_include_path/glib-2.0/glib",
++    "$deps_include_path/glib-2.0/glib/deprecated",
++    "$deps_include_path/glib-2.0/gobject",
++    "$deps_include_path/gstreamer-1.0",
++    "$deps_include_path/gstreamer-1.0/gst",
++    "$deps_include_path/gstreamer-1.0/gst/allocators",
++    "$deps_include_path/gstreamer-1.0/gst/app",
++    "$deps_include_path/gstreamer-1.0/gst/audio",
++    "$deps_include_path/gstreamer-1.0/gst/base",
++    "$deps_include_path/gstreamer-1.0/gst/basecamerabinsrc",
++    "$deps_include_path/gstreamer-1.0/gst/check",
++    "$deps_include_path/gstreamer-1.0/gst/codecparsers",
++    "$deps_include_path/gstreamer-1.0/gst/controller",
++    "$deps_include_path/gstreamer-1.0/gst/egl",
++    "$deps_include_path/gstreamer-1.0/gst/fft",
++    "$deps_include_path/gstreamer-1.0/gst/insertbin",
++    "$deps_include_path/gstreamer-1.0/gst/interfaces",
++    "$deps_include_path/gstreamer-1.0/gst/mpegts",
++    "$deps_include_path/gstreamer-1.0/gst/net",
++    "$deps_include_path/gstreamer-1.0/gst/pbutils",
++    "$deps_include_path/gstreamer-1.0/gst/riff",
++    "$deps_include_path/gstreamer-1.0/gst/rtp",
++    "$deps_include_path/gstreamer-1.0/gst/rtsp",
++    "$deps_include_path/gstreamer-1.0/gst/sdp",
++    "$deps_include_path/gstreamer-1.0/gst/tag",
++    "$deps_include_path/gstreamer-1.0/gst/uridownloader",
++    "$deps_include_path/gstreamer-1.0/gst/video",
++    "$deps_include_path/libsoup-2.4",
++    "$deps_include_path/libsoup-2.4/libsoup",
++    "$deps_include_path/orc-0.4",
++    "$deps_include_path/orc-0.4/orc",
++    "$deps_include_path/orc-0.4/orc-test",
++  ]
++
++  if (is_tizen) {
++    include_dirs += [
++      "$deps_include_path/appfw",
++      "$deps_include_path/system",
++
++      "$deps_lib_path/dbus-1.0/include",
++      "$deps_lib_path/gstreamer-1.0/include",
++      "$deps_lib_path/gstreamer-1.0/include/gst",
++    ]
++  }
++}
+diff --git a/build/config/linux/pkg_config.gni b/build/config/linux/pkg_config.gni
+new file mode 100644
+index 0000000..19f6d5c
+--- /dev/null
++++ b/build/config/linux/pkg_config.gni
+@@ -0,0 +1,33 @@
++# Copyright (c) 2015 Samsung Electronics. 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/linux/pkg_config.gni")
++
++template("tizen_pkg_config") {
++  assert(defined(invoker.packages),
++         "Variable |packages| must be defined to be a list in pkg_config.")
++
++  if (invoker.packages == []) {
++    config(target_name) {
++    }
++  } else {
++    pkg_config(target_name) {
++      packages = invoker.packages
++
++      if (defined(invoker.extra_args)) {
++        extra_args = invoker.extra_args
++      }
++
++      if (defined(invoker.ignore_libs)) {
++        ignore_libs = invoker.ignore_libs
++      }
++
++      forward_variables_from(invoker,
++                             [
++                               "defines",
++                               "visibility",
++                             ])
++    }
++  }
++}
+diff --git a/build/config/tizen/BUILD.gn b/build/config/tizen/BUILD.gn
+new file mode 100644
+index 0000000..4c1430a
+--- /dev/null
++++ b/build/config/tizen/BUILD.gn
+@@ -0,0 +1,156 @@
++# Copyright 2014 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/sanitizers/sanitizers.gni")
++import("//build/config/sysroot.gni")
++
++assert(is_tizen)
++
++# This is included by reference in the //build/config/compiler config that
++# is applied to all targets. It is here to separate out the logic that is
++# Android-only.
++config("compiler") {
++  cflags = [
++    "-ffunction-sections",
++    "-fno-short-enums",
++  ]
++  ldflags = []
++
++  if (!is_clang) {
++    # Clang doesn't support these flags.
++    cflags += [ "-finline-limit=64" ]
++  }
++  if (is_clang) {
++    rebased_android_toolchain_root =
++        rebase_path(android_toolchain_root, root_build_dir)
++    assert(rebased_android_toolchain_root != "")  # Mark as used.
++    if (current_cpu == "mipsel") {
++      cflags += [
++        # TODO(gordanac) Enable integrated-as.
++        "-no-integrated-as",
++        "-B${rebased_android_toolchain_root}/bin",  # Else /usr/bin/as gets picked up.
++      ]
++    }
++  }
++
++  # Use gold for Android for most CPU architectures.
++  if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") {
++    if (linux_use_gold_flags == true) {
++      cflags += [ "-Wno-deprecated" ]
++      ldflags += [ "-fuse-ld=gold" ]
++    }
++    if (is_clang) {
++      # Let clang find the ld.gold in the NDK.
++      ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
++    }
++
++    # Use -mstackrealign due to a bug on ia32 Jelly Bean.
++    # See crbug.com/521527
++    if (current_cpu == "x86") {
++      cflags += [ "-mstackrealign" ]
++    }
++  }
++
++  if (current_cpu == "mipsel" && is_clang) {
++    # Let clang find the ld.bfd in the NDK.
++    ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
++  }
++
++  ldflags += [
++    #"-Wl,--build-id=sha1",
++    #"-Wl,--no-undefined",
++
++    # Don't allow visible symbols from libgcc or libc++ to be
++    # re-exported.
++    "-Wl,--exclude-libs=libgcc.a",
++    "-Wl,--exclude-libs=libc++_static.a",
++
++    # Don't allow visible symbols from libraries that contain
++    # assembly code with symbols that aren't hidden properly.
++    # http://crbug.com/448386
++    "-Wl,--exclude-libs=libvpx_assembly_arm.a",
++  ]
++
++  if (is_clang) {
++    if (current_cpu == "arm") {
++      abi_target = "arm-linux-androideabi"
++    } else if (current_cpu == "x86") {
++      abi_target = "i686-linux-androideabi"
++    } else if (current_cpu == "arm64") {
++      # Place holder for arm64 support, not tested.
++      # TODO: Enable clang support for Android Arm64. http://crbug.com/539781
++      abi_target = "aarch64-linux-androideabi"
++    } else if (current_cpu == "x64") {
++      # Place holder for x64 support, not tested.
++      # TODO: Enable clang support for Android x64. http://crbug.com/539781
++      abi_target = "x86_64-linux-androideabi"
++    } else if (current_cpu == "mipsel") {
++      abi_target = "mipsel-linux-android"
++    } else if (current_cpu == "mips64el") {
++      # Place holder for mips64 support, not tested.
++      abi_target = "mips64el-linux-androideabi"
++    } else {
++      assert(false, "Architecture not supported")
++    }
++    cflags += [
++      "-target",
++      abi_target,
++    ]
++    ldflags += [
++      "-target",
++      abi_target,
++    ]
++  }
++
++  # Assign any flags set for the C compiler to asmflags so that they are sent
++  # to the assembler.
++  asmflags = cflags
++}
++
++config("executable_config") {
++  cflags = [ "-fPIE" ]
++  asmflags = [ "-fPIE" ]
++  ldflags = [ "-pie" ]
++}
++
++config("hide_native_jni_exports") {
++  ldflags = [ "-Wl,--version-script=" +
++              rebase_path("//build/android/android_no_jni_exports.lst") ]
++}
++
++# Instrumentation -------------------------------------------------------------
++#
++# The BUILDCONFIG file sets the "default_cygprofile_instrumentation" config on
++# targets by default. You can override whether the cygprofile instrumentation is
++# used on a per-target basis:
++#
++# configs -= [ "//build/config/android:default_cygprofile_instrumentation" ]
++# configs += [ "//build/config/android:no_cygprofile_instrumentation" ]
++
++#config("default_cygprofile_instrumentation") {
++#  if (use_order_profiling) {
++#    configs = [ ":cygprofile_instrumentation" ]
++#  } else {
++#    configs = [ ":no_cygprofile_instrumentation" ]
++#  }
++#}
++
++config("cygprofile_instrumentation") {
++  defines = [ "CYGPROFILE_INSTRUMENTATION=1" ]
++  cflags = [ "-finstrument-functions" ]
++
++  if (!is_clang) {
++    cflags += [
++      # Allow mmx intrinsics to inline, so that the compiler can expand the intrinsics.
++      "-finstrument-functions-exclude-file-list=mmintrin.h",
++
++      # Avoid errors with current NDK:
++      # "third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/include/arm_neon.h:3426:3: error: argument must be a constant"
++      "-finstrument-functions-exclude-file-list=arm_neon.h",
++    ]
++  }
++}
++
++config("no_cygprofile_instrumentation") {
++}
+diff --git a/build/config/tizen_features.gni b/build/config/tizen_features.gni
+new file mode 100644
+index 0000000..702cd56
+--- /dev/null
++++ b/build/config/tizen_features.gni
+@@ -0,0 +1,93 @@
++# Copyright (c) 2015 Samsung Electronics. 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/ui.gni")
++
++declare_args() {
++  gcc_version = 49
++
++  use_wayland = false
++
++  linux_use_gold_flags = false   # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++  disable_fatal_linker_warnings = true  # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++  python_ver = "2.5"  # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++  depth = ""  # no use of this variable, if removing then revome from gn_chromiumefl.sh also
++
++  use_cairo = false
++  use_pango = false
++
++  tizen_multimedia_support = false
++  # declared from BUILDCONFIG.gn
++  #is_clang = false
++  xwalk_link_against_chromium_ewk = false
++
++  tizen_mobile = false
++  building_for_tizen_tv = false
++  building_for_tizen_mobile = false
++  if (is_tizen && tizen_multimedia_support) {
++    tizen_multimedia_eme_support = true
++  } else {
++    tizen_multimedia_eme_support = false
++  }
++
++  exe_dir = "/usr/lib/chromium-efl/"
++  edje_dir = "/usr/share/chromium-efl/themes/"
++  data_dir = "/usr/share/chromium-efl/"
++  locale_dir = "/usr/share/chromium-efl/locale/"
++
++  prebuilt_ld_gold_dir = ""
++  chromium_efl_tizen_version = 24
++  tizen_tbm_support = false
++  building_for_tizen = false
++}
++
++werror = false
++
++# This file should contain gn code that is supposed to be common
++# for all build targets we have in chromium-ewk. Things specific only to one
++# component should go to appropriate gni file included below.
++
++use_gstreamer_fft = false
++
++use_aura = false
++
++# Moved it in //tizen_src/build/config/BUILDCONFIG.gn
++#use_efl = true
++# Declared from the //build/config/ui.gni
++#use_default_render_theme = true
++
++ewk_bringup = true
++wayland_bringup = use_wayland
++
++building_strategy = "ewk" # 'ewk', 'libs' and 'crosswalk-bin'
++
++compile_suid_client = true
++compile_credentials = true
++# Declared from the //build/config/features.gni
++#enable_web_speech = false
++# Declare from //third_party/webrtc/build/webrtc.gni
++#rtc_use_h264 = false # override value in third_party/webrtc/build/common.gypi
++
++edje_compiler = "edje_cc"
++
++grit_additional_defines = "-Duse_aura"
++
++if (use_ozone) {
++  # Declared from the //build/config/ui.gni
++  #use_glib = true
++  external_ozone_platforms = [ "efl" ]
++}
++
++if (xwalk_link_against_chromium_ewk) {
++  import("//tizen_src/ewk/efl_integration/link_xwalk_against_chromium_efl.gni")
++}
++
++is_official_build = false
++
++treat_warnings_as_errors=werror
++
++use_x11=false
+diff --git a/build/gbs.conf b/build/gbs.conf
+index fbeb934..c90e0be 100755
+--- a/build/gbs.conf
++++ b/build/gbs.conf
+@@ -115,7 +115,7 @@ url = https://api.tizen.org
+ [profile.tztv_v3.0_arm-wayland]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm, repo.tztv_v3.0_arm-wayland
+-buildroot = ~/GBS-ROOT-3.0-TV-ARM-WAYLAND
++buildroot = ~/GBS-ROOT-3.0-TV-ARM-WAYLAND_M51
+ [repo.public_3.0_base_arm]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/
+@@ -164,7 +164,7 @@ url = http://download.tizen.org/snapshots/tizen/tv/latest/repos/emulator32-wayla
+ [profile.tzmb_v3.0_arm-wayland]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm, repo.tzmb_v3.0_arm-wayland
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM-WAYLAND
++buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM-WAYLAND_M51
+ [repo.public_3.0_base_arm]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/
+@@ -198,7 +198,7 @@ passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ==
+ [profile.tzmb_v3.0_arm64-wayland]
+ obs = obs.tizen_v3.0
+ repos = repo.public_3.0_base_arm64, repo.tzmb_v3.0_arm64-wayland
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM64-WAYLAND
++buildroot = ~/GBS-ROOT-3.0-MOBILE-ARM64-WAYLAND_M51
+ [repo.public_3.0_base_arm64]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm64/packages/
+@@ -247,7 +247,7 @@ url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/emulator32-w
+ [profile.tzmb_v3.0_TM1]
+ obs = obs.tizen_v3.0
+ repos =  repo.public_3.0_base_arm, repo.tzmb_v3.0_TM1
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1
++buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1_M51
+ [repo.public_3.0_base_arm]
+ url = http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/
+@@ -262,7 +262,7 @@ url = http://download.tizen.org/snapshots/tizen/mobile/latest/repos/target-TM1/p
+ [profile.tzmb_v3.0_TM1_mirror]
+ obs = obs.tizen_v3.0
+ repos =  repo.public_3.0_base_arm_mirror, repo.tzmb_v3.0_TM1_mirror
+-buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1
++buildroot = ~/GBS-ROOT-3.0-MOBILE-TM1-M53-GN
+ [repo.public_3.0_base_arm_mirror]
+ url = http://165.213.149.200/download/public_mirror/tizen/base/latest/repos/arm/packages/
+diff --git a/build/gn_chromiumefl b/build/gn_chromiumefl
+new file mode 100755
+index 0000000..52d6101
+--- /dev/null
++++ b/build/gn_chromiumefl
+@@ -0,0 +1,164 @@
++#!/usr/bin/env python
++
++import argparse
++import glob
++import os
++import shlex
++import subprocess
++import sys
++
++top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
++if '--xwalk' in sys.argv:
++  xwalk_dir = os.path.join(top_dir, '..', 'xwalk')
++  sys.argv.remove('--xwalk')
++else:
++  xwalk_dir = None
++chrome_src = os.environ.get('CHROME_SRC')
++if chrome_src:
++  chrome_src = os.path.abspath(chrome_src)
++if not chrome_src or not os.path.isdir(chrome_src):
++  chrome_src = os.path.join(top_dir, '..')
++  print 'CHROME_SRC not set, falling back to ' + chrome_src
++
++script_dir = os.path.abspath(os.path.join(chrome_src, 'build'))
++if not os.path.isdir(script_dir):
++  print script_dir + " is not a valid directory"
++  sys.exit(1)
++
++sys.path.insert(0, script_dir)
++import gn_helpers
++
++
++# Add paths so that pymod_do_main(...) can import files.
++sys.path.insert(1, os.path.join(chrome_src, 'tools', 'generate_shim_headers'))
++sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
++
++# Remove the above and keep the line below once we require a newer specific
++# Chromium revision.
++sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'WebKit',
++    'Source', 'build', 'scripts'))
++sys.path.insert(1, os.path.join(chrome_src, 'chrome', 'tools', 'build'))
++sys.path.insert(1, os.path.join(chrome_src, 'native_client', 'build'))
++
++def GetOutputDirectory():
++  """Returns the output directory that GN will use."""
++
++  # Handle command line generator flags.
++  parser = argparse.ArgumentParser()
++  parser.add_argument('-G', dest='genflags', default=[], action='append')
++  genflags = parser.parse_known_args()[0].genflags
++
++  # Handle generator flags from the environment.
++  genflags += shlex.split(os.environ.get('GN_GENERATOR_FLAGS', ''))
++
++  needle = 'output_dir='
++  for item in genflags:
++    if item.startswith(needle):
++      return item[len(needle):]
++
++  return 'out'
++
++
++if __name__ == '__main__':
++  arg = 0
++  args = []
++  for i in range(len(sys.argv)):
++    if arg > 0:
++      args[arg] += " " + sys.argv[i];
++      continue
++    if sys.argv[i] in ("--args="):
++      args.append(sys.argv[i])
++      arg=i
++    else:
++      args.append(sys.argv[i])
++
++  # On Mac we want to override CXX and CC that is provided with
++  # the Chromium GYP environment.
++  if sys.platform.startswith('darwin'):
++    os.environ['CXX'] = 'clang++'
++    os.environ['CC'] = 'clang'
++
++  #gyp_helper.apply_chromium_gyp_env()
++
++#  args.extend(['-I' + i for i in additional_include_files(args)])
++
++  # On Mac we want to build in x64 mode. And we want to use libc++.
++  # Even though we are not on linux, it seems we specifically have to disable linux_use_tcmalloc.
++  if sys.platform in ('darwin',):
++      args[arg] += " host_arch=\"x64\" use_libcpp=true linux_use_tcmalloc=false"
++
++  # There shouldn't be a circular dependency relationship between .gyp files,
++  # but in Chromium's .gyp files, on non-Mac platforms, circular relationships
++  # currently exist.  The check for circular dependencies is currently
++  # bypassed on other platforms, but is left enabled on the Mac, where a
++  # violation of the rule causes Xcode to misbehave badly.
++  # TODO(mark): Find and kill remaining circular dependencies, and remove this
++  # option.  http://crbug.com/35878.
++  # TODO(tc): Fix circular dependencies in ChromiumOS then add linux2 to the
++  # list.
++  #if sys.platform not in ('darwin',):
++  #  args[arg] += " no_circular_check=true"
++
++  # the top_level source directory is the first common ancestor of our module and the chromium source tree for the build to be sane.
++  # commonprefix works on a character basis, so it might return a phony common prefix (not the common parent directory we expect),
++  toplevel= os.path.commonprefix([top_dir, chrome_src])
++
++  if not os.path.exists(toplevel):
++    toplevel = os.path.join(toplevel, os.pardir)
++  #args[arg] += " toplevel-dir=\"" + toplevel + "\""
++  # Tweak the output location.
++  #args[arg] += "generator-output=\"" + os.path.abspath(GetOutputDirectory()) + "\""
++  #args[arg] += " Goutput_dir=\"" + os.path.abspath(GetOutputDirectory()) + "\""
++  #args[arg] += " check=true"
++
++  # gyp on gbs fails with multiprocessing.SemLock() not implemented
++  # disabling parallel gyp for gbs
++  gbs_build = os.environ.get('BUILDING_WITH_GBS')
++  #if gbs_build:
++    #args[arg] += " no-parallel=true"
++
++  os.environ["CHROMIUM_BUILDTOOLS_PATH"]=os.path.join(chrome_src, "buildtools")
++
++  #notifications -> enable_notifications in build/config/features.gni
++  #args[arg] += " ewk_bringup=false xwalk_link_against_chromium_ewk=false notifications=false"
++  args[arg] += " xwalk_link_against_chromium_ewk=false"
++
++  args[arg] += " gcc_version=49"  # It should be in condition for arm target
++
++  args.append("--defines=USE_EFL")
++  args.append("-v")
++
++  buildtools_path = os.environ.get('CHROMIUM_BUILDTOOLS_PATH')
++  host_arch = os.environ.get('HOST_ARCH')
++  if not buildtools_path:
++    print "build tool path is empty"
++    sys.exit(1)
++  else:
++    if sys.platform.startswith(('cygwin', 'win')):
++      subdir = 'win'
++    elif sys.platform == 'darwin':
++      subdir = 'mac'
++    elif host_arch.startswith('arm'):
++      buildtools_path = os.path.join(buildtools_path, "../tizen_src/buildtools/")
++      subdir = 'arm'
++    elif sys.platform.startswith('linux'):
++        subdir = 'linux64'
++    else:
++      raise Error('Unknown platform: ' + sys.platform)
++
++    bin_path = os.path.join(buildtools_path, subdir)
++
++    exeSuffix = ''
++    if sys.platform.startswith(('cygwin', 'win')):
++      exeSuffix = '.exe'
++    elif host_arch.startswith('arm'):
++      exeSuffix = '.arm'
++
++    gn_path = os.path.join(bin_path, 'gn' + exeSuffix)
++    if not os.path.exists(gn_path):
++      print 'Could not find gn executable at: %s' % gn_path
++      sys.exit(2)
++    else:
++      print 'Updating projects from gn files...'
++      sys.exit(subprocess.call([gn_path] + args[1:]))
++
+diff --git a/build/gn_chromiumefl.sh b/build/gn_chromiumefl.sh
+new file mode 100755
+index 0000000..2e9344f
+--- /dev/null
++++ b/build/gn_chromiumefl.sh
+@@ -0,0 +1,310 @@
++#!/bin/bash
++
++source $(dirname $0)/common.sh
++trap 'error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
++host_arch=$(getHostArch)
++export HOST_ARCH=$host_arch
++
++supported_targets=("mobile" "tv" "desktop")
++
++if [ -z "$GN_GENERATOR_OUTPUT" ]; then
++  GN_GENERATOR_OUTPUT="out.${host_arch}"
++fi
++
++echo ${host_arch}
++echo $GN_GENERATOR_OUTPUT
++
++if [ -z "$GN_GENERATOR_FLAG" ]; then
++  export GN_GENERATOR_FLAG=$GN_GENERATOR_OUTPUT
++fi
++
++EXTRA_GN_ARGS="$@"
++
++# __GN_CHROMIUMEFL_TARGET is defined when we are called from build_desktop.sh.
++# Otherwise we are called by gbs whch already passes the correct building_for_* flag.
++if [ "$__GN_CHROMIUMEFL_TARGET" == "desktop" ]; then
++  target=desktop
++fi
++
++while [[ $# > 0 ]]; do
++  case "$1" in
++    building_for_tizen_*=true)
++      buildType="gbs"
++      target=$(echo $1 | sed -e 's/building_for_tizen_\(.*\)=true/\1/')
++      target_arch="arm"
++      ;;
++    chromium_efl_tizen_version=*)
++      tizen_version=$(echo $1 | sed -e 's#chromium_efl_tizen_version\=\([0-9.]*\)#\1#')
++      ;;
++    tizen_emulator_support=1)
++      tizen_emulator_support=1
++      ;;
++    #use_wayland=true)
++    #  use_wayland=true
++    #  ;;
++    --xwalk)
++      building_xwalk=1
++      ;;
++    building_crosswalk_bin=*)
++      building_xwalk_for_development=1
++      ;;
++  esac
++  shift;
++done
++
++findElementInArray "$target" "${supported_targets[@]}"
++if [[ $? == 1 ]]; then
++  echo "Unsupported target: $target"
++  exit 1
++fi
++
++if [ "$__GN_CHROMIUMEFL_TARGET" == "crosscompile" ]; then
++  buildType=crosscompile
++  EXTRA_GN_ARGS+=" edje_compiler=${TOPDIR}/out.${host_arch}/Dependencies/Root/bin/edje_cc"
++fi
++
++ORIGINAL_GN_DEFINES="$GN_DEFINES"
++export GN_DEFINES=$(echo "$GN_DEFINES" | sed -e 's/component\s*=\s*shared_library//g')
++if [ "$ORIGINAL_GN_DEFINES" != "$GN_DEFINES" ]; then
++    echo "WARNING: component build is not supported."
++    echo "Removing component=shared_library from GN_DEFINES."
++fi
++
++COMMON_GN_PARAMETERS="
++                      use_libjpeg_turbo=true
++                      proprietary_codecs=true
++                      use_alsa=false
++                      use_aura=false
++                      use_gconf=false
++                      use_kerberos=false
++                      use_ozone=true
++                      ozone_auto_platforms=false
++                      ozone_platform_wayland=false
++                      is_desktop_linux=false
++                      use_pango=false
++                      use_cairo=false
++                      enable_plugins=true
++                      enable_extensions=true
++                      use_cups=false
++                      use_allocator=\"none\"
++                      disable_fatal_linker_warnings=true
++                      depth=\"${TOPDIR}\"
++                      use_libpci=false
++                      "
++                      # Moved it in //tizen_src/build/config/BUILDCONFIG.gn
++                      # use_efl=true
++                      # declared also from build config
++                      # is_desktop_linux=false
++                      # declared also from //build/config/features.gni
++                      # proprietary_codecs=true
++                      # use_gconf=false
++                      # enable_plugins=true
++
++if [ "$building_xwalk" == "1" ] && [ "$building_xwalk_for_development" != "1" ]; then
++  COMMON_GN_PARAMETERS+="
++                         xwalk_link_against_chromium_ewk=true
++                         "
++fi
++
++add_desktop_flags() {
++  clang="true"
++  if [ "$USECLANG" == "0" ]; then
++    clang="false"
++  fi
++  ADDITIONAL_GN_PARAMETERS+="building_for_tizen=false
++                              building_for_tizen_mobile=false
++                              building_for_tizen_tv=false
++                              clang=${clang}
++                              werror=false
++                              use_sysroot=false
++                              use_wayland=false
++                              target_os="\"linux\""
++                              target_cpu=\"${host_arch}\"
++                             "
++}
++
++add_arm_flags() {
++  ADDITIONAL_GN_PARAMETERS+="armv7=true
++                              arm_thumb=true
++                              arm_use_neon=true
++                             "
++}
++
++add_tizen_flags() {
++  ADDITIONAL_GN_PARAMETERS+="building_for_tizen=true
++                              python_ver=\"$(getPythonVersion)\"
++                              enable_basic_printing=true
++                              enable_print_preview=true
++                              is_clang=false
++                              linux_use_bundled_binutils=false
++                              enable_nacl=false
++                              tizen_multimedia_eme_support=false
++                              target_os="\"tizen\""
++                             "
++                              # We do not need it
++                              # tizen=true
++                              # not used any place
++                              # linux_use_bundled_gold=false
++                              # declared also from //build/config/features.gni
++                              #enable_basic_printing=true
++                              #enable_print_preview=true
++                              #It is defined from //build/toolchain/gcc_toolchain.gni
++                              #is_clang=false
++
++  # TODO(youngsoo): Once binutils-gold issue on tizen v3.0 ARM 64bit is fixed,
++  #                 make the latest tizen version unconditional.
++  if [ "$tizen_version" == "30" ] && [ "$host_arch" == "arm" ]; then
++    # [M48_2564] Temporary disabling the flag for switching to new chromium
++    #            FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
++    ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=true
++                              "
++                                #prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
++                               #"
++  elif [ "$tizen_version" == "24" -a "$target" == "tv" ]; then
++    ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
++                                prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild/tizen_v2.4_tv\"
++                               "
++  else
++    ADDITIONAL_GN_PARAMETERS+="linux_use_gold_flags=false
++                                prebuilt_ld_gold_dir=\"${TOPDIR}/tizen_src/build/prebuild\"
++                               "
++  fi
++
++  if [ "$tizen_version" == "30" ]; then
++    # [M49_2623] Temporary disabling the flag.
++    #            FIXME: http://165.213.149.170/jira/browse/TWF-610
++    ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
++                                tizen_tbm_support=false
++                               "
++  else
++    ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false
++                                werror=false
++                               "
++  fi
++
++  # use_wayland come from spec file and based on that wayland_bringup sets in tizen_features.gni
++  #add_wayland_flags
++}
++
++add_wayland_flags() {
++  if [ "$use_wayland" == "true" ]; then
++    ADDITIONAL_GN_PARAMETERS+="use_wayland=true
++                                wayland_bringup=true
++                               "
++  else
++    ADDITIONAL_GN_PARAMETERS+="use_wayland=false
++                                wayland_bringup=false
++                               "
++  fi
++}
++
++add_gbs_flags() {
++  # target_arch changed to target_cpu but not changed because it seems that
++  # it is used for gbs and added target_cpu also.
++  ADDITIONAL_GN_PARAMETERS+="target_cpu=\"${host_arch}\"
++                            "
++                            #  sysroot=""
++                            #"
++                              #no-parallel=true
++                             #"
++  # TODO(b.kelemen): ideally crosscompile should also support system libs.
++  # Unfortunately the gbs root doesn't contain everything chromium needs.
++#  SYSTEM_DEPS="-Duse_system_expat=true
++#               -Duse_system_libjpeg=false
++#               -Duse_system_libpng=true
++#               -Duse_system_libusb=true
++#               -Duse_system_libxml=true
++#               -Duse_system_libxslt=true
++#               -Duse_system_re2=true
++#               -Duse_system_zlib=true
++#              "
++  SYSTEM_DEPS="" #"--system-libraries
++               #libxml
++              #"
++
++  # [M50_2661] Temporary using the icu of internal chformium instead of system.
++  #            The icu of system doesn't support utrie2.h
++  #            FIXME: http://suprem.sec.samsung.net/jira/browse/TWF-967
++#  SYSTEM_DEPS+="-Duse_system_icu=false
++#               "
++
++  if [ "$target" == "mobile" ]; then
++#    SYSTEM_DEPS+="-Duse_system_bzip2=true
++#                  -Duse_system_libexif=true
++#                  -Duse_system_nspr=true
++#                 "
++    SYSTEM_DEPS+="
++                 "
++  fi
++}
++
++add_cross_flags() {
++  # target_arch changed to target_cpu but not changed because it seems that
++  # it is used for gbs and added target_cpu also.
++  ADDITIONAL_GN_PARAMETERS+="target_cpu=\"arm\"
++                             sysroot=\"$SYSROOTDIR\"
++                             arm_tune=\"arm7\"
++                             "
++
++  # Compiling yasm with crosscompile + icecc leads to some strange errors (one file is built for target instead of host).
++  # Yasm is an assembler used only by the build (not at runtime) and it is generally available in Linux distros so let's just
++  # use it from the system.
++  ADDITIONAL_GN_PARAMETERS+="use_system_yasm=true"
++}
++
++if [ "$target" == "desktop" ]; then
++  add_desktop_flags
++else
++  add_tizen_flags
++  if [ "$target" == "mobile" -o "$target" == "tv" ]; then
++    if [ "$target_arch" == "arm" ]; then
++      add_arm_flags
++    fi
++    if [ "$buildType" == "gbs" ]; then
++      add_gbs_flags
++    elif [ "$buildType" == "crosscompile" ]; then
++      add_cross_flags
++    fi
++  fi
++  if [ "$SYSTEM_DEPS" != "" ]; then
++    #replacing original files with correct ones according to $SYSTEM_DEPS
++    $TOPDIR/build/linux/unbundle/replace_gn_files.py $SYSTEM_DEPS
++  fi
++fi
++
++_GN_ARGS="
++    gen
++    $GN_GENERATOR_FLAG
++    --root=${TOPDIR}
++    --dotfile=${TOPDIR}/tizen_src/.gn
++    --args=
++    $COMMON_GN_PARAMETERS
++    $SYSTEM_DEPS
++    $ADDITIONAL_GN_PARAMETERS
++    $EXTRA_GN_ARGS
++    "
++printf "GN_ARGUMENTS:\n"
++for arg in $_GN_ARGS; do
++  printf "    * ${arg##-D}\n"
++done
++
++if [ -f "${TOPDIR}/BUILD_.gn" ]; then
++  rm "${TOPDIR}/BUILD.gn"
++else
++  mv "${TOPDIR}/BUILD.gn" "${TOPDIR}/BUILD_.gn"
++fi
++ln -s "${TOPDIR}/tizen_src/BUILD.gn" "${TOPDIR}/BUILD.gn"
++
++${TOPDIR}/tizen_src/build/gn_chromiumefl \
++    ${_GN_ARGS}
++
++ret=$?
++
++mv ${TOPDIR}/BUILD_.gn ${TOPDIR}/BUILD.gn
++
++if [ "$SYSTEM_DEPS" != "" ]; then
++  # Restore gn files to their original states not to mess up the tree permanently.
++  $TOPDIR/build/linux/unbundle/replace_gn_files.py --undo $SYSTEM_DEPS
++fi
++
++exit $ret
+diff --git a/build/jhbuild/jhbuildrc b/build/jhbuild/jhbuildrc
+index 6ae610c..8a90c1b 100644
+--- a/build/jhbuild/jhbuildrc
++++ b/build/jhbuild/jhbuildrc
+@@ -30,7 +30,10 @@ moduleset = [ __moduleset_file_uri, ]
+ __extra_modules = os.environ.get("WEBKIT_EXTRA_MODULES", "").split(",")
+ modules = [ 'chromeefl-dependencies', ]
+-outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
++if os.environ['USE_GN']:
++  outdir = os.environ.get('GN_GENERATOR_OUTPUT', 'out')
++else:
++  outdir = os.environ.get('GYP_GENERATOR_OUTPUT', 'out')
+ checkoutroot = os.path.abspath(os.path.join(outdir,'Dependencies', 'Source'))
+ prefix = os.path.abspath(os.path.join(outdir,'Dependencies', 'Root'))
+diff --git a/build/patches/gn_build_is_tizen_on_ffmpeg.diff b/build/patches/gn_build_is_tizen_on_ffmpeg.diff
+new file mode 100644
+index 0000000..342adbf
+--- /dev/null
++++ b/build/patches/gn_build_is_tizen_on_ffmpeg.diff
+@@ -0,0 +1,100 @@
++diff --git a/third_party/ffmpeg/ffmpeg_generated.gni b/third_party/ffmpeg/ffmpeg_generated.gni
++index e952679..d0208c7 100644
++--- a/third_party/ffmpeg/ffmpeg_generated.gni
+++++ b/third_party/ffmpeg/ffmpeg_generated.gni
++@@ -12,7 +12,7 @@ ffmpeg_c_sources = []
++ ffmpeg_gas_sources = []
++ ffmpeg_yasm_sources = []
++ 
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
++   ffmpeg_c_sources += [
++     "libavcodec/allcodecs.c",
++     "libavcodec/autorename_libavcodec_utils.c",
++@@ -146,7 +146,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
++   ]
++ }
++ 
++-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium")) {
+++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromiumOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chromium") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chromium") || is_tizen) {
++   ffmpeg_c_sources += [
++     "libavcodec/h264pred.c",
++     "libavcodec/hpeldsp.c",
++@@ -167,7 +167,7 @@ if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "C
++   ]
++ }
++ 
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_mac && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && current_cpu == "x86" && ffmpeg_branding == "Chrome") || is_tizen) {
++   ffmpeg_c_sources += [
++     "libavcodec/aac_ac3_parser.c",
++     "libavcodec/aac_parser.c",
++@@ -255,7 +255,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++   ]
++ }
++ 
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
++   ffmpeg_c_sources += [
++     "libavcodec/arm/fft_fixed_init_arm.c",
++     "libavcodec/arm/fft_init_arm.c",
++@@ -282,7 +282,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++   ]
++ }
++ 
++-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromiumOS") || is_tizen) {
++   ffmpeg_c_sources += [
++     "libavcodec/arm/h264pred_init_arm.c",
++     "libavcodec/arm/hpeldsp_init_arm.c",
++@@ -302,7 +302,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++   ]
++ }
++ 
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
++   ffmpeg_c_sources += [
++     "libavutil/arm/float_dsp_init_neon.c",
++   ]
++@@ -361,7 +361,7 @@ if ((is_android && current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_l
++   ]
++ }
++ 
++-if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS")) {
+++if ((is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || is_tizen) {
++   ffmpeg_c_sources += [
++     "libavcodec/arm/aacpsdsp_init_arm.c",
++     "libavcodec/arm/mpegaudiodsp_init_arm.c",
++@@ -483,7 +483,7 @@ if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chr
++   ]
++ }
++ 
++-if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS")) {
+++if ((is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chromium") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromiumOS") || (is_tizen && arm_use_neon)) {
++   ffmpeg_c_sources += [
++     "libavcodec/arm/hpeldsp_init_neon.c",
++     "libavcodec/arm/vp8dsp_init_neon.c",
++diff --git a/third_party/ffmpeg/ffmpeg_options.gni b/third_party/ffmpeg/ffmpeg_options.gni
++index 6bb719a..44735d6 100644
++--- a/third_party/ffmpeg/ffmpeg_options.gni
+++++ b/third_party/ffmpeg/ffmpeg_options.gni
++@@ -47,8 +47,10 @@ assert(ffmpeg_branding == "Chromium" ||
++ 
++ if (current_cpu == "x86") {
++   ffmpeg_arch = "ia32"
++-} else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) {
+++} else if ((current_cpu == "arm" || is_tizen) && arm_version >= 7 && arm_use_neon) {
++   ffmpeg_arch = "arm-neon"
+++} else if (is_tizen) {
+++  ffmpeg_arch = "arm"
++ } else {
++   ffmpeg_arch = current_cpu
++ }
++@@ -61,6 +63,6 @@ os_config = current_os
++ if ((is_linux || is_chromeos) && is_msan) {
++   os_config = "linux-noasm"
++   disable_ffmpeg_asm = true
++-} else if (is_chromeos) {
+++} else if (is_chromeos || is_tizen) {
++   os_config = "linux"
++ }
+diff --git a/build/toolchain/tizen/BUILD.gn b/build/toolchain/tizen/BUILD.gn
+new file mode 100644
+index 0000000..af68b41
+--- /dev/null
++++ b/build/toolchain/tizen/BUILD.gn
+@@ -0,0 +1,70 @@
++# Copyright 2013 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/sysroot.gni")  # Imports android/config.gni.
++import("//build/toolchain/gcc_toolchain.gni")
++
++template("tizen_gcc_toolchain") {
++  gcc_toolchain(target_name) {
++
++    is_clang = invoker.is_clang
++    if (is_clang) {
++      prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
++                           root_build_dir)
++      cc = "$prefix/clang"
++      cxx = "$prefix/clang++"
++    } else {
++      cc = "gcc"
++      cxx = "g++"
++    }
++    ar = cc + "-ar"
++    ld = cxx
++    readelf = "readelf"
++    nm = "nm"
++    #strip = "strip"
++
++    # Don't use .cr.so for loadable_modules since they are always loaded via
++    # absolute path.
++    loadable_module_extension = ".so"
++
++    toolchain_os = "tizen"
++    toolchain_cpu = invoker.toolchain_cpu
++    use_goma = false
++  }
++}
++
++template("tizen_gcc_toolchains_helper") {
++  tizen_gcc_toolchain(target_name) {
++    toolchain_cpu = invoker.toolchain_cpu
++  }
++
++  tizen_gcc_toolchain("clang_$target_name") {
++    toolchain_cpu = invoker.toolchain_cpu
++    is_clang = true
++  }
++}
++
++tizen_gcc_toolchains_helper("x86") {
++  toolchain_cpu = "x86"
++}
++
++tizen_gcc_toolchains_helper("arm") {
++  toolchain_cpu = "arm"
++}
++
++tizen_gcc_toolchains_helper("mipsel") {
++  toolchain_cpu = "mipsel"
++}
++
++tizen_gcc_toolchains_helper("x64") {
++  toolchain_cpu = "x86_64"
++}
++
++tizen_gcc_toolchains_helper("arm64") {
++  toolchain_cpu = "aarch64"
++}
++
++tizen_gcc_toolchains_helper("mips64el") {
++  toolchain_cpu = "mipsel64el"
++}
+diff --git a/buildtools/arm/gn.arm b/buildtools/arm/gn.arm
+new file mode 100755
+index 0000000..58ce3c5
+Binary files /dev/null and b/buildtools/arm/gn.arm differ
+diff --git a/chromium_impl/base/base_efl.gni b/chromium_impl/base/base_efl.gni
+new file mode 100644
+index 0000000..10ce612
+--- /dev/null
++++ b/chromium_impl/base/base_efl.gni
+@@ -0,0 +1,18 @@
++# Copyright (c) 2015 Samsung Electronics. 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/ui.gni")
++
++external_base_configs = [
++  "//tizen_src/build:ecore",
++  "//tizen_src/build:libecore",
++]
++external_base_sources = [
++  "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.cc",
++  "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.h",
++]
++
++if (use_glib) {
++  external_base_sources += [ "//base/message_loop/message_pump_glib.cc" ]
++}
+diff --git a/chromium_impl/chrome/chrome_tests_efl.gni b/chromium_impl/chrome/chrome_tests_efl.gni
+new file mode 100644
+index 0000000..d411852
+--- /dev/null
++++ b/chromium_impl/chrome/chrome_tests_efl.gni
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++# For //chrome/test/chromedriver:lib target
++# It seems that keycode_text_conversion_win.cc is not used in gn files so no need to exclude it.
++external_exclude_chrome_test_driver_sources = [] #[ "test/chromedriver/keycode_text_conversion_win.cc" ]
++if (use_wayland) {
++  #external_exclude_chrome_test_driver_sources += [ "test/chromedriver/keycode_text_conversion_x.cc" ]
++}
+diff --git a/chromium_impl/components/components.gni b/chromium_impl/components/components.gni
+new file mode 100644
+index 0000000..31b5917
+--- /dev/null
++++ b/chromium_impl/components/components.gni
+@@ -0,0 +1,9 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++declare_args() {
++  chromium_code = 1
++}
++
++js_dialog_efl_deps = [ "//tizen_src/chromium_impl/components/js_dialogs_efl" ]
+diff --git a/chromium_impl/components/js_dialogs_efl/BUILD.gn b/chromium_impl/components/js_dialogs_efl/BUILD.gn
+new file mode 100644
+index 0000000..21aa662
+--- /dev/null
++++ b/chromium_impl/components/js_dialogs_efl/BUILD.gn
+@@ -0,0 +1,23 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++static_library("js_dialogs_efl") {
++  configs += [
++    "//tizen_src/build:elementary",
++    "//tizen_src/build:libelementary",
++    "//tizen_src/build:efl-extension",
++    "//tizen_src/build:libefl-extension",
++  ]
++  deps = [
++    "//base",
++    "//skia",
++  ]
++  include_dirs = [ ".." ]
++  sources = [
++    "javascript_dialog_manager_efl.cc",
++    "javascript_dialog_manager_efl.h",
++    "javascript_modal_dialog_efl.cc",
++    "javascript_modal_dialog_efl.h",
++  ]
++}
+diff --git a/chromium_impl/content/BUILD.gn b/chromium_impl/content/BUILD.gn
+new file mode 100644
+index 0000000..58c8979
+--- /dev/null
++++ b/chromium_impl/content/BUILD.gn
+@@ -0,0 +1,24 @@
++# copyright (c) 2015 samsung electronics. all rights reserved.
++# use of this source code is governed by a bsd-style license that can be
++# found in the license file.
++
++static_library("android_content_detection") {
++  set_sources_assignment_filter([])
++  sources = [
++    "//content/renderer/android/renderer_date_time_picker.h",
++    "//content/renderer/android/renderer_date_time_picker.cc",
++    "//content/renderer/android/content_detector.h",
++    "//content/renderer/android/content_detector.cc",
++    "//content/renderer/android/email_detector.h",
++    "//content/renderer/android/email_detector.cc",
++    "//content/renderer/android/phone_number_detector.h",
++    "//content/renderer/android/phone_number_detector.cc",
++  ]
++
++  deps = [
++    "//third_party/libphonenumber:libphonenumber",
++    "//third_party/icu:icui18n",
++    "//third_party/blink/public:blink",
++    "//mojo/public/cpp/bindings:bindings",
++  ]
++}
+diff --git a/chromium_impl/content/browser/browser_efl.gni b/chromium_impl/content/browser/browser_efl.gni
+new file mode 100644
+index 0000000..c966874
+--- /dev/null
++++ b/chromium_impl/content/browser/browser_efl.gni
+@@ -0,0 +1,82 @@
++# Copyright (c) 2015 Samsung Electronics. 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/features.gni")
++
++external_content_browser_efl_sources = [
++  "//tizen_src/chromium_impl/content/browser/compositor/context_factory_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.h",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.h",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.h",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h",
++  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h",
++  "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.h",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.h",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.cc",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.h",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/native_web_keyboard_event_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.h",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.h",
++  "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h",
++  "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.h",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.h",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.cc",
++  "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.h",
++  "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_efl_delegate.h",
++  "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_view_efl_delegate.h",
++]
++
++external_content_browser_efl_sources += [
++  "//content/browser/renderer_host/ui_events_helper.cc",
++  "//content/browser/renderer_host/ui_events_helper.h",
++]
++
++if (building_for_tizen) {
++  external_content_browser_efl_sources += [
++    "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.cc",
++    "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h",
++    "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.cc",
++    "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.h",
++  ]
++}
++if (building_for_tizen_mobile) {
++  external_exclude_content_browser_efl_sources = [ "device_sensors/data_fetcher_shared_memory_default.cc" ]
++  external_content_browser_efl_sources += [
++    "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.cc",
++    "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.h",
++    "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_shared_memory_tizen.cc",
++  ]
++}
++if (tizen_multimedia_support) {
++  external_content_browser_efl_sources += [
++    "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.cc",
++    "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h",
++    "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc",
++    "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h",
++    "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.cc",
++    "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h",
++  ]
++}
++if (tizen_tbm_support) {
++  external_content_browser_efl_sources += [
++    "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.cc",
++    "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h",
++  ]
++}
+diff --git a/chromium_impl/content/common/BUILD.gn b/chromium_impl/content/common/BUILD.gn
+new file mode 100644
+index 0000000..da16d38
+--- /dev/null
++++ b/chromium_impl/content/common/BUILD.gn
+@@ -0,0 +1,36 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++config("content_common_efl") {
++  visibility = [ "//tizen_src/chromium_impl/content/common/common_efl.gni" ]
++
++  defines = [
++    "DATA_DIR=\"$data_dir\"",
++    "EXE_DIR=\"$exe_dir\"",
++  ]
++
++  if (building_for_tizen) {
++    defines += [
++      "EDJE_DIR=\"$edje_dir\"",
++      "LOCALE_DIR=\"$locale_dir\"",
++    ]
++  } else {
++    # TODO
++    # Release
++    # [TODO] This code should be removed.
++    outdir = "/home/ychul.kang/blink/src/ct-chromium-efl-dev-m56/src/out.x64"
++    defines += [
++      "EDJE_DIR=\"$outdir/Release/resources\"",
++      "LOCALE_DIR=\"$outdir/Release/locale\"",
++    ]
++    # Debug
++#    defines += [
++#      "EDJE_DIR=\"$outdir/Debug/resources\"",
++#      "LOCALE_DIR=\"$outdir/Debug/locale\"",
++#    ]
++  }
++}
++
+diff --git a/chromium_impl/content/common/common_efl.gni b/chromium_impl/content/common/common_efl.gni
+new file mode 100644
+index 0000000..21a7133
+--- /dev/null
++++ b/chromium_impl/content/common/common_efl.gni
+@@ -0,0 +1,57 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_content_common_efl_configs = [ "//tizen_src/chromium_impl/content/common:content_common_efl" ]
++
++external_exclude_content_common_efl_sources = []
++
++external_content_common_efl_sources = [
++  "//tizen_src/chromium_impl/content/common/content_client_export.cc",
++  "//tizen_src/chromium_impl/content/common/content_client_export.h",
++  "//tizen_src/chromium_impl/content/common/message_generator_efl.cc",
++  "//tizen_src/chromium_impl/content/common/message_generator_efl.h",
++  "//tizen_src/chromium_impl/content/common/paths_efl.h",
++  "//tizen_src/chromium_impl/content/common/paths_efl.cc",
++  "//tizen_src/chromium_impl/content/common/render_messages_efl.h",
++  "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.cc",
++  "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.h",
++  "//tizen_src/chromium_impl/content/common/wrt/wrt_url_parse.h",
++]
++
++if (building_for_tizen) {
++  external_content_common_efl_sources += [
++    "//tizen_src/chromium_impl/content/common/tts_messages_efl.h",
++    "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.cc",
++    "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.h",
++  ]
++}
++
++if (building_for_tizen && !ewk_bringup) {
++  external_content_common_efl_sources += [
++    "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl.cc",
++    "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl.cc",
++  ]
++
++  if (!wayland_bringup) {
++    external_content_common_efl_sources += [
++      "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.cc",
++      "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.h",
++      "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.cc",
++      "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.h",
++    ]
++  }
++}
++
++if (tizen_multimedia_support) {
++  external_content_common_efl_sources += [
++    "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_enums_efl.h",
++    "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_efl.h",
++    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h",
++    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc",
++    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h",
++    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc",
++  ]
++}
+diff --git a/chromium_impl/content/common/paths_efl.cc b/chromium_impl/content/common/paths_efl.cc
+index bbea3d7..5ccf641 100644
+--- a/chromium_impl/content/common/paths_efl.cc
++++ b/chromium_impl/content/common/paths_efl.cc
+@@ -15,7 +15,7 @@
+ #include "build/tizen_version.h"
+ #if defined(OS_TIZEN)
+-#include <app.h>
++#include <appfw/app.h>
+ #if TIZEN_VERSION_AT_LEAST(3,0,0)
+ #include <tzplatform_config.h>
+ #endif
+diff --git a/chromium_impl/content/content_efl.gni b/chromium_impl/content/content_efl.gni
+new file mode 100644
+index 0000000..7e95a98
+--- /dev/null
++++ b/chromium_impl/content/content_efl.gni
+@@ -0,0 +1,109 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++import("//tizen_src/chromium_impl/components/components.gni")
++
++external_content_common_configs = [
++  "//tizen_src/build:capi-appfw-application",
++  "//tizen_src/build:libcapi-appfw-application",
++  "//tizen_src/build:tizen_tzplatform_config",
++  "//tizen_src/build:libtizen_tzplatform_config",
++  "//tizen_src/build:tts",
++  "//tizen_src/build:libtts",
++]
++
++external_content_common_deps = [ "//build/linux:fontconfig" ]
++
++external_content_browser_configs = [
++  "//tizen_src/build:capi-media-player",
++  "//tizen_src/build:libcapi-media-player",
++  "//tizen_src/build:capi-media-tool",
++  "//tizen_src/build:libcapi-media-tool",
++  "//tizen_src/build:capi-system-sensor",
++  "//tizen_src/build:libcapi-system-sensor",
++  "//tizen_src/build:ecore",
++  "//tizen_src/build:libecore",
++  "//tizen_src/build:ecore-imf-evas",
++  "//tizen_src/build:libecore-imf-evas",
++  "//tizen_src/build:ecore-evas",
++  "//tizen_src/build:libecore-evas",
++  "//tizen_src/build:elementary",
++  "//tizen_src/build:libelementary",
++  "//tizen_src/build:efl-extension",
++  "//tizen_src/build:libefl-extension",
++]
++
++external_content_browser_extra_configs = [
++  "//tizen_src/build:tts",
++  "//tizen_src/build:libtts",
++]
++
++external_content_browser_deps = [
++  "//tizen_src/chromium_impl/efl:window-factory",
++  "//tizen_src/chromium_impl/edje_resources:edje_resources_efl",
++  "//ui/gl:gl",
++]
++
++external_content_renderer_extra_configs = [
++  "//tizen_src/build:tts",
++  "//tizen_src/build:libtts",
++]
++
++external_content_renderer_deps = [
++  "//tizen_src/chromium_impl/content:android_content_detection",
++]
++
++external_content_gpu_configs = [
++  "//tizen_src/build:evas",
++  "//tizen_src/build:libevas",
++]
++
++external_content_shell_configs = [
++  "//tizen_src/build:evas",
++  "//tizen_src/build:libevas",
++  "//tizen_src/build:ecore-evas",
++  "//tizen_src/build:libecore-evas",
++  "//tizen_src/build:elementary",
++  "//tizen_src/build:libelementary",
++]
++
++external_content_shell_deps = [
++  "//tizen_src/chromium_impl/efl:efl-init",
++]
++external_content_shell_deps += js_dialog_efl_deps
++
++if (building_for_tizen) {
++  external_content_browser_configs += [
++    "//tizen_src/build:vconf",
++    "//tizen_src/build:libvconf",
++  ]
++}
++
++if (!use_wayland) {
++    external_content_common_configs += [ "//tizen_src/build:ecore-x" ]
++    external_content_common_configs += [ "//tizen_src/build:libecore-x" ]
++    external_content_browser_configs += [ "//tizen_src/build:x11" ]
++    external_content_browser_configs += [ "//tizen_src/build:libx11" ]
++    external_content_browser_extra_configs += [ "//tizen_src/build:ecore-x" ]
++    external_content_browser_extra_configs += [ "//tizen_src/build:libecore-x" ]
++    external_content_shell_configs += [ "//tizen_src/build:ecore-x" ]
++    external_content_shell_configs += [ "//tizen_src/build:libecore-x" ]
++} else {
++   external_content_common_configs += [ "//tizen_src/build:ecore-wayland" ]
++   external_content_common_configs += [ "//tizen_src/build:libecore-wayland" ]
++   external_content_shell_configs += [ "//tizen_src/build:ecore-wayland" ]
++   external_content_shell_configs += [ "//tizen_src/build:libecore-wayland" ]
++}
++
++if (tizen_multimedia_support) {
++   external_content_browser_configs += [
++     "//tizen_src/build:capi-media-player",
++     "//tizen_src/build:libcapi-media-player",
++     "//tizen_src/build:capi-media-tool",
++     "//tizen_src/build:libcapi-media-tool",
++   ]
++   external_content_common_configs += ["//tizen_src/build:gstreamer"]
++   external_content_common_configs += ["//tizen_src/build:libgstreamer"]
++}
+diff --git a/chromium_impl/content/gpu/gpu_efl.gni b/chromium_impl/content/gpu/gpu_efl.gni
+new file mode 100644
+index 0000000..97a5235
+--- /dev/null
++++ b/chromium_impl/content/gpu/gpu_efl.gni
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_content_gpu_efl_sources = [
++  "//tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc",
++  "//tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc",
++  "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.h",
++  "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.cc",
++]
++
++external_exclude_content_gpu_efl_sources = [ "in_process_gpu_thread.cc" ]
+diff --git a/chromium_impl/content/renderer/renderer_efl.gni b/chromium_impl/content/renderer/renderer_efl.gni
+new file mode 100644
+index 0000000..ba3f05d
+--- /dev/null
++++ b/chromium_impl/content/renderer/renderer_efl.gni
+@@ -0,0 +1,34 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_exclude_content_renderer_efl_sources = []
++
++if (building_for_tizen) {
++  external_content_renderer_efl_sources = [
++    "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.cc",
++    "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h",
++  ]
++}
++
++if (tizen_multimedia_support) {
++  external_exclude_content_renderer_efl_sources = [
++    "//content/renderer/media/audio_decoder.cc",
++    "//content/renderer/media/audio_decoder.h",
++  ]
++
++  external_content_renderer_efl_sources += [
++    "media/efl/audio_decoder_efl.h",
++    "media/efl/media_source_delegate_efl.cc",
++    "media/efl/media_source_delegate_efl.h",
++    "media/efl/renderer_demuxer_efl.cc",
++    "media/efl/renderer_demuxer_efl.h",
++    "media/efl/renderer_media_player_manager_efl.cc",
++    "media/efl/renderer_media_player_manager_efl.h",
++    "media/efl/webmediaplayer_efl.cc",
++    "media/efl/webmediaplayer_efl.h",
++    "media/tizen/audio_decoder_capi.cc",
++  ]
++}
+diff --git a/chromium_impl/content/shell/shell_efl.gni b/chromium_impl/content/shell/shell_efl.gni
+new file mode 100644
+index 0000000..7e051e6
+--- /dev/null
++++ b/chromium_impl/content/shell/shell_efl.gni
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_content_shell_lib_efl_sources = [
++  "//tizen_src/chromium_impl/content/shell/browser/shell_efl.cc",
++  "//tizen_src/chromium_impl/content/shell/browser/shell_web_contents_view_delegate_efl.cc"
++]
++
++external_content_shell_efl_sources = [ "//tizen_src/chromium_impl/content/shell/browser/shell_main_efl.cc" ]
++
++external_exclude_content_shell_efl_sources = [ "app/shell_main.cc" ]
+diff --git a/chromium_impl/device/battery/battery_status_manager_tizen.cc b/chromium_impl/device/battery/battery_status_manager_tizen.cc
+index 23deb1d..615c4db 100644
+--- a/chromium_impl/device/battery/battery_status_manager_tizen.cc
++++ b/chromium_impl/device/battery/battery_status_manager_tizen.cc
+@@ -6,6 +6,7 @@
+ #include <vconf/vconf.h>
+ #include <system/device.h>
++#include <device/battery.h>
+ namespace device {
+@@ -220,6 +221,7 @@ int BatteryStatusManagerTizen::GetRemainingTimeUntilDischarged(
+ }
+ bool BatteryStatusManagerTizen::StartListeningBatteryChange() {
++#if !defined(EWK_BRINGUP)
+   if (vconf_notify_key_changed(
+           VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, OnChargingStatusChanged, this) ||
+       device_battery_set_cb(OnLevelChanged, this) != DEVICE_ERROR_NONE ||
+@@ -230,6 +232,7 @@ bool BatteryStatusManagerTizen::StartListeningBatteryChange() {
+     StopListeningBatteryChange();
+     return false;
+   }
++#endif
+   int charging = 0;
+   if (vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &charging) < 0)
+@@ -256,7 +259,9 @@ void BatteryStatusManagerTizen::StopListeningBatteryChange() {
+   UnsetRemainingTimeUntilDischargedCb();
+   vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW,
+       OnChargingStatusChanged);
++#if !defined(EWK_BRINGUP)
+   device_battery_unset_cb();
++#endif
+ }
+ }  // namespace device
+diff --git a/chromium_impl/device/battery_tizen.gni b/chromium_impl/device/battery_tizen.gni
+new file mode 100644
+index 0000000..0e5ee98
+--- /dev/null
++++ b/chromium_impl/device/battery_tizen.gni
+@@ -0,0 +1,15 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_device_battery_configs = [
++  "//tizen_src/build:capi-system-device",
++  "//tizen_src/build:libcapi-system-device",
++  "//tizen_src/build:vconf",
++  "//tizen_src/build:libvconf",
++]
++
++external_device_battery_sources = [
++  "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.cc",
++  "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h",
++]
+diff --git a/chromium_impl/device/vibration/vibration_efl.gni b/chromium_impl/device/vibration/vibration_efl.gni
+new file mode 100644
+index 0000000..d0869ec
+--- /dev/null
++++ b/chromium_impl/device/vibration/vibration_efl.gni
+@@ -0,0 +1,11 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_device_vibration_efl_sources = [
++  "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.cc",
++  "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.h",
++  "//tizen_src/chromium_impl/device/vibration/vibration_provider_client.h",
++]
++
++external_exclude_device_vibration_efl_sources = [ "vibration_manager_impl_default.cc" ]
+diff --git a/chromium_impl/device/vibration/vibration_manager_impl_efl.cc b/chromium_impl/device/vibration/vibration_manager_impl_efl.cc
+index 3057af7..92ec0c5 100644
+--- a/chromium_impl/device/vibration/vibration_manager_impl_efl.cc
++++ b/chromium_impl/device/vibration/vibration_manager_impl_efl.cc
+@@ -8,6 +8,14 @@
+ namespace device {
++VibrationManagerImplEfl::VibrationManagerImplEfl(
++      mojo::InterfaceRequest<VibrationManager> request)
++      : binding_(this, std::move(request)) {
++}
++
++VibrationManagerImplEfl::~VibrationManagerImplEfl() {
++}
++
+ std::unique_ptr<VibrationProviderClient> VibrationManagerImplEfl::provider_client_ = std::unique_ptr<VibrationProviderClient>();
+ void VibrationManagerImplEfl::Vibrate(int64_t milliseconds, const VibrateCallback& callback) {
+diff --git a/chromium_impl/device/vibration/vibration_manager_impl_efl.h b/chromium_impl/device/vibration/vibration_manager_impl_efl.h
+index 3afd983..56664b9 100644
+--- a/chromium_impl/device/vibration/vibration_manager_impl_efl.h
++++ b/chromium_impl/device/vibration/vibration_manager_impl_efl.h
+@@ -15,10 +15,12 @@ namespace device {
+ class DEVICE_VIBRATION_EXPORT VibrationManagerImplEfl : public VibrationManager {
+  public:
++  // Moved ctor and dtor definitions in implementation file because of :
++  // error: [chromium-style] Complex constructor has an inlined body.
++  // error: [chromium-style] Complex destructor has an inline body.
+   explicit VibrationManagerImplEfl(
+-      mojo::InterfaceRequest<VibrationManager> request)
+-      : binding_(this, std::move(request)) {}
+-  ~VibrationManagerImplEfl() override {}
++      mojo::InterfaceRequest<VibrationManager> request);
++  ~VibrationManagerImplEfl() override;
+   void Vibrate(int64_t milliseconds, const VibrateCallback& callback) override;
+   void Cancel(const CancelCallback& callback) override;
+diff --git a/chromium_impl/edje_resources/BUILD.gn b/chromium_impl/edje_resources/BUILD.gn
+new file mode 100644
+index 0000000..b43c08f
+--- /dev/null
++++ b/chromium_impl/edje_resources/BUILD.gn
+@@ -0,0 +1,34 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++template("edje_res_efl") {
++  edje_target_name = "${target_name}_generate"
++  action_foreach(edje_target_name) {
++    script = "//tizen_src/build/cmd_execution.py"
++    sources = invoker.sources
++    outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
++    args = [
++      "$edje_compiler",
++      "-id",
++      rebase_path("images/"),
++      rebase_path("{{source_file_part}}"),
++      rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
++    ]
++  }
++
++  source_set(target_name) {
++    deps = [ ":$edje_target_name" ]
++  }
++}
++
++edje_res_efl("edje_resources_efl") {
++  sources = [
++    "SelectionHandles.edc",
++    "Magnifier.edc",
++    "DisambiguationPopup.edc",
++    "Edge.edc",
++  ]
++}
+diff --git a/chromium_impl/efl/BUILD.gn b/chromium_impl/efl/BUILD.gn
+new file mode 100644
+index 0000000..e44699f
+--- /dev/null
++++ b/chromium_impl/efl/BUILD.gn
+@@ -0,0 +1,47 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++static_library("window-factory") {
++  configs += [ "//tizen_src/build:evas" ]
++  configs += [ "//tizen_src/build:libevas" ]
++  configs += [ "//tizen_src/build:elementary" ]
++  configs += [ "//tizen_src/build:libelementary" ]
++  public_configs = [ "//tizen_src/build:elementary-public" ]
++
++  sources = [
++    "window_factory.h",
++    "window_factory.cc",
++  ]
++}
++
++static_library("efl-init") {
++  configs += [ "//tizen_src/build:evas" ]
++  configs += [ "//tizen_src/build:libevas" ]
++  configs += [ "//tizen_src/build:elementary" ]
++  configs += [ "//tizen_src/build:libelementary" ]
++  public_configs = [ "//tizen_src/build:elementary-public" ]
++
++  deps = [ "//ui/compositor:compositor" ]
++
++  sources = [
++    "efl_export.h",
++    "init.h",
++    "init.cc",
++  ]
++
++  if (use_ozone) {
++    deps += [ "//ui/ozone:ozone" ]
++  }
++  if (use_wayland) {
++    configs += [ "//tizen_src/build:ecore-wayland" ]
++    configs += [ "//tizen_src/build:libecore-wayland" ]
++    public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
++  } else {
++    configs += [ "//tizen_src/build:ecore-x" ]
++    configs += [ "//tizen_src/build:libecore-x" ]
++    public_configs += [ "//tizen_src/build:ecore-x-public" ]
++  }
++}
+diff --git a/chromium_impl/gpu/gpu_efl.gni b/chromium_impl/gpu/gpu_efl.gni
+new file mode 100644
+index 0000000..87c6ab9
+--- /dev/null
++++ b/chromium_impl/gpu/gpu_efl.gni
+@@ -0,0 +1,23 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_exclude_gpu_efl_sources = [
++  "gpu_driver_bug_list_json.cc",
++  "gpu_info_collector_x11.cc",
++  "software_rendering_list_json.cc",
++]
++
++if (!is_tizen) {
++  external_exclude_gpu_efl_sources += [
++    "gpu_info_collector_linux.cc",
++  ]
++}
++
++external_gpu_efl_sources = [
++  "//tizen_src/chromium_impl/gpu/config/gpu_driver_bug_list_json_efl.cc",
++  "//tizen_src/chromium_impl/gpu/config/gpu_info_collector_efl.cc",
++  "//tizen_src/chromium_impl/gpu/config/software_rendering_list_json_efl.cc",
++  "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.cc",
++  "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.h"
++]
+diff --git a/chromium_impl/media/BUILD.gn b/chromium_impl/media/BUILD.gn
+new file mode 100644
+index 0000000..5d9a968
+--- /dev/null
++++ b/chromium_impl/media/BUILD.gn
+@@ -0,0 +1,23 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++if (tizen_multimedia_support) {
++  config("media_efl_config") {
++    defines = [
++      "TIZEN_VIDEO_CAPTURE_SUPPORT",
++      "TIZEN_MULTIMEDIA_ZEROCOPY_SUPPORT",
++    ]
++
++    include_dirs = [
++      "//third_party/WebKit",
++      "//third_party/libyuv/include",
++      "//third_party/mojo/src",
++      "//v8/include",
++    ]
++
++    defines += [ "TIZEN_MULTIMEDIA_EME_SUPPORT = 1" ]
++  }
++}
+diff --git a/chromium_impl/media/media_efl.gni b/chromium_impl/media/media_efl.gni
+new file mode 100644
+index 0000000..04747a0
+--- /dev/null
++++ b/chromium_impl/media/media_efl.gni
+@@ -0,0 +1,86 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_media_efl_deps = []
++external_media_efl_sources = []
++external_exclude_media_efl_sources = []
++external_media_efl_config = []
++
++if (use_ozone) {
++  external_media_efl_deps += [ "//tizen_src/chromium_impl/ui/ozone:ozone_efl" ]
++}
++
++if (tizen_multimedia_support) {
++  external_media_efl_deps += [
++    "//tizen_src/build:capi-media-audio-io",
++    "//tizen_src/build:libcapi-media-audio-io",
++    "//tizen_src/build:capi-media-camera",
++    "//tizen_src/build:libcapi-media-camera",
++    "//tizen_src/build:capi-media-player",
++    "//tizen_src/build:libcapi-media-player",
++    "//tizen_src/build:ecore",
++    "//tizen_src/build:libecore",
++    "//tizen_src/build:mm_player",
++  ]
++
++  if (!use_wayland) {
++    external_media_efl_deps += [
++      "//tizen_src/build:ecore-x",
++      "//tizen_src/build:libecore-x",
++      "//ui/gl:gl",
++    ]
++  } else {
++    external_media_efl_deps += [ "//tizen_src/build:ecore-wayland" ]
++    external_media_efl_deps += [ "//tizen_src/build:libecore-wayland" ]
++  }
++
++  if (building_for_tizen_mobile) {
++    external_media_efl_deps += [ "//tizen_src/build:capi-system-device" ]
++    external_media_efl_deps += [ "//tizen_src/build:libcapi-system-device" ]
++  }
++
++  external_media_efl_sources += [
++    "audio/tizen/audio_manager_capi.cc",
++    "audio/tizen/audio_manager_capi.h",
++    "audio/tizen/audio_manager_tizen.cc",
++    "audio/tizen/capi_audio_input.cc",
++    "audio/tizen/capi_audio_input.h",
++    "audio/tizen/capi_audio_output.cc",
++    "audio/tizen/capi_audio_output.h",
++    "audio/tizen/capi_util.cc",
++    "audio/tizen/capi_util.h",
++    "base/efl/demuxer_efl.h",
++    "base/efl/demuxer_stream_player_params_efl.cc",
++    "base/efl/demuxer_stream_player_params_efl.h",
++    "base/efl/media_player_efl.cc",
++    "base/efl/media_player_efl.h",
++    "base/efl/media_player_manager_efl.h",
++    "base/efl/media_player_util_efl.cc",
++    "base/efl/media_player_util_efl.h",
++    "base/efl/webaudio_decoder_efl.h",
++    "base/efl/webaudio_media_codec_info_efl.h",
++    "base/tizen/media_player_bridge_capi.cc",
++    "base/tizen/media_player_bridge_capi.h",
++    "base/tizen/media_source_player_capi.cc",
++    "base/tizen/media_source_player_capi.h",
++    "base/tizen/webaudio_decoder_browser_capi.cc",
++    "base/tizen/webaudio_decoder_browser_capi.h",
++    "capture/video/tizen/video_capture_device_factory_tizen.cc",
++    "capture/video/tizen/video_capture_device_factory_tizen.h",
++    "capture/video/tizen/video_capture_device_tizen.cc",
++    "capture/video/tizen/video_capture_device_tizen.h",
++  ]
++
++  external_exclude_media_efl_sources += [
++    "audio/linux/audio_manager_linux.cc",
++    "capture/video/linux/video_capture_device_factory_linux.cc",
++    "capture/video/linux/video_capture_device_factory_linux.h",
++    "capture/video/linux/video_capture_device_linux.cc",
++    "capture/video/linux/video_capture_device_linux.h",
++  ]
++
++  external_media_efl_config += [ ":media_efl_config" ]
++}
+diff --git a/chromium_impl/third_party/blink/renderer/core/BUILD.gn b/chromium_impl/third_party/blink/renderer/core/BUILD.gn
+new file mode 100644
+index 0000000..d436269
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/core/BUILD.gn
+@@ -0,0 +1,32 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++source_set("webkit_core_generated") {
++  sources = [
++    "$root_gen_dir/TizenUserAgentStyleSheets.h",
++    "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
++  ]
++
++  deps = [ ":TizenUserAgentStyleSheets" ]
++}
++
++action("TizenUserAgentStyleSheets") {
++  script = "make-file-arrays.py"
++  stylesheet = "rendering/themeChromiumTizen.css"
++  inputs = [
++    stylesheet,
++  ]
++  outputs = [
++    "$root_gen_dir/TizenUserAgentStyleSheets.h",
++    "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
++  ]
++  out_h = rebase_path("$root_gen_dir/TizenUserAgentStyleSheets.h", root_build_dir)
++  out_cpp = rebase_path("$root_gen_dir/TizenUserAgentStyleSheetsData.cpp", root_build_dir)
++  args = [
++    "--namespace",
++    "blink",
++    "--out-h=$out_h",
++    "--out-cpp=$out_cpp",
++  ] + rebase_path(inputs, root_build_dir)
++}
+diff --git a/chromium_impl/third_party/blink/renderer/core/core_efl.gni b/chromium_impl/third_party/blink/renderer/core/core_efl.gni
+new file mode 100644
+index 0000000..e473da9
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/core/core_efl.gni
+@@ -0,0 +1,26 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++# For //third_party/blink/renderer/core:rendering target
++# Temporary kept in the //third_party/blink/renderer/core:remaining target
++if (is_tizen) {
++  # Already excluded using !linux in //third_party/blink/renderer/core/BUILD.gn
++  external_exclude_webkit_core_rendering_sources = []
++} else {
++# [TODO] This code should be fixed.
++#  external_exclude_webkit_core_rendering_sources = [ "layout/LayoutThemeLinux.cpp" ]
++  external_exclude_webkit_core_rendering_sources = []
++}
++external_webkit_core_rendering_sources = [
++  "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.cpp",
++  "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.h",
++]
++
++# For //third_party/blink/renderer/core:core_generated target
++external_webkit_core_generated_deps = [
++  "//tizen_src/chromium_impl/third_party/blink/renderer/core:webkit_core_generated",
++]
++
++# For //third_party/blink/renderer/core:make_core_generated target
++external_webkit_core_make_generated_deps = [ "//tizen_src/chromium_impl/third_party/blink/renderer/core:TizenUserAgentStyleSheets" ]
+diff --git a/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py b/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py
+index 0bedc2d..c7f1a6d 100755
+--- a/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py
++++ b/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py
+@@ -109,7 +109,8 @@ def write_header_file(header_file_name, flag, names_and_contents, namespace):
+ def write_cpp_file(cpp_file_name, flag, names_and_contents, header_file_name, namespace):
+     with open(cpp_file_name, 'w') as cpp_file:
+-        cpp_file.write('#include "config.h"\n')
++        # TODO : commented for gn build.
++        #cpp_file.write('#include "config.h"\n')
+         cpp_file.write('#include "%s"\n' % os.path.basename(header_file_name))
+         if flag:
+             cpp_file.write('#if ' + flag + '\n')
+diff --git a/chromium_impl/third_party/blink/renderer/modules/modules_efl.gni b/chromium_impl/third_party/blink/renderer/modules/modules_efl.gni
+new file mode 100644
+index 0000000..fb84a85
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/modules/modules_efl.gni
+@@ -0,0 +1,10 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++if (use_gstreamer_fft) {
++  external_webkit_modules_configs = [ "//tizen_src/build:gstreamer-fft" ]
++  external_webkit_modules_configs += [ "//tizen_src/build:libgstreamer-fft" ]
++}
+diff --git a/chromium_impl/third_party/blink/renderer/platform/blink_platform_efl.gni b/chromium_impl/third_party/blink/renderer/platform/blink_platform_efl.gni
+new file mode 100644
+index 0000000..fea7652
+--- /dev/null
++++ b/chromium_impl/third_party/blink/renderer/platform/blink_platform_efl.gni
+@@ -0,0 +1,5 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++external_webkit_platform_files = [ "//tizen_src/chromium_impl/third_party/blink/renderer/platform/audio/gstreamer/FFTFrameGStreamer.cpp" ]
+diff --git a/chromium_impl/ui/BUILD.gn b/chromium_impl/ui/BUILD.gn
+new file mode 100644
+index 0000000..9132e91
+--- /dev/null
++++ b/chromium_impl/ui/BUILD.gn
+@@ -0,0 +1,32 @@
++# copyright (c) 2015 samsung electronics. all rights reserved.
++# use of this source code is governed by a bsd-style license that can be
++# found in the license file.
++
++static_library("ui_events_source_inject") {
++  sources = [
++    # Indirectly includes ui/events/gestures/gesture_recognizer_impl_efl.cc/h.
++    "events/gestures/gesture_recognizer_impl_override.cc",
++    "events/gestures/gesture_recognizer_impl_efl.cc",
++    "events/gestures/gesture_recognizer_impl_efl.h",
++    "//ui/events/gestures/gesture_provider_aura.cc",
++    "//ui/events/gestures/gesture_provider_aura.h",
++    "//ui/events/gestures/motion_event_aura.cc",
++    "//ui/events/gestures/motion_event_aura.h",
++  ]
++}
++
++static_library("ui_native_theme_inject") {
++  sources = [
++    "//ui/native_theme/native_theme_aura.h",
++    "//ui/native_theme/native_theme_aura.cc",
++  ]
++  deps = [ "//skia" ]
++}
++
++static_library("ui_base_inject") {
++  sources = [
++    #"//ui/base/cursor/cursors_aura.h",
++    #"//ui/base/cursor/cursors_aura.cc",
++  ]
++  deps = [ "//skia" ]
++}
+diff --git a/chromium_impl/ui/gl/gl_image_efl_pixmap.h b/chromium_impl/ui/gl/gl_image_efl_pixmap.h
+index d4272e4..8f85bb3 100644
+--- a/chromium_impl/ui/gl/gl_image_efl_pixmap.h
++++ b/chromium_impl/ui/gl/gl_image_efl_pixmap.h
+@@ -22,7 +22,6 @@ class GL_EXPORT GLImageEflPixmap : public GLImage {
+   virtual void Destroy(bool have_context) override;
+   virtual gfx::Size GetSize() override;
+   virtual bool BindTexImage(unsigned target) override;
+-  virtual void ReleaseTexImage(unsigned target) override;
+   virtual bool CopyTexSubImage(unsigned target,
+                                const gfx::Point& offset,
+                                const gfx::Rect& rect) override;
+diff --git a/chromium_impl/ui/ozone/BUILD.gn b/chromium_impl/ui/ozone/BUILD.gn
+new file mode 100644
+index 0000000..21822ea
+--- /dev/null
++++ b/chromium_impl/ui/ozone/BUILD.gn
+@@ -0,0 +1,26 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++static_library("ozone_efl") {
++  deps = [ "//ui/ozone/common" ]
++
++  if (!use_wayland) {
++    configs += [ "//tizen_src/build:ecore-x" ]
++    configs += [ "//tizen_src/build:libecore-x" ]
++  } else {
++    configs += [ "//tizen_src/build:ecore-wayland" ]
++    configs += [ "//tizen_src/build:libecore-wayland" ]
++  }
++
++  sources = [
++    "client_native_pixmap_factory_efl.h",
++    "client_native_pixmap_factory_efl.cc",
++    "ozone_platform_efl.h",
++    "ozone_platform_efl.cc",
++    "surface_factory_efl.h",
++    "surface_factory_efl.cc",
++  ]
++}
+diff --git a/chromium_impl/ui/ui_efl.gni b/chromium_impl/ui/ui_efl.gni
+new file mode 100644
+index 0000000..6d86b21
+--- /dev/null
++++ b/chromium_impl/ui/ui_efl.gni
+@@ -0,0 +1,136 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("ui_efl_injections.gni")
++import("//tizen_src/build/config/tizen_features.gni")
++
++external_ui_base_configs = [
++  "//tizen_src/build:elementary",
++  "//tizen_src/build:libelementary",
++]
++
++external_ui_gl_configs = [
++  "//tizen_src/build:evas",
++  "//tizen_src/build:libevas",
++  "//tizen_src/build:ecore-evas",
++  "//tizen_src/build:libecore-evas",
++  "//tizen_src/build:libdrm",
++  "//tizen_src/build:liblibdrm",
++  "//tizen_src/build:libtbm",
++  "//tizen_src/build:liblibtbm",
++]
++
++external_ui_gfx_x11_configs = []
++external_ui_gfx_configs = []
++external_ozone_platform_deps = []
++
++if (!use_wayland) {
++  external_ui_base_configs += [
++    "//tizen_src/build:ecore-x",
++    "//tizen_src/build:libecore-x",
++    "//tizen_src/build:x11",
++    "//tizen_src/build:libx11",
++  ]
++  external_ui_gl_configs += [ "//tizen_src/build:libdri2" ]
++  external_ui_gl_configs += [ "//tizen_src/build:liblibdri2" ]
++  external_ui_gfx_x11_configs += [ "//tizen_src/build:ecore-x" ]
++  external_ui_gfx_x11_configs += [ "//tizen_src/build:libecore-x" ]
++  external_ui_gfx_configs += [ "//tizen_src/build:ecore-x" ]
++  external_ui_gfx_configs += [ "//tizen_src/build:libecore-x" ]
++
++  if (building_for_tizen) {
++    # needed for efl_pixmap.cc/h
++    external_ui_gl_configs += [ "//tizen_src/build:x11" ]
++    external_ui_gl_configs += [ "//tizen_src/build:libx11" ]
++  }
++} else {
++  external_ui_gfx_configs += [ "//tizen_src/build:ecore-wayland" ]
++  external_ui_gfx_configs += [ "//tizen_src/build:libecore-wayland" ]
++}
++
++if (use_ozone) {
++  external_ozone_platform_deps += [
++    "//tizen_src/chromium_impl/ui/ozone:ozone_efl",
++    "//ui/events/devices:devices",
++  ]
++}
++
++# For //ui/gfx target
++external_ui_gfx_sources = [
++  "//ui/gfx/nine_image_painter.cc",
++  "//ui/gfx/nine_image_painter.h",
++  "//tizen_src/chromium_impl/ui/display/device_display_info_efl.cc",
++  "//tizen_src/chromium_impl/ui/display/device_display_info_efl.h",
++  "//tizen_src/chromium_impl/ui/display/screen_efl.h",
++  "//tizen_src/chromium_impl/ui/display/screen_efl.cc",
++]
++
++# For //ui/gfx/x target
++external_ui_gfx_x11_sources = [ "//tizen_src/chromium_impl/ui/gfx/x/x11_types_override.cc" ]
++external_exclude_ui_gfx_x11_sources = [ "x11_types.cc" ]
++if (wayland_bringup) {
++  external_exclude_ui_gfx_x11_sources += [ "gfx/x11_types_override.cc" ]
++}
++
++external_exclude_ui_gl_sources = []
++# For //ui/gl target
++external_exclude_ui_gl_sources += [ "gl_context_egl.cc" ]
++external_ui_gl_sources = [
++  "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.h",
++  "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc",
++  "//tizen_src/chromium_impl/ui/gl/gl_context_egl_override.cc",
++  "//tizen_src/chromium_impl/ui/gl/gl_current_context_efl.cc",
++]
++if (building_for_tizen) {
++  external_ui_gl_sources += [
++    "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.cc",
++    "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.h",
++  ]
++  if (!wayland_bringup) {
++    external_ui_gl_sources += [
++      "//tizen_src/chromium_impl/ui/gl/efl_pixmap.cc",
++      "//tizen_src/chromium_impl/ui/gl/efl_pixmap.h",
++    ]
++  }
++}
++
++# For //ui/events/platform/x11 target
++external_exclude_ui_x11_event_sources = []
++if (wayland_bringup) {
++  external_exclude_ui_x11_event_sources = [
++    "gfx/x11_event_source_efl.h",
++    "gfx/x11_event_source_efl.cc",
++  ]
++}
++
++# For //ui/base target
++external_ui_base_includes = [ "//third_party/mojo/src/" ]
++external_ui_base_sources = [
++  "//ui/base/cursor/cursor.h",
++  "//ui/base/cursor/cursor.cc",
++  "//ui/base/nine_image_painter_factory.h",
++  "//tizen_src/chromium_impl/ui/base/resource/resource_bundle_efl.cc",
++  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.cc",
++  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.h",
++  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.cc",
++  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h",
++]
++if (use_x11) {
++  if (!wayland_bringup) {
++    external_ui_base_sources += [
++      "//ui/base/cursor/cursor_x11.cc",
++      "//ui/base/cursor/cursor_x11.h",
++      "//ui/base/cursor/cursor_loader_x11.h",
++      "//ui/base/cursor/cursor_loader_x11.cc",
++    ]
++  }
++}
++external_exclude_ui_base_sources = []
++
++# For //ui/snapshot target
++external_ui_snapshot_sources = [ "//tizen_src/chromium_impl/ui/snapshot/snapshot_efl.cc" ]
++
++# For //ui/events:gesture_detection target
++external_exclude_ui_gesture_detection_sources = [ "gesture_detection/gesture_configuration_default.cc"]
++external_ui_gesture_detection_sources = [ "//tizen_src/chromium_impl/ui/events/gesture_detection/gesture_configuration_efl.cc" ]
+diff --git a/chromium_impl/ui/ui_efl_injections.gni b/chromium_impl/ui/ui_efl_injections.gni
+new file mode 100644
+index 0000000..6209c0a
+--- /dev/null
++++ b/chromium_impl/ui/ui_efl_injections.gni
+@@ -0,0 +1,37 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++# In static mode, we build some sources that is needed
++# by efl-port as injectable static library.
++# However, in component mode, we build each of ui modules
++# as single DLL. So we include needed sources directly.
++
++external_ui_base_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_base_inject" ]
++
++external_ui_events_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_events_source_inject" ]
++
++external_native_theme_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_native_theme_inject" ]
++
++# For //ui/base target
++external_ui_base_shared_lib_sources = [
++  "cursor/cursors_aura.cc",
++  "cursor/cursors_aura.h",
++]
++
++# For //ui/events target
++external_ui_events_shared_lib_sources = [
++  "events/gestures/gesture_recognizer_impl_override.cc",
++  "events/gestures/gesture_recognizer_impl_efl.cc",
++  "events/gestures/gesture_recognizer_impl_efl.h",
++  "gestures/gesture_provider_aura.cc",
++  "gestures/gesture_provider_aura.h",
++  "gestures/motion_event_aura.cc",
++  "gestures/motion_event_aura.h",
++]
++
++# For //ui/native_theme target
++external_ui_native_theme_shared_lib_sources = [
++  "native_theme_aura.cc",
++  "native_theme_aura.h",
++]
+diff --git a/ewk/BUILD.gn b/ewk/BUILD.gn
+new file mode 100644
+index 0000000..0770d10
+--- /dev/null
++++ b/ewk/BUILD.gn
+@@ -0,0 +1,12 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++group("chromium_efl_all") {
++  testonly = true
++  deps = [
++#    "//tizen_src/ewk/unittest:ewk_unittests",
++    "//tizen_src/ewk/ubrowser:ubrowser",
++    "//tizen_src/ewk/efl_webview_app:efl_webview_app",
++  ]
++}
+diff --git a/ewk/efl_integration/BUILD.gn b/ewk/efl_integration/BUILD.gn
+new file mode 100644
+index 0000000..082d2a7
+--- /dev/null
++++ b/ewk/efl_integration/BUILD.gn
+@@ -0,0 +1,549 @@
++# Copyright (c) 2015 Samsung Electronics. 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/allocator.gni")
++import("//build/config/features.gni")
++
++# [M48_2564] Temporary disabling the flag for switching to new chromium
++#            FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15382
++tizen_autofill_support = false
++
++# Components used to auto generate CHROMIUM_VERSION preprocessor define.
++#TODO : below uncomment
++#version_file = "//chrome/VERSION"
++#version_script = "//build/util/version.py"
++#version_pattern = "@MAJOR@.@MINOR@.@BUILD@.@PATCH@"
++
++shared_library("chromium-ewk") {
++  include_dirs = [
++    ".",
++    "//tizen_src/ewk/efl_integration/public",
++    "//third_party/skia/include/core",
++    "//v8/include",
++    "$root_gen_dir/blink",
++  ]
++  configs += [ "//tizen_src/build:ecore" ]
++  configs += [ "//tizen_src/build:libecore" ]
++  configs += [ "//tizen_src/build:evas" ]
++  configs += [ "//tizen_src/build:libevas" ]
++  configs += [ "//tizen_src/build:ecore-evas" ]
++  configs += [ "//tizen_src/build:libecore-evas" ]
++  public_configs = [ "//tizen_src/build:ecore-evas-public" ]
++  configs += [ "//tizen_src/build:elementary" ]
++  configs += [ "//tizen_src/build:libelementary" ]
++  public_configs += [ "//tizen_src/build:elementary-public" ]
++  configs += [ "//tizen_src/build:gstreamer" ]
++  configs += [ "//tizen_src/build:libgstreamer" ]
++  public_configs += [ "//tizen_src/build:gstreamer-public" ]
++  configs += [ "//tizen_src/build:vconf" ]
++  configs += [ "//tizen_src/build:libvconf" ]
++  public_configs += [ "//tizen_src/build:vconf-public" ]
++  configs += [ "//tizen_src/build:capi-location-manager" ]
++  configs += [ "//tizen_src/build:libcapi-location-manager" ]
++  public_configs += [ "//tizen_src/build:capi-location-manager-public" ]
++  configs += [ "//tizen_src/build:capi-system-info" ]
++  configs += [ "//tizen_src/build:libcapi-system-info" ]
++  public_configs += [ "//tizen_src/build:capi-system-info-public" ]
++  configs += [ "//tizen_src/build:capi-media-camera" ]
++  configs += [ "//tizen_src/build:libcapi-media-camera" ]
++  public_configs += [ "//tizen_src/build:capi-media-camera-public" ]
++  configs += [ "//tizen_src/build:feedback" ]
++  configs += [ "//tizen_src/build:libfeedback" ]
++  public_configs += [ "//tizen_src/build:feedback-public" ]
++  configs += [ "//tizen_src/build:efl-extension" ]
++  configs += [ "//tizen_src/build:libefl-extension" ]
++  public_configs += [ "//tizen_src/build:efl-extension-public" ]
++  configs += [ "//tizen_src/build:ui-gadget" ]
++  configs += [ "//tizen_src/build:libui-gadget" ]
++  public_configs += [ "//tizen_src/build:ui-gadget-public" ]
++  deps = [
++    "//tizen_src/ewk/po_tizen:locale_efl",
++    "//tizen_src/chromium_impl/efl:efl-init",
++
++    "//base/:base_static",
++    "//chrome/browser/media/router:mojo_bindings",
++    "//chrome:packed_resources",
++    "//content/public/browser",
++    "//content/shell:resources",
++    "//content/shell:pak",
++    "//components/visitedlink/browser",
++    "//components/visitedlink/renderer",
++    "//components/sessions",
++    "//components/autofill/content/renderer",
++    "//components/autofill/content/browser",
++    "//components/network_session_configurator",
++    "//components/password_manager/content/browser",
++    "//components/password_manager/core/common",
++    "//components/password_manager/core/browser",
++    "//components/plugins/renderer",
++    "//components/variations",
++    "//device/vibration",
++    "//extensions:shell_and_test_pak",
++    "//printing",
++    "//skia",
++    "//storage/browser",
++    "//third_party/leveldatabase",
++    "//third_party/sqlite",
++    "//third_party/blink/renderer/wtf",
++    "//ui/compositor",
++    "//ui/events",
++    "//ui/events:events_base",
++    "//ui/gl",
++    "//v8",
++  ]
++
++  # TODO : needs to check for generating this macro define
++  defines = [ "CHROMIUM_VERSION=\"<!(python <(version_script) -f <(version_file) -t \"<(version_pattern)\")\"" ]
++  ldflags = [
++    "-Wl,--no-undefined"
++    # TODO : need to check below for uncomment
++    #"-Wl,--version-script,//tizen_src/ewk/<(filter_file)"
++  ]
++  cflags = [
++    # Symbol visibility controled by chromium-ewk.filter
++    "-fvisibility=hidden",
++    # Treat warning as error for this target.
++    # It needs to be included by means of pattern list because '-Werror' cflag
++    # will be excluded in chromium side (src/build/common.gypi), and GYP
++    # processes pattern lists after exclusion lists.
++    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++    #"-Werror",
++    "-w",
++  ]
++
++  if (!xwalk_link_against_chromium_ewk) {
++    # TODO : needs to check the below filter provision
++    #filter_file = "chromium-ewk.filter"
++    deps += [
++      "//content/common",
++      "//content/public/common",
++      "//content/public/app:both"
++    ]
++  } else {
++    # TODO : needs to check the below filter provision
++    #filter_file = "chromium-ewk-xwalk.filter"
++    deps += [
++      "//components/storage_monitor",
++      "//components/web_modal",
++      "//content/app:both"
++    ]
++  }
++
++  if (building_for_tizen) {
++    exclude_source_set = [
++      "browser/sound_effect.cc",
++      "browser/sound_effect.h",
++    ]
++    deps += [ "//cc:cc" ]
++  } else {
++    if (use_gio) {
++      configs += [ "//build/linux:gio_config" ]
++    }
++    exclude_source_set = [
++      "browser/sound_effect_tizen.cc",
++      "browser/geolocation/location_provider_efl.cc",
++      "browser/geolocation/location_provider_efl.h"
++    ]
++  }
++
++  # TODO : Below dependency is set in chromium/device/battery_tizen.gypi,
++  # but since m47 it failed to get properly "injected"
++  # to device_battery target due to the new nesting
++  # used in the target declaration.
++  if (building_for_tizen_mobile) {
++    configs += [ "../../build:capi-system-device" ]
++    configs += [ "../../build:libcapi-system-device" ]
++    public_configs += [ "../../build:capi-system-device-public" ]
++  }
++
++  sources = []
++  if (enable_notifications) {
++    sources = [
++      "browser/notification/notification_controller_efl.cc",
++      "browser/notification/notification_controller_efl.h",
++    ]
++  }
++
++  if (tizen_autofill_support) {
++    defines = [ "TIZEN_AUTOFILL_SUPPORT=true" ]
++  }
++
++  if (use_allocator == "tcmalloc") {
++    deps += [ "//base/allocator" ]
++  }
++
++  if (use_wayland) {
++    configs += [ "../../build:ecore-wayland" ]
++    configs += [ "../../build:libecore-wayland" ]
++    public_configs += [ "../../build:ecore-wayland-public" ]
++  } else {
++    configs += [ "../../build:ecore-x" ]
++    configs += [ "../../build:libecore-x" ]
++    public_configs += [ "../../build:ecore-x-public" ]
++  }
++
++  if (use_ozone) {
++    deps += [ "//ui/ozone" ]
++  }
++
++  sources += [
++    "autofill_popup_view_efl.cc",
++    "autofill_popup_view_efl.h",
++    "browser_context_efl.cc",
++    "browser_context_efl.h",
++    "browser_main_parts_efl.cc",
++    "browser_main_parts_efl.h",
++    "chromium_ewk.gypi",
++    "command_line_efl.cc",
++    "command_line_efl.h",
++    "content_browser_client_efl.cc",
++    "content_browser_client_efl.h",
++    "content_main_delegate_efl.cc",
++    "content_main_delegate_efl.h",
++    "context_menu_controller_efl.cc",
++    "context_menu_controller_efl.h",
++    "cookie_manager.cc",
++    "cookie_manager.h",
++    "devtools_delegate_efl.cc",
++    "devtools_delegate_efl.h",
++    "devtools_manager_delegate_efl.cc",
++    "devtools_manager_delegate_efl.h",
++    "efl_webprocess_main.cc",
++    "efl_webprocess_main.h",
++    "eweb_context.cc",
++    "eweb_context.h",
++    "eweb_view_callbacks.h",
++    "eweb_view.cc",
++    "eweb_view.h",
++    "ewk_global_data.cc",
++    "ewk_global_data.h",
++    "file_chooser_controller_efl.cc",
++    "file_chooser_controller_efl.h",
++    "geolocation_permission_popup.cc",
++    "geolocation_permission_popup.h",
++    "http_user_agent_settings_efl.cc",
++    "http_user_agent_settings_efl.h",
++    "locale_efl.cc",
++    "locale_efl.h",
++    "message_pump_for_ui_efl.cc",
++    "message_pump_for_ui_efl.h",
++    "network_delegate_efl.cc",
++    "network_delegate_efl.h",
++    "notification_permission_popup.cc",
++    "notification_permission_popup.h",
++    "permission_popup.h",
++#    "permission_popup_manager.cc",
++    "permission_popup_manager.h",
++    "popup_controller_efl.cc",
++    "popup_controller_efl.h",
++    "scroll_detector.cc",
++    "scroll_detector.h",
++    "text_encoding_map_efl.cc",
++    "text_encoding_map_efl.h",
++    "url_request_context_getter_efl.cc",
++    "url_request_context_getter_efl.h",
++    "usermedia_permission_popup.cc",
++    "usermedia_permission_popup.h",
++    "web_contents_efl_delegate_ewk.cc",
++    "web_contents_efl_delegate_ewk.h",
++    "web_contents_delegate_efl.cc",
++    "web_contents_delegate_efl.h",
++    "web_contents_view_delegate_ewk.cc",
++    "web_contents_view_delegate_ewk.h",
++    "web_contents_view_efl_delegate_ewk.cc",
++    "web_contents_view_efl_delegate_ewk.h",
++
++    "browser/browsing_data_remover_efl.cc",
++    "browser/browsing_data_remover_efl.h",
++    "browser/download_manager_delegate_efl.cc",
++    "browser/download_manager_delegate_efl.h",
++    "browser/editor_client_observer.cc",
++    "browser/editor_client_observer.h",
++    "browser/javascript_dialog_manager_efl.cc",
++    "browser/javascript_dialog_manager_efl.h",
++    "browser/javascript_modal_dialog_efl.cc",
++    "browser/javascript_modal_dialog_efl.h",
++    "browser/login_delegate_efl.cc",
++    "browser/login_delegate_efl.h",
++    "browser/mime_override_manager_efl.cc",
++    "browser/mime_override_manager_efl.h",
++    "browser/navigation_policy_handler_efl.cc",
++    "browser/navigation_policy_handler_efl.h",
++    "browser/permission_manager_efl.cc",
++    "browser/permission_manager_efl.h",
++    "browser/policy_response_delegate_efl.cc",
++    "browser/policy_response_delegate_efl.h",
++    "browser/quota_permission_context_efl.cc",
++    "browser/quota_permission_context_efl.h",
++    "browser/render_message_filter_efl.cc",
++    "browser/render_message_filter_efl.h",
++    "browser/resource_dispatcher_host_delegate_efl.cc",
++    "browser/resource_dispatcher_host_delegate_efl.h",
++    "browser/resource_throttle_efl.cc",
++    "browser/resource_throttle_efl.h",
++    "browser/scoped_allow_wait_for_legacy_web_view_api.h",
++    "browser/scoped_wait_for_ewk.h",
++    "browser/sound_effect.cc",
++    "browser/sound_effect.h",
++    "browser/sound_effect_tizen.cc",
++    "browser/ssl_host_state_delegate_efl.cc",
++    "browser/ssl_host_state_delegate_efl.h",
++    "browser/web_view_browser_message_filter.cc",
++    "browser/web_view_browser_message_filter.h",
++
++    # Make use of Android webview"s simplified pref class.
++    "browser/autofill/autofill_client_efl.h",
++    "browser/autofill/autofill_client_efl.cc",
++    "browser/autofill/personal_data_manager_factory.cc",
++    "browser/autofill/personal_data_manager_factory.h",
++
++    "browser/favicon/favicon_database.h",
++    "browser/favicon/favicon_database_p.cc",
++    "browser/favicon/favicon_commands.cc",
++    "browser/favicon/favicon_downloader.h",
++    "browser/favicon/favicon_database_p.h",
++    "browser/favicon/favicon_database.cc",
++    "browser/favicon/favicon_commands.h",
++    "browser/favicon/favicon_downloader.cc",
++    "browser/geolocation/access_token_store_efl.cc",
++    "browser/geolocation/access_token_store_efl.h",
++    "browser/geolocation/geolocation_permission_context_efl.cc",
++    "browser/geolocation/geolocation_permission_context_efl.h",
++    "browser/geolocation/location_provider_efl.cc",
++    "browser/geolocation/location_provider_efl.h",
++    "browser/inputpicker/color_chooser_efl.cc",
++    "browser/inputpicker/color_chooser_efl.h",
++    "browser/inputpicker/InputPicker.cc",
++    "browser/inputpicker/InputPicker.h",
++
++    "browser/password_manager/password_store_factory.cc",
++    "browser/password_manager/password_store_factory.h",
++    "browser/password_manager/password_manager_client_efl.cc",
++    "browser/password_manager/password_manager_client_efl.h",
++
++    "browser/selectpicker/popup_picker.cc",
++    "browser/selectpicker/popup_menu_item.cc",
++    "browser/selectpicker/popup_picker.h",
++    "browser/selectpicker/popup_menu_item_private.h",
++    "browser/selectpicker/popup_menu_item.h",
++
++    "browser/vibration/vibration_provider_client.cc",
++    "browser/vibration/vibration_provider_client.h",
++
++    "browser/web_cache_efl/web_cache_manager_efl.cc",
++    "browser/web_cache_efl/web_cache_manager_efl.h",
++
++    "browser/webdata/web_data_service.h",
++    "browser/webdata/web_data_service_factory.h",
++    "browser/webdata/web_data_service_factory.cc",
++    "browser/webdata/web_data_service.cc",
++
++    "common/cache_params_efl.h",
++    "common/content_client_efl.cc",
++    "common/content_client_efl.h",
++    "common/content_switches_efl.cc",
++    "common/content_switches_efl.h",
++    "common/editing_messages.h",
++    "common/hit_test_params.h",
++    "common/message_generator_ewk.h",
++    "common/message_generator_ewk.cc",
++    "common/navigation_policy_params.cc",
++    "common/navigation_policy_params.h",
++    "common/print_pages_params.h",
++    "common/print_pages_params.cc",
++    "common/render_messages_ewk.h",
++    "common/tizen_extensible.cc",
++    "common/tizen_extensible.h",
++    "common/version_info_efl.h",
++    "common/version_info.h",
++    "common/version_info.cc",
++    "common/web_contents_utils.cc",
++    "common/web_contents_utils.h",
++    "common/web_preferences_efl.h",
++
++    "private/back_forward_list.h",
++    "private/ewk_auth_challenge_private.h",
++    "private/ewk_autofill_profile_private.cc",
++    "private/ewk_autofill_profile_private.h",
++    "private/ewk_back_forward_list_private.cc",
++    "private/ewk_back_forward_list_private.h",
++    "private/ewk_certificate_private.h",
++    "private/ewk_console_message_private.h",
++    "private/ewk_context_form_autofill_profile_private.cc",
++    "private/ewk_context_form_autofill_profile_private.h",
++    "private/ewk_context_menu_private.h",
++    "private/ewk_context_private.cc",
++    "private/ewk_context_private.h",
++    "private/ewk_cookie_manager_private.h",
++    "private/ewk_custom_handlers_private.cc",
++    "private/ewk_custom_handlers_private.h",
++    "private/ewk_error_private.h",
++    "private/ewk_favicon_database_private.h",
++    "private/ewk_frame_private.cc",
++    "private/ewk_frame_private.h",
++    "private/ewk_geolocation_private.cc",
++    "private/ewk_geolocation_private.h",
++    "private/ewk_history_private.cc",
++    "private/ewk_history_private.h",
++    "private/ewk_hit_test_private.cc",
++    "private/ewk_hit_test_private.h",
++    "private/ewk_main_private.cc",
++    "private/ewk_main_private.h",
++    "private/ewk_notification_private.cc",
++    "private/ewk_notification_private.h",
++    "private/ewk_object_private.h",
++    "private/ewk_policy_decision_private.cc",
++    "private/ewk_policy_decision_private.h",
++    "private/ewk_private.h",
++    "private/ewk_quota_permission_request_private.cc",
++    "private/ewk_quota_permission_request_private.h",
++    "private/ewk_security_origin_private.cc",
++    "private/ewk_security_origin_private.h",
++    "private/ewk_settings_private.cc",
++    "private/ewk_settings_private.h",
++    "private/ewk_suspendable_object.cc",
++    "private/ewk_suspendable_object.h",
++    "private/ewk_text_style_private.h",
++    "private/ewk_tracing_private.cc",
++    "private/ewk_tracing_private.h",
++    "private/ewk_user_media_private.cc",
++    "private/ewk_user_media_private.h",
++    "private/ewk_view_private.cc",
++    "private/ewk_view_private.h",
++    "private/ewk_web_application_icon_data_private.cc",
++    "private/ewk_web_application_icon_data_private.h",
++    "private/ewk_window_features_private.h",
++    "private/ewk_wrt_private.cc",
++    "private/ewk_wrt_private.h",
++    "private/webview_delegate_ewk.cc",
++    "private/webview_delegate_ewk.h",
++
++    "public/ewk_application_cache_manager.cc",
++    "public/ewk_application_cache_manager.h",
++    "public/ewk_auth_challenge.cc",
++    "public/ewk_auth_challenge.h",
++    "public/ewk_auth_request.cc",
++    "public/ewk_auth_request.h",
++    "public/ewk_autofill_profile.cc",
++    "public/ewk_autofill_profile.h",
++    "public/ewk_back_forward_list.cc",
++    "public/ewk_back_forward_list.h",
++    "public/ewk_back_forward_list_item.cc",
++    "public/ewk_back_forward_list_item.h",
++    "public/ewk_certificate.cc",
++    "public/ewk_certificate.h",
++    "public/ewk_console_message.cc",
++    "public/ewk_console_message.h",
++    "public/ewk_content_screening_detection.cc",
++    "public/ewk_content_screening_detection.h",
++    "public/ewk_context.cc",
++    "public/ewk_context.h",
++    "public/ewk_context_menu.cc",
++    "public/ewk_context_menu.h",
++    "public/ewk_cookie_manager.cc",
++    "public/ewk_cookie_manager.h",
++    "public/ewk_custom_handlers.cc",
++    "public/ewk_custom_handlers.h",
++    "public/ewk_dispatcher.cc",
++    "public/ewk_dispatcher.h",
++    "public/ewk_error.cc",
++    "public/ewk_error.h",
++    "public/ewk_favicon_database.cc",
++    "public/ewk_favicon_database.h",
++    "public/ewk_frame.cc",
++    "public/ewk_frame.h",
++    "public/ewk_geolocation.cc",
++    "public/ewk_geolocation.h",
++    "public/ewk_history.cc",
++    "public/ewk_history.h",
++    "public/ewk_hit_test.cc",
++    "public/ewk_hit_test.h",
++    "public/ewk_intercept_request.cc",
++    "public/ewk_intercept_request.h",
++    "public/ewk_ipc_message.cc",
++    "public/ewk_ipc_message.h",
++    "public/ewk_main.cc",
++    "public/ewk_main.h",
++    "public/ewk_notification.cc",
++    "public/ewk_notification.h",
++    "public/ewk_object.cc",
++    "public/ewk_object.h",
++    "public/ewk_page_group.cc",
++    "public/ewk_page_group.h",
++    "public/ewk_policy_decision.cc",
++    "public/ewk_policy_decision.h",
++    "public/ewk_popup_menu_item.cc",
++    "public/ewk_popup_menu_item.h",
++    "public/ewk_quota_permission_request.cc",
++    "public/ewk_quota_permission_request.h",
++    "public/ewk_security_origin.cc",
++    "public/ewk_security_origin.h",
++    "public/ewk_settings.cc",
++    "public/ewk_settings.h",
++    "public/ewk_storage_manager.cc",
++    "public/ewk_storage_manager.h",
++    "public/ewk_text_style.cc",
++    "public/ewk_text_style.h",
++    "public/ewk_tracing.cc",
++    "public/ewk_tracing.h",
++    "public/ewk_user_media.cc",
++    "public/ewk_user_media.h",
++    "public/ewk_view.cc",
++    "public/ewk_view.h",
++    "public/ewk_web_application_icon_data.cc",
++    "public/ewk_web_application_icon_data.h",
++    "public/ewk_window_features.cc",
++    "public/ewk_window_features.h",
++    "public/ewk_chromium.cc",
++    "public/ewk_chromium.h",
++    "public/ewk_enums.h",
++    "public/ewk_export.h",
++    "public/ewk_log.h",
++    "public/ewk_touch.h",
++
++    "browser/web_view_evas_handler.cc",
++    "browser/web_view_evas_handler.h",
++
++    "renderer/content_renderer_client_efl.cc",
++    "renderer/content_renderer_client_efl.h",
++    "renderer/editorclient_agent.cc",
++    "renderer/editorclient_agent.h",
++    "renderer/plugins/plugin_placeholder_efl.cc",
++    "renderer/plugins/plugin_placeholder_efl.h",
++    "renderer/print_web_view_helper_efl.cc",
++    "renderer/print_web_view_helper_efl.h",
++    "renderer/render_frame_observer_efl.cc",
++    "renderer/render_frame_observer_efl.h",
++    "renderer/render_thread_observer_efl.cc",
++    "renderer/render_thread_observer_efl.h",
++    "renderer/render_view_observer_efl.cc",
++    "renderer/render_view_observer_efl.h",
++
++    "wrt/wrtwidget.cc",
++    "wrt/wrt_file_protocol_handler.cc",
++    "wrt/dynamicplugin.cc",
++    "wrt/wrt_file_protocol_handler.h",
++    "wrt/wrt_widget_host.cc",
++    "wrt/wrtwidget.h",
++    "wrt/wrt_widget_host.h",
++    "wrt/dynamicplugin.h",
++  ]
++  sources -= exclude_source_set
++  deps += [ "resource:edje_resources_ewk" ]
++}
++
++executable("efl_webprocess") {
++  sources = [ "efl_webprocess.cc" ]
++  deps = [ ":chromium-ewk" ]
++}
++
++copy("launch_exec_script") {
++  sources = [ "launch_exec.sh" ]
++  outputs = [ "$root_out_dir/{{source_file_part}}" ]
++}
++
++source_set("launch_exec") {
++  sources = [ "launch_exec.sh" ]
++  deps = [ ":launch_exec_script" ]
++}
+diff --git a/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h b/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h
+index d7ecabe..f99fbd2 100644
+--- a/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h
++++ b/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h
+@@ -34,7 +34,7 @@ public:
+   // PasswordManagerClient implementation.
+   virtual bool PromptUserToSaveOrUpdatePassword(
+-      scoped_ptr<PasswordFormManager> form_to_save,
++      std::unique_ptr<PasswordFormManager> form_to_save,
+       CredentialSourceType type,
+       bool update_password) override;
+@@ -48,7 +48,7 @@ public:
+   void NotifyUserAutoSignin(
+       ScopedVector<autofill::PasswordForm> local_forms) override;
+   void AutomaticPasswordSave(
+-      scoped_ptr<PasswordFormManager> saved_form_manager) override;
++      std::unique_ptr<PasswordFormManager> saved_form_manager) override;
+   const PasswordManager* GetPasswordManager() const override;
+   const CredentialsFilter* GetStoreResultFilter() const override;
+diff --git a/ewk/efl_integration/common/version_info.cc b/ewk/efl_integration/common/version_info.cc
+index b1f427d..43db755 100644
+--- a/ewk/efl_integration/common/version_info.cc
++++ b/ewk/efl_integration/common/version_info.cc
+@@ -124,7 +124,8 @@ std::string VersionInfo::ProductNameAndVersionForUserAgent() const {
+   // if the browser supports the WebRTC feature.
+   // TODO(max koo): Do we need to open our real version number
+   // or just use Chrome/aa.bb.cc.dd as Chromium/Chrome do?
+-  return std::string("Chrome/") + CHROMIUM_VERSION;
++  // TODO(suchit): Need to fix for chromium version in gn file
++  return std::string("Chrome/") /*+ CHROMIUM_VERSION*/;
+ }
+ std::string VersionInfo::DefaultUserAgent() const {
+diff --git a/ewk/efl_integration/launch_exec.sh b/ewk/efl_integration/launch_exec.sh
+index 16f4d90..18e80b4 100755
+--- a/ewk/efl_integration/launch_exec.sh
++++ b/ewk/efl_integration/launch_exec.sh
+@@ -27,7 +27,7 @@ else
+ fi
+ CHROMIUM_EFL_LIBDIR=$(readlink -e $SCRIPTDIR/lib)
+-CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/../Dependencies/Root/$_LIBDIR)
++CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/Dependencies/Root/$_LIBDIR)
+ export LD_LIBRARY_PATH=$CHROMIUM_EFL_DEPENDENCIES_LIBDIR:$CHROMIUM_EFL_LIBDIR:${LD_LIBRARY_PATH}
+ echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
+diff --git a/ewk/efl_integration/resource/BUILD.gn b/ewk/efl_integration/resource/BUILD.gn
+new file mode 100644
+index 0000000..fa6f35f
+--- /dev/null
++++ b/ewk/efl_integration/resource/BUILD.gn
+@@ -0,0 +1,33 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++template("edje_res_ewk") {
++  edje_target_name = "${target_name}_generate"
++  action_foreach(edje_target_name) {
++    script = "//tizen_src/build/cmd_execution.py"
++    sources = invoker.sources
++    outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
++    args = [
++      "$edje_compiler",
++      "-id",
++      rebase_path("../images/"),
++      rebase_path("{{source_file_part}}"),
++      rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
++    ]
++  }
++
++  source_set(target_name) {
++    data = [ ":$edje_target_name" ]
++  }
++}
++
++edje_res_ewk("edje_resources_ewk") {
++  sources = [
++    "AutofillPopup.edc",
++    "JavaScriptPopup.edc",
++    "control.edc",
++  ]
++}
+diff --git a/ewk/efl_webview_app/BUILD.gn b/ewk/efl_webview_app/BUILD.gn
+new file mode 100644
+index 0000000..7b413ac
+--- /dev/null
++++ b/ewk/efl_webview_app/BUILD.gn
+@@ -0,0 +1,117 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++copy("efl_webview_app_script") {
++  sources = [ "efl_webview_app.sh" ]
++  outputs = [ "$root_out_dir/{{source_file_part}}" ]
++}
++
++executable("efl_webview_app") {
++  deps = [
++    ":efl_webview_app_script",
++  ]
++  configs += [ "//tizen_src/build:capi-system-device" ]
++  configs += [ "//tizen_src/build:libcapi-system-device" ]
++  public_configs = [ "//tizen_src/build:capi-system-device-public" ]
++  configs += [ "//tizen_src/build:evas" ]
++  configs += [ "//tizen_src/build:libevas" ]
++  configs += [ "//tizen_src/build:ecore" ]
++  configs += [ "//tizen_src/build:libecore" ]
++  configs += [ "//tizen_src/build:ecore-evas" ]
++  configs += [ "//tizen_src/build:libecore-evas" ]
++  public_configs += [ "//tizen_src/build:ecore-evas-public" ]
++  configs += [ "//tizen_src/build:elementary" ]
++  configs += [ "//tizen_src/build:libelementary" ]
++  public_configs += [ "//tizen_src/build:elementary-public" ]
++  deps += [
++    "//tizen_src/ewk/efl_integration:chromium-ewk",
++    "//tizen_src/ewk/efl_integration:launch_exec",
++  ]
++  import("../tizen_version_defines_for_apps.gni")
++  cflags = [
++    # Treat warning as error for this target.
++    # It needs to be included by means of pattern list because '-Werror' cflag
++    # will be excluded in chromium side (src/build/common.gypi), and GYP
++    # processes pattern lists after exclusion lists.
++    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++    "-Werror"
++  ]
++  if (!use_wayland) {
++    configs += [ "//tizen_src/build:ecore-x" ]
++    configs += [ "//tizen_src/build:libecore-x" ]
++    public_configs += [ "//tizen_src/build:ecore-x-public" ]
++  } else {
++    configs += [ "//tizen_src/build:ecore-wayland" ]
++    configs += [ "//tizen_src/build:libecore-wayland" ]
++    public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
++  }
++  include_dirs = [ "../efl_integration" ]
++  sources = [ "app.c" ]
++  ldflags = [ "-Llib" ]
++  #libs = [ "libchromium-ewk" ]
++}
++
++executable("mini_browser") {
++  cflags = [
++    # Treat warning as error for this target.
++    # It needs to be included by means of pattern list because '-Werror' cflag
++    # will be excluded in chromium side (src/build/common.gypi), and GYP
++    # processes pattern lists after exclusion lists.
++    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++    "-Werror"
++  ]
++  sources = []
++  include_dirs = []
++  ldflags = []
++  libs = []
++  deps = []
++  if (building_for_tizen) { # FIXME: mini_browser shouldn't depend on dlog and appcore-efl without OS(TIZEN) checks
++    sources += [
++      "mini_browser.c",
++      "browser-object.h",
++      "browser-string.h",
++    ]
++    include_dirs += [ "../efl_integration" ]
++    configs += [ "//tizen_src/build:capi-system-device" ]
++    configs += [ "//tizen_src/build:libcapi-system-device" ]
++    public_configs = [ "//tizen_src/build:capi-system-device-public" ]
++    configs += [ "//tizen_src/build:capi-appfw-application" ]
++    configs += [ "//tizen_src/build:libcapi-appfw-application" ]
++    public_configs += [ "//tizen_src/build:capi-appfw-application-public" ]
++    configs += [ "//tizen_src/build:evas" ]
++    configs += [ "//tizen_src/build:libevas" ]
++    configs += [ "//tizen_src/build:ecore" ]
++    configs += [ "//tizen_src/build:libecore" ]
++    configs += [ "//tizen_src/build:ecore-evas" ]
++    configs += [ "//tizen_src/build:libecore-evas" ]
++    public_configs += [ "//tizen_src/build:ecore-evas-public" ]
++    configs += [ "//tizen_src/build:efl-extension" ]
++    configs += [ "//tizen_src/build:libefl-extension" ]
++    public_configs += [ "//tizen_src/build:efl-extension-public" ]
++    configs += [ "//tizen_src/build:elementary" ]
++    configs += [ "//tizen_src/build:libelementary" ]
++    public_configs += [ "//tizen_src/build:elementary-public" ]
++    deps += [
++      "//tizen_src/ewk/efl_integration:chromium-ewk",
++      #"//build/linux:glib",   removed from the chromium
++    ]
++    configs += [ "//build/config/linux:glib" ]
++    import("../tizen_version_defines_for_apps.gni")
++    if (!use_wayland) {
++      configs += [ "//tizen_src/build:ecore-x" ]
++      configs += [ "//tizen_src/build:libecore-x" ]
++      public_configs += [ "//tizen_src/build:ecore-x-public" ]
++    } else {
++      configs += [ "//tizen_src/build:ecore-wayland" ]
++      configs += [ "//tizen_src/build:libecore-wayland" ]
++      public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
++    }
++    ldflags += [ "-ldlog" ]
++    ldflags += [ "-ldbus-glib-1" ]
++    libs += [ "dlog" ]
++    libs += [ "dbus-glib-1" ]
++  }
++}
+diff --git a/ewk/efl_webview_app/app.c b/ewk/efl_webview_app/app.c
+index fcdd83d..7349697 100644
+--- a/ewk/efl_webview_app/app.c
++++ b/ewk/efl_webview_app/app.c
+@@ -1034,7 +1034,7 @@ void __customize_context_menu_cb(void* data, Evas_Object *obj, void *event_info)
+ static void get_app_cache_usage_cb(int64_t usage, void* user_data)
+ {
+-  static int count_usage_callback = 0;
++  static unsigned int count_usage_callback = 0;
+   Ewk_Security_Origin* origin = (Ewk_Security_Origin*)user_data;
+   printf("AppCache usage for %s is %ld\n", ewk_security_origin_host_get(origin), (long int)usage);
+   ewk_context_application_cache_delete(ewk_context_default_get(), origin);
+@@ -1075,7 +1075,7 @@ static void get_origins_for_webDB_cb(Eina_List* origins, void* user_data)
+   Eina_List* list_iterator = NULL;
+   void* data = NULL;
+   web_database_origins = origins;
+-  static int flag = 0;
++  static unsigned int flag = 0;
+   EINA_LIST_FOREACH(origins, list_iterator, data) {
+     Ewk_Security_Origin* origin = (Ewk_Security_Origin*)(data);
+     printf("Web Database origin : %s\n", ewk_security_origin_host_get(origin));
+diff --git a/ewk/efl_webview_app/mini_browser.c b/ewk/efl_webview_app/mini_browser.c
+index 32423c2..e2844a9 100644
+--- a/ewk/efl_webview_app/mini_browser.c
++++ b/ewk/efl_webview_app/mini_browser.c
+@@ -2,7 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+-#include <app.h>
++#include <appfw/app.h>
+ #include <dlog.h>
+ #include <Ecore.h>
+ #include <Ecore_Evas.h>
+diff --git a/ewk/po_tizen/BUILD.gn b/ewk/po_tizen/BUILD.gn
+new file mode 100644
+index 0000000..a1c4940
+--- /dev/null
++++ b/ewk/po_tizen/BUILD.gn
+@@ -0,0 +1,90 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++declare_args() {
++  msgfmt = "/usr/bin/msgfmt"
++}
++
++template("po_translations") {
++  po_target_name = "${target_name}_generate"
++  action_foreach(po_target_name) {
++    script = "//tizen_src/build/cmd_execution.py"
++    sources = invoker.sources
++    outputs = [ "$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo" ]
++    args = [
++      "$msgfmt",
++      "-o",
++      rebase_path("$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo"),
++      rebase_path("{{source_file_part}}"),
++    ]
++  }
++
++  source_set(target_name) {
++    deps = [ ":$po_target_name" ]
++  }
++}
++
++po_translations("locale_efl") {
++  sources = [
++    "ar.po",
++    "az.po",
++    "bg.po",
++    "bn.po",
++    "ca.po",
++    "cs.po",
++    "da.po",
++    "de_DE.po",
++    "el_GR.po",
++    "en_PH.po",
++    "en.po",
++    "en_US.po",
++    "es_ES.po",
++    "es_MX.po",
++    "et.po",
++    "eu.po",
++    "fi.po",
++    "fr_CA.po",
++    "fr_FR.po",
++    "ga.po",
++    "gl.po",
++    "gu.po",
++    "hi.po",
++    "hr.po",
++    "hu.po",
++    "hy.po",
++    "is.po",
++    "it_IT.po",
++    "ja_JP.po",
++    "ka.po",
++    "kk.po",
++    "kn.po",
++    "ko_KR.po",
++    "lt.po",
++    "lv.po",
++    "mk.po",
++    "nb.po",
++    "nl_NL.po",
++    "ml.po",
++    "pl.po",
++    "pt_BR.po",
++    "pt_PT.po",
++    "ro.po",
++    "ru_RU.po",
++    "si.po",
++    "sk.po",
++    "sl.po",
++    "sr.po",
++    "sv.po",
++    "ta.po",
++    "te.po",
++    "tr_TR.po",
++    "uk.po",
++    "ur.po",
++    "uz.po",
++    "zh_CN.po",
++    "zh_HK.po",
++    "zh_SG.po",
++    "zh_TW.po",
++  ]
++}
+diff --git a/ewk/tizen_version_defines_for_apps.gni b/ewk/tizen_version_defines_for_apps.gni
+new file mode 100644
+index 0000000..650e1b9
+--- /dev/null
++++ b/ewk/tizen_version_defines_for_apps.gni
+@@ -0,0 +1,19 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++defines = []
++
++if (building_for_tizen) {
++    if (chromium_efl_tizen_version == 30) {
++      defines += ["TIZEN_V_3_0=true"]
++    }
++    if (chromium_efl_tizen_version == 24) {
++      defines += ["TIZEN_V_2_4=true"]
++    }
++    if (chromium_efl_tizen_version == 23) {
++      defines += ["TIZEN_V_2_3=true"]
++    }
++}
+diff --git a/ewk/ubrowser/BUILD.gn b/ewk/ubrowser/BUILD.gn
+new file mode 100644
+index 0000000..25b2108
+--- /dev/null
++++ b/ewk/ubrowser/BUILD.gn
+@@ -0,0 +1,68 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//tizen_src/build/config/tizen_features.gni")
++
++copy("ubrowser_script") {
++  sources = [ "ubrowser.sh" ]
++  outputs = [ "$root_out_dir/{{source_file_part}}" ]
++}
++
++executable("ubrowser") {
++  configs += [ "//tizen_src/build:capi-system-device" ]
++  configs += [ "//tizen_src/build:libcapi-system-device" ]
++  public_configs = [ "//tizen_src/build:capi-system-device-public" ]
++  configs += [ "//tizen_src/build:evas" ]
++  configs += [ "//tizen_src/build:libevas" ]
++  configs += [ "//tizen_src/build:ecore" ]
++  configs += [ "//tizen_src/build:libecore" ]
++  configs += [ "//tizen_src/build:ecore-evas" ]
++  configs += [ "//tizen_src/build:libecore-evas" ]
++  public_configs += [ "//tizen_src/build:ecore-evas-public" ]
++  configs += [ "//tizen_src/build:elementary" ]
++  configs += [ "//tizen_src/build:libelementary" ]
++  public_configs += [ "//tizen_src/build:elementary-public" ]
++  deps = [
++    "//tizen_src/ewk/efl_integration:chromium-ewk",
++    "//tizen_src/ewk/efl_integration:launch_exec",
++  ]
++  configs += [ "//tizen_src/build:efl-extension" ]
++  configs += [ "//tizen_src/build:libefl-extension" ]
++  public_configs += [ "//tizen_src/build:efl-extension-public" ]
++  defines = [
++    # Uncomment once uBrowser replaces mini_browser and it's xml
++    # manifest is shipped in the rpm package
++    #"TIZEN_APP=true"
++  ]
++  include_dirs = [
++    ".",
++    "../efl_integration/public",
++  ]
++  sources = [
++    "browser.cc",
++    "browser.h",
++    "logger.cc",
++    "logger.h",
++    "main.cc",
++    "window.cc",
++    "window.h",
++    "window_ui.h",
++    "window_ui.cc",
++  ]
++  deps += [ ":ubrowser_script" ]
++  cflags = [
++    # Treat warning as error for this target.
++    # It needs to be included by means of pattern list because '-Werror' cflag
++    # will be excluded in chromium side (src/build/common.gypi), and GYP
++    # processes pattern lists after exclusion lists.
++    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
++    "-Werror"
++  ]
++  ldflags = []
++  libs = []
++  if (building_for_tizen) {
++    configs += [ "//tizen_src/build:capi-appfw-application" ]
++    configs += [ "//tizen_src/build:libcapi-appfw-application" ]
++  }
++}
+diff --git a/ewk/ubrowser/main.cc b/ewk/ubrowser/main.cc
+index 0b16a04..7b9c973 100644
+--- a/ewk/ubrowser/main.cc
++++ b/ewk/ubrowser/main.cc
+@@ -9,7 +9,7 @@
+ #include <unistd.h>
+ #include <vector>
+ #if defined(OS_TIZEN)
+-#include <app.h>
++#include <appfw/app.h>
+ #endif // OS_TIZEN
+ #include "browser.h"
+diff --git a/ewk/unittest/BUILD.gn b/ewk/unittest/BUILD.gn
+new file mode 100644
+index 0000000..bd92e7b
+--- /dev/null
++++ b/ewk/unittest/BUILD.gn
+@@ -0,0 +1,395 @@
++# Copyright (c) 2015 Samsung Electronics. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//testing/test.gni")
++import("//tizen_src/build/config/tizen_features.gni")
++
++shared_library("bundle_sample") {
++  sources = [ "resources/ewk_context/injected_bundle/chromium/bundle_sample.cc" ]
++  deps = [ "//v8:v8" ]
++  include_dirs = [
++    ".",
++    "//v8/include/",
++  ]
++}
++
++#copy("libbundle") {
++#  sources = [ "$root_out_dir/lib/libbundle_sample.so" ]
++#  outputs = [ "$root_out_dir/resources/ewk_context/injected_bundle/chromium/{{source_file_part}}" ]
++#}
++
++test("ewk_unittests") {
++  testonly = true
++  configs += [ "//tizen_src/build:ecore-evas" ]
++  configs += [ "//tizen_src/build:libecore-evas" ]
++  public_configs = [ "//tizen_src/build:ecore-evas-public" ]
++  configs += [ "//tizen_src/build:ecore-x" ]
++  configs += [ "//tizen_src/build:libecore-x" ]
++  public_configs += [ "//tizen_src/build:ecore-x-public" ]
++  configs += [ "//tizen_src/build:edje" ]
++  configs += [ "//tizen_src/build:libedje" ]
++  public_configs += [ "//tizen_src/build:edje-public" ]
++  configs += [ "//tizen_src/build:elementary" ]
++  configs += [ "//tizen_src/build:libelementary" ]
++  public_configs += [ "//tizen_src/build:elementary-public" ]
++  deps = [
++    "//tizen_src/ewk/efl_integration:chromium-ewk",
++    "//testing/gtest",
++    ":bundle_sample",
++  ]
++  include_dirs = [
++    "../efl_integration/public",
++  ]
++  sources = [
++    "execute_utc_blink.cpp",
++    "utc_blink_cb_contextmenu_allowed.cpp",
++    "utc_blink_cb_contextmenu_willshow.cpp",
++    "utc_blink_cb_editorclient_candidate_closed.cpp",
++    "utc_blink_cb_editorclient_candidate_opened.cpp",
++    "utc_blink_cb_editorclient_ime_closed.cpp",
++    "utc_blink_cb_editorclient_ime_opened.cpp",
++    "utc_blink_cb_form_submit.cpp",
++    "utc_blink_cb_fullscreen_enterfullscreen.cpp",
++    "utc_blink_cb_fullscreen_exitfullscreen.cpp",
++    "utc_blink_cb_geolocation_valid.cpp",
++    "utc_blink_cb_icon_received.cpp",
++    "utc_blink_cb_inputmethod_changed.cpp",
++    "utc_blink_cb_load_finished.cpp",
++    "utc_blink_cb_load_progress.cpp",
++    "utc_blink_cb_load_progress_finished.cpp",
++    "utc_blink_cb_load_progress_started.cpp",
++    "utc_blink_cb_load_started.cpp",
++    "utc_blink_cb_magnifier_hide.cpp",
++    "utc_blink_cb_magnifier_show.cpp",
++    "utc_blink_cb_popup_blocked.cpp",
++    "utc_blink_cb_protocolhandler_isregistered.cpp",
++    "utc_blink_cb_protocolhandler_registration_requested.cpp",
++    "utc_blink_cb_protocolhandler_unregistration_requested.cpp",
++    "utc_blink_cb_redo_size.cpp",
++    "utc_blink_cb_textselection_mode.cpp",
++    "utc_blink_cb_title_changed.cpp",
++    "utc_blink_cb_undo_size.cpp",
++    "utc_blink_cb_unfocus_direction.cpp",
++    "utc_blink_cb_uri_changed.cpp",
++    "utc_blink_cb_url_changed.cpp",
++    "utc_blink_ewk_auth_challenge_credential_cancel_func.cpp",
++    "utc_blink_ewk_auth_challenge_credential_use_func.cpp",
++    "utc_blink_ewk_auth_challenge_realm_get_func.cpp",
++    "utc_blink_ewk_auth_challenge_suspend_func.cpp",
++    "utc_blink_ewk_autofill_profile_data_get_func.cpp",
++    "utc_blink_ewk_autofill_profile_data_set_func.cpp",
++    "utc_blink_ewk_autofill_profile_delete_func.cpp",
++    "utc_blink_ewk_autofill_profile_id_get_func.cpp",
++    "utc_blink_ewk_autofill_profile_new_func.cpp",
++    "utc_blink_ewk_back_forward_list_count_func.cpp",
++    "utc_blink_ewk_back_forward_list_current_item_get_func.cpp",
++    "utc_blink_ewk_back_forward_list_item_at_index_get_func.cpp",
++    "utc_blink_ewk_back_forward_list_item_original_url_get_func.cpp",
++    "utc_blink_ewk_back_forward_list_item_ref_func.cpp",
++    "utc_blink_ewk_back_forward_list_item_title_get_func.cpp",
++    "utc_blink_ewk_back_forward_list_item_unref_func.cpp",
++    "utc_blink_ewk_back_forward_list_item_url_get_func.cpp",
++    "utc_blink_ewk_back_forward_list_n_back_items_copy_func.cpp",
++    "utc_blink_ewk_back_forward_list_n_forward_items_copy_func.cpp",
++    "utc_blink_ewk_back_forward_list_next_item_get_func.cpp",
++    "utc_blink_ewk_back_forward_list_previous_item_get_func.cpp",
++    "utc_blink_ewk_base.cpp",
++    "utc_blink_ewk_base.h",
++    "utc_blink_ewk_certificate_policy_decision_allowed_set_func.cpp",
++    "utc_blink_ewk_certificate_policy_decision_certificate_pem_get_func.cpp",
++    "utc_blink_ewk_certificate_policy_decision_suspend_func.cpp",
++    "utc_blink_ewk_certificate_policy_decision_url_get_func.cpp",
++    "utc_blink_ewk_console_message_level_get_func.cpp",
++    "utc_blink_ewk_console_message_line_get_func.cpp",
++    "utc_blink_ewk_console_message_source_get_func.cpp",
++    "utc_blink_ewk_console_message_text_get_func.cpp",
++    "utc_blink_ewk_context_additional_plugin_path_set_func.cpp",
++    "utc_blink_ewk_context_application_cache_delete_all_func.cpp",
++    "utc_blink_ewk_context_application_cache_delete_func.cpp",
++    "utc_blink_ewk_context_application_cache_origins_get_func.cpp",
++    "utc_blink_ewk_context_cache_clear_func.cpp",
++    "utc_blink_ewk_context_cache_disabled_set_func.cpp",
++    "utc_blink_ewk_context_cache_model_get_func.cpp",
++    "utc_blink_ewk_context_cache_model_set_func.cpp",
++    "utc_blink_ewk_context_certificate_file_get_func.cpp",
++    "utc_blink_ewk_context_certificate_file_set_func.cpp",
++    "utc_blink_ewk_context_cookie_manager_get_func.cpp",
++    "utc_blink_ewk_context_default_get_func.cpp",
++    "utc_blink_ewk_context_delete_func.cpp",
++    "utc_blink_ewk_context_did_start_download_callback_set_func.cpp",
++    "utc_blink_ewk_context_form_autofill_profile_add_func.cpp",
++    "utc_blink_ewk_context_form_autofill_profile_get_all_func.cpp",
++    "utc_blink_ewk_context_form_autofill_profile_get_func.cpp",
++    "utc_blink_ewk_context_form_autofill_profile_remove_func.cpp",
++    "utc_blink_ewk_context_form_autofill_profile_set_func.cpp",
++    "utc_blink_ewk_context_form_autofill_profile_utils.cpp",
++    "utc_blink_ewk_context_form_autofill_profile_utils.h",
++    "utc_blink_ewk_context_form_candidate_data_delete_all_func.cpp",
++    "utc_blink_ewk_context_form_password_data_delete_all_func.cpp",
++    "utc_blink_ewk_context_icon_database_icon_object_add_func.cpp",
++    "utc_blink_ewk_context_icon_database_path_set_func.cpp",
++    "utc_blink_ewk_context_inspector_server_start_func.cpp",
++    "utc_blink_ewk_context_inspector_server_stop_func.cpp",
++    "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
++    "utc_blink_ewk_context_local_file_system_delete_func.cpp",
++    "utc_blink_ewk_context_menu.h",
++    "utc_blink_ewk_context_menu_item_append_as_action_func.cpp",
++    "utc_blink_ewk_context_menu_item_append_func.cpp",
++    "utc_blink_ewk_context_menu_item_count_func.cpp",
++    "utc_blink_ewk_context_menu_item_image_url_get_func.cpp",
++    "utc_blink_ewk_context_menu_item_link_url_get_func.cpp",
++    "utc_blink_ewk_context_menu_item_remove_func.cpp",
++    "utc_blink_ewk_context_menu_item_tag_get_func.cpp",
++    "utc_blink_ewk_context_menu_nth_item_get_func.cpp",
++    "utc_blink_ewk_context_new_func.cpp",
++    "utc_blink_ewk_context_new_with_injected_bundle_path_func.cc",
++    "utc_blink_ewk_context_notify_low_memory_func.cpp",
++    "utc_blink_ewk_context_pixmap_set_func.cpp",
++    "utc_blink_ewk_context_preferred_languages_set_func.cpp",
++    "utc_blink_ewk_context_proxy_uri_get_func.cpp",
++    "utc_blink_ewk_context_proxy_uri_set_func.cpp",
++    "utc_blink_ewk_context_vibration_client_callbacks_set_func.cpp",
++    "utc_blink_ewk_context_web_database_delete_all_func.cpp",
++    "utc_blink_ewk_context_web_database_delete_func.cpp",
++    "utc_blink_ewk_context_web_database_origins_get_func.cpp",
++    "utc_blink_ewk_context_web_indexed_database_delete_all_func.cpp",
++    "utc_blink_ewk_context_web_storage_delete_all_func.cpp",
++    "utc_blink_ewk_context_web_storage_origin_delete_func.cpp",
++    "utc_blink_ewk_context_web_storage_origins_get_func.cpp",
++    "utc_blink_ewk_cookie_manager_accept_policy_async_get_func.cpp",
++    "utc_blink_ewk_cookie_manager_accept_policy_set_func.cpp",
++    "utc_blink_ewk_cookie_manager_cookies_clear_func.cpp",
++    "utc_blink_ewk_custom_handlers_data_base_url_get_func.cpp",
++    "utc_blink_ewk_custom_handlers_data_result_set_func.cpp",
++    "utc_blink_ewk_custom_handlers_data_target_get_func.cpp",
++    "utc_blink_ewk_custom_handlers_data_title_get_func.cpp",
++    "utc_blink_ewk_custom_handlers_data_url_get_func.cpp",
++    "utc_blink_ewk_error_code_get_func.cpp",
++    "utc_blink_ewk_error_description_get_func.cpp",
++    "utc_blink_ewk_error_type_get_func.cpp",
++    "utc_blink_ewk_error_url_get_func.cpp",
++    "utc_blink_ewk_frame_is_main_frame_func.cpp",
++    "utc_blink_ewk_geolocation_permission_reply_func.cpp",
++    "utc_blink_ewk_geolocation_permission_request_origin_get_func.cpp",
++    "utc_blink_ewk_geolocation_permission_request_set_func.cpp",
++    "utc_blink_ewk_geolocation_permission_request_suspend_func.cpp",
++    "utc_blink_ewk_history_back_list_length_get_func.cpp",
++    "utc_blink_ewk_history_forward_list_length_get.cpp",
++    "utc_blink_ewk_history_free_func.cpp",
++    "utc_blink_ewk_history_item_title_get_func.cpp",
++    "utc_blink_ewk_history_item_uri_get_func.cpp",
++    "utc_blink_ewk_history_nth_item_get.cpp",
++    "utc_blink_ewk_hit_test_attribute_hash_get_func.cpp",
++    "utc_blink_ewk_hit_test_free_func.cpp",
++    "utc_blink_ewk_hit_test_image_file_name_extension_get_func.cpp",
++    "utc_blink_ewk_hit_test_image_uri_get_func.cpp",
++    "utc_blink_ewk_hit_test_link_label_get_func.cpp",
++    "utc_blink_ewk_hit_test_link_title_get_func.cpp",
++    "utc_blink_ewk_hit_test_link_uri_get_func.cpp",
++    "utc_blink_ewk_hit_test_media_uri_get_func.cpp",
++    "utc_blink_ewk_hit_test_node_value_get_func.cpp",
++    "utc_blink_ewk_hit_test_result_context_get_func.cpp",
++    "utc_blink_ewk_hit_test_tag_name_get_func.cpp",
++    "utc_blink_ewk_home_directory_get_func.cpp",
++    "utc_blink_ewk_home_directory_set_func.cpp",
++    "utc_blink_ewk_notification_body_get_func.cpp",
++    "utc_blink_ewk_notification_callbacks_reset_func.cpp",
++    "utc_blink_ewk_notification_callbacks_set_func.cpp",
++    "utc_blink_ewk_notification_clicked_func.cpp",
++    "utc_blink_ewk_notification_closed_func.cpp",
++    "utc_blink_ewk_notification_icon_get_func.cpp",
++    "utc_blink_ewk_notification_icon_save_as_png_func.cpp",
++    "utc_blink_ewk_notification_id_get_func.cpp",
++    "utc_blink_ewk_notification_permission_reply_func.cpp",
++    "utc_blink_ewk_notification_permission_request_origin_get_func.cpp",
++    "utc_blink_ewk_notification_permission_request_set_func.cpp",
++    "utc_blink_ewk_notification_permission_request_suspend_func.cpp",
++    "utc_blink_ewk_notification_policies_removed_func.cpp",
++    "utc_blink_ewk_notification_security_origin_get_func.cpp",
++    "utc_blink_ewk_notification_showed_func.cpp",
++    "utc_blink_ewk_notification_silent_get_func.cpp",
++    "utc_blink_ewk_notification_title_get_func.cpp",
++    "utc_blink_ewk_policy_decision_cookie_get_func.cpp",
++    "utc_blink_ewk_policy_decision_frame_get_func.cpp",
++    "utc_blink_ewk_policy_decision_host_get_func.cpp",
++    "utc_blink_ewk_policy_decision_http_method_get_func.cpp",
++    "utc_blink_ewk_policy_decision_ignore_func.cpp",
++    "utc_blink_ewk_policy_decision_navigation_type_get_func.cpp",
++    "utc_blink_ewk_policy_decision_password_get_func.cpp",
++    "utc_blink_ewk_policy_decision_response_headers_get_func.cpp",
++    "utc_blink_ewk_policy_decision_response_mime_get_func.cpp",
++    "utc_blink_ewk_policy_decision_response_status_code_get_func.cpp",
++    "utc_blink_ewk_policy_decision_scheme_get_func.cpp",
++    "utc_blink_ewk_policy_decision_suspend_func.cpp",
++    "utc_blink_ewk_policy_decision_type_get_func.cpp",
++    "utc_blink_ewk_policy_decision_url_get_func.cpp",
++    "utc_blink_ewk_policy_decision_use_func.cpp",
++    "utc_blink_ewk_policy_decision_userid_get_func.cpp",
++    "utc_blink_ewk_quota_permission_request_is_persistent_get_func.cpp",
++    "utc_blink_ewk_quota_permission_request_origin_host_get_func.cpp",
++    "utc_blink_ewk_quota_permission_request_origin_port_get_func.cpp",
++    "utc_blink_ewk_quota_permission_request_origin_protocol_get_func.cpp",
++    "utc_blink_ewk_quota_permission_request_quota_get_func.cpp",
++    "utc_blink_ewk_security_origin_host_get_func.cpp",
++    "utc_blink_ewk_security_origin_port_get_func.cpp",
++    "utc_blink_ewk_security_origin_protocol_get_func.cpp",
++    "utc_blink_ewk_settings_autofill_password_form_enabled_get_func.cpp",
++    "utc_blink_ewk_settings_autofill_password_form_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_auto_fitting_get_func.cpp",
++    "utc_blink_ewk_settings_auto_fitting_set_func.cpp",
++    "utc_blink_ewk_settings_clear_text_selection_automatically_set_func.cpp",
++    "utc_blink_ewk_settings_current_legacy_font_size_mode_set_func.cpp",
++    "utc_blink_ewk_settings_default_encoding_set_func.cpp",
++    "utc_blink_ewk_settings_default_keypad_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_detect_contents_automatically_set_func.cpp",
++    "utc_blink_ewk_settings_edge_effect_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_editable_link_behavior_set_func.cpp",
++    "utc_blink_ewk_settings_extra_feature_set_func.cpp",
++    "utc_blink_ewk_settings_font_default_size_get_func.cpp",
++    "utc_blink_ewk_settings_font_default_size_set_func.cpp",
++    "utc_blink_ewk_settings_force_zoom_set_func.cpp",
++    "utc_blink_ewk_settings_form_candidate_data_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_form_profile_data_enabled_get_func.cpp",
++    "utc_blink_ewk_settings_form_profile_data_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_initial_list_style_position_get_func.cpp",
++    "utc_blink_ewk_settings_initial_list_style_position_set_func.cpp",
++    "utc_blink_ewk_settings_is_encoding_valid_func.cpp",
++    "utc_blink_ewk_settings_javascript_enabled_get_func.cpp",
++    "utc_blink_ewk_settings_javascript_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_link_effect_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_link_magnifier_enabled_get_func.cpp",
++    "utc_blink_ewk_settings_link_magnifier_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_private_browsing_enabled_get_func.cpp",
++    "utc_blink_ewk_settings_private_browsing_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_load_remote_images_set_func.cpp",
++    "utc_blink_ewk_settings_loads_images_automatically_set_func.cpp",
++    "utc_blink_ewk_settings_paste_image_uri_mode_set_func.cpp",
++    "utc_blink_ewk_settings_plugins_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_scripts_can_open_windows_get_func.cpp",
++    "utc_blink_ewk_settings_scripts_can_open_windows_set_func.cpp",
++    "utc_blink_ewk_settings_scripts_window_open_get_func.cpp",
++    "utc_blink_ewk_settings_scripts_window_open_set_func.cpp",
++    "utc_blink_ewk_settings_select_word_automatically_set_func.cpp",
++    "utc_blink_ewk_settings_spdy_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_text_autosizing_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_text_autosizing_font_scale_factor_set_func.cpp",
++    "utc_blink_ewk_settings_text_selection_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_text_style_state_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_text_zoom_enabled_set_func.cpp",
++    "utc_blink_ewk_settings_uses_encoding_detector_set_func.cpp",
++    "utc_blink_ewk_settings_uses_keypad_without_user_action_set_func.cpp",
++    "utc_blink_ewk_text_style_align_center_get_func.cpp",
++    "utc_blink_ewk_text_style_align_full_get_func.cpp",
++    "utc_blink_ewk_text_style_align_left_get_func.cpp",
++    "utc_blink_ewk_text_style_align_right_get_func.cpp",
++    "utc_blink_ewk_text_style_bg_color_get_func.cpp",
++    "utc_blink_ewk_text_style_bold_get_func.cpp",
++    "utc_blink_ewk_text_style_color_get_func.cpp",
++    "utc_blink_ewk_text_style_font_size_get_func.cpp",
++    "utc_blink_ewk_text_style_has_composition_get_func.cpp",
++    "utc_blink_ewk_text_style_italic_get_func.cpp",
++    "utc_blink_ewk_text_style_ordered_list_get_func.cpp",
++    "utc_blink_ewk_text_style_position_get_func.cpp",
++    "utc_blink_ewk_text_style_underline_get_func.cpp",
++    "utc_blink_ewk_text_style_unordered_list_get_func.cpp",
++    "utc_blink_ewk_user_media_permission_request_set_func.cpp",
++    "utc_blink_ewk_user_media_permission_request_suspend_func.cpp",
++    "utc_blink_ewk_view_add_func.cpp",
++    "utc_blink_ewk_view_add_in_incognito_mode_func.cpp",
++    "utc_blink_ewk_view_add_with_context_func.cpp",
++    "utc_blink_ewk_view_add_with_session_data_func.cpp",
++    "utc_blink_ewk_view_application_name_for_user_agent_get_func.cpp",
++    "utc_blink_ewk_view_application_name_for_user_agent_set_func.cpp",
++    "utc_blink_ewk_view_back_forward_list_clear_func.cpp",
++    "utc_blink_ewk_view_back_forward_list_get_func.cpp",
++    "utc_blink_ewk_view_back_func.cpp",
++    "utc_blink_ewk_view_back_possible_func.cpp",
++    "utc_blink_ewk_view_browser_font_set_func.cpp",
++    "utc_blink_ewk_view_command_execute_func.cpp",
++    "utc_blink_ewk_view_content_security_policy_set_func.cpp",
++    "utc_blink_ewk_view_contents_pdf_get_func.cpp",
++    "utc_blink_ewk_view_contents_set_func.cpp",
++    "utc_blink_ewk_view_contents_size_get_func.cpp",
++    "utc_blink_ewk_view_context_get_func.cpp",
++    "utc_blink_ewk_view_custom_header_add_func.cpp",
++    "utc_blink_ewk_view_custom_header_remove_func.cpp",
++    "utc_blink_ewk_view_draws_transparent_background_set_func.cpp",
++    "utc_blink_ewk_view_encoding_custom_set_func.cpp",
++    "utc_blink_ewk_view_forward_func.cpp",
++    "utc_blink_ewk_view_forward_possible_func.cpp",
++    "utc_blink_ewk_view_fullscreen_exit_func.cpp",
++    "utc_blink_ewk_view_geolocation_permission_callback_set_func.cpp",
++    "utc_blink_ewk_view_get_cookies_for_url_func.cpp",
++    "utc_blink_ewk_view_history_get_func.cpp",
++    "utc_blink_ewk_view_hit_test_new_func.cpp",
++    "utc_blink_ewk_view_hit_test_request_func.cpp",
++    "utc_blink_ewk_view_html_contents_set_func.cpp",
++    "utc_blink_ewk_view_html_string_load_func.cpp",
++    "utc_blink_ewk_view_inspector_server_stop_func.cpp",
++    "utc_blink_ewk_view_javascript_confirm_reply_func.cpp",
++    "utc_blink_ewk_view_load_progress_get_func.cpp",
++    "utc_blink_ewk_view_main_frame_get_func.cpp",
++    "utc_blink_ewk_view_mhtml_data_get_func.cpp",
++    "utc_blink_ewk_view_notification_permission_callback_set_func.cpp",
++    "utc_blink_ewk_view_orientation_lock_callback_set_func.cpp",
++    "utc_blink_ewk_view_orientation_send_func.cpp",
++    "utc_blink_ewk_view_page_visibility_state_set_func.cpp",
++    "utc_blink_ewk_view_plain_text_get_func.cpp",
++    "utc_blink_ewk_view_quota_permission_request_callback_set_func.cpp",
++    "utc_blink_ewk_view_quota_permission_request_cancel_func.cpp",
++    "utc_blink_ewk_view_quota_permission_request_reply_func.cpp",
++    "utc_blink_ewk_view_reload_func.cpp",
++    "utc_blink_ewk_view_resume_func.cpp",
++    "utc_blink_ewk_view_scale_get_func.cpp",
++    "utc_blink_ewk_view_scale_range_get_func.cpp",
++    "utc_blink_ewk_view_scale_set_func.cpp",
++    "utc_blink_ewk_view_screenshot_contents_get_func.cpp",
++    "utc_blink_ewk_view_script_execute_func.cpp",
++    "utc_blink_ewk_view_scroll_pos_get_func.cpp",
++    "utc_blink_ewk_view_scroll_set_func.cpp",
++    "utc_blink_ewk_view_scroll_size_get_func.cpp",
++    "utc_blink_ewk_view_session_data_get_func.cpp",
++    "utc_blink_ewk_view_settings_get_func.cpp",
++    "utc_blink_ewk_view_stop_func.cpp",
++    "utc_blink_ewk_view_suspend_func.cpp",
++    "utc_blink_ewk_view_text_find_func.cpp",
++    "utc_blink_ewk_view_text_find_highlight_clear_func.cpp",
++    "utc_blink_ewk_view_text_selection_clear_func.cpp",
++    "utc_blink_ewk_view_text_selection_text_get_func.cpp",
++    "utc_blink_ewk_view_text_zoom_get_func.cpp",
++    "utc_blink_ewk_view_text_zoom_set_func.cpp",
++    "utc_blink_ewk_view_title_get_func.cpp",
++    "utc_blink_ewk_view_touch_events_enabled_set_func.cpp",
++    "utc_blink_ewk_view_url_get_func.cpp",
++    "utc_blink_ewk_view_url_request_set_func.cpp",
++    "utc_blink_ewk_view_url_set_func.cpp",
++    "utc_blink_ewk_view_user_agent_get_func.cpp",
++    "utc_blink_ewk_view_user_agent_set_func.cpp",
++    "utc_blink_ewk_view_use_settings_font_func.cpp",
++    "utc_blink_ewk_view_visibility_set_func.cpp",
++    "utc_blink_ewk_view_web_application_capable_get_func.cpp",
++    "utc_blink_ewk_view_web_application_icon_url_get_func.cpp",
++    "utc_blink_ewk_view_web_application_icon_urls_get_func.cpp",
++    "utc_blink_ewk_web_application_icon_data_url_get_func.cpp",
++  ]
++  cflags = [ "-glib-2.0" ]
++  ldflags = [ "-glib-2.0" ]
++  libs = [ "glib-2.0" ]
++  #TODO : Uncomment it.
++  #deps += [ ":libbundle" ]
++  if (building_for_tizen && building_strategy=="ewk") {
++    cflags += [ "-scim" ]
++    ldflags += [ "-scim" ]
++    libs += [ "scim" ]
++  }
++  defines = []
++  if (ewk_bringup) {
++    defines += [ "EWK_BRINGUP=true" ]
++    sources -= [
++      #XXX: enable *local_file_system* once we find a way to set --allow-file-access-from-files flag at runtime
++      "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
++      "utc_blink_ewk_context_local_file_system_delete_func.cpp",
++    ]
++  }
++}
+diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec
+index a64108c..2cc95e1 100644
+--- a/packaging/chromium-efl.spec
++++ b/packaging/chromium-efl.spec
+@@ -39,12 +39,15 @@ Source1: content_shell.in
+ #       2) The value '2.0' of '%{tizen}' should be '2.3'.
+ %if "%{tizen}" == "3.0"
+ %define chromium_efl_tizen_version 3.0
++%define gn_chromium_efl_tizen_version 30
+ %endif
+ %if "%{tizen}" == "2.3" || "%{tizen}" == "2.4"
+ %define chromium_efl_tizen_version 2.4
++%define gn_chromium_efl_tizen_version 24
+ %endif
+ %if "%{tizen}" == "2.0"
+ %define chromium_efl_tizen_version 2.3
++%define gn_chromium_efl_tizen_version 23
+ %endif
+ %if %{!?TIZEN_PROFILE_TV:0}%{?TIZEN_PROFILE_TV:1} || "%{!?profile:0}%{?profile}" == "tv"
+@@ -117,6 +120,7 @@ BuildRequires: pkgconfig(zlib)
+ %if "%{chromium_efl_tizen_version}" == "3.0"
+ %ifarch armv7l
+ BuildRequires: python-accel-armv7l-cross-arm
++BuildRequires: binutils-gold
+ %endif
+ %ifarch aarch64
+ BuildRequires: python-accel-aarch64-cross-aarch64
+@@ -142,7 +146,7 @@ BuildRequires: pkgconfig(xtst)
+ # TODO(youngsoo): The binutils-gold crashes mini_browser on the Tizen v3.0 ARM 64 bit images.
+ #                 Once fixed, use binutils-gold for all targets on Tizen v3.0.
+-%ifnarch aarch64 %{arm} # [M48_2564] Temporary excluding arm architecture for fixing memory issue
++%ifnarch aarch64 #%{arm} # [M48_2564] Temporary excluding arm architecture for fixing memory issue
+                         #            FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
+ %if "%{chromium_efl_tizen_version}" == "3.0"
+ BuildRequires: binutils-gold
+@@ -277,7 +281,7 @@ trap 'tizen_src/build/apply_patches.sh -r' EXIT
+ # architecture related configuration + neon temporary workaround
+ %if %{?_skip_ninja:0}%{!?_skip_ninja:1}
+ %ifarch %{arm} aarch64
+-  export ADDITION_OPTION=" -finline-limit=64 -foptimize-sibling-calls -fno-unwind-tables -fno-exceptions -Os "
++  export ADDITION_OPTION=" -finline-limit=64 -foptimize-sibling-calls -fno-unwind-tables -fno-exceptions -O2 "
+   export CFLAGS="$CFLAGS $ADDITION_OPTION"
+   export CXXFLAGS="$CXXFLAGS $ADDITION_OPTION"
+@@ -305,13 +309,21 @@ trap 'tizen_src/build/apply_patches.sh -r' EXIT
+ # The variable chromium-efl_tizen_version and _repository are essentially needed for build.
+ # Therefore, if the variable is not defined, it explicitly raises exception here.
+ %define OUTPUT_BASE_FOLDER out.tz_v%{chromium_efl_tizen_version}.%{OUTPUT_BUILD_PROFILE_TARGET}.%{_repository}
+-export GYP_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
++%if 0%{?_use_gn:1}
++  export GN_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
++%else
++  export GYP_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
++%endif
+ #set build mode
+-%if 0%{?_debug_mode}
+-  %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Debug
++%if 0%{?_use_gn:1}
++  %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}
+ %else
+-  %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Release
++  %if 0%{?_debug_mode}
++    %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Debug
++  %else
++    %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}/Release
++  %endif
+ %endif
+ %global XWALK_GEN %{OUTPUT_FOLDER}/xwalk_gen
+@@ -329,8 +341,38 @@ fi
+   cp -a LICENSE "%{XWALK_GEN}"/LICENSE.chromium
+ %endif
++#gn generate
++%if 0%{?_use_gn:1}
++#run standard gn_chromiumefl wrapper
++   ./tizen_src/build/gn_chromiumefl.sh \
++  "exe_dir=\"%{CHROMIUM_EXE_DIR}\"" \
++  "data_dir=\"%{CHROMIUM_DATA_DIR}\"" \
++  "edje_dir=\"%{CHROMIUM_DATA_DIR}/themes\"" \
++  "locale_dir=\"%{CHROMIUM_LOCALE_DIR}\"" \
++%if 0%{?_remove_webcore_debug_symbols:1}
++  "remove_webcore_debug_symbols=true" \
++%endif
++%if 0%{?chromium_efl_tizen_version:1}
++  "chromium_efl_tizen_version=%{gn_chromium_efl_tizen_version}" \
++%endif
++%if "%{?_with_wayland}" == "1"
++  "use_wayland=true" \
++%endif
++%if "%{?_repository}" == "emulator" || "%{?_repository}" == "emulator32-x11"
++  "tizen_emulator_support=true"  \
++%endif
++%if 0%{?build_xwalk}
++  --xwalk \
++%endif
++%if 0%{?component_build}
++  "component=\"shared_library\"" \
++%endif
++  "tizen_%{OUTPUT_BUILD_PROFILE_TARGET}=true" \
++  "building_for_tizen_%{OUTPUT_BUILD_PROFILE_TARGET}=true"
++%endif
++
+ #gyp generate
+-%if %{?_skip_gyp:0}%{!?_skip_gyp:1}
++%if %{?_skip_gyp:0}%{!?_skip_gyp:1} && 0%{!?_use_gn:1}
+ #run standard gyp_chromiumefl wrapper
+    ./tizen_src/build/gyp_chromiumefl.sh \
+   -Dexe_dir="%{CHROMIUM_EXE_DIR}" \
+@@ -447,7 +489,11 @@ cp -r "%{OUTPUT_FOLDER}/locale" "%{buildroot}/%{CHROMIUM_LOCALE_DIR}"
+ install -m 0755 "%{OUTPUT_FOLDER}"/locales/*.pak      "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales
+-install -m 0755 "%{OUTPUT_FOLDER}"/lib/libchromium-ewk.so    "%{buildroot}"%{_libdir}
++%if 0%{?_use_gn:1}
++  install -m 0755 "%{OUTPUT_FOLDER}"/libchromium-ewk.so    "%{buildroot}"%{_libdir}
++%else
++  install -m 0755 "%{OUTPUT_FOLDER}"/lib/libchromium-ewk.so    "%{buildroot}"%{_libdir}
++%endif
+ install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess    "%{buildroot}%{CHROMIUM_EXE_DIR}"
+ install -m 0755 "%{OUTPUT_FOLDER}"/icudtl.dat    "%{buildroot}%{CHROMIUM_EXE_DIR}"
diff --git a/tizen_src/chromium_impl/base/base_efl.gni b/tizen_src/chromium_impl/base/base_efl.gni
new file mode 100644 (file)
index 0000000..10ce612
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright (c) 2015 Samsung Electronics. 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/ui.gni")
+
+external_base_configs = [
+  "//tizen_src/build:ecore",
+  "//tizen_src/build:libecore",
+]
+external_base_sources = [
+  "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.cc",
+  "//tizen_src/chromium_impl/base/message_loop/message_pump_ecore.h",
+]
+
+if (use_glib) {
+  external_base_sources += [ "//base/message_loop/message_pump_glib.cc" ]
+}
diff --git a/tizen_src/chromium_impl/chrome/chrome_tests_efl.gni b/tizen_src/chromium_impl/chrome/chrome_tests_efl.gni
new file mode 100644 (file)
index 0000000..d411852
--- /dev/null
@@ -0,0 +1,12 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+# For //chrome/test/chromedriver:lib target
+# It seems that keycode_text_conversion_win.cc is not used in gn files so no need to exclude it.
+external_exclude_chrome_test_driver_sources = [] #[ "test/chromedriver/keycode_text_conversion_win.cc" ]
+if (use_wayland) {
+  #external_exclude_chrome_test_driver_sources += [ "test/chromedriver/keycode_text_conversion_x.cc" ]
+}
index 8d31658..3e4c6e2 100644 (file)
@@ -10,9 +10,9 @@
     'gpu/gpu_efl.gypi',
     'media/media_efl.gypi',
     'ui/ui_efl.gypi',
-    'third_party/WebKit/Source/core/core_efl.gypi',
-    'third_party/WebKit/Source/modules/modules_efl.gypi',
-    'third_party/WebKit/Source/platform/blink_platform_efl.gypi',
+    'third_party/blink/renderer/core/core_efl.gypi',
+    'third_party/blink/renderer/modules/modules_efl.gypi',
+    'third_party/blink/renderer/platform/blink_platform_efl.gypi',
   ],
 
 # [M53_2785] Temporary disabling the codes for switching to new chromium
diff --git a/tizen_src/chromium_impl/components/components.gni b/tizen_src/chromium_impl/components/components.gni
new file mode 100644 (file)
index 0000000..31b5917
--- /dev/null
@@ -0,0 +1,9 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+declare_args() {
+  chromium_code = 1
+}
+
+js_dialog_efl_deps = [ "//tizen_src/chromium_impl/components/js_dialogs_efl" ]
diff --git a/tizen_src/chromium_impl/components/js_dialogs_efl/BUILD.gn b/tizen_src/chromium_impl/components/js_dialogs_efl/BUILD.gn
new file mode 100644 (file)
index 0000000..21aa662
--- /dev/null
@@ -0,0 +1,23 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+static_library("js_dialogs_efl") {
+  configs += [
+    "//tizen_src/build:elementary",
+    "//tizen_src/build:libelementary",
+    "//tizen_src/build:efl-extension",
+    "//tizen_src/build:libefl-extension",
+  ]
+  deps = [
+    "//base",
+    "//skia",
+  ]
+  include_dirs = [ ".." ]
+  sources = [
+    "javascript_dialog_manager_efl.cc",
+    "javascript_dialog_manager_efl.h",
+    "javascript_modal_dialog_efl.cc",
+    "javascript_modal_dialog_efl.h",
+  ]
+}
diff --git a/tizen_src/chromium_impl/content/BUILD.gn b/tizen_src/chromium_impl/content/BUILD.gn
new file mode 100644 (file)
index 0000000..37e17f9
--- /dev/null
@@ -0,0 +1,18 @@
+# copyright (c) 2015 samsung electronics. all rights reserved.
+# use of this source code is governed by a bsd-style license that can be
+# found in the license file.
+
+static_library("android_content_detection") {
+  set_sources_assignment_filter([])
+  sources = [
+    "//content/renderer/android/renderer_date_time_picker.h",
+    "//content/renderer/android/renderer_date_time_picker.cc",
+  ]
+
+  deps = [
+    "//third_party/libphonenumber:libphonenumber",
+    "//third_party/icu:icui18n",
+    "//third_party/blink/public:blink",
+    "//mojo/public/cpp/bindings:bindings",
+  ]
+}
diff --git a/tizen_src/chromium_impl/content/browser/browser_efl.gni b/tizen_src/chromium_impl/content/browser/browser_efl.gni
new file mode 100644 (file)
index 0000000..c966874
--- /dev/null
@@ -0,0 +1,82 @@
+# Copyright (c) 2015 Samsung Electronics. 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/features.gni")
+
+external_content_browser_efl_sources = [
+  "//tizen_src/chromium_impl/content/browser/compositor/context_factory_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/compositor/mailbox_output_surface_efl.h",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.h",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_view_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.h",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_contents_impl_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h",
+  "//tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h",
+  "//tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.h",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/disambiguation_popup_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.h",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.cc",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.h",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/im_context_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/native_web_keyboard_event_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.h",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.h",
+  "//tizen_src/chromium_impl/content/browser/renderer_host/web_event_factory_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h",
+  "//tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_box_efl.h",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_handle_efl.h",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.cc",
+  "//tizen_src/chromium_impl/content/browser/selection/selection_magnifier_efl.h",
+  "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_efl_delegate.h",
+  "//tizen_src/chromium_impl/content/browser/public/browser/web_contents_view_efl_delegate.h",
+]
+
+external_content_browser_efl_sources += [
+  "//content/browser/renderer_host/ui_events_helper.cc",
+  "//content/browser/renderer_host/ui_events_helper.h",
+]
+
+if (building_for_tizen) {
+  external_content_browser_efl_sources += [
+    "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.cc",
+    "//tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h",
+    "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.cc",
+    "//tizen_src/chromium_impl/content/browser/speech/tts_tizen.h",
+  ]
+}
+if (building_for_tizen_mobile) {
+  external_exclude_content_browser_efl_sources = [ "device_sensors/data_fetcher_shared_memory_default.cc" ]
+  external_content_browser_efl_sources += [
+    "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.cc",
+    "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_impl_tizen.h",
+    "//tizen_src/chromium_impl/content/browser/device_sensors/data_fetcher_shared_memory_tizen.cc",
+  ]
+}
+if (tizen_multimedia_support) {
+  external_content_browser_efl_sources += [
+    "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.cc",
+    "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h",
+    "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc",
+    "//tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h",
+    "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.cc",
+    "//tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h",
+  ]
+}
+if (tizen_tbm_support) {
+  external_content_browser_efl_sources += [
+    "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.cc",
+    "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h",
+  ]
+}
diff --git a/tizen_src/chromium_impl/content/common/BUILD.gn b/tizen_src/chromium_impl/content/common/BUILD.gn
new file mode 100644 (file)
index 0000000..7d3ab57
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+config("content_common_efl") {
+  visibility = [ "//tizen_src/chromium_impl/content/common/common_efl.gni" ]
+
+  defines = [
+    "DATA_DIR=\"$tizen_data_dir\"",
+    "EXE_DIR=\"$exe_dir\"",
+  ]
+
+  if (building_for_tizen) {
+    defines += [
+      "EDJE_DIR=\"$edje_dir\"",
+      "LOCALE_DIR=\"$locale_dir\"",
+    ]
+  } else {
+    outdir = rebase_path("$root_out_dir")
+    defines += [
+      "EDJE_DIR=\"$outdir/resources\"",
+      "LOCALE_DIR=\"$outdir/locale\"",
+    ]
+  }
+}
diff --git a/tizen_src/chromium_impl/content/common/common_efl.gni b/tizen_src/chromium_impl/content/common/common_efl.gni
new file mode 100644 (file)
index 0000000..21a7133
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_content_common_efl_configs = [ "//tizen_src/chromium_impl/content/common:content_common_efl" ]
+
+external_exclude_content_common_efl_sources = []
+
+external_content_common_efl_sources = [
+  "//tizen_src/chromium_impl/content/common/content_client_export.cc",
+  "//tizen_src/chromium_impl/content/common/content_client_export.h",
+  "//tizen_src/chromium_impl/content/common/message_generator_efl.cc",
+  "//tizen_src/chromium_impl/content/common/message_generator_efl.h",
+  "//tizen_src/chromium_impl/content/common/paths_efl.h",
+  "//tizen_src/chromium_impl/content/common/paths_efl.cc",
+  "//tizen_src/chromium_impl/content/common/render_messages_efl.h",
+  "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.cc",
+  "//tizen_src/chromium_impl/content/common/cursors/webcursor_efl.h",
+  "//tizen_src/chromium_impl/content/common/wrt/wrt_url_parse.h",
+]
+
+if (building_for_tizen) {
+  external_content_common_efl_sources += [
+    "//tizen_src/chromium_impl/content/common/tts_messages_efl.h",
+    "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.cc",
+    "//tizen_src/chromium_impl/content/common/tts_utterance_request_efl.h",
+  ]
+}
+
+if (building_for_tizen && !ewk_bringup) {
+  external_content_common_efl_sources += [
+    "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl.cc",
+    "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl.cc",
+  ]
+
+  if (!wayland_bringup) {
+    external_content_common_efl_sources += [
+      "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.cc",
+      "//tizen_src/chromium_impl/content/common/gpu/client/gpu_memory_buffer_impl_efl_pixmap.h",
+      "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.cc",
+      "//tizen_src/chromium_impl/content/common/gpu/gpu_memory_buffer_factory_efl_pixmap.h",
+    ]
+  }
+}
+
+if (tizen_multimedia_support) {
+  external_content_common_efl_sources += [
+    "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_enums_efl.h",
+    "//tizen_src/chromium_impl/content/common/media/efl/media_player_messages_efl.h",
+    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h",
+    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc",
+    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h",
+    "//tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc",
+  ]
+}
diff --git a/tizen_src/chromium_impl/content/content_efl.gni b/tizen_src/chromium_impl/content/content_efl.gni
new file mode 100644 (file)
index 0000000..8430f21
--- /dev/null
@@ -0,0 +1,108 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+import("//tizen_src/chromium_impl/components/components.gni")
+
+external_content_common_configs = [
+  "//tizen_src/build:capi-appfw-application",
+  "//tizen_src/build:libcapi-appfw-application",
+  "//tizen_src/build:tizen_tzplatform_config",
+  "//tizen_src/build:libtizen_tzplatform_config",
+  "//tizen_src/build:tts",
+  "//tizen_src/build:libtts",
+]
+
+
+external_content_browser_configs = [
+  "//tizen_src/build:capi-media-player",
+  "//tizen_src/build:libcapi-media-player",
+  "//tizen_src/build:capi-media-tool",
+  "//tizen_src/build:libcapi-media-tool",
+  "//tizen_src/build:capi-system-sensor",
+  "//tizen_src/build:libcapi-system-sensor",
+  "//tizen_src/build:ecore",
+  "//tizen_src/build:libecore",
+  "//tizen_src/build:ecore-imf-evas",
+  "//tizen_src/build:libecore-imf-evas",
+  "//tizen_src/build:ecore-evas",
+  "//tizen_src/build:libecore-evas",
+  "//tizen_src/build:elementary",
+  "//tizen_src/build:libelementary",
+  "//tizen_src/build:efl-extension",
+  "//tizen_src/build:libefl-extension",
+]
+
+external_content_browser_extra_configs = [
+  "//tizen_src/build:tts",
+  "//tizen_src/build:libtts",
+]
+
+external_content_browser_deps = [
+  "//tizen_src/chromium_impl/efl:window-factory",
+  "//tizen_src/chromium_impl/edje_resources:edje_resources_efl",
+  "//ui/gl:gl",
+]
+
+external_content_renderer_extra_configs = [
+  "//tizen_src/build:tts",
+  "//tizen_src/build:libtts",
+]
+
+external_content_renderer_deps = [
+  "//tizen_src/chromium_impl/content:android_content_detection",
+]
+
+external_content_gpu_configs = [
+  "//tizen_src/build:evas",
+  "//tizen_src/build:libevas",
+]
+
+external_content_shell_configs = [
+  "//tizen_src/build:evas",
+  "//tizen_src/build:libevas",
+  "//tizen_src/build:ecore-evas",
+  "//tizen_src/build:libecore-evas",
+  "//tizen_src/build:elementary",
+  "//tizen_src/build:libelementary",
+]
+
+external_content_shell_deps = [
+  "//tizen_src/chromium_impl/efl:efl-init",
+]
+external_content_shell_deps += js_dialog_efl_deps
+
+if (building_for_tizen) {
+  external_content_browser_configs += [
+    "//tizen_src/build:vconf",
+    "//tizen_src/build:libvconf",
+  ]
+}
+
+if (!use_wayland) {
+    external_content_common_configs += [ "//tizen_src/build:ecore-x" ]
+    external_content_common_configs += [ "//tizen_src/build:libecore-x" ]
+    external_content_browser_configs += [ "//tizen_src/build:x11" ]
+    external_content_browser_configs += [ "//tizen_src/build:libx11" ]
+    external_content_browser_extra_configs += [ "//tizen_src/build:ecore-x" ]
+    external_content_browser_extra_configs += [ "//tizen_src/build:libecore-x" ]
+    external_content_shell_configs += [ "//tizen_src/build:ecore-x" ]
+    external_content_shell_configs += [ "//tizen_src/build:libecore-x" ]
+} else {
+   external_content_common_configs += [ "//tizen_src/build:ecore-wayland" ]
+   external_content_common_configs += [ "//tizen_src/build:libecore-wayland" ]
+   external_content_shell_configs += [ "//tizen_src/build:ecore-wayland" ]
+   external_content_shell_configs += [ "//tizen_src/build:libecore-wayland" ]
+}
+
+if (tizen_multimedia_support) {
+   external_content_browser_configs += [
+     "//tizen_src/build:capi-media-player",
+     "//tizen_src/build:libcapi-media-player",
+     "//tizen_src/build:capi-media-tool",
+     "//tizen_src/build:libcapi-media-tool",
+   ]
+   external_content_common_configs += ["//tizen_src/build:gstreamer"]
+   external_content_common_configs += ["//tizen_src/build:libgstreamer"]
+}
index d1075b0..fbfb049 100644 (file)
@@ -15,7 +15,7 @@
       'dependencies' : [
         '<(DEPTH)/third_party/libphonenumber/libphonenumber.gyp:libphonenumber',
         '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
-        '<(DEPTH)/third_party/WebKit/public/blink.gyp:blink',
+        '<(DEPTH)/third_party/blink/public/blink.gyp:blink',
         '<(DEPTH)/mojo/mojo_public.gyp:mojo_cpp_bindings',
       ],
       'sources': [
diff --git a/tizen_src/chromium_impl/content/gpu/gpu_efl.gni b/tizen_src/chromium_impl/content/gpu/gpu_efl.gni
new file mode 100644 (file)
index 0000000..97a5235
--- /dev/null
@@ -0,0 +1,12 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_content_gpu_efl_sources = [
+  "//tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc",
+  "//tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc",
+  "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.h",
+  "//tizen_src/chromium_impl/content/gpu/shared_mailbox_manager.cc",
+]
+
+external_exclude_content_gpu_efl_sources = [ "in_process_gpu_thread.cc" ]
diff --git a/tizen_src/chromium_impl/content/renderer/renderer_efl.gni b/tizen_src/chromium_impl/content/renderer/renderer_efl.gni
new file mode 100644 (file)
index 0000000..ba3f05d
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_exclude_content_renderer_efl_sources = []
+
+if (building_for_tizen) {
+  external_content_renderer_efl_sources = [
+    "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.cc",
+    "//tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h",
+  ]
+}
+
+if (tizen_multimedia_support) {
+  external_exclude_content_renderer_efl_sources = [
+    "//content/renderer/media/audio_decoder.cc",
+    "//content/renderer/media/audio_decoder.h",
+  ]
+
+  external_content_renderer_efl_sources += [
+    "media/efl/audio_decoder_efl.h",
+    "media/efl/media_source_delegate_efl.cc",
+    "media/efl/media_source_delegate_efl.h",
+    "media/efl/renderer_demuxer_efl.cc",
+    "media/efl/renderer_demuxer_efl.h",
+    "media/efl/renderer_media_player_manager_efl.cc",
+    "media/efl/renderer_media_player_manager_efl.h",
+    "media/efl/webmediaplayer_efl.cc",
+    "media/efl/webmediaplayer_efl.h",
+    "media/tizen/audio_decoder_capi.cc",
+  ]
+}
diff --git a/tizen_src/chromium_impl/content/shell/shell_efl.gni b/tizen_src/chromium_impl/content/shell/shell_efl.gni
new file mode 100644 (file)
index 0000000..7e051e6
--- /dev/null
@@ -0,0 +1,12 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_content_shell_lib_efl_sources = [
+  "//tizen_src/chromium_impl/content/shell/browser/shell_efl.cc",
+  "//tizen_src/chromium_impl/content/shell/browser/shell_web_contents_view_delegate_efl.cc"
+]
+
+external_content_shell_efl_sources = [ "//tizen_src/chromium_impl/content/shell/browser/shell_main_efl.cc" ]
+
+external_exclude_content_shell_efl_sources = [ "app/shell_main.cc" ]
diff --git a/tizen_src/chromium_impl/device/battery_tizen.gni b/tizen_src/chromium_impl/device/battery_tizen.gni
new file mode 100644 (file)
index 0000000..0e5ee98
--- /dev/null
@@ -0,0 +1,15 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_device_battery_configs = [
+  "//tizen_src/build:capi-system-device",
+  "//tizen_src/build:libcapi-system-device",
+  "//tizen_src/build:vconf",
+  "//tizen_src/build:libvconf",
+]
+
+external_device_battery_sources = [
+  "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.cc",
+  "//tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h",
+]
diff --git a/tizen_src/chromium_impl/device/vibration/vibration_efl.gni b/tizen_src/chromium_impl/device/vibration/vibration_efl.gni
new file mode 100644 (file)
index 0000000..d0869ec
--- /dev/null
@@ -0,0 +1,11 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_device_vibration_efl_sources = [
+  "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.cc",
+  "//tizen_src/chromium_impl/device/vibration/vibration_manager_impl_efl.h",
+  "//tizen_src/chromium_impl/device/vibration/vibration_provider_client.h",
+]
+
+external_exclude_device_vibration_efl_sources = [ "vibration_manager_impl_default.cc" ]
diff --git a/tizen_src/chromium_impl/edje_resources/BUILD.gn b/tizen_src/chromium_impl/edje_resources/BUILD.gn
new file mode 100644 (file)
index 0000000..b43c08f
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+template("edje_res_efl") {
+  edje_target_name = "${target_name}_generate"
+  action_foreach(edje_target_name) {
+    script = "//tizen_src/build/cmd_execution.py"
+    sources = invoker.sources
+    outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
+    args = [
+      "$edje_compiler",
+      "-id",
+      rebase_path("images/"),
+      rebase_path("{{source_file_part}}"),
+      rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
+    ]
+  }
+
+  source_set(target_name) {
+    deps = [ ":$edje_target_name" ]
+  }
+}
+
+edje_res_efl("edje_resources_efl") {
+  sources = [
+    "SelectionHandles.edc",
+    "Magnifier.edc",
+    "DisambiguationPopup.edc",
+    "Edge.edc",
+  ]
+}
diff --git a/tizen_src/chromium_impl/efl/BUILD.gn b/tizen_src/chromium_impl/efl/BUILD.gn
new file mode 100644 (file)
index 0000000..e44699f
--- /dev/null
@@ -0,0 +1,47 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+static_library("window-factory") {
+  configs += [ "//tizen_src/build:evas" ]
+  configs += [ "//tizen_src/build:libevas" ]
+  configs += [ "//tizen_src/build:elementary" ]
+  configs += [ "//tizen_src/build:libelementary" ]
+  public_configs = [ "//tizen_src/build:elementary-public" ]
+
+  sources = [
+    "window_factory.h",
+    "window_factory.cc",
+  ]
+}
+
+static_library("efl-init") {
+  configs += [ "//tizen_src/build:evas" ]
+  configs += [ "//tizen_src/build:libevas" ]
+  configs += [ "//tizen_src/build:elementary" ]
+  configs += [ "//tizen_src/build:libelementary" ]
+  public_configs = [ "//tizen_src/build:elementary-public" ]
+
+  deps = [ "//ui/compositor:compositor" ]
+
+  sources = [
+    "efl_export.h",
+    "init.h",
+    "init.cc",
+  ]
+
+  if (use_ozone) {
+    deps += [ "//ui/ozone:ozone" ]
+  }
+  if (use_wayland) {
+    configs += [ "//tizen_src/build:ecore-wayland" ]
+    configs += [ "//tizen_src/build:libecore-wayland" ]
+    public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
+  } else {
+    configs += [ "//tizen_src/build:ecore-x" ]
+    configs += [ "//tizen_src/build:libecore-x" ]
+    public_configs += [ "//tizen_src/build:ecore-x-public" ]
+  }
+}
diff --git a/tizen_src/chromium_impl/gpu/gpu_efl.gni b/tizen_src/chromium_impl/gpu/gpu_efl.gni
new file mode 100644 (file)
index 0000000..87c6ab9
--- /dev/null
@@ -0,0 +1,23 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_exclude_gpu_efl_sources = [
+  "gpu_driver_bug_list_json.cc",
+  "gpu_info_collector_x11.cc",
+  "software_rendering_list_json.cc",
+]
+
+if (!is_tizen) {
+  external_exclude_gpu_efl_sources += [
+    "gpu_info_collector_linux.cc",
+  ]
+}
+
+external_gpu_efl_sources = [
+  "//tizen_src/chromium_impl/gpu/config/gpu_driver_bug_list_json_efl.cc",
+  "//tizen_src/chromium_impl/gpu/config/gpu_info_collector_efl.cc",
+  "//tizen_src/chromium_impl/gpu/config/software_rendering_list_json_efl.cc",
+  "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.cc",
+  "//tizen_src/chromium_impl/gpu/config/scoped_restore_non_owned_egl_context.h"
+]
diff --git a/tizen_src/chromium_impl/media/BUILD.gn b/tizen_src/chromium_impl/media/BUILD.gn
new file mode 100644 (file)
index 0000000..5d9a968
--- /dev/null
@@ -0,0 +1,23 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+if (tizen_multimedia_support) {
+  config("media_efl_config") {
+    defines = [
+      "TIZEN_VIDEO_CAPTURE_SUPPORT",
+      "TIZEN_MULTIMEDIA_ZEROCOPY_SUPPORT",
+    ]
+
+    include_dirs = [
+      "//third_party/WebKit",
+      "//third_party/libyuv/include",
+      "//third_party/mojo/src",
+      "//v8/include",
+    ]
+
+    defines += [ "TIZEN_MULTIMEDIA_EME_SUPPORT = 1" ]
+  }
+}
diff --git a/tizen_src/chromium_impl/media/media_efl.gni b/tizen_src/chromium_impl/media/media_efl.gni
new file mode 100644 (file)
index 0000000..04747a0
--- /dev/null
@@ -0,0 +1,86 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_media_efl_deps = []
+external_media_efl_sources = []
+external_exclude_media_efl_sources = []
+external_media_efl_config = []
+
+if (use_ozone) {
+  external_media_efl_deps += [ "//tizen_src/chromium_impl/ui/ozone:ozone_efl" ]
+}
+
+if (tizen_multimedia_support) {
+  external_media_efl_deps += [
+    "//tizen_src/build:capi-media-audio-io",
+    "//tizen_src/build:libcapi-media-audio-io",
+    "//tizen_src/build:capi-media-camera",
+    "//tizen_src/build:libcapi-media-camera",
+    "//tizen_src/build:capi-media-player",
+    "//tizen_src/build:libcapi-media-player",
+    "//tizen_src/build:ecore",
+    "//tizen_src/build:libecore",
+    "//tizen_src/build:mm_player",
+  ]
+
+  if (!use_wayland) {
+    external_media_efl_deps += [
+      "//tizen_src/build:ecore-x",
+      "//tizen_src/build:libecore-x",
+      "//ui/gl:gl",
+    ]
+  } else {
+    external_media_efl_deps += [ "//tizen_src/build:ecore-wayland" ]
+    external_media_efl_deps += [ "//tizen_src/build:libecore-wayland" ]
+  }
+
+  if (building_for_tizen_mobile) {
+    external_media_efl_deps += [ "//tizen_src/build:capi-system-device" ]
+    external_media_efl_deps += [ "//tizen_src/build:libcapi-system-device" ]
+  }
+
+  external_media_efl_sources += [
+    "audio/tizen/audio_manager_capi.cc",
+    "audio/tizen/audio_manager_capi.h",
+    "audio/tizen/audio_manager_tizen.cc",
+    "audio/tizen/capi_audio_input.cc",
+    "audio/tizen/capi_audio_input.h",
+    "audio/tizen/capi_audio_output.cc",
+    "audio/tizen/capi_audio_output.h",
+    "audio/tizen/capi_util.cc",
+    "audio/tizen/capi_util.h",
+    "base/efl/demuxer_efl.h",
+    "base/efl/demuxer_stream_player_params_efl.cc",
+    "base/efl/demuxer_stream_player_params_efl.h",
+    "base/efl/media_player_efl.cc",
+    "base/efl/media_player_efl.h",
+    "base/efl/media_player_manager_efl.h",
+    "base/efl/media_player_util_efl.cc",
+    "base/efl/media_player_util_efl.h",
+    "base/efl/webaudio_decoder_efl.h",
+    "base/efl/webaudio_media_codec_info_efl.h",
+    "base/tizen/media_player_bridge_capi.cc",
+    "base/tizen/media_player_bridge_capi.h",
+    "base/tizen/media_source_player_capi.cc",
+    "base/tizen/media_source_player_capi.h",
+    "base/tizen/webaudio_decoder_browser_capi.cc",
+    "base/tizen/webaudio_decoder_browser_capi.h",
+    "capture/video/tizen/video_capture_device_factory_tizen.cc",
+    "capture/video/tizen/video_capture_device_factory_tizen.h",
+    "capture/video/tizen/video_capture_device_tizen.cc",
+    "capture/video/tizen/video_capture_device_tizen.h",
+  ]
+
+  external_exclude_media_efl_sources += [
+    "audio/linux/audio_manager_linux.cc",
+    "capture/video/linux/video_capture_device_factory_linux.cc",
+    "capture/video/linux/video_capture_device_factory_linux.h",
+    "capture/video/linux/video_capture_device_linux.cc",
+    "capture/video/linux/video_capture_device_linux.h",
+  ]
+
+  external_media_efl_config += [ ":media_efl_config" ]
+}
diff --git a/tizen_src/chromium_impl/third_party/WebKit/Source/core/BUILD.gn b/tizen_src/chromium_impl/third_party/WebKit/Source/core/BUILD.gn
new file mode 100644 (file)
index 0000000..d436269
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("webkit_core_generated") {
+  sources = [
+    "$root_gen_dir/TizenUserAgentStyleSheets.h",
+    "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
+  ]
+
+  deps = [ ":TizenUserAgentStyleSheets" ]
+}
+
+action("TizenUserAgentStyleSheets") {
+  script = "make-file-arrays.py"
+  stylesheet = "rendering/themeChromiumTizen.css"
+  inputs = [
+    stylesheet,
+  ]
+  outputs = [
+    "$root_gen_dir/TizenUserAgentStyleSheets.h",
+    "$root_gen_dir/TizenUserAgentStyleSheetsData.cpp",
+  ]
+  out_h = rebase_path("$root_gen_dir/TizenUserAgentStyleSheets.h", root_build_dir)
+  out_cpp = rebase_path("$root_gen_dir/TizenUserAgentStyleSheetsData.cpp", root_build_dir)
+  args = [
+    "--namespace",
+    "blink",
+    "--out-h=$out_h",
+    "--out-cpp=$out_cpp",
+  ] + rebase_path(inputs, root_build_dir)
+}
diff --git a/tizen_src/chromium_impl/third_party/WebKit/Source/core/core_efl.gni b/tizen_src/chromium_impl/third_party/WebKit/Source/core/core_efl.gni
new file mode 100644 (file)
index 0000000..84fbb10
--- /dev/null
@@ -0,0 +1,26 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# For //third_party/blink/renderer/core:rendering target
+# Temporary kept in the //third_party/blink/renderer/core:remaining target
+if (is_tizen) {
+  # Already excluded using !linux in //third_party/blink/renderer/core/BUILD.gn
+  external_exclude_webkit_core_rendering_sources = []
+} else {
+# [TODO] This code should be fixed.
+#  external_exclude_webkit_core_rendering_sources = [ "layout/LayoutThemeLinux.cpp" ]
+  external_exclude_webkit_core_rendering_sources = []
+}
+external_webkit_core_rendering_sources = [
+  "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.cpp",
+  "//tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/RenderThemeChromiumTizen.h",
+]
+
+# For //third_party/blink/renderer/core:core_generated target
+external_webkit_core_generated_deps = [
+  "//tizen_src/chromium_impl/third_party/blink/renderer/core:webkit_core_generated",
+]
+
+# For //third_party/blink/renderer/core:make_core_generated target
+external_webkit_core_make_generated_deps = [ "//tizen_src/chromium_impl/third_party/blink/renderer/core:TizenUserAgentStyleSheets" ]
index e6fad5b..1172b4a 100644 (file)
             'action_name': 'TizenUserAgentStyleSheets',
             'variables': {
               'scripts': [
-                '<(DEPTH)/tizen_src/chromium_impl/third_party/WebKit/Source/core/make-file-arrays.py',
+                '<(DEPTH)/tizen_src/chromium_impl/third_party/blink/renderer/core/make-file-arrays.py',
               ],
               'stylesheets': [
-                '<(DEPTH)/tizen_src/chromium_impl/third_party/WebKit/Source/core/rendering/themeChromiumTizen.css',
+                '<(DEPTH)/tizen_src/chromium_impl/third_party/blink/renderer/core/rendering/themeChromiumTizen.css',
               ],
             },
             'inputs': [
index 0bedc2d..c7f1a6d 100755 (executable)
@@ -109,7 +109,8 @@ def write_header_file(header_file_name, flag, names_and_contents, namespace):
 
 def write_cpp_file(cpp_file_name, flag, names_and_contents, header_file_name, namespace):
     with open(cpp_file_name, 'w') as cpp_file:
-        cpp_file.write('#include "config.h"\n')
+        # TODO : commented for gn build.
+        #cpp_file.write('#include "config.h"\n')
         cpp_file.write('#include "%s"\n' % os.path.basename(header_file_name))
         if flag:
             cpp_file.write('#if ' + flag + '\n')
diff --git a/tizen_src/chromium_impl/third_party/WebKit/Source/modules/modules_efl.gni b/tizen_src/chromium_impl/third_party/WebKit/Source/modules/modules_efl.gni
new file mode 100644 (file)
index 0000000..fb84a85
--- /dev/null
@@ -0,0 +1,10 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+if (use_gstreamer_fft) {
+  external_webkit_modules_configs = [ "//tizen_src/build:gstreamer-fft" ]
+  external_webkit_modules_configs += [ "//tizen_src/build:libgstreamer-fft" ]
+}
diff --git a/tizen_src/chromium_impl/third_party/WebKit/Source/platform/blink_platform_efl.gni b/tizen_src/chromium_impl/third_party/WebKit/Source/platform/blink_platform_efl.gni
new file mode 100644 (file)
index 0000000..ec455d9
--- /dev/null
@@ -0,0 +1,5 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+external_webkit_platform_files = [ "//tizen_src/chromium_impl/third_party/blink/renderer/platform/audio/gstreamer/FFTFrameGStreamer.cpp" ]
diff --git a/tizen_src/chromium_impl/ui/BUILD.gn b/tizen_src/chromium_impl/ui/BUILD.gn
new file mode 100644 (file)
index 0000000..9132e91
--- /dev/null
@@ -0,0 +1,32 @@
+# copyright (c) 2015 samsung electronics. all rights reserved.
+# use of this source code is governed by a bsd-style license that can be
+# found in the license file.
+
+static_library("ui_events_source_inject") {
+  sources = [
+    # Indirectly includes ui/events/gestures/gesture_recognizer_impl_efl.cc/h.
+    "events/gestures/gesture_recognizer_impl_override.cc",
+    "events/gestures/gesture_recognizer_impl_efl.cc",
+    "events/gestures/gesture_recognizer_impl_efl.h",
+    "//ui/events/gestures/gesture_provider_aura.cc",
+    "//ui/events/gestures/gesture_provider_aura.h",
+    "//ui/events/gestures/motion_event_aura.cc",
+    "//ui/events/gestures/motion_event_aura.h",
+  ]
+}
+
+static_library("ui_native_theme_inject") {
+  sources = [
+    "//ui/native_theme/native_theme_aura.h",
+    "//ui/native_theme/native_theme_aura.cc",
+  ]
+  deps = [ "//skia" ]
+}
+
+static_library("ui_base_inject") {
+  sources = [
+    #"//ui/base/cursor/cursors_aura.h",
+    #"//ui/base/cursor/cursors_aura.cc",
+  ]
+  deps = [ "//skia" ]
+}
diff --git a/tizen_src/chromium_impl/ui/ozone/BUILD.gn b/tizen_src/chromium_impl/ui/ozone/BUILD.gn
new file mode 100644 (file)
index 0000000..21822ea
--- /dev/null
@@ -0,0 +1,26 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+static_library("ozone_efl") {
+  deps = [ "//ui/ozone/common" ]
+
+  if (!use_wayland) {
+    configs += [ "//tizen_src/build:ecore-x" ]
+    configs += [ "//tizen_src/build:libecore-x" ]
+  } else {
+    configs += [ "//tizen_src/build:ecore-wayland" ]
+    configs += [ "//tizen_src/build:libecore-wayland" ]
+  }
+
+  sources = [
+    "client_native_pixmap_factory_efl.h",
+    "client_native_pixmap_factory_efl.cc",
+    "ozone_platform_efl.h",
+    "ozone_platform_efl.cc",
+    "surface_factory_efl.h",
+    "surface_factory_efl.cc",
+  ]
+}
diff --git a/tizen_src/chromium_impl/ui/ui_efl.gni b/tizen_src/chromium_impl/ui/ui_efl.gni
new file mode 100644 (file)
index 0000000..6d86b21
--- /dev/null
@@ -0,0 +1,136 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("ui_efl_injections.gni")
+import("//tizen_src/build/config/tizen_features.gni")
+
+external_ui_base_configs = [
+  "//tizen_src/build:elementary",
+  "//tizen_src/build:libelementary",
+]
+
+external_ui_gl_configs = [
+  "//tizen_src/build:evas",
+  "//tizen_src/build:libevas",
+  "//tizen_src/build:ecore-evas",
+  "//tizen_src/build:libecore-evas",
+  "//tizen_src/build:libdrm",
+  "//tizen_src/build:liblibdrm",
+  "//tizen_src/build:libtbm",
+  "//tizen_src/build:liblibtbm",
+]
+
+external_ui_gfx_x11_configs = []
+external_ui_gfx_configs = []
+external_ozone_platform_deps = []
+
+if (!use_wayland) {
+  external_ui_base_configs += [
+    "//tizen_src/build:ecore-x",
+    "//tizen_src/build:libecore-x",
+    "//tizen_src/build:x11",
+    "//tizen_src/build:libx11",
+  ]
+  external_ui_gl_configs += [ "//tizen_src/build:libdri2" ]
+  external_ui_gl_configs += [ "//tizen_src/build:liblibdri2" ]
+  external_ui_gfx_x11_configs += [ "//tizen_src/build:ecore-x" ]
+  external_ui_gfx_x11_configs += [ "//tizen_src/build:libecore-x" ]
+  external_ui_gfx_configs += [ "//tizen_src/build:ecore-x" ]
+  external_ui_gfx_configs += [ "//tizen_src/build:libecore-x" ]
+
+  if (building_for_tizen) {
+    # needed for efl_pixmap.cc/h
+    external_ui_gl_configs += [ "//tizen_src/build:x11" ]
+    external_ui_gl_configs += [ "//tizen_src/build:libx11" ]
+  }
+} else {
+  external_ui_gfx_configs += [ "//tizen_src/build:ecore-wayland" ]
+  external_ui_gfx_configs += [ "//tizen_src/build:libecore-wayland" ]
+}
+
+if (use_ozone) {
+  external_ozone_platform_deps += [
+    "//tizen_src/chromium_impl/ui/ozone:ozone_efl",
+    "//ui/events/devices:devices",
+  ]
+}
+
+# For //ui/gfx target
+external_ui_gfx_sources = [
+  "//ui/gfx/nine_image_painter.cc",
+  "//ui/gfx/nine_image_painter.h",
+  "//tizen_src/chromium_impl/ui/display/device_display_info_efl.cc",
+  "//tizen_src/chromium_impl/ui/display/device_display_info_efl.h",
+  "//tizen_src/chromium_impl/ui/display/screen_efl.h",
+  "//tizen_src/chromium_impl/ui/display/screen_efl.cc",
+]
+
+# For //ui/gfx/x target
+external_ui_gfx_x11_sources = [ "//tizen_src/chromium_impl/ui/gfx/x/x11_types_override.cc" ]
+external_exclude_ui_gfx_x11_sources = [ "x11_types.cc" ]
+if (wayland_bringup) {
+  external_exclude_ui_gfx_x11_sources += [ "gfx/x11_types_override.cc" ]
+}
+
+external_exclude_ui_gl_sources = []
+# For //ui/gl target
+external_exclude_ui_gl_sources += [ "gl_context_egl.cc" ]
+external_ui_gl_sources = [
+  "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.h",
+  "//tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc",
+  "//tizen_src/chromium_impl/ui/gl/gl_context_egl_override.cc",
+  "//tizen_src/chromium_impl/ui/gl/gl_current_context_efl.cc",
+]
+if (building_for_tizen) {
+  external_ui_gl_sources += [
+    "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.cc",
+    "//tizen_src/chromium_impl/ui/gl/gl_image_efl_pixmap.h",
+  ]
+  if (!wayland_bringup) {
+    external_ui_gl_sources += [
+      "//tizen_src/chromium_impl/ui/gl/efl_pixmap.cc",
+      "//tizen_src/chromium_impl/ui/gl/efl_pixmap.h",
+    ]
+  }
+}
+
+# For //ui/events/platform/x11 target
+external_exclude_ui_x11_event_sources = []
+if (wayland_bringup) {
+  external_exclude_ui_x11_event_sources = [
+    "gfx/x11_event_source_efl.h",
+    "gfx/x11_event_source_efl.cc",
+  ]
+}
+
+# For //ui/base target
+external_ui_base_includes = [ "//third_party/mojo/src/" ]
+external_ui_base_sources = [
+  "//ui/base/cursor/cursor.h",
+  "//ui/base/cursor/cursor.cc",
+  "//ui/base/nine_image_painter_factory.h",
+  "//tizen_src/chromium_impl/ui/base/resource/resource_bundle_efl.cc",
+  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.cc",
+  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_efl.h",
+  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.cc",
+  "//tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h",
+]
+if (use_x11) {
+  if (!wayland_bringup) {
+    external_ui_base_sources += [
+      "//ui/base/cursor/cursor_x11.cc",
+      "//ui/base/cursor/cursor_x11.h",
+      "//ui/base/cursor/cursor_loader_x11.h",
+      "//ui/base/cursor/cursor_loader_x11.cc",
+    ]
+  }
+}
+external_exclude_ui_base_sources = []
+
+# For //ui/snapshot target
+external_ui_snapshot_sources = [ "//tizen_src/chromium_impl/ui/snapshot/snapshot_efl.cc" ]
+
+# For //ui/events:gesture_detection target
+external_exclude_ui_gesture_detection_sources = [ "gesture_detection/gesture_configuration_default.cc"]
+external_ui_gesture_detection_sources = [ "//tizen_src/chromium_impl/ui/events/gesture_detection/gesture_configuration_efl.cc" ]
diff --git a/tizen_src/chromium_impl/ui/ui_efl_injections.gni b/tizen_src/chromium_impl/ui/ui_efl_injections.gni
new file mode 100644 (file)
index 0000000..6209c0a
--- /dev/null
@@ -0,0 +1,37 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# In static mode, we build some sources that is needed
+# by efl-port as injectable static library.
+# However, in component mode, we build each of ui modules
+# as single DLL. So we include needed sources directly.
+
+external_ui_base_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_base_inject" ]
+
+external_ui_events_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_events_source_inject" ]
+
+external_native_theme_static_lib_deps = [ "//tizen_src/chromium_impl/ui:ui_native_theme_inject" ]
+
+# For //ui/base target
+external_ui_base_shared_lib_sources = [
+  "cursor/cursors_aura.cc",
+  "cursor/cursors_aura.h",
+]
+
+# For //ui/events target
+external_ui_events_shared_lib_sources = [
+  "events/gestures/gesture_recognizer_impl_override.cc",
+  "events/gestures/gesture_recognizer_impl_efl.cc",
+  "events/gestures/gesture_recognizer_impl_efl.h",
+  "gestures/gesture_provider_aura.cc",
+  "gestures/gesture_provider_aura.h",
+  "gestures/motion_event_aura.cc",
+  "gestures/motion_event_aura.h",
+]
+
+# For //ui/native_theme target
+external_ui_native_theme_shared_lib_sources = [
+  "native_theme_aura.cc",
+  "native_theme_aura.h",
+]
diff --git a/tizen_src/ewk/BUILD.gn b/tizen_src/ewk/BUILD.gn
new file mode 100644 (file)
index 0000000..0770d10
--- /dev/null
@@ -0,0 +1,12 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+group("chromium_efl_all") {
+  testonly = true
+  deps = [
+#    "//tizen_src/ewk/unittest:ewk_unittests",
+    "//tizen_src/ewk/ubrowser:ubrowser",
+    "//tizen_src/ewk/efl_webview_app:efl_webview_app",
+  ]
+}
diff --git a/tizen_src/ewk/efl_integration/BUILD.gn b/tizen_src/ewk/efl_integration/BUILD.gn
new file mode 100644 (file)
index 0000000..959d68d
--- /dev/null
@@ -0,0 +1,546 @@
+# Copyright (c) 2015 Samsung Electronics. 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/allocator.gni")
+import("//build/config/features.gni")
+
+# [M48_2564] Temporary disabling the flag for switching to new chromium
+#            FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15382
+tizen_autofill_support = false
+
+# Components used to auto generate CHROMIUM_VERSION preprocessor define.
+#TODO : below uncomment
+#version_file = "//chrome/VERSION"
+#version_script = "//build/util/version.py"
+#version_pattern = "@MAJOR@.@MINOR@.@BUILD@.@PATCH@"
+
+shared_library("chromium-ewk") {
+  include_dirs = [
+    ".",
+    "//tizen_src/ewk/efl_integration/public",
+    "//third_party/skia/include/core",
+    "//v8/include",
+    "$root_gen_dir/blink",
+  ]
+  configs += [ "//tizen_src/build:ecore" ]
+  configs += [ "//tizen_src/build:libecore" ]
+  configs += [ "//tizen_src/build:evas" ]
+  configs += [ "//tizen_src/build:libevas" ]
+  configs += [ "//tizen_src/build:ecore-evas" ]
+  configs += [ "//tizen_src/build:libecore-evas" ]
+  public_configs = [ "//tizen_src/build:ecore-evas-public" ]
+  configs += [ "//tizen_src/build:elementary" ]
+  configs += [ "//tizen_src/build:libelementary" ]
+  public_configs += [ "//tizen_src/build:elementary-public" ]
+  configs += [ "//tizen_src/build:gstreamer" ]
+  configs += [ "//tizen_src/build:libgstreamer" ]
+  public_configs += [ "//tizen_src/build:gstreamer-public" ]
+  configs += [ "//tizen_src/build:vconf" ]
+  configs += [ "//tizen_src/build:libvconf" ]
+  public_configs += [ "//tizen_src/build:vconf-public" ]
+  configs += [ "//tizen_src/build:capi-location-manager" ]
+  configs += [ "//tizen_src/build:libcapi-location-manager" ]
+  public_configs += [ "//tizen_src/build:capi-location-manager-public" ]
+  configs += [ "//tizen_src/build:capi-system-info" ]
+  configs += [ "//tizen_src/build:libcapi-system-info" ]
+  public_configs += [ "//tizen_src/build:capi-system-info-public" ]
+  configs += [ "//tizen_src/build:capi-media-camera" ]
+  configs += [ "//tizen_src/build:libcapi-media-camera" ]
+  public_configs += [ "//tizen_src/build:capi-media-camera-public" ]
+  configs += [ "//tizen_src/build:feedback" ]
+  configs += [ "//tizen_src/build:libfeedback" ]
+  public_configs += [ "//tizen_src/build:feedback-public" ]
+  configs += [ "//tizen_src/build:efl-extension" ]
+  configs += [ "//tizen_src/build:libefl-extension" ]
+  public_configs += [ "//tizen_src/build:efl-extension-public" ]
+  configs += [ "//tizen_src/build:ui-gadget" ]
+  configs += [ "//tizen_src/build:libui-gadget" ]
+  public_configs += [ "//tizen_src/build:ui-gadget-public" ]
+  deps = [
+    "//tizen_src/ewk/po_tizen:locale_efl",
+    "//tizen_src/chromium_impl/efl:efl-init",
+
+    "//base/:base_static",
+    "//chrome/common/media_router/mojo:media_router",
+    "//chrome:packed_resources",
+    "//content/public/browser",
+    "//content/shell:resources",
+    "//content/shell:pak",
+    "//components/visitedlink/browser",
+    "//components/visitedlink/renderer",
+    "//components/sessions",
+    "//components/autofill/content/renderer",
+    "//components/autofill/content/browser",
+    "//components/network_session_configurator/browser",
+    "//components/password_manager/content/browser",
+    "//components/password_manager/core/common",
+    "//components/password_manager/core/browser",
+    "//components/plugins/renderer",
+    "//components/variations",
+    "//services/device:lib",
+    "//extensions:shell_and_test_pak",
+    "//printing",
+    "//skia",
+    "//storage/browser",
+    "//third_party/leveldatabase",
+    "//third_party/sqlite",
+    "//third_party/blink/renderer/platform/wtf",
+    "//ui/compositor",
+    "//ui/events",
+    "//ui/events:events_base",
+    "//ui/gl",
+    "//v8",
+  ]
+
+  # TODO : needs to check for generating this macro define
+  defines = [ "CHROMIUM_VERSION=\"<!(python <(version_script) -f <(version_file) -t \"<(version_pattern)\")\"" ]
+  ldflags = [
+    "-Wl,--no-undefined"
+    # TODO : need to check below for uncomment
+    #"-Wl,--version-script,//tizen_src/ewk/<(filter_file)"
+  ]
+  cflags = [
+    # Symbol visibility controled by chromium-ewk.filter
+    "-fvisibility=hidden",
+    # Treat warning as error for this target.
+    # It needs to be included by means of pattern list because '-Werror' cflag
+    # will be excluded in chromium side (src/build/common.gypi), and GYP
+    # processes pattern lists after exclusion lists.
+    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+    #"-Werror",
+    "-w",
+  ]
+
+  if (!xwalk_link_against_chromium_ewk) {
+    # TODO : needs to check the below filter provision
+    #filter_file = "chromium-ewk.filter"
+    deps += [
+      "//content/common",
+      "//content/public/common",
+      "//content/public/app:both"
+    ]
+  } else {
+    # TODO : needs to check the below filter provision
+    #filter_file = "chromium-ewk-xwalk.filter"
+    deps += [
+      "//components/storage_monitor",
+      "//components/web_modal",
+      "//content/app:both"
+    ]
+  }
+
+  if (building_for_tizen) {
+    exclude_source_set = [
+      "browser/sound_effect.cc",
+      "browser/sound_effect.h",
+    ]
+    deps += [ "//cc:cc" ]
+  } else {
+    if (use_gio) {
+      configs += [ "//build/linux:gio_config" ]
+    }
+    exclude_source_set = [
+      "browser/sound_effect_tizen.cc",
+      "browser/geolocation/location_provider_efl.cc",
+      "browser/geolocation/location_provider_efl.h"
+    ]
+  }
+
+  # TODO : Below dependency is set in chromium/device/battery_tizen.gypi,
+  # but since m47 it failed to get properly "injected"
+  # to device_battery target due to the new nesting
+  # used in the target declaration.
+  if (building_for_tizen_mobile) {
+    configs += [ "../../build:capi-system-device" ]
+    configs += [ "../../build:libcapi-system-device" ]
+    public_configs += [ "../../build:capi-system-device-public" ]
+  }
+
+  sources = [
+    "browser/notification/notification_controller_efl.cc",
+    "browser/notification/notification_controller_efl.h",
+  ]
+
+  if (tizen_autofill_support) {
+    defines = [ "TIZEN_AUTOFILL_SUPPORT=true" ]
+  }
+
+  if (use_allocator == "tcmalloc") {
+    deps += [ "//base/allocator" ]
+  }
+
+  if (use_wayland) {
+    configs += [ "../../build:ecore-wayland" ]
+    configs += [ "../../build:libecore-wayland" ]
+    public_configs += [ "../../build:ecore-wayland-public" ]
+  } else {
+    configs += [ "../../build:ecore-x" ]
+    configs += [ "../../build:libecore-x" ]
+    public_configs += [ "../../build:ecore-x-public" ]
+  }
+
+  if (use_ozone) {
+    deps += [ "//ui/ozone" ]
+  }
+
+  sources += [
+    "autofill_popup_view_efl.cc",
+    "autofill_popup_view_efl.h",
+    "browser_context_efl.cc",
+    "browser_context_efl.h",
+    "browser_main_parts_efl.cc",
+    "browser_main_parts_efl.h",
+    "chromium_ewk.gypi",
+    "command_line_efl.cc",
+    "command_line_efl.h",
+    "content_browser_client_efl.cc",
+    "content_browser_client_efl.h",
+    "content_main_delegate_efl.cc",
+    "content_main_delegate_efl.h",
+    "context_menu_controller_efl.cc",
+    "context_menu_controller_efl.h",
+    "cookie_manager.cc",
+    "cookie_manager.h",
+    "devtools_delegate_efl.cc",
+    "devtools_delegate_efl.h",
+    "devtools_manager_delegate_efl.cc",
+    "devtools_manager_delegate_efl.h",
+    "efl_webprocess_main.cc",
+    "efl_webprocess_main.h",
+    "eweb_context.cc",
+    "eweb_context.h",
+    "eweb_view_callbacks.h",
+    "eweb_view.cc",
+    "eweb_view.h",
+    "ewk_global_data.cc",
+    "ewk_global_data.h",
+    "file_chooser_controller_efl.cc",
+    "file_chooser_controller_efl.h",
+    "geolocation_permission_popup.cc",
+    "geolocation_permission_popup.h",
+    "http_user_agent_settings_efl.cc",
+    "http_user_agent_settings_efl.h",
+    "locale_efl.cc",
+    "locale_efl.h",
+    "message_pump_for_ui_efl.cc",
+    "message_pump_for_ui_efl.h",
+    "network_delegate_efl.cc",
+    "network_delegate_efl.h",
+    "notification_permission_popup.cc",
+    "notification_permission_popup.h",
+    "permission_popup.h",
+#    "permission_popup_manager.cc",
+    "permission_popup_manager.h",
+    "popup_controller_efl.cc",
+    "popup_controller_efl.h",
+    "scroll_detector.cc",
+    "scroll_detector.h",
+    "text_encoding_map_efl.cc",
+    "text_encoding_map_efl.h",
+    "url_request_context_getter_efl.cc",
+    "url_request_context_getter_efl.h",
+    "usermedia_permission_popup.cc",
+    "usermedia_permission_popup.h",
+    "web_contents_efl_delegate_ewk.cc",
+    "web_contents_efl_delegate_ewk.h",
+    "web_contents_delegate_efl.cc",
+    "web_contents_delegate_efl.h",
+    "web_contents_view_delegate_ewk.cc",
+    "web_contents_view_delegate_ewk.h",
+    "web_contents_view_efl_delegate_ewk.cc",
+    "web_contents_view_efl_delegate_ewk.h",
+
+    "browser/browsing_data_remover_efl.cc",
+    "browser/browsing_data_remover_efl.h",
+    "browser/download_manager_delegate_efl.cc",
+    "browser/download_manager_delegate_efl.h",
+    "browser/editor_client_observer.cc",
+    "browser/editor_client_observer.h",
+    "browser/javascript_dialog_manager_efl.cc",
+    "browser/javascript_dialog_manager_efl.h",
+    "browser/javascript_modal_dialog_efl.cc",
+    "browser/javascript_modal_dialog_efl.h",
+    "browser/login_delegate_efl.cc",
+    "browser/login_delegate_efl.h",
+    "browser/mime_override_manager_efl.cc",
+    "browser/mime_override_manager_efl.h",
+    "browser/navigation_policy_handler_efl.cc",
+    "browser/navigation_policy_handler_efl.h",
+    "browser/permission_manager_efl.cc",
+    "browser/permission_manager_efl.h",
+    "browser/policy_response_delegate_efl.cc",
+    "browser/policy_response_delegate_efl.h",
+    "browser/quota_permission_context_efl.cc",
+    "browser/quota_permission_context_efl.h",
+    "browser/render_message_filter_efl.cc",
+    "browser/render_message_filter_efl.h",
+    "browser/resource_dispatcher_host_delegate_efl.cc",
+    "browser/resource_dispatcher_host_delegate_efl.h",
+    "browser/resource_throttle_efl.cc",
+    "browser/resource_throttle_efl.h",
+    "browser/scoped_allow_wait_for_legacy_web_view_api.h",
+    "browser/scoped_wait_for_ewk.h",
+    "browser/sound_effect.cc",
+    "browser/sound_effect.h",
+    "browser/sound_effect_tizen.cc",
+    "browser/ssl_host_state_delegate_efl.cc",
+    "browser/ssl_host_state_delegate_efl.h",
+    "browser/web_view_browser_message_filter.cc",
+    "browser/web_view_browser_message_filter.h",
+
+    # Make use of Android webview"s simplified pref class.
+    "browser/autofill/autofill_client_efl.h",
+    "browser/autofill/autofill_client_efl.cc",
+    "browser/autofill/personal_data_manager_factory.cc",
+    "browser/autofill/personal_data_manager_factory.h",
+
+    "browser/favicon/favicon_database.h",
+    "browser/favicon/favicon_database_p.cc",
+    "browser/favicon/favicon_commands.cc",
+    "browser/favicon/favicon_downloader.h",
+    "browser/favicon/favicon_database_p.h",
+    "browser/favicon/favicon_database.cc",
+    "browser/favicon/favicon_commands.h",
+    "browser/favicon/favicon_downloader.cc",
+    "browser/geolocation/access_token_store_efl.cc",
+    "browser/geolocation/access_token_store_efl.h",
+    "browser/geolocation/geolocation_permission_context_efl.cc",
+    "browser/geolocation/geolocation_permission_context_efl.h",
+    "browser/geolocation/location_provider_efl.cc",
+    "browser/geolocation/location_provider_efl.h",
+    "browser/inputpicker/color_chooser_efl.cc",
+    "browser/inputpicker/color_chooser_efl.h",
+    "browser/inputpicker/InputPicker.cc",
+    "browser/inputpicker/InputPicker.h",
+
+    "browser/password_manager/password_store_factory.cc",
+    "browser/password_manager/password_store_factory.h",
+    "browser/password_manager/password_manager_client_efl.cc",
+    "browser/password_manager/password_manager_client_efl.h",
+
+    "browser/selectpicker/popup_picker.cc",
+    "browser/selectpicker/popup_menu_item.cc",
+    "browser/selectpicker/popup_picker.h",
+    "browser/selectpicker/popup_menu_item_private.h",
+    "browser/selectpicker/popup_menu_item.h",
+
+    "browser/vibration/vibration_provider_client.cc",
+    "browser/vibration/vibration_provider_client.h",
+
+    "browser/web_cache_efl/web_cache_manager_efl.cc",
+    "browser/web_cache_efl/web_cache_manager_efl.h",
+
+    "browser/webdata/web_data_service.h",
+    "browser/webdata/web_data_service_factory.h",
+    "browser/webdata/web_data_service_factory.cc",
+    "browser/webdata/web_data_service.cc",
+
+    "common/cache_params_efl.h",
+    "common/content_client_efl.cc",
+    "common/content_client_efl.h",
+    "common/content_switches_efl.cc",
+    "common/content_switches_efl.h",
+    "common/editing_messages.h",
+    "common/hit_test_params.h",
+    "common/message_generator_ewk.h",
+    "common/message_generator_ewk.cc",
+    "common/navigation_policy_params.cc",
+    "common/navigation_policy_params.h",
+    "common/print_pages_params.h",
+    "common/print_pages_params.cc",
+    "common/render_messages_ewk.h",
+    "common/tizen_extensible.cc",
+    "common/tizen_extensible.h",
+    "common/version_info_efl.h",
+    "common/version_info.h",
+    "common/version_info.cc",
+    "common/web_contents_utils.cc",
+    "common/web_contents_utils.h",
+    "common/web_preferences_efl.h",
+
+    "private/back_forward_list.h",
+    "private/ewk_auth_challenge_private.h",
+    "private/ewk_autofill_profile_private.cc",
+    "private/ewk_autofill_profile_private.h",
+    "private/ewk_back_forward_list_private.cc",
+    "private/ewk_back_forward_list_private.h",
+    "private/ewk_certificate_private.h",
+    "private/ewk_console_message_private.h",
+    "private/ewk_context_form_autofill_profile_private.cc",
+    "private/ewk_context_form_autofill_profile_private.h",
+    "private/ewk_context_menu_private.h",
+    "private/ewk_context_private.cc",
+    "private/ewk_context_private.h",
+    "private/ewk_cookie_manager_private.h",
+    "private/ewk_custom_handlers_private.cc",
+    "private/ewk_custom_handlers_private.h",
+    "private/ewk_error_private.h",
+    "private/ewk_favicon_database_private.h",
+    "private/ewk_frame_private.cc",
+    "private/ewk_frame_private.h",
+    "private/ewk_geolocation_private.cc",
+    "private/ewk_geolocation_private.h",
+    "private/ewk_history_private.cc",
+    "private/ewk_history_private.h",
+    "private/ewk_hit_test_private.cc",
+    "private/ewk_hit_test_private.h",
+    "private/ewk_main_private.cc",
+    "private/ewk_main_private.h",
+    "private/ewk_notification_private.cc",
+    "private/ewk_notification_private.h",
+    "private/ewk_object_private.h",
+    "private/ewk_policy_decision_private.cc",
+    "private/ewk_policy_decision_private.h",
+    "private/ewk_private.h",
+    "private/ewk_quota_permission_request_private.cc",
+    "private/ewk_quota_permission_request_private.h",
+    "private/ewk_security_origin_private.cc",
+    "private/ewk_security_origin_private.h",
+    "private/ewk_settings_private.cc",
+    "private/ewk_settings_private.h",
+    "private/ewk_suspendable_object.cc",
+    "private/ewk_suspendable_object.h",
+    "private/ewk_text_style_private.h",
+    "private/ewk_tracing_private.cc",
+    "private/ewk_tracing_private.h",
+    "private/ewk_user_media_private.cc",
+    "private/ewk_user_media_private.h",
+    "private/ewk_view_private.cc",
+    "private/ewk_view_private.h",
+    "private/ewk_web_application_icon_data_private.cc",
+    "private/ewk_web_application_icon_data_private.h",
+    "private/ewk_window_features_private.h",
+    "private/ewk_wrt_private.cc",
+    "private/ewk_wrt_private.h",
+    "private/webview_delegate_ewk.cc",
+    "private/webview_delegate_ewk.h",
+
+    "public/ewk_application_cache_manager.cc",
+    "public/ewk_application_cache_manager.h",
+    "public/ewk_auth_challenge.cc",
+    "public/ewk_auth_challenge.h",
+    "public/ewk_auth_request.cc",
+    "public/ewk_auth_request.h",
+    "public/ewk_autofill_profile.cc",
+    "public/ewk_autofill_profile.h",
+    "public/ewk_back_forward_list.cc",
+    "public/ewk_back_forward_list.h",
+    "public/ewk_back_forward_list_item.cc",
+    "public/ewk_back_forward_list_item.h",
+    "public/ewk_certificate.cc",
+    "public/ewk_certificate.h",
+    "public/ewk_console_message.cc",
+    "public/ewk_console_message.h",
+    "public/ewk_content_screening_detection.cc",
+    "public/ewk_content_screening_detection.h",
+    "public/ewk_context.cc",
+    "public/ewk_context.h",
+    "public/ewk_context_menu.cc",
+    "public/ewk_context_menu.h",
+    "public/ewk_cookie_manager.cc",
+    "public/ewk_cookie_manager.h",
+    "public/ewk_custom_handlers.cc",
+    "public/ewk_custom_handlers.h",
+    "public/ewk_dispatcher.cc",
+    "public/ewk_dispatcher.h",
+    "public/ewk_error.cc",
+    "public/ewk_error.h",
+    "public/ewk_favicon_database.cc",
+    "public/ewk_favicon_database.h",
+    "public/ewk_frame.cc",
+    "public/ewk_frame.h",
+    "public/ewk_geolocation.cc",
+    "public/ewk_geolocation.h",
+    "public/ewk_history.cc",
+    "public/ewk_history.h",
+    "public/ewk_hit_test.cc",
+    "public/ewk_hit_test.h",
+    "public/ewk_intercept_request.cc",
+    "public/ewk_intercept_request.h",
+    "public/ewk_ipc_message.cc",
+    "public/ewk_ipc_message.h",
+    "public/ewk_main.cc",
+    "public/ewk_main.h",
+    "public/ewk_notification.cc",
+    "public/ewk_notification.h",
+    "public/ewk_object.cc",
+    "public/ewk_object.h",
+    "public/ewk_page_group.cc",
+    "public/ewk_page_group.h",
+    "public/ewk_policy_decision.cc",
+    "public/ewk_policy_decision.h",
+    "public/ewk_popup_menu_item.cc",
+    "public/ewk_popup_menu_item.h",
+    "public/ewk_quota_permission_request.cc",
+    "public/ewk_quota_permission_request.h",
+    "public/ewk_security_origin.cc",
+    "public/ewk_security_origin.h",
+    "public/ewk_settings.cc",
+    "public/ewk_settings.h",
+    "public/ewk_storage_manager.cc",
+    "public/ewk_storage_manager.h",
+    "public/ewk_text_style.cc",
+    "public/ewk_text_style.h",
+    "public/ewk_tracing.cc",
+    "public/ewk_tracing.h",
+    "public/ewk_user_media.cc",
+    "public/ewk_user_media.h",
+    "public/ewk_view.cc",
+    "public/ewk_view.h",
+    "public/ewk_web_application_icon_data.cc",
+    "public/ewk_web_application_icon_data.h",
+    "public/ewk_window_features.cc",
+    "public/ewk_window_features.h",
+    "public/ewk_chromium.cc",
+    "public/ewk_chromium.h",
+    "public/ewk_enums.h",
+    "public/ewk_export.h",
+    "public/ewk_log.h",
+    "public/ewk_touch.h",
+
+    "browser/web_view_evas_handler.cc",
+    "browser/web_view_evas_handler.h",
+
+    "renderer/content_renderer_client_efl.cc",
+    "renderer/content_renderer_client_efl.h",
+    "renderer/editorclient_agent.cc",
+    "renderer/editorclient_agent.h",
+    "renderer/plugins/plugin_placeholder_efl.cc",
+    "renderer/plugins/plugin_placeholder_efl.h",
+    "renderer/print_web_view_helper_efl.cc",
+    "renderer/print_web_view_helper_efl.h",
+    "renderer/render_frame_observer_efl.cc",
+    "renderer/render_frame_observer_efl.h",
+    "renderer/render_thread_observer_efl.cc",
+    "renderer/render_thread_observer_efl.h",
+    "renderer/render_view_observer_efl.cc",
+    "renderer/render_view_observer_efl.h",
+
+    "wrt/wrtwidget.cc",
+    "wrt/wrt_file_protocol_handler.cc",
+    "wrt/dynamicplugin.cc",
+    "wrt/wrt_file_protocol_handler.h",
+    "wrt/wrt_widget_host.cc",
+    "wrt/wrtwidget.h",
+    "wrt/wrt_widget_host.h",
+    "wrt/dynamicplugin.h",
+  ]
+  sources -= exclude_source_set
+  deps += [ "resource:edje_resources_ewk" ]
+}
+
+executable("efl_webprocess") {
+  sources = [ "efl_webprocess.cc" ]
+  deps = [ ":chromium-ewk" ]
+}
+
+copy("launch_exec_script") {
+  sources = [ "launch_exec.sh" ]
+  outputs = [ "$root_out_dir/{{source_file_part}}" ]
+}
+
+source_set("launch_exec") {
+  sources = [ "launch_exec.sh" ]
+  deps = [ ":launch_exec_script" ]
+}
index db6cb5a..86d4d85 100644 (file)
@@ -67,7 +67,7 @@
       '<(DEPTH)/storage/storage_browser.gyp:storage',
       '<(DEPTH)/third_party/leveldatabase/leveldatabase.gyp:leveldatabase',
       '<(DEPTH)/third_party/sqlite/sqlite.gyp:sqlite',
-      '<(DEPTH)/third_party/WebKit/Source/wtf/wtf.gyp:wtf',
+      '<(DEPTH)/third_party/blink/renderer/wtf/wtf.gyp:wtf',
       '<(DEPTH)/ui/compositor/compositor.gyp:compositor',
       '<(DEPTH)/ui/events/events.gyp:events',
       '<(DEPTH)/ui/events/events.gyp:events_base',
index 16f4d90..18e80b4 100755 (executable)
@@ -27,7 +27,7 @@ else
 fi
 
 CHROMIUM_EFL_LIBDIR=$(readlink -e $SCRIPTDIR/lib)
-CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/../Dependencies/Root/$_LIBDIR)
+CHROMIUM_EFL_DEPENDENCIES_LIBDIR=$(readlink -e $SCRIPTDIR/Dependencies/Root/$_LIBDIR)
 
 export LD_LIBRARY_PATH=$CHROMIUM_EFL_DEPENDENCIES_LIBDIR:$CHROMIUM_EFL_LIBDIR:${LD_LIBRARY_PATH}
 echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
index 54d087d..5b8a114 100644 (file)
@@ -37,7 +37,7 @@
       '<(DEPTH)/skia/skia.gyp:skia',
       '<(DEPTH)/storage/storage_browser.gyp:storage',
       '<(DEPTH)/storage/storage_common.gyp:storage_common',
-      '<(DEPTH)/third_party/WebKit/public/blink.gyp:blink',
+      '<(DEPTH)/third_party/blink/public/blink.gyp:blink',
       '<(DEPTH)/ui/base/ui_base.gyp:ui_base',
       '<(DEPTH)/ui/gl/gl.gyp:gl',
       '<(DEPTH)/ui/shell_dialogs/shell_dialogs.gyp:shell_dialogs',
@@ -64,7 +64,7 @@
       '../ipc/ipc.gyp:ipc',
       '../ui/base/ui_base.gyp:ui_base',
       '../url/url.gyp:url_lib',
-      '../third_party/WebKit/public/blink.gyp:blink',
+      '../third_party/blink/public/blink.gyp:blink',
       '../third_party/zlib/google/zip.gyp:zip',
     ],
 
@@ -85,7 +85,7 @@
       '../../ipc/ipc.gyp:ipc',
       '../../url/url.gyp:url_lib',
       '../../v8/src/v8.gyp:v8',
-      '../../third_party/WebKit/public/blink.gyp:blink',
+      '../../third_party/blink/public/blink.gyp:blink',
     ],
 
     'external_xwalk_tizen_lib_dependencies_removals': [
diff --git a/tizen_src/ewk/efl_integration/resource/BUILD.gn b/tizen_src/ewk/efl_integration/resource/BUILD.gn
new file mode 100644 (file)
index 0000000..fa6f35f
--- /dev/null
@@ -0,0 +1,33 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+template("edje_res_ewk") {
+  edje_target_name = "${target_name}_generate"
+  action_foreach(edje_target_name) {
+    script = "//tizen_src/build/cmd_execution.py"
+    sources = invoker.sources
+    outputs = [ "$root_out_dir/resources/{{source_name_part}}.edj" ]
+    args = [
+      "$edje_compiler",
+      "-id",
+      rebase_path("../images/"),
+      rebase_path("{{source_file_part}}"),
+      rebase_path("$root_out_dir/resources/{{source_name_part}}.edj"),
+    ]
+  }
+
+  source_set(target_name) {
+    data = [ ":$edje_target_name" ]
+  }
+}
+
+edje_res_ewk("edje_resources_ewk") {
+  sources = [
+    "AutofillPopup.edc",
+    "JavaScriptPopup.edc",
+    "control.edc",
+  ]
+}
diff --git a/tizen_src/ewk/efl_webview_app/BUILD.gn b/tizen_src/ewk/efl_webview_app/BUILD.gn
new file mode 100644 (file)
index 0000000..7b413ac
--- /dev/null
@@ -0,0 +1,117 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+copy("efl_webview_app_script") {
+  sources = [ "efl_webview_app.sh" ]
+  outputs = [ "$root_out_dir/{{source_file_part}}" ]
+}
+
+executable("efl_webview_app") {
+  deps = [
+    ":efl_webview_app_script",
+  ]
+  configs += [ "//tizen_src/build:capi-system-device" ]
+  configs += [ "//tizen_src/build:libcapi-system-device" ]
+  public_configs = [ "//tizen_src/build:capi-system-device-public" ]
+  configs += [ "//tizen_src/build:evas" ]
+  configs += [ "//tizen_src/build:libevas" ]
+  configs += [ "//tizen_src/build:ecore" ]
+  configs += [ "//tizen_src/build:libecore" ]
+  configs += [ "//tizen_src/build:ecore-evas" ]
+  configs += [ "//tizen_src/build:libecore-evas" ]
+  public_configs += [ "//tizen_src/build:ecore-evas-public" ]
+  configs += [ "//tizen_src/build:elementary" ]
+  configs += [ "//tizen_src/build:libelementary" ]
+  public_configs += [ "//tizen_src/build:elementary-public" ]
+  deps += [
+    "//tizen_src/ewk/efl_integration:chromium-ewk",
+    "//tizen_src/ewk/efl_integration:launch_exec",
+  ]
+  import("../tizen_version_defines_for_apps.gni")
+  cflags = [
+    # Treat warning as error for this target.
+    # It needs to be included by means of pattern list because '-Werror' cflag
+    # will be excluded in chromium side (src/build/common.gypi), and GYP
+    # processes pattern lists after exclusion lists.
+    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+    "-Werror"
+  ]
+  if (!use_wayland) {
+    configs += [ "//tizen_src/build:ecore-x" ]
+    configs += [ "//tizen_src/build:libecore-x" ]
+    public_configs += [ "//tizen_src/build:ecore-x-public" ]
+  } else {
+    configs += [ "//tizen_src/build:ecore-wayland" ]
+    configs += [ "//tizen_src/build:libecore-wayland" ]
+    public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
+  }
+  include_dirs = [ "../efl_integration" ]
+  sources = [ "app.c" ]
+  ldflags = [ "-Llib" ]
+  #libs = [ "libchromium-ewk" ]
+}
+
+executable("mini_browser") {
+  cflags = [
+    # Treat warning as error for this target.
+    # It needs to be included by means of pattern list because '-Werror' cflag
+    # will be excluded in chromium side (src/build/common.gypi), and GYP
+    # processes pattern lists after exclusion lists.
+    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+    "-Werror"
+  ]
+  sources = []
+  include_dirs = []
+  ldflags = []
+  libs = []
+  deps = []
+  if (building_for_tizen) { # FIXME: mini_browser shouldn't depend on dlog and appcore-efl without OS(TIZEN) checks
+    sources += [
+      "mini_browser.c",
+      "browser-object.h",
+      "browser-string.h",
+    ]
+    include_dirs += [ "../efl_integration" ]
+    configs += [ "//tizen_src/build:capi-system-device" ]
+    configs += [ "//tizen_src/build:libcapi-system-device" ]
+    public_configs = [ "//tizen_src/build:capi-system-device-public" ]
+    configs += [ "//tizen_src/build:capi-appfw-application" ]
+    configs += [ "//tizen_src/build:libcapi-appfw-application" ]
+    public_configs += [ "//tizen_src/build:capi-appfw-application-public" ]
+    configs += [ "//tizen_src/build:evas" ]
+    configs += [ "//tizen_src/build:libevas" ]
+    configs += [ "//tizen_src/build:ecore" ]
+    configs += [ "//tizen_src/build:libecore" ]
+    configs += [ "//tizen_src/build:ecore-evas" ]
+    configs += [ "//tizen_src/build:libecore-evas" ]
+    public_configs += [ "//tizen_src/build:ecore-evas-public" ]
+    configs += [ "//tizen_src/build:efl-extension" ]
+    configs += [ "//tizen_src/build:libefl-extension" ]
+    public_configs += [ "//tizen_src/build:efl-extension-public" ]
+    configs += [ "//tizen_src/build:elementary" ]
+    configs += [ "//tizen_src/build:libelementary" ]
+    public_configs += [ "//tizen_src/build:elementary-public" ]
+    deps += [
+      "//tizen_src/ewk/efl_integration:chromium-ewk",
+      #"//build/linux:glib",   removed from the chromium
+    ]
+    configs += [ "//build/config/linux:glib" ]
+    import("../tizen_version_defines_for_apps.gni")
+    if (!use_wayland) {
+      configs += [ "//tizen_src/build:ecore-x" ]
+      configs += [ "//tizen_src/build:libecore-x" ]
+      public_configs += [ "//tizen_src/build:ecore-x-public" ]
+    } else {
+      configs += [ "//tizen_src/build:ecore-wayland" ]
+      configs += [ "//tizen_src/build:libecore-wayland" ]
+      public_configs += [ "//tizen_src/build:ecore-wayland-public" ]
+    }
+    ldflags += [ "-ldlog" ]
+    ldflags += [ "-ldbus-glib-1" ]
+    libs += [ "dlog" ]
+    libs += [ "dbus-glib-1" ]
+  }
+}
diff --git a/tizen_src/ewk/po_tizen/BUILD.gn b/tizen_src/ewk/po_tizen/BUILD.gn
new file mode 100644 (file)
index 0000000..a1c4940
--- /dev/null
@@ -0,0 +1,90 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+declare_args() {
+  msgfmt = "/usr/bin/msgfmt"
+}
+
+template("po_translations") {
+  po_target_name = "${target_name}_generate"
+  action_foreach(po_target_name) {
+    script = "//tizen_src/build/cmd_execution.py"
+    sources = invoker.sources
+    outputs = [ "$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo" ]
+    args = [
+      "$msgfmt",
+      "-o",
+      rebase_path("$root_out_dir/locale/{{source_name_part}}/LC_MESSAGES/WebKit.mo"),
+      rebase_path("{{source_file_part}}"),
+    ]
+  }
+
+  source_set(target_name) {
+    deps = [ ":$po_target_name" ]
+  }
+}
+
+po_translations("locale_efl") {
+  sources = [
+    "ar.po",
+    "az.po",
+    "bg.po",
+    "bn.po",
+    "ca.po",
+    "cs.po",
+    "da.po",
+    "de_DE.po",
+    "el_GR.po",
+    "en_PH.po",
+    "en.po",
+    "en_US.po",
+    "es_ES.po",
+    "es_MX.po",
+    "et.po",
+    "eu.po",
+    "fi.po",
+    "fr_CA.po",
+    "fr_FR.po",
+    "ga.po",
+    "gl.po",
+    "gu.po",
+    "hi.po",
+    "hr.po",
+    "hu.po",
+    "hy.po",
+    "is.po",
+    "it_IT.po",
+    "ja_JP.po",
+    "ka.po",
+    "kk.po",
+    "kn.po",
+    "ko_KR.po",
+    "lt.po",
+    "lv.po",
+    "mk.po",
+    "nb.po",
+    "nl_NL.po",
+    "ml.po",
+    "pl.po",
+    "pt_BR.po",
+    "pt_PT.po",
+    "ro.po",
+    "ru_RU.po",
+    "si.po",
+    "sk.po",
+    "sl.po",
+    "sr.po",
+    "sv.po",
+    "ta.po",
+    "te.po",
+    "tr_TR.po",
+    "uk.po",
+    "ur.po",
+    "uz.po",
+    "zh_CN.po",
+    "zh_HK.po",
+    "zh_SG.po",
+    "zh_TW.po",
+  ]
+}
diff --git a/tizen_src/ewk/tizen_version_defines_for_apps.gni b/tizen_src/ewk/tizen_version_defines_for_apps.gni
new file mode 100644 (file)
index 0000000..650e1b9
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+defines = []
+
+if (building_for_tizen) {
+    if (chromium_efl_tizen_version == 30) {
+      defines += ["TIZEN_V_3_0=true"]
+    }
+    if (chromium_efl_tizen_version == 24) {
+      defines += ["TIZEN_V_2_4=true"]
+    }
+    if (chromium_efl_tizen_version == 23) {
+      defines += ["TIZEN_V_2_3=true"]
+    }
+}
diff --git a/tizen_src/ewk/ubrowser/BUILD.gn b/tizen_src/ewk/ubrowser/BUILD.gn
new file mode 100644 (file)
index 0000000..25b2108
--- /dev/null
@@ -0,0 +1,68 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//tizen_src/build/config/tizen_features.gni")
+
+copy("ubrowser_script") {
+  sources = [ "ubrowser.sh" ]
+  outputs = [ "$root_out_dir/{{source_file_part}}" ]
+}
+
+executable("ubrowser") {
+  configs += [ "//tizen_src/build:capi-system-device" ]
+  configs += [ "//tizen_src/build:libcapi-system-device" ]
+  public_configs = [ "//tizen_src/build:capi-system-device-public" ]
+  configs += [ "//tizen_src/build:evas" ]
+  configs += [ "//tizen_src/build:libevas" ]
+  configs += [ "//tizen_src/build:ecore" ]
+  configs += [ "//tizen_src/build:libecore" ]
+  configs += [ "//tizen_src/build:ecore-evas" ]
+  configs += [ "//tizen_src/build:libecore-evas" ]
+  public_configs += [ "//tizen_src/build:ecore-evas-public" ]
+  configs += [ "//tizen_src/build:elementary" ]
+  configs += [ "//tizen_src/build:libelementary" ]
+  public_configs += [ "//tizen_src/build:elementary-public" ]
+  deps = [
+    "//tizen_src/ewk/efl_integration:chromium-ewk",
+    "//tizen_src/ewk/efl_integration:launch_exec",
+  ]
+  configs += [ "//tizen_src/build:efl-extension" ]
+  configs += [ "//tizen_src/build:libefl-extension" ]
+  public_configs += [ "//tizen_src/build:efl-extension-public" ]
+  defines = [
+    # Uncomment once uBrowser replaces mini_browser and it's xml
+    # manifest is shipped in the rpm package
+    #"TIZEN_APP=true"
+  ]
+  include_dirs = [
+    ".",
+    "../efl_integration/public",
+  ]
+  sources = [
+    "browser.cc",
+    "browser.h",
+    "logger.cc",
+    "logger.h",
+    "main.cc",
+    "window.cc",
+    "window.h",
+    "window_ui.h",
+    "window_ui.cc",
+  ]
+  deps += [ ":ubrowser_script" ]
+  cflags = [
+    # Treat warning as error for this target.
+    # It needs to be included by means of pattern list because '-Werror' cflag
+    # will be excluded in chromium side (src/build/common.gypi), and GYP
+    # processes pattern lists after exclusion lists.
+    # (ref: https://gyp.gsrc.io/docs/InputFormatReference.md#Processing-Order)
+    "-Werror"
+  ]
+  ldflags = []
+  libs = []
+  if (building_for_tizen) {
+    configs += [ "//tizen_src/build:capi-appfw-application" ]
+    configs += [ "//tizen_src/build:libcapi-appfw-application" ]
+  }
+}
diff --git a/tizen_src/ewk/unittest/BUILD.gn b/tizen_src/ewk/unittest/BUILD.gn
new file mode 100644 (file)
index 0000000..bd92e7b
--- /dev/null
@@ -0,0 +1,395 @@
+# Copyright (c) 2015 Samsung Electronics. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//testing/test.gni")
+import("//tizen_src/build/config/tizen_features.gni")
+
+shared_library("bundle_sample") {
+  sources = [ "resources/ewk_context/injected_bundle/chromium/bundle_sample.cc" ]
+  deps = [ "//v8:v8" ]
+  include_dirs = [
+    ".",
+    "//v8/include/",
+  ]
+}
+
+#copy("libbundle") {
+#  sources = [ "$root_out_dir/lib/libbundle_sample.so" ]
+#  outputs = [ "$root_out_dir/resources/ewk_context/injected_bundle/chromium/{{source_file_part}}" ]
+#}
+
+test("ewk_unittests") {
+  testonly = true
+  configs += [ "//tizen_src/build:ecore-evas" ]
+  configs += [ "//tizen_src/build:libecore-evas" ]
+  public_configs = [ "//tizen_src/build:ecore-evas-public" ]
+  configs += [ "//tizen_src/build:ecore-x" ]
+  configs += [ "//tizen_src/build:libecore-x" ]
+  public_configs += [ "//tizen_src/build:ecore-x-public" ]
+  configs += [ "//tizen_src/build:edje" ]
+  configs += [ "//tizen_src/build:libedje" ]
+  public_configs += [ "//tizen_src/build:edje-public" ]
+  configs += [ "//tizen_src/build:elementary" ]
+  configs += [ "//tizen_src/build:libelementary" ]
+  public_configs += [ "//tizen_src/build:elementary-public" ]
+  deps = [
+    "//tizen_src/ewk/efl_integration:chromium-ewk",
+    "//testing/gtest",
+    ":bundle_sample",
+  ]
+  include_dirs = [
+    "../efl_integration/public",
+  ]
+  sources = [
+    "execute_utc_blink.cpp",
+    "utc_blink_cb_contextmenu_allowed.cpp",
+    "utc_blink_cb_contextmenu_willshow.cpp",
+    "utc_blink_cb_editorclient_candidate_closed.cpp",
+    "utc_blink_cb_editorclient_candidate_opened.cpp",
+    "utc_blink_cb_editorclient_ime_closed.cpp",
+    "utc_blink_cb_editorclient_ime_opened.cpp",
+    "utc_blink_cb_form_submit.cpp",
+    "utc_blink_cb_fullscreen_enterfullscreen.cpp",
+    "utc_blink_cb_fullscreen_exitfullscreen.cpp",
+    "utc_blink_cb_geolocation_valid.cpp",
+    "utc_blink_cb_icon_received.cpp",
+    "utc_blink_cb_inputmethod_changed.cpp",
+    "utc_blink_cb_load_finished.cpp",
+    "utc_blink_cb_load_progress.cpp",
+    "utc_blink_cb_load_progress_finished.cpp",
+    "utc_blink_cb_load_progress_started.cpp",
+    "utc_blink_cb_load_started.cpp",
+    "utc_blink_cb_magnifier_hide.cpp",
+    "utc_blink_cb_magnifier_show.cpp",
+    "utc_blink_cb_popup_blocked.cpp",
+    "utc_blink_cb_protocolhandler_isregistered.cpp",
+    "utc_blink_cb_protocolhandler_registration_requested.cpp",
+    "utc_blink_cb_protocolhandler_unregistration_requested.cpp",
+    "utc_blink_cb_redo_size.cpp",
+    "utc_blink_cb_textselection_mode.cpp",
+    "utc_blink_cb_title_changed.cpp",
+    "utc_blink_cb_undo_size.cpp",
+    "utc_blink_cb_unfocus_direction.cpp",
+    "utc_blink_cb_uri_changed.cpp",
+    "utc_blink_cb_url_changed.cpp",
+    "utc_blink_ewk_auth_challenge_credential_cancel_func.cpp",
+    "utc_blink_ewk_auth_challenge_credential_use_func.cpp",
+    "utc_blink_ewk_auth_challenge_realm_get_func.cpp",
+    "utc_blink_ewk_auth_challenge_suspend_func.cpp",
+    "utc_blink_ewk_autofill_profile_data_get_func.cpp",
+    "utc_blink_ewk_autofill_profile_data_set_func.cpp",
+    "utc_blink_ewk_autofill_profile_delete_func.cpp",
+    "utc_blink_ewk_autofill_profile_id_get_func.cpp",
+    "utc_blink_ewk_autofill_profile_new_func.cpp",
+    "utc_blink_ewk_back_forward_list_count_func.cpp",
+    "utc_blink_ewk_back_forward_list_current_item_get_func.cpp",
+    "utc_blink_ewk_back_forward_list_item_at_index_get_func.cpp",
+    "utc_blink_ewk_back_forward_list_item_original_url_get_func.cpp",
+    "utc_blink_ewk_back_forward_list_item_ref_func.cpp",
+    "utc_blink_ewk_back_forward_list_item_title_get_func.cpp",
+    "utc_blink_ewk_back_forward_list_item_unref_func.cpp",
+    "utc_blink_ewk_back_forward_list_item_url_get_func.cpp",
+    "utc_blink_ewk_back_forward_list_n_back_items_copy_func.cpp",
+    "utc_blink_ewk_back_forward_list_n_forward_items_copy_func.cpp",
+    "utc_blink_ewk_back_forward_list_next_item_get_func.cpp",
+    "utc_blink_ewk_back_forward_list_previous_item_get_func.cpp",
+    "utc_blink_ewk_base.cpp",
+    "utc_blink_ewk_base.h",
+    "utc_blink_ewk_certificate_policy_decision_allowed_set_func.cpp",
+    "utc_blink_ewk_certificate_policy_decision_certificate_pem_get_func.cpp",
+    "utc_blink_ewk_certificate_policy_decision_suspend_func.cpp",
+    "utc_blink_ewk_certificate_policy_decision_url_get_func.cpp",
+    "utc_blink_ewk_console_message_level_get_func.cpp",
+    "utc_blink_ewk_console_message_line_get_func.cpp",
+    "utc_blink_ewk_console_message_source_get_func.cpp",
+    "utc_blink_ewk_console_message_text_get_func.cpp",
+    "utc_blink_ewk_context_additional_plugin_path_set_func.cpp",
+    "utc_blink_ewk_context_application_cache_delete_all_func.cpp",
+    "utc_blink_ewk_context_application_cache_delete_func.cpp",
+    "utc_blink_ewk_context_application_cache_origins_get_func.cpp",
+    "utc_blink_ewk_context_cache_clear_func.cpp",
+    "utc_blink_ewk_context_cache_disabled_set_func.cpp",
+    "utc_blink_ewk_context_cache_model_get_func.cpp",
+    "utc_blink_ewk_context_cache_model_set_func.cpp",
+    "utc_blink_ewk_context_certificate_file_get_func.cpp",
+    "utc_blink_ewk_context_certificate_file_set_func.cpp",
+    "utc_blink_ewk_context_cookie_manager_get_func.cpp",
+    "utc_blink_ewk_context_default_get_func.cpp",
+    "utc_blink_ewk_context_delete_func.cpp",
+    "utc_blink_ewk_context_did_start_download_callback_set_func.cpp",
+    "utc_blink_ewk_context_form_autofill_profile_add_func.cpp",
+    "utc_blink_ewk_context_form_autofill_profile_get_all_func.cpp",
+    "utc_blink_ewk_context_form_autofill_profile_get_func.cpp",
+    "utc_blink_ewk_context_form_autofill_profile_remove_func.cpp",
+    "utc_blink_ewk_context_form_autofill_profile_set_func.cpp",
+    "utc_blink_ewk_context_form_autofill_profile_utils.cpp",
+    "utc_blink_ewk_context_form_autofill_profile_utils.h",
+    "utc_blink_ewk_context_form_candidate_data_delete_all_func.cpp",
+    "utc_blink_ewk_context_form_password_data_delete_all_func.cpp",
+    "utc_blink_ewk_context_icon_database_icon_object_add_func.cpp",
+    "utc_blink_ewk_context_icon_database_path_set_func.cpp",
+    "utc_blink_ewk_context_inspector_server_start_func.cpp",
+    "utc_blink_ewk_context_inspector_server_stop_func.cpp",
+    "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
+    "utc_blink_ewk_context_local_file_system_delete_func.cpp",
+    "utc_blink_ewk_context_menu.h",
+    "utc_blink_ewk_context_menu_item_append_as_action_func.cpp",
+    "utc_blink_ewk_context_menu_item_append_func.cpp",
+    "utc_blink_ewk_context_menu_item_count_func.cpp",
+    "utc_blink_ewk_context_menu_item_image_url_get_func.cpp",
+    "utc_blink_ewk_context_menu_item_link_url_get_func.cpp",
+    "utc_blink_ewk_context_menu_item_remove_func.cpp",
+    "utc_blink_ewk_context_menu_item_tag_get_func.cpp",
+    "utc_blink_ewk_context_menu_nth_item_get_func.cpp",
+    "utc_blink_ewk_context_new_func.cpp",
+    "utc_blink_ewk_context_new_with_injected_bundle_path_func.cc",
+    "utc_blink_ewk_context_notify_low_memory_func.cpp",
+    "utc_blink_ewk_context_pixmap_set_func.cpp",
+    "utc_blink_ewk_context_preferred_languages_set_func.cpp",
+    "utc_blink_ewk_context_proxy_uri_get_func.cpp",
+    "utc_blink_ewk_context_proxy_uri_set_func.cpp",
+    "utc_blink_ewk_context_vibration_client_callbacks_set_func.cpp",
+    "utc_blink_ewk_context_web_database_delete_all_func.cpp",
+    "utc_blink_ewk_context_web_database_delete_func.cpp",
+    "utc_blink_ewk_context_web_database_origins_get_func.cpp",
+    "utc_blink_ewk_context_web_indexed_database_delete_all_func.cpp",
+    "utc_blink_ewk_context_web_storage_delete_all_func.cpp",
+    "utc_blink_ewk_context_web_storage_origin_delete_func.cpp",
+    "utc_blink_ewk_context_web_storage_origins_get_func.cpp",
+    "utc_blink_ewk_cookie_manager_accept_policy_async_get_func.cpp",
+    "utc_blink_ewk_cookie_manager_accept_policy_set_func.cpp",
+    "utc_blink_ewk_cookie_manager_cookies_clear_func.cpp",
+    "utc_blink_ewk_custom_handlers_data_base_url_get_func.cpp",
+    "utc_blink_ewk_custom_handlers_data_result_set_func.cpp",
+    "utc_blink_ewk_custom_handlers_data_target_get_func.cpp",
+    "utc_blink_ewk_custom_handlers_data_title_get_func.cpp",
+    "utc_blink_ewk_custom_handlers_data_url_get_func.cpp",
+    "utc_blink_ewk_error_code_get_func.cpp",
+    "utc_blink_ewk_error_description_get_func.cpp",
+    "utc_blink_ewk_error_type_get_func.cpp",
+    "utc_blink_ewk_error_url_get_func.cpp",
+    "utc_blink_ewk_frame_is_main_frame_func.cpp",
+    "utc_blink_ewk_geolocation_permission_reply_func.cpp",
+    "utc_blink_ewk_geolocation_permission_request_origin_get_func.cpp",
+    "utc_blink_ewk_geolocation_permission_request_set_func.cpp",
+    "utc_blink_ewk_geolocation_permission_request_suspend_func.cpp",
+    "utc_blink_ewk_history_back_list_length_get_func.cpp",
+    "utc_blink_ewk_history_forward_list_length_get.cpp",
+    "utc_blink_ewk_history_free_func.cpp",
+    "utc_blink_ewk_history_item_title_get_func.cpp",
+    "utc_blink_ewk_history_item_uri_get_func.cpp",
+    "utc_blink_ewk_history_nth_item_get.cpp",
+    "utc_blink_ewk_hit_test_attribute_hash_get_func.cpp",
+    "utc_blink_ewk_hit_test_free_func.cpp",
+    "utc_blink_ewk_hit_test_image_file_name_extension_get_func.cpp",
+    "utc_blink_ewk_hit_test_image_uri_get_func.cpp",
+    "utc_blink_ewk_hit_test_link_label_get_func.cpp",
+    "utc_blink_ewk_hit_test_link_title_get_func.cpp",
+    "utc_blink_ewk_hit_test_link_uri_get_func.cpp",
+    "utc_blink_ewk_hit_test_media_uri_get_func.cpp",
+    "utc_blink_ewk_hit_test_node_value_get_func.cpp",
+    "utc_blink_ewk_hit_test_result_context_get_func.cpp",
+    "utc_blink_ewk_hit_test_tag_name_get_func.cpp",
+    "utc_blink_ewk_home_directory_get_func.cpp",
+    "utc_blink_ewk_home_directory_set_func.cpp",
+    "utc_blink_ewk_notification_body_get_func.cpp",
+    "utc_blink_ewk_notification_callbacks_reset_func.cpp",
+    "utc_blink_ewk_notification_callbacks_set_func.cpp",
+    "utc_blink_ewk_notification_clicked_func.cpp",
+    "utc_blink_ewk_notification_closed_func.cpp",
+    "utc_blink_ewk_notification_icon_get_func.cpp",
+    "utc_blink_ewk_notification_icon_save_as_png_func.cpp",
+    "utc_blink_ewk_notification_id_get_func.cpp",
+    "utc_blink_ewk_notification_permission_reply_func.cpp",
+    "utc_blink_ewk_notification_permission_request_origin_get_func.cpp",
+    "utc_blink_ewk_notification_permission_request_set_func.cpp",
+    "utc_blink_ewk_notification_permission_request_suspend_func.cpp",
+    "utc_blink_ewk_notification_policies_removed_func.cpp",
+    "utc_blink_ewk_notification_security_origin_get_func.cpp",
+    "utc_blink_ewk_notification_showed_func.cpp",
+    "utc_blink_ewk_notification_silent_get_func.cpp",
+    "utc_blink_ewk_notification_title_get_func.cpp",
+    "utc_blink_ewk_policy_decision_cookie_get_func.cpp",
+    "utc_blink_ewk_policy_decision_frame_get_func.cpp",
+    "utc_blink_ewk_policy_decision_host_get_func.cpp",
+    "utc_blink_ewk_policy_decision_http_method_get_func.cpp",
+    "utc_blink_ewk_policy_decision_ignore_func.cpp",
+    "utc_blink_ewk_policy_decision_navigation_type_get_func.cpp",
+    "utc_blink_ewk_policy_decision_password_get_func.cpp",
+    "utc_blink_ewk_policy_decision_response_headers_get_func.cpp",
+    "utc_blink_ewk_policy_decision_response_mime_get_func.cpp",
+    "utc_blink_ewk_policy_decision_response_status_code_get_func.cpp",
+    "utc_blink_ewk_policy_decision_scheme_get_func.cpp",
+    "utc_blink_ewk_policy_decision_suspend_func.cpp",
+    "utc_blink_ewk_policy_decision_type_get_func.cpp",
+    "utc_blink_ewk_policy_decision_url_get_func.cpp",
+    "utc_blink_ewk_policy_decision_use_func.cpp",
+    "utc_blink_ewk_policy_decision_userid_get_func.cpp",
+    "utc_blink_ewk_quota_permission_request_is_persistent_get_func.cpp",
+    "utc_blink_ewk_quota_permission_request_origin_host_get_func.cpp",
+    "utc_blink_ewk_quota_permission_request_origin_port_get_func.cpp",
+    "utc_blink_ewk_quota_permission_request_origin_protocol_get_func.cpp",
+    "utc_blink_ewk_quota_permission_request_quota_get_func.cpp",
+    "utc_blink_ewk_security_origin_host_get_func.cpp",
+    "utc_blink_ewk_security_origin_port_get_func.cpp",
+    "utc_blink_ewk_security_origin_protocol_get_func.cpp",
+    "utc_blink_ewk_settings_autofill_password_form_enabled_get_func.cpp",
+    "utc_blink_ewk_settings_autofill_password_form_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_auto_fitting_get_func.cpp",
+    "utc_blink_ewk_settings_auto_fitting_set_func.cpp",
+    "utc_blink_ewk_settings_clear_text_selection_automatically_set_func.cpp",
+    "utc_blink_ewk_settings_current_legacy_font_size_mode_set_func.cpp",
+    "utc_blink_ewk_settings_default_encoding_set_func.cpp",
+    "utc_blink_ewk_settings_default_keypad_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_detect_contents_automatically_set_func.cpp",
+    "utc_blink_ewk_settings_edge_effect_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_editable_link_behavior_set_func.cpp",
+    "utc_blink_ewk_settings_extra_feature_set_func.cpp",
+    "utc_blink_ewk_settings_font_default_size_get_func.cpp",
+    "utc_blink_ewk_settings_font_default_size_set_func.cpp",
+    "utc_blink_ewk_settings_force_zoom_set_func.cpp",
+    "utc_blink_ewk_settings_form_candidate_data_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_form_profile_data_enabled_get_func.cpp",
+    "utc_blink_ewk_settings_form_profile_data_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_initial_list_style_position_get_func.cpp",
+    "utc_blink_ewk_settings_initial_list_style_position_set_func.cpp",
+    "utc_blink_ewk_settings_is_encoding_valid_func.cpp",
+    "utc_blink_ewk_settings_javascript_enabled_get_func.cpp",
+    "utc_blink_ewk_settings_javascript_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_link_effect_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_link_magnifier_enabled_get_func.cpp",
+    "utc_blink_ewk_settings_link_magnifier_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_private_browsing_enabled_get_func.cpp",
+    "utc_blink_ewk_settings_private_browsing_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_load_remote_images_set_func.cpp",
+    "utc_blink_ewk_settings_loads_images_automatically_set_func.cpp",
+    "utc_blink_ewk_settings_paste_image_uri_mode_set_func.cpp",
+    "utc_blink_ewk_settings_plugins_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_scripts_can_open_windows_get_func.cpp",
+    "utc_blink_ewk_settings_scripts_can_open_windows_set_func.cpp",
+    "utc_blink_ewk_settings_scripts_window_open_get_func.cpp",
+    "utc_blink_ewk_settings_scripts_window_open_set_func.cpp",
+    "utc_blink_ewk_settings_select_word_automatically_set_func.cpp",
+    "utc_blink_ewk_settings_spdy_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_text_autosizing_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_text_autosizing_font_scale_factor_set_func.cpp",
+    "utc_blink_ewk_settings_text_selection_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_text_style_state_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_text_zoom_enabled_set_func.cpp",
+    "utc_blink_ewk_settings_uses_encoding_detector_set_func.cpp",
+    "utc_blink_ewk_settings_uses_keypad_without_user_action_set_func.cpp",
+    "utc_blink_ewk_text_style_align_center_get_func.cpp",
+    "utc_blink_ewk_text_style_align_full_get_func.cpp",
+    "utc_blink_ewk_text_style_align_left_get_func.cpp",
+    "utc_blink_ewk_text_style_align_right_get_func.cpp",
+    "utc_blink_ewk_text_style_bg_color_get_func.cpp",
+    "utc_blink_ewk_text_style_bold_get_func.cpp",
+    "utc_blink_ewk_text_style_color_get_func.cpp",
+    "utc_blink_ewk_text_style_font_size_get_func.cpp",
+    "utc_blink_ewk_text_style_has_composition_get_func.cpp",
+    "utc_blink_ewk_text_style_italic_get_func.cpp",
+    "utc_blink_ewk_text_style_ordered_list_get_func.cpp",
+    "utc_blink_ewk_text_style_position_get_func.cpp",
+    "utc_blink_ewk_text_style_underline_get_func.cpp",
+    "utc_blink_ewk_text_style_unordered_list_get_func.cpp",
+    "utc_blink_ewk_user_media_permission_request_set_func.cpp",
+    "utc_blink_ewk_user_media_permission_request_suspend_func.cpp",
+    "utc_blink_ewk_view_add_func.cpp",
+    "utc_blink_ewk_view_add_in_incognito_mode_func.cpp",
+    "utc_blink_ewk_view_add_with_context_func.cpp",
+    "utc_blink_ewk_view_add_with_session_data_func.cpp",
+    "utc_blink_ewk_view_application_name_for_user_agent_get_func.cpp",
+    "utc_blink_ewk_view_application_name_for_user_agent_set_func.cpp",
+    "utc_blink_ewk_view_back_forward_list_clear_func.cpp",
+    "utc_blink_ewk_view_back_forward_list_get_func.cpp",
+    "utc_blink_ewk_view_back_func.cpp",
+    "utc_blink_ewk_view_back_possible_func.cpp",
+    "utc_blink_ewk_view_browser_font_set_func.cpp",
+    "utc_blink_ewk_view_command_execute_func.cpp",
+    "utc_blink_ewk_view_content_security_policy_set_func.cpp",
+    "utc_blink_ewk_view_contents_pdf_get_func.cpp",
+    "utc_blink_ewk_view_contents_set_func.cpp",
+    "utc_blink_ewk_view_contents_size_get_func.cpp",
+    "utc_blink_ewk_view_context_get_func.cpp",
+    "utc_blink_ewk_view_custom_header_add_func.cpp",
+    "utc_blink_ewk_view_custom_header_remove_func.cpp",
+    "utc_blink_ewk_view_draws_transparent_background_set_func.cpp",
+    "utc_blink_ewk_view_encoding_custom_set_func.cpp",
+    "utc_blink_ewk_view_forward_func.cpp",
+    "utc_blink_ewk_view_forward_possible_func.cpp",
+    "utc_blink_ewk_view_fullscreen_exit_func.cpp",
+    "utc_blink_ewk_view_geolocation_permission_callback_set_func.cpp",
+    "utc_blink_ewk_view_get_cookies_for_url_func.cpp",
+    "utc_blink_ewk_view_history_get_func.cpp",
+    "utc_blink_ewk_view_hit_test_new_func.cpp",
+    "utc_blink_ewk_view_hit_test_request_func.cpp",
+    "utc_blink_ewk_view_html_contents_set_func.cpp",
+    "utc_blink_ewk_view_html_string_load_func.cpp",
+    "utc_blink_ewk_view_inspector_server_stop_func.cpp",
+    "utc_blink_ewk_view_javascript_confirm_reply_func.cpp",
+    "utc_blink_ewk_view_load_progress_get_func.cpp",
+    "utc_blink_ewk_view_main_frame_get_func.cpp",
+    "utc_blink_ewk_view_mhtml_data_get_func.cpp",
+    "utc_blink_ewk_view_notification_permission_callback_set_func.cpp",
+    "utc_blink_ewk_view_orientation_lock_callback_set_func.cpp",
+    "utc_blink_ewk_view_orientation_send_func.cpp",
+    "utc_blink_ewk_view_page_visibility_state_set_func.cpp",
+    "utc_blink_ewk_view_plain_text_get_func.cpp",
+    "utc_blink_ewk_view_quota_permission_request_callback_set_func.cpp",
+    "utc_blink_ewk_view_quota_permission_request_cancel_func.cpp",
+    "utc_blink_ewk_view_quota_permission_request_reply_func.cpp",
+    "utc_blink_ewk_view_reload_func.cpp",
+    "utc_blink_ewk_view_resume_func.cpp",
+    "utc_blink_ewk_view_scale_get_func.cpp",
+    "utc_blink_ewk_view_scale_range_get_func.cpp",
+    "utc_blink_ewk_view_scale_set_func.cpp",
+    "utc_blink_ewk_view_screenshot_contents_get_func.cpp",
+    "utc_blink_ewk_view_script_execute_func.cpp",
+    "utc_blink_ewk_view_scroll_pos_get_func.cpp",
+    "utc_blink_ewk_view_scroll_set_func.cpp",
+    "utc_blink_ewk_view_scroll_size_get_func.cpp",
+    "utc_blink_ewk_view_session_data_get_func.cpp",
+    "utc_blink_ewk_view_settings_get_func.cpp",
+    "utc_blink_ewk_view_stop_func.cpp",
+    "utc_blink_ewk_view_suspend_func.cpp",
+    "utc_blink_ewk_view_text_find_func.cpp",
+    "utc_blink_ewk_view_text_find_highlight_clear_func.cpp",
+    "utc_blink_ewk_view_text_selection_clear_func.cpp",
+    "utc_blink_ewk_view_text_selection_text_get_func.cpp",
+    "utc_blink_ewk_view_text_zoom_get_func.cpp",
+    "utc_blink_ewk_view_text_zoom_set_func.cpp",
+    "utc_blink_ewk_view_title_get_func.cpp",
+    "utc_blink_ewk_view_touch_events_enabled_set_func.cpp",
+    "utc_blink_ewk_view_url_get_func.cpp",
+    "utc_blink_ewk_view_url_request_set_func.cpp",
+    "utc_blink_ewk_view_url_set_func.cpp",
+    "utc_blink_ewk_view_user_agent_get_func.cpp",
+    "utc_blink_ewk_view_user_agent_set_func.cpp",
+    "utc_blink_ewk_view_use_settings_font_func.cpp",
+    "utc_blink_ewk_view_visibility_set_func.cpp",
+    "utc_blink_ewk_view_web_application_capable_get_func.cpp",
+    "utc_blink_ewk_view_web_application_icon_url_get_func.cpp",
+    "utc_blink_ewk_view_web_application_icon_urls_get_func.cpp",
+    "utc_blink_ewk_web_application_icon_data_url_get_func.cpp",
+  ]
+  cflags = [ "-glib-2.0" ]
+  ldflags = [ "-glib-2.0" ]
+  libs = [ "glib-2.0" ]
+  #TODO : Uncomment it.
+  #deps += [ ":libbundle" ]
+  if (building_for_tizen && building_strategy=="ewk") {
+    cflags += [ "-scim" ]
+    ldflags += [ "-scim" ]
+    libs += [ "scim" ]
+  }
+  defines = []
+  if (ewk_bringup) {
+    defines += [ "EWK_BRINGUP=true" ]
+    sources -= [
+      #XXX: enable *local_file_system* once we find a way to set --allow-file-access-from-files flag at runtime
+      "utc_blink_ewk_context_local_file_system_all_delete_func.cpp",
+      "utc_blink_ewk_context_local_file_system_delete_func.cpp",
+    ]
+  }
+}
index 5339b67..9d43495 100644 (file)
@@ -5,7 +5,7 @@
 import("//testing/test.gni")
 
 # Works only on desktop platforms.
-assert(is_win || is_linux || is_mac)
+assert(is_win || is_linux || is_mac || is_tizen)
 
 executable("battor_agent") {
   sources = [
index 0a481c8..bdf043b 100644 (file)
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+if(!is_tizen) {
 group("perf") {
   testonly = true
   deps = [
@@ -32,6 +33,7 @@ group("perf") {
     "//build/android/pylib/",
   ]
 }
+}
 
 if (is_android) {
   import("//build/config/android/rules.gni")
index 3b4e270..7b645a2 100644 (file)
@@ -7,6 +7,7 @@ if (is_android) {
   import("//build/config/android/config.gni")  # For public_android_sdk
 }
 
+if (!is_tizen) {
 group("telemetry_chrome_test") {
   testonly = true
 
@@ -136,3 +137,4 @@ group("telemetry_chrome_test_experimental") {
     }
   }
 }
+}
index b209b39..52b43f1 100644 (file)
@@ -11,6 +11,9 @@ import("//build/util/branding.gni")
 import("//testing/test.gni")
 import("//ui/base/ui_features.gni")
 import("//ui/ozone/ozone.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
 
 if (is_android) {
   import("//build/config/android/config.gni")
@@ -505,7 +508,7 @@ component("base") {
     sources -= [ "resource/resource_bundle_auralinux.cc" ]
   }
 
-  if (is_linux) {
+  if (is_linux || is_tizen) {
     deps += [ "//third_party/fontconfig" ]
   }
 
@@ -655,6 +658,26 @@ component("base") {
   if (is_android || is_ios) {
     sources -= [ "device_form_factor_desktop.cc" ]
   }
+
+  if (use_efl) {
+    if (!is_component_build) {
+      deps += external_ui_base_static_lib_deps
+    } else {
+      #sources += external_ui_base_shared_lib_sources
+    }
+    configs += external_ui_base_configs
+    include_dirs = external_ui_base_includes
+    sources += external_ui_base_sources
+    sources -= external_exclude_ui_base_sources
+  }
+  if (is_tizen) {
+    sources -= [
+      "dragdrop/drag_utils.cc",
+      "dragdrop/drag_utils.h",
+      "idle/idle.cc",
+      "idle/idle.h",
+    ]
+  }
 }
 
 static_library("test_support") {
@@ -705,6 +728,13 @@ static_library("test_support") {
     ]
   }
 
+  if (use_efl) {
+    sources -= [
+      "test/test_clipboard.cc",
+      "test/test_clipboard.h",
+    ]
+  }
+
   public_deps = [
     ":base",
   ]
@@ -1001,7 +1031,7 @@ test("ui_base_unittests") {
     ]
   }
 
-  if (is_android || is_linux || is_mac || is_win || is_fuchsia) {
+  if (is_android || is_linux || is_mac || is_win || is_fuchsia  || is_tizen) {
     # TODO(brettw): We should be able to depend on //ui/resources:ui_test_pak
     # instead of depending directly on the non-test .pak files, but depending
     # on ui_test_pak seems to have no effect.
index d5bb881..6bb7e3c 100644 (file)
@@ -16,6 +16,10 @@ if (is_ios) {
   import("//ios/build/config.gni")
 }
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
 static_library("dom_keycode_converter") {
   sources = [
     "keycodes/dom/dom_code.h",
@@ -242,6 +246,14 @@ component("events") {
   if (is_mac) {
     libs = [ "AppKit.framework" ]
   }
+
+  if (use_efl) {
+    if (!is_component_build) {
+      deps += external_ui_events_static_lib_deps
+    } else {
+      sources += external_ui_events_shared_lib_sources
+    }
+  }
 }
 
 component("gesture_detection") {
@@ -304,6 +316,11 @@ component("gesture_detection") {
   } else {
     sources += [ "gesture_detection/gesture_configuration_default.cc" ]
   }
+
+  if (use_efl) {
+    sources += external_ui_gesture_detection_sources
+    sources -= external_exclude_ui_gesture_detection_sources
+  }
 }
 
 static_library("test_support") {
index ed92538..0042b1f 100644 (file)
@@ -61,4 +61,13 @@ if (is_android) {
     ]
     jni_package = "events/devices"
   }
+
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "device_util_linux.cc",
+      "device_util_linux.h",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
 }
index f9a3328..0df58d6 100644 (file)
@@ -46,6 +46,10 @@ if (use_ozone) {
       "//ui/gfx",
     ]
 
+    if (use_efl) {
+      deps += [ "//ui/events/devices" ]
+    }
+
     defines = [ "EVENTS_OZONE_IMPLEMENTATION" ]
 
     if (!use_udev) {
index 31a20f0..f5e96c8 100644 (file)
@@ -6,6 +6,10 @@ import("//build/config/jumbo.gni")
 import("//build/config/ui.gni")
 import("//ui/ozone/ozone.gni")
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
 assert(use_x11 || ozone_platform_x11)
 
 jumbo_component("x11") {
@@ -57,4 +61,8 @@ jumbo_component("x11") {
 
     deps += [ "//ui/events/keycodes:x11" ]
   }
+
+  if (use_efl) {
+    sources -= external_exclude_ui_x11_event_sources
+  }
 }
index e355204..191a42b 100644 (file)
@@ -13,6 +13,10 @@ if (is_android) {
   import("//build/config/android/rules.gni")
 }
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
 # Several targets want to include this header file, and some of them are
 # child dependencies of "gfx". Therefore, we separate it out here so multiple
 # targets can all have a dependency for header checking purposes without
@@ -258,7 +262,7 @@ jumbo_component("gfx") {
   ]
 
   # Text rendering conditions (complicated so separated out).
-  if (use_aura || is_mac || (is_android && enable_vr) || is_fuchsia) {
+  if (use_aura || is_mac || (is_android && enable_vr) || is_fuchsia || use_efl) {
     # Mac doesn't use RenderTextHarfBuzz by default yet.
     sources += [
       "harfbuzz_font_skia.cc",
@@ -393,6 +397,21 @@ jumbo_component("gfx") {
       "platform_font_fuchsia.cc",
     ]
   }
+
+  if (use_efl) {
+    configs += external_ui_gfx_configs
+    sources += external_ui_gfx_sources
+  }
+
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "platform_font_linux.cc",
+      "font_fallback_linux.cc",
+      "font_render_params_linux.cc",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
 }
 
 jumbo_component("color_space") {
@@ -448,6 +467,7 @@ source_set("native_widget_types") {
 
   public_deps = [
     "//base",
+    "//skia",
   ]
 }
 
index b14d8ac..7f9fa1b 100644 (file)
@@ -6,6 +6,10 @@ import("//build/config/jumbo.gni")
 import("//build/config/ui.gni")
 import("//ui/ozone/ozone.gni")
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
 assert(use_x11 || ozone_platform_x11)
 
 jumbo_component("x") {
@@ -32,4 +36,10 @@ jumbo_component("x") {
   deps = [
     "//base",
   ]
+
+  if (use_efl) {
+    configs += external_ui_gfx_x11_configs
+    sources += external_ui_gfx_x11_sources
+    sources -= external_exclude_ui_gfx_x11_sources
+  }
 }
index a79f2ef..90c0fa1 100644 (file)
@@ -24,6 +24,10 @@ if (is_android) {
   import("//build/config/android/rules.gni")
 }
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
 buildflag_header("gl_features") {
   header = "gl_features.h"
   use_egl_on_mac = use_egl && is_mac
@@ -232,7 +236,7 @@ component("gl") {
   }
 
   # TODO(camurcu): Windows/Ozone uses OSMesa for now. Will be updated.
-  if (is_android || is_linux || is_fuchsia || (is_win && use_ozone)) {
+  if (is_android || is_linux || is_fuchsia || (is_win && use_ozone) || is_tizen) {
     sources += [
       "gl_implementation_osmesa.cc",
       "gl_implementation_osmesa.h",
@@ -358,6 +362,12 @@ component("gl") {
 
     deps += [ ":gl_jni_headers" ]
   }
+
+  if (use_efl) {
+    configs += external_ui_gl_configs
+    sources += external_ui_gl_sources
+    sources -= external_exclude_ui_gl_sources
+  }
 }
 
 static_library("gl_unittest_utils") {
index 753d4fd..9b20f22 100644 (file)
@@ -5,6 +5,9 @@
 import("//build/config/jumbo.gni")
 import("//build/config/ui.gni")
 import("//testing/test.gni")
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
 
 jumbo_component("native_theme") {
   sources = [
@@ -55,6 +58,13 @@ jumbo_component("native_theme") {
       "AppKit.framework",
     ]
   }
+  if (use_efl) {
+    if (!is_component_build) {
+      deps += external_native_theme_static_lib_deps
+    } else {
+      sources += external_ui_native_theme_shared_lib_sources
+    }
+  }
 }
 
 if (is_win) {
index 2154dd0..77ae378 100644 (file)
@@ -8,6 +8,10 @@ import("//ui/ozone/ozone.gni")
 import("//ui/ozone/ozone_extra.gni")
 import("//testing/test.gni")
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
 assert(use_ozone)
 
 visibility = [ ":*" ]
@@ -48,6 +52,10 @@ if (ozone_platform_x11) {
   ozone_platform_deps += [ "platform/x11" ]
 }
 
+if (use_ozone) {
+  ozone_platforms += external_ozone_platforms
+}
+
 platform_list_cc_file = "$target_gen_dir/platform_list.cc"
 platform_list_h_file = "$target_gen_dir/platform_list.h"
 platform_list_txt_file = "$target_gen_dir/platform_list.txt"
@@ -156,6 +164,10 @@ source_set("platform") {
   # Platforms are always linked into //ui/ozone and can include our headers.
   allow_circular_includes_from = ozone_platform_deps
 
+  if (use_efl) {
+    deps += external_ozone_platform_deps
+  }
+
   # This is used for platform tests.
   visibility += [ "//ui/ozone/platform/*" ]
 }
index 213a6d2..65729cb 100644 (file)
@@ -38,4 +38,8 @@ source_set("common") {
   ]
 
   visibility = [ "//ui/ozone/platform/*" ]
+
+  if (use_efl) {
+    visibility += [ "//tizen_src/chromium_impl/ui/ozone:ozone_efl" ]
+  }
 }
index 80b4c17..ff793b9 100644 (file)
@@ -77,6 +77,15 @@ jumbo_component("shell_dialogs") {
   if (is_fuchsia) {
     sources += [ "select_file_dialog_fuchsia.cc" ]
   }
+
+  if (is_tizen) {
+    set_sources_assignment_filter([])
+    sources += [
+      "shell_dialog_linux.cc",
+      "shell_dialog_linux.h",
+    ]
+    set_sources_assignment_filter(sources_assignment_filter)
+  }
 }
 
 if (is_mac) {
index 840df0e..9b0cfb5 100644 (file)
@@ -6,6 +6,10 @@ import("//build/config/jumbo.gni")
 import("//build/config/ui.gni")
 import("//testing/test.gni")
 
+if (use_efl) {
+  import("//tizen_src/chromium_impl/ui/ui_efl.gni")
+}
+
 jumbo_component("snapshot") {
   sources = [
     "screenshot_grabber.cc",
@@ -70,6 +74,10 @@ jumbo_component("snapshot") {
       "CoreGraphics.framework",
     ]
   }
+
+  if (use_efl) {
+    sources += external_ui_snapshot_sources
+  }
 }
 
 jumbo_source_set("snapshot_win") {
index 6f17127..a2fa3f2 100644 (file)
@@ -26,4 +26,9 @@ jumbo_component("surface") {
     "//ui/gfx/geometry",
     "//ui/gl",
   ]
+
+  if (use_efl) {
+    deps -= [ "//ui/gl" ]
+    deps += [ "//gpu/config:config" ]
+  }
 }
index 32f534f..deb77b3 100644 (file)
@@ -496,7 +496,7 @@ jumbo_component("views") {
   if (use_x11) {
     deps += [ "//ui/display/util" ]
   }
-  if (is_linux && !is_chromeos) {
+  if (is_linux && !is_chromeos || is_tizen) {
     sources -= [ "window/window_button_order_provider.cc" ]
     deps += [ "//ui/shell_dialogs" ]
   } else {
index f09fc57..86d915c 100644 (file)
@@ -2721,7 +2721,7 @@ v8_component("v8_libbase") {
     }
   }
 
-  if (is_linux) {
+  if (is_linux || is_tizen) {
     sources += [
       "src/base/debug/stack_trace_posix.cc",
       "src/base/platform/platform-linux.cc",
@@ -2741,6 +2741,9 @@ v8_component("v8_libbase") {
       "dl",
       "rt",
     ]
+    if (is_tizen) {
+      libs += [ "pthread" ]
+    }
   } else if (is_android) {
     if (current_toolchain == host_toolchain) {
       libs = [