From 52b815399b1d9b2f04e4ca5a7bfbc175c9d0e2a4 Mon Sep 17 00:00:00 2001 From: v-saha Date: Tue, 20 Dec 2022 10:37:31 +0530 Subject: [PATCH 01/16] Use BUILDFLAG(IS_XXX) for OS checking This patch replaces all occurances of defined(OS_XXX) with BUILDFLAG(IS_XXX) as per upstream changes mentioned in [1]. [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1234043 Below efl/tizen build flags are replaced: USE_EFL -> IS_EFL OS_TIZEN -> IS_TIZEN OS_TIZEN_TV_PRODUCT -> IS_TIZEN_TV Change-Id: I55e85cf953fa855e97e608ca22be2bf2e2599d27 Signed-off-by: v-saha Signed-off-by: Gajendra N --- .../partition_alloc_base/compiler_specific.h | 2 +- base/base_switches.cc | 2 +- base/base_switches.h | 2 +- base/compiler_specific.h | 2 +- base/logging.cc | 12 +++--- base/message_loop/message_pump.cc | 4 +- base/message_loop/message_pump_for_ui.h | 4 +- base/message_loop/message_pump_type.h | 4 +- base/process/memory_linux.cc | 4 +- base/run_loop.h | 4 +- .../task/sequence_manager/sequence_manager_impl.cc | 2 +- base/task/sequence_manager/thread_controller.h | 2 +- .../sequence_manager/thread_controller_impl.cc | 2 +- .../task/sequence_manager/thread_controller_impl.h | 2 +- .../thread_controller_with_message_pump_impl.cc | 4 +- .../thread_controller_with_message_pump_impl.h | 2 +- build/build_config.h | 18 +++++++++ chrome/browser/browser_process_impl.cc | 4 +- chrome/browser/chrome_browser_main_linux.cc | 2 +- chrome/browser/chrome_content_browser_client.cc | 2 +- chrome/browser/ui/views/accelerator_table.cc | 2 +- components/viz/host/host_frame_sink_client.h | 2 +- components/viz/host/host_frame_sink_manager.cc | 2 +- components/viz/host/host_frame_sink_manager.h | 2 +- components/viz/service/display/display.cc | 2 +- components/viz/service/display/display.h | 2 +- components/viz/service/display/display_client.h | 2 +- .../viz/service/display/output_surface_client.h | 2 +- .../service/display_embedder/skia_output_device.cc | 2 +- .../service/display_embedder/skia_output_device.h | 2 +- .../skia_output_device_offscreen.cc | 2 +- .../skia_output_device_offscreen.h | 2 +- .../display_embedder/skia_output_surface_impl.cc | 4 +- .../skia_output_surface_impl_on_gpu.cc | 2 +- .../skia_output_surface_impl_on_gpu.h | 2 +- .../service/frame_sinks/frame_sink_manager_impl.cc | 2 +- .../service/frame_sinks/frame_sink_manager_impl.h | 2 +- .../frame_sinks/root_compositor_frame_sink_impl.cc | 2 +- .../frame_sinks/root_compositor_frame_sink_impl.h | 2 +- content/browser/child_process_launcher.cc | 4 +- .../browser/child_process_launcher_helper_linux.cc | 2 +- .../browser/renderer_host/delegated_frame_host.cc | 2 +- .../browser/renderer_host/delegated_frame_host.h | 4 +- .../delegated_frame_host_client_aura.cc | 2 +- .../delegated_frame_host_client_aura.h | 2 +- .../renderer_host/render_process_host_impl.cc | 2 +- .../browser/renderer_host/render_view_host_impl.cc | 4 +- .../renderer_host/render_widget_host_view_aura.cc | 12 +++--- .../renderer_host/render_widget_host_view_aura.h | 8 ++-- content/browser/speech/tts_platform_impl.cc | 2 +- content/browser/web_contents/web_contents_impl.cc | 6 +-- content/browser/web_contents/web_contents_impl.h | 10 ++--- .../browser/web_contents/web_contents_view_aura.cc | 4 +- content/common/cursors/webcursor.h | 2 +- content/common/zygote/zygote_commands_linux.h | 2 +- .../common/zygote/zygote_communication_linux.cc | 2 +- content/common/zygote/zygote_communication_linux.h | 2 +- content/gpu/gpu_child_thread.cc | 2 +- content/gpu/gpu_child_thread.h | 2 +- content/gpu/in_process_gpu_thread.h | 4 +- content/public/browser/web_contents_delegate.cc | 2 +- content/public/browser/web_contents_delegate.h | 4 +- content/public/renderer/content_renderer_client.cc | 2 +- content/public/renderer/content_renderer_client.h | 2 +- .../renderer/pepper/pepper_video_decoder_host.cc | 4 +- .../renderer/pepper/pepper_video_encoder_host.cc | 2 +- content/renderer/renderer_main.cc | 2 +- content/shell/browser/shell.h | 2 +- .../shell/browser/shell_content_browser_client.cc | 4 +- .../browser/shell_web_contents_view_delegate.h | 2 +- .../browser/web_test_browser_main_runner.cc | 2 +- device/fido/fido_discovery.cc | 4 +- .../bluetooth_low_energy_api.cc | 6 +-- gpu/command_buffer/service/external_semaphore.h | 3 +- .../common/gpu_memory_buffer_impl_native_pixmap.cc | 2 +- gpu/ipc/service/gpu_channel_manager.h | 4 +- .../gpu_memory_buffer_factory_native_pixmap.h | 3 +- gpu/vulkan/vma_wrapper.h | 3 +- gpu/vulkan/vulkan_device_queue.h | 3 +- .../browser/headless_browser_main_parts_linux.cc | 2 +- ipc/ipc_message_start.h | 4 +- mojo/core/channel_linux.cc | 2 +- .../cpp/base/message_pump_type_mojom_traits.cc | 4 +- .../syscall_parameters_restrictions.cc | 2 +- .../queued_request_dispatcher.cc | 2 +- .../common/web_preferences/web_preferences.h | 2 +- .../blink/renderer/platform/heap/thread_local.h | 2 +- .../blink/renderer/platform/wtf/math_extras.h | 4 +- .../crashpad/compat/linux/sys/mman_memfd_create.cc | 4 +- .../crashpad/crashpad/util/posix/scoped_mmap.cc | 2 +- tizen_src/chromium_impl/build/tizen_version.h | 6 ++- .../js_dialogs_efl/javascript_modal_dialog_efl.cc | 4 +- .../javascript_dialog/javascript_modal_dialog.cc | 6 +-- .../browser/selection/selection_controller_efl.cc | 4 +- .../browser/selection/selection_controller_efl.h | 4 +- .../browser/tracing/tracing_controller_efl.cc | 2 +- .../media/efl/tizen_video_decode_accelerator.cc | 2 +- .../media/efl/tizen_video_encode_accelerator.cc | 11 +++--- .../content/common/message_generator_efl.h | 2 +- .../chromium_impl/content/common/paths_efl.cc | 18 ++++----- .../content/renderer/common_renderer_client.cc | 4 +- .../content/shell/browser/shell_efl.cc | 2 +- tizen_src/chromium_impl/efl/init.cc | 23 ----------- tizen_src/chromium_impl/efl/init.h | 2 - tizen_src/chromium_impl/tizen/system_info.cc | 13 +++--- .../ui/ozone/platform/efl/efl_event_handler.cc | 19 ++++----- .../ui/ozone/platform/efl/efl_event_handler.h | 4 +- .../ui/ozone/platform/efl/efl_keycode_map.h | 2 +- .../ui/ozone/platform/efl/efl_window.cc | 8 ++-- .../ui/ozone/platform/efl/efl_window.h | 2 +- .../ui/ozone/platform/efl/im_context_efl.cc | 24 +++++------ .../ui/ozone/platform/efl/im_context_efl.h | 13 +++--- .../authentication_challenge_popup.cc | 8 ++-- .../authentication_challenge_popup.h | 3 +- .../ewk/efl_integration/autofill_popup_view_efl.cc | 2 +- .../browser/autofill/autofill_client_efl.cc | 4 +- .../browser/inputpicker/InputPicker.cc | 20 +++++----- .../notification/notification_controller_efl.cc | 20 +++++----- .../notification/notification_controller_efl.h | 2 +- .../browser/selectpicker/popup_picker.cc | 8 ++-- .../browser/web_view_evas_handler.cc | 4 +- tizen_src/ewk/efl_integration/command_line_efl.cc | 7 ++-- .../ewk/efl_integration/common/version_info.cc | 6 ++- .../efl_integration/content_browser_client_efl.cc | 12 +++--- .../efl_integration/context_menu_controller_efl.cc | 14 +++---- .../efl_integration/context_menu_controller_efl.h | 2 +- tizen_src/ewk/efl_integration/eweb_context.cc | 22 +++++------ tizen_src/ewk/efl_integration/eweb_context.h | 2 +- tizen_src/ewk/efl_integration/eweb_view.cc | 4 +- tizen_src/ewk/efl_integration/eweb_view.h | 6 +-- .../ewk/efl_integration/eweb_view_callbacks.h | 8 ++-- tizen_src/ewk/efl_integration/ewk_global_data.cc | 4 +- tizen_src/ewk/efl_integration/locale_efl.cc | 10 ++--- .../efl_integration/permission_popup_manager.cc | 6 +-- .../ewk/efl_integration/popup_controller_efl.cc | 12 +++--- .../efl_integration/private/ewk_view_private.cc | 2 +- .../ewk/efl_integration/public/ewk_context.cc | 6 +-- .../ewk/efl_integration/public/ewk_context_menu.cc | 4 +- .../public/ewk_context_menu_product.h | 6 ++- .../public/ewk_media_playback_info.cc | 2 +- .../public/ewk_media_playback_info_product.h | 4 +- .../public/ewk_media_subtitle_info.cc | 2 +- .../public/ewk_media_subtitle_info_product.h | 4 +- tizen_src/ewk/efl_integration/public/ewk_view.cc | 7 +--- .../renderer/content_renderer_client_efl.cc | 7 +++- .../efl_integration/web_contents_delegate_efl.cc | 8 ++-- .../ewk/efl_integration/wrt/wrt_dynamicplugin.cc | 4 +- .../ewk/efl_integration/wrt/wrt_dynamicplugin.h | 3 +- tizen_src/ewk/efl_webview_app/app.c | 20 +++++----- tizen_src/ewk/efl_webview_app/mini_browser.c | 46 +++++++++++----------- tizen_src/ewk/ubrowser/browser.cc | 16 ++++---- tizen_src/ewk/ubrowser/browser.h | 5 ++- tizen_src/ewk/ubrowser/main.cc | 15 +++---- tizen_src/ewk/ubrowser/window.cc | 32 +++++++-------- tizen_src/ewk/ubrowser/window.h | 10 +++-- tizen_src/ewk/ubrowser/window_ui.cc | 4 +- .../utc_blink_cb_editorclient_candidate_closed.cpp | 8 ++-- .../utc_blink_cb_editorclient_candidate_opened.cpp | 10 ++--- ui/aura/window.cc | 2 +- ui/aura/window.h | 2 +- ui/base/ime/linux/input_method_auralinux.cc | 4 +- ui/events/event.h | 2 +- ui/gfx/gpu_fence.cc | 2 +- ui/gfx/native_widget_types.h | 8 ++-- ui/gl/gl_context_egl.cc | 2 +- ui/gl/gl_switches.cc | 2 +- .../platform/wayland/gpu/wayland_gl_egl_utility.cc | 4 +- ui/ozone/platform/wayland/host/wayland_output.cc | 2 +- ui/platform_window/platform_window.h | 6 +-- 169 files changed, 465 insertions(+), 443 deletions(-) diff --git a/base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h b/base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h index 12440bf..ac37c71 100644 --- a/base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h +++ b/base/allocator/partition_allocator/partition_alloc_base/compiler_specific.h @@ -311,7 +311,7 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { // Use nomerge attribute to disable optimization of merging multiple same calls. // FIXME: Enable for tizen if clang supports nomerge attribute -#if defined(__clang__) && PA_HAS_ATTRIBUTE(nomerge) && !defined(OS_TIZEN) +#if defined(__clang__) && PA_HAS_ATTRIBUTE(nomerge) && !BUILDFLAG(IS_TIZEN) #define PA_NOMERGE [[clang::nomerge]] #else #define PA_NOMERGE diff --git a/base/base_switches.cc b/base/base_switches.cc index b87ad61..a4c6baf 100644 --- a/base/base_switches.cc +++ b/base/base_switches.cc @@ -143,7 +143,7 @@ const char kDisableUsbKeyboardDetect[] = "disable-usb-keyboard-detect"; const char kDisableDevShmUsage[] = "disable-dev-shm-usage"; #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) // Used for limiting memory allocations in MessagePumpForUIEfl. const char kLimitMemoryAllocationInScheduleDelayedWork[] = "limit-memory-allocation-in-schedule-delayed-work"; diff --git a/base/base_switches.h b/base/base_switches.h index 642e5b5..29a95cf 100644 --- a/base/base_switches.h +++ b/base/base_switches.h @@ -48,7 +48,7 @@ extern const char kDisableUsbKeyboardDetect[]; extern const char kDisableDevShmUsage[]; #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) extern const char kLimitMemoryAllocationInScheduleDelayedWork[]; extern const char kEnableOffscreenRendering[]; #endif diff --git a/base/compiler_specific.h b/base/compiler_specific.h index 16e7ec4..8c04929 100644 --- a/base/compiler_specific.h +++ b/base/compiler_specific.h @@ -346,7 +346,7 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) { #endif // defined(__clang_analyzer__) // Use nomerge attribute to disable optimization of merging multiple same calls. -#if defined(__clang__) && HAS_ATTRIBUTE(nomerge) && !defined(OS_TIZEN) +#if defined(__clang__) && HAS_ATTRIBUTE(nomerge) && !BUILDFLAG(IS_TIZEN) #define NOMERGE [[clang::nomerge]] #else #define NOMERGE diff --git a/base/logging.cc b/base/logging.cc index 0c5d4a8..1e3393a 100644 --- a/base/logging.cc +++ b/base/logging.cc @@ -120,7 +120,7 @@ typedef FILE* FileHandle; #include "base/files/scoped_file.h" #endif -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #define LOG_TAG "CHROMIUM" #include #endif @@ -279,7 +279,7 @@ base::stack& GetLogAssertHandlerStack() { // A log message handler that gets notified of every log message we process. LogMessageHandlerFunction g_log_message_handler = nullptr; -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) // Helper functions to wrap platform differences. int32_t CurrentProcessId() { @@ -318,7 +318,7 @@ uint64_t TickCount() { return absolute_micro; #endif } -#endif // !OS_TIZEN +#endif // !IS_TIZEN void DeleteFilePath(const PathString& log_name) { #if BUILDFLAG(IS_WIN) @@ -900,7 +900,7 @@ LogMessage::~LogMessage() { } if (ShouldLogToStderr(severity_)) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) log_priority priority = DLOG_UNKNOWN; switch (severity_) { case LOG_INFO: @@ -1024,7 +1024,7 @@ void LogMessage::Init(const char* file, int line) { { // TODO(darin): It might be nice if the columns were fixed width. stream_ << '['; -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) if (g_log_prefix) stream_ << g_log_prefix << ':'; if (g_log_process_id) @@ -1068,7 +1068,7 @@ void LogMessage::Init(const char* file, int line) { } if (g_log_tickcount) stream_ << TickCount() << ':'; -#endif // defined(OS_TIZEN) +#endif // BUILDFLAG(IS_TIZEN) if (severity_ >= 0) { stream_ << log_severity_name(severity_); } else { diff --git a/base/message_loop/message_pump.cc b/base/message_loop/message_pump.cc index 4f2cf41..f10e2c0 100644 --- a/base/message_loop/message_pump.cc +++ b/base/message_loop/message_pump.cc @@ -14,7 +14,7 @@ #if BUILDFLAG(IS_APPLE) #include "base/message_loop/message_pump_mac.h" #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include "base/message_loop/message_pump_ecore.h" #endif @@ -74,7 +74,7 @@ std::unique_ptr MessagePump::Create(MessagePumpType type) { return std::make_unique(); #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) case MessagePumpType::ECORE: return std::make_unique(); #endif diff --git a/base/message_loop/message_pump_for_ui.h b/base/message_loop/message_pump_for_ui.h index 3fbab14..6cff2da 100644 --- a/base/message_loop/message_pump_for_ui.h +++ b/base/message_loop/message_pump_for_ui.h @@ -18,7 +18,7 @@ #include "base/message_loop/message_pump.h" #elif BUILDFLAG(IS_NACL) || BUILDFLAG(IS_AIX) // No MessagePumpForUI, see below. -#elif defined(USE_EFL) +#elif BUILDFLAG(IS_EFL) #include "base/message_loop/message_pump_ecore.h" #elif defined(USE_GLIB) #include "base/message_loop/message_pump_glib.h" @@ -44,7 +44,7 @@ using MessagePumpForUI = MessagePump; #elif BUILDFLAG(IS_NACL) || BUILDFLAG(IS_AIX) // Currently NaCl and AIX don't have a MessagePumpForUI. // TODO(abarth): Figure out if we need this. -#elif defined(USE_EFL) +#elif BUILDFLAG(IS_EFL) using MessagePumpForUI = MessagePumpEcore; #elif defined(USE_GLIB) using MessagePumpForUI = MessagePumpGlib; diff --git a/base/message_loop/message_pump_type.h b/base/message_loop/message_pump_type.h index 86959b9..22d6db4 100644 --- a/base/message_loop/message_pump_type.h +++ b/base/message_loop/message_pump_type.h @@ -40,10 +40,10 @@ enum class MessagePumpType { NS_RUNLOOP, #endif // BUILDFLAG(IS_APPLE) -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) // This type of pump supports ecore events. This is only for use for EFL port. ECORE, -#endif // defined(USE_EFL) +#endif // BUILDFLAG(IS_EFL) }; } // namespace base diff --git a/base/process/memory_linux.cc b/base/process/memory_linux.cc index b392d7e..b4e2a4f 100644 --- a/base/process/memory_linux.cc +++ b/base/process/memory_linux.cc @@ -109,7 +109,7 @@ bool UncheckedMalloc(size_t size, void** result) { #if BUILDFLAG(USE_ALLOCATOR_SHIM) *result = allocator_shim::UncheckedAlloc(size); #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || \ - defined(OS_TIZEN) + BUILDFLAG(IS_TIZEN) *result = malloc(size); #elif defined(LIBC_GLIBC) *result = __libc_malloc(size); @@ -121,7 +121,7 @@ void UncheckedFree(void* ptr) { #if BUILDFLAG(USE_ALLOCATOR_SHIM) allocator_shim::UncheckedFree(ptr); #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC) || \ - defined(OS_TIZEN) + BUILDFLAG(IS_TIZEN) free(ptr); #elif defined(LIBC_GLIBC) __libc_free(ptr); diff --git a/base/run_loop.h b/base/run_loop.h index e8df52d..b62498f 100644 --- a/base/run_loop.h +++ b/base/run_loop.h @@ -34,7 +34,7 @@ class ScopedDisableRunLoopTimeout; class MessagePumpForUI; #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) class MessagePumpForUIEfl; #endif @@ -283,7 +283,7 @@ class BASE_EXPORT RunLoop { friend class MessagePumpForUI; #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) // EFL doesn't support the blocking RunLoop::Run, so it calls // BeforeRun directly. friend class base::MessagePumpForUIEfl; diff --git a/base/task/sequence_manager/sequence_manager_impl.cc b/base/task/sequence_manager/sequence_manager_impl.cc index cf3c8aa..e115352 100644 --- a/base/task/sequence_manager/sequence_manager_impl.cc +++ b/base/task/sequence_manager/sequence_manager_impl.cc @@ -379,7 +379,7 @@ void SequenceManagerImpl::BindToMessagePump(std::unique_ptr pump) { #endif // On iOS/EFL attach to the native loop when there is one. -#if BUILDFLAG(IS_IOS) || defined(USE_EFL) +#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_EFL) if (settings_.message_loop_type == MessagePumpType::UI) { controller_->AttachToMessagePump(); } diff --git a/base/task/sequence_manager/thread_controller.h b/base/task/sequence_manager/thread_controller.h index a26f848..b150acf 100644 --- a/base/task/sequence_manager/thread_controller.h +++ b/base/task/sequence_manager/thread_controller.h @@ -131,7 +131,7 @@ class BASE_EXPORT ThreadController { // Returns true if the current run loop should quit when idle. virtual bool ShouldQuitRunLoopWhenIdle() = 0; -#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || defined(USE_EFL) +#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_EFL) // On iOS, the main message loop cannot be Run(). Instead call // AttachToMessagePump(), which connects this ThreadController to the // UI thread's CFRunLoop and allows PostTask() to work. diff --git a/base/task/sequence_manager/thread_controller_impl.cc b/base/task/sequence_manager/thread_controller_impl.cc index 415b6b2..b46c583 100644 --- a/base/task/sequence_manager/thread_controller_impl.cc +++ b/base/task/sequence_manager/thread_controller_impl.cc @@ -361,7 +361,7 @@ MessagePump* ThreadControllerImpl::GetBoundMessagePump() const { return nullptr; } -#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || defined(USE_EFL) +#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_EFL) void ThreadControllerImpl::AttachToMessagePump() { NOTREACHED(); } diff --git a/base/task/sequence_manager/thread_controller_impl.h b/base/task/sequence_manager/thread_controller_impl.h index 4fc321d..4922854 100644 --- a/base/task/sequence_manager/thread_controller_impl.h +++ b/base/task/sequence_manager/thread_controller_impl.h @@ -61,7 +61,7 @@ class BASE_EXPORT ThreadControllerImpl : public ThreadController, void SetTaskExecutionAllowed(bool allowed) override; bool IsTaskExecutionAllowed() const override; MessagePump* GetBoundMessagePump() const override; -#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || defined(USE_EFL) +#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_EFL) void AttachToMessagePump() override; #endif #if BUILDFLAG(IS_IOS) diff --git a/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc b/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc index 067d631..2599de3 100644 --- a/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc +++ b/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc @@ -29,7 +29,7 @@ #include "base/message_loop/message_pump_mac.h" #elif BUILDFLAG(IS_ANDROID) #include "base/message_loop/message_pump_android.h" -#elif defined(USE_EFL) +#elif BUILDFLAG(IS_EFL) #include "base/message_loop/message_pump_for_ui_efl.h" #endif @@ -691,7 +691,7 @@ void ThreadControllerWithMessagePumpImpl::DetachFromMessagePump() { void ThreadControllerWithMessagePumpImpl::AttachToMessagePump() { static_cast(pump_.get())->Attach(this); } -#elif defined(USE_EFL) +#elif BUILDFLAG(IS_EFL) void ThreadControllerWithMessagePumpImpl::AttachToMessagePump() { static_cast(pump_.get())->Attach(this); } diff --git a/base/task/sequence_manager/thread_controller_with_message_pump_impl.h b/base/task/sequence_manager/thread_controller_with_message_pump_impl.h index 8fcdb84..94ce69f 100644 --- a/base/task/sequence_manager/thread_controller_with_message_pump_impl.h +++ b/base/task/sequence_manager/thread_controller_with_message_pump_impl.h @@ -77,7 +77,7 @@ class BASE_EXPORT ThreadControllerWithMessagePumpImpl MessagePump* GetBoundMessagePump() const override; void PrioritizeYieldingToNative(base::TimeTicks prioritize_until) override; void EnablePeriodicYieldingToNative(base::TimeDelta delta) override; -#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || defined(USE_EFL) +#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_EFL) void AttachToMessagePump() override; #endif #if BUILDFLAG(IS_IOS) diff --git a/build/build_config.h b/build/build_config.h index 8f90f47..3f4fffc 100644 --- a/build/build_config.h +++ b/build/build_config.h @@ -131,6 +131,24 @@ #endif // OS build flags +#if defined(OS_TIZEN) +#define BUILDFLAG_INTERNAL_IS_TIZEN() (1) +#else +#define BUILDFLAG_INTERNAL_IS_TIZEN() (0) +#endif + +#if defined(OS_TIZEN_TV_PRODUCT) +#define BUILDFLAG_INTERNAL_IS_TIZEN_TV() (1) +#else +#define BUILDFLAG_INTERNAL_IS_TIZEN_TV() (0) +#endif + +#if defined(USE_EFL) +#define BUILDFLAG_INTERNAL_IS_EFL() (1) +#else +#define BUILDFLAG_INTERNAL_IS_EFL() (0) +#endif + #if defined(OS_AIX) #define BUILDFLAG_INTERNAL_IS_AIX() (1) #else diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc index d55c1ab..29dc52a 100644 --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc @@ -1161,7 +1161,7 @@ void BrowserProcessImpl::PreMainMessageLoopRun() { ApplyMetricsReportingPolicy(); #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) -#if defined(EWK_BRINGUP) && !defined(OS_TIZEN) // FIXME: m108 bringup +#if defined(EWK_BRINGUP) && !BUILDFLAG(IS_TIZEN) // FIXME: m108 bringup ChromeJsErrorReportProcessor::Create(); #endif #endif @@ -1172,7 +1172,7 @@ void BrowserProcessImpl::PreMainMessageLoopRun() { #endif // BUILDFLAG(ENABLE_PLUGINS) #if !BUILDFLAG(IS_ANDROID) -#if defined(EWK_BRINGUP) && !defined(OS_TIZEN) // FIXME: m108 bringup +#if defined(EWK_BRINGUP) && !BUILDFLAG(IS_TIZEN) // FIXME: m108 bringup storage_monitor::StorageMonitor::Create(); #endif #endif diff --git a/chrome/browser/chrome_browser_main_linux.cc b/chrome/browser/chrome_browser_main_linux.cc index 7427fa2..6c4f1b1 100644 --- a/chrome/browser/chrome_browser_main_linux.cc +++ b/chrome/browser/chrome_browser_main_linux.cc @@ -62,7 +62,7 @@ void ChromeBrowserMainPartsLinux::PostCreateMainMessageLoop() { // FeatureList, and is done elsewhere. #endif // BUILDFLAG(IS_CHROMEOS) -#if !BUILDFLAG(IS_CHROMEOS) && !defined(OS_TIZEN) +#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_TIZEN) bluez::BluezDBusManager::Initialize(nullptr /* system_bus */); // Set up crypt config. This needs to be done before anything starts the diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 2fc0e47..6a14b75 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc @@ -2760,7 +2760,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) // Opt into a hardened stack canary mitigation if it hasn't already been // force-disabled. -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) // Causes "stack smashing detected" error on utility service during launch. if (!browser_command_line.HasSwitch(switches::kChangeStackGuardOnFork)) { command_line->AppendSwitchASCII(switches::kChangeStackGuardOnFork, diff --git a/chrome/browser/ui/views/accelerator_table.cc b/chrome/browser/ui/views/accelerator_table.cc index 5a3eafc..23229e2 100644 --- a/chrome/browser/ui/views/accelerator_table.cc +++ b/chrome/browser/ui/views/accelerator_table.cc @@ -20,7 +20,7 @@ #include "ui/base/ui_base_features.h" #include "ui/events/event_constants.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif diff --git a/components/viz/host/host_frame_sink_client.h b/components/viz/host/host_frame_sink_client.h index 60f7ce8..9e04e64 100644 --- a/components/viz/host/host_frame_sink_client.h +++ b/components/viz/host/host_frame_sink_client.h @@ -22,7 +22,7 @@ class HostFrameSinkClient { // Called when a CompositorFrame with a new frame token is provided. virtual void OnFrameTokenChanged(uint32_t frame_token, base::TimeTicks activation_time) = 0; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) virtual void NotifySwap(const uint32_t texture_id) {} #endif diff --git a/components/viz/host/host_frame_sink_manager.cc b/components/viz/host/host_frame_sink_manager.cc index 207728b..2e759a3 100644 --- a/components/viz/host/host_frame_sink_manager.cc +++ b/components/viz/host/host_frame_sink_manager.cc @@ -441,7 +441,7 @@ HostFrameSinkManager::FrameSinkData::~FrameSinkData() = default; HostFrameSinkManager::FrameSinkData& HostFrameSinkManager::FrameSinkData:: operator=(FrameSinkData&& other) = default; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void HostFrameSinkManager::NotifySwap(const uint32_t texture_id, const FrameSinkId& frame_sink_id) { auto iter = frame_sink_data_map_.find(frame_sink_id); diff --git a/components/viz/host/host_frame_sink_manager.h b/components/viz/host/host_frame_sink_manager.h index 2965efb..b0cada9 100644 --- a/components/viz/host/host_frame_sink_manager.h +++ b/components/viz/host/host_frame_sink_manager.h @@ -295,7 +295,7 @@ class VIZ_HOST_EXPORT HostFrameSinkManager const bool enable_sync_window_destruction_; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void NotifySwap(const uint32_t texture_id, const FrameSinkId& frame_sink_id) override; #endif diff --git a/components/viz/service/display/display.cc b/components/viz/service/display/display.cc index f7d64d5..a2ad87c 100644 --- a/components/viz/service/display/display.cc +++ b/components/viz/service/display/display.cc @@ -1416,7 +1416,7 @@ void Display::InitDelegatedInkPointRendererReceiver( } } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void Display::NotifySwap(const uint32_t texture_id) { client_->NotifySwap(texture_id); } diff --git a/components/viz/service/display/display.h b/components/viz/service/display/display.h index ec3c8ef..6e9ff10 100644 --- a/components/viz/service/display/display.h +++ b/components/viz/service/display/display.h @@ -167,7 +167,7 @@ class VIZ_SERVICE_EXPORT Display : public DisplaySchedulerClient, const gfx::PresentationFeedback& feedback) override; void DidReceiveReleasedOverlays( const std::vector& released_overlays) override; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void NotifySwap(const uint32_t texture_id) override; #endif // LatestLocalSurfaceIdLookupDelegate implementation. diff --git a/components/viz/service/display/display_client.h b/components/viz/service/display/display_client.h index cd013f4..3374e87 100644 --- a/components/viz/service/display/display_client.h +++ b/components/viz/service/display/display_client.h @@ -33,7 +33,7 @@ class DisplayClient { virtual base::TimeDelta GetPreferredFrameIntervalForFrameSinkId( const FrameSinkId& id, mojom::CompositorFrameSinkType* type) = 0; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) virtual void NotifySwap(const uint32_t texture_id) {} #endif }; diff --git a/components/viz/service/display/output_surface_client.h b/components/viz/service/display/output_surface_client.h index 2a628bd..d4a052d 100644 --- a/components/viz/service/display/output_surface_client.h +++ b/components/viz/service/display/output_surface_client.h @@ -53,7 +53,7 @@ class VIZ_SERVICE_EXPORT OutputSurfaceClient { virtual void DidReceiveReleasedOverlays( const std::vector& released_overlays) = 0; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) virtual void NotifySwap(const uint32_t texture_id) {} #endif diff --git a/components/viz/service/display_embedder/skia_output_device.cc b/components/viz/service/display_embedder/skia_output_device.cc index fd6c4a1..42eaf3f 100644 --- a/components/viz/service/display_embedder/skia_output_device.cc +++ b/components/viz/service/display_embedder/skia_output_device.cc @@ -154,7 +154,7 @@ void SkiaOutputDevice::PostSubBuffer(const gfx::Rect& rect, NOTREACHED(); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) uint32_t SkiaOutputDevice::GetTextureID() { NOTREACHED(); return 0; diff --git a/components/viz/service/display_embedder/skia_output_device.h b/components/viz/service/display_embedder/skia_output_device.h index acb6632..b911b41 100644 --- a/components/viz/service/display_embedder/skia_output_device.h +++ b/components/viz/service/display_embedder/skia_output_device.h @@ -131,7 +131,7 @@ class SkiaOutputDevice { virtual void PostSubBuffer(const gfx::Rect& rect, BufferPresentedCallback feedback, OutputSurfaceFrame frame); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) virtual uint32_t GetTextureID(); #endif virtual void CommitOverlayPlanes(BufferPresentedCallback feedback, diff --git a/components/viz/service/display_embedder/skia_output_device_offscreen.cc b/components/viz/service/display_embedder/skia_output_device_offscreen.cc index 7762ed8..6aa7a45 100644 --- a/components/viz/service/display_embedder/skia_output_device_offscreen.cc +++ b/components/viz/service/display_embedder/skia_output_device_offscreen.cc @@ -146,7 +146,7 @@ SkSurface* SkiaOutputDeviceOffscreen::BeginPaint( void SkiaOutputDeviceOffscreen::EndPaint() {} -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) uint32_t SkiaOutputDeviceOffscreen::GetTextureID() { GrGLTextureInfo info; if (!backend_texture_.getGLTextureInfo(&info)) diff --git a/components/viz/service/display_embedder/skia_output_device_offscreen.h b/components/viz/service/display_embedder/skia_output_device_offscreen.h index 4301468..69444e0 100644 --- a/components/viz/service/display_embedder/skia_output_device_offscreen.h +++ b/components/viz/service/display_embedder/skia_output_device_offscreen.h @@ -44,7 +44,7 @@ class SkiaOutputDeviceOffscreen : public SkiaOutputDevice { SkSurface* BeginPaint( std::vector* end_semaphores) override; void EndPaint() override; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) uint32_t GetTextureID() override; #endif diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.cc b/components/viz/service/display_embedder/skia_output_surface_impl.cc index 748fa60..37ce5a1 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl.cc @@ -61,7 +61,7 @@ #include "components/viz/service/display/dc_layer_overlay.h" #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include "base/base_switches.h" #include "base/command_line.h" #endif @@ -1029,7 +1029,7 @@ void SkiaOutputSurfaceImpl::DidSwapBuffersComplete( client_->DidReceiveReleasedOverlays(params.released_overlays); if (needs_swap_size_notifications_) client_->DidSwapWithSize(pixel_size); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableOffscreenRendering)) { client_->NotifySwap(impl_on_gpu_->GetTextureID()); diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc index b933537..b7c71a2 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc @@ -2308,7 +2308,7 @@ void SkiaOutputSurfaceImplOnGpu::DestroySharedImage(gpu::Mailbox mailbox) { solid_color_images_.erase(mailbox); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) uint32_t SkiaOutputSurfaceImplOnGpu::GetTextureID() { if (output_device_) return output_device_->GetTextureID(); diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h index ebe8902..8831a67 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h +++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h @@ -262,7 +262,7 @@ class SkiaOutputSurfaceImplOnGpu const SkColor4f& color, const gfx::ColorSpace& color_space); void DestroySharedImage(gpu::Mailbox mailbox); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) uint32_t GetTextureID(); #endif private: diff --git a/components/viz/service/frame_sinks/frame_sink_manager_impl.cc b/components/viz/service/frame_sinks/frame_sink_manager_impl.cc index e876127..b95e558 100644 --- a/components/viz/service/frame_sinks/frame_sink_manager_impl.cc +++ b/components/viz/service/frame_sinks/frame_sink_manager_impl.cc @@ -808,7 +808,7 @@ void FrameSinkManagerImpl::ClearThrottling(const FrameSinkId& id) { UpdateThrottlingRecursively(id, base::TimeDelta()); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void FrameSinkManagerImpl::NotifySwap(const uint32_t texture_id, const FrameSinkId& id) { for (auto child : GetChildrenByParent(id)) diff --git a/components/viz/service/frame_sinks/frame_sink_manager_impl.h b/components/viz/service/frame_sinks/frame_sink_manager_impl.h index cd742b3..418747b 100644 --- a/components/viz/service/frame_sinks/frame_sink_manager_impl.h +++ b/components/viz/service/frame_sinks/frame_sink_manager_impl.h @@ -257,7 +257,7 @@ class VIZ_SERVICE_EXPORT FrameSinkManagerImpl bool VerifySandboxedThreadIds( base::flat_set thread_ids); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void NotifySwap(const uint32_t texture_id, const FrameSinkId& id); #endif diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc index 5fc4c1b..0b6f3f8 100644 --- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc +++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc @@ -623,7 +623,7 @@ BeginFrameSource* RootCompositorFrameSinkImpl::begin_frame_source() { return synthetic_begin_frame_source_.get(); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void RootCompositorFrameSinkImpl::NotifySwap(const uint32_t texture_id) { support_->frame_sink_manager()->NotifySwap(texture_id, support_->frame_sink_id()); diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h index ae9a690..f755bdf 100644 --- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h +++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.h @@ -122,7 +122,7 @@ class VIZ_SERVICE_EXPORT RootCompositorFrameSinkImpl base::ScopedClosureRunner GetCacheBackBufferCb(); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void NotifySwap(const uint32_t texture_id) override; #endif diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc index b742320..d05b518 100644 --- a/content/browser/child_process_launcher.cc +++ b/content/browser/child_process_launcher.cc @@ -30,7 +30,7 @@ #include "content/browser/child_process_task_port_provider_mac.h" #endif -#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN) && !BUILDFLAG(IS_TIZEN_TV) #include "content/public/common/content_switches.h" #endif @@ -158,7 +158,7 @@ void ChildProcessLauncher::Notify(ChildProcessLauncherHelper::Process process, int error_code) { DCHECK_CURRENTLY_ON(BrowserThread::UI); starting_ = false; -#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN) && !BUILDFLAG(IS_TIZEN_TV) if (!base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kSingleProcess)) #endif diff --git a/content/browser/child_process_launcher_helper_linux.cc b/content/browser/child_process_launcher_helper_linux.cc index 2fe6762..425c707 100644 --- a/content/browser/child_process_launcher_helper_linux.cc +++ b/content/browser/child_process_launcher_helper_linux.cc @@ -78,7 +78,7 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThread( base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoZygote) ? nullptr : delegate_->GetZygote(); -#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN) && !BUILDFLAG(IS_TIZEN_TV) if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kSingleProcess)) zygote_handle = nullptr; diff --git a/content/browser/renderer_host/delegated_frame_host.cc b/content/browser/renderer_host/delegated_frame_host.cc index 812557b..2f07bdb 100644 --- a/content/browser/renderer_host/delegated_frame_host.cc +++ b/content/browser/renderer_host/delegated_frame_host.cc @@ -329,7 +329,7 @@ void DelegatedFrameHost::OnFrameTokenChanged(uint32_t frame_token, client_->OnFrameTokenChanged(frame_token, activation_time); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void DelegatedFrameHost::NotifySwap(const uint32_t texture_id) { client_->NotifySwap(texture_id); } diff --git a/content/browser/renderer_host/delegated_frame_host.h b/content/browser/renderer_host/delegated_frame_host.h index 84e26e7..85e3aa2 100644 --- a/content/browser/renderer_host/delegated_frame_host.h +++ b/content/browser/renderer_host/delegated_frame_host.h @@ -54,7 +54,7 @@ class CONTENT_EXPORT DelegatedFrameHostClient { virtual void InvalidateLocalSurfaceIdOnEviction() = 0; virtual std::vector CollectSurfaceIdsForEviction() = 0; virtual bool ShouldShowStaleContentOnEviction() = 0; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) virtual void NotifySwap(const uint32_t texture_id) {} #endif }; @@ -108,7 +108,7 @@ class CONTENT_EXPORT DelegatedFrameHost void OnFrameTokenChanged(uint32_t frame_token, base::TimeTicks activation_time) override; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void NotifySwap(const uint32_t texture_id) override; #endif diff --git a/content/browser/renderer_host/delegated_frame_host_client_aura.cc b/content/browser/renderer_host/delegated_frame_host_client_aura.cc index e8cc565..d667785 100644 --- a/content/browser/renderer_host/delegated_frame_host_client_aura.cc +++ b/content/browser/renderer_host/delegated_frame_host_client_aura.cc @@ -64,7 +64,7 @@ bool DelegatedFrameHostClientAura::ShouldShowStaleContentOnEviction() { return render_widget_host_view_->ShouldShowStaleContentOnEviction(); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void DelegatedFrameHostClientAura::NotifySwap(const uint32_t texture_id) { render_widget_host_view_->NotifySwap(texture_id); } diff --git a/content/browser/renderer_host/delegated_frame_host_client_aura.h b/content/browser/renderer_host/delegated_frame_host_client_aura.h index 40df7d1..074e6e2 100644 --- a/content/browser/renderer_host/delegated_frame_host_client_aura.h +++ b/content/browser/renderer_host/delegated_frame_host_client_aura.h @@ -42,7 +42,7 @@ class CONTENT_EXPORT DelegatedFrameHostClientAura void InvalidateLocalSurfaceIdOnEviction() override; std::vector CollectSurfaceIdsForEviction() override; bool ShouldShowStaleContentOnEviction() override; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void NotifySwap(const uint32_t texture_id) override; #endif diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index f27ca36..8fa72fe 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -4089,7 +4089,7 @@ void RenderProcessHostImpl::UnregisterHost(int host_id) { GetAllHosts().Remove(host_id); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // On single process mode, crash is occurred once termination of web app // because GetSiteProcessMapForBrowserContext is called // after BrowserContext is deleted. Hence we early return here. diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index c396973..726013f 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc @@ -114,7 +114,7 @@ #include "content/browser/host_zoom_map_impl.h" #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include "ui/display/device_display_info_efl.h" #endif @@ -529,7 +529,7 @@ bool RenderViewHostImpl::CreateRenderView( params->blink_page_broadcast = page_broadcast_.BindNewEndpointAndPassReceiver(); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) display::DeviceDisplayInfoEfl display_info; params->display_width = display_info.GetDisplayWidth(); params->display_height = display_info.GetDisplayHeight(); diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc index a026f35..7c900c4 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc @@ -137,7 +137,7 @@ #include "ui/base/ime/mojom/virtual_keyboard_types.mojom.h" #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include "base/base_switches.h" #endif @@ -308,7 +308,7 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura( host()->render_frame_metadata_provider()->AddObserver(this); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableOffscreenRendering)) { offscreen_helper_ = @@ -327,7 +327,7 @@ void RenderWidgetHostViewAura::InitAsChild(gfx::NativeView parent_view) { if (parent_view) parent_view->AddChild(GetNativeView()); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) if (offscreen_helper_) offscreen_helper_->SetAuraParentWindow(parent_view); #endif @@ -542,7 +542,7 @@ void RenderWidgetHostViewAura::Focus() { if (client) window_->Focus(); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) if (offscreen_helper_) offscreen_helper_->Focus(true); #endif @@ -557,7 +557,7 @@ bool RenderWidgetHostViewAura::IsSurfaceAvailableForCopy() { return delegated_frame_host_->CanCopyFromCompositingSurface(); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void RenderWidgetHostViewAura::NotifySwap(const uint32_t texture_id) { if (offscreen_helper_) offscreen_helper_->NotifySwap(texture_id); @@ -2546,7 +2546,7 @@ void RenderWidgetHostViewAura::UpdateLegacyWin() { void RenderWidgetHostViewAura::AddedToRootWindow() { DCHECK(delegated_frame_host_) << "Cannot be invoked during destruction."; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) if (offscreen_helper_) offscreen_helper_->AuraChildWindowAdded(); #endif diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h index 93b10eb..99e3232 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h @@ -54,7 +54,7 @@ #include "content/browser/renderer_host/virtual_keyboard_controller_win.h" #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include "content/browser/renderer_host/rwhv_aura_offscreen_helper_efl.h" #endif @@ -404,7 +404,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura ui::Compositor* GetCompositor() override; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) aura::Window* window() { return window_; } RWHVAuraOffscreenHelperEfl* offscreen_helper() { return offscreen_helper_.get(); @@ -415,7 +415,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura protected: ~RenderWidgetHostViewAura() override; -#if !defined(USE_EFL) +#if !BUILDFLAG(IS_EFL) // Exposed for tests. aura::Window* window() { return window_; } #endif @@ -801,7 +801,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura absl::optional display_observer_; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) std::unique_ptr offscreen_helper_; #endif diff --git a/content/browser/speech/tts_platform_impl.cc b/content/browser/speech/tts_platform_impl.cc index d9f3795..bae789c 100644 --- a/content/browser/speech/tts_platform_impl.cc +++ b/content/browser/speech/tts_platform_impl.cc @@ -33,7 +33,7 @@ TtsPlatform* TtsPlatform::GetInstance() { // if this is hit in something like a content-only unit test. NOTREACHED(); return nullptr; -#elif defined(OS_TIZEN) +#elif BUILDFLAG(IS_TIZEN) LOG(ERROR) << " returning nullptr "; return nullptr; #else diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index dd3aa11..5b8d390 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -206,7 +206,7 @@ #include "ui/aura/window.h" #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include #include "base/base_switches.h" @@ -1105,7 +1105,7 @@ std::unique_ptr WebContentsImpl::CreateWithOpener( FrameTreeNode* opener = nullptr; if (opener_rfh) opener = opener_rfh->frame_tree_node(); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) std::unique_ptr new_contents; auto* command_line = base::CommandLine::ForCurrentProcess(); auto* opener_contents = static_cast( @@ -9593,7 +9593,7 @@ std::pair WebContentsImpl::GetAvailablePointerAndHoverTypes() { return ui::GetAvailablePointerAndHoverTypes(); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void WebContentsImpl::CreateEflNativeView() { Evas_Object* root_window = efl::WindowFactory::GetHostWindow(this); efl_native_view_ = elm_layout_add(root_window); diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h index 3082d02..f8d6342 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h @@ -86,7 +86,7 @@ #include "content/public/browser/android/child_process_importance.h" #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include #endif @@ -157,7 +157,7 @@ class WebContentsAndroid; class PepperPlaybackObserver; #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) class WebContentsImplEfl; #endif @@ -223,7 +223,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, virtual void Init(const WebContents::CreateParams& params, blink::FramePolicy primary_main_frame_policy); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) virtual WebContentsImplEfl* ToWebContentsImplEfl() { return nullptr; } void CreateEflNativeView(); @@ -1475,7 +1475,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, // TODO(brettw) TestWebContents shouldn't exist! friend class TestWebContents; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) friend class WebContentsImplEfl; #endif @@ -2388,7 +2388,7 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents, bool prerender2_disabled_ = false; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) Evas_Object* efl_native_view_ = nullptr; void* ewk_view_ = nullptr; #endif diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc index c134cfb..bdbb5a3 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc @@ -92,7 +92,7 @@ #include "ui/gfx/image/image_skia.h" #include "ui/touch_selection/touch_selection_controller.h" -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include "base/base_switches.h" #endif @@ -1048,7 +1048,7 @@ Visibility WebContentsViewAura::GetVisibility() const { // WebContentsViewAura, WebContentsView implementation: void WebContentsViewAura::CreateView(gfx::NativeView context) { -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableOffscreenRendering)) { web_contents_->CreateEflNativeView(); diff --git a/content/common/cursors/webcursor.h b/content/common/cursors/webcursor.h index d48ba5d..40ca3f8 100644 --- a/content/common/cursors/webcursor.h +++ b/content/common/cursors/webcursor.h @@ -73,7 +73,7 @@ class CONTENT_EXPORT WebCursor { gfx::Size maximum_cursor_size_ = {kDefaultMaxSize, kDefaultMaxSize}; #endif -#if defined(USE_AURA) || defined(USE_EFL) +#if defined(USE_AURA) || BUILDFLAG(IS_EFL) absl::optional custom_cursor_; #endif }; diff --git a/content/common/zygote/zygote_commands_linux.h b/content/common/zygote/zygote_commands_linux.h index 1110e97..1ac1707 100644 --- a/content/common/zygote/zygote_commands_linux.h +++ b/content/common/zygote/zygote_commands_linux.h @@ -57,7 +57,7 @@ enum { // Reinitialize logging. Needed on ChromeOS, which switches to a log file // in the user's home directory once they log in. kZygoteCommandReinitializeLogging = 5 -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // Load injected bundle library. , kZygoteCommandLoadInjectedBundle = 6, diff --git a/content/common/zygote/zygote_communication_linux.cc b/content/common/zygote/zygote_communication_linux.cc index b77da9a..06a5ce0 100644 --- a/content/common/zygote/zygote_communication_linux.cc +++ b/content/common/zygote/zygote_communication_linux.cc @@ -333,7 +333,7 @@ int ZygoteCommunication::GetSandboxStatus() { return sandbox_status_; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void ZygoteCommunication::LoadInjectedBundlePath( const std::string& injected_bundle_path) { DCHECK(init_); diff --git a/content/common/zygote/zygote_communication_linux.h b/content/common/zygote/zygote_communication_linux.h index 7b86f125..8eef1ae 100644 --- a/content/common/zygote/zygote_communication_linux.h +++ b/content/common/zygote/zygote_communication_linux.h @@ -73,7 +73,7 @@ class CONTENT_EXPORT ZygoteCommunication { // Returns the sandbox status of this zygote. int GetSandboxStatus(); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void LoadInjectedBundlePath(const std::string& injected_bundle_path); void DropProcessPrivileges(const std::string& app_id); #endif diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc index 44ddeee..6ffd270 100644 --- a/content/gpu/gpu_child_thread.cc +++ b/content/gpu/gpu_child_thread.cc @@ -164,7 +164,7 @@ void GpuChildThread::Init(const base::TimeTicks& process_start_time) { base::Unretained(this))); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void GpuChildThread::SetGpuServiceConnection(viz::GpuServiceImpl* service) { GpuChildThread::OnGpuServiceConnection(service); } diff --git a/content/gpu/gpu_child_thread.h b/content/gpu/gpu_child_thread.h index f67bbbd0..b2e9453 100644 --- a/content/gpu/gpu_child_thread.h +++ b/content/gpu/gpu_child_thread.h @@ -55,7 +55,7 @@ class GpuChildThread : public ChildThreadImpl, void Init(const base::TimeTicks& process_start_time); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void SetGpuServiceConnection(viz::GpuServiceImpl* service); #endif diff --git a/content/gpu/in_process_gpu_thread.h b/content/gpu/in_process_gpu_thread.h index faa2e9e..d6b7bb7 100644 --- a/content/gpu/in_process_gpu_thread.h +++ b/content/gpu/in_process_gpu_thread.h @@ -15,7 +15,7 @@ namespace content { class ChildProcess; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) struct InProcessGpuThreadEfl; #endif @@ -36,7 +36,7 @@ class InProcessGpuThread : public base::Thread { void CleanUp() override; private: -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) friend struct InProcessGpuThreadEfl; #endif diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc index 025ba18..ac76090 100644 --- a/content/public/browser/web_contents_delegate.cc +++ b/content/public/browser/web_contents_delegate.cc @@ -192,7 +192,7 @@ void WebContentsDelegate::RequestKeyboardLock(WebContents* web_contents, web_contents->GotResponseToKeyboardLockRequest(false); } -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || defined(USE_EFL) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_EFL) std::unique_ptr WebContentsDelegate::OpenColorChooser( WebContents* web_contents, SkColor color, diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h index 6dc1a59..d31f0a8 100644 --- a/content/public/browser/web_contents_delegate.h +++ b/content/public/browser/web_contents_delegate.h @@ -400,7 +400,7 @@ class CONTENT_EXPORT WebContentsDelegate { virtual JavaScriptDialogManager* GetJavaScriptDialogManager( WebContents* source); -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || defined(USE_EFL) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_EFL) // Called when color chooser should open. Returns the opened color chooser. // Returns nullptr if we failed to open the color chooser. The color chooser // is only supported/required for Android. @@ -510,7 +510,7 @@ class CONTENT_EXPORT WebContentsDelegate { int active_match_ordinal, bool final_update) {} -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) virtual void DidRenderFrame() {} #endif diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc index 4249011..e1925ba 100644 --- a/content/public/renderer/content_renderer_client.cc +++ b/content/public/renderer/content_renderer_client.cc @@ -102,7 +102,7 @@ ContentRendererClient::GetProtocolHandlerSecurityLevel() { return blink::ProtocolHandlerSecurityLevel::kStrict; } -#if BUILDFLAG(IS_ANDROID) || defined(USE_EFL) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_EFL) bool ContentRendererClient::HandleNavigation( RenderFrame* render_frame, blink::WebFrame* frame, diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h index dcde27e..235f5d3 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h @@ -212,7 +212,7 @@ class CONTENT_EXPORT ContentRendererClient { // Returns the security level to use for Navigator.RegisterProtocolHandler(). virtual blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel(); -#if BUILDFLAG(IS_ANDROID) || defined(USE_EFL) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_EFL) // TODO(sgurun) This callback is deprecated and will be removed as soon // as android webview completes implementation of a resource throttle based // shouldoverrideurl implementation. See crbug.com/325351 diff --git a/content/renderer/pepper/pepper_video_decoder_host.cc b/content/renderer/pepper/pepper_video_decoder_host.cc index dc13a1463..7dd8526 100644 --- a/content/renderer/pepper/pepper_video_decoder_host.cc +++ b/content/renderer/pepper/pepper_video_decoder_host.cc @@ -177,7 +177,7 @@ int32_t PepperVideoDecoderHost::OnHostMsgInitialize( return PP_ERROR_NOTSUPPORTED; } -#if BUILDFLAG(IS_ANDROID) || defined(OS_TIZEN) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_TIZEN) return PP_ERROR_NOTSUPPORTED; #else if (!TryFallbackToSoftwareDecoder()) @@ -499,7 +499,7 @@ const uint8_t* PepperVideoDecoderHost::DecodeIdToAddress(uint32_t decode_id) { } bool PepperVideoDecoderHost::TryFallbackToSoftwareDecoder() { -#if BUILDFLAG(IS_ANDROID) || defined(OS_TIZEN) +#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_TIZEN) return false; #else DCHECK(!software_fallback_used_ && software_fallback_allowed_); diff --git a/content/renderer/pepper/pepper_video_encoder_host.cc b/content/renderer/pepper/pepper_video_encoder_host.cc index 7271ae8..dd77a33 100644 --- a/content/renderer/pepper/pepper_video_encoder_host.cc +++ b/content/renderer/pepper/pepper_video_encoder_host.cc @@ -186,7 +186,7 @@ PepperVideoEncoderHost::PepperVideoEncoderHost(RendererPpapiHost* host, : ResourceHost(host->GetPpapiHost(), instance, resource), renderer_ppapi_host_(host), buffer_manager_(this), -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) encoder_(new VideoEncoderShim(this)), #endif initialized_(false), diff --git a/content/renderer/renderer_main.cc b/content/renderer/renderer_main.cc index 6b59882..59254b6 100644 --- a/content/renderer/renderer_main.cc +++ b/content/renderer/renderer_main.cc @@ -102,7 +102,7 @@ std::unique_ptr CreateMainThreadMessagePump() { #elif BUILDFLAG(IS_FUCHSIA) // Allow FIDL APIs on renderer main thread. return base::MessagePump::Create(base::MessagePumpType::IO); -#elif defined(USE_EFL) +#elif BUILDFLAG(IS_EFL) return base::MessagePump::Create(base::MessagePumpType::ECORE); #else return base::MessagePump::Create(base::MessagePumpType::DEFAULT); diff --git a/content/shell/browser/shell.h b/content/shell/browser/shell.h index 325384e..f482bf4 100644 --- a/content/shell/browser/shell.h +++ b/content/shell/browser/shell.h @@ -227,7 +227,7 @@ class Shell : public WebContentsDelegate, public WebContentsObserver { gfx::Size content_size_; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) class Impl; Impl* impl_; #endif diff --git a/content/shell/browser/shell_content_browser_client.cc b/content/shell/browser/shell_content_browser_client.cc index b53c2be..c9de1e7 100644 --- a/content/shell/browser/shell_content_browser_client.cc +++ b/content/shell/browser/shell_content_browser_client.cc @@ -342,7 +342,7 @@ void ShellContentBrowserClient::AppendExtraCommandLineSwitches( switches::kCrashDumpsDir, switches::kEnableCrashReporter, switches::kExposeInternalsForTesting, -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) switches::kRunWebTests, #endif }; @@ -584,7 +584,7 @@ void ShellContentBrowserClient::GetAdditionalMappedFilesForChildProcess( kShellPakDescriptor, base::GlobalDescriptors::GetInstance()->Get(kShellPakDescriptor), base::GlobalDescriptors::GetInstance()->GetRegion(kShellPakDescriptor)); -#elif !defined(OS_TIZEN) +#elif !BUILDFLAG(IS_TIZEN) int crash_signal_fd = GetCrashSignalFD(command_line); if (crash_signal_fd >= 0) { mappings->Share(kCrashDumpSignal, crash_signal_fd); diff --git a/content/shell/browser/shell_web_contents_view_delegate.h b/content/shell/browser/shell_web_contents_view_delegate.h index 943f923..71a90bd 100644 --- a/content/shell/browser/shell_web_contents_view_delegate.h +++ b/content/shell/browser/shell_web_contents_view_delegate.h @@ -43,7 +43,7 @@ class ShellWebContentsViewDelegate : public WebContentsViewDelegate { private: raw_ptr web_contents_; -#if BUILDFLAG(IS_MAC) || defined(USE_EFL) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_EFL) ContextMenuParams params_; #endif diff --git a/content/web_test/browser/web_test_browser_main_runner.cc b/content/web_test/browser/web_test_browser_main_runner.cc index 7d7c26a..e48bba1 100644 --- a/content/web_test/browser/web_test_browser_main_runner.cc +++ b/content/web_test/browser/web_test_browser_main_runner.cc @@ -287,7 +287,7 @@ void WebTestBrowserMainRunner::Initialize() { command_line.AppendSwitch(switches::kDisableGpuProcessForDX12InfoCollection); #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ - (BUILDFLAG(IS_LINUX) && !defined(OS_TIZEN)) || BUILDFLAG(IS_CHROMEOS) + (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_TIZEN)) || BUILDFLAG(IS_CHROMEOS) content::WebTestBrowserPlatformInitialize(); #endif diff --git a/device/fido/fido_discovery.cc b/device/fido/fido_discovery.cc index 6011a4e..7bb8adc 100644 --- a/device/fido/fido_discovery.cc +++ b/device/fido/fido_discovery.cc @@ -12,7 +12,7 @@ #include "device/fido/fido_device.h" // HID is not supported on Android. -#if !defined(OS_ANDROID) && !defined(OS_TIZEN) +#if !defined(OS_ANDROID) && !BUILDFLAG(IS_TIZEN) #include "device/fido/fido_hid_discovery.h" #endif // !defined(OS_ANDROID) @@ -25,7 +25,7 @@ std::unique_ptr CreateFidoDiscoveryImpl( service_manager::Connector* connector) { switch (transport) { case FidoTransportProtocol::kUsbHumanInterfaceDevice: -#if !defined(OS_ANDROID) && !defined(OS_TIZEN) +#if !defined(OS_ANDROID) && !BUILDFLAG(IS_TIZEN) DCHECK(connector); return std::make_unique(connector); #else diff --git a/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc b/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc index 1cbfcb7..c59cb70 100644 --- a/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc +++ b/extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_api.cc @@ -1313,7 +1313,7 @@ void BluetoothLowEnergyCreateServiceFunction::DoWork() { // TODO: Ideally this should be handled by our feature system, so that this // code doesn't even compile on OSes it isn't being used on, but currently this // is not possible. -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) #if !BUILDFLAG(IS_WIN) base::WeakPtr service = device::BluetoothLocalGattService::Create( @@ -1351,7 +1351,7 @@ void BluetoothLowEnergyCreateCharacteristicFunction::DoWork() { return; } -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) base::WeakPtr characteristic = device::BluetoothLocalGattCharacteristic::Create( device::BluetoothUUID(params_->characteristic.uuid), @@ -1389,7 +1389,7 @@ void BluetoothLowEnergyCreateDescriptorFunction::DoWork() { return; } -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) base::WeakPtr descriptor = device::BluetoothLocalGattDescriptor::Create( device::BluetoothUUID(params_->descriptor.uuid), diff --git a/gpu/command_buffer/service/external_semaphore.h b/gpu/command_buffer/service/external_semaphore.h index 98b75ea..4525f94 100644 --- a/gpu/command_buffer/service/external_semaphore.h +++ b/gpu/command_buffer/service/external_semaphore.h @@ -5,7 +5,8 @@ #ifndef GPU_COMMAND_BUFFER_SERVICE_EXTERNAL_SEMAPHORE_H_ #define GPU_COMMAND_BUFFER_SERVICE_EXTERNAL_SEMAPHORE_H_ -#if defined(OS_TIZEN) +#include "build/build_config.h" +#if BUILDFLAG(IS_TIZEN) #include "third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h" #else #include diff --git a/gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.cc b/gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.cc index 7ac5023..3253508 100644 --- a/gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.cc +++ b/gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.cc @@ -4,7 +4,7 @@ #include "gpu/ipc/common/gpu_memory_buffer_impl_native_pixmap.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan.h" #else #include diff --git a/gpu/ipc/service/gpu_channel_manager.h b/gpu/ipc/service/gpu_channel_manager.h index 2c1aa1c..5bd8f10 100644 --- a/gpu/ipc/service/gpu_channel_manager.h +++ b/gpu/ipc/service/gpu_channel_manager.h @@ -54,7 +54,7 @@ namespace gl { class GLShareGroup; } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) namespace content { struct GpuChildThreadEfl; } @@ -253,7 +253,7 @@ class GPU_IPC_SERVICE_EXPORT GpuChannelManager private: friend class GpuChannelManagerTest; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) friend struct content::GpuChildThreadEfl; #endif diff --git a/gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h b/gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h index 4adde6f..dfec014 100644 --- a/gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h +++ b/gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h @@ -5,7 +5,8 @@ #ifndef GPU_IPC_SERVICE_GPU_MEMORY_BUFFER_FACTORY_NATIVE_PIXMAP_H_ #define GPU_IPC_SERVICE_GPU_MEMORY_BUFFER_FACTORY_NATIVE_PIXMAP_H_ -#if defined(OS_TIZEN) +#include "build/build_config.h" +#if BUILDFLAG(IS_TIZEN) #include "third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h" #else #include diff --git a/gpu/vulkan/vma_wrapper.h b/gpu/vulkan/vma_wrapper.h index fed1472..3bf42b0 100644 --- a/gpu/vulkan/vma_wrapper.h +++ b/gpu/vulkan/vma_wrapper.h @@ -5,7 +5,8 @@ #ifndef GPU_VULKAN_VMA_WRAPPER_H_ #define GPU_VULKAN_VMA_WRAPPER_H_ -#if defined(OS_TIZEN) +#include "build/build_config.h" +#if BUILDFLAG(IS_TIZEN) #include "third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h" #else #include diff --git a/gpu/vulkan/vulkan_device_queue.h b/gpu/vulkan/vulkan_device_queue.h index e39970c..e226ea2 100644 --- a/gpu/vulkan/vulkan_device_queue.h +++ b/gpu/vulkan/vulkan_device_queue.h @@ -5,7 +5,8 @@ #ifndef GPU_VULKAN_VULKAN_DEVICE_QUEUE_H_ #define GPU_VULKAN_VULKAN_DEVICE_QUEUE_H_ -#if defined(OS_TIZEN) +#include "build/build_config.h" +#if BUILDFLAG(IS_TIZEN) #include "third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h" #else #include diff --git a/headless/lib/browser/headless_browser_main_parts_linux.cc b/headless/lib/browser/headless_browser_main_parts_linux.cc index a325e47..8e2b360 100644 --- a/headless/lib/browser/headless_browser_main_parts_linux.cc +++ b/headless/lib/browser/headless_browser_main_parts_linux.cc @@ -28,7 +28,7 @@ void HeadlessBrowserMainParts::PostCreateMainMessageLoop() { bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr); #endif -#if !BUILDFLAG(IS_CHROMEOS) && !defined(OS_TIZEN) +#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_TIZEN) // Set up crypt config. This needs to be done before anything starts the // network service, as the raw encryption key needs to be shared with the // network service for encrypted cookie storage. diff --git a/ipc/ipc_message_start.h b/ipc/ipc_message_start.h index 3c12c7a..8c91037 100644 --- a/ipc/ipc_message_start.h +++ b/ipc/ipc_message_start.h @@ -5,6 +5,8 @@ #ifndef IPC_IPC_MESSAGE_START_H_ #define IPC_IPC_MESSAGE_START_H_ +#include "build/build_config.h" + // Used by IPC_BEGIN_MESSAGES so that each message class starts from a unique // base. Messages have unique IDs across channels in order for the IPC logging // code to figure out the message class from its ID. @@ -21,7 +23,7 @@ enum IPCMessageStart { NaClHostMsgStart, EncryptedMediaMsgStart, GinJavaBridgeMsgStart, -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) TtsMsgStart, #endif ExtensionWorkerMsgStart, diff --git a/mojo/core/channel_linux.cc b/mojo/core/channel_linux.cc index b805885..1037649 100644 --- a/mojo/core/channel_linux.cc +++ b/mojo/core/channel_linux.cc @@ -51,7 +51,7 @@ #endif #if defined(EWK_BRINGUP) // FIXME: m94 bringup -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #define F_LINUX_SPECIFIC_BASE 1024 #define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) #define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10) diff --git a/mojo/public/cpp/base/message_pump_type_mojom_traits.cc b/mojo/public/cpp/base/message_pump_type_mojom_traits.cc index cba6b09..d149128 100644 --- a/mojo/public/cpp/base/message_pump_type_mojom_traits.cc +++ b/mojo/public/cpp/base/message_pump_type_mojom_traits.cc @@ -28,7 +28,7 @@ EnumTraits::ToMojom( case base::MessagePumpType::NS_RUNLOOP: return mojo_base::mojom::MessagePumpType::kNsRunloop; #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) case base::MessagePumpType::ECORE: return mojo_base::mojom::MessagePumpType::kEcore; #endif @@ -64,7 +64,7 @@ bool EnumTraits:: *output = base::MessagePumpType::NS_RUNLOOP; return true; #endif -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) case mojo_base::mojom::MessagePumpType::kEcore: *output = base::MessagePumpType::ECORE; return true; diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc index 406ad1c..75b166d 100644 --- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc +++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc @@ -47,7 +47,7 @@ // asm/ptrace-abi.h doesn't exist on arm32 and PTRACE_GET_THREAD_AREA isn't // defined on aarch64, so don't try to include this on those platforms. #include -#elif defined(OS_TIZEN) +#elif BUILDFLAG(IS_TIZEN) #include #endif diff --git a/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc b/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc index 6f19320..83479e4 100644 --- a/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc +++ b/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc @@ -84,7 +84,7 @@ memory_instrumentation::mojom::OSMemDumpPtr CreatePublicOSDump( CalculatePrivateFootprintKb(internal_os_dump, shared_resident_kb); #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_ANDROID)) && \ - !defined(OS_TIZEN) + !BUILDFLAG(IS_TIZEN) os_dump->private_footprint_swap_kb = internal_os_dump.platform_private_footprint->vm_swap_bytes / 1024; #endif diff --git a/third_party/blink/public/common/web_preferences/web_preferences.h b/third_party/blink/public/common/web_preferences/web_preferences.h index 846fb6d..f908293 100644 --- a/third_party/blink/public/common/web_preferences/web_preferences.h +++ b/third_party/blink/public/common/web_preferences/web_preferences.h @@ -206,7 +206,7 @@ struct BLINK_COMMON_EXPORT WebPreferences { bool immersive_mode_enabled; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) float font_scale_factor; #endif diff --git a/third_party/blink/renderer/platform/heap/thread_local.h b/third_party/blink/renderer/platform/heap/thread_local.h index ea3d13b..57455c5 100644 --- a/third_party/blink/renderer/platform/heap/thread_local.h +++ b/third_party/blink/renderer/platform/heap/thread_local.h @@ -36,7 +36,7 @@ #if BLINK_HEAP_HIDE_THREAD_LOCAL_IN_LIBRARY #define BLINK_HEAP_THREAD_LOCAL_MODEL "local-dynamic" #else -#if BUILDFLAG(IS_WIN) || defined(USE_EFL) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_EFL) #define BLINK_HEAP_THREAD_LOCAL_MODEL "initial-exec" #elif BUILDFLAG(IS_ANDROID) #define BLINK_HEAP_THREAD_LOCAL_MODEL "local-dynamic" diff --git a/third_party/blink/renderer/platform/wtf/math_extras.h b/third_party/blink/renderer/platform/wtf/math_extras.h index b4331fa..515ac36 100644 --- a/third_party/blink/renderer/platform/wtf/math_extras.h +++ b/third_party/blink/renderer/platform/wtf/math_extras.h @@ -131,7 +131,7 @@ constexpr float Grad2turn(float g) { // FIXME: std::floor doesnt evalulate to constexpr hence added user defined // implementation constexpr double RoundHalfTowardsPositiveInfinity(double value) { -#if defined EWK_BRINGUP && !defined(OS_TIZEN) +#if defined EWK_BRINGUP && !BUILDFLAG(IS_TIZEN) return std::floor(value + 0.5); #else double new_value = value + 0.5; @@ -143,7 +143,7 @@ constexpr double RoundHalfTowardsPositiveInfinity(double value) { } // FIXME: Not used anywhere in code hence disabled only for tizen profile -#if defined EWK_BRINGUP && !defined(OS_TIZEN) +#if defined EWK_BRINGUP && !BUILDFLAG(IS_TIZEN) constexpr float RoundHalfTowardsPositiveInfinity(float value) { return std::floor(value + 0.5f); } diff --git a/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc b/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc index 9fd44f3..c6fb38d 100644 --- a/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc +++ b/third_party/crashpad/crashpad/compat/linux/sys/mman_memfd_create.cc @@ -20,7 +20,7 @@ #include "util/misc/no_cfi_icall.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "base/logging.h" #endif @@ -31,7 +31,7 @@ extern "C" { int memfd_create(const char* name, unsigned int flags) __THROW { static const crashpad::NoCfiIcall next_memfd_create( dlsym(RTLD_NEXT, "memfd_create")); -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) return next_memfd_create ? next_memfd_create(name, flags) : syscall(SYS_memfd_create, name, flags); #else diff --git a/third_party/crashpad/crashpad/util/posix/scoped_mmap.cc b/third_party/crashpad/crashpad/util/posix/scoped_mmap.cc index c584813..5805f63 100644 --- a/third_party/crashpad/crashpad/util/posix/scoped_mmap.cc +++ b/third_party/crashpad/crashpad/util/posix/scoped_mmap.cc @@ -36,7 +36,7 @@ namespace { // TODO(crbug.com/1052397): Revisit once build flag switch of lacros-chrome is // complete. -#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) && !defined(OS_TIZEN) +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) && !BUILDFLAG(IS_TIZEN) void* CallMmap(void* addr, size_t len, int prot, diff --git a/tizen_src/chromium_impl/build/tizen_version.h b/tizen_src/chromium_impl/build/tizen_version.h index 6cfdb2a..fc70f7a 100644 --- a/tizen_src/chromium_impl/build/tizen_version.h +++ b/tizen_src/chromium_impl/build/tizen_version.h @@ -5,7 +5,9 @@ #ifndef Tizen_Version_h #define Tizen_Version_h -#if defined(OS_TIZEN) +#include "build/build_config.h" + +#if BUILDFLAG(IS_TIZEN) #define TIZEN_VERSION \ (TIZEN_VERSION_MAJOR * 10000 + TIZEN_VERSION_MINOR * 100 + \ @@ -21,6 +23,6 @@ #define TIZEN_VERSION_EQ(major, minor, patch) 0 #define TIZEN_VERSION_AT_LEAST(major, minor, patch) 0 -#endif // defined(OS_TIZEN) +#endif // BUILDFLAG(IS_TIZEN) #endif // Tizen_Version_h diff --git a/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_modal_dialog_efl.cc b/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_modal_dialog_efl.cc index 17fff4e..b2d93aa 100644 --- a/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_modal_dialog_efl.cc +++ b/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_modal_dialog_efl.cc @@ -10,7 +10,7 @@ #include "base/strings/utf_string_conversions.h" #include "content/public/browser/web_contents.h" -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -52,7 +52,7 @@ JavaScriptModalDialogEfl::JavaScriptModalDialogEfl( InitContent(type, message_text, default_prompt_text); InitButtons(type); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(popup_, EEXT_CALLBACK_BACK, &OnCancelButtonPressed, this); #endif diff --git a/tizen_src/chromium_impl/content/browser/javascript_dialog/javascript_modal_dialog.cc b/tizen_src/chromium_impl/content/browser/javascript_dialog/javascript_modal_dialog.cc index 4fdea18..162fe9e 100644 --- a/tizen_src/chromium_impl/content/browser/javascript_dialog/javascript_modal_dialog.cc +++ b/tizen_src/chromium_impl/content/browser/javascript_dialog/javascript_modal_dialog.cc @@ -15,7 +15,7 @@ #include "ui/display/device_display_info_efl.h" #include "url/gurl.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -109,7 +109,7 @@ bool JavaScriptModalDialog::ShowJavaScriptDialog() { break; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(popup_, EEXT_CALLBACK_BACK, CancelButtonCallback, this); #endif @@ -343,7 +343,7 @@ std::string JavaScriptModalDialog::GetPopupMessage(const std::string& str) { std::string message = std::string(elm_entry_utf8_to_markup(str.c_str())); base::ReplaceChars(message, "\n", "
", &message); -#if !defined(OS_TIZEN_TV_PRODUCT) +#if !BUILDFLAG(IS_TIZEN_TV) if (!IsWearableProfile()) message = "" + message + ""; #endif diff --git a/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc b/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc index d51ee22..5060ba8 100644 --- a/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc +++ b/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.cc @@ -55,7 +55,7 @@ SelectionControllerEfl::SelectionControllerEfl(Evas_Object* parent_view, WebCont web_contents_(web_contents), selection_mode_(None) { evas_object_event_callback_add(parent_view_, EVAS_CALLBACK_MOVE, &EvasParentViewMoveCallback, this); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) vconf_notify_key_changed(VCONFKEY_LANGSET, PlatformLanguageChanged, this); #endif } @@ -79,7 +79,7 @@ bool SelectionControllerEfl::GetSelectionStatus() const { return selection_data_->GetStatus(); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void SelectionControllerEfl::PlatformLanguageChanged(keynode_t* keynode, void* data) { SelectionControllerEfl* selection_controller = static_cast(data); if (!selection_controller) diff --git a/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h b/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h index 91c5fe2..9176771 100644 --- a/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h +++ b/tizen_src/chromium_impl/content/browser/selection/selection_controller_efl.h @@ -18,7 +18,7 @@ #include "ui/gfx/range/range.h" #include "ui/gfx/selection_bound.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "vconf/vconf.h" #endif @@ -158,7 +158,7 @@ class CONTENT_EXPORT SelectionControllerEfl { static void EvasParentViewMoveCallback(void *data, Evas *e, Evas_Object *obj, void *event_info) { reinterpret_cast(data)->OnParentParentViewMove(); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void PlatformLanguageChanged(keynode_t* keynode, void* data); #endif diff --git a/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc b/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc index e36bf3c..7cb4512 100644 --- a/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc +++ b/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.cc @@ -20,7 +20,7 @@ namespace { std::string GenerateUniqueFilename() { // TODO(prashant.n): Add algorithm to generate unique filename from timestamp. std::string filename = "traces.json"; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) base::FilePath homedir; base::PathService::Get(base::DIR_HOME, &homedir); return homedir.Append(filename).value(); diff --git a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc index a0130fa..0af40ee 100644 --- a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc +++ b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.cc @@ -452,7 +452,7 @@ GstFlowReturn TizenVideoDecodeAccelerator::Impl::OnDecoded( // FIXME: SONAL // OnSinkCapsChanged callback is not called for Appsink on Tizen, // This is an alternate approach to get sample info. -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) if (!self->caps_width_ || !self->caps_height_) { const GstStructure* str = gst_sample_get_info(sample); if (!str || diff --git a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc index 09723b6..7fcd204 100644 --- a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc +++ b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.cc @@ -46,7 +46,7 @@ enum { // Gstreamer elements and names. const char* kEncoderName = "encoder"; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) const char* kEncoderGstElement = "omxh264enc"; const char* kBitrateProperty = "target-bitrate"; #else @@ -401,9 +401,8 @@ void TizenVideoEncodeAccelerator::RequestEncodingParametersChange( impl_->gst_bitrate_ = bitrate; // Omx Encoder expects bitrate in bps whereas ffenc expects bitrate in kbps // Information can be gained by gst-inspect - g_object_set(G_OBJECT(impl_->encoder_), - kBitrateProperty, -#if defined(OS_TIZEN) + g_object_set(G_OBJECT(impl_->encoder_), kBitrateProperty, +#if BUILDFLAG(IS_TIZEN) std::min(bitrate, static_cast(MAX_BITRATE)), #else std::min(bitrate, static_cast(MAX_BITRATE)) / 1000, @@ -554,7 +553,7 @@ bool TizenVideoEncodeAccelerator::StartEncoder() { return false; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) g_object_set(impl_->encoder_, "control-rate", 2, // 1:VBR_CFR 2:CBR_CFR 3:VBR_VFR 4:CBR_VFR kBitrateProperty, impl_->gst_bitrate_, @@ -588,7 +587,7 @@ bool TizenVideoEncodeAccelerator::StartEncoder() { g_object_set(gst_appsink, "sync", FALSE, NULL); if (!gst_element_link_many(impl_->appsrc_, -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) gst_parser, #endif impl_->encoder_, gst_appsink, NULL)) { diff --git a/tizen_src/chromium_impl/content/common/message_generator_efl.h b/tizen_src/chromium_impl/content/common/message_generator_efl.h index bae0eb2..d2d49c0 100644 --- a/tizen_src/chromium_impl/content/common/message_generator_efl.h +++ b/tizen_src/chromium_impl/content/common/message_generator_efl.h @@ -6,7 +6,7 @@ // efl message generator #include "content/common/render_messages_efl.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "content/common/tts_messages_efl.h" #endif diff --git a/tizen_src/chromium_impl/content/common/paths_efl.cc b/tizen_src/chromium_impl/content/common/paths_efl.cc index 1e31cef..174e2b1 100644 --- a/tizen_src/chromium_impl/content/common/paths_efl.cc +++ b/tizen_src/chromium_impl/content/common/paths_efl.cc @@ -14,7 +14,7 @@ #include "base/path_service.h" #include "build/tizen_version.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #include #include @@ -24,7 +24,7 @@ namespace { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) const base::FilePath::CharType kDataPath[] = FILE_PATH_LITERAL(DATA_DIR); const base::FilePath::CharType kExePath[] = FILE_PATH_LITERAL(EXE_DIR); const base::FilePath::CharType kApplicationDataDir[] = FILE_PATH_LITERAL("data"); @@ -43,7 +43,7 @@ const base::FilePath::CharType kEdjePath[] = FILE_PATH_LITERAL(EDJE_DIR); const base::FilePath::CharType kApplicationName[] = FILE_PATH_LITERAL("chromium-efl"); const base::FilePath::CharType kApplicationDataBaseDir[] = FILE_PATH_LITERAL("db"); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) bool GetDirAppDataTizen(base::FilePath& result) { char* buffer; @@ -96,7 +96,7 @@ base::FilePath GetDirCacheTizen() { #endif base::FilePath GetDirDownloads() { -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) return base::FilePath(FILE_PATH_LITERAL("/tmp/")); #else return base::FilePath( @@ -105,7 +105,7 @@ base::FilePath GetDirDownloads() { } base::FilePath GetDirImages() { -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) return base::FilePath(FILE_PATH_LITERAL("/tmp/")); #else return base::FilePath(FILE_PATH_LITERAL(tzplatform_getenv(TZ_USER_IMAGES))); @@ -113,7 +113,7 @@ base::FilePath GetDirImages() { } void GetDirUserData(base::FilePath& result) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) result = GetDirUserDataTizen(); if (result.empty()) { std::unique_ptr env(base::Environment::Create()); @@ -138,7 +138,7 @@ void GetDirUserData(base::FilePath& result) { } void GetDirCache(base::FilePath& result) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) result = GetDirCacheTizen(); if (result.empty()) { std::unique_ptr env(base::Environment::Create()); @@ -168,7 +168,7 @@ bool PathProvider(int key, base::FilePath* result) { DCHECK(result); base::FilePath cur; switch (key) { -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) case base::DIR_EXE: case base::DIR_MODULE: *result = base::FilePath(kExePath); @@ -200,7 +200,7 @@ bool PathProvider(int key, base::FilePath* result) { return false; cur = cur.Append(kApplicationDataBaseDir); break; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) case DIR_SHARED: if (!GetDirSharedDataTizen(cur)) return false; diff --git a/tizen_src/chromium_impl/content/renderer/common_renderer_client.cc b/tizen_src/chromium_impl/content/renderer/common_renderer_client.cc index 1248411..2597c5e 100644 --- a/tizen_src/chromium_impl/content/renderer/common_renderer_client.cc +++ b/tizen_src/chromium_impl/content/renderer/common_renderer_client.cc @@ -11,7 +11,7 @@ #include "net/base/net_errors.h" #include "third_party/blink/public/platform/web_url_error.h" -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) #include "url/gurl.h" #endif @@ -63,7 +63,7 @@ void CommonRendererClient::PrepareErrorPage( std::string(dgettext("WebKit", GetErrorTag(error.reason()))); std::string error_code = "ErrorCode: " + base::NumberToString(error.reason()) + " (" + net::ErrorToString(error.reason()) + ")"; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) // Only host of the unreachable url is reported on tv. GURL gurl(error.url()); error_message = diff --git a/tizen_src/chromium_impl/content/shell/browser/shell_efl.cc b/tizen_src/chromium_impl/content/shell/browser/shell_efl.cc index d78ab09..b3cf1f7 100644 --- a/tizen_src/chromium_impl/content/shell/browser/shell_efl.cc +++ b/tizen_src/chromium_impl/content/shell/browser/shell_efl.cc @@ -65,7 +65,7 @@ class Shell::Impl { refresh_btn_ = AddButton(button_box, "refresh", OnRefresh); stop_btn_ = AddButton(button_box, "close", OnStop); -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) elm_object_text_set(new_window_button, "New Window"); elm_object_text_set(back_btn_, "Back"); elm_object_text_set(forward_btn_, "Forward"); diff --git a/tizen_src/chromium_impl/efl/init.cc b/tizen_src/chromium_impl/efl/init.cc index 20cf940..c44494d 100644 --- a/tizen_src/chromium_impl/efl/init.cc +++ b/tizen_src/chromium_impl/efl/init.cc @@ -10,15 +10,11 @@ #include "base/logging.h" #include "base/message_loop/message_pump_ecore.h" -#include "cc/base/switches.h" #include "chromium_impl/build/tizen_version.h" #include "content/common/paths_efl.h" #include "content/public/common/content_switches.h" -#include "gpu/config/gpu_switches.h" #include "tizen/system_info.h" #include "ui/compositor/compositor_switches.h" -#include "ui/gfx/switches.h" -#include "ui/gl/gl_switches.h" #include "ui/ozone/public/ozone_platform.h" namespace efl { @@ -74,23 +70,4 @@ int Initialize(int argc, const char* argv[]) { return 0; } -void AppendPortParams(base::CommandLine& cmdline) { - cmdline.AppendSwitchASCII(switches::kUseGL, gl::kGLImplementationEGLName); - -#if !defined(EWK_BRINGUP) // FIXME: m67 bringup -// [M44_2403] Temporary disabling the codes for switching to new chromium -// FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=14040 -#if defined(OS_TIZEN) - cmdline.AppendSwitch(cc::switches::kEnableTileCompression); - cmdline.AppendSwitchASCII(cc::switches::kTileCompressionThreshold, "-1"); - cmdline.AppendSwitchASCII(cc::switches::kTileCompressionMethod, "3"); - - // Select ETC1 compression method - if (!cmdline.HasSwitch(cc::switches::kDisableTileCompression) && - cmdline.HasSwitch(cc::switches::kEnableTileCompression)) - cmdline.AppendSwitch(switches::kDisableGpuRasterization); -#endif -#endif // EWK_BRINGUP -} - } // namespace efl diff --git a/tizen_src/chromium_impl/efl/init.h b/tizen_src/chromium_impl/efl/init.h index 8192939..8e3663c 100644 --- a/tizen_src/chromium_impl/efl/init.h +++ b/tizen_src/chromium_impl/efl/init.h @@ -12,8 +12,6 @@ namespace efl { EFL_EXPORT int Initialize(int argc, const char* argv[]); -EFL_EXPORT void AppendPortParams(base::CommandLine&); - } // namespace efl #endif // _EFL_PORT_IMPL_INIT_H_ diff --git a/tizen_src/chromium_impl/tizen/system_info.cc b/tizen_src/chromium_impl/tizen/system_info.cc index 002f4e8..9e7585b 100644 --- a/tizen_src/chromium_impl/tizen/system_info.cc +++ b/tizen_src/chromium_impl/tizen/system_info.cc @@ -2,11 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include -#include #include "system_info.h" -#if defined(OS_TIZEN) +#include +#include + +#include "build/build_config.h" + +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -18,7 +21,7 @@ void GetProfile(void) { if (g_profile__ != PROFILE_UNKNOWN) return; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) char *profileName; system_info_get_platform_string("http://tizen.org/feature/profile", &profileName); switch (*profileName) { @@ -73,7 +76,7 @@ int IsCommonProfile(void) { } void GetArch(void) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (g_arch__ != ARCH_UNKNOWN) return; diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc index b471f6c..7f18a4a 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc @@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "build/build_config.h" #include "content/public/browser/native_web_keyboard_event.h" #include "tizen/system_info.h" #include "ui/base/ime/linux/linux_input_method_context_factory.h" @@ -20,7 +21,7 @@ #include "ui/ozone/platform/efl/efl_window.h" #include "ui/ozone/platform/efl/im_context_efl.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "ui/events/keycodes/dom/dom_code.h" #include "ui/events/keycodes/dom/dom_key.h" #include "ui/events/keycodes/dom/keycode_converter.h" @@ -205,7 +206,7 @@ int EflEventHandler::GetTopControlsHeight() { template bool EflEventHandler::GetTouchEventsEnabled(const EVT* evas_evt) { -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) return (touch_events_enabled_ && evas_device_class_get(evas_evt->dev) == EVAS_DEVICE_CLASS_TOUCH); #endif @@ -222,7 +223,7 @@ MouseEvent MakeWebMouseEvent(EventType type, const EVT* ev, int delta_y) { MouseEvent event(type, location, location, base::TimeTicks::Now(), event_flags, button); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) int clickCount = 1; if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK) // dblclick clickCount = 2; @@ -264,7 +265,7 @@ KeyEvent MakeWebKeyEvent(bool pressed, const EVT* evt) { KeyboardCode windows_key_code = UIKeyCodeFromEflKey(evt->key); int flags = 0; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) // On combinate key "shift+Alt+xxx", the "key" of the "Alt" is // "Meta_L/Meta_R", not the "Alt_L/Alt_R", so use the keyname replace the // "key" to get the flag. @@ -288,7 +289,7 @@ KeyEvent MakeWebKeyEvent(bool pressed, const EVT* evt) { else key_modifiers &= ~flags; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) DomCode domCode = KeycodeConverter::NativeKeycodeToDomCode(native_key_code); DomKey domKey = KeycodeConverter::KeyStringToDomKey(evt->key); @@ -524,7 +525,7 @@ void EflEventHandler::OnMouseOut(void* data, Evas* evas, Evas_Object* obj, void* event_info) { -#if !defined(OS_TIZEN_TV_PRODUCT) +#if !BUILDFLAG(IS_TIZEN_TV) EflEventHandler* thiz = static_cast(data); thiz->window_->UpdateFocus(false); #endif @@ -564,7 +565,7 @@ void EflEventHandler::OnKeyDown(void* data, LOG(INFO) << "Before consumed check (Key Name: " << key_down->key << ", Key State: Down)"; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsTvProfile()) { if (thiz->FilterIMEKeyDownEvent(key_down)) { LOG(INFO) << "OnKeyDown, IME filtered the key : " << key_down->key; @@ -599,7 +600,7 @@ void EflEventHandler::OnKeyUp(void* data, LOG(INFO) << "Before consumed check (Key Name: " << key_up->key << ", Key State: Up)"; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsTvProfile()) { if (thiz->FilterIMEKeyUpEvent(key_up)) { LOG(INFO) << "OnKeyUp, IME filtered the key : " << key_up->key; @@ -631,7 +632,7 @@ bool EflEventHandler::IsIMEHandleKeyEventEnabled() { if (!GetIMContextEfl()) return false; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) return GetIMContextEfl()->ImeHandleKeyEventEnabled(); #endif return true; diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h index 102269a..1ad3fac 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h @@ -8,7 +8,9 @@ #include #include -#if defined(OS_TIZEN_TV_PRODUCT) +#include "build/build_config.h" + +#if BUILDFLAG(IS_TIZEN_TV) #include "base/callback.h" #include "ui/gfx/geometry/rect.h" #endif diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_keycode_map.h b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_keycode_map.h index 366cb70..ee4542e 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_keycode_map.h +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_keycode_map.h @@ -72,7 +72,7 @@ static ui::KeyboardCode UIKeyCodeFromEflKey(const char* key) { {"XF86AudioLowerVolume", ui::VKEY_VOLUME_DOWN}, {"XF86AudioRaiseVolume", ui::VKEY_VOLUME_UP}, -#if !defined(OS_TIZEN_TV_PRODUCT) +#if !BUILDFLAG(IS_TIZEN_TV) {"XF86Search", ui::VKEY_BROWSER_SEARCH}, {"XF86AudioNext", ui::VKEY_MEDIA_NEXT_TRACK}, {"XF86AudioPrev", ui::VKEY_MEDIA_PREV_TRACK}, diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.cc b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.cc index 4d87847..3b357f1 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.cc +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.cc @@ -17,13 +17,13 @@ #include "ui/ozone/platform/efl/efl_screen.h" #include "ui/ozone/platform/efl/efl_window_manager.h" -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) #include #endif namespace ui { -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) bool EflWindow::is_cursor_initialized_ = false; #endif @@ -298,12 +298,12 @@ void EflWindow::Initialize(const PlatformWindowInitProperties& properties) { InitializeEventHandler(); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) CreateMouseCursor(); #endif } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void EflWindow::CreateMouseCursor() { if (is_cursor_initialized_) return; diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.h b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.h index d951668..54e8d65 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.h +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_window.h @@ -86,7 +86,7 @@ class EflWindow : public PlatformWindow, public PlatformEventDispatcher { void Initialize(const PlatformWindowInitProperties& properties); void InitializeEventHandler(); void ResetEventHandler(); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void CreateMouseCursor(); static bool is_cursor_initialized_; #endif diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.cc b/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.cc index 35ce817..b7fb24d 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.cc +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.cc @@ -161,7 +161,7 @@ void IMContextEfl::HandleKeyUpEvent(const Evas_Event_Key_Up* event, void IMContextEfl::UpdateInputMethodType(TextInputType type, TextInputMode mode, bool can_compose_inline -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) , int password_input_minlength, int input_maxlength @@ -169,7 +169,7 @@ void IMContextEfl::UpdateInputMethodType(TextInputType type, ) { if (current_type_ == type && current_mode_ == mode && can_compose_inline_ == can_compose_inline -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) && password_input_minlength_ == password_input_minlength && input_maxlength_ == input_maxlength #endif @@ -177,7 +177,7 @@ void IMContextEfl::UpdateInputMethodType(TextInputType type, return; } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) password_input_minlength_ = password_input_minlength; input_maxlength_ = input_maxlength; #endif @@ -247,7 +247,7 @@ void IMContextEfl::UpdateInputMethodType(TextInputType type, return; } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) // Always enable "Up" and "Down" key // Set IMEUp=2, IMEDown=2 will always enable the 'up' and 'down' arrow key std::string im_data("IMEUp=2&IMEDown=2"); @@ -290,7 +290,7 @@ void IMContextEfl::UpdateInputMethodType(TextInputType type, ecore_imf_context_input_panel_return_key_disabled_set(context_, disable_done_key); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) Ecore_IMF_Input_Hints hints; if (is_multi_line) { hints = static_cast( @@ -332,13 +332,13 @@ bool IMContextEfl::ShouldHandleImmediately(const char* key) { void IMContextEfl::UpdateInputMethodState(TextInputType type, bool can_compose_inline, bool show_if_needed -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) , int password_input_minlength, int input_maxlength #endif ) { -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) if (current_type_ != type || can_compose_inline_ != can_compose_inline || password_input_minlength_ != password_input_minlength || input_maxlength_ != input_maxlength) { @@ -477,7 +477,7 @@ void IMContextEfl::OnCommit(void* event_info) { // should be handled. It can be default prevented for exactly. commit_queue_.push(text16); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) // Fix IMFCommitCallback come but previous preedit_queue_ haven't handle // cause show double text issue. if (!preedit_queue_.empty()) @@ -677,7 +677,7 @@ void IMContextEfl::OnDeleteSurrounding(void* event_info) { std::vector ime_text_spans; ui::ImeTextSpan text_span; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) text_span.underline_style = ui::ImeTextSpan::UnderlineStyle::kNone; #endif ime_text_spans.push_back(text_span); @@ -807,7 +807,7 @@ void IMContextEfl::IMFTransactionPrivateCommandSendCallback( imce->composition_ = CompositionText(); } else if (!strcmp(cmd, "TRANSACTION_END")) { imce->is_transaction_finished_ = true; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) // When using mobile IME input, build the same process as TV IME: // add SetComposition empty text after // SetCompositionFromExistingText/OnCommit, to fix can not @@ -935,7 +935,7 @@ void IMContextEfl::SetSurroundingText(std::string value) { is_surrounding_text_change_in_progress_ = false; surrounding_text_ = value; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) // For password input type,disable "Done" key when inputed text not meet // minlength surrounding_text_length_ = base::UTF8ToUTF16(value).length(); @@ -978,7 +978,7 @@ void IMContextEfl::SetWindowIfNeeded(Evas_Object* evas) { ecore_imf_context_client_canvas_set(context_, evas); } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void IMContextEfl::SetIMERecommendedWords(const std::string& im_data) { LOG(INFO) << "im_data:" << im_data; ecore_imf_context_input_panel_imdata_set(context_, im_data.c_str(), diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.h b/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.h index 92b51e7..e849cc2 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.h +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/im_context_efl.h @@ -9,6 +9,7 @@ #include +#include "build/build_config.h" #include "content/public/browser/native_web_keyboard_event.h" #include "ui/base/ime/composition_text.h" #include "ui/base/ime/text_input_mode.h" @@ -16,7 +17,7 @@ #include "ui/events/keycodes/keyboard_codes.h" #include "ui/gfx/geometry/rect.h" -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) #define DEFAULT_MAX_LENGTH std::numeric_limits::max() #endif @@ -47,7 +48,7 @@ class IMContextEfl { void UpdateInputMethodState(TextInputType, bool can_compose_inline, bool show_if_needed -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) , int password_input_minlength, int input_maxlength @@ -80,7 +81,7 @@ class IMContextEfl { rwhv_helper_ = rwhv_helper; } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void SetIMERecommendedWords(const std::string&); void SetIMERecommendedWordsType(bool should_enable); bool ImeHandleKeyEventEnabled(); @@ -90,7 +91,7 @@ class IMContextEfl { void UpdateInputMethodType(TextInputType, TextInputMode, bool can_compose_inline -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) , int password_input_minlength, int input_maxlength @@ -159,7 +160,7 @@ class IMContextEfl { void OnDeleteSurrounding(void* event_info); void OnSelectionCalled(void* event_info); void OnCandidateInputPanelLanguageChanged(Ecore_IMF_Context* context); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void OnIMFEventPrivateCommand(std::string command); #endif @@ -192,7 +193,7 @@ class IMContextEfl { KeyUpEventQueue keyup_event_queue_; KeyDownEventQueue keydown_event_queue_; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) int password_input_minlength_ = -1; int input_maxlength_ = DEFAULT_MAX_LENGTH; int surrounding_text_length_ = 0; diff --git a/tizen_src/ewk/efl_integration/authentication_challenge_popup.cc b/tizen_src/ewk/efl_integration/authentication_challenge_popup.cc index d0a3803..b30f60b 100644 --- a/tizen_src/ewk/efl_integration/authentication_challenge_popup.cc +++ b/tizen_src/ewk/efl_integration/authentication_challenge_popup.cc @@ -4,7 +4,7 @@ #include "ewk/efl_integration/authentication_challenge_popup.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -41,7 +41,7 @@ AuthenticationChallengePopup::~AuthenticationChallengePopup() { if (login_button_) evas_object_smart_callback_del(login_button_, "clicked", AuthenticationLoginCallback); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (popup_) { eext_object_event_callback_del(popup_, EEXT_CALLBACK_BACK, HwBackKeyCallback); @@ -72,7 +72,7 @@ void AuthenticationChallengePopup::AuthenticationLoginCallback( delete auth_challenge_popup; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void AuthenticationChallengePopup::HwBackKeyCallback(void* data, Evas_Object* obj, void* event_info) { @@ -225,7 +225,7 @@ bool AuthenticationChallengePopup::ShowAuthenticationPopup(const char* url) { evas_object_smart_callback_add(login_button_, "clicked", AuthenticationLoginCallback, this); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(popup_, EEXT_CALLBACK_BACK, HwBackKeyCallback, this); #endif diff --git a/tizen_src/ewk/efl_integration/authentication_challenge_popup.h b/tizen_src/ewk/efl_integration/authentication_challenge_popup.h index 5d2766f..32660b6 100644 --- a/tizen_src/ewk/efl_integration/authentication_challenge_popup.h +++ b/tizen_src/ewk/efl_integration/authentication_challenge_popup.h @@ -8,6 +8,7 @@ #include #include +#include "build/build_config.h" #include "public/ewk_auth_challenge_internal.h" class AuthenticationChallengePopup { @@ -25,7 +26,7 @@ class AuthenticationChallengePopup { static void AuthenticationLoginCallback(void* data, Evas_Object* obj, void* event_info); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void HwBackKeyCallback(void* data, Evas_Object* obj, void* event_info); #endif Evas_Object* CreateBorder(const std::string& text, Evas_Object* entry_box); diff --git a/tizen_src/ewk/efl_integration/autofill_popup_view_efl.cc b/tizen_src/ewk/efl_integration/autofill_popup_view_efl.cc index 602ec04..7bb79f9 100644 --- a/tizen_src/ewk/efl_integration/autofill_popup_view_efl.cc +++ b/tizen_src/ewk/efl_integration/autofill_popup_view_efl.cc @@ -151,7 +151,7 @@ void AutofillPopupViewEfl::UpdateFormDataPopup(const gfx::RectF& bounds) } else if (IsTvProfile()) { scale_factor = webview_->GetScale(); } -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) elm_object_scale_set(autofill_list_, webview_->GetScale() / 2); #else elm_object_scale_set(autofill_list_, scale_factor); diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc index eb31f1c..63fc5a8 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc @@ -123,7 +123,7 @@ void AutofillClientEfl::ShowAutofillPopup( scale_factor = webview_->GetScale(); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) evas_object_geometry_get(webview_->evas_object(), &x, &y, 0, 0); gfx::Rect client_area = web_contents_->GetContainerBounds(); gfx::RectF element_bounds_in_screen_space = element_bounds + @@ -132,7 +132,7 @@ void AutofillClientEfl::ShowAutofillPopup( if (GetOrCreatePopupController()) { popup_controller_->InitFormData(suggestions, delegate); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) popup_controller_->UpdateFormDataPopup(element_bounds_in_screen_space); #else popup_controller_->UpdateFormDataPopup(element_bounds); diff --git a/tizen_src/ewk/efl_integration/browser/inputpicker/InputPicker.cc b/tizen_src/ewk/efl_integration/browser/inputpicker/InputPicker.cc index c4d6de2..8346d52 100755 --- a/tizen_src/ewk/efl_integration/browser/inputpicker/InputPicker.cc +++ b/tizen_src/ewk/efl_integration/browser/inputpicker/InputPicker.cc @@ -19,7 +19,7 @@ #include #include -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #include #include @@ -216,7 +216,7 @@ struct Input_Date_Str { }; static char* datetimeFormat() { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) char* datetimeFormat = NULL; char* regionFormat = NULL; char* language = NULL; @@ -309,7 +309,7 @@ void InputPicker::SetPopupSize(int width, int height) { picker_layout_->SetPopupSize(width, height); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void InputPicker::endEditingCallback( void* data, Evas_Object* obj, void* event_info) { @@ -405,7 +405,7 @@ void InputPicker::ShowColorPicker(int r, int g, int b, int alpha) { "color,item,selected", SelectedColorCallback, picker_layout_->color_rect); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(picker_layout_->popup, EEXT_CALLBACK_BACK, HandleBackKeyColorPicker, this); #endif @@ -622,7 +622,7 @@ void InputPicker::CreatePopupLayout(const char* title, struct tm* currentTime) { picker_layout_->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_part_text_set(picker_layout_->popup, "title,text", title); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (EflExtensionHandle) { void (*webkit_eext_object_event_callback_add)( Evas_Object *, Eext_Callback_Type , Eext_Event_Cb func, void *); @@ -668,7 +668,7 @@ void InputPicker::CreatePopupLayout(const char* title, struct tm* currentTime) { elm_datetime_value_set(picker_layout_->datePicker, currentTime); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsTvProfile()) { elm_object_signal_emit(picker_layout_->layout,"TV","align,swallow.datetime"); } else if (IsMobileProfile() || IsWearableProfile()) { @@ -685,7 +685,7 @@ void InputPicker::CreateDateTimePopupLayout(const char* title, struct tm* curren picker_layout_->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_part_text_set(picker_layout_->popup, "title,text", title); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (EflExtensionHandle) { void (*webkit_eext_object_event_callback_add)( Evas_Object *, Eext_Callback_Type , Eext_Event_Cb func, void *); @@ -742,7 +742,7 @@ void InputPicker::CreateDateTimePopupLayout(const char* title, struct tm* curren elm_datetime_value_set(picker_layout_->datePicker, currentTime); elm_datetime_value_set(picker_layout_->time_picker, currentTime); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsWearableProfile()) { evas_object_smart_callback_add( picker_layout_->datePicker, "edit,end", endEditingCallback, 0); @@ -756,7 +756,7 @@ void InputPicker::CreateTimePopupLayout(const char* title, struct tm* currentTim picker_layout_->popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_object_part_text_set(picker_layout_->popup, "title,text", title); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (EflExtensionHandle) { void (*webkit_eext_object_event_callback_add)( Evas_Object *, Eext_Callback_Type , Eext_Event_Cb func, void *); @@ -804,7 +804,7 @@ void InputPicker::CreateTimePopupLayout(const char* title, struct tm* currentTim elm_datetime_value_set(picker_layout_->time_picker, currentTime); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsTvProfile()) { elm_object_signal_emit(picker_layout_->layout,"TV","align,swallow.datetime"); } else if (IsMobileProfile() || IsWearableProfile()) { diff --git a/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.cc b/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.cc index f74547f..fedc587 100644 --- a/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.cc @@ -23,7 +23,7 @@ #include "third_party/leveldatabase/src/include/leveldb/db.h" #include "ui/gfx/codec/png_codec.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #include #include @@ -36,7 +36,7 @@ namespace content { static const char kPermissionDatabaseName[] = "permissions_db"; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) bool SetNotificationImage(notification_h noti, notification_image_type_e type, const SkBitmap& bitmap, @@ -143,7 +143,7 @@ static void NotificationEventCallback(notification_h noti, } } -#endif // defined(OS_TIZEN) +#endif // BUILDFLAG(IS_TIZEN) PermissionHandler::PermissionHandler() {} @@ -282,7 +282,7 @@ DefaultCallback::DefaultCallback() {} DefaultCallback::~DefaultCallback() {} -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) uint64_t DefaultCallback::FindNotificationID(int notification_priv_id) { for (auto it = key_mapper_.begin(); it != key_mapper_.end(); it++) { if (it->second == notification_priv_id) @@ -292,7 +292,7 @@ uint64_t DefaultCallback::FindNotificationID(int notification_priv_id) { LOG(ERROR) << "Can't find notification ID " << notification_priv_id; return 0; } -#endif // defined(OS_TIZEN) +#endif // BUILDFLAG(IS_TIZEN) bool DefaultCallback::ShowCallback(uint64_t tag, const std::string& notification_id, @@ -302,7 +302,7 @@ bool DefaultCallback::ShowCallback(uint64_t tag, const SkBitmap& icon, const SkBitmap& badge, bool is_persistent) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) auto found = key_mapper_.find(tag); if (found != key_mapper_.end()) CancelCallback(tag); @@ -425,11 +425,11 @@ bool DefaultCallback::ShowCallback(uint64_t tag, return true; #else return false; -#endif // defined(OS_TIZEN) +#endif // BUILDFLAG(IS_TIZEN) } bool DefaultCallback::CancelCallback(uint64_t tag) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) auto found = key_mapper_.find(tag); if (found == key_mapper_.end()) { LOG(ERROR) << "Can't find notification."; @@ -442,7 +442,7 @@ bool DefaultCallback::CancelCallback(uint64_t tag) { return true; #else return false; -#endif // defined(OS_TIZEN) +#endif // BUILDFLAG(IS_TIZEN) } NotificationControllerEfl::NotificationControllerEfl() @@ -451,7 +451,7 @@ NotificationControllerEfl::NotificationControllerEfl() notification_helper_(std::make_unique()) {} NotificationControllerEfl::~NotificationControllerEfl() { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) RemoveImageFiles(std::string()); #endif } diff --git a/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h b/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h index fb6e721..1d270e4 100644 --- a/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h +++ b/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h @@ -62,7 +62,7 @@ class DefaultCallback { public: DefaultCallback(); ~DefaultCallback(); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) uint64_t FindNotificationID(int notification_priv_id); #endif bool ShowCallback(uint64_t tag, diff --git a/tizen_src/ewk/efl_integration/browser/selectpicker/popup_picker.cc b/tizen_src/ewk/efl_integration/browser/selectpicker/popup_picker.cc index d4c0e3a..b48fcd2 100644 --- a/tizen_src/ewk/efl_integration/browser/selectpicker/popup_picker.cc +++ b/tizen_src/ewk/efl_integration/browser/selectpicker/popup_picker.cc @@ -17,7 +17,7 @@ #include #include #include "ecore_x_wayland_wrapper.h" -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) #include #include extern void* EflExtensionHandle; @@ -100,7 +100,7 @@ void menuItemActivated(void* data, Evas_Object* obj, void* event_info) { Popup_Picker* picker = static_cast(data); Elm_Object_Item* selected = static_cast(event_info); int index = elm_genlist_item_index_get(selected); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // elm_genlist_item_index_get iterrate starting from 1 if (index > 0) index--; @@ -122,7 +122,7 @@ void menuItemDeactivated(void* data, Evas_Object* obj, void* event_info) { Elm_Object_Item* deselectedItem = static_cast(event_info); int deselectedIndex = elm_genlist_item_index_get(deselectedItem); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // elm_genlist_item_index_get iterrate starting from 1 if (deselectedIndex > 0) deselectedIndex--; @@ -349,7 +349,7 @@ Popup_Picker* popup_picker_new(EWebView* web_view, Evas_Object* parent, Eina_Lis "mouse,clicked,1", "elm.image.next_bg", navigateToNext, picker); } -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) if (EflExtensionHandle) { void (*webkit_eext_object_event_callback_add)(Evas_Object *, Eext_Callback_Type, Eext_Event_Cb func, void *); diff --git a/tizen_src/ewk/efl_integration/browser/web_view_evas_handler.cc b/tizen_src/ewk/efl_integration/browser/web_view_evas_handler.cc index 6837713..3312ec2 100644 --- a/tizen_src/ewk/efl_integration/browser/web_view_evas_handler.cc +++ b/tizen_src/ewk/efl_integration/browser/web_view_evas_handler.cc @@ -15,7 +15,7 @@ using content::SelectionControllerEfl; namespace { inline bool IsHardwareBackKey(const Evas_Event_Key_Up* event) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) return (strcmp(event->key, "XF86Back") == 0 || strcmp(event->key, "XF86Stop") == 0); #else @@ -50,7 +50,7 @@ bool WebViewEvasEventHandler::HandleEvent_KeyUp( bool handled = WebViewDelegateEwk::GetInstance(). RequestHandleEvent_KeyUp(webview_, event_info); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) return handled; #endif diff --git a/tizen_src/ewk/efl_integration/command_line_efl.cc b/tizen_src/ewk/efl_integration/command_line_efl.cc index 0cccd72..550b2b5 100644 --- a/tizen_src/ewk/efl_integration/command_line_efl.cc +++ b/tizen_src/ewk/efl_integration/command_line_efl.cc @@ -23,6 +23,7 @@ #include "tizen/system_info.h" #include "ui/base/ui_base_switches.h" #include "ui/events/event_switches.h" +#include "ui/gl/gl_switches.h" #include "ui/ozone/public/ozone_switches.h" #include "url/gurl.h" @@ -56,8 +57,8 @@ content::MainFunctionParams CommandLineEfl::GetDefaultPortParams() { } base::CommandLine* p_command_line = base::CommandLine::ForCurrentProcess(); - efl::AppendPortParams(*p_command_line); - + p_command_line->AppendSwitchASCII(switches::kUseGL, + gl::kGLImplementationEGLName); p_command_line->AppendSwitch(sandbox::policy::switches::kNoSandbox); p_command_line->AppendSwitch(switches::kIgnoreGpuBlocklist); p_command_line->AppendSwitch(switches::kInProcessGPU); @@ -70,7 +71,7 @@ content::MainFunctionParams CommandLineEfl::GetDefaultPortParams() { p_command_line->AppendSwitch(switches::kEnableWebRtcHWH264Encoding); #endif -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #if !defined(EWK_BRINGUP) // FIXME:m85 bringup p_command_line->AppendSwitchASCII( switches::kAcceleratedCanvas2dMSAASampleCount, "4"); diff --git a/tizen_src/ewk/efl_integration/common/version_info.cc b/tizen_src/ewk/efl_integration/common/version_info.cc index f7d8784..612deac 100644 --- a/tizen_src/ewk/efl_integration/common/version_info.cc +++ b/tizen_src/ewk/efl_integration/common/version_info.cc @@ -4,7 +4,9 @@ #include "common/version_info.h" -#if defined(OS_TIZEN) +#include "build/build_config.h" + +#if BUILDFLAG(IS_TIZEN) #include "system_info.h" #endif @@ -68,7 +70,7 @@ std::string VersionInfo::CreateVersionString() const { } std::string VersionInfo::OSType() const { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) char *device_model = NULL; char *tizen_version = NULL; char *platform_name = NULL; diff --git a/tizen_src/ewk/efl_integration/content_browser_client_efl.cc b/tizen_src/ewk/efl_integration/content_browser_client_efl.cc index 7e68c82..05d477a 100644 --- a/tizen_src/ewk/efl_integration/content_browser_client_efl.cc +++ b/tizen_src/ewk/efl_integration/content_browser_client_efl.cc @@ -29,7 +29,7 @@ #include "web_contents_delegate_efl.h" #include "web_contents_view_delegate_ewk.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #if !defined(EWK_BRINGUP) #include "browser/geolocation/location_provider_efl.h" #endif @@ -50,7 +50,7 @@ namespace { const char* const kDefaultAcceptLanguages = "en-us,en"; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void PlatformLanguageChanged(keynode_t* keynode, void* data) { char* lang = vconf_get_str(VCONFKEY_LANGSET); if (!lang) @@ -68,7 +68,7 @@ void PlatformLanguageChanged(keynode_t* keynode, void* data) { free(lang); } -#endif // defined(OS_TIZEN) +#endif // BUILDFLAG(IS_TIZEN) } // namespace @@ -76,14 +76,14 @@ ContentBrowserClientEfl::ContentBrowserClientEfl() : browser_main_parts_efl_(nullptr), notification_controller_(new NotificationControllerEfl), accept_langs_(kDefaultAcceptLanguages) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) PlatformLanguageChanged(nullptr, this); vconf_notify_key_changed(VCONFKEY_LANGSET, PlatformLanguageChanged, this); #endif } ContentBrowserClientEfl::~ContentBrowserClientEfl() { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) vconf_ignore_key_changed(VCONFKEY_LANGSET, PlatformLanguageChanged); #endif } @@ -343,7 +343,7 @@ void ContentBrowserClientEfl::RenderProcessWillLaunch( #if !defined(EWK_BRINGUP) // FIXME: m94 bringup host->AddFilter(new editing::EditorClientObserver(host->GetID())); #endif -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) host->AddFilter(new TtsMessageFilterEfl()); #endif } diff --git a/tizen_src/ewk/efl_integration/context_menu_controller_efl.cc b/tizen_src/ewk/efl_integration/context_menu_controller_efl.cc index cb8f299..ede9214 100644 --- a/tizen_src/ewk/efl_integration/context_menu_controller_efl.cc +++ b/tizen_src/ewk/efl_integration/context_menu_controller_efl.cc @@ -24,7 +24,7 @@ #include "ui/base/clipboard/clipboard.h" #include "ui/base/clipboard/clipboard_helper_efl.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #include #endif @@ -129,7 +129,7 @@ void ContextMenuControllerEfl::GetProposedContextMenu() { std::string(), params_.link_url.spec()); #if !defined(EWK_BRINGUP) -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_SHARE_LINK, dgettext("WebKit", "IDS_WEBVIEW_OPT_SHARE_LINK"), @@ -277,7 +277,7 @@ bool ContextMenuControllerEfl::CreateContextMenu() { if (appended_item) _context_menu_listdata.push_back(*context_item); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // Workaround // Need to set "copypaste" style, to let moving handles // when ctxpopup is visible @@ -488,7 +488,7 @@ bool ContextMenuControllerEfl::ShowContextMenu() { } web_contents_.Focus(); } else { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(popup_, EEXT_CALLBACK_BACK, ContextMenuHWBackKey, this); // Workaround. After context menu shows up, there is "unfocused" event fired. // evas_object_smart_callback_add(popup_, "unfocused", ContextMenuHWBackKey, this); @@ -643,7 +643,7 @@ void ContextMenuControllerEfl::OpenURL( web_contents_.GetDelegate()->OpenURLFromTab(&web_contents_, params); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void ContextMenuControllerEfl::ShareLink(const GURL& url) { app_control_h service_handle = 0; int error_code = 0; @@ -718,7 +718,7 @@ void ContextMenuControllerEfl::ContextMenuListRealized(void* data, Elm_Object_Item* item = static_cast(event_info); size_t index = reinterpret_cast(elm_object_item_data_get(item)); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) Evas_Object* track = elm_object_item_track(item); evas_object_event_callback_add(track, EVAS_CALLBACK_RESIZE, ContextMenuListTrackResize, obj); #endif @@ -818,7 +818,7 @@ void ContextMenuControllerEfl::MenuItemSelected(ContextMenuItemEfl* menu_item) } #if !defined(EWK_BRINGUP) case EWK_CONTEXT_MENU_ITEM_TAG_SHARE_LINK: { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) ShareLink(GURL(params_.link_url.spec())); #else NOTIMPLEMENTED(); diff --git a/tizen_src/ewk/efl_integration/context_menu_controller_efl.h b/tizen_src/ewk/efl_integration/context_menu_controller_efl.h index 8418ca0..75e5e6b 100644 --- a/tizen_src/ewk/efl_integration/context_menu_controller_efl.h +++ b/tizen_src/ewk/efl_integration/context_menu_controller_efl.h @@ -107,7 +107,7 @@ class ContextMenuControllerEfl : public download::DownloadItem::Observer { download::DownloadUrlParameters::OnStartedCallback callback); bool TriggerDownloadCb(const GURL url); void OpenURL(const GURL url, const WindowOpenDisposition disposition); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void ShareLink(const GURL& url); #endif void DeletePopup(); diff --git a/tizen_src/ewk/efl_integration/eweb_context.cc b/tizen_src/ewk/efl_integration/eweb_context.cc index 8c13cac..45eb3f7 100644 --- a/tizen_src/ewk/efl_integration/eweb_context.cc +++ b/tizen_src/ewk/efl_integration/eweb_context.cc @@ -7,7 +7,7 @@ #include #include -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -46,7 +46,7 @@ #include "private/ewk_security_origin_private.h" #include "wrt/wrt_widget_host.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "base/command_line.h" #include "common/content_switches_efl.h" #include "content/common/content_client_export.h" @@ -66,7 +66,7 @@ using std::map; namespace { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) const char* const kDynamicPreloading = "DynamicPreloading"; typedef void (*DynamicPreloading)(void); #endif @@ -235,7 +235,7 @@ void EWebContext::SetWidgetInfo(const std::string& tizen_app_id, widget_theme_ = theme; widget_encoded_bundle_ = encoded_bundle; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); // Add the switches in here to load injected bundle in renderer thread // in single process mode @@ -249,19 +249,19 @@ void EWebContext::SetWidgetInfo(const std::string& tizen_app_id, command_line.AppendSwitchASCII(switches::kWidgetEncodedBundle, widget_encoded_bundle_); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) // Drop process privillages while web app is launching // from WRT process pool. It should be handled in webengine side // in product tv profile because this profile uses the zygote process. content::GetGenericZygote()->DropProcessPrivileges(tizen_app_id_); -#endif // OS_TIZEN_TV_PRODUCT +#endif // IS_TIZEN_TV_PRODUCT } else { // Drop process privillages while web app is launching // from WRT process pool. It is not necessary in single process mode, // because it is handled in crosswalk side in single process mode. content::GetGenericZygote()->DropProcessPrivileges(tizen_app_id_); } -#endif // OS_TIZEN +#endif // IS_TIZEN } void EWebContext::SendWrtMessage(const Ewk_Wrt_Message_Data& data) { @@ -300,13 +300,13 @@ EWebContext::EWebContext(const std::string& injectedBundlePath) EWebContext::EWebContext(bool incognito, const std::string& injectedBundlePath) : injected_bundle_path_(injectedBundlePath), -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) injected_bundle_handle_(nullptr), #endif widget_scale_(0), m_pixmap(0), inspector_server_(NULL) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // In order to support process pool for WRT, injected bundle should be // preloaded on zygote process after first intialization of EwkGlobalData. bool should_preload_injected_bundle = @@ -338,7 +338,7 @@ EWebContext::EWebContext(bool incognito, const std::string& injectedBundlePath) new EWebContextNotificationCallback(nullptr, nullptr, nullptr, nullptr)); tizen_extensible_.reset(TizenExtensible::create()); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (should_preload_injected_bundle) { base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); if (command_line.HasSwitch(switches::kSingleProcess)) { @@ -371,7 +371,7 @@ EWebContext::EWebContext(bool incognito, const std::string& injectedBundlePath) } EWebContext::~EWebContext() { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (injected_bundle_handle_) dlclose(injected_bundle_handle_); diff --git a/tizen_src/ewk/efl_integration/eweb_context.h b/tizen_src/ewk/efl_integration/eweb_context.h index 6b06804..73742b9 100644 --- a/tizen_src/ewk/efl_integration/eweb_context.h +++ b/tizen_src/ewk/efl_integration/eweb_context.h @@ -191,7 +191,7 @@ class EWebContext { std::string proxy_password_; std::string injected_bundle_path_; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void* injected_bundle_handle_; #endif diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index 57d0171..fbe8406 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -1638,7 +1638,7 @@ bool EWebView::GetSnapshotAsync( Evas_Object* EWebView::GetSnapshot(Eina_Rectangle rect) { Evas_Object* image = NULL; #if !defined(USE_AURA) -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) if (!rwhv() || !rwhv()->MakeCurrent()) return NULL; @@ -2351,7 +2351,7 @@ void EWebView::InitializeWindowTreeHost() { host_view->SetSize(bounds.size()); } -#if defined(OS_TIZEN) && !defined(EWK_BRINGUP) +#if BUILDFLAG(IS_TIZEN) && !defined(EWK_BRINGUP) void EWebView::cameraResultCb(service_h request, service_h reply, service_result_e result, diff --git a/tizen_src/ewk/efl_integration/eweb_view.h b/tizen_src/ewk/efl_integration/eweb_view.h index 7da9db9..56131ba 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.h +++ b/tizen_src/ewk/efl_integration/eweb_view.h @@ -505,14 +505,14 @@ class EWebView { #if !defined(USE_AURA) content::WebContentsViewEfl* GetWebContentsViewEfl() const; #endif -#if defined(OS_TIZEN) && !defined(EWK_BRINGUP) +#if BUILDFLAG(IS_TIZEN) && !defined(EWK_BRINGUP) static void cameraResultCb(service_h request, service_h reply, service_result_e result, void* data); #endif -#if defined(OS_TIZEN) && !defined(EWK_BRINGUP) +#if BUILDFLAG(IS_TIZEN) && !defined(EWK_BRINGUP) bool LaunchCamera(std::u16string mimetype); #endif #if !defined(USE_AURA) @@ -610,7 +610,7 @@ class EWebView { std::unique_ptr permission_popup_manager_; std::unique_ptr scroll_detector_; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) blink::mojom::FileChooserParams::Mode filechooser_mode_; #endif std::map void* EflExtensionHandle = 0; #endif @@ -190,7 +190,7 @@ EwkGlobalData* EwkGlobalData::GetInstance() { logging::SetLogItems(true, true, true, true); #endif -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) if (!EflExtensionHandle) EflExtensionHandle = dlopen("/usr/lib/libefl-extension.so.0", RTLD_LAZY); #endif diff --git a/tizen_src/ewk/efl_integration/locale_efl.cc b/tizen_src/ewk/efl_integration/locale_efl.cc index 873a4cf..23eb00d 100644 --- a/tizen_src/ewk/efl_integration/locale_efl.cc +++ b/tizen_src/ewk/efl_integration/locale_efl.cc @@ -16,11 +16,11 @@ #include "content/public/common/content_switches.h" #include "ui/base/resource/resource_bundle.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) typedef void keynode_t; #endif @@ -32,7 +32,7 @@ void ReloadCorrectPakForLocale() { if (!ui::ResourceBundle::HasSharedInstance()) return; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) std::string new_locale(vconf_get_str(VCONFKEY_LANGSET)); #else std::string new_locale("en-US"); @@ -72,7 +72,7 @@ void ReloadCorrectPakForLocale() { } void PlatformLanguageChanged(keynode_t* keynode, void* data) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) const char* lang = vconf_get_str(VCONFKEY_LANGSET); #else const char* lang = "en"; @@ -100,7 +100,7 @@ void Initialize() { bindtextdomain("WebKit", locale_dir.value().c_str()); PlatformLanguageChanged(0, 0); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) vconf_notify_key_changed(VCONFKEY_LANGSET, PlatformLanguageChanged, 0); #endif } diff --git a/tizen_src/ewk/efl_integration/permission_popup_manager.cc b/tizen_src/ewk/efl_integration/permission_popup_manager.cc index c2f28ec..190f40b 100755 --- a/tizen_src/ewk/efl_integration/permission_popup_manager.cc +++ b/tizen_src/ewk/efl_integration/permission_popup_manager.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif #include @@ -152,7 +152,7 @@ static void permissionCancelCallback( manager->Decide(false); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void permissionHwBackKeyCallback( void* data, Evas_Object* obj, void* event_info) { PermissionPopupManager* manager = static_cast(data); @@ -177,7 +177,7 @@ void PermissionPopupManager::ShowPermissionPopup(PermissionPopup* popup) { if (!SetLabelText(popup->GetMessage())) return; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(popup_, EEXT_CALLBACK_BACK, permissionHwBackKeyCallback, this); #endif diff --git a/tizen_src/ewk/efl_integration/popup_controller_efl.cc b/tizen_src/ewk/efl_integration/popup_controller_efl.cc index 5e63c3c..aa471d5 100644 --- a/tizen_src/ewk/efl_integration/popup_controller_efl.cc +++ b/tizen_src/ewk/efl_integration/popup_controller_efl.cc @@ -10,7 +10,7 @@ #include "popup_controller_efl.h" #include "ui/base/clipboard/clipboard_helper_efl.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // TODO: Webview and Rendering TG will implement following for Wayland. #if !defined(WAYLAND_BRINGUP) #include @@ -18,9 +18,9 @@ #include #else #include -#endif // OS_TIZEN +#endif // IS_TIZEN -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -58,7 +58,7 @@ void PopupControllerEfl::itemSelected( return; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) app_control_h svcHandle = 0; if (app_control_create(&svcHandle) < 0 || !svcHandle) { LOG(ERROR) << __PRETTY_FUNCTION__ << " : " << "could not create service."; @@ -172,7 +172,7 @@ void PopupControllerEfl::openPopup(const char* message) { full_content_ = std::string(message); content_ = std::string(message); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (content_.find("mailto:") != std::string::npos) { content_.erase(0, 7); content_type_ = EMAIL; @@ -272,7 +272,7 @@ void PopupControllerEfl::appendItems() { void PopupControllerEfl::addCallbacks() { // Close popup after tapping on outside of it evas_object_smart_callback_add(popup_, "block,clicked", close_cb, this); -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(popup_, EEXT_CALLBACK_BACK, close_cb, this); evas_object_focus_set(popup_, EINA_TRUE); #endif diff --git a/tizen_src/ewk/efl_integration/private/ewk_view_private.cc b/tizen_src/ewk/efl_integration/private/ewk_view_private.cc index 7b425c2..498c01a 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_view_private.cc +++ b/tizen_src/ewk/efl_integration/private/ewk_view_private.cc @@ -132,7 +132,7 @@ void handleEvasObjectResize(Evas_Object* o, Evas_Coord width, Evas_Coord height) return; } -#if defined(OS_TIZEN_TV_PRODUCT) && defined(EWK_BRINGUP) +#if BUILDFLAG(IS_TIZEN_TV) && defined(EWK_BRINGUP) // FIXME: Need to be checked from vd crosswalk or efl side as // to why web engine gets invalid size here if (width == 82 && height == 24) { diff --git a/tizen_src/ewk/efl_integration/public/ewk_context.cc b/tizen_src/ewk/efl_integration/public/ewk_context.cc index 1b017b7..57bd33d 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_context.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_context.cc @@ -43,7 +43,7 @@ using content::ContentBrowserClientEfl; using content::ContentMainDelegateEfl; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #include "browser/notification/notification_controller_efl.h" @@ -762,7 +762,7 @@ const char* ewk_context_proxy_bypass_rule_get(Ewk_Context* context) Eina_Bool ewk_context_proxy_default_auth_set(Ewk_Context* context, const char* username, const char* password) { -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) EINA_SAFETY_ON_NULL_RETURN_VAL(context, EINA_FALSE); context->SetProxyDefaultAuth(username, password); return EINA_TRUE; @@ -912,7 +912,7 @@ Eina_Bool ewk_context_sound_overlap_set(Ewk_Context* context, Eina_Bool enable) Eina_Bool ewk_context_app_control_set(const Ewk_Context* context, void* app_control) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) EINA_SAFETY_ON_NULL_RETURN_VAL(context, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(app_control, EINA_FALSE); diff --git a/tizen_src/ewk/efl_integration/public/ewk_context_menu.cc b/tizen_src/ewk/efl_integration/public/ewk_context_menu.cc index f36a847..6347a38 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_context_menu.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_context_menu.cc @@ -144,7 +144,7 @@ Eina_Bool ewk_context_menu_hide(Ewk_Context_Menu* menu) return false; } -#if defined(OS_TIZEN_TV) +#if BUILDFLAG(IS_TIZEN_TV) int ewk_context_menu_pos_x_get(Ewk_Context_Menu* menu) { LOG_EWK_API_MOCKUP(); @@ -156,4 +156,4 @@ int ewk_context_menu_pos_y_get(Ewk_Context_Menu* menu) LOG_EWK_API_MOCKUP(); return 0; } -#endif // OS_TIZEN_TV +#endif // IS_TIZEN_TV diff --git a/tizen_src/ewk/efl_integration/public/ewk_context_menu_product.h b/tizen_src/ewk/efl_integration/public/ewk_context_menu_product.h index 59a75c8..4d5ba0a 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_context_menu_product.h +++ b/tizen_src/ewk/efl_integration/public/ewk_context_menu_product.h @@ -33,6 +33,8 @@ #include "ewk_context_menu_internal.h" +#include "build/build_config.h" + #ifdef __cplusplus extern "C" { #endif @@ -109,7 +111,7 @@ EXPORT_API Eina_Bool ewk_context_menu_item_select(Ewk_Context_Menu *menu, Ewk_Co */ EXPORT_API Eina_Bool ewk_context_menu_hide(Ewk_Context_Menu *menu); -#if defined(OS_TIZEN_TV) +#if BUILDFLAG(IS_TIZEN_TV) /** * Gets the x_position of context menu. * @@ -125,7 +127,7 @@ EXPORT_API int ewk_context_menu_pos_x_get(Ewk_Context_Menu* menu); * @return the y_position of context menu on success or @c 0 on failure */ EXPORT_API int ewk_context_menu_pos_y_get(Ewk_Context_Menu* menu); -#endif // OS_TIZEN_TV +#endif // IS_TIZEN_TV #ifdef __cplusplus } diff --git a/tizen_src/ewk/efl_integration/public/ewk_media_playback_info.cc b/tizen_src/ewk/efl_integration/public/ewk_media_playback_info.cc index 91a50f8..980cc50 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_media_playback_info.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_media_playback_info.cc @@ -71,7 +71,7 @@ const int ewk_media_playback_info_video_id_get(Ewk_Media_Playback_Info* data) LOG_EWK_API_MOCKUP(); } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) Ewk_Media_Playback_Info* ewkMediaPlaybackInfoCreate(const int player_id, const char* url, const char* mime_type) diff --git a/tizen_src/ewk/efl_integration/public/ewk_media_playback_info_product.h b/tizen_src/ewk/efl_integration/public/ewk_media_playback_info_product.h index a2fe3af..895c9e0 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_media_playback_info_product.h +++ b/tizen_src/ewk/efl_integration/public/ewk_media_playback_info_product.h @@ -35,6 +35,8 @@ #include #include +#include "build/build_config.h" + #ifdef __cplusplus extern "C" { #endif @@ -118,7 +120,7 @@ EXPORT_API void ewk_media_playback_info_drm_info_set( Ewk_Media_Playback_Info* data, const char* drm_info); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) Ewk_Media_Playback_Info* ewkMediaPlaybackInfoCreate(const int player_id, const char* url, const char* mime_type); diff --git a/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info.cc b/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info.cc index 14278e3..3a681da 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info.cc @@ -53,7 +53,7 @@ const void* ewk_media_subtitle_data_get(Ewk_Media_Subtitle_Data *data) return NULL; } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) Ewk_Media_Subtitle_Info* ewkMediaSubtitleInfoCreate(int id, const char* url, const char* lang, const char* label) { LOG_EWK_API_MOCKUP(); diff --git a/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info_product.h b/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info_product.h index e9b1619..678eb2d 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info_product.h +++ b/tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info_product.h @@ -35,6 +35,8 @@ #include #include +#include "build/build_config.h" + #ifdef __cplusplus extern "C" { #endif @@ -115,7 +117,7 @@ EXPORT_API unsigned ewk_media_subtitle_data_size_get(Ewk_Media_Subtitle_Data *da */ EXPORT_API const void* ewk_media_subtitle_data_get(Ewk_Media_Subtitle_Data *data); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) Ewk_Media_Subtitle_Info* ewkMediaSubtitleInfoCreate(int id, const char* url, const char* lang, const char* label); diff --git a/tizen_src/ewk/efl_integration/public/ewk_view.cc b/tizen_src/ewk/efl_integration/public/ewk_view.cc index a95082e5..fb078f9 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_view.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_view.cc @@ -1241,7 +1241,7 @@ Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool return false; } -#if defined(OS_TIZEN_TV) +#if BUILDFLAG(IS_TIZEN_TV) Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const char* url) { LOG_EWK_API_MOCKUP(); @@ -1388,11 +1388,6 @@ void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value LOG_EWK_API_MOCKUP(); } -Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload) { - LOG_EWK_API_MOCKUP(); - return false; -} - void ewk_view_offscreen_rendering_enabled_set(Evas_Object* o, Eina_Bool enabled) { LOG_EWK_API_MOCKUP(); diff --git a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc index 01ac6ff..be5d023 100644 --- a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc +++ b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc @@ -2,9 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include #include -#if defined(OS_TIZEN) +#include + +#include "build/build_config.h" + +#if BUILDFLAG(IS_TIZEN) #include #endif diff --git a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc index ce8ec4a..2836a30 100644 --- a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc +++ b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc @@ -36,7 +36,7 @@ #include "third_party/blink/public/common/input/web_input_event.h" #include "url/gurl.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #include #endif @@ -78,7 +78,7 @@ void WritePdfDataToFile(printing::MetafileSkia* metafile, delete metafile; } -#if defined(OS_TIZEN) && defined(TIZEN_MULTIMEDIA_SUPPORT) +#if BUILDFLAG(IS_TIZEN) && defined(TIZEN_MULTIMEDIA_SUPPORT) static const MediaStreamDevice* GetRequestedVideoDevice( const std::string& device_id) { const MediaStreamDevices& video_devices = @@ -289,7 +289,7 @@ void WebContentsDelegateEfl::RequestMediaAccessAllow( } if (request.video_type == MEDIA_DEVICE_VIDEO_CAPTURE) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) const MediaStreamDevice* video_device = GetRequestedVideoDevice(request.requested_video_device_id); if (video_device) { @@ -489,7 +489,7 @@ void WebContentsDelegateEfl::RequestCertificateConfirm( } void WebContentsDelegateEfl::ActivateContents(WebContents* contents) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) app_control_h app_control = nullptr; int ret = app_control_create(&app_control); if (ret != APP_CONTROL_ERROR_NONE) { diff --git a/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.cc b/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.cc index 312827e..6906770 100644 --- a/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.cc +++ b/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.cc @@ -14,7 +14,7 @@ namespace { const char* const SET_WIDGET_INFO_FUNCTION = "DynamicSetWidgetInfo"; const char* const DATABASE_ATTACH_FUNCTION = "DynamicDatabaseAttach"; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) const char* const URL_PARSING_FUNCTION = "DynamicTVUrlParsing"; #else const char* const URL_PARSING_FUNCTION = "DynamicUrlParsing"; @@ -100,7 +100,7 @@ void WrtDynamicPlugin::ParseURL(std::string* old_url, if (!parseURL_ || !database_attach_) return; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) parseURL_(old_url, new_url, tizen_app_id, is_encrypted_file); #else parseURL_(old_url, new_url, tizen_app_id); diff --git a/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h b/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h index 0307361..59e3af1 100644 --- a/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h +++ b/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h @@ -7,13 +7,14 @@ #include #include +#include "build/build_config.h" #include "v8/include/v8.h" #include "wrt/dynamicplugin.h" struct Ewk_Wrt_Message_Data; typedef void (*OnIPCMessageFun)(const Ewk_Wrt_Message_Data& data); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) typedef void (*ParseUrlFun)(std::string* old_url, std::string* new_url, const char* tizen_app_id, diff --git a/tizen_src/ewk/efl_webview_app/app.c b/tizen_src/ewk/efl_webview_app/app.c index 8c0eeef..374e6f7 100644 --- a/tizen_src/ewk/efl_webview_app/app.c +++ b/tizen_src/ewk/efl_webview_app/app.c @@ -12,7 +12,7 @@ #include #include -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -25,7 +25,7 @@ #include "public/EWebKit_product.h" #include "tizen/system_info.h" -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) #include #endif @@ -56,7 +56,7 @@ static Ewk_Cookie_Accept_Policy set_cookie_policy; static Eina_List* application_cache_origins = NULL; static Eina_List* web_database_origins = NULL; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static haptic_device_h g_haptic_handle; static Ecore_Timer *g_haptic_timer_id; static haptic_effect_h g_haptic_effect; @@ -125,7 +125,7 @@ static void __back_forward_list_changed_cb(void *data, Evas_Object *obj, void *e static Eina_Bool __mime_override_cb(const char* url, const char *mime, char **new_mime, void* user_data); static void __console_message_cb(void *data, Evas_Object *obj, void *event_info); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static Eina_Bool __vibration_timeout_cb(void *data); static void __vibration_on_cb(uint64_t vibration_time, void *data); static void __vibration_off_cb(void *data); @@ -357,7 +357,7 @@ static void _evas_close_cb(Ecore_Evas* ee) ecore_main_loop_quit(); } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) static void _create_mouse_cursor(Evas_Object* window) { #if TIZEN_VERSION_AT_LEAST(5, 0, 0) Ecore_Wl2_Display* wl2_display = ecore_wl2_connected_display_get(NULL); @@ -497,7 +497,7 @@ int main(int argc, char** argv) view = ewk_view_add_with_context(e, context); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // we should always go fullscreen on device. ecore_evas_fullscreen_set(ee, EINA_TRUE); #else @@ -568,7 +568,7 @@ int main(int argc, char** argv) ewk_view_notification_permission_callback_set(view, __notification_permission_cb, 0); ewk_view_authentication_callback_set(view, __auth_challenge_cb, NULL); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsWearableProfile()) { ewk_context_vibration_client_callbacks_set(context, __vibration_on_cb, __vibration_off_cb, NULL); } @@ -588,7 +588,7 @@ int main(int argc, char** argv) set_url_from_user_input(view, start_url); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) _create_mouse_cursor(e); #endif ecore_evas_show(ee); @@ -797,7 +797,7 @@ void __create_window_cb(void *data, Evas_Object *obj, void *event_info) // Override default handler because it terminates the event loop. ecore_evas_callback_delete_request_set(ee, delete_popup_window); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) _create_mouse_cursor(e); #endif @@ -1330,7 +1330,7 @@ void __edge_bottom_cb(void* data, Evas_Object* obj, void* event_info) printf("Edge_Bottom Notification\n"); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) Eina_Bool __vibration_timeout_cb(void *data) { if (IsMobileProfile() || IsWearableProfile()) { diff --git a/tizen_src/ewk/efl_webview_app/mini_browser.c b/tizen_src/ewk/efl_webview_app/mini_browser.c index 63d2b47..15e7863 100644 --- a/tizen_src/ewk/efl_webview_app/mini_browser.c +++ b/tizen_src/ewk/efl_webview_app/mini_browser.c @@ -27,7 +27,7 @@ #include "tizen/system_info.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #include #include @@ -35,7 +35,7 @@ #include "build/tizen_version.h" #endif -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) #include #endif @@ -44,11 +44,11 @@ #define TOOL_BOX_HEIGHT 150 #define URL_BOX_HEIGHT 75 // SIP height in TV -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #define IMF_START_POINT_Y 635 #endif -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static haptic_device_h s_haptic_handle; // haptic handle. static Ecore_Timer* s_haptic_timer_id; // Timer ID. static haptic_effect_h s_haptic_effect; // haptic_effect struct. @@ -59,7 +59,7 @@ static char* start_url = NULL; static int is_imf_shown = 0; //Added for SIP status static int im_context_status = 0; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static Evas_Object * curr_focus = NULL; #endif // We are just following Tizen platform application pattern. @@ -158,7 +158,7 @@ static void __uri_changed_cb (void *data, Evas_Object *obj, void *even static void __title_changed_cb (void *data, Evas_Object *obj, void *event_info); static void __load_progress_cb (void *data, Evas_Object *obj, void *event_info); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void _url_clicked_cb (void *data, Evas_Object *obj, void *event_info); static void _webview_mouse_down_cb (void *data, Evas *e, Evas_Object *obj, void *event_info); #endif @@ -183,7 +183,7 @@ static void __popup_cancel_url_cb(void *data, Evas_Object *obj, void *event_info static void url_hit_cb(void *data, Evas_Object *obj, void *event_info); static void _imf_panel_state_cb (void *data, Ecore_IMF_Context *ctx, int value); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void _imf_panel_changed_cb(void *data, Evas_Object *obj, Eina_Rectangle *rect); #endif @@ -197,7 +197,7 @@ static void _trace_start_btn_cb (void *data, Evas_Object *btn, void *ev); static void _trace_stop_btn_cb (void *data, Evas_Object *btn, void *ev); static void hide_imf_panel(app_data * data); -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) static void _back_hard_key_cb(void *data, Evas_Object *btn, void *ev); static void _on_keyup_cb(void *data, Evas *e, Evas_Object *btn, void *event_info); static void _screenshot_captured_cb(Evas_Object* image, void* user_data); @@ -222,7 +222,7 @@ static Eina_Bool __javascript_alert_cb(Evas_Object* o, const char* alert_text, v static Eina_Bool __javascript_confirm_cb(Evas_Object* o, const char* message, void* user_data); static Eina_Bool __javascript_prompt_cb(Evas_Object* o, const char* message, const char* default_value, void* user_data); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static Eina_Bool __vibration_timeout_cb(void *data); static void __vibration_on_cb(uint64_t vibration_time, void *data); static void __vibration_off_cb(void *data); @@ -230,7 +230,7 @@ static void __vibration_off_cb(void *data); static void get_main_window_size(int *changed_ang, int *width, int *height); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // To avoid implicit function declaration int setenv(const char *name, const char *value, int overwrite); #endif @@ -289,7 +289,7 @@ static void set_url_from_user_input(Evas_Object* webview, const char* url) eina_strbuf_free(full_url); } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) static void _create_mouse_cursor(Evas_Object* window) { #if TIZEN_VERSION_AT_LEAST(5, 0, 0) Ecore_Wl2_Display* wl2_display = ecore_wl2_connected_display_get(NULL); @@ -374,7 +374,7 @@ static Evas_Object* _create_main_window(void *data) elm_win_resize_object_add(window, bg); elm_bg_color_set(bg, 225, 225, 225); evas_object_show(bg); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) _create_mouse_cursor(window); #endif } @@ -439,7 +439,7 @@ Evas_Object* _create_view(Evas_Object *parent, app_data *data) return webview; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // To bring back toolbar to original position when SID_DONE/SID_CANCEL is pressed static void _SIP_close_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { @@ -606,14 +606,14 @@ Evas_Object* _create_url_bar(Evas_Object *parent, int width, const char *start_u elm_box_pack_end(data->url_box, data->url_entry); evas_object_show(data->url_entry); evas_object_smart_callback_add(data->url_entry, "activated", url_hit_cb, data); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsTvProfile()) { evas_object_event_callback_add(data->url_entry, EVAS_CALLBACK_KEY_DOWN, _SIP_close_cb, data); evas_object_smart_callback_add(data->url_entry, "clicked", _url_clicked_cb, data); } #endif elm_entry_prediction_allow_set(data->url_entry, EINA_FALSE); -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(data->url_entry, EEXT_CALLBACK_BACK, _back_hard_key_cb, data); #endif // Add imf event @@ -695,7 +695,7 @@ static void _register_rotate_callback(Evas_Object *main_window, void *user_data) evas_object_smart_callback_add(main_window, "wm,rotation,changed", __br_rotate_cb, user_data); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void _on_focus_in_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { if (IsMobileProfile() || IsWearableProfile()) { @@ -737,7 +737,7 @@ static bool __br_app_create(void *data) evas_object_show(ad->main_window); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) evas_object_event_callback_add(ad->webview, EVAS_CALLBACK_KEY_UP, _on_keyup_cb , ad); #endif @@ -888,7 +888,7 @@ void __im_context_close_cb(void *data, Evas_Object *obj, void *event_info) im_context_status = 0; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void _imf_panel_changed_cb(void *data, Evas_Object *obj, Eina_Rectangle *rect) { if (IsMobileProfile() || IsWearableProfile()) { @@ -1160,7 +1160,7 @@ void zoomout_hit_cb(void *data, Evas_Object *obj, void *event_info) hide_imf_panel(ad); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) /* On Click to Urlbar need to move Toolbar top of SIP * so that SIP and toolbar should not overlap */ @@ -1286,7 +1286,7 @@ void _reload_btn_cb(void *data, Evas_Object *btn, void *ev) hide_imf_panel(ad); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void _on_keyup_cb(void *data, Evas *e, Evas_Object *btn, void *event_info) { // Make snapshot only on menu press button. @@ -1343,7 +1343,7 @@ void __navigation_policy_decide_cb(void *data, Evas_Object *obj, void *ev) ewk_policy_decision_use(decision); } -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) void _back_hard_key_cb(void *data, Evas_Object *btn, void *ev) { app_data *ad = (app_data*) data; @@ -1608,7 +1608,7 @@ Eina_Bool __javascript_prompt_cb(Evas_Object* o, const char* message, const char return EINA_TRUE; } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // To support vibration: this is a timeout callback. // The original source code author is kinipk. Eina_Bool __vibration_timeout_cb(void *data) @@ -1673,7 +1673,7 @@ void __vibration_off_cb(void *data) s_haptic_handle = NULL; } } -#endif // #if caluse of #if defined(OS_TIZEN)... +#endif // #if caluse of #if BUILDFLAG(IS_TIZEN)... void mini_find_word(const char *word, Eina_Bool forward, Evas_Smart_Cb found_cb, void *data) { diff --git a/tizen_src/ewk/ubrowser/browser.cc b/tizen_src/ewk/ubrowser/browser.cc index 2145c1a..b19985e 100644 --- a/tizen_src/ewk/ubrowser/browser.cc +++ b/tizen_src/ewk/ubrowser/browser.cc @@ -19,7 +19,7 @@ static std::string kHomePage = "http://www.google.com"; static int kDefaultMobileWindowWidth = 360; static int kDefaultMobileWindowHeight = 640; -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) static std::string kDefaultCookiePath = "/home/owner/.cookie"; static std::string kDefaultCertificatePath = "/usr/share/cert/webbrowser.pem"; static double kDefaultZoomFactor = 1.5; @@ -36,9 +36,9 @@ static unsigned kInspectorServerPort = 7777; Window* Browser::selected_window_ = NULL; static std::string GetConfigPath() { -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) return kDefaultCookiePath; -#elif defined(OS_TIZEN) && defined(TIZEN_APP) +#elif BUILDFLAG(IS_TIZEN) && defined(TIZEN_APP) // Since ubrowser is not being created in Tizen specific way // app_get_data_path() returns null. // TODO: determine proper path using tizen API once TIZEN_APP @@ -74,7 +74,7 @@ Browser::Browser(bool desktop, tracing_enabled_(false), user_agent_(ua), tizen_version_(tizen_version), -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) haptic_timer_id_(nullptr), haptic_handle_(nullptr), haptic_effect_(nullptr), @@ -122,7 +122,7 @@ Browser::Browser(bool desktop, ewk_context_cache_model_set(ctx, EWK_CACHE_MODEL_PRIMARY_WEBBROWSER); -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) ewk_context_default_zoom_factor_set(ctx, kDefaultZoomFactor); ewk_context_certificate_file_set(ctx, kDefaultCertificatePath.c_str()); ewk_context_cache_disabled_set(ctx, EINA_FALSE); @@ -299,7 +299,7 @@ void Browser::StopTracing() { void Browser::StartVibration(uint64_t duration) { log_trace("%s: %d", __PRETTY_FUNCTION__, duration); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsWearableProfile()) { if (haptic_timer_id_) { ecore_timer_del(haptic_timer_id_); @@ -326,7 +326,7 @@ void Browser::StartVibration(uint64_t duration) { void Browser::StopVibration() { log_trace("%s", __PRETTY_FUNCTION__); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsWearableProfile()) { if (haptic_timer_id_) { ecore_timer_del(haptic_timer_id_); @@ -459,7 +459,7 @@ void Browser::OnSignalHandler(int sig) { } void Browser::Exit() const { -#if defined(OS_TIZEN) && defined(TIZEN_APP) +#if BUILDFLAG(IS_TIZEN) && defined(TIZEN_APP) ui_app_exit(); #else elm_exit(); diff --git a/tizen_src/ewk/ubrowser/browser.h b/tizen_src/ewk/ubrowser/browser.h index b882e8b..4247e72 100644 --- a/tizen_src/ewk/ubrowser/browser.h +++ b/tizen_src/ewk/ubrowser/browser.h @@ -9,9 +9,10 @@ #include #include +#include "build/build_config.h" #include "window.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif @@ -90,7 +91,7 @@ class Browser { std::string user_agent_; std::string tizen_version_; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) Ecore_Timer* haptic_timer_id_; haptic_device_h haptic_handle_; haptic_effect_h haptic_effect_; diff --git a/tizen_src/ewk/ubrowser/main.cc b/tizen_src/ewk/ubrowser/main.cc index 94b53e2..0c598c6 100644 --- a/tizen_src/ewk/ubrowser/main.cc +++ b/tizen_src/ewk/ubrowser/main.cc @@ -7,9 +7,10 @@ #include #include #include -#if defined(OS_TIZEN) +#include "build/build_config.h" +#if BUILDFLAG(IS_TIZEN) #include -#endif // OS_TIZEN +#endif // IS_TIZEN #include "browser.h" #include "logger.h" @@ -36,7 +37,7 @@ std::string user_agent; std::string tizen_version; Browser::GUILevel gui_level = Browser::UBROWSER_GUI_LEVEL_URL_ONLY; double zoom_factor = 0; -#if defined(OS_TIZEN) && !defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN) && !BUILDFLAG(IS_TIZEN_TV) int desktop_mode = 0; #else int desktop_mode = 1; @@ -193,7 +194,7 @@ static void app_terminate(void* data) { ewk_shutdown(); } -#if defined(OS_TIZEN) && defined(TIZEN_APP) +#if BUILDFLAG(IS_TIZEN) && defined(TIZEN_APP) static void app_pause(void* data) { log_debug("Tizen uBrowser pause"); } @@ -201,7 +202,7 @@ static void app_pause(void* data) { static void app_resume(void* data) { log_debug("Tizen uBrowser resume"); } -#endif // OS_TIZEN +#endif // IS_TIZEN // Passes user args and adds custom ubrowser flags. static void set_arguments(int argc, char** argv) { @@ -215,7 +216,7 @@ static void set_arguments(int argc, char** argv) { ubrowser_argv.push_back(const_cast(arg)); // Add mobile flags for desktop ubrowser --mobile|-m. -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) if (!desktop_mode) { for (auto arg : kMobileFlags) ubrowser_argv.push_back(const_cast(arg)); @@ -236,7 +237,7 @@ int main(int argc, char** argv) { // Enable the section below once ubrowser is ready // to replace mini_browser. For the code below to work // proper manifest needs to be added to the rpm package -#if defined(OS_TIZEN) && defined(TIZEN_APP) +#if BUILDFLAG(IS_TIZEN) && defined(TIZEN_APP) ui_app_lifecycle_callback_s ops; memset(&ops, 0, sizeof(ops)); diff --git a/tizen_src/ewk/ubrowser/window.cc b/tizen_src/ewk/ubrowser/window.cc index a7cf4a6..8e17761 100644 --- a/tizen_src/ewk/ubrowser/window.cc +++ b/tizen_src/ewk/ubrowser/window.cc @@ -17,22 +17,22 @@ #include "tizen/system_info.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) #include "ecore_x_wayland_wrapper.h" #include #endif -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #if !defined(EWK_BRINGUP) //#include "tizen_src/ewk/efl_integration/public/ewk_media_playback_info.h" #endif static Ewk_Application_Type application_type = EWK_APPLICATION_TYPE_OTHER; #endif -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) #if !defined(EWK_BRINGUP) #include "tizen_src/ewk/efl_integration/public/ewk_media_subtitle_info.h" #endif @@ -133,7 +133,7 @@ Window::Window(Browser& browser, int width, int height, bool incognito) &Window::OnNewWindowRequest, this); evas_object_smart_callback_add(web_view_, "console,message", &Window::OnConsoleMessage, NULL); -#if defined(TIZEN_TBM_SUPPORT) && defined(OS_TIZEN_TV_PRODUCT) +#if defined(TIZEN_TBM_SUPPORT) && BUILDFLAG(IS_TIZEN_TV) evas_object_smart_callback_add(web_view_, "notify,video,texturing", &Window::OnVideotexturing, NULL); #endif @@ -154,12 +154,12 @@ Window::Window(Browser& browser, int width, int height, bool incognito) evas_object_smart_callback_add(web_view_, "before,repost,warning,show", &Window::OnBeforeFormRepostWarningShow, this); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) if (IsTvProfile()) { evas_object_event_callback_add(web_view_, EVAS_CALLBACK_KEY_DOWN, &Window::OnKeyDown, this); if (application_type == EWK_APPLICATION_TYPE_HBBTV) { -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) evas_object_smart_callback_add(web_view_, "notify,subtitle,play", &Window::On_Notify_Subtitle_Play, this); evas_object_smart_callback_add(web_view_, "notify,subtitle,stop", @@ -203,7 +203,7 @@ Window::Window(Browser& browser, int width, int height, bool incognito) // Auto fit is already turned on for mobile, enable it for "ubrowser --mobile" as well. ewk_settings_auto_fitting_set(GetEwkSettings(), !browser_.IsDesktop()); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_add(window_, EEXT_CALLBACK_BACK, &Window::OnHWBack, this); #endif @@ -222,7 +222,7 @@ Window::Window(Browser& browser, int width, int height, bool incognito) EnableMouseEvents(browser_.IsDesktop()); EnableTouchEvents(!browser_.IsDesktop()); } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) CreateMouseCursor(); #endif @@ -235,7 +235,7 @@ Window::~Window() { evas_object_del(web_view_); delete ui_; -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) eext_object_event_callback_del(window_, EEXT_CALLBACK_BACK, &Window::OnHWBack); #endif @@ -408,7 +408,7 @@ void Window::SetAutoRotate() { (sizeof(rots) / sizeof(int))); } -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void Window::On_Video_Playback_Load(void* data, Evas_Object*, void* event_info) { @@ -469,9 +469,9 @@ void Window::OnVideotexturing(void* data, Evas_Object*, void* event_info) { log_message(INFO, true, "%s", __PRETTY_FUNCTION__); } #endif -#endif // defined(OS_TIZEN_TV_PRODUCT) +#endif // BUILDFLAG(IS_TIZEN_TV) -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void Window::current_time_call(Evas_Object*, double ct, void* user_data) { double timestamp = ct; log_trace("<< current_time_call : timestamp (%f)\n", timestamp); @@ -581,7 +581,7 @@ void Window::OnFormRepostWarningShow(void* data, OnUserFormRepostDecisionTaken, request); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void Window::OnKeyDown(void* data, Evas_Object*, Evas_Object* obj, @@ -604,7 +604,7 @@ void Window::OnKeyDown(void* data, } #endif -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void Window::CreateMouseCursor() { log_trace("%s", __PRETTY_FUNCTION__); #if TIZEN_VERSION_AT_LEAST(5, 0, 0) @@ -765,7 +765,7 @@ void Window::OnOrientationChanged(void* data, Evas_Object *obj, void* event) { ewk_view_orientation_send(thiz->web_view_, rotation); } -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) void Window::OnHWBack(void* data, Evas_Object*, void*) { Window* thiz = static_cast(data); log_trace("%s", __PRETTY_FUNCTION__); diff --git a/tizen_src/ewk/ubrowser/window.h b/tizen_src/ewk/ubrowser/window.h index 52bd135..eaff40a 100644 --- a/tizen_src/ewk/ubrowser/window.h +++ b/tizen_src/ewk/ubrowser/window.h @@ -10,6 +10,8 @@ #include #include +#include "build/build_config.h" + class Browser; class WindowUI; @@ -80,7 +82,7 @@ class Window { int b, int a, void* data); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void OnHWBack(void*, Evas_Object*, void*); #endif @@ -96,10 +98,10 @@ class Window { void*); #endif -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) static void OnKeyDown(void*, Evas*, Evas_Object*, void*); #endif -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) static void On_Notify_Subtitle_Play(void*, Evas_Object*, void*); static void On_Notify_Subtitle_Stop(void*, Evas_Object*, void*); static void On_Notify_Video_Pause(void*, Evas_Object*, void*); @@ -116,7 +118,7 @@ class Window { static void OnVideotexturing(void*, Evas_Object*, void*); #endif // defined(TIZEN_TBM_SUPPORT) #endif -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) void CreateMouseCursor(); #endif Browser& browser_; diff --git a/tizen_src/ewk/ubrowser/window_ui.cc b/tizen_src/ewk/ubrowser/window_ui.cc index 3123a58..d2145f7 100644 --- a/tizen_src/ewk/ubrowser/window_ui.cc +++ b/tizen_src/ewk/ubrowser/window_ui.cc @@ -35,7 +35,7 @@ WindowUI::WindowUI(Window& window, Browser& browser) back_button_(nullptr), active_popup_(nullptr), menu_(nullptr), -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) should_show_label_(true), #else should_show_label_(browser_.IsDesktop()), @@ -262,7 +262,7 @@ Evas_Object* WindowUI::CreateExtraActionsMenu(Evas_Object* parent) { elm_ctxpopup_item_append(menu_, "Use Google data proxy", NULL, &WindowUI::OnUseGoogleDataProxy, this); -#if !defined(OS_TIZEN) +#if !BUILDFLAG(IS_TIZEN) elm_ctxpopup_item_append(menu_, "Simulate screen rotation", NULL, &WindowUI::OnRotate, this); #endif diff --git a/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_closed.cpp b/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_closed.cpp index 155cf3e..9d3d416 100644 --- a/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_closed.cpp +++ b/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_closed.cpp @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) #include "ecore_x_wayland_wrapper.h" // using scim to simulate keyboard typing #include @@ -74,7 +74,7 @@ TEST_F(utc_blink_cb_editorclient_candidate_closed, callback) ASSERT_EQ(utc_blink_ewk_base::Success, EventLoopStart()) << "editorclient,ime,opened smart callback timeout"; } -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) scim::HelperAgent agent; { @@ -113,7 +113,7 @@ TEST_F(utc_blink_cb_editorclient_candidate_closed, callback) agent.close_connection(); -#else // OS_TIZEN +#else // IS_TIZEN ASSERT_TRUE(false) << "This TC won't work outside Tizen OS"; -#endif // OS_TIZEN +#endif // IS_TIZEN } diff --git a/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_opened.cpp b/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_opened.cpp index 60c6fac4..7a90efb0 100644 --- a/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_opened.cpp +++ b/tizen_src/ewk/unittest/utc_blink_cb_editorclient_candidate_opened.cpp @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) #include "ecore_x_wayland_wrapper.h" // using scim to simulate keyboard typing #include @@ -73,7 +73,7 @@ TEST_F(utc_blink_cb_editorclient_candidate_opened, callback) ASSERT_EQ(utc_blink_ewk_base::Success, EventLoopStart()) << "editorclient,ime,opened smart callback timeout"; } -#ifdef OS_TIZEN +#if BUILDFLAG(IS_TIZEN) { Display* display = static_cast(ecore_x_display_get()); ASSERT_TRUE(display) << "No X11 display available!"; @@ -104,7 +104,7 @@ TEST_F(utc_blink_cb_editorclient_candidate_opened, callback) // wait for candidate to show ASSERT_EQ(utc_blink_ewk_base::Success, EventLoopStart()) << "editorclient,candidate,opened smart callback timeout"; } -#else // OS_TIZEN - ASSERT_TRUE(false) << "This TC won't work outside Tizen OS"; -#endif // OS_TIZEN +#else // IS_TIZEN + ASSERT_TRUE(false) << "This TC won't work outside Tizen OS"; +#endif // IS_TIZEN } diff --git a/ui/aura/window.cc b/ui/aura/window.cc index 7e60285..251266b 100644 --- a/ui/aura/window.cc +++ b/ui/aura/window.cc @@ -786,7 +786,7 @@ void Window::Focus() { client->FocusWindow(this); } -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) void Window::LostFocus() { client::FocusClient* client = client::GetFocusClient(this); DCHECK(client); diff --git a/ui/aura/window.h b/ui/aura/window.h index a3304de..d4b298d 100644 --- a/ui/aura/window.h +++ b/ui/aura/window.h @@ -421,7 +421,7 @@ class AURA_EXPORT Window : public ui::LayerDelegate, // Claims focus. void Focus(); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) // Focus lost. void LostFocus(); #endif diff --git a/ui/base/ime/linux/input_method_auralinux.cc b/ui/base/ime/linux/input_method_auralinux.cc index b00ca80..28633dc 100644 --- a/ui/base/ime/linux/input_method_auralinux.cc +++ b/ui/base/ime/linux/input_method_auralinux.cc @@ -16,7 +16,7 @@ #include "ui/base/ime/text_input_flags.h" #include "ui/events/event.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "ui/ozone/platform/efl/efl_input_method_context.h" #endif @@ -53,7 +53,7 @@ InputMethodAuraLinux::InputMethodAuraLinux( text_input_type_(TEXT_INPUT_TYPE_NONE), is_sync_mode_(false), composition_changed_(false) { -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) context_ = CreateEflInputMethodContext(ime_key_event_dispatcher); #else context_ = CreateLinuxInputMethodContext(this); diff --git a/ui/events/event.h b/ui/events/event.h index 10f232b..fc78a03 100644 --- a/ui/events/event.h +++ b/ui/events/event.h @@ -907,7 +907,7 @@ class EVENTS_EXPORT KeyEvent : public Event { std::string ToString() const override; std::unique_ptr Clone() const override; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) bool is_system_key = false; #endif diff --git a/ui/gfx/gpu_fence.cc b/ui/gfx/gpu_fence.cc index b02e28a..7e4e0b8 100644 --- a/ui/gfx/gpu_fence.cc +++ b/ui/gfx/gpu_fence.cc @@ -9,7 +9,7 @@ #include "base/time/time.h" #include "build/build_config.h" -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "third_party/libsync/src/include/sync/sync.h" #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) #include diff --git a/ui/gfx/native_widget_types.h b/ui/gfx/native_widget_types.h index eb6ca08..39c826d 100644 --- a/ui/gfx/native_widget_types.h +++ b/ui/gfx/native_widget_types.h @@ -40,7 +40,7 @@ // 'views' and with our Chrome UI code where the elements are also called // 'views'. -#if defined(USE_AURA) || defined(USE_EFL) +#if defined(USE_AURA) || BUILDFLAG(IS_EFL) namespace aura { class Window; } @@ -51,7 +51,7 @@ namespace mojom { enum class CursorType; } } // namespace ui -#endif // defined(USE_AURA) || defined(USE_EFL) +#endif // defined(USE_AURA) || BUILDFLAG(IS_EFL) #if BUILDFLAG(IS_WIN) typedef struct HFONT__* HFONT; @@ -193,7 +193,7 @@ typedef ui::WindowAndroid* NativeWindow; typedef base::android::ScopedJavaGlobalRef NativeEvent; constexpr NativeView kNullNativeView = nullptr; constexpr NativeWindow kNullNativeWindow = nullptr; -#elif defined(USE_EFL) +#elif BUILDFLAG(IS_EFL) typedef ui::Cursor NativeCursor; typedef void* NativeView; typedef void* NativeWindow; @@ -226,7 +226,7 @@ typedef UnimplementedNativeViewAccessible* NativeViewAccessible; #endif // A constant value to indicate that gfx::NativeCursor refers to no cursor. -#if defined(USE_AURA) || defined(USE_EFL) +#if defined(USE_AURA) || BUILDFLAG(IS_EFL) const ui::mojom::CursorType kNullCursor = static_cast(-1); #else diff --git a/ui/gl/gl_context_egl.cc b/ui/gl/gl_context_egl.cc index 320dbea..c33d2af 100644 --- a/ui/gl/gl_context_egl.cc +++ b/ui/gl/gl_context_egl.cc @@ -180,7 +180,7 @@ bool GLContextEGL::Initialize(GLSurface* compatible_surface, bool is_swangle = IsSoftwareGLImplementation(GetGLImplementationParts()); -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) // Though below extension is supported on TV, enabling it is causing problems // like white screen on page load. So disable it for TIZEN profiles. gl_display_->ext->b_EGL_EXT_create_context_robustness = false; diff --git a/ui/gl/gl_switches.cc b/ui/gl/gl_switches.cc index 3656cb3..da109f0 100644 --- a/ui/gl/gl_switches.cc +++ b/ui/gl/gl_switches.cc @@ -11,7 +11,7 @@ #include "base/android/build_info.h" #endif -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include "third_party/angle/src/gpu_info_util/SystemInfo.h" #include "third_party/vulkan-deps/vulkan-headers/src/include/vulkan/vulkan_core.h" #elif BUILDFLAG(IS_LINUX) diff --git a/ui/ozone/platform/wayland/gpu/wayland_gl_egl_utility.cc b/ui/ozone/platform/wayland/gpu/wayland_gl_egl_utility.cc index c71eb46..0a588c0 100644 --- a/ui/ozone/platform/wayland/gpu/wayland_gl_egl_utility.cc +++ b/ui/ozone/platform/wayland/gpu/wayland_gl_egl_utility.cc @@ -6,6 +6,8 @@ #include +#include "build/build_config.h" + // From ANGLE's egl/eglext.h. Follows the same approach as in // ui/gl/gl_surface_egl.cc #ifndef EGL_ANGLE_platform_angle_device_type_swiftshader @@ -23,7 +25,7 @@ #define EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE 0x34A5 #endif /* EGL_ANGLE_platform_angle_vulkan */ -#if defined(OS_TIZEN) +#if BUILDFLAG(IS_TIZEN) #include #endif diff --git a/ui/ozone/platform/wayland/host/wayland_output.cc b/ui/ozone/platform/wayland/host/wayland_output.cc index 40ba262..2df38c9 100644 --- a/ui/ozone/platform/wayland/host/wayland_output.cc +++ b/ui/ozone/platform/wayland/host/wayland_output.cc @@ -219,7 +219,7 @@ void WaylandOutput::OutputHandleDone(void* data, struct wl_output* wl_output) { void WaylandOutput::OutputHandleScale(void* data, struct wl_output* wl_output, int32_t factor) { -#if defined(OS_TIZEN_TV_PRODUCT) +#if BUILDFLAG(IS_TIZEN_TV) if (!factor) return; #endif diff --git a/ui/platform_window/platform_window.h b/ui/platform_window/platform_window.h index d7ea97c..c791e58 100644 --- a/ui/platform_window/platform_window.h +++ b/ui/platform_window/platform_window.h @@ -15,7 +15,7 @@ #include "ui/gfx/native_widget_types.h" #include "ui/platform_window/platform_window_delegate.h" -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) #include #endif @@ -34,7 +34,7 @@ class Transform; namespace ui { class PlatformCursor; -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) class EflEventHandler; #endif @@ -208,7 +208,7 @@ class COMPONENT_EXPORT(PLATFORM_WINDOW) PlatformWindow // loading animations. virtual void NotifyStartupComplete(const std::string& startup_id); -#if defined(USE_EFL) +#if BUILDFLAG(IS_EFL) // Sets native_view created in RWHVAura for offscreen rendering. virtual void SetNativeViewOffscreen(Evas_Object* native_view) {} -- 2.7.4 From bb8953fa78160c11254a63030b4201779c01c97a Mon Sep 17 00:00:00 2001 From: Chandan Padhi Date: Fri, 23 Dec 2022 13:46:29 +0530 Subject: [PATCH 02/16] Remove SharedMailboxManager SharedMailboxManager is no longer required as SkiaRenderer is enabled by default for Aura port for M108. Change-Id: Idd912817427a854e2473b588531eb621e1a5293b Signed-off-by: Chandan Padhi --- gpu/command_buffer/service/BUILD.gn | 8 -------- .../content/gpu/in_process_gpu_thread_efl.cc | 5 ++--- .../client/shared_mailbox_manager.cc | 22 ---------------------- .../command_buffer/client/shared_mailbox_manager.h | 14 -------------- tizen_src/chromium_impl/gpu/gpu_efl.gni | 12 ------------ 5 files changed, 2 insertions(+), 59 deletions(-) delete mode 100644 tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.cc delete mode 100644 tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.h delete mode 100644 tizen_src/chromium_impl/gpu/gpu_efl.gni diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn index d9ae811..4632c26 100644 --- a/gpu/command_buffer/service/BUILD.gn +++ b/gpu/command_buffer/service/BUILD.gn @@ -9,10 +9,6 @@ import("//third_party/dawn/scripts/dawn_features.gni") import("//third_party/protobuf/proto_library.gni") import("//ui/gl/features.gni") -if (use_efl) { - import("//tizen_src/chromium_impl/gpu/gpu_efl.gni") -} - group("service") { if (is_component_build) { public_deps = [ "//gpu" ] @@ -547,10 +543,6 @@ target(link_target_type, "gles2_sources") { } } - if (use_efl) { - sources += external_gles2_implementation_sources - } - if (is_win) { sources += [ "dxgi_shared_handle_manager.cc", diff --git a/tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc b/tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc index b436398..826e6d7 100644 --- a/tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc +++ b/tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc @@ -9,7 +9,6 @@ #include "content/gpu/in_process_gpu_thread.h" #include "content/public/common/content_client.h" #include "content/public/common/content_switches.h" -#include "gpu/command_buffer/client/shared_mailbox_manager.h" #include "gpu/command_buffer/service/mailbox_manager.h" #include "gpu/config/gpu_preferences.h" #include "gpu/ipc/service/gpu_channel_manager.h" @@ -17,8 +16,8 @@ #include "ui/gl/gl_shared_context_efl.h" // Implementation of InProcessGpuThread and GpuChildThread overrides -// in order to provide on startup shared context and mailbox manager -// created from Efl shared evas gl context. +// in order to provide on startup shared context created from Efl shared evas gl +// context. namespace content { diff --git a/tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.cc b/tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.cc deleted file mode 100644 index e270680..0000000 --- a/tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.cc +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 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. - -#include "shared_mailbox_manager.h" - -#include "base/check.h" -#include "gpu/command_buffer/service/mailbox_manager.h" - -static gpu::MailboxManager* mailbox_manager_; - -// static -void SharedMailboxManager::SetMailboxManager( - gpu::MailboxManager* mailbox_manager) { - mailbox_manager_ = mailbox_manager; -} - -// static -gpu::MailboxManager* SharedMailboxManager::GetMailboxManager() { - CHECK(mailbox_manager_); - return mailbox_manager_; -} diff --git a/tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.h b/tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.h deleted file mode 100644 index 158d46c..0000000 --- a/tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 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. - -#include "gpu/gpu_export.h" - -namespace gpu { -class MailboxManager; -} // namespace gpu - -struct GPU_EXPORT SharedMailboxManager { - static void SetMailboxManager(gpu::MailboxManager* mailbox_manager); - static gpu::MailboxManager* GetMailboxManager(); -}; diff --git a/tizen_src/chromium_impl/gpu/gpu_efl.gni b/tizen_src/chromium_impl/gpu/gpu_efl.gni deleted file mode 100644 index ecafd27..0000000 --- a/tizen_src/chromium_impl/gpu/gpu_efl.gni +++ /dev/null @@ -1,12 +0,0 @@ -# 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. - -if (is_tizen) { - import("//build/config/ui.gni") -} - -external_gles2_implementation_sources = [ - "//tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.cc", - "//tizen_src/chromium_impl/gpu/command_buffer/client/shared_mailbox_manager.h", -] -- 2.7.4 From 1be5ea329ef9e52a8b6fbd53b51301a5be13bb1b Mon Sep 17 00:00:00 2001 From: Bakka Uday Kiran Date: Fri, 23 Dec 2022 15:19:09 +0530 Subject: [PATCH 03/16] Merge WebContentsViewEflDelegate to WebContentsEflDelegate For AURA, WebContentsViewEfl is not used as it is replaced by WebContentsViewAura, hence its delegate WebContentsViewEflDelegate cannot be instantiated without it. So this patch moves the interfaces from WebContentsViewEflDelegate to WebContentsEflDelegate, and called via WebContentsImplEfl::GetDelegate(). As there are many delegate classes under tizen_src causing confusion sometimes; removing WebContentsViewEflDelegate improves code structure and understandability. Reference: https://review.tizen.org/gerrit/274379 Change-Id: I0f8e2220ece36594a710d179a4706878b14a9ab4 Signed-off-by: Bakka Uday Kiran --- .../chromium_impl/content/browser/browser_efl.gni | 1 - .../screen_orientation_delegate_efl.cc | 20 ++--- .../public/browser/web_contents_efl_delegate.h | 31 ++++++++ .../browser/web_contents_view_efl_delegate.h | 57 -------------- tizen_src/ewk/efl_integration/BUILD.gn | 2 - tizen_src/ewk/efl_integration/eweb_view.cc | 5 -- .../web_contents_efl_delegate_ewk.cc | 68 ++++++++++++++++ .../web_contents_efl_delegate_ewk.h | 24 ++++++ .../web_contents_view_efl_delegate_ewk.cc | 90 ---------------------- .../web_contents_view_efl_delegate_ewk.h | 56 -------------- 10 files changed, 130 insertions(+), 224 deletions(-) delete mode 100644 tizen_src/chromium_impl/content/public/browser/web_contents_view_efl_delegate.h delete mode 100644 tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.cc delete mode 100644 tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.h diff --git a/tizen_src/chromium_impl/content/browser/browser_efl.gni b/tizen_src/chromium_impl/content/browser/browser_efl.gni index ed7da40..1ae5fbf 100644 --- a/tizen_src/chromium_impl/content/browser/browser_efl.gni +++ b/tizen_src/chromium_impl/content/browser/browser_efl.gni @@ -69,7 +69,6 @@ external_content_browser_efl_sources = [ "//tizen_src/chromium_impl/content/browser/javascript_dialog/javascript_modal_dialog.cc", "//tizen_src/chromium_impl/content/browser/javascript_dialog/javascript_modal_dialog.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", "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.cc", "//tizen_src/chromium_impl/content/browser/renderer_host/edge_effect.h", "//tizen_src/chromium_impl/content/browser/renderer_host/rwhv_aura_offscreen_helper_efl.cc", diff --git a/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc b/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc index 00c5594..4fcddbf 100644 --- a/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc +++ b/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.cc @@ -8,7 +8,7 @@ #include "chromium_impl/content/browser/web_contents/web_contents_impl_efl.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_delegate.h" -#include "ewk/efl_integration/web_contents_view_efl_delegate_ewk.h" +#include "ewk/efl_integration/web_contents_efl_delegate_ewk.h" namespace content { @@ -31,12 +31,9 @@ bool ScreenOrientationDelegateEfl::FullScreenRequired( void ScreenOrientationDelegateEfl::Lock( WebContents* web_contents, device::mojom::ScreenOrientationLockType lock_orientation) { -#if !defined(USE_AURA) - WebContentsImpl* wci = static_cast(web_contents); - WebContentsViewEfl* wcve = static_cast(wci->GetView()); - if (wcve->GetEflDelegate()) - wcve->GetEflDelegate()->OrientationLock(lock_orientation); -#endif + WebContentsImplEfl* wcie = static_cast(web_contents); + if (wcie->GetEflDelegate()) + wcie->GetEflDelegate()->OrientationLock(lock_orientation); } bool ScreenOrientationDelegateEfl::ScreenOrientationProviderSupported( @@ -46,12 +43,9 @@ bool ScreenOrientationDelegateEfl::ScreenOrientationProviderSupported( } void ScreenOrientationDelegateEfl::Unlock(WebContents* web_contents) { -#if !defined(USE_AURA) - WebContentsImpl* wci = static_cast(web_contents); - WebContentsViewEfl* wcve = static_cast(wci->GetView()); - if (wcve->GetEflDelegate()) - wcve->GetEflDelegate()->OrientationUnlock(); -#endif + WebContentsImplEfl* wcie = static_cast(web_contents); + if (wcie->GetEflDelegate()) + wcie->GetEflDelegate()->OrientationUnlock(); } } // namespace content diff --git a/tizen_src/chromium_impl/content/public/browser/web_contents_efl_delegate.h b/tizen_src/chromium_impl/content/public/browser/web_contents_efl_delegate.h index 1e808bd..75d3cc5 100644 --- a/tizen_src/chromium_impl/content/public/browser/web_contents_efl_delegate.h +++ b/tizen_src/chromium_impl/content/public/browser/web_contents_efl_delegate.h @@ -5,13 +5,22 @@ #ifndef CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_EFL_DELEGATE_H_ #define CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_EFL_DELEGATE_H_ +#include + #include "base/callback.h" #include "content/common/content_export.h" +#include "content/public/browser/context_menu_params.h" +#include "services/device/public/mojom/screen_orientation_lock_types.mojom.h" +#include "third_party/blink/public/common/context_menu_data/menu_item_info.h" +#include "third_party/blink/public/common/input/web_gesture_event.h" +#include "third_party/blink/public/common/input/web_input_event.h" +#include "ui/gfx/geometry/rect.h" class GURL; namespace content { +class RenderFrameHost; class WebContents; class CONTENT_EXPORT WebContentsEflDelegate { @@ -38,6 +47,28 @@ class CONTENT_EXPORT WebContentsEflDelegate { // This is needed when a window is created with window.open or target:_blank, // where RenderWidgetHostViewXXX objects are created earlier in the call chain. virtual void SetUpSmartObject(void* platform_data, void* native_view) = 0; + + virtual void ShowPopupMenu(RenderFrameHost* render_frame_host, + const gfx::Rect& bounds, + int item_height, + double item_font_size, + int selected_item, + const std::vector& items, + bool right_aligned, + bool allow_multiple_selection) = 0; + virtual void HidePopupMenu() = 0; + + virtual void CancelContextMenu(int request_id) = 0; + + virtual void QuerySelectionStyle() = 0; + virtual void HandleZoomGesture(blink::WebGestureEvent& event) = 0; + + virtual bool UseKeyPadWithoutUserAction() = 0; + + virtual void ShowContextMenu(const ContextMenuParams& params) = 0; + + virtual void OrientationLock(device::mojom::ScreenOrientationLockType) = 0; + virtual void OrientationUnlock() = 0; }; } // namespace content diff --git a/tizen_src/chromium_impl/content/public/browser/web_contents_view_efl_delegate.h b/tizen_src/chromium_impl/content/public/browser/web_contents_view_efl_delegate.h deleted file mode 100644 index 71bb716..0000000 --- a/tizen_src/chromium_impl/content/public/browser/web_contents_view_efl_delegate.h +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 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. - -#ifndef CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_VIEW_EFL_DELEGATE_H_ -#define CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_VIEW_EFL_DELEGATE_H_ - -#include - -#include "content/common/content_export.h" -#include "content/public/browser/context_menu_params.h" -#include "services/device/public/mojom/screen_orientation_lock_types.mojom.h" -#include "third_party/blink/public/common/context_menu_data/menu_item_info.h" -#include "third_party/blink/public/common/input/web_gesture_event.h" -#include "third_party/blink/public/common/input/web_input_event.h" -#include "ui/gfx/geometry/rect.h" - -namespace content { - -class RenderFrameHost; - -class WebContentsViewEflDelegate { - public: - WebContentsViewEflDelegate() {}; - virtual ~WebContentsViewEflDelegate() {}; - - virtual void ShowPopupMenu(RenderFrameHost* render_frame_host, - const gfx::Rect& bounds, - int item_height, - double item_font_size, - int selected_item, - const std::vector& items, - bool right_aligned, - bool allow_multiple_selection) = 0; - virtual void HidePopupMenu() = 0; - - virtual void SetPageTitle(const std::u16string& title) = 0; - virtual void CancelContextMenu(int request_id) = 0; - - virtual void QuerySelectionStyle() = 0; - virtual void HandleZoomGesture(blink::WebGestureEvent& event) = 0; - - virtual bool UseKeyPadWithoutUserAction() = 0; - - virtual void ShowContextMenu(const ContextMenuParams& params) = 0; - - virtual void OrientationLock(device::mojom::ScreenOrientationLockType) = 0; - virtual void OrientationUnlock() = 0; - - virtual void OnOverscrolled( - const gfx::Vector2dF& accumulated_overscroll, - const gfx::Vector2dF& latest_overscroll_delta) = 0; -}; - -} // namespace content - -#endif // CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_VIEW_EFL_DELEGATE_H_ diff --git a/tizen_src/ewk/efl_integration/BUILD.gn b/tizen_src/ewk/efl_integration/BUILD.gn index 7d5fdae..f774408 100644 --- a/tizen_src/ewk/efl_integration/BUILD.gn +++ b/tizen_src/ewk/efl_integration/BUILD.gn @@ -279,8 +279,6 @@ shared_library("chromium-ewk") { "web_contents_efl_delegate_ewk.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", # Make use of Android webview"s simplified pref class. "browser/autofill/autofill_client_efl.cc", diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index fbe8406..14e2880 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -62,7 +62,6 @@ #include "ui/platform_window/platform_window_init_properties.h" #include "web_contents_delegate_efl.h" #include "web_contents_efl_delegate_ewk.h" -#include "web_contents_view_efl_delegate_ewk.h" #include #include @@ -2298,10 +2297,6 @@ void EWebView::InitializeContent() { } web_contents_delegate_.reset(new WebContentsDelegateEfl(this)); web_contents_->SetDelegate(web_contents_delegate_.get()); -#if !defined(USE_AURA) - GetWebContentsViewEfl()->SetEflDelegate( - new WebContentsViewEflDelegateEwk(this)); -#endif WebContentsImplEfl* wc_efl = static_cast(web_contents_.get()); wc_efl->SetEflDelegate(new WebContentsEflDelegateEwk(this)); diff --git a/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.cc b/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.cc index d050fc8..d010dc8 100644 --- a/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.cc +++ b/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "web_contents_efl_delegate_ewk.h" +#include "ewk/efl_integration/private/webview_delegate_ewk.h" #include @@ -22,3 +23,70 @@ void WebContentsEflDelegateEwk::SetUpSmartObject(void* platform_data, void* nati Evas_Object* _native_view = static_cast(native_view); evas_object_smart_member_add(_native_view, new_web_view->evas_object()); } + +void WebContentsEflDelegateEwk::ShowPopupMenu( + content::RenderFrameHost* render_frame_host, + const gfx::Rect& bounds, + int item_height, + double item_font_size, + int selected_item, + const std::vector& items, + bool right_aligned, + bool allow_multiple_selection) { + web_view_->ShowPopupMenu(items, selected_item, allow_multiple_selection); +} + +void WebContentsEflDelegateEwk::HidePopupMenu() { + web_view_->HidePopupMenu(); +} + +void WebContentsEflDelegateEwk::CancelContextMenu(int request_id) { + web_view_->CancelContextMenu(request_id); +} + +void WebContentsEflDelegateEwk::QuerySelectionStyle() { + web_view_->QuerySelectionStyle(); +} + +void WebContentsEflDelegateEwk::HandleZoomGesture( + blink::WebGestureEvent& event) { + web_view_->HandleZoomGesture(event); +} + +bool WebContentsEflDelegateEwk::UseKeyPadWithoutUserAction() { + return web_view_->GetSettings()->useKeyPadWithoutUserAction(); +} + +void WebContentsEflDelegateEwk::ShowContextMenu( + const content::ContextMenuParams& params) { + web_view_->ShowContextMenu(params); +} + +void WebContentsEflDelegateEwk::OrientationLock( + device::mojom::ScreenOrientationLockType orientation) { + // Conversion of WebScreenOrientationLockType to + // list of orientations. + // This is related to the commentary to the M42 version + // (currently non-existent) of prototype + // Eina_Bool (*orientation_lock)(Ewk_View_Smart_Data* sd, int orientations) + // InvalidOrientation = 0, + // OrientationPortraitPrimary = 1, + // OrientationLandscapePrimary = 1 << 1, + // OrientationPortraitSecondary = 1 << 2, + // OrientationLandscapeSecondary = 1 << 3, + // OrientationPortrait = + // OrientationPortraitPrimary | OrientationPortraitSecondary, + // OrientationLandscape = + // OrientationLandscapePrimary | OrientationLandscapeSecondary, + // OrientationNatural = + // OrientationPortraitPrimary | OrientationLandscapePrimary, + // OrientationAny = OrientationPortrait | OrientationLandscape + int orientation_convert[9] = {0, 1, 4, 2, 8, 15, 10, 5, 3}; + + WebViewDelegateEwk::GetInstance().RequestHandleOrientationLock( + web_view_, orientation_convert[static_cast(orientation)]); +} + +void WebContentsEflDelegateEwk::OrientationUnlock() { + WebViewDelegateEwk::GetInstance().RequestHandleOrientationUnlock(web_view_); +} \ No newline at end of file diff --git a/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h b/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h index a7d6905..0377cff 100644 --- a/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h +++ b/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h @@ -17,6 +17,30 @@ class WebContentsEflDelegateEwk : public content::WebContentsEflDelegate { void SetUpSmartObject(void*platform_data, void* native_view) override; + void ShowPopupMenu(content::RenderFrameHost* render_frame_host, + const gfx::Rect& bounds, + int item_height, + double item_font_size, + int selected_item, + const std::vector& items, + bool right_aligned, + bool allow_multiple_selection) override; + void HidePopupMenu() override; + + void CancelContextMenu(int request_id) override; + + void QuerySelectionStyle() override; + + void HandleZoomGesture(blink::WebGestureEvent& event) override; + + bool UseKeyPadWithoutUserAction() override; + + void ShowContextMenu(const content::ContextMenuParams& params) override; + + virtual void OrientationLock( + device::mojom::ScreenOrientationLockType) override; + virtual void OrientationUnlock() override; + private: EWebView* web_view_; diff --git a/tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.cc b/tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.cc deleted file mode 100644 index 1838af0..0000000 --- a/tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.cc +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 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. - -#include "web_contents_view_efl_delegate_ewk.h" - -#include "eweb_view.h" -#include "ewk/efl_integration/private/webview_delegate_ewk.h" - -WebContentsViewEflDelegateEwk::WebContentsViewEflDelegateEwk(EWebView* wv) - : web_view_(wv) { -} - -void WebContentsViewEflDelegateEwk::ShowPopupMenu( - content::RenderFrameHost* render_frame_host, - const gfx::Rect& bounds, - int item_height, - double item_font_size, - int selected_item, - const std::vector& items, - bool right_aligned, - bool allow_multiple_selection) { - web_view_->ShowPopupMenu(items, selected_item, allow_multiple_selection); -} - -void WebContentsViewEflDelegateEwk::HidePopupMenu() { - web_view_->HidePopupMenu(); -} - -void WebContentsViewEflDelegateEwk::SetPageTitle(const std::u16string& title) { - web_view_->SmartCallback(). - call(base::UTF16ToUTF8(title).c_str()); -} - -void WebContentsViewEflDelegateEwk::CancelContextMenu(int request_id) { - web_view_->CancelContextMenu(request_id); -} - -void WebContentsViewEflDelegateEwk::QuerySelectionStyle() { - web_view_->QuerySelectionStyle(); -} - -void WebContentsViewEflDelegateEwk::HandleZoomGesture(blink::WebGestureEvent& event) { - web_view_->HandleZoomGesture(event); -} - -bool WebContentsViewEflDelegateEwk::UseKeyPadWithoutUserAction() { - return web_view_->GetSettings()->useKeyPadWithoutUserAction(); -} - -void WebContentsViewEflDelegateEwk::ShowContextMenu( - const content::ContextMenuParams& params) { - web_view_->ShowContextMenu(params); -} - -void WebContentsViewEflDelegateEwk::OrientationLock( - device::mojom::ScreenOrientationLockType orientation) { - // Conversion of WebScreenOrientationLockType to - // list of orientations. - // This is related to the commentary to the M42 version - // (currently non-existent) of prototype - // Eina_Bool (*orientation_lock)(Ewk_View_Smart_Data* sd, int orientations) - // InvalidOrientation = 0, - // OrientationPortraitPrimary = 1, - // OrientationLandscapePrimary = 1 << 1, - // OrientationPortraitSecondary = 1 << 2, - // OrientationLandscapeSecondary = 1 << 3, - // OrientationPortrait = - // OrientationPortraitPrimary | OrientationPortraitSecondary, - // OrientationLandscape = - // OrientationLandscapePrimary | OrientationLandscapeSecondary, - // OrientationNatural = - // OrientationPortraitPrimary | OrientationLandscapePrimary, - // OrientationAny = OrientationPortrait | OrientationLandscape - int orientation_convert[9] = { 0, 1, 4, 2, 8, 15, 10, 5, 3 }; - - WebViewDelegateEwk::GetInstance().RequestHandleOrientationLock( - web_view_, - orientation_convert[static_cast(orientation)]); -} - -void WebContentsViewEflDelegateEwk::OrientationUnlock() { - WebViewDelegateEwk::GetInstance().RequestHandleOrientationUnlock(web_view_); -} - -void WebContentsViewEflDelegateEwk::OnOverscrolled( - const gfx::Vector2dF& accumulated_overscroll, - const gfx::Vector2dF& latest_overscroll_delta) { - web_view_->OnOverscrolled(accumulated_overscroll, latest_overscroll_delta); -} diff --git a/tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.h b/tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.h deleted file mode 100644 index 6330b27..0000000 --- a/tizen_src/ewk/efl_integration/web_contents_view_efl_delegate_ewk.h +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 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. - -#ifndef WEB_CONTENTS_VIEW_EFL_DELEGATE_EWK -#define WEB_CONTENTS_VIEW_EFL_DELEGATE_EWK - -#include "content/public/browser/web_contents_view_efl_delegate.h" -#include "third_party/blink/public/common/context_menu_data/menu_item_info.h" - -class EWebView; - -namespace content { -class RenderFrameHost; -} - -class WebContentsViewEflDelegateEwk - : public content::WebContentsViewEflDelegate { - public: - WebContentsViewEflDelegateEwk(EWebView*); - - void ShowPopupMenu(content::RenderFrameHost* render_frame_host, - const gfx::Rect& bounds, - int item_height, - double item_font_size, - int selected_item, - const std::vector& items, - bool right_aligned, - bool allow_multiple_selection) override; - void HidePopupMenu() override; - - void SetPageTitle(const std::u16string& title) override; - - void CancelContextMenu(int request_id) override; - - void QuerySelectionStyle() override; - - void HandleZoomGesture(blink::WebGestureEvent& event) override; - - bool UseKeyPadWithoutUserAction() override; - - void ShowContextMenu(const content::ContextMenuParams& params) override; - - virtual void OrientationLock( - device::mojom::ScreenOrientationLockType) override; - virtual void OrientationUnlock() override; - - private: - void OnOverscrolled(const gfx::Vector2dF& accumulated_overscroll, - const gfx::Vector2dF& latest_overscroll_delta) override; - - EWebView* web_view_; -}; - -#endif // WEB_CONTENTS_VIEW_EFL_DELEGATE_EWK - -- 2.7.4 From 0b3ca505b661f38b4e0d8a4b088461a76c8e87fe Mon Sep 17 00:00:00 2001 From: Chandan Padhi Date: Fri, 23 Dec 2022 16:36:51 +0530 Subject: [PATCH 04/16] Remove InProcessGpuThreadEfl and GpuChildThreadEfl With SharedMailboxManager removed in [1], shared context can be now set directly in GpuChildThread itself. Therefore, chromium-efl no longer has to override GpuChildThread and InProcessGpuThread. [1] https://review.tizen.org/gerrit/285975/ Change-Id: I2e062c9da159b38877f1311988cdc100109ff02d Signed-off-by: Chandan Padhi --- content/gpu/BUILD.gn | 6 -- content/gpu/gpu_child_thread.cc | 15 +++-- content/gpu/gpu_child_thread.h | 4 -- content/gpu/in_process_gpu_thread.h | 8 --- gpu/ipc/service/gpu_channel_manager.cc | 7 +++ gpu/ipc/service/gpu_channel_manager.h | 15 ++--- tizen_src/chromium_impl/content/gpu/gpu_efl.gni | 10 ---- .../content/gpu/gpu_thread_override_efl.cc | 6 -- .../content/gpu/in_process_gpu_thread_efl.cc | 70 ---------------------- 9 files changed, 21 insertions(+), 120 deletions(-) delete mode 100644 tizen_src/chromium_impl/content/gpu/gpu_efl.gni delete mode 100644 tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc delete mode 100644 tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn index 7a2bbc1..8f70e89 100644 --- a/content/gpu/BUILD.gn +++ b/content/gpu/BUILD.gn @@ -9,7 +9,6 @@ import("//gpu/vulkan/features.gni") import("//media/media_options.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. @@ -152,9 +151,4 @@ target(link_target_type, "gpu_sources") { !is_castos) { configs += [ "//build/config/linux/dri" ] } - - if (use_efl) { - sources += external_content_gpu_efl_sources - sources -= external_exclude_content_gpu_efl_sources - } } diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc index 6ffd270..90e3b47 100644 --- a/content/gpu/gpu_child_thread.cc +++ b/content/gpu/gpu_child_thread.cc @@ -59,6 +59,10 @@ #include "third_party/skia/include/ports/SkFontConfigInterface.h" #endif +#if BUILDFLAG(IS_EFL) +#include "ui/gl/gl_shared_context_efl.h" +#endif + namespace content { namespace { @@ -164,12 +168,6 @@ void GpuChildThread::Init(const base::TimeTicks& process_start_time) { base::Unretained(this))); } -#if BUILDFLAG(IS_EFL) -void GpuChildThread::SetGpuServiceConnection(viz::GpuServiceImpl* service) { - GpuChildThread::OnGpuServiceConnection(service); -} -#endif - bool GpuChildThread::in_process_gpu() const { return viz_main_.gpu_service()->gpu_info().in_process_gpu; } @@ -188,6 +186,11 @@ void GpuChildThread::OnGpuServiceConnection(viz::GpuServiceImpl* gpu_service) { overlay_factory_cb); #endif +#if BUILDFLAG(IS_EFL) + gpu_service->gpu_channel_manager()->SetShareGroup( + GLSharedContextEfl::GetShareGroup()); +#endif + if (!IsInBrowserProcess()) { gpu_service->SetVisibilityChangedCallback( base::BindRepeating([](bool visible) { diff --git a/content/gpu/gpu_child_thread.h b/content/gpu/gpu_child_thread.h index b2e9453..76995c7 100644 --- a/content/gpu/gpu_child_thread.h +++ b/content/gpu/gpu_child_thread.h @@ -55,10 +55,6 @@ class GpuChildThread : public ChildThreadImpl, void Init(const base::TimeTicks& process_start_time); -#if BUILDFLAG(IS_EFL) - void SetGpuServiceConnection(viz::GpuServiceImpl* service); -#endif - private: GpuChildThread(base::RepeatingClosure quit_closure, ChildThreadImpl::Options options, diff --git a/content/gpu/in_process_gpu_thread.h b/content/gpu/in_process_gpu_thread.h index d6b7bb7..d897fa4 100644 --- a/content/gpu/in_process_gpu_thread.h +++ b/content/gpu/in_process_gpu_thread.h @@ -15,10 +15,6 @@ namespace content { class ChildProcess; -#if BUILDFLAG(IS_EFL) -struct InProcessGpuThreadEfl; -#endif - // This class creates a GPU thread (instead of a GPU process), when running // with --in-process-gpu or --single-process. class InProcessGpuThread : public base::Thread { @@ -36,10 +32,6 @@ class InProcessGpuThread : public base::Thread { void CleanUp() override; private: -#if BUILDFLAG(IS_EFL) - friend struct InProcessGpuThreadEfl; -#endif - InProcessChildThreadParams params_; // Deleted in CleanUp() on the gpu thread, so don't use smart pointers. diff --git a/gpu/ipc/service/gpu_channel_manager.cc b/gpu/ipc/service/gpu_channel_manager.cc index a4bd4a0..7a905bc 100644 --- a/gpu/ipc/service/gpu_channel_manager.cc +++ b/gpu/ipc/service/gpu_channel_manager.cc @@ -694,6 +694,13 @@ GpuChannelManager::GetPeakMemoryUsage(uint32_t sequence_num, return allocation_per_source; } +#if BUILDFLAG(IS_EFL) +void GpuChannelManager::SetShareGroup( + scoped_refptr share_group) { + share_group_ = share_group; +} +#endif + #if BUILDFLAG(IS_ANDROID) void GpuChannelManager::DidAccessGpu() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); diff --git a/gpu/ipc/service/gpu_channel_manager.h b/gpu/ipc/service/gpu_channel_manager.h index 5bd8f10..a52a5b6 100644 --- a/gpu/ipc/service/gpu_channel_manager.h +++ b/gpu/ipc/service/gpu_channel_manager.h @@ -54,12 +54,6 @@ namespace gl { class GLShareGroup; } -#if BUILDFLAG(IS_EFL) -namespace content { -struct GpuChildThreadEfl; -} -#endif - namespace gpu { class SharedImageManager; @@ -139,6 +133,11 @@ class GPU_IPC_SERVICE_EXPORT GpuChannelManager void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id, const SyncToken& sync_token); + +#if BUILDFLAG(IS_EFL) + void SetShareGroup(scoped_refptr share_group); +#endif + #if BUILDFLAG(IS_ANDROID) void WakeUpGpu(); #endif @@ -253,10 +252,6 @@ class GPU_IPC_SERVICE_EXPORT GpuChannelManager private: friend class GpuChannelManagerTest; -#if BUILDFLAG(IS_EFL) - friend struct content::GpuChildThreadEfl; -#endif - // Observes changes in GPU memory, and tracks the peak usage for clients. The // client is responsible for providing a unique |sequence_num| for each time // period in which it wishes to track memory usage. diff --git a/tizen_src/chromium_impl/content/gpu/gpu_efl.gni b/tizen_src/chromium_impl/content/gpu/gpu_efl.gni deleted file mode 100644 index bc23d8a..0000000 --- a/tizen_src/chromium_impl/content/gpu/gpu_efl.gni +++ /dev/null @@ -1,10 +0,0 @@ -# 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", -] - -external_exclude_content_gpu_efl_sources = [ "in_process_gpu_thread.cc" ] diff --git a/tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc b/tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc deleted file mode 100644 index 8fbe0cc..0000000 --- a/tizen_src/chromium_impl/content/gpu/gpu_thread_override_efl.cc +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 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. - -#define CreateInProcessGpuThread not_CreateInProcessGpuThread -#include "content/gpu/in_process_gpu_thread.cc" diff --git a/tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc b/tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc deleted file mode 100644 index 826e6d7..0000000 --- a/tizen_src/chromium_impl/content/gpu/in_process_gpu_thread_efl.cc +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2014 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. - -#include "base/command_line.h" -#include "base/time/time.h" -#include "content/child/child_process.h" -#include "content/gpu/gpu_child_thread.h" -#include "content/gpu/in_process_gpu_thread.h" -#include "content/public/common/content_client.h" -#include "content/public/common/content_switches.h" -#include "gpu/command_buffer/service/mailbox_manager.h" -#include "gpu/config/gpu_preferences.h" -#include "gpu/ipc/service/gpu_channel_manager.h" -#include "gpu/ipc/service/gpu_init.h" -#include "ui/gl/gl_shared_context_efl.h" - -// Implementation of InProcessGpuThread and GpuChildThread overrides -// in order to provide on startup shared context created from Efl shared evas gl -// context. - -namespace content { - -struct GpuChildThreadEfl : public content::GpuChildThread { - explicit GpuChildThreadEfl(const InProcessChildThreadParams& params, - std::unique_ptr gpu_init) - : GpuChildThread(params, std::move(gpu_init)) {} - - void OnGpuServiceConnection(viz::GpuServiceImpl* gpu_service) override { - GpuChildThread::SetGpuServiceConnection(gpu_service); - gpu_service->gpu_channel_manager()->share_group_ = - GLSharedContextEfl::GetShareGroup(); - } -}; - -struct InProcessGpuThreadEfl : public content::InProcessGpuThread { - explicit InProcessGpuThreadEfl( - const content::InProcessChildThreadParams& params, - const gpu::GpuPreferences& gpu_preferences) - : InProcessGpuThread(params, gpu_preferences) {} - - void Init() override { - gpu_process_ = std::make_unique(base::ThreadType::kDefault); - - auto gpu_init = std::make_unique(); - gpu_init->InitializeInProcess(base::CommandLine::ForCurrentProcess(), - gpu_preferences_); - - GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); - - // The process object takes ownership of the thread object, so do not - // save and delete the pointer. - GpuChildThread* child_thread = - new GpuChildThreadEfl(params_, std::move(gpu_init)); - - // Since we are in the browser process, use the thread start time as the - // process start time. - child_thread->Init(base::TimeTicks::Now()); - - gpu_process_->set_main_thread(child_thread); - } -}; - -base::Thread* CreateInProcessGpuThread( - const content::InProcessChildThreadParams& params, - const gpu::GpuPreferences& gpu_preferences) { - return new InProcessGpuThreadEfl(params, gpu_preferences); -} - -} // namespace content -- 2.7.4 From 3d23c4f8cdfebaa9c58b8d111f4dc424ea1960d1 Mon Sep 17 00:00:00 2001 From: v-saha Date: Mon, 26 Dec 2022 17:37:22 +0530 Subject: [PATCH 05/16] Remove DISALLOW_COPY_AND_ASSIGN macros from tizen_src directory As per upstream changes [1], this patch replaces all occurances of DISALLOW_COPY_AND_ASSIGN macros with deleted copy and move constructors inside tizen_src/. [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1010217 Change-Id: Ice2f7b8b227b6ae9409aae4277fe18b00fd65501 Signed-off-by: v-saha --- .../js_dialogs_efl/javascript_dialog_manager_efl.h | 6 ++++-- .../browser/media/browser_mediapacket_manager.h | 7 +++++-- .../browser/media/efl/browser_demuxer_efl.cc | 5 +++-- .../content/browser/media/efl/browser_demuxer_efl.h | 5 +++-- .../media/efl/browser_media_player_manager_efl.h | 6 ++++-- .../browser/media/media_web_contents_observer_efl.h | 5 +++-- .../screen_orientation_delegate_efl.h | 7 ++++--- .../content/browser/speech/tts_message_filter_efl.h | 6 ++++-- .../browser/tracing/tracing_controller_efl.h | 6 ++++-- .../browser/web_contents/web_drag_dest_efl.h | 5 +++-- .../browser/web_contents/web_drag_source_efl.h | 5 +++-- .../gpu/media/efl/tizen_video_decode_accelerator.h | 6 ++++-- .../gpu/media/efl/tizen_video_encode_accelerator.h | 6 ++++-- .../renderer/media/efl/renderer_demuxer_efl.h | 5 +++-- .../media/efl/renderer_media_player_manager_efl.h | 6 ++++-- .../content/renderer/media/efl/webmediaplayer_efl.h | 5 +++-- .../renderer/media/tizen/audio_decoder_capi.cc | 6 ++++-- .../content/renderer/tts_dispatcher_efl.h | 5 +++-- .../device/battery/battery_status_manager_tizen.h | 6 ++++-- .../media/audio/tizen/audio_manager_capi.h | 5 +++-- .../media/audio/tizen/capi_audio_input.h | 5 +++-- .../media/audio/tizen/capi_audio_output.h | 5 +++-- .../chromium_impl/media/base/efl/media_player_efl.h | 5 +++-- .../media/base/tizen/media_player_bridge_capi.h | 5 +++-- .../media/base/tizen/media_source_player_capi.h | 5 +++-- .../base/tizen/webaudio_decoder_browser_capi.h | 5 +++-- .../tizen/video_capture_device_factory_tizen.cc | 4 +++- .../tizen/video_capture_device_factory_tizen.h | 7 +++++-- .../ui/base/clipboard/clipboard_helper_efl.h | 5 ++++- .../ui/display/device_display_info_efl.cc | 6 ++++-- .../ui/display/device_display_info_efl.h | 6 +++--- .../browser/autofill/autofill_client_efl.h | 6 ++++-- .../autofill/personal_data_manager_factory.h | 5 ++++- .../browser/favicon/favicon_database.h | 4 +++- .../browser/favicon/favicon_downloader.h | 4 +++- .../browser/geolocation/location_provider_efl.h | 6 ++++-- .../browser/javascript_dialog_manager_efl.h | 6 ++++-- .../browser/mime_override_manager_efl.h | 5 +++-- .../notification/notification_controller_efl.h | 6 ++++-- .../password_manager/password_manager_client_efl.h | 6 ++++-- .../password_manager/password_store_factory.h | 10 +++++++--- .../browser/ssl_host_state_delegate_efl.h | 5 +++-- .../browser/vibration/vibration_provider_client.h | 6 ++++-- .../browser/web_cache_efl/web_cache_manager_efl.h | 4 +++- .../browser/webdata/web_data_service.h | 4 ++-- .../browser/webdata/web_data_service_factory.h | 8 +++++--- tizen_src/ewk/efl_integration/browser_context_efl.h | 10 ++++++---- .../ewk/efl_integration/browser_main_parts_efl.h | 5 +++-- tizen_src/ewk/efl_integration/common/version_info.h | 5 +++-- .../efl_integration/content_browser_client_efl.h | 5 +++-- .../ewk/efl_integration/content_main_delegate_efl.h | 4 +++- tizen_src/ewk/efl_integration/cookie_manager.h | 6 ++++-- .../efl_integration/devtools_manager_delegate_efl.h | 5 +++-- tizen_src/ewk/efl_integration/ewk_global_data.h | 5 +++-- .../efl_integration/http_user_agent_settings_efl.h | 6 +++--- .../permission_controller_delegate_efl.h | 7 +++++-- .../efl_integration/private/ewk_context_private.h | 6 ++++-- .../efl_integration/private/ewk_hit_test_private.h | 21 +++++++++++---------- .../private/ewk_notification_private.h | 12 ++++++++---- .../private/ewk_quota_permission_request_private.h | 6 ++++-- .../private/ewk_security_origin_private.h | 5 +++-- .../ewk/efl_integration/private/ewk_view_private.cc | 5 ++++- .../efl_integration/private/webview_delegate_ewk.h | 4 +++- .../renderer/content_settings_client_efl.h | 6 +++--- .../renderer/plugins/plugin_placeholder_efl.h | 5 +++-- .../efl_integration/shared_url_loader_factory_efl.h | 6 ++++-- .../url_request_context_getter_efl.h | 6 ++++-- .../ewk/efl_integration/web_contents_delegate_efl.h | 5 +++-- .../efl_integration/web_contents_efl_delegate_ewk.h | 6 ++++-- .../ewk/efl_integration/wrt/wrt_dynamicplugin.h | 5 +++-- .../efl_integration/wrt/wrt_file_protocol_handler.h | 4 +++- tizen_src/ewk/efl_integration/wrt/wrt_widget_host.h | 5 +++-- 72 files changed, 269 insertions(+), 152 deletions(-) diff --git a/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_dialog_manager_efl.h b/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_dialog_manager_efl.h index 42343c2..5bf8454 100644 --- a/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_dialog_manager_efl.h +++ b/tizen_src/chromium_impl/components/js_dialogs_efl/javascript_dialog_manager_efl.h @@ -26,6 +26,10 @@ class JavaScriptDialogManagerEfl: public JavaScriptDialogManager { JavaScriptDialogManagerEfl(); ~JavaScriptDialogManagerEfl() override; + JavaScriptDialogManagerEfl(const JavaScriptDialogManagerEfl&) = delete; + JavaScriptDialogManagerEfl& operator=(const JavaScriptDialogManagerEfl&) = + delete; + // Displays a JavaScript dialog. |did_suppress_message| will not be nil; if // |true| is returned in it, the caller will handle faking the reply. void RunJavaScriptDialog(WebContents* web_contents, @@ -56,8 +60,6 @@ class JavaScriptDialogManagerEfl: public JavaScriptDialogManager { private: std::map open_dialogs_; - - // DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogManagerEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h b/tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h index c6b0470..1c89f013 100644 --- a/tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h +++ b/tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.h @@ -13,6 +13,11 @@ namespace content { class CONTENT_EXPORT BrowserMediaPacketManager : public BrowserMessageFilter { public: BrowserMediaPacketManager(); + + BrowserMediaPacketManager(const BrowserMediaPacketManager&) = delete; + BrowserMediaPacketManager& operator=(const BrowserMediaPacketManager&) = + delete; + bool OnMessageReceived(const IPC::Message& message) override; protected: @@ -21,8 +26,6 @@ class CONTENT_EXPORT BrowserMediaPacketManager : public BrowserMessageFilter { private: void ReleaseMediaPacket(gfx::TbmBufferHandle packet); - - // DISALLOW_COPY_AND_ASSIGN(BrowserMediaPacketManager); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc b/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc index abb8811..6f98ce0 100644 --- a/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc +++ b/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.cc @@ -20,6 +20,9 @@ class BrowserDemuxerEfl::Internal : public media::DemuxerEfl { demuxer_->RemoveDemuxerClient(demuxer_client_id_); } + Internal(const Internal&) = delete; + Internal& operator=(const Internal&) = delete; + // |media::DemuxerEfl| implementation. void Initialize(media::DemuxerEflClient* client) override { DCHECK(!ClientIDExists()) << demuxer_client_id_; @@ -47,8 +50,6 @@ class BrowserDemuxerEfl::Internal : public media::DemuxerEfl { scoped_refptr demuxer_; int demuxer_client_id_; - - // DISALLOW_COPY_AND_ASSIGN(Internal); }; scoped_refptr CreateBrowserDemuxerEfl() { diff --git a/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h b/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h index 89bc8d3..58bb56b 100644 --- a/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h +++ b/tizen_src/chromium_impl/content/browser/media/efl/browser_demuxer_efl.h @@ -21,6 +21,9 @@ class CONTENT_EXPORT BrowserDemuxerEfl : public BrowserMessageFilter { public: BrowserDemuxerEfl(); + BrowserDemuxerEfl(const BrowserDemuxerEfl&) = delete; + BrowserDemuxerEfl& operator=(const BrowserDemuxerEfl&) = delete; + // BrowserMessageFilter overrides. void OverrideThreadForMessage( const IPC::Message& message, @@ -62,8 +65,6 @@ class CONTENT_EXPORT BrowserDemuxerEfl : public BrowserMessageFilter { const base::TimeDelta& duration); IDMap demuxer_clients_; - - // DISALLOW_COPY_AND_ASSIGN(BrowserDemuxerEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h b/tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h index 4cf57aa..c6d1851 100644 --- a/tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h +++ b/tizen_src/chromium_impl/content/browser/media/efl/browser_media_player_manager_efl.h @@ -27,6 +27,10 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl static BrowserMediaPlayerManagerEfl* Create(RenderFrameHost* rfh); ~BrowserMediaPlayerManagerEfl() override; + BrowserMediaPlayerManagerEf(const BrowserMediaPlayerManagerEf&) = delete; + BrowserMediaPlayerManagerEf& operator=(const BrowserMediaPlayerManagerEf&) = + delete; + // media::MediaPlayerManager implementation. media::MediaPlayerEfl* GetPlayer(int player_id) override; void OnTimeChanged(int player_id) override; @@ -109,8 +113,6 @@ class CONTENT_EXPORT BrowserMediaPlayerManagerEfl // A queue to initialize player including preroll. std::deque init_queue_; std::deque resumed_queue_; - - // DISALLOW_COPY_AND_ASSIGN(BrowserMediaPlayerManagerEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h b/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h index ea87968..716d66b 100644 --- a/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h +++ b/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h @@ -24,6 +24,9 @@ class CONTENT_EXPORT MediaWebContentsObserver explicit MediaWebContentsObserver(WebContents* web_contents); virtual ~MediaWebContentsObserver(); + MediaWebContentsObserver(const MediaWebContentsObserver&) = delete; + MediaWebContentsObserver& operator=(const MediaWebContentsObserver&) = delete; + // WebContentsObserver implementations. virtual void RenderFrameDeleted(RenderFrameHost* render_frame_host) override; virtual bool OnMessageReceived(const IPC::Message& message, @@ -40,8 +43,6 @@ class CONTENT_EXPORT MediaWebContentsObserver scoped_ptr> MediaPlayerManagerMap; MediaPlayerManagerMap media_player_managers_; - - // DISALLOW_COPY_AND_ASSIGN(MediaWebContentsObserver); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h b/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h index a258c8a..b27ca4ca 100644 --- a/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h +++ b/tizen_src/chromium_impl/content/browser/screen_orientation/screen_orientation_delegate_efl.h @@ -19,15 +19,16 @@ class ScreenOrientationDelegateEfl : public ScreenOrientationDelegate { ScreenOrientationDelegateEfl(); ~ScreenOrientationDelegateEfl() override; + ScreenOrientationDelegateEfl(const ScreenOrientationDelegateEfl&) = delete; + ScreenOrientationDelegateEfl& operator=(const ScreenOrientationDelegateEfl&) = + delete; + // ScreenOrientationDelegate: bool FullScreenRequired(WebContents* web_contents) override; void Lock(WebContents* web_contents, device::mojom::ScreenOrientationLockType lock_orientation) override; bool ScreenOrientationProviderSupported(WebContents* web_contents) override; void Unlock(WebContents* web_contents) override; - - private: - // DISALLOW_COPY_AND_ASSIGN(ScreenOrientationDelegateEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h b/tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h index 4a85445..d5c5cf0 100644 --- a/tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h +++ b/tizen_src/chromium_impl/content/browser/speech/tts_message_filter_efl.h @@ -20,6 +20,10 @@ class CONTENT_EXPORT TtsMessageFilterEfl public base::SupportsWeakPtr { public: TtsMessageFilterEfl(); + + TtsMessageFilterEfl(const TtsMessageFilterEfl&) = delete; + TtsMessageFilterEfl& operator=(const TtsMessageFilterEfl&) = delete; + // content::BrowserMessageFilter implementation. void OverrideThreadForMessage( const IPC::Message& message, @@ -43,8 +47,6 @@ class CONTENT_EXPORT TtsMessageFilterEfl void OnCancel(); std::unique_ptr tts_tizen_; - - // DISALLOW_COPY_AND_ASSIGN(TtsMessageFilterEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h b/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h index 8071dc7..79744b4 100644 --- a/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h +++ b/tizen_src/chromium_impl/content/browser/tracing/tracing_controller_efl.h @@ -20,13 +20,15 @@ class CONTENT_EXPORT TracingControllerEfl { private: TracingControllerEfl(); + + TracingControllerEfl(const TracingControllerEfl&) = delete; + TracingControllerEfl& operator=(const TracingControllerEfl&) = delete; + void OnTracingStopped(); bool is_tracing_; base::WeakPtrFactory weak_factory_; std::string trace_file_name_; - - // DISALLOW_COPY_AND_ASSIGN(TracingControllerEfl); }; #endif // IMPL_BROWSER_TRACING_TRACING_CONTROLLER_EFL_H_ diff --git a/tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h b/tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h index dc86f0a..26efada 100644 --- a/tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h +++ b/tizen_src/chromium_impl/content/browser/web_contents/web_drag_dest_efl.h @@ -23,6 +23,9 @@ class WebDragDestEfl { WebDragDestEfl(WebContents* web_contents); ~WebDragDestEfl(); + WebDragDestEfl(const WebDragDestEfl&) = delete; + WebDragDestEfl& operator=(const WebDragDestEfl&) = delete; + blink::DragOperationsMask GetAction() { return drag_action_; } WebDragDestDelegate* GetDelegate() const { return delegate_; } DropData* GetDropData() { return drop_data_.get(); } @@ -73,8 +76,6 @@ class WebDragDestEfl { // The data for the current drag, or NULL if |context_| is NULL. std::unique_ptr drop_data_; - - // DISALLOW_COPY_AND_ASSIGN(WebDragDestEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h b/tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h index 28a4e55..da355cb 100644 --- a/tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h +++ b/tizen_src/chromium_impl/content/browser/web_contents/web_drag_source_efl.h @@ -30,6 +30,9 @@ class WebDragSourceEfl { explicit WebDragSourceEfl(WebContents* web_contents); virtual ~WebDragSourceEfl(); + WebDragSourceEfl(const WebDragSourceEfl&) = delete; + WebDragSourceEfl& operator=(const WebDragSourceEfl&) = delete; + // Starts a drag for the WebContents this object was created for. // Returns false if the drag could not be started. bool StartDragging(const DropData& drop_data, @@ -96,8 +99,6 @@ class WebDragSourceEfl { gfx::Point initial_position_; gfx::Point last_pointer_pos_; - - // DISALLOW_COPY_AND_ASSIGN(WebDragSourceEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h index 4dcb2a7..1e34431 100644 --- a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h +++ b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_decode_accelerator.h @@ -18,6 +18,10 @@ class CONTENT_EXPORT TizenVideoDecodeAccelerator TizenVideoDecodeAccelerator(); ~TizenVideoDecodeAccelerator() override; + TizenVideoDecodeAccelerator(const TizenVideoDecodeAccelerator&) = delete; + TizenVideoDecodeAccelerator& operator=(const TizenVideoDecodeAccelerator&) = + delete; + bool Initialize(const Config& config, Client* client) override; void Decode(const media::BitstreamBuffer& bitstream_buffer) override; void AssignPictureBuffers( @@ -37,8 +41,6 @@ class CONTENT_EXPORT TizenVideoDecodeAccelerator void StartDecoder(); Impl* impl_; - - // DISALLOW_COPY_AND_ASSIGN(TizenVideoDecodeAccelerator); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h index d4e2e12..943fac2 100644 --- a/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h +++ b/tizen_src/chromium_impl/content/common/gpu/media/efl/tizen_video_encode_accelerator.h @@ -19,6 +19,10 @@ class CONTENT_EXPORT TizenVideoEncodeAccelerator TizenVideoEncodeAccelerator(); ~TizenVideoEncodeAccelerator() override; + TizenVideoEncodeAccelerator(const TizenVideoEncodeAccelerator&) = delete; + TizenVideoEncodeAccelerator& operator=(const TizenVideoEncodeAccelerator&) = + delete; + std::vector GetSupportedProfiles() override; bool Initialize(media::VideoPixelFormat input_format, @@ -43,8 +47,6 @@ class CONTENT_EXPORT TizenVideoEncodeAccelerator bool StartEncoder(); Impl* impl_; - - // DISALLOW_COPY_AND_ASSIGN(TizenVideoEncodeAccelerator); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/renderer/media/efl/renderer_demuxer_efl.h b/tizen_src/chromium_impl/content/renderer/media/efl/renderer_demuxer_efl.h index d6c75b7..90b762b 100644 --- a/tizen_src/chromium_impl/content/renderer/media/efl/renderer_demuxer_efl.h +++ b/tizen_src/chromium_impl/content/renderer/media/efl/renderer_demuxer_efl.h @@ -28,6 +28,9 @@ class RendererDemuxerEfl : public IPC::MessageFilter { public: RendererDemuxerEfl(); + RendererDemuxerEfl(const RendererDemuxerEfl&) = delete; + RendererDemuxerEfl& operator=(const RendererDemuxerEfl&) = delete; + // Returns the next available demuxer client ID for use in IPC messages. // // Safe to call on any thread. @@ -78,8 +81,6 @@ class RendererDemuxerEfl : public IPC::MessageFilter { IDMap delegates_; scoped_refptr thread_safe_sender_; scoped_refptr media_task_runner_; - - // DISALLOW_COPY_AND_ASSIGN(RendererDemuxerEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/renderer/media/efl/renderer_media_player_manager_efl.h b/tizen_src/chromium_impl/content/renderer/media/efl/renderer_media_player_manager_efl.h index 8a478ab..a9f888b 100644 --- a/tizen_src/chromium_impl/content/renderer/media/efl/renderer_media_player_manager_efl.h +++ b/tizen_src/chromium_impl/content/renderer/media/efl/renderer_media_player_manager_efl.h @@ -26,6 +26,10 @@ class RendererMediaPlayerManager : public RenderFrameObserver { explicit RendererMediaPlayerManager(RenderFrame* render_frame); ~RendererMediaPlayerManager() override; + RendererMediaPlayerManager(const RendererMediaPlayerManager&) = delete; + RendererMediaPlayerManager& operator=(const RendererMediaPlayerManager&) = + delete; + // Initializes a MediaPlayerEfl object in browser process. void Initialize(int player_id, MediaPlayerHostMsg_Initialize_Type type, const GURL& url, double volume, int demuxer_client_id); @@ -94,8 +98,6 @@ class RendererMediaPlayerManager : public RenderFrameObserver { private: std::map media_players_; int next_media_player_id_; - - // DISALLOW_COPY_AND_ASSIGN(RendererMediaPlayerManager); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h b/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h index cbc95af..bed7ba6 100644 --- a/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h +++ b/tizen_src/chromium_impl/content/renderer/media/efl/webmediaplayer_efl.h @@ -63,6 +63,9 @@ class WebMediaPlayerEfl const media::WebMediaPlayerParams& params); ~WebMediaPlayerEfl() override; + WebMediaPlayerEfl(const WebMediaPlayerEfl&) = delete; + WebMediaPlayerEfl& operator=(const WebMediaPlayerEfl&) = delete; + // blink::WebMediaPlayer implementation. void load(LoadType load_type, const blink::WebURL& url, @@ -254,8 +257,6 @@ class WebMediaPlayerEfl #if defined(TIZEN_MULTIMEDIA_EME_SUPPORT) scoped_ptr encrypted_media_support_; #endif - - // DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/content/renderer/media/tizen/audio_decoder_capi.cc b/tizen_src/chromium_impl/content/renderer/media/tizen/audio_decoder_capi.cc index 33a00b3..8f46615 100644 --- a/tizen_src/chromium_impl/content/renderer/media/tizen/audio_decoder_capi.cc +++ b/tizen_src/chromium_impl/content/renderer/media/tizen/audio_decoder_capi.cc @@ -25,6 +25,10 @@ class AudioDecoderIO { public: AudioDecoderIO(const char* data, size_t data_size); virtual ~AudioDecoderIO(); + + AudioDecoderIO(const AudioDecoderIO&) = delete; + AudioDecoderIO& operator=(const AudioDecoderIO&) = delete; + bool ShareEncodedDataToProcess(base::SharedMemoryHandle* handle); // Returns true if |AudioDecoderIO| was successfully created. @@ -42,8 +46,6 @@ class AudioDecoderIO { // write_fd_ and writes to it. int read_fd_; int write_fd_; - - // DISALLOW_COPY_AND_ASSIGN(AudioDecoderIO); }; AudioDecoderIO::AudioDecoderIO(const char* data, size_t data_size) diff --git a/tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h b/tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h index 0049513..e99cf79 100644 --- a/tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h +++ b/tizen_src/chromium_impl/content/renderer/tts_dispatcher_efl.h @@ -37,6 +37,9 @@ class CONTENT_EXPORT TtsDispatcherEfl private: ~TtsDispatcherEfl() override; + TtsDispatcherEfl(const TtsDispatcherEfl&) = delete; + TtsDispatcherEfl& operator=(const TtsDispatcherEfl&) = delete; + // RenderThreadObserver override. bool OnControlMessageReceived(const IPC::Message& message) override; @@ -71,8 +74,6 @@ class CONTENT_EXPORT TtsDispatcherEfl // Map from id to utterance objects. std::map utterance_id_map_; - - // DISALLOW_COPY_AND_ASSIGN(TtsDispatcherEfl); }; } // namespace content diff --git a/tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h b/tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h index 108fe07..63be660 100644 --- a/tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h +++ b/tizen_src/chromium_impl/device/battery/battery_status_manager_tizen.h @@ -15,6 +15,10 @@ class BatteryStatusManagerTizen : public BatteryStatusManager { const BatteryStatusService::BatteryUpdateCallback& callback); ~BatteryStatusManagerTizen() override; + BatteryStatusManagerTizen(const BatteryStatusManagerTizen&) = delete; + BatteryStatusManagerTizen& operator=(const BatteryStatusManagerTizen&) = + delete; + BatteryStatus GetCurrentStatus() const { return current_status_; } void SetCurrentStatus(BatteryStatus status) { current_status_ = status; } @@ -31,8 +35,6 @@ class BatteryStatusManagerTizen : public BatteryStatusManager { BatteryStatus current_status_; BatteryStatusService::BatteryUpdateCallback callback_; - - // DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerTizen); }; } // namespace content diff --git a/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h b/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h index b2d03c6..5c31cc3 100644 --- a/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h +++ b/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h @@ -18,6 +18,9 @@ class MEDIA_EXPORT AudioManagerCapi : public AudioManagerBase { explicit AudioManagerCapi(AudioLogFactory* audio_log_factory); ~AudioManagerCapi() override; + AudioManagerCapi(const AudioManagerCapi&) = delete; + AudioManagerCapi& operator=(const AudioManagerCapi&) = delete; + static AudioManager* Create(AudioLogFactory* audio_log_factory); // Implementation of AudioManager. @@ -59,8 +62,6 @@ class MEDIA_EXPORT AudioManagerCapi : public AudioManagerBase { const std::string& device_id); int native_input_sample_rate_; - - // DISALLOW_COPY_AND_ASSIGN(AudioManagerCapi); }; } // namespace media diff --git a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h index eafd569..97d50f6 100644 --- a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h +++ b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h @@ -30,6 +30,9 @@ class CapiAudioInputStream final : public AgcAudioStream { ~CapiAudioInputStream() override; + CapiAudioInputStream(const CapiAudioInputStream&) = delete; + CapiAudioInputStream& operator=(const CapiAudioInputStream&) = delete; + bool Open() override; void Start(AudioInputCallback* callback) override; void Stop() override; @@ -58,8 +61,6 @@ class CapiAudioInputStream final : public AgcAudioStream { // Holds the data from the OS. AudioBlockFifo fifo_; - - // DISALLOW_COPY_AND_ASSIGN(CapiAudioInputStream); }; } // namespace media diff --git a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h index 4ad7228..5d58a57 100644 --- a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h +++ b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h @@ -28,6 +28,9 @@ class CapiAudioOutputStream : public AudioOutputStream { ~CapiAudioOutputStream() override; + CapiAudioOutputStream(const CapiAudioOutputStream&) = delete; + CapiAudioOutputStream& operator=(const CapiAudioOutputStream&) = delete; + bool Open() override; void Close() override; void Start(AudioSourceCallback* callback) override; @@ -51,8 +54,6 @@ class CapiAudioOutputStream : public AudioOutputStream { media::InternalState state_; AudioSourceCallback* source_callback_; std::unique_ptr audio_bus_; - - // DISALLOW_COPY_AND_ASSIGN(CapiAudioOutputStream); }; } // namespace media diff --git a/tizen_src/chromium_impl/media/base/efl/media_player_efl.h b/tizen_src/chromium_impl/media/base/efl/media_player_efl.h index 57fe9cf..2ced3a2 100644 --- a/tizen_src/chromium_impl/media/base/efl/media_player_efl.h +++ b/tizen_src/chromium_impl/media/base/efl/media_player_efl.h @@ -73,6 +73,9 @@ class MEDIA_EXPORT MediaPlayerEfl { protected: explicit MediaPlayerEfl(int player_id, MediaPlayerManager* manager); + MediaPlayerEfl(const MediaPlayerEfl&) = delete; + MediaPlayerEfl& operator=(const MediaPlayerEfl&) = delete; + // Release the player resources. virtual void Release() = 0; MediaPlayerManager* manager() { return manager_; } @@ -92,8 +95,6 @@ class MEDIA_EXPORT MediaPlayerEfl { // Resource manager for all the media players. MediaPlayerManager* manager_; - - // DISALLOW_COPY_AND_ASSIGN(MediaPlayerEfl); }; } // namespace media diff --git a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h index e42a11a..6b51945 100644 --- a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h +++ b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h @@ -27,6 +27,9 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi const std::string& user_agent); ~MediaPlayerBridgeCapi() override; + MediaPlayerBridgeCapi(const MediaPlayerBridgeCapi&) = delete; + MediaPlayerBridgeCapi& operator=(const MediaPlayerBridgeCapi&) = delete; + // MediaPlayerTizen implementation. void Initialize() override; void Resume() override; @@ -108,8 +111,6 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi // NOTE: Weak pointers must be invalidated before all other member variables. base::WeakPtrFactory weak_factory_; - - // DISALLOW_COPY_AND_ASSIGN(MediaPlayerBridgeCapi); }; } // namespace media diff --git a/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h b/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h index 299d4b7..a2d0ae0 100644 --- a/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h +++ b/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h @@ -32,6 +32,9 @@ class MEDIA_EXPORT MediaSourcePlayerCapi ~MediaSourcePlayerCapi() override; + MediaSourcePlayerCapi(const MediaSourcePlayerCapi&) = delete; + MediaSourcePlayerCapi& operator=(const MediaSourcePlayerCapi&) = delete; + // MediaPlayerEfl implementation. void Play() override; void Pause(bool is_media_related_action) override; @@ -135,8 +138,6 @@ class MEDIA_EXPORT MediaSourcePlayerCapi std::deque > video_buffer_queue_; base::WeakPtrFactory weak_factory_; - - // DISALLOW_COPY_AND_ASSIGN(MediaSourcePlayerCapi); }; } // namespace media diff --git a/tizen_src/chromium_impl/media/base/tizen/webaudio_decoder_browser_capi.h b/tizen_src/chromium_impl/media/base/tizen/webaudio_decoder_browser_capi.h index bf704cb..147cd62 100644 --- a/tizen_src/chromium_impl/media/base/tizen/webaudio_decoder_browser_capi.h +++ b/tizen_src/chromium_impl/media/base/tizen/webaudio_decoder_browser_capi.h @@ -24,6 +24,9 @@ class MEDIA_EXPORT WebAudioDecoderCapi : public WebAudioDecoder { static WebAudioDecoderCapi* GetInstance(); virtual ~WebAudioDecoderCapi(); + WebAudioDecoderCapi(const WebAudioDecoderCapi&) = delete; + WebAudioDecoderCapi& operator=(const WebAudioDecoderCapi&) = delete; + // media::WebAudioDecoder implementation. void EncodedDataReceived(base::SharedMemoryHandle memory_handle, base::FileDescriptor pcm_output, @@ -37,8 +40,6 @@ class MEDIA_EXPORT WebAudioDecoderCapi : public WebAudioDecoder { uint32_t data_size); base::Thread capi_thread_; - - // DISALLOW_COPY_AND_ASSIGN(WebAudioDecoderCapi); }; class AudioDecoderCapi { diff --git a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc index 5414053..e1bd0d7 100644 --- a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc +++ b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc @@ -193,10 +193,12 @@ class CameraHandle final { camera_destroy(camera_handle_); } + CameraHandle(const CameraHandle&) = delete; + CameraHandle& operator=(const CameraHandle&) = delete; + camera_h camera_handle_; friend struct base::DefaultSingletonTraits; - // DISALLOW_COPY_AND_ASSIGN(CameraHandle); }; } // namespace diff --git a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h index 065163a..6257dd4 100644 --- a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h +++ b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h @@ -20,6 +20,11 @@ class MEDIA_EXPORT VideoCaptureDeviceFactoryTizen scoped_refptr ui_task_runner); ~VideoCaptureDeviceFactoryTizen() override; + VideoCaptureDeviceFactoryTizen(const VideoCaptureDeviceFactoryTizen&) = + delete; + VideoCaptureDeviceFactoryTizen& operator=( + const VideoCaptureDeviceFactoryTizen&) = delete; + scoped_ptr Create( const VideoCaptureDevice::Name& device_name) override; void GetDeviceNames(VideoCaptureDevice::Names* device_names) override; @@ -29,8 +34,6 @@ class MEDIA_EXPORT VideoCaptureDeviceFactoryTizen private: scoped_refptr ui_task_runner_; - - // DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceFactoryTizen); }; } // namespace media diff --git a/tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h b/tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h index 851d400..6f8c3cc 100644 --- a/tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h +++ b/tizen_src/chromium_impl/ui/base/clipboard/clipboard_helper_efl.h @@ -47,6 +47,10 @@ class ClipboardHelperEfl { private: ClipboardHelperEfl(); + + ClipboardHelperEfl(const ClipboardHelperEfl&) = delete; + ClipboardHelperEfl& operator=(const ClipboardHelperEfl&) = delete; + friend struct base::DefaultSingletonTraits; // TODO: Webview TG will implement following for Wayland. @@ -63,7 +67,6 @@ class ClipboardHelperEfl { #endif void clearClipboardHandler(); void initializeAtomList(); - // DISALLOW_COPY_AND_ASSIGN(ClipboardHelperEfl); Ecore_Event_Handler* m_selectionClearHandler; Ecore_Event_Handler* m_selectionNotifyHandler; diff --git a/tizen_src/chromium_impl/ui/display/device_display_info_efl.cc b/tizen_src/chromium_impl/ui/display/device_display_info_efl.cc index a2ab542..9e4c91b 100644 --- a/tizen_src/chromium_impl/ui/display/device_display_info_efl.cc +++ b/tizen_src/chromium_impl/ui/display/device_display_info_efl.cc @@ -74,6 +74,10 @@ class DISPLAY_EXPORT DeviceDisplayInfoEflImpl { private: DeviceDisplayInfoEflImpl(); + + DeviceDisplayInfoEflImpl(const DeviceDisplayInfoEflImpl&) = delete; + DeviceDisplayInfoEflImpl& operator=(const DeviceDisplayInfoEflImpl&) = delete; + void NotifyDeviceDisplayInfoChanged(); friend struct base::DefaultSingletonTraits; @@ -86,8 +90,6 @@ class DISPLAY_EXPORT DeviceDisplayInfoEflImpl { double dip_scale_; int rotation_degrees_; base::ObserverList::Unchecked observer_list_; - - // DISALLOW_COPY_AND_ASSIGN(DeviceDisplayInfoEflImpl); }; // static diff --git a/tizen_src/chromium_impl/ui/display/device_display_info_efl.h b/tizen_src/chromium_impl/ui/display/device_display_info_efl.h index 47aeb3a..beb26c7 100644 --- a/tizen_src/chromium_impl/ui/display/device_display_info_efl.h +++ b/tizen_src/chromium_impl/ui/display/device_display_info_efl.h @@ -18,6 +18,9 @@ class DISPLAY_EXPORT DeviceDisplayInfoEfl { public: explicit DeviceDisplayInfoEfl(); + DeviceDisplayInfoEfl(const DeviceDisplayInfoEfl&) = delete; + DeviceDisplayInfoEfl& operator=(const DeviceDisplayInfoEfl&) = delete; + // Update all info. void Update(int display_width, int display_height, double dip_scale, int rotation_degrees); @@ -44,9 +47,6 @@ class DISPLAY_EXPORT DeviceDisplayInfoEfl { void AddObserver(DeviceDisplayInfoObserverEfl* observer); void RemoveObserver(DeviceDisplayInfoObserverEfl* observer); - - private: - // DISALLOW_COPY_AND_ASSIGN(DeviceDisplayInfoEfl); }; } // namespace display diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h index e4cd931..0a270e9 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h @@ -35,6 +35,10 @@ class AutofillClientEfl public content::WebContentsObserver { public: virtual ~AutofillClientEfl(); + + AutofillClientEfl(const AutofillClientEfl&) = delete; + AutofillClientEfl& operator=(const AutofillClientEfl&) = delete; + // Called when the tab corresponding to |this| instance is activated. void TabActivated(); // AutofillManagerDelegate implementation. @@ -96,8 +100,6 @@ class AutofillClientEfl EWebView* webview_; scoped_refptr database_; AutofillPopupViewEfl* popup_controller_; - - // DISALLOW_COPY_AND_ASSIGN(AutofillClientEfl); }; } // namespace autofill diff --git a/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h b/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h index 2d3100e..662449e 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h +++ b/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h @@ -49,9 +49,12 @@ class PersonalDataManagerFactory : public PersonalDataManagerObserver { PersonalDataManagerFactory(); ~PersonalDataManagerFactory(); + PersonalDataManagerFactory(const PersonalDataManagerFactory&) = delete; + PersonalDataManagerFactory& operator=(const PersonalDataManagerFactory&) = + delete; + IDMap personal_data_manager_id_map_; - // DISALLOW_COPY_AND_ASSIGN(PersonalDataManagerFactory); Ewk_Context_Form_Autofill_Profile_Changed_Callback callback_; void* callback_user_data_; }; diff --git a/tizen_src/ewk/efl_integration/browser/favicon/favicon_database.h b/tizen_src/ewk/efl_integration/browser/favicon/favicon_database.h index 2dc138d..c82436a 100644 --- a/tizen_src/ewk/efl_integration/browser/favicon/favicon_database.h +++ b/tizen_src/ewk/efl_integration/browser/favicon/favicon_database.h @@ -36,7 +36,9 @@ class FaviconDatabase { private: FaviconDatabase(); - // DISALLOW_COPY_AND_ASSIGN(FaviconDatabase); + + FaviconDatabase(const FaviconDatabase&) = delete; + FaviconDatabase& operator=(const FaviconDatabase&) = delete; bool IsOpen() const; bool Open(); diff --git a/tizen_src/ewk/efl_integration/browser/favicon/favicon_downloader.h b/tizen_src/ewk/efl_integration/browser/favicon/favicon_downloader.h index 301f936..8c4a142 100644 --- a/tizen_src/ewk/efl_integration/browser/favicon/favicon_downloader.h +++ b/tizen_src/ewk/efl_integration/browser/favicon/favicon_downloader.h @@ -27,6 +27,9 @@ class FaviconDownloader : public content::WebContentsObserver { FaviconDownloaderCallback callback); virtual ~FaviconDownloader() {} + FaviconDownloader(const FaviconDownloader&) = delete; + FaviconDownloader& operator=(const FaviconDownloader&) = delete; + void Start(); private: @@ -41,7 +44,6 @@ class FaviconDownloader : public content::WebContentsObserver { GURL m_faviconUrl; FaviconDownloaderCallback m_callback; base::WeakPtrFactory m_weakPtrFactory; - // DISALLOW_COPY_AND_ASSIGN(FaviconDownloader); }; #endif // FAVICON_DOWNLOADER_H diff --git a/tizen_src/ewk/efl_integration/browser/geolocation/location_provider_efl.h b/tizen_src/ewk/efl_integration/browser/geolocation/location_provider_efl.h index cd439db..b47d447 100644 --- a/tizen_src/ewk/efl_integration/browser/geolocation/location_provider_efl.h +++ b/tizen_src/ewk/efl_integration/browser/geolocation/location_provider_efl.h @@ -31,14 +31,16 @@ class LocationProviderEfl : public LocationProviderBase { private: LocationProviderEfl(); + + LocationProviderEfl(const LocationProviderEfl&) = delete; + LocationProviderEfl& operator=(const LocationProviderEfl&) = delete; + static void GeoPositionChangedCb(double, double, double, time_t, void*); void NotifyPositionChanged(double, double, double, time_t); Geoposition last_position_; location_manager_h location_manager_; base::MessageLoop* geolocation_message_loop_; - - // DISALLOW_COPY_AND_ASSIGN(LocationProviderEfl); }; } // namespace content diff --git a/tizen_src/ewk/efl_integration/browser/javascript_dialog_manager_efl.h b/tizen_src/ewk/efl_integration/browser/javascript_dialog_manager_efl.h index 313af2c..12a8314 100644 --- a/tizen_src/ewk/efl_integration/browser/javascript_dialog_manager_efl.h +++ b/tizen_src/ewk/efl_integration/browser/javascript_dialog_manager_efl.h @@ -50,6 +50,10 @@ class JavaScriptDialogManagerEfl : public content::JavaScriptDialogManager { JavaScriptDialogManagerEfl(); virtual ~JavaScriptDialogManagerEfl(); + JavaScriptDialogManagerEfl(const JavaScriptDialogManagerEfl&) = delete; + JavaScriptDialogManagerEfl& operator=(const JavaScriptDialogManagerEfl&) = + delete; + // JavaScriptDialogManager: void RunJavaScriptDialog(content::WebContents* web_contents, content::RenderFrameHost* render_frame_host, @@ -83,8 +87,6 @@ class JavaScriptDialogManagerEfl : public content::JavaScriptDialogManager { std::unique_ptr confirm_callback_data_; std::unique_ptr prompt_callback_data_; DialogClosedCallback dialog_closed_callback_; - - // DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogManagerEfl); }; #endif /* JAVASCRIPT_DIALOG_MANAGER_EFL_H_ */ diff --git a/tizen_src/ewk/efl_integration/browser/mime_override_manager_efl.h b/tizen_src/ewk/efl_integration/browser/mime_override_manager_efl.h index 6b2dffa..0c53e44 100644 --- a/tizen_src/ewk/efl_integration/browser/mime_override_manager_efl.h +++ b/tizen_src/ewk/efl_integration/browser/mime_override_manager_efl.h @@ -31,12 +31,13 @@ class MimeOverrideManagerEfl { private: MimeOverrideManagerEfl() {} + MimeOverrideManagerEfl(const MimeOverrideManagerEfl&) = delete; + MimeOverrideManagerEfl& operator=(const MimeOverrideManagerEfl&) = delete; + friend struct base::DefaultSingletonTraits; base::Lock lock_; MimeOverrideMap mime_override_map_; - - // DISALLOW_COPY_AND_ASSIGN(MimeOverrideManagerEfl); }; #endif // MIME_OVERRIDE_MANAGER_EFL_H_ diff --git a/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h b/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h index 1d270e4..57974f2 100644 --- a/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h +++ b/tizen_src/ewk/efl_integration/browser/notification/notification_controller_efl.h @@ -84,6 +84,10 @@ class NotificationControllerEfl : public PlatformNotificationService { NotificationControllerEfl(); ~NotificationControllerEfl() override; + NotificationControllerEfl(const NotificationControllerEfl&) = delete; + NotificationControllerEfl& operator=(const NotificationControllerEfl&) = + delete; + void NotificationCancelled(uint64_t notification_id); bool NotificationClosed(uint64_t notification_id, bool by_user) { @@ -196,8 +200,6 @@ class NotificationControllerEfl : public PlatformNotificationService { std::unique_ptr permission_handler_; std::unique_ptr default_callback_; std::unique_ptr notification_helper_; - - // DISALLOW_COPY_AND_ASSIGN(NotificationControllerEfl); }; } // namespace content diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h b/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h index 71e7921..f3a26a2 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h @@ -62,6 +62,10 @@ public: private: explicit PasswordManagerClientEfl(content::WebContents* web_contents, autofill::AutofillClient* autofill_client); + + PasswordManagerClientEfl(const PasswordManagerClientEfl&) = delete; + PasswordManagerClientEfl& operator=(const PasswordManagerClientEfl&) = delete; + friend class content::WebContentsUserData; // This filter does not filter out anything, it is a dummy implementation of @@ -89,8 +93,6 @@ public: // Allows authentication callbacks to be destroyed when this client is gone. base::WeakPtrFactory weak_factory_; - - // DISALLOW_COPY_AND_ASSIGN(PasswordManagerClientEfl); }; } diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h b/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h index 7691e6c..4f5d05e 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h @@ -22,11 +22,13 @@ class PasswordStoreService { explicit PasswordStoreService(scoped_refptr password_store); virtual ~PasswordStoreService(); + PasswordStoreService(const PasswordStoreService&) = delete; + PasswordStoreService& operator=(const PasswordStoreService&) = delete; + scoped_refptr GetPasswordStore(); private: scoped_refptr password_store_; - // DISALLOW_COPY_AND_ASSIGN(PasswordStoreService); }; // Singleton that owns all PasswordStores and associates them with @@ -42,11 +44,13 @@ class PasswordStoreFactory { friend struct base::DefaultSingletonTraits; PasswordStoreFactory(); virtual ~PasswordStoreFactory(); + + PasswordStoreFactory(const PasswordStoreFactory&) = delete; + PasswordStoreFactory& operator=(const PasswordStoreFactory&) = delete; + void Init(); std::unique_ptr service_; - - // DISALLOW_COPY_AND_ASSIGN(PasswordStoreFactory); }; } #endif // TIZEN_AUTOFILL_SUPPORT diff --git a/tizen_src/ewk/efl_integration/browser/ssl_host_state_delegate_efl.h b/tizen_src/ewk/efl_integration/browser/ssl_host_state_delegate_efl.h index f6c113b..83a4fe3 100644 --- a/tizen_src/ewk/efl_integration/browser/ssl_host_state_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/browser/ssl_host_state_delegate_efl.h @@ -42,6 +42,9 @@ class SSLHostStateDelegateEfl : public SSLHostStateDelegate { SSLHostStateDelegateEfl(); ~SSLHostStateDelegateEfl() override; + SSLHostStateDelegateEfl(const SSLHostStateDelegateEfl&) = delete; + SSLHostStateDelegateEfl& operator=(const SSLHostStateDelegateEfl&) = delete; + // Records that |cert| is permitted to be used for |host| in the future, for // a specified |error| type. void AllowCert(const std::string& host, @@ -93,8 +96,6 @@ class SSLHostStateDelegateEfl : public SSLHostStateDelegate { private: // Certificate policies for each host. std::map cert_policy_for_host_; - - // DISALLOW_COPY_AND_ASSIGN(SSLHostStateDelegateEfl); }; } diff --git a/tizen_src/ewk/efl_integration/browser/vibration/vibration_provider_client.h b/tizen_src/ewk/efl_integration/browser/vibration/vibration_provider_client.h index a560e28..fd150b2 100644 --- a/tizen_src/ewk/efl_integration/browser/vibration/vibration_provider_client.h +++ b/tizen_src/ewk/efl_integration/browser/vibration/vibration_provider_client.h @@ -23,11 +23,13 @@ class VibrationProviderClientEwk: public device::VibrationProviderClient { , cancel_vibration_cb_(nullptr) , user_data_(nullptr) {} + VibrationProviderClientEwk(const VibrationProviderClientEwk&) = delete; + VibrationProviderClientEwk& operator=(const VibrationProviderClientEwk&) = + delete; + Ewk_Vibration_Client_Vibrate_Cb vibrate_cb_; Ewk_Vibration_Client_Vibration_Cancel_Cb cancel_vibration_cb_; void* user_data_; - - // DISALLOW_COPY_AND_ASSIGN(VibrationProviderClientEwk); }; #endif // Vibration_Provider_Client_h diff --git a/tizen_src/ewk/efl_integration/browser/web_cache_efl/web_cache_manager_efl.h b/tizen_src/ewk/efl_integration/browser/web_cache_efl/web_cache_manager_efl.h index 015ffe9..9a6c3b8 100644 --- a/tizen_src/ewk/efl_integration/browser/web_cache_efl/web_cache_manager_efl.h +++ b/tizen_src/ewk/efl_integration/browser/web_cache_efl/web_cache_manager_efl.h @@ -23,6 +23,9 @@ class WebCacheManagerEfl : public content::NotificationObserver { explicit WebCacheManagerEfl(content::BrowserContext* browser_context); virtual ~WebCacheManagerEfl(); + WebCacheManagerEfl(const WebCacheManagerEfl&) = delete; + WebCacheManagerEfl& operator=(const WebCacheManagerEfl&) = delete; + // content::NotificationObserver implementation: virtual void Observe(int type, const content::NotificationSource& source, @@ -46,7 +49,6 @@ class WebCacheManagerEfl : public content::NotificationObserver { std::set renderers_; content::BrowserContext* browser_context_; Ewk_Cache_Model cache_model_; - // DISALLOW_COPY_AND_ASSIGN(WebCacheManagerEfl); }; #endif diff --git a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h index 7fc149d..cb6a2a9 100644 --- a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h +++ b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h @@ -60,8 +60,8 @@ class WebDataService : public WebDataServiceBase { WebDataService(); virtual ~WebDataService(); - private: - // DISALLOW_COPY_AND_ASSIGN(WebDataService); + WebDataService(const WebDataService&) = delete; + WebDataService& operator=(const WebDataService&) = delete; }; #endif // TIZEN_AUTOFILL_SUPPORT diff --git a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h index 7cf6b0d..14a1e2b 100644 --- a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h +++ b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h @@ -25,6 +25,9 @@ class WebDataServiceWrapper{ virtual ~WebDataServiceWrapper(); + WebDataServiceWrapper(const WebDataServiceWrapper&) = delete; + WebDataServiceWrapper& operator=(const WebDataServiceWrapper&) = delete; + virtual scoped_refptr GetAutofillWebData(); virtual scoped_refptr GetWebData(); @@ -35,8 +38,6 @@ class WebDataServiceWrapper{ scoped_refptr autofill_web_data_; scoped_refptr web_data_; - - // DISALLOW_COPY_AND_ASSIGN(WebDataServiceWrapper); }; // Singleton that owns all WebDataServiceWrappers @@ -56,7 +57,8 @@ class WebDataServiceFactory { WebDataServiceFactory(); virtual ~WebDataServiceFactory(); - // DISALLOW_COPY_AND_ASSIGN(WebDataServiceFactory); + WebDataServiceFactory(const WebDataServiceFactory&) = delete; + WebDataServiceFactory& operator=(const WebDataServiceFactory&) = delete; }; #endif // TIZEN_AUTOFILL_SUPPORT diff --git a/tizen_src/ewk/efl_integration/browser_context_efl.h b/tizen_src/ewk/efl_integration/browser_context_efl.h index 764f735..8980035 100644 --- a/tizen_src/ewk/efl_integration/browser_context_efl.h +++ b/tizen_src/ewk/efl_integration/browser_context_efl.h @@ -40,6 +40,9 @@ class BrowserContextEfl : public BrowserContext, ResourceContextEfl(scoped_refptr cookie_manager); ~ResourceContextEfl(); + ResourceContextEfl(const ResourceContextEfl&) = delete; + ResourceContextEfl& operator=(const ResourceContextEfl&) = delete; + bool HTTPCustomHeaderAdd(const std::string& name, const std::string& value); bool HTTPCustomHeaderRemove(const std::string& name); void HTTPCustomHeaderClear(); @@ -56,13 +59,14 @@ class BrowserContextEfl : public BrowserContext, scoped_refptr cookie_manager_; HTTPCustomHeadersEflMap http_custom_headers_; mutable base::Lock http_custom_headers_lock_; - - // DISALLOW_COPY_AND_ASSIGN(ResourceContextEfl); }; BrowserContextEfl(EWebContext*, bool incognito = false); ~BrowserContextEfl(); + BrowserContextEfl(const BrowserContextEfl&) = delete; + BrowserContextEfl& operator=(const BrowserContextEfl&) = delete; + // BrowserContext implementation. net::URLRequestContextGetter* CreateMediaRequestContext(); net::URLRequestContextGetter* CreateMediaRequestContextForStoragePartition( @@ -139,8 +143,6 @@ class BrowserContextEfl : public BrowserContext, std::unique_ptr ssl_host_state_delegate_; std::unique_ptr background_sync_controller_; std::unique_ptr permission_controller_delegate_; - - // DISALLOW_COPY_AND_ASSIGN(BrowserContextEfl); }; } diff --git a/tizen_src/ewk/efl_integration/browser_main_parts_efl.h b/tizen_src/ewk/efl_integration/browser_main_parts_efl.h index ea9512d..a6206fc 100644 --- a/tizen_src/ewk/efl_integration/browser_main_parts_efl.h +++ b/tizen_src/ewk/efl_integration/browser_main_parts_efl.h @@ -20,14 +20,15 @@ class BrowserMainPartsEfl : public BrowserMainParts { BrowserMainPartsEfl(); ~BrowserMainPartsEfl() override; + BrowserMainPartsEfl(const BrowserMainPartsEfl&) = delete; + BrowserMainPartsEfl& operator=(const BrowserMainPartsEfl&) = delete; + // BrowserMainParts overrides. int PreMainMessageLoopRun() override; void PostMainMessageLoopRun() override; private: DevToolsDelegateEfl* devtools_delegate_; - - // DISALLOW_COPY_AND_ASSIGN(BrowserMainPartsEfl); }; } // namespace content diff --git a/tizen_src/ewk/efl_integration/common/version_info.h b/tizen_src/ewk/efl_integration/common/version_info.h index 7032645..11e0be7 100644 --- a/tizen_src/ewk/efl_integration/common/version_info.h +++ b/tizen_src/ewk/efl_integration/common/version_info.h @@ -86,11 +86,12 @@ class VersionInfo { VersionInfo(); ~VersionInfo() { } + VersionInfo(const VersionInfo&) = delete; + VersionInfo& operator=(const VersionInfo&) = delete; + std::string product_name_; std::string product_version_; static VersionInfo* version_info_; - - // DISALLOW_COPY_AND_ASSIGN(VersionInfo); }; } // namespace EflWebView diff --git a/tizen_src/ewk/efl_integration/content_browser_client_efl.h b/tizen_src/ewk/efl_integration/content_browser_client_efl.h index 6159164..9071a2d 100644 --- a/tizen_src/ewk/efl_integration/content_browser_client_efl.h +++ b/tizen_src/ewk/efl_integration/content_browser_client_efl.h @@ -30,6 +30,9 @@ class ContentBrowserClientEfl : public ContentBrowserClient { ContentBrowserClientEfl(); ~ContentBrowserClientEfl() override; + + ContentBrowserClientEfl(const ContentBrowserClientEfl&) = delete; + ContentBrowserClientEfl& operator=(const ContentBrowserClientEfl&) = delete; typedef base::OnceCallback AcceptLangsChangedCallback; @@ -150,8 +153,6 @@ class ContentBrowserClientEfl : public ContentBrowserClient { std::vector accept_langs_changed_callbacks_; bool shutting_down_ = false; - - // DISALLOW_COPY_AND_ASSIGN(ContentBrowserClientEfl); }; } // namespace content diff --git a/tizen_src/ewk/efl_integration/content_main_delegate_efl.h b/tizen_src/ewk/efl_integration/content_main_delegate_efl.h index f26a3e8..470710f 100644 --- a/tizen_src/ewk/efl_integration/content_main_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/content_main_delegate_efl.h @@ -20,6 +20,9 @@ class ContentMainDelegateEfl ContentMainDelegateEfl() = default; ~ContentMainDelegateEfl() override = default; + ContentMainDelegateEfl(const ContentMainDelegateEfl&) = delete; + ContentMainDelegateEfl& operator=(const ContentMainDelegateEfl&) = delete; + // ContentMainDelegate implementation: absl::optional BasicStartupComplete() override; void PreSandboxStartup() override; @@ -34,7 +37,6 @@ class ContentMainDelegateEfl std::unique_ptr browser_client_; std::unique_ptr renderer_client_; ContentClientEfl content_client_; - // DISALLOW_COPY_AND_ASSIGN(ContentMainDelegateEfl); }; } diff --git a/tizen_src/ewk/efl_integration/cookie_manager.h b/tizen_src/ewk/efl_integration/cookie_manager.h index 78e81ac..61467fd 100644 --- a/tizen_src/ewk/efl_integration/cookie_manager.h +++ b/tizen_src/ewk/efl_integration/cookie_manager.h @@ -32,6 +32,10 @@ class CookieManager : public base::RefCountedThreadSafe { CookieManager(); virtual ~CookieManager(); + + CookieManager(const CookieManager&) = delete; + CookieManager& operator=(const CookieManager&) = delete; + // Delete all cookies that match the specified parameters. If both |url| and // values |cookie_name| are specified all host and domain cookies matching // both will be deleted. If only |url| is specified all host cookies (but not @@ -120,8 +124,6 @@ class CookieManager : public base::RefCountedThreadSafe { base::WeakPtrFactory weak_ptr_factory_; // file scheme base::Lock file_scheme_lock_; - - // DISALLOW_COPY_AND_ASSIGN(CookieManager); }; #endif //cookie_manager_h diff --git a/tizen_src/ewk/efl_integration/devtools_manager_delegate_efl.h b/tizen_src/ewk/efl_integration/devtools_manager_delegate_efl.h index dfdec4a..a4b324d 100644 --- a/tizen_src/ewk/efl_integration/devtools_manager_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/devtools_manager_delegate_efl.h @@ -14,8 +14,9 @@ class DevToolsManagerDelegateEfl : public DevToolsManagerDelegate { DevToolsManagerDelegateEfl(); ~DevToolsManagerDelegateEfl() override; - private: - // DISALLOW_COPY_AND_ASSIGN(DevToolsManagerDelegateEfl); + DevToolsManagerDelegateEfl(const DevToolsManagerDelegateEfl&) = delete; + DevToolsManagerDelegateEfl& operator=(const DevToolsManagerDelegateEfl&) = + delete; }; } // namespace content diff --git a/tizen_src/ewk/efl_integration/ewk_global_data.h b/tizen_src/ewk/efl_integration/ewk_global_data.h index 8f675d6..8249caa 100644 --- a/tizen_src/ewk/efl_integration/ewk_global_data.h +++ b/tizen_src/ewk/efl_integration/ewk_global_data.h @@ -43,6 +43,9 @@ class EwkGlobalData EwkGlobalData(); ~EwkGlobalData(); + EwkGlobalData(const EwkGlobalData&) = delete; + EwkGlobalData& operator=(const EwkGlobalData&) = delete; + static EwkGlobalData* instance_; #if defined(USE_OZONE) @@ -62,8 +65,6 @@ class EwkGlobalData std::unique_ptr browser_main_runner_; scoped_refptr system_request_context_; - - // DISALLOW_COPY_AND_ASSIGN(EwkGlobalData); }; #endif // EWK_GLOBAL_DATA_H_ diff --git a/tizen_src/ewk/efl_integration/http_user_agent_settings_efl.h b/tizen_src/ewk/efl_integration/http_user_agent_settings_efl.h index 264aeb0..e91e9cd 100644 --- a/tizen_src/ewk/efl_integration/http_user_agent_settings_efl.h +++ b/tizen_src/ewk/efl_integration/http_user_agent_settings_efl.h @@ -17,12 +17,12 @@ class HttpUserAgentSettingsEfl : public net::HttpUserAgentSettings { HttpUserAgentSettingsEfl(); ~HttpUserAgentSettingsEfl() override; + HttpUserAgentSettingsEfl(const HttpUserAgentSettingsEfl&) = delete; + HttpUserAgentSettingsEfl& operator=(const HttpUserAgentSettingsEfl&) = delete; + // HttpUserAgentSettings implementation std::string GetAcceptLanguage() const override; std::string GetUserAgent() const override; - - private: - // DISALLOW_COPY_AND_ASSIGN(HttpUserAgentSettingsEfl); }; #endif // HTTP_USER_AGENT_SETTINGS_EFL_H_ diff --git a/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.h b/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.h index 6fef9e9..9037965 100644 --- a/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/permission_controller_delegate_efl.h @@ -23,6 +23,11 @@ class CONTENT_EXPORT PermissionControllerDelegateEfl : public PermissionControll PermissionControllerDelegateEfl(); ~PermissionControllerDelegateEfl() override; + PermissionControllerDelegateEfl(const PermissionControllerDelegateEfl&) = + delete; + PermissionControllerDelegateEfl& operator=( + const PermissionControllerDelegateEfl&) = delete; + void RequestPermission(PermissionType permission, RenderFrameHost* render_frame_host, const GURL& requesting_origin, @@ -85,8 +90,6 @@ class CONTENT_EXPORT PermissionControllerDelegateEfl : public PermissionControll PendingRequestsMap pending_requests_; base::WeakPtrFactory weak_ptr_factory_; - - // DISALLOW_COPY_AND_ASSIGN(PermissionControllerDelegateEfl); }; } diff --git a/tizen_src/ewk/efl_integration/private/ewk_context_private.h b/tizen_src/ewk/efl_integration/private/ewk_context_private.h index 7bd8373..2d29d69 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_context_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_context_private.h @@ -139,9 +139,11 @@ struct Ewk_Context : public base::RefCounted { Ewk_Context(bool incognito); Ewk_Context(const std::string& injectedBundlePath); ~Ewk_Context(); - friend class base::RefCounted; - // DISALLOW_COPY_AND_ASSIGN(Ewk_Context); + Ewk_Context(const Ewk_Context&) = delete; + Ewk_Context& operator=(const Ewk_Context&) = delete; + + friend class base::RefCounted; }; diff --git a/tizen_src/ewk/efl_integration/private/ewk_hit_test_private.h b/tizen_src/ewk/efl_integration/private/ewk_hit_test_private.h index 55ccb87..b61a99e 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_hit_test_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_hit_test_private.h @@ -21,6 +21,9 @@ class _Ewk_Hit_Test { explicit _Ewk_Hit_Test(const Hit_Test_Params& params); ~_Ewk_Hit_Test(); + _Ewk_Hit_Test(const _Ewk_Hit_Test&) = delete; + _Ewk_Hit_Test& operator=(const _Ewk_Hit_Test&) = delete; + Ewk_Hit_Test_Result_Context GetResultContext() const; const char* GetLinkUri() const; @@ -51,12 +54,12 @@ class _Ewk_Hit_Test { explicit Hit_Test_Node_Data(const Hit_Test_Params::Node_Data& data); ~Hit_Test_Node_Data(); + Hit_Test_Node_Data(const Hit_Test_Node_Data&) = delete; + Hit_Test_Node_Data& operator=(const Hit_Test_Node_Data&) = delete; + const std::string tagName; // tag name for hit element const std::string nodeValue; // node value for hit element - Eina_Hash* attributeHash; // attribute data for hit element - - private: - // DISALLOW_COPY_AND_ASSIGN(Hit_Test_Node_Data); + Eina_Hash* attributeHash; // attribute data for hit element } nodeData; // when hit node is image we need to store image buffer and filename extension @@ -64,14 +67,12 @@ class _Ewk_Hit_Test { public: explicit Hit_Test_Image_Buffer(const Hit_Test_Params::Image_Data& data); - const std::string fileNameExtension; // image filename extension for hit element - SkBitmap imageBitmap; // image pixels data + Hit_Test_Image_Buffer(const Hit_Test_Image_Buffer&) = delete; + Hit_Test_Image_Buffer& operator=(const Hit_Test_Image_Buffer&) = delete; - private: - // DISALLOW_COPY_AND_ASSIGN(Hit_Test_Image_Buffer); + const std::string fileNameExtension; // image filename extension for hit element + SkBitmap imageBitmap; // image pixels data } imageData; - - // DISALLOW_COPY_AND_ASSIGN(_Ewk_Hit_Test); }; diff --git a/tizen_src/ewk/efl_integration/private/ewk_notification_private.h b/tizen_src/ewk/efl_integration/private/ewk_notification_private.h index c9c9bd2..80bd08a 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_notification_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_notification_private.h @@ -25,6 +25,9 @@ struct Ewk_Notification { const GURL& securityOrigin); ~Ewk_Notification(); + Ewk_Notification(const Ewk_Notification&) = delete; + Ewk_Notification& operator=(const Ewk_Notification&) = delete; + const char* GetBody() const; const char* GetTitle() const; bool IsSilent() const; @@ -40,8 +43,6 @@ struct Ewk_Notification { bool silent_; uint64_t notificationID_; std::unique_ptr<_Ewk_Security_Origin> origin_; - - // DISALLOW_COPY_AND_ASSIGN(Ewk_Notification); }; struct Ewk_Notification_Permission_Request { @@ -51,6 +52,11 @@ struct Ewk_Notification_Permission_Request { const GURL& source_origin); ~Ewk_Notification_Permission_Request() {} + Ewk_Notification_Permission_Request( + const Ewk_Notification_Permission_Request&) = delete; + Ewk_Notification_Permission_Request& operator=( + const Ewk_Notification_Permission_Request&) = delete; + const _Ewk_Security_Origin* GetSecurityOrigin() const; bool IsDecided() const; bool IsSuspended() const; @@ -62,8 +68,6 @@ struct Ewk_Notification_Permission_Request { base::OnceCallback callback_; bool decided_; mutable bool suspended_; - - // DISALLOW_COPY_AND_ASSIGN(Ewk_Notification_Permission_Request); }; diff --git a/tizen_src/ewk/efl_integration/private/ewk_quota_permission_request_private.h b/tizen_src/ewk/efl_integration/private/ewk_quota_permission_request_private.h index c79d656..0c84563 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_quota_permission_request_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_quota_permission_request_private.h @@ -15,6 +15,10 @@ struct _Ewk_Quota_Permission_Request { public: _Ewk_Quota_Permission_Request(const GURL& url, int64_t newQuota, bool isPersistent); + _Ewk_Quota_Permission_Request(const _Ewk_Quota_Permission_Request&) = delete; + _Ewk_Quota_Permission_Request& operator=( + const _Ewk_Quota_Permission_Request) = delete; + void setView(Evas_Object* view); Evas_Object* getView() const; Eina_Stringshare* GetHost() const; @@ -30,8 +34,6 @@ struct _Ewk_Quota_Permission_Request { int64_t newQuota_; bool isPersistent_; Evas_Object* view_; - - // DISALLOW_COPY_AND_ASSIGN(_Ewk_Quota_Permission_Request); }; #endif // EWK_QUOTA_PERMISSION_REQUEST_PRIVATE_H diff --git a/tizen_src/ewk/efl_integration/private/ewk_security_origin_private.h b/tizen_src/ewk/efl_integration/private/ewk_security_origin_private.h index 7462b51..261a5ac 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_security_origin_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_security_origin_private.h @@ -20,6 +20,9 @@ struct _Ewk_Security_Origin _Ewk_Security_Origin(const GURL& url); ~_Ewk_Security_Origin(); + _Ewk_Security_Origin(const _Ewk_Security_Origin&) = delete; + _Ewk_Security_Origin& operator=(const _Ewk_Security_Origin&) = delete; + GURL GetURL() const; Eina_Stringshare* GetHost() const; Eina_Stringshare* GetProtocol() const; @@ -32,8 +35,6 @@ struct _Ewk_Security_Origin const Eina_Stringshare* host_; const Eina_Stringshare* protocol_; const int port_; - - // DISALLOW_COPY_AND_ASSIGN(_Ewk_Security_Origin); }; #endif // ewk_security_origin_private_h diff --git a/tizen_src/ewk/efl_integration/private/ewk_view_private.cc b/tizen_src/ewk/efl_integration/private/ewk_view_private.cc index 498c01a..87f2db6 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_view_private.cc +++ b/tizen_src/ewk/efl_integration/private/ewk_view_private.cc @@ -15,11 +15,14 @@ struct EwkViewImpl { explicit EwkViewImpl(EWebView* wv) : wv_(wv) {} ~EwkViewImpl() { delete(wv_); } + + EwkViewImpl(const EwkViewImpl&) = delete; + EwkViewImpl& operator=(const EwkViewImpl&) = delete; + EWebView* GetTizenWebView() { return wv_; } const EWebView* GetTizenWebView() const { return wv_; } private: EWebView* wv_; - // DISALLOW_COPY_AND_ASSIGN(EwkViewImpl); }; Evas_Smart_Class parent_smart_class_ = EVAS_SMART_CLASS_INIT_NULL; diff --git a/tizen_src/ewk/efl_integration/private/webview_delegate_ewk.h b/tizen_src/ewk/efl_integration/private/webview_delegate_ewk.h index 010551a..0f4de1c 100644 --- a/tizen_src/ewk/efl_integration/private/webview_delegate_ewk.h +++ b/tizen_src/ewk/efl_integration/private/webview_delegate_ewk.h @@ -30,7 +30,9 @@ struct WebViewDelegateEwk { void RequestHandleOrientationUnlock(EWebView* wv) const; private: WebViewDelegateEwk() {} - // DISALLOW_COPY_AND_ASSIGN(WebViewDelegateEwk); + + WebViewDelegateEwk(const WebViewDelegateEwk&) = delete; + WebViewDelegateEwk& operator=(const WebViewDelegateEwk&) = delete; }; diff --git a/tizen_src/ewk/efl_integration/renderer/content_settings_client_efl.h b/tizen_src/ewk/efl_integration/renderer/content_settings_client_efl.h index e3d3918..5bcf27a 100644 --- a/tizen_src/ewk/efl_integration/renderer/content_settings_client_efl.h +++ b/tizen_src/ewk/efl_integration/renderer/content_settings_client_efl.h @@ -16,14 +16,14 @@ class ContentSettingsClientEfl : public RenderFrameObserver, explicit ContentSettingsClientEfl(RenderFrame* render_view); ~ContentSettingsClientEfl() override; + ContentSettingsClientEfl(const ContentSettingsClientEfl&) = delete; + ContentSettingsClientEfl& operator=(const ContentSettingsClientEfl&) = delete; + // content::RenderFrameObserver implementation. void OnDestruct() override; // blink::WebContentSettingsClient implementation. void DidNotAllowScript() override; - - private: - // DISALLOW_COPY_AND_ASSIGN(ContentSettingsClientEfl); }; } // namespace content diff --git a/tizen_src/ewk/efl_integration/renderer/plugins/plugin_placeholder_efl.h b/tizen_src/ewk/efl_integration/renderer/plugins/plugin_placeholder_efl.h index 9f94147..f931723 100644 --- a/tizen_src/ewk/efl_integration/renderer/plugins/plugin_placeholder_efl.h +++ b/tizen_src/ewk/efl_integration/renderer/plugins/plugin_placeholder_efl.h @@ -25,11 +25,12 @@ class PluginPlaceholderEfl : public plugins::LoadablePluginPlaceholder, const std::string& html_data); ~PluginPlaceholderEfl() override; + PluginPlaceholderEfl(const PluginPlaceholderEfl&) = delete; + PluginPlaceholderEfl& operator=(const PluginPlaceholderEfl&) = delete; + // WebViewPlugin::Delegate (via PluginPlaceholder) method v8::Local GetV8Handle(v8::Isolate*) override; blink::WebPlugin* CreatePlugin() override; - - // DISALLOW_COPY_AND_ASSIGN(PluginPlaceholderEfl); }; #endif // PLUGIN_PLACEHOLDER_EFL_H_ diff --git a/tizen_src/ewk/efl_integration/shared_url_loader_factory_efl.h b/tizen_src/ewk/efl_integration/shared_url_loader_factory_efl.h index 2224851..2190f68 100644 --- a/tizen_src/ewk/efl_integration/shared_url_loader_factory_efl.h +++ b/tizen_src/ewk/efl_integration/shared_url_loader_factory_efl.h @@ -50,13 +50,15 @@ class SharedURLLoaderFactoryEfl : public network::SharedURLLoaderFactory { friend class base::RefCounted; ~SharedURLLoaderFactoryEfl() override = default; + SharedURLLoaderFactoryEfl(const SharedURLLoaderFactoryEfl&) = delete; + SharedURLLoaderFactoryEfl& operator=(const SharedURLLoaderFactoryEfl&) = + delete; + // NetworkContext using the network service, if the network service is // enabled. mojo::NullRemote(), otherwise. mojo::Remote network_service_network_context_; mojo::Remote url_loader_factory_; - - // DISALLOW_COPY_AND_ASSIGN(SharedURLLoaderFactoryEfl); }; /* LCOV_EXCL_STOP */ diff --git a/tizen_src/ewk/efl_integration/url_request_context_getter_efl.h b/tizen_src/ewk/efl_integration/url_request_context_getter_efl.h index ab86706..111a753 100644 --- a/tizen_src/ewk/efl_integration/url_request_context_getter_efl.h +++ b/tizen_src/ewk/efl_integration/url_request_context_getter_efl.h @@ -60,6 +60,10 @@ class URLRequestContextGetterEfl : public net::URLRequestContextGetter { protected: virtual ~URLRequestContextGetterEfl(); + URLRequestContextGetterEfl(const URLRequestContextGetterEfl&) = delete; + URLRequestContextGetterEfl& operator=(const URLRequestContextGetterEfl&) = + delete; + private: void CreateSQLitePersistentCookieStore( const base::FilePath& path, @@ -84,8 +88,6 @@ class URLRequestContextGetterEfl : public net::URLRequestContextGetter { std::unique_ptr cert_verifier_; std::unique_ptr url_request_context_; base::WeakPtrFactory weak_ptr_factory_; - - // DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetterEfl); }; }; // namespace content diff --git a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h index 51a7eeb..a50a0c9 100644 --- a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h @@ -34,6 +34,9 @@ class WebContentsDelegateEfl : public WebContentsDelegate, WebContentsDelegateEfl(EWebView*); ~WebContentsDelegateEfl() override; + WebContentsDelegateEfl(const WebContentsDelegateEfl&) = delete; + WebContentsDelegateEfl& operator=(const WebContentsDelegateEfl&) = delete; + // WebContentsDelegate overrides. WebContents* OpenURLFromTab(WebContents* source, const OpenURLParams& params) override; @@ -233,8 +236,6 @@ class WebContentsDelegateEfl : public WebContentsDelegate, base::WeakPtrFactory weak_ptr_factory_; std::unique_ptr<_Ewk_Certificate_Policy_Decision> certificate_policy_decision_; - - // DISALLOW_COPY_AND_ASSIGN(WebContentsDelegateEfl); }; } diff --git a/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h b/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h index 0377cff..98065a1 100644 --- a/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h +++ b/tizen_src/ewk/efl_integration/web_contents_efl_delegate_ewk.h @@ -13,6 +13,10 @@ class WebContentsEflDelegateEwk : public content::WebContentsEflDelegate { public: WebContentsEflDelegateEwk(EWebView*); + WebContentsEflDelegateEwk(const WebContentsEflDelegateEwk&) = delete; + WebContentsEflDelegateEwk& operator=(const WebContentsEflDelegateEwk&) = + delete; + bool WebContentsCreateAsync(WebContentsCreateCallback) override; void SetUpSmartObject(void*platform_data, void* native_view) override; @@ -43,8 +47,6 @@ class WebContentsEflDelegateEwk : public content::WebContentsEflDelegate { private: EWebView* web_view_; - - // DISALLOW_COPY_AND_ASSIGN(WebContentsEflDelegateEwk); }; #endif // CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_EFL_DELEGATE_EWK_H_ diff --git a/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h b/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h index 59e3af1..7653e12 100644 --- a/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h +++ b/tizen_src/ewk/efl_integration/wrt/wrt_dynamicplugin.h @@ -52,12 +52,13 @@ class WrtDynamicPlugin : public DynamicPlugin { private: WrtDynamicPlugin(); + WrtDynamicPlugin(const WrtDynamicPlugin&) = delete; + WrtDynamicPlugin& operator=(const WrtDynamicPlugin&) = delete; + ParseUrlFun parseURL_; SetWidgetInfoFun set_widget_info_; DatabaseAttachFun database_attach_; OnIPCMessageFun on_IPC_message_; - - // DISALLOW_COPY_AND_ASSIGN(WrtDynamicPlugin); }; #endif // EWK_EFL_INTEGRATION_WRT_WRT_DYNAMICPLUGIN_H_ diff --git a/tizen_src/ewk/efl_integration/wrt/wrt_file_protocol_handler.h b/tizen_src/ewk/efl_integration/wrt/wrt_file_protocol_handler.h index 251c018..ed2f7a9 100644 --- a/tizen_src/ewk/efl_integration/wrt/wrt_file_protocol_handler.h +++ b/tizen_src/ewk/efl_integration/wrt/wrt_file_protocol_handler.h @@ -26,6 +26,9 @@ class WrtFileProtocolHandler : public URLRequestJobFactory::ProtocolHandler { : file_task_runner_(file_task_runner) {} ~WrtFileProtocolHandler() override {} + WrtFileProtocolHandler(const WrtFileProtocolHandler&) = delete; + WrtFileProtocolHandler& operator=(const WrtFileProtocolHandler&) = delete; + std::unique_ptr CreateJob(URLRequest* request) const override; bool IsSafeRedirectTarget(const GURL& location) const override { return false; @@ -35,7 +38,6 @@ class WrtFileProtocolHandler : public URLRequestJobFactory::ProtocolHandler { bool GetWrtParsedUrl(const GURL& url, GURL& parsed_url) const; const scoped_refptr file_task_runner_; - // DISALLOW_COPY_AND_ASSIGN(WrtFileProtocolHandler); }; } // namespace net diff --git a/tizen_src/ewk/efl_integration/wrt/wrt_widget_host.h b/tizen_src/ewk/efl_integration/wrt/wrt_widget_host.h index 1fe575c..903c1aa 100644 --- a/tizen_src/ewk/efl_integration/wrt/wrt_widget_host.h +++ b/tizen_src/ewk/efl_integration/wrt/wrt_widget_host.h @@ -41,13 +41,14 @@ class WrtWidgetHost { WrtWidgetHost(); + WrtWidgetHost(const WrtWidgetHost&) = delete; + WrtWidgetHost& operator=(const WrtWidgetHost&) = delete; + void OnUrlRetrieved(int callback_id, const GURL& url); scoped_refptr message_filter_; base::AtomicSequenceNumber callback_id_generator_; callbacks_type callbacks_; - - // DISALLOW_COPY_AND_ASSIGN(WrtWidgetHost); }; -- 2.7.4 From 7ac7f6326d1b190006ef8ed27f615363f36d3feb Mon Sep 17 00:00:00 2001 From: uzair Date: Fri, 23 Dec 2022 16:39:41 +0530 Subject: [PATCH 06/16] [M108 Migration] Support GLES 3.0 properly This patch enables support for gles 3.0 on evas gl for tizen profiles. In addition, evas_gl_api_get is changed to evas_gl_context_api_get. The gles3 support has been disabled for desktop due to crash in evasgl_make_current(). Hence once crash is resolved it will be enabled for desktop as well. Reference Patch: https://review.tizen.org/gerrit/c/267378 Change-Id: I395c2f9a00c0a3c6ead0a379a35352a86084fb75 Signed-off-by: uzair --- .../rwhv_aura_offscreen_helper_efl.cc | 2 ++ .../chromium_impl/ui/gl/gl_shared_context_efl.cc | 26 +++++++++++++++++----- tizen_src/ewk/efl_integration/command_line_efl.cc | 3 +++ ui/gl/gl_share_group.cc | 10 +++++++++ ui/gl/gl_share_group.h | 9 ++++++++ 5 files changed, 44 insertions(+), 6 deletions(-) diff --git a/tizen_src/chromium_impl/content/browser/renderer_host/rwhv_aura_offscreen_helper_efl.cc b/tizen_src/chromium_impl/content/browser/renderer_host/rwhv_aura_offscreen_helper_efl.cc index 4ea4a0e..80685b6 100644 --- a/tizen_src/chromium_impl/content/browser/renderer_host/rwhv_aura_offscreen_helper_efl.cc +++ b/tizen_src/chromium_impl/content/browser/renderer_host/rwhv_aura_offscreen_helper_efl.cc @@ -323,6 +323,8 @@ void RWHVAuraOffscreenHelperEfl::InitEvasGL() { evas_gl_ = evas_gl_new(evas_); Evas_GL_Context_Version context_version = EVAS_GL_GLES_2_X; + if (GLSharedContextEfl::GetShareGroup()->GetUseGLES3()) + context_version = EVAS_GL_GLES_3_X; evas_gl_context_ = evas_gl_context_version_create( evas_gl_, GLSharedContextEfl::GetEvasGLContext(), context_version); diff --git a/tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc b/tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc index a5ae447..84831f9 100644 --- a/tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc +++ b/tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.cc @@ -30,7 +30,21 @@ struct GLSharedContextEflPrivate : public gl::GLContext { evas_gl_config_->stencil_bits = EVAS_GL_STENCIL_BIT_8; evas_gl_ = evas_gl_new(evas); - evas_gl_context_ = evas_gl_context_create(evas_gl_, 0); + if (!base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableES3GLContext)) { + evas_gl_context_ = + evas_gl_context_version_create(evas_gl_, 0, EVAS_GL_GLES_3_X); + if (evas_gl_context_) { + GLSharedContextEfl::GetShareGroup()->SetUseGLES3(true); + LOG(INFO) << "GLSharedContextEflPrivate(): Create GLES 3.0 Context"; + } + } + + if (!evas_gl_context_) { + evas_gl_context_ = + evas_gl_context_version_create(evas_gl_, 0, EVAS_GL_GLES_2_X); + } + if (!evas_gl_context_) LOG(FATAL) << "GLSharedContextEflPrivate(): Create evas gl context Fail"; @@ -83,11 +97,11 @@ struct GLSharedContextEflPrivate : public gl::GLContext { evas_gl_free(evas_gl_); } - void* handle_; - Evas_GL* evas_gl_; - Evas_GL_Context* evas_gl_context_; - Evas_GL_Surface* evas_gl_surface_; - Evas_GL_Config* evas_gl_config_; + void* handle_ = nullptr; + Evas_GL* evas_gl_ = nullptr; + Evas_GL_Context* evas_gl_context_ = nullptr; + Evas_GL_Surface* evas_gl_surface_ = nullptr; + Evas_GL_Config* evas_gl_config_ = nullptr; }; namespace { diff --git a/tizen_src/ewk/efl_integration/command_line_efl.cc b/tizen_src/ewk/efl_integration/command_line_efl.cc index 550b2b5..8ed5784 100644 --- a/tizen_src/ewk/efl_integration/command_line_efl.cc +++ b/tizen_src/ewk/efl_integration/command_line_efl.cc @@ -67,6 +67,9 @@ content::MainFunctionParams CommandLineEfl::GetDefaultPortParams() { AppendMemoryOptimizationSwitches(p_command_line); + if (IsDesktopProfile()) + p_command_line->AppendSwitch(switches::kDisableES3GLContext); + #if defined(TIZEN_MULTIMEDIA_SUPPORT) && defined(ENABLE_WEBRTC) p_command_line->AppendSwitch(switches::kEnableWebRtcHWH264Encoding); #endif diff --git a/ui/gl/gl_share_group.cc b/ui/gl/gl_share_group.cc index 08a75c1..8c84bb9 100644 --- a/ui/gl/gl_share_group.cc +++ b/ui/gl/gl_share_group.cc @@ -60,6 +60,16 @@ int GLShareGroup::GetRendererID() { } #endif +#if BUILDFLAG(IS_EFL) +void GLShareGroup::SetUseGLES3(bool use) { + use_gles3_ = use; +} + +bool GLShareGroup::GetUseGLES3() { + return use_gles3_; +} +#endif + GLShareGroup::~GLShareGroup() { } diff --git a/ui/gl/gl_share_group.h b/ui/gl/gl_share_group.h index 071e59b7..aaa472a5 100644 --- a/ui/gl/gl_share_group.h +++ b/ui/gl/gl_share_group.h @@ -48,6 +48,11 @@ class GL_EXPORT GLShareGroup : public base::RefCounted { int GetRendererID(); #endif +#if BUILDFLAG(IS_EFL) + void SetUseGLES3(bool use); + bool GetUseGLES3(); +#endif + private: friend class base::RefCounted; @@ -63,6 +68,10 @@ class GL_EXPORT GLShareGroup : public base::RefCounted { #if BUILDFLAG(IS_APPLE) int renderer_id_; #endif + +#if BUILDFLAG(IS_EFL) + bool use_gles3_ = false; +#endif }; } // namespace gl -- 2.7.4 From 82bfd555817732363b16e3c06d702fe9d7b89430 Mon Sep 17 00:00:00 2001 From: "suyambu.rm" Date: Fri, 15 Oct 2021 17:48:42 +0800 Subject: [PATCH 07/16] [M108 Migration][WebGL] Disable |CommandBufferHelper| auto flushing. If |automatic_flushes| is true, buffer of |CommandBufferHelper| is flushed automatically and it causes sync message calls. Due to this main thread is blocked and performance degradation is observed. +--------------------+--------+--------+ | KPI | Before | After | +--------------------+--------+--------+ | 3D/Aquarium | 35~60 | ~60 | +--------------------+--------+--------+ | 3D/100 Objects | 35~60 | ~60 | +--------------------+--------+--------+ (Target : TV) Reference: https://review.tizen.org/gerrit/265363 Change-Id: If287b3b4d12e29c159a70361d251b871377c6818 Signed-off-by: uzair --- content/renderer/renderer_blink_platform_impl.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc index 4cedfbf..b5797d5 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc @@ -750,7 +750,14 @@ RendererBlinkPlatformImpl::CreateOffscreenGraphicsContext3DProvider( attributes.context_type = ToGpuContextType(web_attributes.context_type); +#if BUILDFLAG(IS_TIZEN) + // If |automatic_flushes| is true, buffer of |CommandBufferHelper| is flushed + // automatically and it causes sync message calls. Due to this main thread is + // blocked and performance degradation is observed. + constexpr bool automatic_flushes = false; +#else constexpr bool automatic_flushes = true; +#endif constexpr bool support_locking = false; bool use_grcontext = !attributes.enable_oop_rasterization && web_attributes.support_grcontext; -- 2.7.4 From 66e3ef56966f8ae41a42a0bd12e30868bfa2deb8 Mon Sep 17 00:00:00 2001 From: Venugopal S M Date: Mon, 21 Mar 2022 13:15:30 +0530 Subject: [PATCH 08/16] [MM] Use ESPP for media rendering - Use ESPP for media rendering. - Handling of playback from browser process. - Added support for software rendering. - Also, changes are made to suit 108 upversion. - Alignment is corrected. Reference: - https://review.tizen.org/gerrit/271043 - https://review.tizen.org/gerrit/272693 - https://review.tizen.org/gerrit/271947 - https://review.tizen.org/gerrit/273637 - https://review.tizen.org/gerrit/279293 Change-Id: Ic9b9aa396834431b75deee2b41921f261eff2581 Signed-off-by: Venugopal S M --- .../media/frameless_media_interface_proxy.cc | 4 +- .../media/frameless_media_interface_proxy.h | 4 +- content/browser/media/media_interface_proxy.cc | 26 +- content/browser/media/media_interface_proxy.h | 4 +- content/renderer/media/media_factory.cc | 13 + content/renderer/media/media_interface_factory.cc | 4 +- content/renderer/media/media_interface_factory.h | 4 +- media/BUILD.gn | 2 +- media/base/BUILD.gn | 2 +- media/base/mime_util_internal.cc | 2 +- media/base/pipeline_impl.cc | 4 +- media/ffmpeg/ffmpeg_common.cc | 5 + media/filters/BUILD.gn | 9 + media/media_options.gni | 2 +- media/mojo/clients/mojo_renderer_factory.cc | 5 +- media/mojo/clients/mojo_renderer_factory.h | 5 +- media/mojo/mojom/BUILD.gn | 4 + media/mojo/mojom/interface_factory.mojom | 11 + media/mojo/mojom/renderer_extensions.mojom | 9 + media/mojo/services/interface_factory_impl.cc | 4 +- media/mojo/services/interface_factory_impl.h | 4 +- packaging/chromium-efl.spec | 1 + third_party/ffmpeg/ffmpeg_generated.gni | 2 +- third_party/ffmpeg/ffmpeg_options.gni | 3 +- tizen_src/build/BUILD.gn | 10 + tizen_src/build/config/tizen_features.gni | 8 +- tizen_src/build/gn_chromiumefl.sh | 5 +- .../chromium_impl/content/browser/browser_efl.gni | 15 + .../media_player_renderer_web_contents_observer.cc | 46 + .../media_player_renderer_web_contents_observer.h | 50 ++ .../media/media_web_contents_observer_efl.h | 5 +- .../content/browser/media/tizen_renderer_impl.cc | 385 ++++++++ .../content/browser/media/tizen_renderer_impl.h | 172 ++++ .../media/tizen/media_player_renderer_client.cc | 130 +++ .../media/tizen/media_player_renderer_client.h | 111 +++ .../tizen/media_player_renderer_client_factory.cc | 58 ++ .../tizen/media_player_renderer_client_factory.h | 48 + .../content/renderer/renderer_efl.gni | 9 + tizen_src/chromium_impl/media/BUILD.gn | 23 +- .../media/audio/tizen/audio_manager_capi.h | 14 +- .../media/audio/tizen/capi_audio_input.h | 4 +- .../media/audio/tizen/capi_audio_output.h | 4 +- .../media/base/efl/media_player_efl.h | 18 +- .../media/base/tizen/media_player_bridge_capi.h | 14 +- .../media/base/tizen/media_source_player_capi.h | 22 +- .../tizen/video_capture_device_factory_tizen.cc | 80 +- .../tizen/video_capture_device_factory_tizen.h | 4 + .../media/filters/esplusplayer_buffer_observer.h | 63 ++ .../filters/esplusplayer_buffer_observer_impl.cc | 272 ++++++ .../filters/esplusplayer_buffer_observer_impl.h | 99 +++ .../media/filters/esplusplayer_util.cc | 179 ++++ .../media/filters/esplusplayer_util.h | 47 + .../media/filters/media_player_esplusplayer.cc | 986 +++++++++++++++++++++ .../media/filters/media_player_esplusplayer.h | 149 ++++ tizen_src/chromium_impl/media/media_efl.gni | 20 + 55 files changed, 3065 insertions(+), 118 deletions(-) create mode 100644 tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.cc create mode 100644 tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h create mode 100644 tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc create mode 100644 tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h create mode 100644 tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc create mode 100644 tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h create mode 100644 tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.cc create mode 100644 tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h create mode 100644 tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h create mode 100644 tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc create mode 100644 tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h create mode 100644 tizen_src/chromium_impl/media/filters/esplusplayer_util.cc create mode 100644 tizen_src/chromium_impl/media/filters/esplusplayer_util.h create mode 100644 tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc create mode 100644 tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h diff --git a/content/browser/media/frameless_media_interface_proxy.cc b/content/browser/media/frameless_media_interface_proxy.cc index e6c05fe..757ce3d 100644 --- a/content/browser/media/frameless_media_interface_proxy.cc +++ b/content/browser/media/frameless_media_interface_proxy.cc @@ -116,14 +116,16 @@ void FramelessMediaInterfaceProxy::CreateFlingingRenderer( mojo::PendingRemote client_extenion, mojo::PendingReceiver receiver) {} +#endif // BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) void FramelessMediaInterfaceProxy::CreateMediaPlayerRenderer( mojo::PendingRemote client_extension_remote, mojo::PendingReceiver receiver, mojo::PendingReceiver renderer_extension_receiver) {} -#endif // BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) #if BUILDFLAG(IS_WIN) // Unimplemented method as this requires CDM and media::Renderer services with diff --git a/content/browser/media/frameless_media_interface_proxy.h b/content/browser/media/frameless_media_interface_proxy.h index 2e77a797..75b4756 100644 --- a/content/browser/media/frameless_media_interface_proxy.h +++ b/content/browser/media/frameless_media_interface_proxy.h @@ -64,13 +64,15 @@ class FramelessMediaInterfaceProxy final const base::UnguessableToken& overlay_plane_id, mojo::PendingReceiver receiver) final; #endif -#if BUILDFLAG(IS_ANDROID) +#if defined(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) void CreateMediaPlayerRenderer( mojo::PendingRemote client_extension_remote, mojo::PendingReceiver receiver, mojo::PendingReceiver renderer_extension_receiver) final; +#endif // defined(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) +#if BUILDFLAG(IS_ANDROID) void CreateFlingingRenderer( const std::string& presentation_id, mojo::PendingRemote diff --git a/content/browser/media/media_interface_proxy.cc b/content/browser/media/media_interface_proxy.cc index 0299bd8..04c0711 100644 --- a/content/browser/media/media_interface_proxy.cc +++ b/content/browser/media/media_interface_proxy.cc @@ -78,6 +78,11 @@ #include "media/base/media_switches.h" #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) +#if defined(TIZEN_MULTIMEDIA) +#include "media/mojo/services/mojo_renderer_service.h" // nogncheck +#include "tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h" +#endif + namespace content { namespace { @@ -355,7 +360,6 @@ void MediaInterfaceProxy::CreateMediaPlayerRenderer( mojo::PendingReceiver renderer_extension_receiver) { DCHECK(thread_checker_.CalledOnValidThread()); - media::MojoRendererService::Create( nullptr, std::make_unique( @@ -368,6 +372,26 @@ void MediaInterfaceProxy::CreateMediaPlayerRenderer( } #endif +#if defined(TIZEN_MULTIMEDIA) +void MediaInterfaceProxy::CreateMediaPlayerRenderer( + mojo::PendingRemote + client_extension_remote, + mojo::PendingReceiver receiver, + mojo::PendingReceiver + renderer_extension_receiver) { + DCHECK(thread_checker_.CalledOnValidThread()); + media::MojoRendererService::Create( + nullptr, + std::make_unique( + render_frame_host().GetProcess()->GetID(), + render_frame_host().GetRoutingID(), + WebContents::FromRenderFrameHost(&render_frame_host()), + std::move(renderer_extension_receiver), + std::move(client_extension_remote)), + std::move(receiver)); +} +#endif + #if BUILDFLAG(IS_WIN) void MediaInterfaceProxy::CreateMediaFoundationRenderer( mojo::PendingRemote media_log_remote, diff --git a/content/browser/media/media_interface_proxy.h b/content/browser/media/media_interface_proxy.h index c3b0195..19acc58 100644 --- a/content/browser/media/media_interface_proxy.h +++ b/content/browser/media/media_interface_proxy.h @@ -74,13 +74,15 @@ class MediaInterfaceProxy final : public DocumentUserData, mojo::PendingRemote client_extension, mojo::PendingReceiver receiver) final; +#endif // BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) void CreateMediaPlayerRenderer( mojo::PendingRemote client_extension_remote, mojo::PendingReceiver receiver, mojo::PendingReceiver renderer_extension_request) final; -#endif // BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(TIZEN_MULTIMEDIA) #if BUILDFLAG(IS_WIN) void CreateMediaFoundationRenderer( mojo::PendingRemote media_log_remote, diff --git a/content/renderer/media/media_factory.cc b/content/renderer/media/media_factory.cc index fc6f9b8..7848a79 100644 --- a/content/renderer/media/media_factory.cc +++ b/content/renderer/media/media_factory.cc @@ -79,6 +79,10 @@ #include "url/gurl.h" #endif +#if defined(TIZEN_MULTIMEDIA) +#include "tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h" +#endif + #if BUILDFLAG(ENABLE_CAST_RENDERER) #include "content/renderer/media/cast_renderer_client_factory.h" #endif @@ -578,6 +582,15 @@ MediaFactory::CreateRendererFactorySelector( std::move(factory)); } +#if defined(TIZEN_MULTIMEDIA) + auto media_player_factory = + std::make_unique( + render_thread->compositor_task_runner(), CreateMojoRendererFactory()); + factory_selector->AddBaseFactory(RendererType::kMediaPlayer, + std::move(media_player_factory)); + is_base_renderer_factory_set = true; +#endif + #if BUILDFLAG(IS_ANDROID) DCHECK(interface_broker_); diff --git a/content/renderer/media/media_interface_factory.cc b/content/renderer/media/media_interface_factory.cc index 938f049..632948d 100644 --- a/content/renderer/media/media_interface_factory.cc +++ b/content/renderer/media/media_interface_factory.cc @@ -119,7 +119,7 @@ void MediaInterfaceFactory::CreateCastRenderer( } #endif -#if BUILDFLAG(IS_ANDROID) +#if defined(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) void MediaInterfaceFactory::CreateMediaPlayerRenderer( mojo::PendingRemote client_extension_remote, @@ -141,7 +141,9 @@ void MediaInterfaceFactory::CreateMediaPlayerRenderer( std::move(client_extension_remote), std::move(receiver), std::move(renderer_extension_receiver)); } +#endif // defined(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) +#if BUILDFLAG(IS_ANDROID) void MediaInterfaceFactory::CreateFlingingRenderer( const std::string& presentation_id, mojo::PendingRemote diff --git a/content/renderer/media/media_interface_factory.h b/content/renderer/media/media_interface_factory.h index c017285..47adb9b 100644 --- a/content/renderer/media/media_interface_factory.h +++ b/content/renderer/media/media_interface_factory.h @@ -67,13 +67,15 @@ class MediaInterfaceFactory final : public media::mojom::InterfaceFactory { mojo::PendingRemote client_extension, mojo::PendingReceiver receiver) final; +#endif // BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) void CreateMediaPlayerRenderer( mojo::PendingRemote client_extension_remote, mojo::PendingReceiver receiver, mojo::PendingReceiver renderer_extension_receiver) final; -#endif // BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) #if BUILDFLAG(IS_WIN) void CreateMediaFoundationRenderer( mojo::PendingRemote media_log_remote, diff --git a/media/BUILD.gn b/media/BUILD.gn index 77fa873..548201d 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn @@ -65,7 +65,7 @@ buildflag_header("media_buildflags") { } } -if (proprietary_codecs && media_use_ffmpeg) { +if (proprietary_codecs && media_use_ffmpeg && !tizen_multimedia) { assert( ffmpeg_branding != "Chromium", "proprietary codecs and ffmpeg_branding set to Chromium are incompatible") diff --git a/media/base/BUILD.gn b/media/base/BUILD.gn index 6660d88..42dfa5d 100644 --- a/media/base/BUILD.gn +++ b/media/base/BUILD.gn @@ -454,7 +454,7 @@ source_set("base") { sources += [ "demuxer_memory_limit_android.cc" ] } else if (is_castos) { sources += [ "demuxer_memory_limit_cast.cc" ] - } else if (is_fuchsia) { + } else if (is_fuchsia || tizen_multimedia) { sources += [ "demuxer_memory_limit_low.cc" ] } else { sources += [ "demuxer_memory_limit_default.cc" ] diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc index 5629c05..879acf4 100644 --- a/media/base/mime_util_internal.cc +++ b/media/base/mime_util_internal.cc @@ -417,7 +417,7 @@ void MimeUtil::AddSupportedMediaFormats() { #endif // BUILDFLAG(IS_ANDROID) #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) -#if defined(TIZEN_MULTIMEDIA) // Tizen supports HLS & m3u8. +#if defined(TIZEN_MULTIMEDIA) // Tizen supports HLS & m3u8. AddContainerWithCodecs("video/3gpp", mp4_codecs); AddContainerWithCodecs("application/vnd.apple.mpegurl", mp4_codecs); AddContainerWithCodecs("application/x-mpegURL", mp4_codecs); diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc index 4f79aa7..30159d7 100644 --- a/media/base/pipeline_impl.cc +++ b/media/base/pipeline_impl.cc @@ -380,11 +380,13 @@ void PipelineImpl::RendererWrapper::Seek(base::TimeDelta time) { // Abort any reads the renderer may be blocked on. demuxer_->AbortPendingReads(); - + // Flush is not a pre-requisite for ESPP seek. +#if !defined(TIZEN_MULTIMEDIA) // Flush. DCHECK(shared_state_.renderer); bound_fns.Push(base::BindOnce( &Renderer::Flush, base::Unretained(shared_state_.renderer.get()))); +#endif // Seek demuxer. bound_fns.Push(base::BindOnce(&Demuxer::Seek, base::Unretained(demuxer_), diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc index 899d752..57c52e3 100644 --- a/media/ffmpeg/ffmpeg_common.cc +++ b/media/ffmpeg/ffmpeg_common.cc @@ -405,6 +405,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, codec_context->extradata + codec_context->extradata_size); } +#if defined(EWK_BRINGUP) && defined(TIZEN_MULTIMEDIA) + // TODO: Address the hardcoding. + sample_format = kSampleFormatS16; +#endif + config->Initialize(codec, sample_format, channel_layout, codec_context->sample_rate, extra_data, encryption_scheme, seek_preroll, codec_context->delay); diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn index 129afcc..f556dec 100644 --- a/media/filters/BUILD.gn +++ b/media/filters/BUILD.gn @@ -5,6 +5,10 @@ import("//media/gpu/args.gni") import("//media/media_options.gni") +if (tizen_multimedia) { + import("//tizen_src/chromium_impl/media/media_efl.gni") +} + source_set("filters") { # Do not expand the visibility here without double-checking with OWNERS, this # is a roll-up target which is part of the //media component. Most other DEPs @@ -250,6 +254,11 @@ source_set("filters") { "h264_bitstream_buffer.h", ] } + + if (tizen_multimedia) { + configs += external_media_video_decode_config + sources += external_media_video_decode_sources + } } source_set("perftests") { diff --git a/media/media_options.gni b/media/media_options.gni index 26f6604..7ff34f1 100644 --- a/media/media_options.gni +++ b/media/media_options.gni @@ -25,7 +25,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 && !is_tizen + media_use_ffmpeg = true && tizen_multimedia # Enable usage of libvpx within the media library. Used for software based # decoding of VP9 and VP8A type content. diff --git a/media/mojo/clients/mojo_renderer_factory.cc b/media/mojo/clients/mojo_renderer_factory.cc index 443b787..487930d 100644 --- a/media/mojo/clients/mojo_renderer_factory.cc +++ b/media/mojo/clients/mojo_renderer_factory.cc @@ -105,7 +105,8 @@ std::unique_ptr MojoRendererFactory::CreateFlingingRenderer( video_renderer_sink, std::move(renderer_remote)); } - +#endif +#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) std::unique_ptr MojoRendererFactory::CreateMediaPlayerRenderer( mojo::PendingReceiver renderer_extension_receiver, @@ -125,6 +126,6 @@ std::unique_ptr MojoRendererFactory::CreateMediaPlayerRenderer( video_renderer_sink, std::move(renderer_remote)); } -#endif // BUILDFLAG(IS_ANDROID) +#endif // BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) } // namespace media diff --git a/media/mojo/clients/mojo_renderer_factory.h b/media/mojo/clients/mojo_renderer_factory.h index e36799e..37bcbf6 100644 --- a/media/mojo/clients/mojo_renderer_factory.h +++ b/media/mojo/clients/mojo_renderer_factory.h @@ -72,7 +72,8 @@ class MojoRendererFactory final : public RendererFactory { client_extenion_ptr, const scoped_refptr& media_task_runner, VideoRendererSink* video_renderer_sink); - +#endif // BUILDFLAG (IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) std::unique_ptr CreateMediaPlayerRenderer( mojo::PendingReceiver renderer_extension_receiver, @@ -80,7 +81,7 @@ class MojoRendererFactory final : public RendererFactory { client_extension_remote, const scoped_refptr& media_task_runner, VideoRendererSink* video_renderer_sink); -#endif // defined (OS_ANDROID) +#endif // BUILDFLAG (IS_ANDROID) || defined(TIZEN_MULTIMEDIA) private: // InterfaceFactory or InterfaceProvider used to create or connect to remote diff --git a/media/mojo/mojom/BUILD.gn b/media/mojo/mojom/BUILD.gn index 988ee25..0783af8 100644 --- a/media/mojo/mojom/BUILD.gn +++ b/media/mojo/mojom/BUILD.gn @@ -120,6 +120,10 @@ mojom("mojom") { enabled_features += [ "enable_cast_renderer" ] } + if (tizen_multimedia) { + enabled_features += [ "tizen_multimedia" ] + } + shared_typemaps = [ { types = [ diff --git a/media/mojo/mojom/interface_factory.mojom b/media/mojo/mojom/interface_factory.mojom index bc72da0..5aa4358 100644 --- a/media/mojo/mojom/interface_factory.mojom +++ b/media/mojo/mojom/interface_factory.mojom @@ -97,4 +97,15 @@ interface InterfaceFactory { (pending_remote? cdm, CdmContext? cdm_context, string error_message); + + [EnableIf=tizen_multimedia] + // Creates a MediaPlayerRenderer (MediaPlayerRendererClientFactory). + // - |renderer_extension| is bound in MediaPlayerRenderer, and receives calls + // from MediaPlayerRendererClient. + // - |client_extension| is bound in MediaPlayerRendererClient, and receives + // calls from the MediaPlayerRenderer. + CreateMediaPlayerRenderer( + pending_remote client_extension, + pending_receiver renderer, + pending_receiver renderer_extension); }; diff --git a/media/mojo/mojom/renderer_extensions.mojom b/media/mojo/mojom/renderer_extensions.mojom index c326d52..e750c7d 100644 --- a/media/mojo/mojom/renderer_extensions.mojom +++ b/media/mojo/mojom/renderer_extensions.mojom @@ -6,6 +6,7 @@ module media.mojom; import "media/mojo/mojom/media_types.mojom"; import "mojo/public/mojom/base/time.mojom"; +import "mojo/public/mojom/base/shared_memory.mojom"; import "mojo/public/mojom/base/unguessable_token.mojom"; import "ui/gfx/geometry/mojom/geometry.mojom"; @@ -21,6 +22,14 @@ interface MediaPlayerRendererClientExtension { // metadata changes. OnVideoSizeChange(gfx.mojom.Size size); OnDurationChange(mojo_base.mojom.TimeDelta duration); + + [EnableIf=tizen_multimedia] + OnNewFrameAvailable(uint32 playerId, + mojo_base.mojom.UnsafeSharedMemoryRegion frame, + uint32 size, + mojo_base.mojom.TimeDelta timestamp, + uint32 width, + uint32 height); }; // Extension of the mojo::Renderer communication layer for HLS and Android diff --git a/media/mojo/services/interface_factory_impl.cc b/media/mojo/services/interface_factory_impl.cc index 4cff23f..8aaff39 100644 --- a/media/mojo/services/interface_factory_impl.cc +++ b/media/mojo/services/interface_factory_impl.cc @@ -144,7 +144,7 @@ void InterfaceFactoryImpl::CreateCastRenderer( } #endif -#if BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) void InterfaceFactoryImpl::CreateMediaPlayerRenderer( mojo::PendingRemote client_extension_ptr, @@ -153,7 +153,9 @@ void InterfaceFactoryImpl::CreateMediaPlayerRenderer( renderer_extension_receiver) { NOTREACHED(); } +#endif // BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) +#if defined(IS_ANDROID) void InterfaceFactoryImpl::CreateFlingingRenderer( const std::string& audio_device_id, mojo::PendingRemote diff --git a/media/mojo/services/interface_factory_impl.h b/media/mojo/services/interface_factory_impl.h index dec82db..9aa22c8 100644 --- a/media/mojo/services/interface_factory_impl.h +++ b/media/mojo/services/interface_factory_impl.h @@ -68,13 +68,15 @@ class InterfaceFactoryImpl final const base::UnguessableToken& overlay_plane_id, mojo::PendingReceiver receiver) final; #endif -#if BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) void CreateMediaPlayerRenderer( mojo::PendingRemote client_extension_remote, mojo::PendingReceiver receiver, mojo::PendingReceiver renderer_extension_receiver) final; +#endif // BUILDFLAG(IS_ANDROID) || defined(TIZEN_MULTIMEDIA) +#if defined(IS_ANDROID) void CreateFlingingRenderer( const std::string& presentation_id, mojo::PendingRemote diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec index acb8062..f44962f 100644 --- a/packaging/chromium-efl.spec +++ b/packaging/chromium-efl.spec @@ -69,6 +69,7 @@ BuildRequires: pkgconfig(ecore-imf-evas) BuildRequires: pkgconfig(ecore-input) BuildRequires: pkgconfig(efl-extension) BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(esplusplayer) BuildRequires: pkgconfig(evas) BuildRequires: pkgconfig(feedback) BuildRequires: pkgconfig(fontconfig) diff --git a/third_party/ffmpeg/ffmpeg_generated.gni b/third_party/ffmpeg/ffmpeg_generated.gni index 91f4681..d2acd7d 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_asm_sources = [] -use_linux_config = is_linux || is_chromeos || is_fuchsia +use_linux_config = is_linux || is_chromeos || is_fuchsia || tizen_multimedia if ((is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config)) { ffmpeg_c_sources += [ diff --git a/third_party/ffmpeg/ffmpeg_options.gni b/third_party/ffmpeg/ffmpeg_options.gni index 1db5f38..8aee1b8 100644 --- a/third_party/ffmpeg/ffmpeg_options.gni +++ b/third_party/ffmpeg/ffmpeg_options.gni @@ -6,6 +6,7 @@ import("//build/config/arm.gni") import("//build/config/chrome_build.gni") import("//build/config/chromecast_build.gni") import("//build/config/sanitizers/sanitizers.gni") +import("//tizen_src/build/config/tizen_features.gni") if (is_chrome_branded) { _default_ffmpeg_branding = "Chrome" @@ -67,7 +68,7 @@ if (current_cpu == "x86") { os_config = current_os if ((is_linux || is_chromeos) && is_msan) { os_config = "linux-noasm" -} else if (is_chromeos || is_fuchsia) { +} else if (is_chromeos || is_fuchsia || tizen_multimedia) { os_config = "linux" } else if (is_win && !is_clang) { os_config = "win-msvc" diff --git a/tizen_src/build/BUILD.gn b/tizen_src/build/BUILD.gn index 14ac742..3fbf271 100644 --- a/tizen_src/build/BUILD.gn +++ b/tizen_src/build/BUILD.gn @@ -505,6 +505,16 @@ config("mm-player") { } } +if (tizen_multimedia) { + config("esplusplayer") { + ldflags = [ "-lesplusplayer" ] + } + + tizen_pkg_config("libesplusplayer") { + packages = [ "esplusplayer" ] + } +} + tizen_pkg_config("libmm-player") { packages = [] if (is_tizen) { diff --git a/tizen_src/build/config/tizen_features.gni b/tizen_src/build/config/tizen_features.gni index 64a4947..650fb25 100644 --- a/tizen_src/build/config/tizen_features.gni +++ b/tizen_src/build/config/tizen_features.gni @@ -22,10 +22,7 @@ declare_args() { use_cairo = false use_pango = false - tizen_multimedia_eme_support = false - tizen_multimedia_support = false werror = false - tizen_multimedia = false tizen_clang_base_path = "//tizen_src/buildtools/llvm" @@ -41,6 +38,11 @@ declare_args() { tizen_version_major = 0 tizen_version_minor = 0 tizen_version_patch = 0 + + # Tizen multimedia related + tizen_multimedia_eme_support = false + tizen_multimedia_support = false + tizen_multimedia = false tizen_tbm_support = false } diff --git a/tizen_src/build/gn_chromiumefl.sh b/tizen_src/build/gn_chromiumefl.sh index c994ffd..d11a662 100755 --- a/tizen_src/build/gn_chromiumefl.sh +++ b/tizen_src/build/gn_chromiumefl.sh @@ -167,7 +167,6 @@ add_tizen_flags() { enable_nacl=false enable_basic_printing=true enable_print_preview=true - tizen_multimedia_eme_support=false use_xkbcommon=true target_os="\"tizen\"" target_sysroot=\"/\" @@ -213,8 +212,8 @@ add_tizen_flags() { # [M49_2623] Temporary disabling the flag. # FIXME: http://165.213.149.170/jira/browse/TWF-610 - ADDITIONAL_GN_PARAMETERS+="tizen_multimedia_support=false - tizen_multimedia=true + ADDITIONAL_GN_PARAMETERS+="tizen_multimedia=true + proprietary_codecs=true tizen_tbm_support=false " } diff --git a/tizen_src/chromium_impl/content/browser/browser_efl.gni b/tizen_src/chromium_impl/content/browser/browser_efl.gni index 1ae5fbf..668d5d0 100644 --- a/tizen_src/chromium_impl/content/browser/browser_efl.gni +++ b/tizen_src/chromium_impl/content/browser/browser_efl.gni @@ -123,6 +123,21 @@ if (tizen_multimedia_support) { "//tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h", ] } + +if (tizen_multimedia) { + external_content_browser_efl_configs += [ + "//tizen_src/build:esplusplayer", + "//tizen_src/build:libesplusplayer", + ] + + external_content_browser_efl_sources += [ + "//tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.cc", + "//tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h", + "//tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc", + "//tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h", + ] +} + if (tizen_tbm_support) { external_content_browser_efl_sources += [ "//tizen_src/chromium_impl/content/browser/media/browser_mediapacket_manager.cc", diff --git a/tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.cc b/tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.cc new file mode 100644 index 0000000..2fdfa87 --- /dev/null +++ b/tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.cc @@ -0,0 +1,46 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h" + +#include "tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h" + +namespace content { + +MediaPlayerRendererWebContentsObserver::MediaPlayerRendererWebContentsObserver( + WebContents* contents) + : WebContentsUserData(*contents) {} + +MediaPlayerRendererWebContentsObserver:: + ~MediaPlayerRendererWebContentsObserver() = default; + +void MediaPlayerRendererWebContentsObserver::AddMediaPlayerRenderer( + content::TizenRendererImpl* player) { + DCHECK(player); + DCHECK(players_.find(player) == players_.end()); + players_.insert(player); +} + +void MediaPlayerRendererWebContentsObserver::RemoveMediaPlayerRenderer( + content::TizenRendererImpl* player) { + DCHECK(player); + auto erase_result = players_.erase(player); + DCHECK_EQ(1u, erase_result); +} + +void MediaPlayerRendererWebContentsObserver::DidUpdateAudioMutingState( + bool muted) { + for (content::TizenRendererImpl* player : players_) + player->OnUpdateAudioMutingState(muted); +} + +void MediaPlayerRendererWebContentsObserver::WebContentsDestroyed() { + for (content::TizenRendererImpl* player : players_) + player->OnWebContentsDestroyed(); + players_.clear(); +} + +WEB_CONTENTS_USER_DATA_KEY_IMPL(MediaPlayerRendererWebContentsObserver); + +} // namespace content diff --git a/tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h b/tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h new file mode 100644 index 0000000..3b04c9e --- /dev/null +++ b/tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h @@ -0,0 +1,50 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_WEB_CONTENTS_OBSERVER_H_ +#define CONTENT_BROWSER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_WEB_CONTENTS_OBSERVER_H_ + +#include "base/containers/flat_set.h" +#include "content/public/browser/web_contents_observer.h" +#include "content/public/browser/web_contents_user_data.h" + +namespace content { + +class TizenRendererImpl; + +// This class propagates WebContents muting updates to MediaPlayerRenderers. +// This allows us to avoid adding N WebContentsObservers for N +// MediaPlayerRenderers on a page. Essentially, this is a call-stack filter to +// prevent uninteresting observer methods from calling into the +// MediaPlayerRenderers. +class MediaPlayerRendererWebContentsObserver + : public WebContentsObserver, + public WebContentsUserData { + public: + MediaPlayerRendererWebContentsObserver( + const MediaPlayerRendererWebContentsObserver&) = delete; + MediaPlayerRendererWebContentsObserver& operator=( + const MediaPlayerRendererWebContentsObserver&) = delete; + + ~MediaPlayerRendererWebContentsObserver() override; + + void AddMediaPlayerRenderer(content::TizenRendererImpl* player); + void RemoveMediaPlayerRenderer(content::TizenRendererImpl* player); + + // WebContentsObserver implementation. + void DidUpdateAudioMutingState(bool muted) override; + void WebContentsDestroyed() override; + + private: + explicit MediaPlayerRendererWebContentsObserver(WebContents* web_contents); + friend class WebContentsUserData; + + base::flat_set players_; + + WEB_CONTENTS_USER_DATA_KEY_DECL(); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_WEB_CONTENTS_OBSERVER_H_ diff --git a/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h b/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h index 716d66b..9e31a76 100644 --- a/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h +++ b/tizen_src/chromium_impl/content/browser/media/media_web_contents_observer_efl.h @@ -18,10 +18,11 @@ class BrowserMediaPlayerManagerEfl; // browser side. It receives IPC messages from media RenderFrameObservers and // forwards them to the corresponding managers. The managers are responsible // for sending IPCs back to the RenderFrameObservers at the render side. -class CONTENT_EXPORT MediaWebContentsObserver - : public WebContentsObserver { +class CONTENT_EXPORT MediaWebContentsObserver : public WebContentsObserver { public: explicit MediaWebContentsObserver(WebContents* web_contents); + MediaWebContentsObserver(const MediaWebContentsObserver&) = delete; + MediaWebContentsObserver& operator=(const MediaWebContentsObserver&) = delete; virtual ~MediaWebContentsObserver(); MediaWebContentsObserver(const MediaWebContentsObserver&) = delete; diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc new file mode 100644 index 0000000..5ff233d --- /dev/null +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc @@ -0,0 +1,385 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h" + +#include "base/bind.h" +#include "base/command_line.h" +#include "base/task/single_thread_task_runner.h" +#include "base/trace_event/trace_event.h" +#include "content/browser/web_contents/web_contents_impl.h" +#include "content/public/browser/browser_context.h" +#include "content/public/browser/browser_task_traits.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/content_browser_client.h" +#include "content/public/browser/render_process_host.h" +#include "content/public/browser/web_contents.h" +#include "content/public/common/content_client.h" +#include "media/base/audio_decoder_config.h" +#include "media/base/bind_to_current_loop.h" +#include "media/base/media_resource.h" +#include "media/base/media_switches.h" +#include "media/base/renderer_client.h" +#include "media/base/video_decoder_config.h" +#include "tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h" +#include "tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h" + +namespace content { +namespace { +const float kDefaultVolume = 1.0; +} + +class TizenRendererImpl::RendererClientInternal final + : public media::RendererClient { + public: + RendererClientInternal(media::DemuxerStream::Type type, + TizenRendererImpl* renderer) + : type_(type), renderer_(renderer) { + DCHECK((type_ == media::DemuxerStream::AUDIO) || + (type_ == media::DemuxerStream::VIDEO)); + } + + void OnError(media::PipelineStatus error) override { + renderer_->OnError(error); + } + + // Callback executed when there is a fallback somewhere in the pipeline which + // should be recorded for metrics analysis. + void OnFallback(media::PipelineStatus fallback) override {} + + void OnEnded() override { renderer_->OnRendererEnded(); } + + void OnStatisticsUpdate(const media::PipelineStatistics& stats) override { + renderer_->OnStatisticsUpdate(stats); + } + + void OnBufferingStateChange( + media::BufferingState state, + media::BufferingStateChangeReason reason) override { + renderer_->OnBufferingStateChange(state, reason); + } + + void OnWaiting(media::WaitingReason reason) override { + renderer_->OnWaiting(reason); + } + + void OnAudioConfigChange(const media::AudioDecoderConfig& config) override { + renderer_->OnAudioConfigChange(config); + } + + void OnVideoConfigChange(const media::VideoDecoderConfig& config) override { + renderer_->OnVideoConfigChange(config); + } + + void OnVideoNaturalSizeChange(const gfx::Size& size) override { + DCHECK(type_ == media::DemuxerStream::VIDEO); + renderer_->OnVideoNaturalSizeChange(size); + } + + void OnVideoOpacityChange(bool opaque) override { + DCHECK(type_ == media::DemuxerStream::VIDEO); + renderer_->OnVideoOpacityChange(opaque); + } + + void OnVideoFrameRateChange(absl::optional fps) override { + DCHECK(type_ == media::DemuxerStream::VIDEO); + renderer_->OnVideoFrameRateChange(fps); + } + + private: + media::DemuxerStream::Type type_; + TizenRendererImpl* renderer_; +}; + +TizenRendererImpl::TizenRendererImpl( + int process_id, + int routing_id, + WebContents* web_contents, + mojo::PendingReceiver renderer_extension_receiver, + mojo::PendingRemote client_extension_remote) + : client_extension_(std::move(client_extension_remote)), + render_process_id_(process_id), + routing_id_(routing_id), + volume_(kDefaultVolume), + renderer_extension_receiver_(this, + std::move(renderer_extension_receiver)) { + DCHECK_EQ(WebContents::FromRenderFrameHost( + RenderFrameHost::FromID(process_id, routing_id)), + web_contents); + + WebContentsImpl* web_contents_impl = + static_cast(web_contents); + web_contents_muted_ = web_contents_impl && web_contents_impl->IsAudioMuted(); + task_runner_ = base::ThreadTaskRunnerHandle::Get(); + + if (web_contents) { + MediaPlayerRendererWebContentsObserver::CreateForWebContents(web_contents); + web_contents_observer_ = + MediaPlayerRendererWebContentsObserver::FromWebContents(web_contents); + if (web_contents_observer_) + web_contents_observer_->AddMediaPlayerRenderer(this); + } +} + +TizenRendererImpl::TizenRendererImpl( + const scoped_refptr& task_runner, + media::VideoRendererSink* sink) + : state_(STATE_UNINITIALIZED), + task_runner_(task_runner), + sink_(sink), + volume_(1.0), + renderer_extension_receiver_(this), + playback_rate_(0.0) { + // TODO(dalecurtis): Remove once experiments for http://crbug.com/470940 are + // complete. + int threshold_ms = 0; + std::string threshold_ms_str( + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( + switches::kVideoUnderflowThresholdMs)); + if (base::StringToInt(threshold_ms_str, &threshold_ms) && threshold_ms > 0) { + NOTIMPLEMENTED(); + } +} + +TizenRendererImpl::~TizenRendererImpl() { + DCHECK(task_runner_->BelongsToCurrentThread()); + + weak_factory_.InvalidateWeakPtrs(); + + // TODO + if (init_cb_) + ; + else if (flush_cb_) + ; + if (web_contents_observer_) + web_contents_observer_->RemoveMediaPlayerRenderer(this); +} + +void TizenRendererImpl::Initialize(media::MediaResource* media_resource, + media::RendererClient* client, + media::PipelineStatusCallback init_cb) { + DCHECK(task_runner_->BelongsToCurrentThread()); + DCHECK_EQ(state_, STATE_UNINITIALIZED); + DCHECK(init_cb); + DCHECK(client); + TRACE_EVENT_ASYNC_BEGIN0("media", "TizenRendererImpl::Initialize", this); + + client_ = client; + init_cb_ = std::move(init_cb); + media_resource_ = media_resource; + + if (!media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Initialize(sink_)) { + std::move(init_cb_).Run(media::PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + + std::move(init_cb_).Run(media::PIPELINE_OK); + + // TODO: return unsupported error for CDM. + state_ = STATE_INITIALIZING; + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetTaskRunner( + task_runner_.get()); + SetStreamInfo(); +} + +void TizenRendererImpl::SetStreamInfo() { + audio_stream_ = media_resource_->GetFirstStream(media::DemuxerStream::AUDIO); + if (audio_stream_) { + audio_renderer_client_ = std::make_unique( + media::DemuxerStream::AUDIO, this); + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetStreamInfo( + media::DemuxerStream::AUDIO, audio_stream_, + audio_renderer_client_.get()); + } + + video_stream_ = media_resource_->GetFirstStream(media::DemuxerStream::VIDEO); + if (video_stream_) { + video_renderer_client_ = std::make_unique( + media::DemuxerStream::VIDEO, this); + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetStreamInfo( + media::DemuxerStream::VIDEO, video_stream_, + video_renderer_client_.get()); +#if defined(TIZEN_TBM_SUPPORT) + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetFrameAvailableCallback( + base::BindRepeating(&TizenRendererImpl::OnNewTbmFrameAvailable, + base::Unretained(this))); +#else + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetFrameAvailableCallback( + base::BindRepeating(&TizenRendererImpl::OnNewFrameAvailable, + base::Unretained(this))); +#endif + } +} + +void TizenRendererImpl::SetCdm(media::CdmContext* cdm_context, + CdmAttachedCB cdm_attached_cb) { + DCHECK(task_runner_->BelongsToCurrentThread()); + DCHECK(cdm_context); + TRACE_EVENT0("media", "TizenRendererImpl::SetCdm"); + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::SetLatencyHint( + absl::optional latency_hint) { + DCHECK(!latency_hint || (*latency_hint >= base::TimeDelta())); + DCHECK(task_runner_->BelongsToCurrentThread()); + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::SetPreservesPitch(bool preserves_pitch) { + DCHECK(task_runner_->BelongsToCurrentThread()); + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::OnNewFrameAvailable( + uint32_t playerId, + base::UnsafeSharedMemoryRegion frame, + uint32_t size, + base::TimeDelta timestamp, + uint32_t width, + uint32_t height) { + client_extension_->OnNewFrameAvailable(playerId, std::move(frame), size, + timestamp, width, height); +} + +void TizenRendererImpl::Flush(base::OnceClosure flush_cb) { + DCHECK(task_runner_->BelongsToCurrentThread()); + DCHECK(!flush_cb_); + TRACE_EVENT_ASYNC_BEGIN0("media", "TizenRendererImpl::Flush", this); + + if (state_ == STATE_FLUSHED) { + flush_cb_ = media::BindToCurrentLoop(std::move(flush_cb)); + // FinishFlush(); + return; + } + + if (state_ != STATE_PLAYING) { + DCHECK_EQ(state_, STATE_ERROR); + return; + } + + flush_cb_ = std::move(flush_cb); + state_ = STATE_FLUSHING; + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Flush(std::move(flush_cb)); +} + +void TizenRendererImpl::Seek(base::TimeDelta time) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " time : " << time.InMicroseconds(); + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Seek(time); +} + +void TizenRendererImpl::StartPlayingFrom(base::TimeDelta time) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " time : " << time.InMicroseconds(); + DCHECK(task_runner_->BelongsToCurrentThread()); + TRACE_EVENT1("media", "TizenRendererImpl::StartPlayingFrom", "time_us", + time.InMicroseconds()); + + state_ = STATE_PLAYING; + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Prepare(); + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Seek(time); +} + +void TizenRendererImpl::SetPlaybackRate(double playback_rate) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << "(" + << playback_rate << ")"; + DCHECK(task_runner_->BelongsToCurrentThread()); + TRACE_EVENT1("media", "TizenRendererImpl::SetPlaybackRate", "rate", + playback_rate); + + if (playback_rate_ == playback_rate) + return; + + playback_rate_ = playback_rate; + + // TODO: Random error is observed on TM1. + // MediaPlayerESPlusPlayer::GetEsppPlayer()->SetRate(playback_rate_); + + if (playback_rate > 0) + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Play(); + else + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Pause(); +} + +void TizenRendererImpl::SetVolume(float volume) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; + DCHECK(task_runner_->BelongsToCurrentThread()); + if (volume_ == volume) + return; + + volume_ = volume; + media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetVolume(volume); +} + +base::TimeDelta TizenRendererImpl::GetMediaTime() { + return media::MediaPlayerESPlusPlayer::GetEsppPlayer()->GetCurrentTime(); +} + +void TizenRendererImpl::OnSelectedVideoTracksChanged( + const std::vector& enabled_tracks, + base::OnceClosure change_completed_cb) { + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::OnEnabledAudioTracksChanged( + const std::vector& enabled_tracks, + base::OnceClosure change_completed_cb) { + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::OnRendererEnded() { + client_->OnEnded(); +} + +void TizenRendererImpl::OnError(media::PipelineStatus error) { + state_ = STATE_ERROR; + client_->OnError(error); +} + +void TizenRendererImpl::OnStatisticsUpdate( + const media::PipelineStatistics& stats) { + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::OnBufferingStateChange( + media::BufferingState new_buffering_state, + media::BufferingStateChangeReason reason) { + client_->OnBufferingStateChange(new_buffering_state, reason); +} + +void TizenRendererImpl::OnWaiting(media::WaitingReason reason) { + client_->OnWaiting(reason); +} + +void TizenRendererImpl::OnAudioConfigChange( + const media::AudioDecoderConfig& config) { + DCHECK(task_runner_->BelongsToCurrentThread()); + client_->OnAudioConfigChange(config); +} + +void TizenRendererImpl::OnVideoConfigChange( + const media::VideoDecoderConfig& config) { + DCHECK(task_runner_->BelongsToCurrentThread()); + client_->OnVideoConfigChange(config); +} + +void TizenRendererImpl::OnVideoNaturalSizeChange(const gfx::Size& size) { + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::OnVideoOpacityChange(bool opaque) { + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::OnVideoFrameRateChange(absl::optional fps) { + NOTIMPLEMENTED(); +} + +void TizenRendererImpl::InitiateScopedSurfaceRequest( + InitiateScopedSurfaceRequestCallback callback) { + NOTIMPLEMENTED(); +} + +} // namespace content diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h new file mode 100644 index 0000000..4c4078f --- /dev/null +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h @@ -0,0 +1,172 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_RENDERERS_TIZEN_RENDERER_IMPL_H_ +#define MEDIA_RENDERERS_TIZEN_RENDERER_IMPL_H_ + +#include + +#include "base/memory/raw_ptr.h" +#include "content/common/content_export.h" +#include "media/base/demuxer_stream.h" +#include "media/base/media_export.h" +#include "media/base/media_resource.h" +#include "media/base/pipeline_status.h" +#include "media/base/renderer.h" +#include "media/base/renderer_client.h" +#include "media/base/video_renderer_sink.h" +#include "media/base/waiting.h" +#include "media/mojo/mojom/renderer_extensions.mojom.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" +#include "mojo/public/cpp/bindings/receiver.h" +#include "mojo/public/cpp/bindings/remote.h" +#include "third_party/abseil-cpp/absl/types/optional.h" +#include "ui/gfx/geometry/size.h" + +namespace base { +class SingleThreadTaskRunner; +} + +namespace media { +class MediaPlayerTizen; +class MediaResource; +} // namespace media + +namespace content { + +class WebContents; +class MediaPlayerRendererWebContentsObserver; + +class CONTENT_EXPORT TizenRendererImpl + : public media::Renderer, + public media::mojom::MediaPlayerRendererExtension { + public: + using RendererExtension = media::mojom::MediaPlayerRendererExtension; + using ClientExtension = media::mojom::MediaPlayerRendererClientExtension; + + TizenRendererImpl( + const scoped_refptr& task_runner, + media::VideoRendererSink* sink); + TizenRendererImpl( + int process_id, + int routing_id, + WebContents* web_contents, + mojo::PendingReceiver renderer_extension_receiver, + mojo::PendingRemote client_extension_remote); + TizenRendererImpl(const TizenRendererImpl&) = delete; + TizenRendererImpl& operator=(const TizenRendererImpl&) = delete; + ~TizenRendererImpl(); + + // Renderer implementation. + void Initialize(media::MediaResource* media_resource, + media::RendererClient* client, + media::PipelineStatusCallback init_cb) override; + void SetCdm(media::CdmContext* cdm_context, + CdmAttachedCB cdm_attached_cb) override; + void SetLatencyHint(absl::optional latency_hint) override; + void SetPreservesPitch(bool preserves_pitch) override; + void Flush(base::OnceClosure flush_cb) override; + void StartPlayingFrom(base::TimeDelta time) override; + void SetPlaybackRate(double playback_rate) override; + void SetVolume(float volume) override; + base::TimeDelta GetMediaTime() override; + void OnSelectedVideoTracksChanged( + const std::vector& enabled_tracks, + base::OnceClosure change_completed_cb) override; + void OnEnabledAudioTracksChanged( + const std::vector& enabled_tracks, + base::OnceClosure change_completed_cb) override; + void InitiateScopedSurfaceRequest( + InitiateScopedSurfaceRequestCallback callback) override; + void OnUpdateAudioMutingState(bool muted) {} + void OnWebContentsDestroyed() {} + + // Should be removed. + void Seek(base::TimeDelta time); + + void OnNewFrameAvailable(uint32_t playerId, + base::UnsafeSharedMemoryRegion frame, + uint32_t size, + base::TimeDelta timestamp, + uint32_t width, + uint32_t height); + + private: + class RendererClientInternal; + + enum State { + STATE_UNINITIALIZED, + STATE_INIT_PENDING_CDM, // Initialization is waiting for the CDM to be set. + STATE_INITIALIZING, // Initializing audio/video renderers. + STATE_FLUSHING, // Flushing is in progress. + STATE_FLUSHED, // After initialization or after flush completed. + STATE_PLAYING, // After StartPlayingFrom has been called. + STATE_ERROR + }; + + void SetStreamInfo(); + void OnRendererEnded(); + void OnError(media::PipelineStatus error); + void OnStatisticsUpdate(const media::PipelineStatistics& stats); + void OnBufferingStateChange(media::BufferingState new_buffering_state, + media::BufferingStateChangeReason reason); + void OnWaiting(media::WaitingReason reason); + void OnAudioConfigChange(const media::AudioDecoderConfig& config); + void OnVideoConfigChange(const media::VideoDecoderConfig& config); + void OnVideoNaturalSizeChange(const gfx::Size& size); + void OnVideoOpacityChange(bool opaque); + void OnVideoFrameRateChange(absl::optional fps); + + media::RendererClient* client_; + + State state_; + + // Task runner used to execute pipeline tasks. + scoped_refptr task_runner_; + + media::VideoRendererSink* const sink_ = nullptr; + mojo::Remote client_extension_; + // Identifiers to find the RenderFrameHost that created |this|. + // NOTE: We store these IDs rather than a RenderFrameHost* because we do not + // know when the RenderFrameHost is destroyed. + int render_process_id_; + int routing_id_; + + // Temporary callback used for Initialize() and Flush(). + media::PipelineStatusCallback init_cb_; + base::OnceClosure flush_cb_; + + std::unique_ptr audio_renderer_client_; + std::unique_ptr video_renderer_client_; + + media::MediaResource* media_resource_; + media::DemuxerStream* audio_stream_; + media::DemuxerStream* video_stream_; + + double volume_ = 0.0; + double playback_rate_ = 0; + + // The time to start playback from after starting/seeking has completed. + base::TimeDelta start_time_; + + media::BufferingState audio_buffering_state_; + media::BufferingState video_buffering_state_; + + // Whether we've received the audio/video ended events. + bool media_ended_; + bool web_contents_muted_; + mojo::Receiver renderer_extension_receiver_; + raw_ptr + web_contents_observer_; + + // Indicates if a serious error has been encountered by the |media_player_|. + bool has_error_ = false; + + base::WeakPtrFactory weak_factory_{this}; +}; + +} // namespace content + +#endif // MEDIA_RENDERERS_TIZEN_RENDERER_IMPL_H_ diff --git a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc new file mode 100644 index 0000000..26b405b --- /dev/null +++ b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc @@ -0,0 +1,130 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h" + +#include + +#include "base/bind.h" +#include "third_party/libyuv/include/libyuv/convert.h" + +namespace content { + +MediaPlayerRendererClient::MediaPlayerRendererClient( + mojo::PendingRemote renderer_extension_remote, + mojo::PendingReceiver client_extension_receiver, + scoped_refptr media_task_runner, + scoped_refptr compositor_task_runner, + std::unique_ptr mojo_renderer, + media::VideoRendererSink* sink) + : MojoRendererWrapper(std::move(mojo_renderer)), + client_(nullptr), + sink_(sink), + media_task_runner_(std::move(media_task_runner)), + compositor_task_runner_(std::move(compositor_task_runner)), + delayed_bind_client_extension_receiver_( + std::move(client_extension_receiver)), + delayed_bind_renderer_extention_remote_( + std::move(renderer_extension_remote)) {} + +MediaPlayerRendererClient::~MediaPlayerRendererClient() { + // Clearing the STW's callback into |this| must happen first. Otherwise, the + // underlying StreamTextureProxy can callback into OnFrameAvailable() on the + // |compositor_task_runner_|, while we are destroying |this|. + // See https://crbug.com/688466. +} + +void MediaPlayerRendererClient::Initialize( + media::MediaResource* media_resource, + media::RendererClient* client, + media::PipelineStatusCallback init_cb) { + DCHECK(media_task_runner_->BelongsToCurrentThread()); + DCHECK(!init_cb_); + + // Consume and bind the delayed PendingRemote and PendingReceiver now that we + // are on |media_task_runner_|. + renderer_extension_remote_.Bind( + std::move(delayed_bind_renderer_extention_remote_), media_task_runner_); + client_extension_receiver_.Bind( + std::move(delayed_bind_client_extension_receiver_), media_task_runner_); + + media_resource_ = media_resource; + client_ = client; + init_cb_ = std::move(init_cb); + + MojoRendererWrapper::Initialize( + media_resource, client_, + base::BindOnce(&MediaPlayerRendererClient::OnRemoteRendererInitialized, + weak_factory_.GetWeakPtr())); +} + +void MediaPlayerRendererClient::OnRemoteRendererInitialized( + media::PipelineStatus status) { + DCHECK(media_task_runner_->BelongsToCurrentThread()); + DCHECK(!init_cb_.is_null()); + + if (status == media::PIPELINE_OK) { + // Signal that we're using MediaPlayer so that we can properly differentiate + // within our metrics. + media::PipelineStatistics stats; + stats.video_pipeline_info = {true, false, + media::VideoDecoderType::kMediaCodec}; + stats.audio_pipeline_info = {true, false, + media::AudioDecoderType::kMediaCodec}; + client_->OnStatisticsUpdate(stats); + } + std::move(init_cb_).Run(status); +} + +void MediaPlayerRendererClient::OnVideoSizeChange(const gfx::Size& size) { + client_->OnVideoNaturalSizeChange(size); +} + +void MediaPlayerRendererClient::OnDurationChange(base::TimeDelta duration) { + DCHECK(media_task_runner_->BelongsToCurrentThread()); + + media_resource_->ForwardDurationChangeToDemuxerHost(duration); +} + +void MediaPlayerRendererClient::OnNewFrameAvailable( + uint32_t playerId, + base::UnsafeSharedMemoryRegion frame, + uint32_t yuv_size, + base::TimeDelta timestamp, + uint32_t width, + uint32_t height) { + base::WritableSharedMemoryMapping mapping = frame.MapAt(0, yuv_size); + if (!mapping.IsValid()) { + LOG(ERROR) << "Failed to map shared memory for size " << yuv_size; + return; + } + + uint8_t* const yuv_buffer = static_cast(mapping.memory()); + gfx::Size size(width, height); + scoped_refptr video_frame = media::VideoFrame::CreateFrame( + media::PIXEL_FORMAT_I420, size, gfx::Rect(size), size, timestamp); + + uint8_t* video_buf = yuv_buffer; + const uint c_frm_size = yuv_size / 6; + const uint y_frm_size = c_frm_size << 2; // * 4; + + // U Plane buffer. + uint8_t* video_buf_u = video_buf + y_frm_size; + + // V Plane buffer. + uint8_t* video_buf_v = video_buf_u + c_frm_size; + libyuv::I420Copy( + video_buf, video_frame.get()->stride(media::VideoFrame::kYPlane), + video_buf_u, video_frame.get()->stride(media::VideoFrame::kYPlane) / 2, + video_buf_v, video_frame.get()->stride(media::VideoFrame::kYPlane) / 2, + video_frame.get()->GetWritableVisibleData(media::VideoFrame::kYPlane), + video_frame.get()->stride(media::VideoFrame::kYPlane), + video_frame.get()->GetWritableVisibleData(media::VideoFrame::kUPlane), + video_frame.get()->stride(media::VideoFrame::kUPlane), + video_frame.get()->GetWritableVisibleData(media::VideoFrame::kVPlane), + video_frame.get()->stride(media::VideoFrame::kVPlane), width, height); + sink_->PaintSingleFrame(std::move(video_frame)); +} + +} // namespace content diff --git a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h new file mode 100644 index 0000000..b7e9e87 --- /dev/null +++ b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h @@ -0,0 +1,111 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_CLIENT_H_ +#define CONTENT_RENDERER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_CLIENT_H_ + +#include + +#include "base/callback.h" +#include "base/memory/weak_ptr.h" +#include "base/task/single_thread_task_runner.h" +#include "content/common/content_export.h" +#include "media/base/media_resource.h" +#include "media/base/renderer.h" +#include "media/base/renderer_client.h" +#include "media/base/video_renderer_sink.h" +#include "media/mojo/clients/mojo_renderer.h" +#include "media/mojo/clients/mojo_renderer_wrapper.h" +#include "media/mojo/mojom/renderer_extensions.mojom.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" +#include "mojo/public/cpp/bindings/receiver.h" +#include "mojo/public/cpp/bindings/remote.h" + +namespace content { + +// MediaPlayerRendererClient lives in Renderer process and mirrors a +// MediaPlayerRenderer living in the Browser process. +// +// It is primarily used as a media::Renderer that forwards calls from WMPI to +// the MediaPlayerRenderer, by inheriting from MojoRendererWrapper. +class CONTENT_EXPORT MediaPlayerRendererClient + : public media::mojom::MediaPlayerRendererClientExtension, + public media::MojoRendererWrapper { + public: + using RendererExtention = media::mojom::MediaPlayerRendererExtension; + using ClientExtention = media::mojom::MediaPlayerRendererClientExtension; + + MediaPlayerRendererClient( + mojo::PendingRemote renderer_extension_remote, + mojo::PendingReceiver client_extension_receiver, + scoped_refptr media_task_runner, + scoped_refptr compositor_task_runner, + std::unique_ptr mojo_renderer, + media::VideoRendererSink* sink); + + MediaPlayerRendererClient(const MediaPlayerRendererClient&) = delete; + MediaPlayerRendererClient& operator=(const MediaPlayerRendererClient&) = + delete; + + ~MediaPlayerRendererClient() override; + + // media::Renderer implementation (inherited from media::MojoRendererWrapper). + // and do not support encrypted media. + void Initialize(media::MediaResource* media_resource, + media::RendererClient* client, + media::PipelineStatusCallback init_cb) override; + + // media::mojom::MediaPlayerRendererClientExtension implementation + void OnDurationChange(base::TimeDelta duration) override; + void OnVideoSizeChange(const gfx::Size& size) override; + void OnNewFrameAvailable(uint32_t playerId, + base::UnsafeSharedMemoryRegion frame, + uint32_t size, + base::TimeDelta timestamp, + uint32_t width, + uint32_t height) override; + + private: + void OnRemoteRendererInitialized(media::PipelineStatus status); + + // The underlying type should always be a MediaUrlDemuxer, but we only use + // methods from the MediaResource interface. + media::MediaResource* media_resource_; + + media::RendererClient* client_; + + media::VideoRendererSink* sink_; + + scoped_refptr media_task_runner_; + + // VideoFrames to |sink_| on the right thread. + scoped_refptr compositor_task_runner_; + + media::PipelineStatusCallback init_cb_; + + // This class is constructed on the main task runner, and used on + // |media_task_runner_|. These member are used to delay calls to Bind() for + // |renderer_extension_ptr_| and |client_extension_binding_|, until we are on + // |media_task_runner_|. + // Both are set in the constructor, and consumed in Initialize(). + mojo::PendingReceiver + delayed_bind_client_extension_receiver_; + mojo::PendingRemote + delayed_bind_renderer_extention_remote_; + + // Used to call methods on the MediaPlayerRenderer in the browser process. + mojo::Remote renderer_extension_remote_; + + // Used to receive events from MediaPlayerRenderer in the browser process. + mojo::Receiver client_extension_receiver_{ + this}; + + // NOTE: Weak pointers must be invalidated before all other member variables. + base::WeakPtrFactory weak_factory_{this}; +}; + +} // namespace content + +#endif // CONTENT_RENDERER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_CLIENT_H_ diff --git a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.cc b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.cc new file mode 100644 index 0000000..8519ca7 --- /dev/null +++ b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.cc @@ -0,0 +1,58 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h" + +#include "media/mojo/clients/mojo_renderer.h" +#include "media/mojo/clients/mojo_renderer_factory.h" +#include "media/mojo/mojom/renderer_extensions.mojom.h" +#include "tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h" + +namespace content { + +MediaPlayerRendererClientFactory::MediaPlayerRendererClientFactory( + scoped_refptr compositor_task_runner, + std::unique_ptr mojo_renderer_factory) + : compositor_task_runner_(std::move(compositor_task_runner)), + mojo_renderer_factory_(std::move(mojo_renderer_factory)) {} + +MediaPlayerRendererClientFactory::~MediaPlayerRendererClientFactory() {} + +std::unique_ptr +MediaPlayerRendererClientFactory::CreateRenderer( + const scoped_refptr& media_task_runner, + const scoped_refptr& worker_task_runner, + media::AudioRendererSink* audio_renderer_sink, + media::VideoRendererSink* video_renderer_sink, + media::RequestOverlayInfoCB request_overlay_info_cb, + const gfx::ColorSpace& target_color_space) { + // Used to send messages from the MPRC (Renderer process), to the MPR (Browser + // process). The |renderer_extension_request| will be bound in + // MediaPlayerRenderer. + mojo::PendingRemote + renderer_extension_remote; + auto renderer_extension_receiver = + renderer_extension_remote.InitWithNewPipeAndPassReceiver(); + + // Used to send messages from the MPR (Browser process), to the MPRC (Renderer + // process). The |client_extension_request| will be bound in + // MediaPlayerRendererClient. + mojo::PendingRemote + client_extension_remote; + auto client_extension_receiver = + client_extension_remote.InitWithNewPipeAndPassReceiver(); + + std::unique_ptr mojo_renderer = + mojo_renderer_factory_->CreateMediaPlayerRenderer( + std::move(renderer_extension_receiver), + std::move(client_extension_remote), media_task_runner, + video_renderer_sink); + + return std::make_unique( + std::move(renderer_extension_remote), + std::move(client_extension_receiver), media_task_runner, + compositor_task_runner_, std::move(mojo_renderer), video_renderer_sink); +} + +} // namespace content diff --git a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h new file mode 100644 index 0000000..319b4b3 --- /dev/null +++ b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h @@ -0,0 +1,48 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_CLIENT_FACTORY_H_ +#define CONTENT_RENDERER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_CLIENT_FACTORY_H_ + +#include + +#include "base/callback.h" +#include "base/task/single_thread_task_runner.h" +#include "content/common/content_export.h" +#include "media/base/renderer_factory.h" +#include "media/mojo/clients/mojo_renderer_factory.h" + +namespace media { +class MojoRendererFactory; +} + +namespace content { + +// The default class for creating a MediaPlayerRendererClient +// and its associated MediaPlayerRenderer. +class CONTENT_EXPORT MediaPlayerRendererClientFactory + : public media::RendererFactory { + public: + MediaPlayerRendererClientFactory( + scoped_refptr compositor_task_runner, + std::unique_ptr mojo_renderer_factory); + ~MediaPlayerRendererClientFactory() override; + + std::unique_ptr CreateRenderer( + const scoped_refptr& media_task_runner, + const scoped_refptr& worker_task_runner, + media::AudioRendererSink* audio_renderer_sink, + media::VideoRendererSink* video_renderer_sink, + media::RequestOverlayInfoCB request_surface_cb, + const gfx::ColorSpace& target_color_space) override; + + private: + scoped_refptr compositor_task_runner_; + + std::unique_ptr mojo_renderer_factory_; +}; + +} // namespace content + +#endif // CONTENT_RENDERER_MEDIA_TIZEN_MEDIA_PLAYER_RENDERER_CLIENT_FACTORY_H_ diff --git a/tizen_src/chromium_impl/content/renderer/renderer_efl.gni b/tizen_src/chromium_impl/content/renderer/renderer_efl.gni index 9911a1a..8a8408e 100644 --- a/tizen_src/chromium_impl/content/renderer/renderer_efl.gni +++ b/tizen_src/chromium_impl/content/renderer/renderer_efl.gni @@ -58,3 +58,12 @@ if (tizen_multimedia_support) { "media/tizen/audio_decoder_capi.cc", ] } + +if (tizen_multimedia) { + external_content_renderer_efl_sources += [ + "//tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc", + "//tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h", + "//tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.cc", + "//tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client_factory.h", + ] +} diff --git a/tizen_src/chromium_impl/media/BUILD.gn b/tizen_src/chromium_impl/media/BUILD.gn index 5d9a968..1078804 100644 --- a/tizen_src/chromium_impl/media/BUILD.gn +++ b/tizen_src/chromium_impl/media/BUILD.gn @@ -4,20 +4,11 @@ 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" ] - } +config("media_efl_config") { + include_dirs = [ + "//third_party/WebKit", + "//third_party/libyuv/include", + "//third_party/mojo/src", + "//v8/include", + ] } diff --git a/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h b/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h index 5c31cc3..82f7e45 100644 --- a/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h +++ b/tizen_src/chromium_impl/media/audio/tizen/audio_manager_capi.h @@ -16,6 +16,8 @@ namespace media { class MEDIA_EXPORT AudioManagerCapi : public AudioManagerBase { public: explicit AudioManagerCapi(AudioLogFactory* audio_log_factory); + AudioManagerCapi(const AudioManagerCapi&) = delete; + AudioManagerCapi& operator=(const AudioManagerCapi&) = delete; ~AudioManagerCapi() override; AudioManagerCapi(const AudioManagerCapi&) = delete; @@ -27,10 +29,8 @@ class MEDIA_EXPORT AudioManagerCapi : public AudioManagerBase { bool HasAudioOutputDevices() override; bool HasAudioInputDevices() override; void ShowAudioInputSettings() override; - void GetAudioInputDeviceNames( - AudioDeviceNames* device_names) override; - void GetAudioOutputDeviceNames( - AudioDeviceNames* device_names) override; + void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override; + void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override; AudioParameters GetInputStreamParameters( const std::string& device_id) override; // Implementation of AudioManagerBase. @@ -40,9 +40,11 @@ class MEDIA_EXPORT AudioManagerCapi : public AudioManagerBase { const AudioParameters& params, const std::string& device_id) override; AudioInputStream* MakeLinearInputStream( - const AudioParameters& params, const std::string& device_id) override; + const AudioParameters& params, + const std::string& device_id) override; AudioInputStream* MakeLowLatencyInputStream( - const AudioParameters& params, const std::string& device_id) override; + const AudioParameters& params, + const std::string& device_id) override; protected: AudioParameters GetPreferredOutputStreamParameters( diff --git a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h index 97d50f6..7fa0fac 100644 --- a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h +++ b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_input.h @@ -27,7 +27,8 @@ class CapiAudioInputStream final : public AgcAudioStream { CapiAudioInputStream(AudioManagerCapi* audio_manager, const std::string& device_name, const AudioParameters& params); - + CapiAudioInputStream(const CapiAudioInputStream&) = delete; + CapiAudioInputStream& operator=(const CapiAudioInputStream&) = delete; ~CapiAudioInputStream() override; CapiAudioInputStream(const CapiAudioInputStream&) = delete; @@ -44,6 +45,7 @@ class CapiAudioInputStream final : public AgcAudioStream { void OnAudioIOData(const AudioBus* audio_bus, uint32_t hardware_delay_bytes, double normalized_volume); + private: static void AudioStreamReadCB(audio_in_h handle, size_t nbytes, diff --git a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h index 5d58a57..6b7c4bd 100644 --- a/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h +++ b/tizen_src/chromium_impl/media/audio/tizen/capi_audio_output.h @@ -5,7 +5,6 @@ // Creates an audio output stream based on the Tizen Core API. // Tizen Core api uses PULSE Synchronized API. - #ifndef MEDIA_AUDIO_TIZEN_CAPI_AUDIO_OUTPUT_H_ #define MEDIA_AUDIO_TIZEN_CAPI_AUDIO_OUTPUT_H_ @@ -25,7 +24,8 @@ class CapiAudioOutputStream : public AudioOutputStream { public: CapiAudioOutputStream(const AudioParameters& params, AudioManagerBase* manager); - + CapiAudioOutputStream(const CapiAudioOutputStream&) = delete; + CapiAudioOutputStream& operator=(const CapiAudioOutputStream&) = delete; ~CapiAudioOutputStream() override; CapiAudioOutputStream(const CapiAudioOutputStream&) = delete; diff --git a/tizen_src/chromium_impl/media/base/efl/media_player_efl.h b/tizen_src/chromium_impl/media/base/efl/media_player_efl.h index 2ced3a2..901a1c1 100644 --- a/tizen_src/chromium_impl/media/base/efl/media_player_efl.h +++ b/tizen_src/chromium_impl/media/base/efl/media_player_efl.h @@ -32,13 +32,19 @@ class MEDIA_EXPORT MediaPlayerEfl { int64_t end; } TimeRanges; - static MediaPlayerEfl* CreatePlayer( - int player_id, const GURL& url, double volume, - MediaPlayerManager* manager, const std::string& user_agent); + static MediaPlayerEfl* CreatePlayer(int player_id, + const GURL& url, + double volume, + MediaPlayerManager* manager, + const std::string& user_agent); - static MediaPlayerEfl* CreatePlayer( - int player_id, content::BrowserDemuxerEfl* demuxer, - int dumxer_id, MediaPlayerManager* manager); + static MediaPlayerEfl* CreatePlayer(int player_id, + content::BrowserDemuxerEfl* demuxer, + int dumxer_id, + MediaPlayerManager* manager); + + MediaPlayerEfl(const MediaPlayerEfl&) = delete; + MediaPlayerEfl& operator=(const MediaPlayerEfl&) = delete; virtual ~MediaPlayerEfl() {} diff --git a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h index 6b51945..e4f2d09 100644 --- a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h +++ b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h @@ -11,20 +11,23 @@ #include "base/timer/timer.h" #include "base/tracked_objects.h" #include "content/public/browser/browser_message_filter.h" -#include "media/base/ranges.h" #include "media/base/efl/media_player_efl.h" +#include "media/base/ranges.h" #include "media/base/video_frame.h" namespace media { -class MEDIA_EXPORT MediaPlayerBridgeCapi - : public MediaPlayerEfl { +class MEDIA_EXPORT MediaPlayerBridgeCapi : public MediaPlayerEfl { public: typedef base::OnceCallback CompleteCB; - MediaPlayerBridgeCapi(int player_id, const GURL& url, double volume, + MediaPlayerBridgeCapi(int player_id, + const GURL& url, + double volume, MediaPlayerManager* manager, const std::string& user_agent); + MediaPlayerBridgeCapi(const MediaPlayerBridgeCapi&) = delete; + MediaPlayerBridgeCapi& operator=(const MediaPlayerBridgeCapi&) = delete; ~MediaPlayerBridgeCapi() override; MediaPlayerBridgeCapi(const MediaPlayerBridgeCapi&) = delete; @@ -78,8 +81,7 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi void SeekCompleteUpdate(); void PlayerPrepared(); void HandleBufferingStatus(int percent); - void RunCompleteCB(bool success, - const tracked_objects::Location& from); + void RunCompleteCB(bool success, const tracked_objects::Location& from); player_state_e GetPlayerState(); private: diff --git a/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h b/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h index a2d0ae0..16b3c09 100644 --- a/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h +++ b/tizen_src/chromium_impl/media/base/tizen/media_source_player_capi.h @@ -20,16 +20,16 @@ namespace media { // This class handles media source extensions for CAPI port. -class MEDIA_EXPORT MediaSourcePlayerCapi - : public MediaPlayerEfl, public DemuxerEflClient { - +class MEDIA_EXPORT MediaSourcePlayerCapi : public MediaPlayerEfl, + public DemuxerEflClient { public: // Constructs a player with the given ID and demuxer. |manager| must outlive // the lifetime of this object. - MediaSourcePlayerCapi( - int player_id, std::unique_ptr demuxer, - MediaPlayerManager* manager); - + MediaSourcePlayerCapi(int player_id, + std::unique_ptr demuxer, + MediaPlayerManager* manager); + MediaSourcePlayerCapi(const MediaSourcePlayerCapi&) = delete; + MediaSourcePlayerCapi& operator=(const MediaSourcePlayerCapi&) = delete; ~MediaSourcePlayerCapi() override; MediaSourcePlayerCapi(const MediaSourcePlayerCapi&) = delete; @@ -45,8 +45,7 @@ class MEDIA_EXPORT MediaSourcePlayerCapi void Initialize() override; // DemuxerEflClient implementation. - void OnDemuxerConfigsAvailable( - const DemuxerConfigs& params) override; + void OnDemuxerConfigsAvailable(const DemuxerConfigs& params) override; void OnDemuxerDataAvailable( base::SharedMemoryHandle foreign_memory_handle, const media::DemuxedBufferMetaData& meta_data) override; @@ -97,9 +96,8 @@ class MEDIA_EXPORT MediaSourcePlayerCapi void StopCurrentTimeUpdateTimer(); void ReadFromQueueIfAny(DemuxerStream::Type type); - void SaveDecoderBuffer( - base::SharedMemoryHandle foreign_memory_handle, - const media::DemuxedBufferMetaData& meta_data); + void SaveDecoderBuffer(base::SharedMemoryHandle foreign_memory_handle, + const media::DemuxedBufferMetaData& meta_data); std::unique_ptr demuxer_; const scoped_refptr task_runner_; diff --git a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc index e1bd0d7..4205b15 100644 --- a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc +++ b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.cc @@ -45,16 +45,16 @@ static std::string GetCameraErrorMessage(int err_code) { return media::VideoCaptureDeviceTizen::GetCameraErrorMessage(err_code); } -bool OnCameraSupportedPreviewResolution( - int width, int height, void* user_data) { +bool OnCameraSupportedPreviewResolution(int width, + int height, + void* user_data) { std::vector* sizes = - static_cast< std::vector* >(user_data); + static_cast*>(user_data); DCHECK(sizes); if ((width > kMaxWidth && height > kMaxHeight) || (height > kMaxWidth && width > kMaxHeight)) { - DVLOG(1) << "Ignore resolution [width:" << width - << " x height:" << height + DVLOG(1) << "Ignore resolution [width:" << width << " x height:" << height << "] and continue to next resolution"; return true; } @@ -62,10 +62,10 @@ bool OnCameraSupportedPreviewResolution( return true; } -bool OnCameraSupportedPreviewFormat( - camera_pixel_format_e format, void* user_data) { +bool OnCameraSupportedPreviewFormat(camera_pixel_format_e format, + void* user_data) { std::vector* list_format = - static_cast< std::vector* >(user_data); + static_cast*>(user_data); DCHECK(list_format); list_format->push_back(toChromiumType(format)); @@ -73,13 +73,13 @@ bool OnCameraSupportedPreviewFormat( } bool OnCameraSupportedFPS(camera_attr_fps_e fps, void* user_data) { - std::vector* list_fps = static_cast< std::vector* >(user_data); + std::vector* list_fps = static_cast*>(user_data); DCHECK(list_fps); if (CAMERA_ATTR_FPS_AUTO == fps || static_cast(kMaxFramerate) < fps) { // AUTO format is not defined on Chromium, so skip. DVLOG(1) << "Ignore fps: [CAMERA_ATTR_FPS_AUTO = " << CAMERA_ATTR_FPS_AUTO - << "] OR fps: [" << fps << " > " << kMaxFramerate << "]"; + << "] OR fps: [" << fps << " > " << kMaxFramerate << "]"; return true; } list_fps->push_back(static_cast(fps)); @@ -100,8 +100,8 @@ void GenerateChromiumVideoCaptureFormat( format.pixel_format = *itrFMT; outSupportedFormats.push_back(format); - DVLOG(1) << " frame_size:" << format.frame_size.width() - << "X" << format.frame_size.height() + DVLOG(1) << " frame_size:" << format.frame_size.width() << "X" + << format.frame_size.height() << " frame_rate:" << format.frame_rate << " pixel_format:" << format.pixel_format; } @@ -115,9 +115,7 @@ class CameraHandle final { return base::Singleton::get(); } - bool IsValid() const { - return camera_handle_ != NULL; - } + bool IsValid() const { return camera_handle_ != NULL; } void GetDeviceSupportedFormats( media::VideoCaptureFormats& supported_formats) const { @@ -131,44 +129,42 @@ class CameraHandle final { return; } - if (CAMERA_ERROR_NONE != (err = camera_foreach_supported_preview_resolution( - camera_handle_, - OnCameraSupportedPreviewResolution, - &supported_frame_sizes))) { + if (CAMERA_ERROR_NONE != + (err = camera_foreach_supported_preview_resolution( + camera_handle_, OnCameraSupportedPreviewResolution, + &supported_frame_sizes))) { LOG(ERROR) << "Cannot get the supported resolutions for camera, Error:" << GetCameraErrorMessage(err); return; } - if (CAMERA_ERROR_NONE != (err = camera_foreach_supported_preview_format( - camera_handle_, - OnCameraSupportedPreviewFormat, - &supported_pixel_formats))) { + if (CAMERA_ERROR_NONE != + (err = camera_foreach_supported_preview_format( + camera_handle_, OnCameraSupportedPreviewFormat, + &supported_pixel_formats))) { LOG(ERROR) << "Cannot get the supported formats for camera, Error:" << GetCameraErrorMessage(err); return; } - if (CAMERA_ERROR_NONE != (err = camera_attr_foreach_supported_fps( - camera_handle_, - OnCameraSupportedFPS, - &supported_frame_rates))) { + if (CAMERA_ERROR_NONE != + (err = camera_attr_foreach_supported_fps( + camera_handle_, OnCameraSupportedFPS, &supported_frame_rates))) { LOG(ERROR) << "Cannot get the supported FPS for camera, Error:" << GetCameraErrorMessage(err); return; } supported_formats.clear(); - GenerateChromiumVideoCaptureFormat(supported_frame_sizes, - supported_frame_rates, - supported_pixel_formats, - supported_formats); + GenerateChromiumVideoCaptureFormat( + supported_frame_sizes, supported_frame_rates, supported_pixel_formats, + supported_formats); } int GetDeviceCounts() const { int device_count = 0; int err = 0; - if (CAMERA_ERROR_NONE != (err = camera_get_device_count(camera_handle_, - &device_count))) { + if (CAMERA_ERROR_NONE != + (err = camera_get_device_count(camera_handle_, &device_count))) { device_count = 0; LOG(ERROR) << "Cannot read camera count, Error:" << GetCameraErrorMessage(err); @@ -177,17 +173,19 @@ class CameraHandle final { } private: - CameraHandle() - : camera_handle_(NULL) { + CameraHandle() : camera_handle_(NULL) { int err = 0; - if (CAMERA_ERROR_NONE != (err = camera_create(CAMERA_DEVICE_CAMERA0, - &camera_handle_))) { + if (CAMERA_ERROR_NONE != + (err = camera_create(CAMERA_DEVICE_CAMERA0, &camera_handle_))) { camera_handle_ = NULL; LOG(ERROR) << "Cannot create camera, Error:" << GetCameraErrorMessage(err); } } + CameraHandle(const CameraHandle&) = delete; + CameraHandle& operator=(const CameraHandle&) = delete; + ~CameraHandle() { if (camera_handle_ != NULL) camera_destroy(camera_handle_); @@ -201,17 +199,15 @@ class CameraHandle final { friend struct base::DefaultSingletonTraits; }; -} // namespace +} // namespace namespace media { VideoCaptureDeviceFactoryTizen::VideoCaptureDeviceFactoryTizen( scoped_refptr ui_task_runner) - : ui_task_runner_(ui_task_runner) { -} + : ui_task_runner_(ui_task_runner) {} -VideoCaptureDeviceFactoryTizen::~VideoCaptureDeviceFactoryTizen() { -} +VideoCaptureDeviceFactoryTizen::~VideoCaptureDeviceFactoryTizen() {} scoped_ptr VideoCaptureDeviceFactoryTizen::Create( const VideoCaptureDevice::Name& name) { diff --git a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h index 6257dd4..8c4f77a 100644 --- a/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h +++ b/tizen_src/chromium_impl/media/capture/video/tizen/video_capture_device_factory_tizen.h @@ -18,6 +18,10 @@ class MEDIA_EXPORT VideoCaptureDeviceFactoryTizen public: explicit VideoCaptureDeviceFactoryTizen( scoped_refptr ui_task_runner); + VideoCaptureDeviceFactoryTizen(const VideoCaptureDeviceFactoryTizen&) = + delete; + VideoCaptureDeviceFactoryTizen& operator=( + const VideoCaptureDeviceFactoryTizen&) = delete; ~VideoCaptureDeviceFactoryTizen() override; VideoCaptureDeviceFactoryTizen(const VideoCaptureDeviceFactoryTizen&) = diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h new file mode 100644 index 0000000..d8fa257 --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h @@ -0,0 +1,63 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_FILTERS_ESPLUSPLAYER_BUFFER_OBSERVER_H_ +#define MEDIA_FILTERS_ESPLUSPLAYER_BUFFER_OBSERVER_H_ + +#include + +#include "media/base/demuxer_stream.h" + +namespace media { + +using espp_buffer_size_t = unsigned long long; + +// Buffering level in percent. +const int kUnderrunBufferThreshold = 1; +const int kMinBufferThreshold = 30; +const int kMaxBufferThreshold = 80; +const int kOverflowBufferThreshold = 95; +const int kMediaStreamBufferMinThreshold = 100; + +// Limit of platform player's audio or video buffer in milliseconds +const int kMaxBufferTime = 3000; + +// Minimum platform player buffer fill to keep +const int kMinBufferTimePercent = 80; + +enum BufferStatus { + kBufferNone, + kBufferUnderrun, + kBufferMinThreshold, + kBufferNormal, + kBufferMaxThreshold, + kBufferOverflow, + kBufferAhead, + kBufferEos, +}; + +class BufferObserver { + public: + using BufferingCallback = + base::RepeatingCallback; + + static BufferObserver* CreateBufferObserver(); + + virtual ~BufferObserver() = default; + + virtual void SetBufferSize(DemuxerStream::Type, espp_buffer_size_t) = 0; + virtual void SetBufferingCallback(const BufferingCallback&) = 0; + virtual void SetEos(DemuxerStream::Type) = 0; + virtual void UpdateBufferedSize(DemuxerStream::Type, espp_buffer_size_t) = 0; + virtual void ResetBufferStatus() = 0; + virtual int SetMediaStreamStatusCallback( + esplusplayer_handle, + esplusplayer_stream_type stream_type) = 0; + virtual BufferStatus GetAudioStatus() const = 0; + virtual BufferStatus GetVideoStatus() const = 0; + virtual void SetAudioVideoDtsDifference(int diff) = 0; +}; +} // namespace media + +#endif // MEDIA_FILTERS_ESPLUSPLAYER_BUFFER_OBSERVER_H_ diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc new file mode 100644 index 0000000..cc04f52 --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc @@ -0,0 +1,272 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/filters/esplusplayer_buffer_observer_impl.h" + +#include "base/bind.h" +#include "base/location.h" +#include "base/logging.h" + +namespace media { + +// static +BufferObserver* BufferObserver::CreateBufferObserver() { + return new BufferObserverImpl(); +} + +// static +void BufferObserverImpl::OnBufferedSizeChanged( + const esplusplayer_stream_type stream_type, + const esplusplayer_buffer_status status, + espp_buffer_size_t bytes, + void* user_data) { + if (stream_type == ESPLUSPLAYER_STREAM_TYPE_VIDEO) { + static_cast(user_data)->UpdateBufferedSize( + DemuxerStream::VIDEO, bytes); + } else if (stream_type == ESPLUSPLAYER_STREAM_TYPE_AUDIO) { + static_cast(user_data)->UpdateBufferedSize( + DemuxerStream::AUDIO, bytes); + } +} + +// static +void BufferObserverImpl::OnBufferedTimeChanged( + const esplusplayer_stream_type stream_type, + const esplusplayer_buffer_status status, + uint64_t time, + void* user_data) { + if (stream_type == ESPLUSPLAYER_STREAM_TYPE_AUDIO) { + static_cast(user_data)->SetNewStatusFromTime( + DemuxerStream::AUDIO, time); + } else if (stream_type == ESPLUSPLAYER_STREAM_TYPE_VIDEO) { + static_cast(user_data)->SetNewStatusFromTime( + DemuxerStream::VIDEO, time); + } +} + +// static +int BufferObserverImpl::ToPercent(uint64_t value, uint64_t max) { + return (value * 100 / max) ?: (value > 0); +} + +void BufferObserverImpl::SetBufferSize(DemuxerStream::Type type, + espp_buffer_size_t size) { + GetBuffer(type).buffer_size = size; +} + +// |handler| will be invoked from capi-player's thread. +void BufferObserverImpl::SetBufferingCallback( + const BufferingCallback& handler) { + buffering_callback_ = handler; +} + +void BufferObserverImpl::SetEos(DemuxerStream::Type type) { + if (GetBuffer(type).last_buffer_status != kBufferEos) { + CallbackIfNeed(type, kBufferEos); + } +} + +void BufferObserverImpl::UpdateBufferedSize(DemuxerStream::Type type, + espp_buffer_size_t bytes) { + auto& buffer = GetBuffer(type); + DCHECK(buffer.buffer_size != 0); + + if (buffer.last_buffer_status == kBufferEos || !buffer.buffer_size) + return; + + // return 1% as long as there is something in the buffer + buffer.buffer_percent = ToPercent(bytes, buffer.buffer_size); + BufferStatus buffer_status = GetBufferStatusFromSize(buffer.buffer_percent); + DVLOG(INFO) << "Current Buffer Level: VIDEO: " + << GetBuffer(DemuxerStream::VIDEO).buffer_percent << "%" + << "\tAUDIO: " << GetBuffer(DemuxerStream::AUDIO).buffer_percent + << "%"; + + CallbackIfNeed(type, buffer_status); +} + +void BufferObserverImpl::ResetBufferStatus() { + for (auto& buffer : buffers_) { + buffer.last_buffer_status = kBufferNone; + } +} + +int BufferObserverImpl::SetMediaStreamStatusCallback( + esplusplayer_handle player, + esplusplayer_stream_type stream_type) { + const BufferStatusCallbacks callbacks = { + BufferObserverImpl::OnBufferedSizeChanged, + BufferObserverImpl::OnBufferedTimeChanged}; + return SetBufferStatusCallbacks(player, stream_type, callbacks); +} + +BufferStatus BufferObserverImpl::GetAudioStatus() const { + return GetBuffer(DemuxerStream::AUDIO).last_buffer_status; +} + +BufferStatus BufferObserverImpl::GetVideoStatus() const { + return GetBuffer(DemuxerStream::VIDEO).last_buffer_status; +} + +void BufferObserverImpl::SetAudioVideoDtsDifference(int diff) { + av_diff_ = diff; + if (!EnsureSimilarBufferedDuration()) { + const auto& audio = GetBuffer(DemuxerStream::AUDIO); + const auto& video = GetBuffer(DemuxerStream::VIDEO); + CallbackIfNeed(DemuxerStream::AUDIO, GetBufferStatusFromTime(audio)); + CallbackIfNeed(DemuxerStream::VIDEO, GetBufferStatusFromTime(video)); + } +} + +void BufferObserverImpl::CallbackIfNeed(DemuxerStream::Type type, + BufferStatus status) { + if (buffering_callback_.is_null()) { + LOG(WARNING) << "buffering_callback_ is null, return"; + return; + } + + auto& buffer = GetBuffer(type); + if (buffer.last_buffer_status == status) + return; + + buffer.last_buffer_status = status; + task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&BufferObserverImpl::TriggerStatusChangeCallback, + weak_factory_.GetWeakPtr(), type, + buffer.last_buffer_status)); +} + +void BufferObserverImpl::TriggerStatusChangeCallback( + DemuxerStream::Type type, + BufferStatus status) const { + buffering_callback_.Run(type, status); +} + +BufferStatus BufferObserverImpl::GetBufferStatusFromSize(int buffered_percent) { + if (buffered_percent < kUnderrunBufferThreshold) { + return kBufferUnderrun; + } else if (buffered_percent < kMinBufferThreshold) { + return kBufferMinThreshold; + } else if (buffered_percent > kOverflowBufferThreshold) { + return kBufferOverflow; + } else if (buffered_percent > kMaxBufferThreshold) { + return kBufferMaxThreshold; + } + return kBufferNormal; +} + +BufferStatus BufferObserverImpl::GetBufferStatusFromTime( + const BufferObserverImpl::BufferDescriptor& buffer) { + if (buffer.has_size_overflow) + return kBufferOverflow; + if (buffer.duration_percent < kUnderrunBufferThreshold) + return kBufferUnderrun; + if (buffer.duration_percent < kMinBufferTimePercent) + return kBufferMinThreshold; + if (buffer.duration_percent > kOverflowBufferThreshold) + return kBufferOverflow; + return kBufferNormal; +} + +void BufferObserverImpl::SetNewStatusFromTime(DemuxerStream::Type type, + uint64_t time) { + auto& buffer = GetBuffer(type); + if (buffer.last_buffer_status == kBufferEos) + return; + + buffer.duration_percent = ToPercent(time, kMaxBufferTime); + if (!EnsureSimilarBufferedDuration()) + CallbackIfNeed(type, GetBufferStatusFromTime(buffer)); +} + +bool BufferObserverImpl::EnsureSimilarBufferedDuration() { + const auto& audio = GetBuffer(DemuxerStream::AUDIO); + const auto& video = GetBuffer(DemuxerStream::VIDEO); + const bool has_both_av = (audio.last_buffer_status != kBufferNone) && + (video.last_buffer_status != kBufferNone); + + const int kMaxDiff = 250; + const int av_diff = av_diff_; + + if (has_both_av && (std::abs(av_diff) > kMaxDiff)) { + const auto audio_status = + (av_diff > kMaxDiff) ? kBufferAhead : GetBufferStatusFromTime(audio); + const auto video_status = + (av_diff < -kMaxDiff) ? kBufferAhead : GetBufferStatusFromTime(video); + + CallbackIfNeed(DemuxerStream::AUDIO, audio_status); + CallbackIfNeed(DemuxerStream::VIDEO, video_status); + LOG(INFO) << "Uneven A/V buffering, audio fill: " << audio.duration_percent + << "%, video fill: " << video.duration_percent + << "%, audio DTS - video DTS: " << av_diff << "ms"; + return true; + } else { + return false; + } +} + +int BufferObserverImpl::SetBufferStatusCallbacks( + esplusplayer_handle player, + esplusplayer_stream_type type, + const BufferStatusCallbacks& callbacks) { + int ret{ESPLUSPLAYER_ERROR_TYPE_NONE}; + + esplusplayer_buffer_option option = + (type == ESPLUSPLAYER_STREAM_TYPE_VIDEO) + ? ESPLUSPLAYER_BUFFER_VIDEO_MIN_BYTE_THRESHOLD + : ESPLUSPLAYER_BUFFER_AUDIO_MIN_BYTE_THRESHOLD; + + if ((ret = esplusplayer_set_buffer_size(player, option, + kMediaStreamBufferMinThreshold)) != + ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(WARNING) << "Failed setting buffer size threshold: " << ret; + } + + if ((ret = esplusplayer_set_buffer_byte_status_cb( + player, callbacks.size_status_cb, this)) != + ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(WARNING) << "Failed setting buffer size status callback: " << ret; + } + option = (type == ESPLUSPLAYER_STREAM_TYPE_VIDEO) + ? ESPLUSPLAYER_BUFFER_VIDEO_MAX_TIME_SIZE + : ESPLUSPLAYER_BUFFER_AUDIO_MAX_TIME_SIZE; + if ((ret = esplusplayer_set_buffer_size(player, option, kMaxBufferTime)) != + ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(WARNING) << "Failed setting buffer time limit: " << ret; + } + + option = (type == ESPLUSPLAYER_STREAM_TYPE_VIDEO) + ? ESPLUSPLAYER_BUFFER_VIDEO_MIN_TIME_THRESHOLD + : ESPLUSPLAYER_BUFFER_AUDIO_MIN_TIME_THRESHOLD; + // Due to bug in MMPlayer if threshold != 100 then it stops accepting data + // when the threshold is reached instead of when max is reached. Also status + // callbacks stop arriving after this. + if ((ret = esplusplayer_set_buffer_size(player, option, + kMediaStreamBufferMinThreshold)) != + ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(WARNING) << "Failed setting buffer time threshold: " << ret; + } + + // FIXME: TM1 is giving wrong time size for pipeline. +#if 0 + if ((ret = esplusplayer_set_buffer_time_status_cb( + player, callbacks.time_status_cb, this)) != + ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(WARNING) << "Failed setting buffer time status callback: " << ret; + } +#endif + return ret; +} + +BufferObserverImpl::BufferDescriptor& BufferObserverImpl::GetBuffer( + DemuxerStream::Type type) { + return buffers_[GetElementryStreamIndex(type)]; +} + +const BufferObserverImpl::BufferDescriptor& BufferObserverImpl::GetBuffer( + DemuxerStream::Type type) const { + return buffers_[GetElementryStreamIndex(type)]; +} +} // namespace media diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h new file mode 100644 index 0000000..bfae69e --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h @@ -0,0 +1,99 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_FILTERS_ESPLUSPLAYER_BUFFER_OBSERVER_IMPL_H_ +#define MEDIA_FILTERS_ESPLUSPLAYER_BUFFER_OBSERVER_IMPL_H_ + +#include "tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h" + +#include "base/task/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" +#include "tizen_src/chromium_impl/media/filters/esplusplayer_util.h" + +namespace media { + +// Observes audio or video buffer status (underrun/overflow) reported from +// platform player. Platform player reports buffer status in two ways: +// - Total size of pushed frames +// - Total duration of pushed frames +// +// Any change is propagated to Espp, which can then stop or start pushing +// frame data accordingly. +// +// Espp will be informed about overflow when any of the two reaches maximum +// (size / time overflow). However only time underrun will be propagated. This +// way buffer fill is generally controlled on time basis. +// This makes it independent of stream bitrate. +class BufferObserverImpl : public BufferObserver { + public: + BufferObserverImpl() + : task_runner_(base::ThreadTaskRunnerHandle::Get()), + weak_factory_(this) {} + + void SetBufferSize(DemuxerStream::Type, espp_buffer_size_t) final; + + // |handler| will be invoked from player's thread. + void SetBufferingCallback(const BufferingCallback&) final; + void SetEos(DemuxerStream::Type) final; + void UpdateBufferedSize(DemuxerStream::Type, espp_buffer_size_t) final; + void ResetBufferStatus() final; + int SetMediaStreamStatusCallback(esplusplayer_handle, + esplusplayer_stream_type stream_type) final; + BufferStatus GetAudioStatus() const final; + BufferStatus GetVideoStatus() const final; + void SetAudioVideoDtsDifference(int diff) final; + + private: + struct BufferStatusCallbacks { + esplusplayer_buffer_byte_status_cb size_status_cb; + esplusplayer_buffer_time_status_cb time_status_cb; + }; + + struct BufferDescriptor { + BufferDescriptor() {} + espp_buffer_size_t buffer_size{}; + int buffer_percent{}; + int duration_percent{}; + BufferStatus last_buffer_status{kBufferNone}; + bool has_size_overflow{}; + }; + + static int ToPercent(uint64_t value, uint64_t max); + static void OnBufferedSizeChanged(const esplusplayer_stream_type stream_type, + const esplusplayer_buffer_status status, + espp_buffer_size_t bytes, + void* user_data); + static void OnBufferedTimeChanged(const esplusplayer_stream_type stream_type, + const esplusplayer_buffer_status status, + uint64_t time, + void* user_data); + + void CallbackIfNeed(DemuxerStream::Type type, BufferStatus status); + void TriggerStatusChangeCallback(DemuxerStream::Type type, + BufferStatus status) const; + + BufferStatus GetBufferStatusFromSize(int buffered_percent); + BufferStatus GetBufferStatusFromTime(const BufferDescriptor& buffer); + + void SetNewStatusFromTime(DemuxerStream::Type type, uint64_t time); + bool EnsureSimilarBufferedDuration(); + + int SetBufferStatusCallbacks(esplusplayer_handle player, + esplusplayer_stream_type type, + const BufferStatusCallbacks& callbacks); + + BufferDescriptor& GetBuffer(DemuxerStream::Type type); + const BufferDescriptor& GetBuffer(DemuxerStream::Type type) const; + + std::array buffers_; + BufferingCallback buffering_callback_; + + std::atomic av_diff_{}; + + const scoped_refptr task_runner_; + base::WeakPtrFactory weak_factory_; +}; +} // namespace media + +#endif // MEDIA_FILTERS_ESPLUSPLAYER_BUFFER_OBSERVER_IMPL_H_ diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_util.cc b/tizen_src/chromium_impl/media/filters/esplusplayer_util.cc new file mode 100644 index 0000000..1eab5b8 --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_util.cc @@ -0,0 +1,179 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tizen_src/chromium_impl/media/filters/esplusplayer_util.h" + +#include "base/logging.h" + +namespace { + +#define ENUM_CASE(x) \ + case x: \ + return #x; \ + break + +} // namespace + +namespace media { + +const char* GetString(media::BufferStatus status) { + switch (status) { + ENUM_CASE(media::kBufferNone); + ENUM_CASE(media::kBufferUnderrun); + ENUM_CASE(media::kBufferMinThreshold); + ENUM_CASE(media::kBufferNormal); + ENUM_CASE(media::kBufferMaxThreshold); + ENUM_CASE(media::kBufferOverflow); + ENUM_CASE(media::kBufferAhead); + ENUM_CASE(media::kBufferEos); + }; + NOTREACHED() << "Invalid BufferStatus (" << status << ")"; + return ""; +} + +const char* GetString(esplusplayer_submit_status status) { + switch (status) { + ENUM_CASE(ESPLUSPLAYER_SUBMIT_STATUS_NOT_PREPARED); + ENUM_CASE(ESPLUSPLAYER_SUBMIT_STATUS_INVALID_PACKET); + ENUM_CASE(ESPLUSPLAYER_SUBMIT_STATUS_OUT_OF_MEMORY); + ENUM_CASE(ESPLUSPLAYER_SUBMIT_STATUS_FULL); + ENUM_CASE(ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS); + }; + NOTREACHED() << "Invalid Submit Status (" << status << ")"; + return ""; +} + +const char* GetString(esplusplayer_state state) { + switch (state) { + ENUM_CASE(ESPLUSPLAYER_STATE_NONE); + ENUM_CASE(ESPLUSPLAYER_STATE_IDLE); + ENUM_CASE(ESPLUSPLAYER_STATE_READY); + ENUM_CASE(ESPLUSPLAYER_STATE_PLAYING); + ENUM_CASE(ESPLUSPLAYER_STATE_PAUSED); + ENUM_CASE(ESPLUSPLAYER_STATE_MAX); + }; + NOTREACHED() << "Invalid state (" << state << ")"; + return ""; +} + +esplusplayer_audio_mime_type ConvertToESPlusAudioMimeType( + media::AudioCodec codec) { + esplusplayer_audio_mime_type audioMimeType; + switch (codec) { + case media::AudioCodec::kAAC: + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_AAC; + break; + case media::AudioCodec::kMP3: + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_MP3; + break; + case media::AudioCodec::kOpus: + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_OPUS; + break; + case media::AudioCodec::kPCM: + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_PCM_S16LE; + break; + case media::AudioCodec::kVorbis: + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_VORBIS; + break; + case media::AudioCodec::kEAC3: + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_EAC3; + break; + case media::AudioCodec::kAC3: + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_AC3; + break; + default: { + LOG(WARNING) << "Unknown codec :" << codec << ". Returning MP3."; + audioMimeType = ESPLUSPLAYER_AUDIO_MIME_TYPE_MP3; + } + } + return audioMimeType; +} + +esplusplayer_video_mime_type ConvertToESPlusVideoMimeType( + media::VideoCodec codec) { + esplusplayer_video_mime_type videoMimeType; + switch (codec) { + case media::VideoCodec::kH264: + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_H264; + break; + case media::VideoCodec::kMPEG2: + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_MPEG2; + break; + case media::VideoCodec::kMPEG4: + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_MPEG4; + break; + case media::VideoCodec::kVP8: + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_VP8; + break; + case media::VideoCodec::kVP9: + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_VP9; + break; + case media::VideoCodec::kHEVC: + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_HEVC; + break; + case media::VideoCodec::kAV1: + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_AV1; + break; + default: { + LOG(WARNING) << "Unknown codec :" << codec << ". Returning H264."; + videoMimeType = ESPLUSPLAYER_VIDEO_MIME_TYPE_H264; + } + } + return videoMimeType; +} + +int GetElementryStreamIndex(DemuxerStream::Type type) { + switch (type) { + case DemuxerStream::AUDIO: + return 0; + case DemuxerStream::VIDEO: + return 1; + default: + LOG(WARNING) << "Stream type [" << type << "] is not supported"; + return -1; + } +} + +DemuxerStream::Type GetDemuxerStreamType( + const esplusplayer_stream_type stream_type) { + switch (stream_type) { + case ESPLUSPLAYER_STREAM_TYPE_AUDIO: + return DemuxerStream::AUDIO; + case ESPLUSPLAYER_STREAM_TYPE_VIDEO: + return DemuxerStream::VIDEO; + default: + return DemuxerStream::UNKNOWN; + } +} + +esplusplayer_stream_type GetESPlusPlayerStreamType(DemuxerStream::Type type) { + switch (type) { + case DemuxerStream::AUDIO: + return ESPLUSPLAYER_STREAM_TYPE_AUDIO; + case DemuxerStream::VIDEO: + return ESPLUSPLAYER_STREAM_TYPE_VIDEO; + default: + return ESPLUSPLAYER_STREAM_TYPE_MAX; + } +} + +PipelineStatus GetPipelineError(const esplusplayer_error_type error) { + if (error == ESPLUSPLAYER_ERROR_TYPE_NOT_SUPPORTED_AUDIO_CODEC || + error == ESPLUSPLAYER_ERROR_TYPE_NOT_SUPPORTED_VIDEO_CODEC || + error == ESPLUSPLAYER_ERROR_TYPE_NOT_SUPPORTED_FORMAT || + error == ESPLUSPLAYER_ERROR_TYPE_NOT_SUPPORTED_FILE) + return DECODER_ERROR_NOT_SUPPORTED; + else if (error == ESPLUSPLAYER_ERROR_TYPE_CONNECTION_FAILED) + return PIPELINE_ERROR_READ; + else if (error == ESPLUSPLAYER_ERROR_TYPE_INVALID_STATE) + return PIPELINE_ERROR_INVALID_STATE; + else if (error == ESPLUSPLAYER_ERROR_TYPE_OUT_OF_MEMORY) + return PIPELINE_ERROR_ABORT; + else if (error == ESPLUSPLAYER_ERROR_TYPE_CONNECTION_FAILED) + return PIPELINE_ERROR_NETWORK; + + return PIPELINE_ERROR_DECODE; +} + +} // namespace media diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_util.h b/tizen_src/chromium_impl/media/filters/esplusplayer_util.h new file mode 100644 index 0000000..a89992e --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_util.h @@ -0,0 +1,47 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_FILTERS_ESPP_PLAYER_UTIL_H_ +#define MEDIA_FILTERS_ESPP_PLAYER_UTIL_H_ + +#include + +#include "media/base/audio_codecs.h" +#include "media/base/pipeline_status.h" +#include "media/base/video_codecs.h" +#include "tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h" + +namespace media { + +const int kElementryStreamCount = 2; // Audio, Video only. + +const int kVideoFramerateDen = 100; +const int kVideoFramerateNum = 2997; +const int kFHDVideoMaxWidth = 1920; +const int kFHDVideoMaxHeight = 1080; +const int k4KVideoMaxWidth = 3840; +const int k4KVideoMaxHeight = 2160; +const int kMaxFramerate = 60; +const int kBuffingLimit = 5; // Seconds + +const char* GetString(media::BufferStatus status); +const char* GetString(esplusplayer_submit_status status); +const char* GetString(esplusplayer_state state); + +esplusplayer_audio_mime_type ConvertToESPlusAudioMimeType( + media::AudioCodec codec); +esplusplayer_video_mime_type ConvertToESPlusVideoMimeType( + media::VideoCodec codec); + +int GetElementryStreamIndex(DemuxerStream::Type type); + +DemuxerStream::Type GetDemuxerStreamType( + const esplusplayer_stream_type stream_type); +esplusplayer_stream_type GetESPlusPlayerStreamType(DemuxerStream::Type type); + +PipelineStatus GetPipelineError(const esplusplayer_error_type error); + +} // namespace media + +#endif // MEDIA_FILTERS_ESPP_PLAYER_UTIL_H_ diff --git a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc new file mode 100644 index 0000000..f50d4c4 --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc @@ -0,0 +1,986 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h" + +#include +#include + +#include "base/bind.h" +#include "base/callback.h" +#include "base/location.h" +#include "base/logging.h" +#include "media/base/decoder_buffer.h" +#include "media/base/renderer_client.h" +#include "third_party/libyuv/include/libyuv/convert.h" + +namespace media { + +espp_buffer_size_t GetMaxAudioBufferSize() { + // Assume MPEG-1 Audio Layer III 320kbit/s audio. + return 320 * 1000 / 8 * kBuffingLimit; +} + +espp_buffer_size_t GetMaxVideoBufferSize(gfx::Size size) { + const int fps = 60; // Asume max. + + // Reference of buffer size estimation: + // http://stackoverflow.com/questions/5024114/suggested-compression-ratio-with-h-264 + return static_cast(size.width()) * size.height() * fps * + 2 * 7 / 100 / 8 * kBuffingLimit; +} + +void ReadyToPrepareCallback(const esplusplayer_stream_type stream_type, + void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnReadyToPrepare(stream_type); +} + +void PrepareCompleteCallback(bool result, void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnPrepareComplete(result); +} + +void EosCallback(void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnEos(); +} + +void FrameReadyCallback(const esplusplayer_decoded_video_packet* packet, + void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnFrameReady(packet); +} + +void FlushCompleteCallback(void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnFlushComplete(); +} + +void ReadyToSeekCallback(const esplusplayer_stream_type stream_type, + const uint64_t seek_time, + void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnReadyToSeek(stream_type, seek_time); +} + +void SeekCompleteCallback(void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnSeekComplete(); +} + +void ResourceConflictCallback(void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnResourceConflict(); +} + +void ErrorCallback(const esplusplayer_error_type error_type, void* user_data) { + MediaPlayerESPlusPlayer* player = + static_cast(user_data); + if (!player) + return; + + player->OnError(error_type); +} + +// static +MediaPlayerESPlusPlayer* MediaPlayerESPlusPlayer::GetEsppPlayer() { + return base::Singleton::get(); +} + +MediaPlayerESPlusPlayer::~MediaPlayerESPlusPlayer() { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; + weak_factory_.InvalidateWeakPtrs(); + + int error = esplusplayer_destroy(esplayer_); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) + LOG(ERROR) << "esplusplayer_destroy failed, error #" + << esplusplayer_get_error_string( + static_cast(error)); + esplayer_ = nullptr; +} + +bool MediaPlayerESPlusPlayer::Initialize(VideoRendererSink* sink) { + if (esplayer_) { + LOG(INFO) << "esplus player exists!"; + sink_ = sink; + return true; + } + + esplayer_ = esplusplayer_create(); + if (!esplayer_) { + LOG(ERROR) << "Cannot create esplus player!"; + return false; + } + + esplusplayer_set_ready_to_prepare_cb(esplayer_, &ReadyToPrepareCallback, + this); + esplusplayer_set_prepare_async_done_cb(esplayer_, &PrepareCompleteCallback, + this); + esplusplayer_set_eos_cb(esplayer_, &EosCallback, this); + esplusplayer_set_media_packet_video_decoded_cb(esplayer_, &FrameReadyCallback, + this); + esplusplayer_set_flush_done_cb(esplayer_, &FlushCompleteCallback, this); + esplusplayer_set_ready_to_seek_cb(esplayer_, &ReadyToSeekCallback, this); + esplusplayer_set_seek_done_cb(esplayer_, &SeekCompleteCallback, this); + esplusplayer_set_resource_conflicted_cb(esplayer_, &ResourceConflictCallback, + this); + esplusplayer_set_error_cb(esplayer_, &ErrorCallback, this); + + int error = esplusplayer_open(esplayer_); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "esplusplayer_open failed. error #" + << esplusplayer_get_error_string( + static_cast(error)); + return false; + } + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " state:" << GetString(GetPlayerState()); + error = esplusplayer_set_video_frame_buffer_type( + esplayer_, ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_COPY); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "esplusplayer_set_video_frame_buffer_type failed. error #" + << esplusplayer_get_error_string( + static_cast(error)); + return false; + } + + sink_ = sink; + buffer_observer_.reset(BufferObserver::CreateBufferObserver()); + buffer_observer_->SetBufferingCallback( + base::BindRepeating(&MediaPlayerESPlusPlayer::OnBufferingStatusChanged, + weak_factory_.GetWeakPtr())); + return true; +} + +void MediaPlayerESPlusPlayer::SetTaskRunner( + const scoped_refptr& task_runner) { + task_runner_ = task_runner.get(); +} + +void MediaPlayerESPlusPlayer::SetStreamInfo(DemuxerStream::Type type, + DemuxerStream* stream, + RendererClient* client) { + if (!esplayer_) { + LOG(ERROR) << "Invalid player handle. Send error to client."; + client->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + + SetDemuxerStream(type, stream); + SetRendererClient(type, client); + InitializeStreamConfig(type); +} + +void MediaPlayerESPlusPlayer::Prepare() { + if (GetPlayerState() != ESPLUSPLAYER_STATE_IDLE) { + LOG(ERROR) << "(" << static_cast(this) << ") " << __func__ + << " Prepare called on invalid state : " + << GetString(GetPlayerState()); + return; + } + + int error = esplusplayer_prepare_async(esplayer_); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "player prepare failed! error #" + << esplusplayer_get_error_string( + static_cast(error)); + + if (IsValid(DemuxerStream::AUDIO)) + GetRendererClient(DemuxerStream::AUDIO) + ->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + else if (IsValid(DemuxerStream::VIDEO)) + GetRendererClient(DemuxerStream::VIDEO) + ->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + + buffer_observer_->ResetBufferStatus(); +} + +void MediaPlayerESPlusPlayer::Play() { + int error = ESPLUSPLAYER_ERROR_TYPE_NONE; + esplusplayer_state state = GetPlayerState(); + + is_paused_ = false; + if (state < ESPLUSPLAYER_STATE_READY || !is_prepared_ || is_seeking_) { + LOG(INFO) << "state : " << GetString(state) + << " is_prepared : " << is_prepared_ + << " is_seeking : " << is_seeking_ + << " is_buffering : " << is_buffering_; + return; + } + + if (is_buffering_) { + LOG(INFO) << "state : " << GetString(state) << " is_paused : " << is_paused_ + << " is_buffering : " << is_buffering_; + // return; + } + + SetVolume(volume_); + if (should_set_playback_rate_) + SetRate(playback_rate_); + + if (state == ESPLUSPLAYER_STATE_READY) + error = esplusplayer_start(esplayer_); + else if (state == ESPLUSPLAYER_STATE_PAUSED || + state == ESPLUSPLAYER_STATE_PLAYING) + error = esplusplayer_resume(esplayer_); + + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "player play failed! state #" << GetString(state) + << " error #" + << esplusplayer_get_error_string( + static_cast(error)); + // TODO: handle error! + return; + } +} + +void MediaPlayerESPlusPlayer::Pause(bool is_media_related_action) { + if (!is_media_related_action) + is_paused_ = true; + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " is_buffering : " << is_buffering_ + << " is_media_action : " << is_media_related_action; + esplusplayer_state state = GetPlayerState(); + if (state != ESPLUSPLAYER_STATE_PLAYING) { + LOG(WARNING) << "Cannot pause in " << GetString(state) << " state"; + return; + } + + int error = esplusplayer_pause(esplayer_); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "player pause failed! error #" + << esplusplayer_get_error_string( + static_cast(error)); + // TODO: handle error! + return; + } +} + +void MediaPlayerESPlusPlayer::SetRate(double rate) { + if (playback_rate_ == rate) + return; + + playback_rate_ = rate; + if (GetPlayerState() < ESPLUSPLAYER_STATE_READY) { + should_set_playback_rate_ = true; + return; + } + + bool should_mute = rate >= 2.0; + int error = + esplusplayer_set_playback_rate(esplayer_, playback_rate_, should_mute); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "player pause failed! error #" + << esplusplayer_get_error_string( + static_cast(error)); + return; + } + should_set_playback_rate_ = false; +} + +void MediaPlayerESPlusPlayer::Seek(base::TimeDelta time) { + if (GetCurrentTime() == time) + return; + + if (GetPlayerState() < ESPLUSPLAYER_STATE_READY || !is_prepared_ || + is_seeking_) { + LOG(INFO) << "Add to pending seek (" + << ") state: " << GetString(GetPlayerState()) + << " is_prepared : " << is_prepared_ + << " is_seeking : " << is_seeking_; + pending_seek_ = true; + pending_seek_position_ = time; + return; + } + + LOG(INFO) << __func__ << " : " << time; + int error = esplusplayer_seek(esplayer_, time.InMilliseconds()); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "Seek failed. Current time : " << time.InSecondsF() + << " error #" + << esplusplayer_get_error_string( + static_cast(error)); + return; + } + + is_seeking_ = true; + pending_seek_ = false; + seek_position_ = time; + pending_seek_position_ = base::TimeDelta(); +} + +void MediaPlayerESPlusPlayer::Flush(base::OnceClosure flush_cb) { + NOTIMPLEMENTED(); + std::move(flush_cb).Run(); +} + +void MediaPlayerESPlusPlayer::SetVolume(double volume) { + volume_ = volume; + if (GetPlayerState() == ESPLUSPLAYER_STATE_NONE) + return; + + int error = esplusplayer_set_volume(esplayer_, 100 * volume_); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) + LOG(ERROR) << "esplusplayer_set_volume failed, error #" + << esplusplayer_get_error_string( + static_cast(error)); +} + +base::TimeDelta MediaPlayerESPlusPlayer::GetCurrentTime() { + if (GetPlayerState() < ESPLUSPLAYER_STATE_PLAYING) + return base::TimeDelta(); + + if (is_seeking_) + return seek_position_; + + uint64_t time = 0; // In milliseconds. + int error = esplusplayer_get_playing_time(esplayer_, &time); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "esplusplayer_get_playing_time failed. error #" + << esplusplayer_get_error_string( + static_cast(error)); + return base::TimeDelta(); + } + + return base::Milliseconds(time); +} + +esplusplayer_state MediaPlayerESPlusPlayer::GetPlayerState() { + return esplusplayer_get_state(esplayer_); +} + +void MediaPlayerESPlusPlayer::InitializeStreamConfig(DemuxerStream::Type type) { + DemuxerStream* stream = GetDemuxerStream(type); + CHECK(stream); + + if (type == DemuxerStream::AUDIO) { + media::AudioDecoderConfig audio_config = stream->audio_decoder_config(); + if (!audio_config.IsValidConfig()) { + LOG(INFO) << "Invalid audio config"; + return; + } + + LOG(INFO) << "Audio config : " << audio_config.AsHumanReadableString(); + esplusplayer_audio_stream_info audio_stream_info; + memset(&audio_stream_info, 0, sizeof(esplusplayer_audio_stream_info)); + + audio_stream_info.mime_type = + ConvertToESPlusAudioMimeType(audio_config.codec()); + audio_stream_info.bitrate = audio_config.bytes_per_channel() * + audio_config.samples_per_second() * 8; + audio_stream_info.channels = + media::ChannelLayoutToChannelCount(audio_config.channel_layout()); + audio_stream_info.sample_rate = audio_config.samples_per_second(); + audio_stream_info.codec_data_length = audio_config.extra_data().size(); + + if (audio_stream_info.codec_data_length > 0) { + audio_stream_info.codec_data = + (char*)(const_cast(audio_config.extra_data().data())); + } else { + audio_stream_info.codec_data = NULL; + } + + int error = + esplusplayer_set_audio_stream_info(esplayer_, &audio_stream_info); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "esplusplayer_set_audio_stream_info failed. error code " + << error; + GetRendererClient(type)->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + + espp_buffer_size_t max_buffer_size = GetMaxAudioBufferSize(); + buffer_observer_->SetMediaStreamStatusCallback( + esplayer_, ESPLUSPLAYER_STREAM_TYPE_AUDIO); + buffer_observer_->SetBufferSize(type, max_buffer_size); + + error = esplusplayer_set_buffer_size( + esplayer_, ESPLUSPLAYER_BUFFER_AUDIO_MAX_BYTE_SIZE, max_buffer_size); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) + LOG(WARNING) << "Failed to set audio buffer to " << max_buffer_size / 1024 + << "KB"; + + SetIsValid(type, true); + GetRendererClient(type)->OnAudioConfigChange(audio_config); + } + + if (type == DemuxerStream::VIDEO) { + media::VideoDecoderConfig video_config = stream->video_decoder_config(); + if (!video_config.IsValidConfig()) { + LOG(ERROR) << "Invalid video config."; + return; + } + + LOG(INFO) << "Video config : " << video_config.AsHumanReadableString(); + esplusplayer_video_stream_info video_stream_info; + memset(&video_stream_info, 0, sizeof(esplusplayer_video_stream_info)); + + video_stream_info.width = video_config.coded_size().width(); + video_stream_info.height = video_config.coded_size().height(); + video_stream_info.mime_type = + ConvertToESPlusVideoMimeType(video_config.codec()); + + // TODO: Fetch frame rate from demuxer? + video_stream_info.framerate_num = kVideoFramerateNum; + video_stream_info.framerate_den = kVideoFramerateDen; + video_stream_info.codec_data_length = video_config.extra_data().size(); + if (video_stream_info.codec_data_length > 0) { + video_stream_info.codec_data = + (char*)(const_cast(video_config.extra_data().data())); + } else { + video_stream_info.codec_data = NULL; + } + + video_stream_info.max_width = k4KVideoMaxWidth; + video_stream_info.max_height = k4KVideoMaxHeight; + + int error = + esplusplayer_set_video_stream_info(esplayer_, &video_stream_info); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "esplusplayer_set_video_stream_info failed. error code " + << error; + GetRendererClient(type)->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + + espp_buffer_size_t max_buffer_size = + GetMaxVideoBufferSize(video_config.coded_size()); + buffer_observer_->SetMediaStreamStatusCallback( + esplayer_, ESPLUSPLAYER_STREAM_TYPE_VIDEO); + buffer_observer_->SetBufferSize(type, max_buffer_size); + + error = esplusplayer_set_buffer_size( + esplayer_, ESPLUSPLAYER_BUFFER_VIDEO_MAX_BYTE_SIZE, max_buffer_size); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) + LOG(WARNING) << "Failed to set video buffer to " << max_buffer_size / 1024 + << "KB"; + + SetIsValid(type, true); + GetRendererClient(type)->OnVideoConfigChange(video_config); + } +} + +void MediaPlayerESPlusPlayer::ReadBuffer(DemuxerStream::Type type) { + // TODO: Check and read from Queue. + if (!ShouldFeed(type) || ReadRequested(type)) + return; + + SetReadRequested(type, true); + GetDemuxerStream(type)->Read( + base::BindOnce(&MediaPlayerESPlusPlayer::OnBufferReady, + weak_factory_.GetWeakPtr(), type)); +} + +void MediaPlayerESPlusPlayer::OnBufferReady( + DemuxerStream::Type type, + DemuxerStream::Status status, + scoped_refptr buffer) { + switch (status) { + case DemuxerStream::kAborted: + case DemuxerStream::kError: + GetBufferQueue(type).clear(); + break; + case DemuxerStream::kConfigChanged: + // Clear pending buffer of older config + GetBufferQueue(type).clear(); + InitializeStreamConfig(type); + break; + case DemuxerStream::kOk: { + if (buffer.get()->end_of_stream()) { + SubmitEosPacket(type); + return; + } + + SubmitEsPacket(type, std::move(buffer)); + break; + } + } + + SetReadRequested(type, false); + ReadBuffer(type); +} + +void MediaPlayerESPlusPlayer::SubmitEosPacket(DemuxerStream::Type type) { + if (IsEos(type)) + return; + + esplusplayer_submit_status ret = esplusplayer_submit_eos_packet( + esplayer_, GetESPlusPlayerStreamType(type)); + if (ret != ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS) { + LOG(ERROR) << "Submit Eos (" << DemuxerStream::GetTypeName(type) + << ") Packet failed, ret:" << ret; + return; + } + + buffer_observer_->SetEos(type); + SetIsEos(type, true); +} + +void MediaPlayerESPlusPlayer::SubmitEsPacket( + DemuxerStream::Type type, + scoped_refptr buffer) { + esplusplayer_es_packet packet; + memset(&packet, 0, sizeof(esplusplayer_es_packet)); + packet.type = GetESPlusPlayerStreamType(type); + + packet.buffer = (char*)(const_cast(buffer->data())); + packet.buffer_size = buffer->data_size(); + packet.pts = buffer->timestamp().InMilliseconds(); + packet.duration = buffer->duration().InMilliseconds(); + + // This filed only set when PushMediaPacket + packet.matroska_color_info = nullptr; + esplusplayer_submit_status ret = + esplusplayer_submit_packet(esplayer_, &packet); + if (ret != ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS) { + if (ret == ESPLUSPLAYER_SUBMIT_STATUS_FULL || + ret == ESPLUSPLAYER_SUBMIT_STATUS_OUT_OF_MEMORY || + ret == ESPLUSPLAYER_SUBMIT_STATUS_NOT_PREPARED) { + GetBufferQueue(type).push_back(buffer); + } + + LOG(WARNING) << "submit " << DemuxerStream::GetTypeName(type) + << " packet : " << GetString(ret); + } +} + +void MediaPlayerESPlusPlayer::OnBufferingStatusChanged(DemuxerStream::Type type, + BufferStatus status) { + LOG(INFO) << __func__ << " " << DemuxerStream::GetTypeName(type) << " : " + << GetString(status); + const auto RequestStateChange = [this](esplusplayer_state state) { + LOG(INFO) << __func__ << " req. change state : " << GetString(state); + switch (state) { + case ESPLUSPLAYER_STATE_PLAYING: + Play(); + break; + case ESPLUSPLAYER_STATE_PAUSED: + Pause(true); + break; + default: + NOTREACHED(); + } + }; + + SetBufferStatus(type, status); + switch (status) { + case kBufferUnderrun: + // RequestStateChange(ESPLUSPLAYER_STATE_PAUSED); + [[fallthrough]]; + case kBufferMinThreshold: + case kBufferNormal: + is_buffering_ = true; + SetShouldFeed(type, true); + ReadBuffer(type); + break; + + case kBufferMaxThreshold: + case kBufferOverflow: + case kBufferEos: + case kBufferAhead: + is_buffering_ = false; + SetShouldFeed(type, false); + // if (!is_paused_) + // RequestStateChange(ESPLUSPLAYER_STATE_PLAYING); + break; + case kBufferNone: + NOTREACHED(); + } + + // TODO: Check if controller can control underflow. Currently buffering + // related state changes are commented for the same (in Play and + // RequestStateChange). + if (status == kBufferUnderrun) { + GetRendererClient(type)->OnBufferingStateChange(BUFFERING_HAVE_NOTHING, + DEMUXER_UNDERFLOW); + } else if (status == kBufferMaxThreshold || status == kBufferOverflow || + status == kBufferAhead) { + GetRendererClient(type)->OnBufferingStateChange( + BUFFERING_HAVE_ENOUGH, BUFFERING_CHANGE_REASON_UNKNOWN); + } +} + +void MediaPlayerESPlusPlayer::OnReadyToPrepare( + const esplusplayer_stream_type stream_type) { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask( + FROM_HERE, base::BindOnce(&MediaPlayerESPlusPlayer::OnReadyToPrepare, + weak_factory_.GetWeakPtr(), stream_type)); + return; + } + + LOG(INFO) << "OnReadyToPrepare : " + << DemuxerStream::GetTypeName(GetDemuxerStreamType(stream_type)); + if (stream_type != ESPLUSPLAYER_STREAM_TYPE_AUDIO && + stream_type != ESPLUSPLAYER_STREAM_TYPE_VIDEO) + return; + + DemuxerStream::Type type = GetDemuxerStreamType(stream_type); + if (IsValid(type)) { + SetShouldFeed(type, true); + ReadBuffer(type); + } +} + +void MediaPlayerESPlusPlayer::OnPrepareComplete(bool result) { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask( + FROM_HERE, base::BindOnce(&MediaPlayerESPlusPlayer::OnPrepareComplete, + weak_factory_.GetWeakPtr(), result)); + return; + } + + if (!result) { + LOG(ERROR) << "OnPrepareComplete prepare_async failed."; + if (IsValid(DemuxerStream::AUDIO)) + GetRendererClient(DemuxerStream::AUDIO) + ->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + else if (IsValid(DemuxerStream::VIDEO)) + GetRendererClient(DemuxerStream::VIDEO) + ->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + + if (GetPlayerState() != ESPLUSPLAYER_STATE_READY) { + LOG(ERROR) << "Invalid state (" << GetString(GetPlayerState()) + << ") change during prepare. Returning."; + return; + } + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " seek_position : " << seek_position_ + << " pending_seek_ : " << pending_seek_ + << " pending_seek_position_ : " << pending_seek_position_; + + is_prepared_ = true; + if (pending_seek_) { + Seek(pending_seek_position_); + pending_seek_position_ = base::TimeDelta(); + } +} + +void MediaPlayerESPlusPlayer::OnEos() { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask(FROM_HERE, + base::BindOnce(&MediaPlayerESPlusPlayer::OnEos, + weak_factory_.GetWeakPtr())); + return; + } + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; + if (IsValid(DemuxerStream::VIDEO)) + GetRendererClient(DemuxerStream::VIDEO)->OnEnded(); + else if (IsValid(DemuxerStream::AUDIO)) + GetRendererClient(DemuxerStream::AUDIO)->OnEnded(); +} + +void MediaPlayerESPlusPlayer::OnFrameReady( + const esplusplayer_decoded_video_packet* packet) { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask( + FROM_HERE, base::BindOnce(&MediaPlayerESPlusPlayer::OnFrameReady, + weak_factory_.GetWeakPtr(), packet)); + return; + } + tbm_surface_info_s suf_info = { + 0, + }; + tbm_surface_h tbm_surface = static_cast(packet->surface_data); + + if (TBM_SURFACE_ERROR_NONE != tbm_surface_get_info(tbm_surface, &suf_info)) { + LOG(ERROR) << "|tbm_surface_get_info| failed"; + return; + } + + int width = static_cast(suf_info.width); + int height = static_cast(suf_info.height); + gfx::Size size(width, height); + + base::TimeDelta timestamp = base::Milliseconds(packet->pts); + DLOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " size:" << size.ToString() + << ", timestamp:" << timestamp.InMilliseconds() + << ", duration:" << packet->duration << ", Player(" << esplayer_ + << ", state:" << GetString(GetPlayerState()); + + base::UnsafeSharedMemoryRegion shared_memory; + uint32_t shared_memory_size = + suf_info.planes[0].size + (suf_info.planes[0].size / 2); + shared_memory = base::UnsafeSharedMemoryRegion::Create(shared_memory_size); + if (!shared_memory.IsValid()) { + LOG(ERROR) << "Shared Memory creation failed."; + return; + } + + base::WritableSharedMemoryMapping memory_mapping; + memory_mapping = shared_memory.Map(); + if (!memory_mapping.IsValid()) { + LOG(ERROR) << "Shared Memory handle could not be obtained"; + return; + } + + unsigned char* y_ptr = static_cast(memory_mapping.memory()); + + // Video format will always be converted to I420 + switch (suf_info.format) { + case TBM_FORMAT_NV12: { + unsigned char* u_ptr = y_ptr + suf_info.planes[0].size; + unsigned char* v_ptr = u_ptr + (suf_info.planes[0].size / 4); + libyuv::NV12ToI420(suf_info.planes[0].ptr, suf_info.planes[0].stride, + suf_info.planes[1].ptr, suf_info.planes[1].stride, + y_ptr, suf_info.planes[0].stride, u_ptr, + suf_info.planes[1].stride / 2, v_ptr, + suf_info.planes[1].stride / 2, suf_info.width, + suf_info.height); + break; + } + case TBM_FORMAT_YUV420: { + unsigned char* u_ptr = y_ptr + suf_info.planes[0].size; + unsigned char* v_ptr = u_ptr + suf_info.planes[1].size; + libyuv::I420Copy( + suf_info.planes[0].ptr, suf_info.planes[0].stride, + suf_info.planes[1].ptr, suf_info.planes[1].stride, + suf_info.planes[2].ptr, suf_info.planes[2].stride, y_ptr, + suf_info.planes[0].stride, u_ptr, suf_info.planes[1].stride, v_ptr, + suf_info.planes[2].stride, suf_info.width, suf_info.height); + break; + } + default: { + NOTIMPLEMENTED(); + LOG(WARNING) << "Not supported format"; + return; + } + } + if (!sink_) { + esplusplayer_decoded_buffer_destroy( + esplayer_, const_cast(packet)); + data_cb_.Run(0, std::move(shared_memory), shared_memory_size, timestamp, + width, height); + } else { + uint8_t* const yuv_buffer = static_cast(memory_mapping.memory()); + scoped_refptr video_frame = VideoFrame::CreateFrame( + media::PIXEL_FORMAT_I420, size, gfx::Rect(size), size, timestamp); + + uint8_t* video_buf = yuv_buffer; + const uint c_frm_size = shared_memory_size / 6; + const uint y_frm_size = c_frm_size << 2; // * 4; + + // U Plane buffer. + uint8_t* video_buf_u = video_buf + y_frm_size; + + // V Plane buffer. + uint8_t* video_buf_v = video_buf_u + c_frm_size; + + libyuv::I420Copy( + video_buf, video_frame.get()->stride(VideoFrame::kYPlane), video_buf_u, + video_frame.get()->stride(VideoFrame::kYPlane) / 2, video_buf_v, + video_frame.get()->stride(VideoFrame::kYPlane) / 2, + video_frame.get()->GetWritableVisibleData(VideoFrame::kYPlane), + video_frame.get()->stride(VideoFrame::kYPlane), + video_frame.get()->GetWritableVisibleData(VideoFrame::kUPlane), + video_frame.get()->stride(VideoFrame::kUPlane), + video_frame.get()->GetWritableVisibleData(VideoFrame::kVPlane), + video_frame.get()->stride(VideoFrame::kVPlane), width, height); + esplusplayer_decoded_buffer_destroy( + esplayer_, const_cast(packet)); + + sink_->PaintSingleFrame(video_frame); + } +} + +void MediaPlayerESPlusPlayer::OnFlushComplete() { + NOTIMPLEMENTED(); +} + +void MediaPlayerESPlusPlayer::OnReadyToSeek( + const esplusplayer_stream_type stream_type, + const uint64_t seek_time) { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&MediaPlayerESPlusPlayer::OnReadyToSeek, + weak_factory_.GetWeakPtr(), stream_type, seek_time)); + return; + } + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " : " + << DemuxerStream::GetTypeName(GetDemuxerStreamType(stream_type)) + << " : " << seek_time; + + SetShouldFeed(GetDemuxerStreamType(stream_type), true); + SetReadRequested(GetDemuxerStreamType(stream_type), false); + ReadBuffer(GetDemuxerStreamType(stream_type)); +} + +void MediaPlayerESPlusPlayer::OnSeekComplete() { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask( + FROM_HERE, base::BindOnce(&MediaPlayerESPlusPlayer::OnSeekComplete, + weak_factory_.GetWeakPtr())); + return; + } + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " is_paused:" << is_paused_; + is_seeking_ = false; + if (pending_seek_) { + Seek(pending_seek_position_); + pending_seek_position_ = base::TimeDelta(); + return; + } + + if (!is_paused_) + Play(); +} + +void MediaPlayerESPlusPlayer::OnResourceConflict() { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask( + FROM_HERE, base::BindOnce(&MediaPlayerESPlusPlayer::OnResourceConflict, + weak_factory_.GetWeakPtr())); + return; + } + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; + NOTIMPLEMENTED(); +} + +void MediaPlayerESPlusPlayer::OnError(const esplusplayer_error_type error) { + if (!task_runner_->BelongsToCurrentThread()) { + task_runner_->PostTask(FROM_HERE, + base::BindOnce(&MediaPlayerESPlusPlayer::OnError, + weak_factory_.GetWeakPtr(), error)); + return; + } + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " : " + << esplusplayer_get_error_string( + static_cast(error)); + + if (IsValid(DemuxerStream::VIDEO)) + GetRendererClient(DemuxerStream::VIDEO)->OnError(GetPipelineError(error)); + else if (IsValid(DemuxerStream::AUDIO)) + GetRendererClient(DemuxerStream::AUDIO)->OnError(GetPipelineError(error)); +} + +MediaPlayerESPlusPlayer::ElementryStream& +MediaPlayerESPlusPlayer::GetElementryStream(DemuxerStream::Type type) { + return elementry_stream_[GetElementryStreamIndex(type)]; +} + +const MediaPlayerESPlusPlayer::ElementryStream& +MediaPlayerESPlusPlayer::GetElementryStream(DemuxerStream::Type type) const { + return elementry_stream_[GetElementryStreamIndex(type)]; +} + +bool MediaPlayerESPlusPlayer::IsValid(DemuxerStream::Type type) const { + return GetElementryStream(type).is_valid_; +} + +void MediaPlayerESPlusPlayer::SetIsValid(DemuxerStream::Type type, bool value) { + GetElementryStream(type).is_valid_ = value; +} + +bool MediaPlayerESPlusPlayer::IsEos(DemuxerStream::Type type) const { + return GetElementryStream(type).is_eos_; +} + +void MediaPlayerESPlusPlayer::SetIsEos(DemuxerStream::Type type, bool value) { + GetElementryStream(type).is_eos_ = value; +} + +bool MediaPlayerESPlusPlayer::ShouldFeed(DemuxerStream::Type type) const { + return GetElementryStream(type).should_feed_; +} + +void MediaPlayerESPlusPlayer::SetShouldFeed(DemuxerStream::Type type, + bool value) { + GetElementryStream(type).should_feed_ = value; +} + +bool MediaPlayerESPlusPlayer::ReadRequested(DemuxerStream::Type type) const { + return GetElementryStream(type).read_requested_; +} + +void MediaPlayerESPlusPlayer::SetReadRequested(DemuxerStream::Type type, + bool value) { + GetElementryStream(type).read_requested_ = value; +} + +BufferStatus MediaPlayerESPlusPlayer::GetBufferStatus( + DemuxerStream::Type type) { + return GetElementryStream(type).buffer_status_; +} + +void MediaPlayerESPlusPlayer::SetBufferStatus(DemuxerStream::Type type, + BufferStatus status) { + GetElementryStream(type).buffer_status_ = status; +} + +DemuxerStream* MediaPlayerESPlusPlayer::GetDemuxerStream( + DemuxerStream::Type type) const { + return GetElementryStream(type).input_stream_; +} + +void MediaPlayerESPlusPlayer::SetDemuxerStream(DemuxerStream::Type type, + DemuxerStream* stream) { + GetElementryStream(type).input_stream_ = stream; +} + +RendererClient* MediaPlayerESPlusPlayer::GetRendererClient( + DemuxerStream::Type type) const { + return GetElementryStream(type).renderer_client_; +} + +void MediaPlayerESPlusPlayer::SetRendererClient(DemuxerStream::Type type, + RendererClient* client) { + GetElementryStream(type).renderer_client_ = client; +} + +base::circular_deque> +MediaPlayerESPlusPlayer::GetBufferQueue(DemuxerStream::Type type) { + return GetElementryStream(type).pending_buffers_; +} + +void MediaPlayerESPlusPlayer::SetFrameAvailableCallback( + const DataRequestCB& datacb) { + data_cb_ = datacb; +} +} // namespace media diff --git a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h new file mode 100644 index 0000000..ec5ce91 --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h @@ -0,0 +1,149 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_FILTERS_MEDIA_PLAYER_ESPLUSPLAYER_H_ +#define MEDIA_FILTERS_MEDIA_PLAYER_ESPLUSPLAYER_H_ + +#include + +#include "base/containers/circular_deque.h" +#include "base/memory/singleton.h" +#include "base/memory/unsafe_shared_memory_region.h" +#include "base/task/single_thread_task_runner.h" +#include "base/time/time.h" +#include "media/base/demuxer_stream.h" +#include "media/base/video_renderer_sink.h" +#include "tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h" +#include "tizen_src/chromium_impl/media/filters/esplusplayer_util.h" + +namespace media { + +class DemuxerStream; +class RendererClient; + +// This class handles media source extensions for CAPI port. +class MEDIA_EXPORT MediaPlayerESPlusPlayer { + public: + static MediaPlayerESPlusPlayer* GetEsppPlayer(); + + using DataRequestCB = + base::RepeatingCallback; + bool Initialize(VideoRendererSink* sink); + void Prepare(); + void SetTaskRunner( + const scoped_refptr& task_runner); + void SetStreamInfo(DemuxerStream::Type type, + DemuxerStream* stream, + RendererClient* client); + + void Play(); + void Pause(bool is_media_related_action = false); + void SetRate(double rate); + void Seek(base::TimeDelta time); + void Flush(base::OnceClosure flush_cb); + void SetVolume(double volume); + base::TimeDelta GetCurrentTime(); + + // Callback handler + void OnReadyToPrepare(const esplusplayer_stream_type stream_type); + void OnPrepareComplete(bool result); + void OnEos(); + void OnFrameReady(const esplusplayer_decoded_video_packet* packet); + void OnFlushComplete(); + void OnReadyToSeek(const esplusplayer_stream_type stream_type, + const uint64_t seek_time); + void OnSeekComplete(); + void OnResourceConflict(); + void OnError(const esplusplayer_error_type error_type); + + void OnBufferingStatusChanged(DemuxerStream::Type type, BufferStatus status); + void SetFrameAvailableCallback(const DataRequestCB& datacb); + + private: + struct ElementryStream { + bool is_valid_ = false; + bool is_eos_ = false; + bool should_feed_ = false; + bool read_requested_ = false; + BufferStatus buffer_status_ = kBufferNone; // Not used! + DemuxerStream* input_stream_ = nullptr; + RendererClient* renderer_client_ = nullptr; + base::circular_deque> pending_buffers_; + }; + + friend struct base::DefaultSingletonTraits; + + explicit MediaPlayerESPlusPlayer() = default; + ~MediaPlayerESPlusPlayer(); + MediaPlayerESPlusPlayer(const MediaPlayerESPlusPlayer&) = delete; + MediaPlayerESPlusPlayer& operator=(const MediaPlayerESPlusPlayer&) = delete; + + esplusplayer_state GetPlayerState(); + + void InitializeStreamConfig(DemuxerStream::Type type); + void ReadBuffer(DemuxerStream::Type type); + void OnBufferReady(DemuxerStream::Type type, + DemuxerStream::Status status, + scoped_refptr buffer); + void SubmitEosPacket(DemuxerStream::Type type); + void SubmitEsPacket(DemuxerStream::Type type, + scoped_refptr buffer); + + ElementryStream& GetElementryStream(DemuxerStream::Type type); + const ElementryStream& GetElementryStream(DemuxerStream::Type type) const; + bool IsValid(DemuxerStream::Type type) const; + void SetIsValid(DemuxerStream::Type type, bool value); + bool IsEos(DemuxerStream::Type type) const; + void SetIsEos(DemuxerStream::Type type, bool value); + bool ShouldFeed(DemuxerStream::Type type) const; + void SetShouldFeed(DemuxerStream::Type type, bool value); + bool ReadRequested(DemuxerStream::Type type) const; + void SetReadRequested(DemuxerStream::Type type, bool value); + BufferStatus GetBufferStatus(DemuxerStream::Type type); + void SetBufferStatus(DemuxerStream::Type type, BufferStatus status); + DemuxerStream* GetDemuxerStream(DemuxerStream::Type type) const; + void SetDemuxerStream(DemuxerStream::Type type, DemuxerStream* stream); + RendererClient* GetRendererClient(DemuxerStream::Type type) const; + void SetRendererClient(DemuxerStream::Type type, RendererClient* client); + base::circular_deque> GetBufferQueue( + DemuxerStream::Type type); + + esplusplayer_handle esplayer_ = nullptr; + + double volume_ = 1.0; + bool playback_rate_ = 0.0; + bool is_prepared_ = false; + bool is_paused_ = true; + bool is_buffering_ = false; + + bool is_flushing_ = false; + bool is_seeking_ = false; + base::TimeDelta seek_position_; + + bool pending_seek_ = false; + base::TimeDelta pending_seek_position_; + + bool should_set_playback_rate_ = false; + + base::OnceClosure flush_cb_; + DataRequestCB data_cb_; + + VideoRendererSink* sink_; + + std::array elementry_stream_; + std::unique_ptr buffer_observer_; + + scoped_refptr task_runner_; + + base::WeakPtrFactory weak_factory_{this}; +}; + +} // namespace media + +#endif // MEDIA_FILTERS_MEDIA_PLAYER_ESPLUSPLAYER_H_ diff --git a/tizen_src/chromium_impl/media/media_efl.gni b/tizen_src/chromium_impl/media/media_efl.gni index e7a983e..ce25af0 100644 --- a/tizen_src/chromium_impl/media/media_efl.gni +++ b/tizen_src/chromium_impl/media/media_efl.gni @@ -8,6 +8,8 @@ external_media_efl_deps = [] external_media_efl_sources = [] external_exclude_media_efl_sources = [] external_media_efl_config = [] +external_media_video_decode_config = [] +external_media_video_decode_sources = [] if (use_ozone) { external_media_efl_deps += [ "//tizen_src/chromium_impl/ui/ozone:ozone_efl" ] @@ -84,3 +86,21 @@ if (tizen_multimedia_support) { external_media_efl_config += [ ":media_efl_config" ] } + +if (tizen_multimedia) { + external_media_video_decode_config += [ + "//tizen_src/build:esplusplayer", + "//tizen_src/build:libesplusplayer", + "//tizen_src/chromium_impl/media:media_efl_config", + ] + + external_media_video_decode_sources += [ + "//tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h", + "//tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc", + "//tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h", + "//tizen_src/chromium_impl/media/filters/esplusplayer_util.cc", + "//tizen_src/chromium_impl/media/filters/esplusplayer_util.h", + "//tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc", + "//tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h", + ] +} -- 2.7.4 From 555be6706d1b40806f3e03ea4ca30997d19ae5eb Mon Sep 17 00:00:00 2001 From: Venugopal S M Date: Fri, 23 Dec 2022 18:51:58 +0530 Subject: [PATCH 09/16] [MM] Handle buffering and playback - Add queue for handling the decoder buffers - Handle EOS frame arriving before ESPP buffer gets full - Handle pending play, buffer level update - Release ESPP resources on EOS and error - Pass "kNeedBuffer" from chunkdumxer to ESPP - Use timebased buffering for playback on TV Reference: https://review.tizen.org/gerrit/274860 https://review.tizen.org/gerrit/275104 https://review.tizen.org/gerrit/274698 (partial) https://review.tizen.org/gerrit/275420 https://review.tizen.org/gerrit/276113 https://review.tizen.org/gerrit/276374 https://review.tizen.org/gerrit/276419 https://review.tizen.org/gerrit/276487 https://review.tizen.org/gerrit/280222 Change-Id: I079096c9a82f502bf72803f9563c618375e21a3e Signed-off-by: Venugopal S M --- media/base/demuxer_stream.h | 3 + media/filters/chunk_demuxer.cc | 6 + media/mojo/clients/mojo_demuxer_stream_impl.cc | 9 + media/mojo/services/mojo_demuxer_stream_adapter.cc | 7 + .../platform/media/web_media_player_impl.cc | 4 + tizen_src/chromium_impl/base/tizen/static_map.h | 286 ++++++++++++++++++ .../content/browser/media/tizen_renderer_impl.cc | 83 ++--- .../content/browser/media/tizen_renderer_impl.h | 10 +- .../media/filters/esplusplayer_buffer_observer.h | 1 + .../filters/esplusplayer_buffer_observer_impl.cc | 17 +- .../filters/esplusplayer_buffer_observer_impl.h | 1 + .../media/filters/esplusplayer_util.cc | 17 ++ .../media/filters/esplusplayer_util.h | 5 + .../media/filters/media_player_esplusplayer.cc | 333 ++++++++++++++++----- .../media/filters/media_player_esplusplayer.h | 33 +- 15 files changed, 684 insertions(+), 131 deletions(-) create mode 100644 tizen_src/chromium_impl/base/tizen/static_map.h diff --git a/media/base/demuxer_stream.h b/media/base/demuxer_stream.h index 2a5bda0..8f7e95a 100644 --- a/media/base/demuxer_stream.h +++ b/media/base/demuxer_stream.h @@ -60,6 +60,9 @@ class MEDIA_EXPORT DemuxerStream { kOk, kAborted, kConfigChanged, +#if defined(TIZEN_MULTIMEDIA) + kNeedBuffer, +#endif kError, kStatusMax = kError, }; diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc index 0bf2bf7..eaca4da 100644 --- a/media/filters/chunk_demuxer.cc +++ b/media/filters/chunk_demuxer.cc @@ -404,7 +404,13 @@ void ChunkDemuxerStream::CompletePendingReadIfPossible_Locked() { // Return early without calling |read_cb_| since we don't have // any data to return yet. DVLOG(2) << __func__ << ": returning kNeedBuffer, type " << type_; +#if defined(TIZEN_MULTIMEDIA) + status = DemuxerStream::kNeedBuffer; + buffer = nullptr; + break; +#else return; +#endif case SourceBufferStreamStatus::kEndOfStream: status = DemuxerStream::kOk; buffer = StreamParserBuffer::CreateEOSBuffer(); diff --git a/media/mojo/clients/mojo_demuxer_stream_impl.cc b/media/mojo/clients/mojo_demuxer_stream_impl.cc index 0bafd4f..d2b82fb 100644 --- a/media/mojo/clients/mojo_demuxer_stream_impl.cc +++ b/media/mojo/clients/mojo_demuxer_stream_impl.cc @@ -85,6 +85,15 @@ void MojoDemuxerStreamImpl::OnBufferReady(ReadCallback callback, return; } +#if defined(TIZEN_MULTIMEDIA) + if (status == Status::kNeedBuffer) { + LOG(INFO) << __func__ << ": kNeedBuffer!"; + std::move(callback).Run(Status::kNeedBuffer, mojom::DecoderBufferPtr(), + audio_config, video_config); + return; + } +#endif + if (status == Status::kAborted) { std::move(callback).Run(Status::kAborted, mojom::DecoderBufferPtr(), audio_config, video_config); diff --git a/media/mojo/services/mojo_demuxer_stream_adapter.cc b/media/mojo/services/mojo_demuxer_stream_adapter.cc index c5de682..dcd0d90 100644 --- a/media/mojo/services/mojo_demuxer_stream_adapter.cc +++ b/media/mojo/services/mojo_demuxer_stream_adapter.cc @@ -106,6 +106,13 @@ void MojoDemuxerStreamAdapter::OnBufferReady( return; } +#if defined(TIZEN_MULTIMEDIA) + if (status == kNeedBuffer) { + std::move(read_cb_).Run(kNeedBuffer, nullptr); + return; + } +#endif + DCHECK_EQ(status, kOk); mojo_decoder_buffer_reader_->ReadDecoderBuffer( std::move(buffer), base::BindOnce(&MojoDemuxerStreamAdapter::OnBufferRead, diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc index 9961397..e136260 100644 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc @@ -1354,7 +1354,11 @@ double WebMediaPlayerImpl::CurrentTime() const { bool WebMediaPlayerImpl::IsEnded() const { DCHECK(main_task_runner_->BelongsToCurrentThread()); +#if defined(TIZEN_MULTIMEDIA) + return (ended_ || (CurrentTime() >= Duration())); +#else return ended_; +#endif } WebMediaPlayer::NetworkState WebMediaPlayerImpl::GetNetworkState() const { diff --git a/tizen_src/chromium_impl/base/tizen/static_map.h b/tizen_src/chromium_impl/base/tizen/static_map.h new file mode 100644 index 0000000..2985409 --- /dev/null +++ b/tizen_src/chromium_impl/base/tizen/static_map.h @@ -0,0 +1,286 @@ +// Copyright (c) 2022 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. + +#ifndef BASE_STATIC_MAP_H +#define BASE_STATIC_MAP_H + +#include +#include + +// |StaticMap| is a map which resemebles std::unordered_map (ie. has no element +// order) but can inline values for given keys for fast access. Because +// everything is calculated at compile time this has a drawback of using only +// types which match non-type template parameter for a key type. +// This can be especially useful for enumeration types where you know you will +// need to frequently access values for some predefined keys but need some sort +// of fallback in other cases. +// +// Template of declaration of |StaticMap| should contain |KeyType| and +// |ValueType| (duh) then a |StaticKeys| with template containing KeyType and +// then values of keys storage you want to inline, then optionally a +// |DynamicMapType| which will be used when key is not present in static part of +// the map, this defaults to std::unordered_map. For |DynamicMapType| you can +// also use |UseDefaultValue| which will return the same value (by const&) for +// any key. Example declarations: +// +// StaticMap> +// - this defines a map from SomeEnumT to size_t, with SomeEnumT::Important and +// SomeEnumT::EquallyImportant inlined. Both map values are default initialized +// and as a fallback std::unordered_map is used. +// StaticMap, +// UseDefaultValue> +// - this map will map OtherEnumT to Clazz*, but only allows modification of +// OtherEnumT::Quick key. Other return nullptr. +// +// You can access elements of the map by using operator[], which will behave +// like normal operator[] when using std::unordered_map fallback; this means no +// const version. To access inlined elements in const context you can use +// get(), which will check if key is indeed stored inlined. +// The fun thing is, with |UseDefaultValue| you get const version of operator[] +// so you can use it anywhere. +// To check whether element is present use count(). +// +// TODO: iterators and other map interfaces. + +namespace base { + +// Scroll down for |StaticMap| implementation here are utilities + +// |DoesTemplateContain| is a type trait (i.e. it defines static boolean member +// |value|), checking, if the first value template argument is also among the +// rest of the template parameter pack. This is used as a helper in +// |IsTemplateSet| type trait to guarantee the static map keys are unique. +template +struct DoesTemplateContain; + +template +struct DoesTemplateContain : std::false_type {}; + +template +struct DoesTemplateContain + : std::integral_constant {}; + +template +struct DoesTemplateContain + : std::integral_constant< + bool, + DoesTemplateContain::value || + DoesTemplateContain::value> {}; + +static_assert(!DoesTemplateContain::value, "Test failed"); +static_assert(DoesTemplateContain::value, "Test failed"); +static_assert(!DoesTemplateContain::value, "Test failed"); +static_assert(DoesTemplateContain::value, "Test failed"); +static_assert(DoesTemplateContain::value, "Test failed"); + +// |IsTemplateSet| is a type trait checking, if the value parameter pack set +// consists of unique values, that is, it can be used as a set of unique keys in +// static map. As such, it is used in |StaticKeys| class. +template +struct IsTemplateSet; + +template +struct IsTemplateSet : std::true_type {}; + +template +struct IsTemplateSet + : std::integral_constant::value && + IsTemplateSet::value> {}; + +static_assert(IsTemplateSet::value, "Test failed"); +static_assert(IsTemplateSet::value, "Test failed"); +static_assert(IsTemplateSet::value, "Test failed"); +static_assert(!IsTemplateSet::value, "Test failed"); +static_assert(!IsTemplateSet::value, "Test failed"); +static_assert(IsTemplateSet::value, "Test failed"); +static_assert(!IsTemplateSet::value, "Test failed"); + +// Here is |StaticMap| implementation + +// |StaticKeys| are used for defining key values which storage should be +// inlined. |StaticKeys| checks whether provided keys are not duplicated. +template +struct StaticKeys { + static_assert(IsTemplateSet::value, "Keys are duplicated!"); + using KeyType = T; +}; + +template +struct StaticKeys { + // TODO: Make this fail, why use static map without static values... + // Right now it will fail in DynamicMap specialization. + // static_assert(!std::is_same::value, "Static keys are empty"); +}; + +template +struct UseDefaultValue { + constexpr UseDefaultValue() : value() {} + + template + explicit UseDefaultValue(Args&&... args) + : value(std::forward(args)...) {} + + template + const T& operator[](KeyType) const { + return value; + } + + private: + const T value; +}; + +template +using DefaultDynamicMap = std::unordered_map; + +// This is only to fail if StaticKeys were not used +template , + KeyType... keys> +class StaticMap { + static_assert(std::is_same>::value, + "You didn't use StaticKeys to pass compile time keys or the " + "type of it's values does not match KeyType"); +}; + +// |DynamicMapType| version which uses this type for a fallback in case when key +// is not inlined +template +class StaticMap, DynamicMapType> { + public: + constexpr StaticMap() = default; + StaticMap(const StaticMap&) = default; + StaticMap(StaticMap&&) = default; + ~StaticMap() = default; + + StaticMap& operator=(const StaticMap&) = default; + StaticMap& operator=(StaticMap&&) = default; + + template + explicit StaticMap(Args&&... rest) : map_(std::forward(rest)...) {} + + // This will should always fail, because DynamicMap won't provide keys at + // compile time + template + ValueType& get() { + static_assert(!std::is_same::value, + "There is no such compile time Key!"); + } + + template + constexpr const ValueType& get() const { + static_assert(!std::is_same::value, + "There is no such compile time Key!"); + } + + // Below functions will only exist if map_ defines matching operator[] + // This ugly monster is used to disable it for const DynamicMapType when this + // is not const + template + auto operator[](KeyType key) -> typename std::enable_if< + std::is_same()[key]), ValueType&>::value, + ValueType&>::type { + return map_[key]; + } + + template + auto operator[](KeyType key) const -> decltype(std::declval()[key]) { + static_assert(std::is_same()[key]), + const ValueType&>::value, + "DynamicMapType::operator[] must return ValueType& or const " + "ValueType&"); + return map_[key]; + } + + private: + DynamicMapType map_; +}; + +// Contains storage for given inlined key value and otherwise delegates to map_, +// which could be again this or |DynamicMapType| version. +template +class StaticMap, + DynamicMapType> { + // Make sure keys set is ok + static const StaticKeys static_keys; + + using InnerMapType = StaticMap, + DynamicMapType>; + + public: + using size_type = size_t; + + constexpr StaticMap() : value_() {} + StaticMap(const StaticMap&) = default; + StaticMap(StaticMap&&) = default; + ~StaticMap() = default; + + StaticMap& operator=(const StaticMap&) = default; + StaticMap& operator=(StaticMap&&) = default; + + template + explicit StaticMap(T&& arg, Args&&... rest) + : value_(std::forward(arg)), map_(std::forward(rest)...) {} + + // Compile time conditional on key value + template + auto get() -> typename std::enable_if::type { + return value_; + } + + template + auto get() -> typename std::enable_if::type { + return map_.template get(); + } + + template + constexpr auto get() const -> + typename std::enable_if::type { + return value_; + } + + template + constexpr auto get() const -> + typename std::enable_if::type { + return map_.template get(); + } + + // Below functions will only exist if map_ defines matching operator[] + template + auto operator[](KeyType key) -> decltype(std::declval()[key]) { + if (key == key_value_) + return value_; + return map_[key]; + } + + template + auto operator[](KeyType key) const -> decltype(std::declval()[key]) { + if (key == key_value_) + return value_; + return map_[key]; + } + + // This is to mimic std::unordered_map and std::map interfaces + size_type count(KeyType key) const { + return key == key_value_ ? 1 : map_.count(); + } + + private: + ValueType value_; + InnerMapType map_; +}; + +} // namespace base +#endif // BASE_STATIC_MAP_H diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc index 5ff233d..8888c69 100644 --- a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc @@ -26,9 +26,6 @@ #include "tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h" namespace content { -namespace { -const float kDefaultVolume = 1.0; -} class TizenRendererImpl::RendererClientInternal final : public media::RendererClient { @@ -128,9 +125,7 @@ TizenRendererImpl::TizenRendererImpl( : state_(STATE_UNINITIALIZED), task_runner_(task_runner), sink_(sink), - volume_(1.0), - renderer_extension_receiver_(this), - playback_rate_(0.0) { + renderer_extension_receiver_(this) { // TODO(dalecurtis): Remove once experiments for http://crbug.com/470940 are // complete. int threshold_ms = 0; @@ -147,11 +142,7 @@ TizenRendererImpl::~TizenRendererImpl() { weak_factory_.InvalidateWeakPtrs(); - // TODO - if (init_cb_) - ; - else if (flush_cb_) - ; + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Release(); if (web_contents_observer_) web_contents_observer_->RemoveMediaPlayerRenderer(this); } @@ -169,18 +160,16 @@ void TizenRendererImpl::Initialize(media::MediaResource* media_resource, init_cb_ = std::move(init_cb); media_resource_ = media_resource; - if (!media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Initialize(sink_)) { + if (!media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() + ->CreatePlayer()) { std::move(init_cb_).Run(media::PIPELINE_ERROR_INITIALIZATION_FAILED); return; } - std::move(init_cb_).Run(media::PIPELINE_OK); - // TODO: return unsupported error for CDM. - state_ = STATE_INITIALIZING; - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetTaskRunner( + std::move(init_cb_).Run(media::PIPELINE_OK); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetTaskRunner( task_runner_.get()); - SetStreamInfo(); } void TizenRendererImpl::SetStreamInfo() { @@ -188,7 +177,7 @@ void TizenRendererImpl::SetStreamInfo() { if (audio_stream_) { audio_renderer_client_ = std::make_unique( media::DemuxerStream::AUDIO, this); - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetStreamInfo( + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetStreamInfo( media::DemuxerStream::AUDIO, audio_stream_, audio_renderer_client_.get()); } @@ -197,17 +186,18 @@ void TizenRendererImpl::SetStreamInfo() { if (video_stream_) { video_renderer_client_ = std::make_unique( media::DemuxerStream::VIDEO, this); - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetStreamInfo( + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetStreamInfo( media::DemuxerStream::VIDEO, video_stream_, video_renderer_client_.get()); #if defined(TIZEN_TBM_SUPPORT) - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetFrameAvailableCallback( - base::BindRepeating(&TizenRendererImpl::OnNewTbmFrameAvailable, - base::Unretained(this))); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() + ->SetFrameAvailableCallback( + base::BindRepeating(&TizenRendererImpl::OnNewTbmFrameAvailable, + base::Unretained(this))); #else - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetFrameAvailableCallback( - base::BindRepeating(&TizenRendererImpl::OnNewFrameAvailable, - base::Unretained(this))); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() + ->SetFrameAvailableCallback(base::BindRepeating( + &TizenRendererImpl::OnNewFrameAvailable, base::Unretained(this))); #endif } } @@ -261,13 +251,14 @@ void TizenRendererImpl::Flush(base::OnceClosure flush_cb) { flush_cb_ = std::move(flush_cb); state_ = STATE_FLUSHING; - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Flush(std::move(flush_cb)); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Flush( + std::move(flush_cb)); } void TizenRendererImpl::Seek(base::TimeDelta time) { LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " time : " << time.InMicroseconds(); - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Seek(time); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Seek(time); } void TizenRendererImpl::StartPlayingFrom(base::TimeDelta time) { @@ -277,14 +268,26 @@ void TizenRendererImpl::StartPlayingFrom(base::TimeDelta time) { TRACE_EVENT1("media", "TizenRendererImpl::StartPlayingFrom", "time_us", time.InMicroseconds()); + if (!media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() + ->IsInitialized()) + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Initialize( + sink_); + + if (!media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() + ->IsPrepared()) { + SetStreamInfo(); + SetPlayerVolume(); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Prepare(); + } + + state_ = STATE_INITIALIZING; + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Seek(time); state_ = STATE_PLAYING; - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Prepare(); - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Seek(time); } void TizenRendererImpl::SetPlaybackRate(double playback_rate) { - LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << "(" - << playback_rate << ")"; + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " " + << playback_rate << "/ " << playback_rate_; DCHECK(task_runner_->BelongsToCurrentThread()); TRACE_EVENT1("media", "TizenRendererImpl::SetPlaybackRate", "rate", playback_rate); @@ -295,12 +298,12 @@ void TizenRendererImpl::SetPlaybackRate(double playback_rate) { playback_rate_ = playback_rate; // TODO: Random error is observed on TM1. - // MediaPlayerESPlusPlayer::GetEsppPlayer()->SetRate(playback_rate_); + // MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetRate(playback_rate_); if (playback_rate > 0) - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Play(); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Play(); else - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->Pause(); + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Pause(); } void TizenRendererImpl::SetVolume(float volume) { @@ -310,11 +313,17 @@ void TizenRendererImpl::SetVolume(float volume) { return; volume_ = volume; - media::MediaPlayerESPlusPlayer::GetEsppPlayer()->SetVolume(volume); + SetPlayerVolume(); +} + +void TizenRendererImpl::SetPlayerVolume() const { + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetVolume( + volume_); } base::TimeDelta TizenRendererImpl::GetMediaTime() { - return media::MediaPlayerESPlusPlayer::GetEsppPlayer()->GetCurrentTime(); + return media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() + ->GetCurrentTime(); } void TizenRendererImpl::OnSelectedVideoTracksChanged( @@ -330,10 +339,12 @@ void TizenRendererImpl::OnEnabledAudioTracksChanged( } void TizenRendererImpl::OnRendererEnded() { + playback_rate_ = 0.0; client_->OnEnded(); } void TizenRendererImpl::OnError(media::PipelineStatus error) { + playback_rate_ = 0.0; state_ = STATE_ERROR; client_->OnError(error); } diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h index 4c4078f..6c26839 100644 --- a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h @@ -95,6 +95,7 @@ class CONTENT_EXPORT TizenRendererImpl private: class RendererClientInternal; + const float kDefaultVolume = 1.0; enum State { STATE_UNINITIALIZED, @@ -107,6 +108,7 @@ class CONTENT_EXPORT TizenRendererImpl }; void SetStreamInfo(); + void SetPlayerVolume() const; void OnRendererEnded(); void OnError(media::PipelineStatus error); void OnStatisticsUpdate(const media::PipelineStatistics& stats); @@ -145,8 +147,8 @@ class CONTENT_EXPORT TizenRendererImpl media::DemuxerStream* audio_stream_; media::DemuxerStream* video_stream_; - double volume_ = 0.0; - double playback_rate_ = 0; + double volume_ = kDefaultVolume; + double playback_rate_ = 0.0; // The time to start playback from after starting/seeking has completed. base::TimeDelta start_time_; @@ -155,8 +157,8 @@ class CONTENT_EXPORT TizenRendererImpl media::BufferingState video_buffering_state_; // Whether we've received the audio/video ended events. - bool media_ended_; - bool web_contents_muted_; + bool media_ended_ = false; + bool web_contents_muted_ = false; mojo::Receiver renderer_extension_receiver_; raw_ptr web_contents_observer_; diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h index d8fa257..296c17f 100644 --- a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h @@ -51,6 +51,7 @@ class BufferObserver { virtual void SetEos(DemuxerStream::Type) = 0; virtual void UpdateBufferedSize(DemuxerStream::Type, espp_buffer_size_t) = 0; virtual void ResetBufferStatus() = 0; + virtual void ResetBufferStatusCallbacks(esplusplayer_handle) = 0; virtual int SetMediaStreamStatusCallback( esplusplayer_handle, esplusplayer_stream_type stream_type) = 0; diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc index cc04f52..6ccb9e4 100644 --- a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc @@ -82,7 +82,13 @@ void BufferObserverImpl::UpdateBufferedSize(DemuxerStream::Type type, << GetBuffer(DemuxerStream::VIDEO).buffer_percent << "%" << "\tAUDIO: " << GetBuffer(DemuxerStream::AUDIO).buffer_percent << "%"; - +#if defined(OS_TIZEN_TV_PRODUCT) + // The buffer is controlled in time domain, however we want to stop + // pushing data in case of size overflow as well + buffer.has_size_overflow = (buffer_status == kBufferOverflow); + if (buffer.has_size_overflow == false) + return; +#endif CallbackIfNeed(type, buffer_status); } @@ -207,6 +213,13 @@ bool BufferObserverImpl::EnsureSimilarBufferedDuration() { } } +void BufferObserverImpl::ResetBufferStatusCallbacks( + esplusplayer_handle player) { + esplusplayer_set_buffer_byte_status_cb(player, nullptr, this); + esplusplayer_set_buffer_time_status_cb(player, nullptr, this); + buffering_callback_.Reset(); +} + int BufferObserverImpl::SetBufferStatusCallbacks( esplusplayer_handle player, esplusplayer_stream_type type, @@ -250,7 +263,7 @@ int BufferObserverImpl::SetBufferStatusCallbacks( } // FIXME: TM1 is giving wrong time size for pipeline. -#if 0 +#if defined(OS_TIZEN_TV_PRODUCT) if ((ret = esplusplayer_set_buffer_time_status_cb( player, callbacks.time_status_cb, this)) != ESPLUSPLAYER_ERROR_TYPE_NONE) { diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h index bfae69e..ac1f6b0 100644 --- a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h @@ -35,6 +35,7 @@ class BufferObserverImpl : public BufferObserver { // |handler| will be invoked from player's thread. void SetBufferingCallback(const BufferingCallback&) final; + void ResetBufferStatusCallbacks(esplusplayer_handle player) final; void SetEos(DemuxerStream::Type) final; void UpdateBufferedSize(DemuxerStream::Type, espp_buffer_size_t) final; void ResetBufferStatus() final; diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_util.cc b/tizen_src/chromium_impl/media/filters/esplusplayer_util.cc index 1eab5b8..531e06f 100644 --- a/tizen_src/chromium_impl/media/filters/esplusplayer_util.cc +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_util.cc @@ -176,4 +176,21 @@ PipelineStatus GetPipelineError(const esplusplayer_error_type error) { return PIPELINE_ERROR_DECODE; } +gfx::Size GetMaxCodecResolution(esplusplayer_video_mime_type mime_type) { + switch (mime_type) { + case ESPLUSPLAYER_VIDEO_MIME_TYPE_AV1: + return {k8KVideoMaxWidth, k8KVideoMaxHeight}; + case ESPLUSPLAYER_VIDEO_MIME_TYPE_VP8: + return {kFHDVideoMaxWidth, kFHDVideoMaxHeight}; + case ESPLUSPLAYER_VIDEO_MIME_TYPE_VP9: + case ESPLUSPLAYER_VIDEO_MIME_TYPE_HEVC: + return {k8KVideoMaxWidth, k8KVideoMaxHeight}; + case ESPLUSPLAYER_VIDEO_MIME_TYPE_H264: + return {kFHDVideoMaxWidth, kFHDVideoMaxHeight}; + default: + // for all kind of codecs. + return {kFHDVideoMaxWidth, kFHDVideoMaxHeight}; + } +} + } // namespace media diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_util.h b/tizen_src/chromium_impl/media/filters/esplusplayer_util.h index a89992e..aba62d7 100644 --- a/tizen_src/chromium_impl/media/filters/esplusplayer_util.h +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_util.h @@ -11,6 +11,7 @@ #include "media/base/pipeline_status.h" #include "media/base/video_codecs.h" #include "tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h" +#include "ui/gfx/geometry/size.h" namespace media { @@ -22,6 +23,8 @@ const int kFHDVideoMaxWidth = 1920; const int kFHDVideoMaxHeight = 1080; const int k4KVideoMaxWidth = 3840; const int k4KVideoMaxHeight = 2160; +const int k8KVideoMaxWidth = 7680; +const int k8KVideoMaxHeight = 4320; const int kMaxFramerate = 60; const int kBuffingLimit = 5; // Seconds @@ -42,6 +45,8 @@ esplusplayer_stream_type GetESPlusPlayerStreamType(DemuxerStream::Type type); PipelineStatus GetPipelineError(const esplusplayer_error_type error); +gfx::Size GetMaxCodecResolution(esplusplayer_video_mime_type mime_type); + } // namespace media #endif // MEDIA_FILTERS_ESPP_PLAYER_UTIL_H_ diff --git a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc index f50d4c4..ea6f04e 100644 --- a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc +++ b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc @@ -16,19 +16,19 @@ #include "third_party/libyuv/include/libyuv/convert.h" namespace media { +using player_buffer_size_t = unsigned long long; + +// Limit of platform player's total (audio and video) buffer size in bytes +const media::player_buffer_size_t kPlayerTotalBufferSize = 64 * 1024 * 1024; +// Limit of platform player's audio buffer in bytes +const media::player_buffer_size_t kPlayerAudioBufferSize = 768 * 1024; espp_buffer_size_t GetMaxAudioBufferSize() { - // Assume MPEG-1 Audio Layer III 320kbit/s audio. - return 320 * 1000 / 8 * kBuffingLimit; + return kPlayerAudioBufferSize; } espp_buffer_size_t GetMaxVideoBufferSize(gfx::Size size) { - const int fps = 60; // Asume max. - - // Reference of buffer size estimation: - // http://stackoverflow.com/questions/5024114/suggested-compression-ratio-with-h-264 - return static_cast(size.width()) * size.height() * fps * - 2 * 7 / 100 / 8 * kBuffingLimit; + return kPlayerTotalBufferSize - kPlayerAudioBufferSize; } void ReadyToPrepareCallback(const esplusplayer_stream_type stream_type, @@ -117,7 +117,7 @@ void ErrorCallback(const esplusplayer_error_type error_type, void* user_data) { } // static -MediaPlayerESPlusPlayer* MediaPlayerESPlusPlayer::GetEsppPlayer() { +MediaPlayerESPlusPlayer* MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() { return base::Singleton::get(); } @@ -133,19 +133,29 @@ MediaPlayerESPlusPlayer::~MediaPlayerESPlusPlayer() { esplayer_ = nullptr; } -bool MediaPlayerESPlusPlayer::Initialize(VideoRendererSink* sink) { - if (esplayer_) { - LOG(INFO) << "esplus player exists!"; - sink_ = sink; +bool MediaPlayerESPlusPlayer::CreatePlayer() { + if (esplayer_) return true; - } + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; esplayer_ = esplusplayer_create(); if (!esplayer_) { LOG(ERROR) << "Cannot create esplus player!"; return false; } + last_frames_.get().first = media::kNoTimestamp; + last_frames_.get().second = media::kNoTimestamp; + last_frames_.get().first = media::kNoTimestamp; + last_frames_.get().second = media::kNoTimestamp; + + buffer_observer_.reset(BufferObserver::CreateBufferObserver()); + + return true; +} + +void MediaPlayerESPlusPlayer::Initialize(VideoRendererSink* sink) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; esplusplayer_set_ready_to_prepare_cb(esplayer_, &ReadyToPrepareCallback, this); esplusplayer_set_prepare_async_done_cb(esplayer_, &PrepareCompleteCallback, @@ -159,32 +169,38 @@ bool MediaPlayerESPlusPlayer::Initialize(VideoRendererSink* sink) { esplusplayer_set_resource_conflicted_cb(esplayer_, &ResourceConflictCallback, this); esplusplayer_set_error_cb(esplayer_, &ErrorCallback, this); + buffer_observer_->SetBufferingCallback( + base::BindRepeating(&MediaPlayerESPlusPlayer::OnBufferingStatusChanged, + weak_factory_.GetWeakPtr())); int error = esplusplayer_open(esplayer_); if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { LOG(ERROR) << "esplusplayer_open failed. error #" << esplusplayer_get_error_string( static_cast(error)); - return false; + return; } LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " state:" << GetString(GetPlayerState()); - error = esplusplayer_set_video_frame_buffer_type( - esplayer_, ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_COPY); + + esplusplayer_decoded_video_frame_buffer_type video_frame_buffer_type = + ESPLUSPLAYER_DECODED_VIDEO_FRAME_BUFFER_TYPE_COPY; + + error = esplusplayer_set_video_frame_buffer_type(esplayer_, + video_frame_buffer_type); if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { LOG(ERROR) << "esplusplayer_set_video_frame_buffer_type failed. error #" << esplusplayer_get_error_string( static_cast(error)); - return false; + return; } sink_ = sink; - buffer_observer_.reset(BufferObserver::CreateBufferObserver()); - buffer_observer_->SetBufferingCallback( - base::BindRepeating(&MediaPlayerESPlusPlayer::OnBufferingStatusChanged, - weak_factory_.GetWeakPtr())); - return true; +} + +bool MediaPlayerESPlusPlayer::IsInitialized() { + return (GetPlayerState() >= ESPLUSPLAYER_STATE_IDLE); } void MediaPlayerESPlusPlayer::SetTaskRunner( @@ -207,6 +223,10 @@ void MediaPlayerESPlusPlayer::SetStreamInfo(DemuxerStream::Type type, } void MediaPlayerESPlusPlayer::Prepare() { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; + if (is_prepared_ || is_preparing_) + return; + if (GetPlayerState() != ESPLUSPLAYER_STATE_IDLE) { LOG(ERROR) << "(" << static_cast(this) << ") " << __func__ << " Prepare called on invalid state : " @@ -228,11 +248,72 @@ void MediaPlayerESPlusPlayer::Prepare() { ->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); return; } + is_preparing_ = true; +} + +bool MediaPlayerESPlusPlayer::IsPrepared() { + return (GetPlayerState() >= ESPLUSPLAYER_STATE_READY); +} + +void MediaPlayerESPlusPlayer::Release() { + if (!esplayer_) + return; + + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; + SetIsEos(DemuxerStream::AUDIO, false); + SetShouldFeed(DemuxerStream::AUDIO, false); + SetIsValid(DemuxerStream::AUDIO, false); + SetReadRequested(DemuxerStream::AUDIO, false); + + SetIsEos(DemuxerStream::VIDEO, false); + SetShouldFeed(DemuxerStream::VIDEO, false); + SetIsValid(DemuxerStream::VIDEO, false); + SetReadRequested(DemuxerStream::VIDEO, false); + + esplusplayer_set_ready_to_prepare_cb(esplayer_, nullptr, this); + esplusplayer_set_prepare_async_done_cb(esplayer_, nullptr, this); + esplusplayer_set_eos_cb(esplayer_, nullptr, this); + esplusplayer_set_media_packet_video_decoded_cb(esplayer_, nullptr, this); + esplusplayer_set_flush_done_cb(esplayer_, nullptr, this); + esplusplayer_set_ready_to_seek_cb(esplayer_, nullptr, this); + esplusplayer_set_seek_done_cb(esplayer_, nullptr, this); + esplusplayer_set_resource_conflicted_cb(esplayer_, nullptr, this); + esplusplayer_set_error_cb(esplayer_, nullptr, this); buffer_observer_->ResetBufferStatus(); + buffer_observer_->ResetBufferStatusCallbacks(esplayer_); + + volume_ = 1.0; + playback_rate_ = 0.0; + is_prepared_ = false; + is_preparing_ = false; + is_paused_ = true; + is_buffering_ = false; + current_position_ = base::TimeDelta(); + is_flushing_ = false; + is_seeking_ = false; + seek_position_ = base::TimeDelta(); + pending_seek_ = false; + pending_seek_position_ = base::TimeDelta(); + should_set_playback_rate_ = false; + + GetBufferQueue(DemuxerStream::VIDEO).clear(); + GetBufferQueue(DemuxerStream::AUDIO).clear(); + data_cb_.Reset(); + sink_ = nullptr; + + if (GetPlayerState() == ESPLUSPLAYER_STATE_NONE) { + LOG(ERROR) << "(" << static_cast(this) << ") " << __func__ + << " Release called on invalid state : " + << GetString(GetPlayerState()); + return; + } + + esplusplayer_close(esplayer_); } void MediaPlayerESPlusPlayer::Play() { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; int error = ESPLUSPLAYER_ERROR_TYPE_NONE; esplusplayer_state state = GetPlayerState(); @@ -272,6 +353,12 @@ void MediaPlayerESPlusPlayer::Play() { } void MediaPlayerESPlusPlayer::Pause(bool is_media_related_action) { + if (is_paused_) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " already paused"; + return; + } + if (!is_media_related_action) is_paused_ = true; @@ -295,6 +382,8 @@ void MediaPlayerESPlusPlayer::Pause(bool is_media_related_action) { } void MediaPlayerESPlusPlayer::SetRate(double rate) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " : " + << rate; if (playback_rate_ == rate) return; @@ -317,9 +406,14 @@ void MediaPlayerESPlusPlayer::SetRate(double rate) { } void MediaPlayerESPlusPlayer::Seek(base::TimeDelta time) { - if (GetCurrentTime() == time) + // Ignore seek to 0 during initialization. + if (GetPlayerState() < ESPLUSPLAYER_STATE_READY && time.InSecondsF() == 00) { + LOG(INFO) << __func__ << " Ignore seek to 0 during initialization."; return; + } + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " :" + << time; if (GetPlayerState() < ESPLUSPLAYER_STATE_READY || !is_prepared_ || is_seeking_) { LOG(INFO) << "Add to pending seek (" @@ -331,6 +425,17 @@ void MediaPlayerESPlusPlayer::Seek(base::TimeDelta time) { return; } + last_frames_.get().first = media::kNoTimestamp; + last_frames_.get().first = media::kNoTimestamp; + + UpdateBufferedDtsDifference(); + + SetShouldFeed(DemuxerStream::AUDIO, false); + SetShouldFeed(DemuxerStream::VIDEO, false); + GetBufferQueue(DemuxerStream::VIDEO).clear(); + GetBufferQueue(DemuxerStream::AUDIO).clear(); + buffer_observer_->ResetBufferStatus(); + LOG(INFO) << __func__ << " : " << time; int error = esplusplayer_seek(esplayer_, time.InMilliseconds()); if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { @@ -342,17 +447,25 @@ void MediaPlayerESPlusPlayer::Seek(base::TimeDelta time) { } is_seeking_ = true; - pending_seek_ = false; seek_position_ = time; + pending_seek_ = false; pending_seek_position_ = base::TimeDelta(); } void MediaPlayerESPlusPlayer::Flush(base::OnceClosure flush_cb) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; + last_frames_.get().first = media::kNoTimestamp; + last_frames_.get().first = media::kNoTimestamp; + + UpdateBufferedDtsDifference(); + NOTIMPLEMENTED(); std::move(flush_cb).Run(); } void MediaPlayerESPlusPlayer::SetVolume(double volume) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " :" + << volume; volume_ = volume; if (GetPlayerState() == ESPLUSPLAYER_STATE_NONE) return; @@ -365,12 +478,16 @@ void MediaPlayerESPlusPlayer::SetVolume(double volume) { } base::TimeDelta MediaPlayerESPlusPlayer::GetCurrentTime() { - if (GetPlayerState() < ESPLUSPLAYER_STATE_PLAYING) - return base::TimeDelta(); + if (pending_seek_) + return pending_seek_position_; if (is_seeking_) return seek_position_; + // Seek can be called before PLAY / PAUSE. Return last known time. + if (GetPlayerState() < ESPLUSPLAYER_STATE_PLAYING) + return current_position_; + uint64_t time = 0; // In milliseconds. int error = esplusplayer_get_playing_time(esplayer_, &time); if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { @@ -380,14 +497,17 @@ base::TimeDelta MediaPlayerESPlusPlayer::GetCurrentTime() { return base::TimeDelta(); } - return base::Milliseconds(time); + current_position_ = base::Milliseconds(time); + return current_position_; } esplusplayer_state MediaPlayerESPlusPlayer::GetPlayerState() { - return esplusplayer_get_state(esplayer_); + return (esplayer_ ? esplusplayer_get_state(esplayer_) + : ESPLUSPLAYER_STATE_NONE); } void MediaPlayerESPlusPlayer::InitializeStreamConfig(DemuxerStream::Type type) { + LOG(INFO) << "(" << static_cast(this) << ") " << __func__; DemuxerStream* stream = GetDemuxerStream(type); CHECK(stream); @@ -418,20 +538,22 @@ void MediaPlayerESPlusPlayer::InitializeStreamConfig(DemuxerStream::Type type) { audio_stream_info.codec_data = NULL; } - int error = - esplusplayer_set_audio_stream_info(esplayer_, &audio_stream_info); - if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { - LOG(ERROR) << "esplusplayer_set_audio_stream_info failed. error code " - << error; - GetRendererClient(type)->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); - return; + int error; + if (!IsValid(type)) { + error = esplusplayer_set_audio_stream_info(esplayer_, &audio_stream_info); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "esplusplayer_set_audio_stream_info failed. error code " + << error; + GetRendererClient(type)->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + buffer_observer_->SetMediaStreamStatusCallback( + esplayer_, ESPLUSPLAYER_STREAM_TYPE_AUDIO); } espp_buffer_size_t max_buffer_size = GetMaxAudioBufferSize(); - buffer_observer_->SetMediaStreamStatusCallback( - esplayer_, ESPLUSPLAYER_STREAM_TYPE_AUDIO); buffer_observer_->SetBufferSize(type, max_buffer_size); - + LOG(INFO) << "Audio Max buffer size " << max_buffer_size; error = esplusplayer_set_buffer_size( esplayer_, ESPLUSPLAYER_BUFFER_AUDIO_MAX_BYTE_SIZE, max_buffer_size); if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) @@ -468,25 +590,29 @@ void MediaPlayerESPlusPlayer::InitializeStreamConfig(DemuxerStream::Type type) { } else { video_stream_info.codec_data = NULL; } - - video_stream_info.max_width = k4KVideoMaxWidth; - video_stream_info.max_height = k4KVideoMaxHeight; - - int error = - esplusplayer_set_video_stream_info(esplayer_, &video_stream_info); - if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { - LOG(ERROR) << "esplusplayer_set_video_stream_info failed. error code " - << error; - GetRendererClient(type)->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); - return; + auto max_resolution = GetMaxCodecResolution(video_stream_info.mime_type); + + video_stream_info.max_width = max_resolution.width(); + video_stream_info.max_height = max_resolution.height(); + + int error; + if (!IsValid(type)) { + error = esplusplayer_set_video_stream_info(esplayer_, &video_stream_info); + if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) { + LOG(ERROR) << "esplusplayer_set_video_stream_info failed. error code " + << error; + GetRendererClient(type)->OnError(PIPELINE_ERROR_INITIALIZATION_FAILED); + return; + } + buffer_observer_->SetMediaStreamStatusCallback( + esplayer_, ESPLUSPLAYER_STREAM_TYPE_VIDEO); } espp_buffer_size_t max_buffer_size = GetMaxVideoBufferSize(video_config.coded_size()); - buffer_observer_->SetMediaStreamStatusCallback( - esplayer_, ESPLUSPLAYER_STREAM_TYPE_VIDEO); buffer_observer_->SetBufferSize(type, max_buffer_size); + LOG(INFO) << "Video Max buffer size " << max_buffer_size; error = esplusplayer_set_buffer_size( esplayer_, ESPLUSPLAYER_BUFFER_VIDEO_MAX_BYTE_SIZE, max_buffer_size); if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) @@ -499,7 +625,10 @@ void MediaPlayerESPlusPlayer::InitializeStreamConfig(DemuxerStream::Type type) { } void MediaPlayerESPlusPlayer::ReadBuffer(DemuxerStream::Type type) { - // TODO: Check and read from Queue. + if (!ReadFromBufferQueue(type)) + return; + + // Avoid unnecessary or redundant read requests. if (!ShouldFeed(type) || ReadRequested(type)) return; @@ -518,18 +647,15 @@ void MediaPlayerESPlusPlayer::OnBufferReady( case DemuxerStream::kError: GetBufferQueue(type).clear(); break; + case DemuxerStream::kNeedBuffer: + break; case DemuxerStream::kConfigChanged: // Clear pending buffer of older config GetBufferQueue(type).clear(); InitializeStreamConfig(type); break; case DemuxerStream::kOk: { - if (buffer.get()->end_of_stream()) { - SubmitEosPacket(type); - return; - } - - SubmitEsPacket(type, std::move(buffer)); + GetBufferQueue(type).push_back(buffer); break; } } @@ -538,23 +664,48 @@ void MediaPlayerESPlusPlayer::OnBufferReady( ReadBuffer(type); } -void MediaPlayerESPlusPlayer::SubmitEosPacket(DemuxerStream::Type type) { +bool MediaPlayerESPlusPlayer::ReadFromBufferQueue(DemuxerStream::Type type) { + if (!GetBufferQueue(type).size()) + return true; + + esplusplayer_submit_status status = ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS; + scoped_refptr buffer = GetBufferQueue(type).front(); + if (buffer.get()->end_of_stream()) + status = SubmitEosPacket(type); + else + status = SubmitEsPacket(type, buffer); + + if (status == ESPLUSPLAYER_SUBMIT_STATUS_NOT_PREPARED || + status == ESPLUSPLAYER_SUBMIT_STATUS_OUT_OF_MEMORY || + status == ESPLUSPLAYER_SUBMIT_STATUS_FULL) { + return false; + } + + UpdateBufferedDtsDifference(); + GetBufferQueue(type).pop_front(); + return true; +} + +esplusplayer_submit_status MediaPlayerESPlusPlayer::SubmitEosPacket( + DemuxerStream::Type type) { if (IsEos(type)) - return; + return ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS; - esplusplayer_submit_status ret = esplusplayer_submit_eos_packet( + last_frames_[type].first = base::TimeDelta::Max(); + + esplusplayer_submit_status status = esplusplayer_submit_eos_packet( esplayer_, GetESPlusPlayerStreamType(type)); - if (ret != ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS) { + if (status != ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS) { LOG(ERROR) << "Submit Eos (" << DemuxerStream::GetTypeName(type) - << ") Packet failed, ret:" << ret; - return; + << ") Packet failed, ret:" << GetString(status); + return status; } - buffer_observer_->SetEos(type); SetIsEos(type, true); + return status; } -void MediaPlayerESPlusPlayer::SubmitEsPacket( +esplusplayer_submit_status MediaPlayerESPlusPlayer::SubmitEsPacket( DemuxerStream::Type type, scoped_refptr buffer) { esplusplayer_es_packet packet; @@ -568,17 +719,29 @@ void MediaPlayerESPlusPlayer::SubmitEsPacket( // This filed only set when PushMediaPacket packet.matroska_color_info = nullptr; - esplusplayer_submit_status ret = + esplusplayer_submit_status status = esplusplayer_submit_packet(esplayer_, &packet); - if (ret != ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS) { - if (ret == ESPLUSPLAYER_SUBMIT_STATUS_FULL || - ret == ESPLUSPLAYER_SUBMIT_STATUS_OUT_OF_MEMORY || - ret == ESPLUSPLAYER_SUBMIT_STATUS_NOT_PREPARED) { - GetBufferQueue(type).push_back(buffer); - } - + if (status != ESPLUSPLAYER_SUBMIT_STATUS_SUCCESS) { LOG(WARNING) << "submit " << DemuxerStream::GetTypeName(type) - << " packet : " << GetString(ret); + << " packet : " << GetString(status); + } + + last_frames_[type].first = base::Milliseconds(packet.pts); + last_frames_[type].second = base::Milliseconds(packet.duration); + return status; +} + +void MediaPlayerESPlusPlayer::UpdateBufferedDtsDifference() { + const auto& audio_ts = last_frames_.get().first; + const auto& video_ts = last_frames_.get().first; + + if ((audio_ts != media::kNoTimestamp) && (video_ts != media::kNoTimestamp) && + (audio_ts != base::TimeDelta::Max()) && + (video_ts != base::TimeDelta::Max())) { + const auto av_diff = (audio_ts - video_ts).InMilliseconds(); + buffer_observer_->SetAudioVideoDtsDifference(av_diff); + } else { + buffer_observer_->SetAudioVideoDtsDifference(0); } } @@ -611,7 +774,6 @@ void MediaPlayerESPlusPlayer::OnBufferingStatusChanged(DemuxerStream::Type type, SetShouldFeed(type, true); ReadBuffer(type); break; - case kBufferMaxThreshold: case kBufferOverflow: case kBufferEos: @@ -632,7 +794,7 @@ void MediaPlayerESPlusPlayer::OnBufferingStatusChanged(DemuxerStream::Type type, GetRendererClient(type)->OnBufferingStateChange(BUFFERING_HAVE_NOTHING, DEMUXER_UNDERFLOW); } else if (status == kBufferMaxThreshold || status == kBufferOverflow || - status == kBufferAhead) { + status == kBufferAhead || status == kBufferEos) { GetRendererClient(type)->OnBufferingStateChange( BUFFERING_HAVE_ENOUGH, BUFFERING_CHANGE_REASON_UNKNOWN); } @@ -686,6 +848,7 @@ void MediaPlayerESPlusPlayer::OnPrepareComplete(bool result) { } LOG(INFO) << "(" << static_cast(this) << ") " << __func__ + << " is_paused_ : " << is_paused_ << " seek_position : " << seek_position_ << " pending_seek_ : " << pending_seek_ << " pending_seek_position_ : " << pending_seek_position_; @@ -693,7 +856,8 @@ void MediaPlayerESPlusPlayer::OnPrepareComplete(bool result) { is_prepared_ = true; if (pending_seek_) { Seek(pending_seek_position_); - pending_seek_position_ = base::TimeDelta(); + } else if (!is_paused_) { + Play(); } } @@ -710,6 +874,7 @@ void MediaPlayerESPlusPlayer::OnEos() { GetRendererClient(DemuxerStream::VIDEO)->OnEnded(); else if (IsValid(DemuxerStream::AUDIO)) GetRendererClient(DemuxerStream::AUDIO)->OnEnded(); + Release(); } void MediaPlayerESPlusPlayer::OnFrameReady( @@ -845,7 +1010,7 @@ void MediaPlayerESPlusPlayer::OnReadyToSeek( << " : " << seek_time; SetShouldFeed(GetDemuxerStreamType(stream_type), true); - SetReadRequested(GetDemuxerStreamType(stream_type), false); + SetIsEos(GetDemuxerStreamType(stream_type), false); ReadBuffer(GetDemuxerStreamType(stream_type)); } @@ -859,7 +1024,10 @@ void MediaPlayerESPlusPlayer::OnSeekComplete() { LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " is_paused:" << is_paused_; + + current_position_ = seek_position_; is_seeking_ = false; + seek_position_ = base::TimeDelta(); if (pending_seek_) { Seek(pending_seek_position_); pending_seek_position_ = base::TimeDelta(); @@ -898,6 +1066,7 @@ void MediaPlayerESPlusPlayer::OnError(const esplusplayer_error_type error) { GetRendererClient(DemuxerStream::VIDEO)->OnError(GetPipelineError(error)); else if (IsValid(DemuxerStream::AUDIO)) GetRendererClient(DemuxerStream::AUDIO)->OnError(GetPipelineError(error)); + Release(); } MediaPlayerESPlusPlayer::ElementryStream& @@ -974,8 +1143,7 @@ void MediaPlayerESPlusPlayer::SetRendererClient(DemuxerStream::Type type, GetElementryStream(type).renderer_client_ = client; } -base::circular_deque> -MediaPlayerESPlusPlayer::GetBufferQueue(DemuxerStream::Type type) { +Queue& MediaPlayerESPlusPlayer::GetBufferQueue(DemuxerStream::Type type) { return GetElementryStream(type).pending_buffers_; } @@ -983,4 +1151,5 @@ void MediaPlayerESPlusPlayer::SetFrameAvailableCallback( const DataRequestCB& datacb) { data_cb_ = datacb; } + } // namespace media diff --git a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h index ec5ce91..b6d22db 100644 --- a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h +++ b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h @@ -14,6 +14,7 @@ #include "base/time/time.h" #include "media/base/demuxer_stream.h" #include "media/base/video_renderer_sink.h" +#include "tizen_src/chromium_impl/base/tizen/static_map.h" #include "tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h" #include "tizen_src/chromium_impl/media/filters/esplusplayer_util.h" @@ -22,10 +23,12 @@ namespace media { class DemuxerStream; class RendererClient; +using Queue = base::circular_deque>; + // This class handles media source extensions for CAPI port. class MEDIA_EXPORT MediaPlayerESPlusPlayer { public: - static MediaPlayerESPlusPlayer* GetEsppPlayer(); + static MediaPlayerESPlusPlayer* GetMediaPlayerESPlusPlayer(); using DataRequestCB = base::RepeatingCallback; - bool Initialize(VideoRendererSink* sink); + bool CreatePlayer(); + void Initialize(VideoRendererSink* sink); + bool IsInitialized(); void Prepare(); + bool IsPrepared(); + void Release(); + void SetTaskRunner( const scoped_refptr& task_runner); void SetStreamInfo(DemuxerStream::Type type, @@ -91,9 +99,12 @@ class MEDIA_EXPORT MediaPlayerESPlusPlayer { void OnBufferReady(DemuxerStream::Type type, DemuxerStream::Status status, scoped_refptr buffer); - void SubmitEosPacket(DemuxerStream::Type type); - void SubmitEsPacket(DemuxerStream::Type type, - scoped_refptr buffer); + bool ReadFromBufferQueue(DemuxerStream::Type type); + esplusplayer_submit_status SubmitEosPacket(DemuxerStream::Type type); + esplusplayer_submit_status SubmitEsPacket( + DemuxerStream::Type type, + scoped_refptr buffer); + void UpdateBufferedDtsDifference(); ElementryStream& GetElementryStream(DemuxerStream::Type type); const ElementryStream& GetElementryStream(DemuxerStream::Type type) const; @@ -111,16 +122,24 @@ class MEDIA_EXPORT MediaPlayerESPlusPlayer { void SetDemuxerStream(DemuxerStream::Type type, DemuxerStream* stream); RendererClient* GetRendererClient(DemuxerStream::Type type) const; void SetRendererClient(DemuxerStream::Type type, RendererClient* client); - base::circular_deque> GetBufferQueue( - DemuxerStream::Type type); + Queue& GetBufferQueue(DemuxerStream::Type type); esplusplayer_handle esplayer_ = nullptr; + // first -> pts, second -> duration + base::StaticMap, + base::StaticKeys> + last_frames_; double volume_ = 1.0; bool playback_rate_ = 0.0; bool is_prepared_ = false; + bool is_preparing_ = false; bool is_paused_ = true; bool is_buffering_ = false; + base::TimeDelta current_position_; bool is_flushing_ = false; bool is_seeking_ = false; -- 2.7.4 From 47971e5cbda6f0c0d23bb2b34dbc0608987c09f2 Mon Sep 17 00:00:00 2001 From: "ayush.k123" Date: Fri, 23 Dec 2022 16:37:31 +0530 Subject: [PATCH 10/16] Add build switch to separate onscreen and offscreen targets The RPM size of the normal build is about 200MB. This size is due to packaging of onscreen targets, chrome and content_shell, in the rpm. This patch separates chrome and content_shell, and other targets through a build switch. Command line for onscreen build: TV: ./tizen_src/build/build_tv.sh --nodebug --build-chrome Desktop: ./tizen_src/build/build_desktop.sh --build-chrome Reference: 1. https://review.tizen.org/gerrit/274726/ 2. https://review.tizen.org/gerrit/274898/ 3. https://review.tizen.org/gerrit/275228/ 4. https://review.tizen.org/gerrit/276006/ Change-Id: I77fe89c4a10175b4f1b4ea28f21cba92b5e001f0 Signed-off-by: Ayush Kumar --- packaging/chromium-efl.spec | 106 +++++++++++++++--------------- tizen_src/build/common.sh | 19 +++--- tizen_src/build/config/tizen_features.gni | 2 + tizen_src/build/gn_chromiumefl.sh | 7 ++ tizen_src/ewk/BUILD.gn | 6 +- 5 files changed, 79 insertions(+), 61 deletions(-) diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec index f44962f..1f6c3ee 100644 --- a/packaging/chromium-efl.spec +++ b/packaging/chromium-efl.spec @@ -35,6 +35,12 @@ Source1: content_shell.in %define tizen_version %{tizen_version_major}%{tizen_version_minor} +%if "%{?_build_chrome}" == "1" +%define __build_chrome 1 +%else +%define __build_chrome 0 +%endif + %{?_use_system_icu: %define __use_system_icu %{_use_system_icu}} # Product tv can't utilize system icu due to nacl dependency. %if "%{?profile}" != "tv" && %{tizen_version} == 60 && %{?_use_system_icu: 0}%{!?_use_system_icu: 1} @@ -176,15 +182,6 @@ Requires: %{name} = %{version}-%{release} %description devel Browser Engine dev library based on Chromium EFL (development files) -%if 0%{?_enable_content_shell} -%package shell -Summary: Chromium EFL port of content_shell application -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -%description shell -Chromium EFL version of content_shell application -%endif - %if 0%{?_enable_unittests} %package unittests Summary: Chromium unittests @@ -306,16 +303,22 @@ fi %else "use_system_icu=false" \ %endif +%if %{__build_chrome} == 1 + "build_chrome=true" \ +%else + "build_chrome=false" \ +%endif %endif # _skip_gn ninja %{_smp_mflags} -C "%{OUTPUT_FOLDER}" \ -%if 0%{?_enable_content_shell} - content_shell \ -%endif %if 0%{?build_ewk_unittests} ewk_unittests \ %endif - efl_webprocess chromium-ewk efl_webview_app mini_browser ubrowser content_shell chrome +%if %{__build_chrome} == 1 + content_shell chrome +%else + efl_webprocess chromium-ewk efl_webview_app mini_browser ubrowser +%endif %if 0%{?_enable_unittests} ninja %{_smp_mflags} -C"%{OUTPUT_FOLDER}" angle_unittests env_chromium_unittests cacheinvalidation_unittests \ @@ -365,14 +368,11 @@ cp -r "%{OUTPUT_FOLDER}/locale" "%{buildroot}/%{CHROMIUM_LOCALE_DIR}" # locale for chromium layer install -m 0644 "%{OUTPUT_FOLDER}"/locales/efl/*.pak "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales -install -m 0755 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{_libdir} - install -d "%{buildroot}"%{_libdir}/../local/lib/ %if %{__use_clang} == 1 install -m 0644 %{_libdir}/libatomic.so* "%{buildroot}"%{_libdir}/../local/lib/ %endif -install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}%{CHROMIUM_EXE_DIR}" install -m 0755 "%{OUTPUT_FOLDER}"/icudtl.dat "%{buildroot}%{CHROMIUM_EXE_DIR}" install -m 0755 "%{OUTPUT_FOLDER}"/snapshot_blob.bin "%{buildroot}%{CHROMIUM_EXE_DIR}" install -m 0644 "%{OUTPUT_FOLDER}"/content_shell.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" @@ -381,12 +381,6 @@ install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}%{CHROMIUM_DAT install -m 0644 "%{OUTPUT_FOLDER}"/locales/*.pak "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales install -m 0644 "%{OUTPUT_FOLDER}"/chrome_100_percent.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" install -m 0644 "%{OUTPUT_FOLDER}"/resources.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" -install -m 0644 "%{OUTPUT_FOLDER}"/ui_resources_100_percent.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" - -mkdir -p "%{buildroot}"/usr/apps/org.tizen.%{name}/bin -install -m 0755 "%{OUTPUT_FOLDER}"/efl_webview_app "%{buildroot}"/usr/apps/org.tizen.%{name}/bin/ -install -m 0755 "%{OUTPUT_FOLDER}"/mini_browser "%{buildroot}"/usr/apps/org.tizen.%{name}/bin/ -install -m 0755 "%{OUTPUT_FOLDER}"/ubrowser "%{buildroot}"/usr/apps/org.tizen.%{name}/bin/ install -d "%{OUTPUT_FOLDER}"/packages install -d %{buildroot}%{_xmldir} @@ -407,16 +401,27 @@ install -m 0644 "%{OUTPUT_FOLDER}"/pkgconfig/*.pc "%{buildroot}"%{_libdir}/pk install -m 0644 tizen_src/ewk/efl_integration/public/*.h "%{buildroot}"%{_includedir}/chromium-ewk/ install -m 0644 v8/include/*.h "%{buildroot}"%{_includedir}/v8/ -install -m 0755 "%{OUTPUT_FOLDER}"/content_shell "%{buildroot}%{CHROMIUM_EXE_DIR}"/content_shell -sed 's#@binary@#%{CHROMIUM_EXE_DIR}/content_shell#' %{SOURCE1} > "%{buildroot}"%{_bindir}/content_shell - install -m 0755 "%{OUTPUT_FOLDER}"/libminigbm.so "%{buildroot}"%{_libdir} -install -m 0755 "%{OUTPUT_FOLDER}"/chrome "%{buildroot}%{CHROMIUM_EXE_DIR}"/chrome -sed 's#@binary@#%{CHROMIUM_EXE_DIR}/chrome#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome +%if %{__build_chrome} == 1 + install -m 0755 "%{OUTPUT_FOLDER}"/content_shell "%{buildroot}%{CHROMIUM_EXE_DIR}"/content_shell + sed 's#@binary@#%{CHROMIUM_EXE_DIR}/content_shell#' %{SOURCE1} > "%{buildroot}"%{_bindir}/content_shell + + install -m 0755 "%{OUTPUT_FOLDER}"/chrome "%{buildroot}%{CHROMIUM_EXE_DIR}"/chrome + sed 's#@binary@#%{CHROMIUM_EXE_DIR}/chrome#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome -install -m 0755 "%{OUTPUT_FOLDER}"/chrome_crashpad_handler "%{buildroot}%{CHROMIUM_EXE_DIR}"/chrome_crashpad_handler -sed 's#@binary@#%{CHROMIUM_EXE_DIR}/chrome_crashpad_handler#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome_crashpad_handler + install -m 0755 "%{OUTPUT_FOLDER}"/chrome_crashpad_handler "%{buildroot}%{CHROMIUM_EXE_DIR}"/chrome_crashpad_handler + sed 's#@binary@#%{CHROMIUM_EXE_DIR}/chrome_crashpad_handler#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome_crashpad_handler + install -m 0644 "%{OUTPUT_FOLDER}"/ui_resources_100_percent.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" +%else + install -m 0755 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{_libdir} + install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}%{CHROMIUM_EXE_DIR}" + + mkdir -p "%{buildroot}"/usr/apps/org.tizen.%{name}/bin + install -m 0755 "%{OUTPUT_FOLDER}"/efl_webview_app "%{buildroot}"/usr/apps/org.tizen.%{name}/bin/ + install -m 0755 "%{OUTPUT_FOLDER}"/mini_browser "%{buildroot}"/usr/apps/org.tizen.%{name}/bin/ + install -m 0755 "%{OUTPUT_FOLDER}"/ubrowser "%{buildroot}"/usr/apps/org.tizen.%{name}/bin/ +%endif %if 0%{?_enable_unittests} install -d "%{INSTALL_ROOT}%{CHROMIUM_UNITTESTS_DIR}" @@ -439,21 +444,12 @@ install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/ %files %manifest packaging/chromium-efl.manifest -/usr/apps/org.tizen.%{name}/bin/efl_webview_app -/usr/apps/org.tizen.%{name}/bin/mini_browser -/usr/apps/org.tizen.%{name}/bin/ubrowser %{_icondir}/efl_webview_app.png %{_icondir}/mini_browser.png %{_icondir}/ubrowser.png %{_xmldir}/%{_pkgid}.xml %defattr(-,root,root,-) -%{_libdir}/libchromium-ewk.so %{_libdir}/libminigbm.so -%if "%{?tizen_profile_name}" == "tv" - %caps(cap_mac_admin,cap_mac_override,cap_setgid=ei) %{CHROMIUM_EXE_DIR}/efl_webprocess -%else - %{CHROMIUM_EXE_DIR}/efl_webprocess -%endif %if %{__use_clang} == 1 %{_libdir}/../local/lib/libatomic.so* %endif @@ -463,16 +459,29 @@ install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/ %{CHROMIUM_EXE_DIR}/locales/*.pak %{CHROMIUM_DATA_DIR}/themes/*.edj %{CHROMIUM_LOCALE_DIR} -%{CHROMIUM_EXE_DIR}/content_shell -%{_bindir}/content_shell %{CHROMIUM_EXE_DIR}/chrome_100_percent.pak %{CHROMIUM_EXE_DIR}/resources.pak -%{CHROMIUM_EXE_DIR}/ui_resources_100_percent.pak %{CHROMIUM_EXE_DIR}/locales/*.pak -%{CHROMIUM_EXE_DIR}/chrome -%{_bindir}/chrome -%{CHROMIUM_EXE_DIR}/chrome_crashpad_handler -%{_bindir}/chrome_crashpad_handler + +%if %{__build_chrome} == 1 + %{CHROMIUM_EXE_DIR}/ui_resources_100_percent.pak + %{CHROMIUM_EXE_DIR}/content_shell + %{_bindir}/content_shell + %{CHROMIUM_EXE_DIR}/chrome + %{_bindir}/chrome + %{CHROMIUM_EXE_DIR}/chrome_crashpad_handler + %{_bindir}/chrome_crashpad_handler +%else + %{_libdir}/libchromium-ewk.so + %if "%{?tizen_profile_name}" == "tv" + %caps(cap_mac_admin,cap_mac_override,cap_setgid=ei) %{CHROMIUM_EXE_DIR}/efl_webprocess + %else + %{CHROMIUM_EXE_DIR}/efl_webprocess + %endif + /usr/apps/org.tizen.%{name}/bin/efl_webview_app + /usr/apps/org.tizen.%{name}/bin/mini_browser + /usr/apps/org.tizen.%{name}/bin/ubrowser +%endif %files devel %defattr(-,root,root,-) @@ -480,13 +489,6 @@ install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/ %{_libdir}/pkgconfig/*.pc %{_includedir}/v8/* -%if 0%{?_enable_content_shell} -%files shell -%defattr(0755,root,root,-) -%{CHROMIUM_EXE_DIR}/content_shell -%{_bindir}/content_shell -%endif - %if 0%{?_enable_unittests} %files unittests %defattr(-,root,root,-) diff --git a/tizen_src/build/common.sh b/tizen_src/build/common.sh index 267c264..579968b 100755 --- a/tizen_src/build/common.sh +++ b/tizen_src/build/common.sh @@ -84,7 +84,6 @@ OPTIONS: --build-ewk-unittests Build ewk unittests --ccache Configure ccache installed in your system --clang Use chromium's clang compiler to build the sources - --no-content-shell Don't build content_shell application --debug Build debug version of chromium-efl (out.${host_arch}/Debug instead of out.${host_arch}/Release) -jN Set number of jobs, just like with make or ninja --skip-ninja Skip ninja step @@ -112,7 +111,7 @@ function parseHostBuildScriptParams() { export FORCE_JHBUILD=0 export SKIP_NINJA=0 export BUILD_EWK_UNITTESTS=0 - export BUILD_CONTENT_SHELL=1 + export BUILD_CHROME=0 export BUILD_SUBDIRECTORY=Release export COMPONENT_BUILD=0 @@ -135,8 +134,8 @@ function parseHostBuildScriptParams() { --gcc) export USE_CLANG=0 ;; - --no-content-shell) - export BUILD_CONTENT_SHELL=0 + --build-chrome) + export BUILD_CHROME=1 ;; --force-jhbuild) export FORCE_JHBUILD=1 @@ -181,13 +180,14 @@ function hostGnChromiumEfl() { function hostNinja() { if [[ $SKIP_NINJA == 0 ]]; then - TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser content_shell chrome" + if [[ $BUILD_CHROME == 1 ]]; then + TARGETS="content_shell chrome" + else + TARGETS="chromium-ewk efl_webprocess efl_webview_app ubrowser" + fi if [[ $BUILD_EWK_UNITTESTS == 1 ]]; then TARGETS="$TARGETS ewk_unittests" fi - if [[ $BUILD_CONTENT_SHELL == 1 ]]; then - TARGETS="$TARGETS content_shell dump_syms minidump_stackwalk" - fi if [[ $BUILD_CHROMEDRIVER == 1 ]]; then TARGETS="$TARGETS chromedriver" fi @@ -288,6 +288,9 @@ function setupAndExecuteTargetBuild() { ;; --tizen*) ;; + --build-chrome) + ARGS+=(--define "_build_chrome 1") + ;; *) ARGS+=("$1") ;; diff --git a/tizen_src/build/config/tizen_features.gni b/tizen_src/build/config/tizen_features.gni index 650fb25..94b85b2 100644 --- a/tizen_src/build/config/tizen_features.gni +++ b/tizen_src/build/config/tizen_features.gni @@ -39,6 +39,8 @@ declare_args() { tizen_version_minor = 0 tizen_version_patch = 0 + build_chrome = false + # Tizen multimedia related tizen_multimedia_eme_support = false tizen_multimedia_support = false diff --git a/tizen_src/build/gn_chromiumefl.sh b/tizen_src/build/gn_chromiumefl.sh index d11a662..d2e392a 100755 --- a/tizen_src/build/gn_chromiumefl.sh +++ b/tizen_src/build/gn_chromiumefl.sh @@ -127,6 +127,12 @@ add_desktop_flags() { ADDITIONAL_GN_PARAMETERS+="use_system_libjpeg=true " fi + + local build_chrome=false + if [ $BUILD_CHROME == 1 ]; then + build_chrome=true + fi + ADDITIONAL_GN_PARAMETERS+="gcc_ver=\"$(getGccVersion)\" is_clang=${is_clang} is_tizen=false @@ -137,6 +143,7 @@ add_desktop_flags() { werror=false dcheck_always_on=false enable_nacl=false + build_chrome=${build_chrome} " } diff --git a/tizen_src/ewk/BUILD.gn b/tizen_src/ewk/BUILD.gn index 9bff27b..75ec304 100644 --- a/tizen_src/ewk/BUILD.gn +++ b/tizen_src/ewk/BUILD.gn @@ -2,11 +2,15 @@ # 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") + group("chromium_efl_all") { testonly = true deps = [ - "//chrome:chrome", "//tizen_src/ewk/efl_webview_app:efl_webview_app", "//tizen_src/ewk/ubrowser:ubrowser", ] + if (build_chrome) { + deps += [ "//chrome:chrome" ] + } } -- 2.7.4 From 36b87c2e13ef89bcd34e69878c296916b8bcc63d Mon Sep 17 00:00:00 2001 From: Chandan Padhi Date: Wed, 7 Dec 2022 19:28:55 +0530 Subject: [PATCH 11/16] Remove EWK_BRINGUP for code disabled during M108 build bring up This commit enables code that was disabled during M108 build bring up. Change-Id: I73290609db730754af2e9dd55f6eacc0d880197a Signed-off-by: Chandan Padhi --- .../ewk/efl_integration/browser_context_efl.cc | 34 +--------------------- .../ewk/efl_integration/browser_context_efl.h | 23 ++++----------- tizen_src/ewk/efl_integration/cookie_manager.cc | 5 ---- tizen_src/ewk/efl_integration/cookie_manager.h | 6 +--- tizen_src/ewk/efl_integration/eweb_context.cc | 1 + tizen_src/ewk/efl_integration/eweb_view.cc | 5 +--- tizen_src/ewk/efl_integration/ewk_global_data.cc | 10 ------- tizen_src/ewk/efl_integration/ewk_global_data.h | 5 ---- .../private/ewk_policy_decision_private.cc | 7 +++-- tizen_src/ewk/efl_integration/public/ewk_error.cc | 9 ++---- .../renderer/content_renderer_client_efl.cc | 10 ++----- .../renderer/content_renderer_client_efl.h | 7 ++--- .../renderer/render_frame_observer_efl.cc | 3 +- .../url_request_context_getter_efl.cc | 1 + 14 files changed, 23 insertions(+), 103 deletions(-) diff --git a/tizen_src/ewk/efl_integration/browser_context_efl.cc b/tizen_src/ewk/efl_integration/browser_context_efl.cc index 01e57d8..8145294 100644 --- a/tizen_src/ewk/efl_integration/browser_context_efl.cc +++ b/tizen_src/ewk/efl_integration/browser_context_efl.cc @@ -52,7 +52,7 @@ static void CreateNetworkDelegateOnIOThread(BrowserContextEfl* context, BrowserContextEfl::ResourceContextEfl::ResourceContextEfl( scoped_refptr cookie_manager) - : getter_(nullptr), cookie_manager_(cookie_manager) {} + : cookie_manager_(cookie_manager) {} BrowserContextEfl::~BrowserContextEfl() { NotifyWillBeDestroyed(); @@ -66,12 +66,7 @@ BrowserContextEfl::~BrowserContextEfl() { } BrowserContextEfl::ResourceContextEfl::~ResourceContextEfl() { - // |cookie_manager_| has access to - // |URLRequestContextGetterEfl::GetURLRequestContext()|. So it should be - // released before NotifyContextShuttingDown() cookie_manager_ = nullptr; - if (getter_.get()) - getter_->NotifyContextShuttingDown(); } bool BrowserContextEfl::ResourceContextEfl::HTTPCustomHeaderAdd( @@ -101,33 +96,6 @@ BrowserContextEfl::ResourceContextEfl::GetHTTPCustomHeadersEflMap() const { return http_custom_headers_; } -net::HostResolver* BrowserContextEfl::ResourceContextEfl::GetHostResolver() { - CHECK(getter_.get()); - return getter_->host_resolver(); -} - -net::URLRequestContext* -BrowserContextEfl::ResourceContextEfl::GetRequestContext() { - CHECK(getter_.get()); - return getter_->GetURLRequestContext(); -} - -net::URLRequestContextGetter* BrowserContextEfl::CreateMediaRequestContext() { - return request_context_getter_.get(); -} - -net::URLRequestContextGetter* -BrowserContextEfl::CreateMediaRequestContextForStoragePartition( - const base::FilePath&, - bool) { - return nullptr; -} - -void BrowserContextEfl::ResourceContextEfl::set_url_request_context_getter( - URLRequestContextGetterEfl* getter) { - getter_ = getter; -} - scoped_refptr BrowserContextEfl::ResourceContextEfl::GetCookieManager() const { return cookie_manager_; diff --git a/tizen_src/ewk/efl_integration/browser_context_efl.h b/tizen_src/ewk/efl_integration/browser_context_efl.h index 8980035..90ac364 100644 --- a/tizen_src/ewk/efl_integration/browser_context_efl.h +++ b/tizen_src/ewk/efl_integration/browser_context_efl.h @@ -7,18 +7,17 @@ #include -#include "url_request_context_getter_efl.h" #include "base/files/scoped_temp_dir.h" #include "base/synchronization/lock.h" #include "browser/download_manager_delegate_efl.h" #include "browser/geolocation/geolocation_permission_context_efl.h" #include "browser/ssl_host_state_delegate_efl.h" #include "components/visitedlink/browser/visitedlink_delegate.h" -#include "content/public/browser/content_browser_client.h" #include "content/public/browser/browser_context.h" -#include "content/public/browser/storage_partition.h" +#include "content/public/browser/content_browser_client.h" #include "content/public/browser/resource_context.h" -#include "net/url_request/url_request_context.h" +#include "content/public/browser/storage_partition.h" +#include "url_request_context_getter_efl.h" class CookieManager; class PrefService; @@ -38,24 +37,20 @@ class BrowserContextEfl : public BrowserContext, class ResourceContextEfl : public ResourceContext { public: ResourceContextEfl(scoped_refptr cookie_manager); - ~ResourceContextEfl(); ResourceContextEfl(const ResourceContextEfl&) = delete; ResourceContextEfl& operator=(const ResourceContextEfl&) = delete; + ~ResourceContextEfl() override; + bool HTTPCustomHeaderAdd(const std::string& name, const std::string& value); bool HTTPCustomHeaderRemove(const std::string& name); void HTTPCustomHeaderClear(); const HTTPCustomHeadersEflMap GetHTTPCustomHeadersEflMap() const; - net::HostResolver* GetHostResolver(); - net::URLRequestContext* GetRequestContext(); - void set_url_request_context_getter(URLRequestContextGetterEfl* getter); - scoped_refptr GetCookieManager() const; private: - scoped_refptr getter_; scoped_refptr cookie_manager_; HTTPCustomHeadersEflMap http_custom_headers_; mutable base::Lock http_custom_headers_lock_; @@ -68,10 +63,6 @@ class BrowserContextEfl : public BrowserContext, BrowserContextEfl& operator=(const BrowserContextEfl&) = delete; // BrowserContext implementation. - net::URLRequestContextGetter* CreateMediaRequestContext(); - net::URLRequestContextGetter* CreateMediaRequestContextForStoragePartition( - const base::FilePath&, - bool); PlatformNotificationService* GetPlatformNotificationService() override { return nullptr; } @@ -104,9 +95,6 @@ class BrowserContextEfl : public BrowserContext, std::unique_ptr CreateZoomLevelDelegate( const base::FilePath& partition_path); - URLRequestContextGetterEfl* GetRequestContextEfl() { - return request_context_getter_.get(); - } // These methods map to Add methods in visitedlink::VisitedLinkMaster. void AddVisitedURLs(const std::vector& urls); @@ -132,7 +120,6 @@ class BrowserContextEfl : public BrowserContext, geolocation_permission_context_; std::unique_ptr visitedlink_writer_; ResourceContextEfl* resource_context_; - scoped_refptr request_context_getter_; EWebContext* web_context_; DownloadManagerDelegateEfl download_manager_delegate_; base::ScopedTempDir temp_dir_; diff --git a/tizen_src/ewk/efl_integration/cookie_manager.cc b/tizen_src/ewk/efl_integration/cookie_manager.cc index 8df7217..9e5ae2a 100644 --- a/tizen_src/ewk/efl_integration/cookie_manager.cc +++ b/tizen_src/ewk/efl_integration/cookie_manager.cc @@ -82,11 +82,6 @@ CookieManager::~CookieManager() { DeleteSessionCookiesOnIOThread(); } -void CookieManager::SetRequestContextGetter( - scoped_refptr getter) { - request_context_getter_ = getter; -} - void CookieManager::DeleteSessionCookiesOnIOThread() { DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); diff --git a/tizen_src/ewk/efl_integration/cookie_manager.h b/tizen_src/ewk/efl_integration/cookie_manager.h index 61467fd..94bd2da 100644 --- a/tizen_src/ewk/efl_integration/cookie_manager.h +++ b/tizen_src/ewk/efl_integration/cookie_manager.h @@ -8,17 +8,15 @@ #include #include -#include "url_request_context_getter_efl.h" #include "base/memory/ref_counted.h" #include "base/synchronization/lock.h" -#include "net/url_request/url_request_context.h" -#include "net/url_request/url_request_context_getter.h" #include "net/cookies/canonical_cookie.h" #include "net/cookies/cookie_monster.h" #include "net/cookies/cookie_options.h" #include "net/cookies/cookie_util.h" #include "public/ewk_cookie_manager.h" #include "url/gurl.h" +#include "url_request_context_getter_efl.h" namespace content { class ResourceContext; @@ -90,8 +88,6 @@ class CookieManager : public base::RefCountedThreadSafe { //This is synchronous call std::string GetCookiesForURL(const std::string& url); - void SetRequestContextGetter(scoped_refptr getter); - base::WeakPtr GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } diff --git a/tizen_src/ewk/efl_integration/eweb_context.cc b/tizen_src/ewk/efl_integration/eweb_context.cc index 45eb3f7..4b77984 100644 --- a/tizen_src/ewk/efl_integration/eweb_context.cc +++ b/tizen_src/ewk/efl_integration/eweb_context.cc @@ -26,6 +26,7 @@ #include "net/http/http_cache.h" #include "net/proxy_resolution/proxy_config_service_fixed.h" #include "net/proxy_resolution/proxy_resolution_service.h" +#include "net/url_request/url_request_context.h" #include "storage/browser/database/database_quota_client.h" #include "storage/browser/file_system/file_system_quota_client.h" #include "storage/browser/quota/quota_manager.h" diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index 14e2880..c71aa3d 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -702,10 +702,7 @@ void JavaScriptComplete(JavaScriptCallbackDetails* script_callback_data, if (!script_callback_data->callback_func_) return; - std::string return_string; -#if !defined(EWK_BRINGUP) // FIXME: m108 bringup - result->GetAsString(&return_string); -#endif + std::string return_string = result->GetString(); script_callback_data->callback_func_(script_callback_data->view_, return_string.c_str(), script_callback_data->user_data_); diff --git a/tizen_src/ewk/efl_integration/ewk_global_data.cc b/tizen_src/ewk/efl_integration/ewk_global_data.cc index 4f2015f..ae28b71 100644 --- a/tizen_src/ewk/efl_integration/ewk_global_data.cc +++ b/tizen_src/ewk/efl_integration/ewk_global_data.cc @@ -69,8 +69,6 @@ EwkGlobalData::EwkGlobalData() EwkGlobalData::~EwkGlobalData() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - // URLRequestContextGetterEfl needs to be deleted before loop stops - system_request_context_ = nullptr; // We need to pretend that message loop was stopped so chromium unwinds // correctly @@ -198,14 +196,6 @@ EwkGlobalData* EwkGlobalData::GetInstance() { return instance_; } -content::URLRequestContextGetterEfl* -EwkGlobalData::GetSystemRequestContextGetter() { - if (!system_request_context_.get()) { - system_request_context_ = new content::URLRequestContextGetterEfl(); - } - return system_request_context_.get(); -} - void EwkGlobalData::Delete() { delete instance_; instance_ = NULL; diff --git a/tizen_src/ewk/efl_integration/ewk_global_data.h b/tizen_src/ewk/efl_integration/ewk_global_data.h index 8249caa..5461e13 100644 --- a/tizen_src/ewk/efl_integration/ewk_global_data.h +++ b/tizen_src/ewk/efl_integration/ewk_global_data.h @@ -7,7 +7,6 @@ #include "base/memory/ref_counted.h" #include "content/browser/startup_data_impl.h" -#include "url_request_context_getter_efl.h" #if defined(USE_OZONE) namespace display { @@ -37,8 +36,6 @@ class EwkGlobalData return *content_main_delegate_efl_.get(); } - content::URLRequestContextGetterEfl* GetSystemRequestContextGetter(); - private: EwkGlobalData(); ~EwkGlobalData(); @@ -63,8 +60,6 @@ class EwkGlobalData std::unique_ptr content_main_delegate_efl_; std::unique_ptr content_main_runner_; std::unique_ptr browser_main_runner_; - - scoped_refptr system_request_context_; }; #endif // EWK_GLOBAL_DATA_H_ diff --git a/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc b/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc index 0172c8a..2a11597 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc +++ b/tizen_src/ewk/efl_integration/private/ewk_policy_decision_private.cc @@ -10,6 +10,7 @@ #include "content/public/browser/render_view_host.h" #include "eweb_view.h" #include "net/http/http_response_headers.h" +#include "net/url_request/url_request_context.h" #include "private/ewk_frame_private.h" #include "third_party/blink/public/common/mime_util/mime_util.h" @@ -214,9 +215,9 @@ void _Ewk_Policy_Decision::InitializeOnUIThread() { // DCHECK(viewhost); if (viewhost) { -#if !defined(EWK_BRINGUP) // FIXME: m108 bringup - host = viewhost->GetMainFrame(); -#endif + content::WebContents* web_contents = + content::WebContents::FromRenderViewHost(viewhost); + host = web_contents->GetPrimaryMainFrame(); } } diff --git a/tizen_src/ewk/efl_integration/public/ewk_error.cc b/tizen_src/ewk/efl_integration/public/ewk_error.cc index 26fb4e7..6feff94 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_error.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_error.cc @@ -110,9 +110,6 @@ static Ewk_Error_Code convertErrorCode(const Ewk_Error* error) return EWK_ERROR_CODE_CANT_LOOKUP_HOST; case net::ERR_BAD_SSL_CLIENT_AUTH_CERT: -#if !defined(EWK_BRINGUP) // FIXME: m108 bringup - case net::ERR_CERT_ERROR_IN_SSL_RENEGOTIATION: -#endif case net::ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED: case net::ERR_SSL_HANDSHAKE_NOT_COMPLETED: return EWK_ERROR_CODE_FAILED_TLS_HANDSHAKE; @@ -144,10 +141,8 @@ static Ewk_Error_Code convertErrorCode(const Ewk_Error* error) case net::ERR_ADDRESS_INVALID: case net::ERR_INVALID_URL: return EWK_ERROR_CODE_BAD_URL; -#if !defined(EWK_BRINGUP) // FIXME: m108 bringup - case net::ERR_ // DISALLOWED_URL_SCHEME: -#endif - case net::ERR_UNKNOWN_URL_SCHEME: + case net::ERR_DISALLOWED_URL_SCHEME: + case net::ERR_UNKNOWN_URL_SCHEME: return EWK_ERROR_CODE_UNSUPPORTED_SCHEME; case net::ERR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED: diff --git a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc index be5d023..78dbbeb 100644 --- a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc +++ b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc @@ -174,22 +174,18 @@ bool ContentRendererClientEfl::OverrideCreatePlugin( } void ContentRendererClientEfl::DidCreateScriptContext( - blink::WebFrame* frame, + content::RenderFrame* render_frame, v8::Handle context, int world_id) { -#if !defined(EWK_BRINGUP) // FIXME: m108 bringup - content::RenderView* render_view = - content::RenderView::FromWebView(frame->View()); if (widget_) { - widget_->StartSession(context, render_view->GetRoutingID(), - frame->ToWebLocalFrame() + widget_->StartSession(context, render_frame->GetRoutingID(), + render_frame->GetWebFrame() ->GetDocument() .BaseURL() .GetString() .Utf8() .c_str()); } -#endif } void ContentRendererClientEfl::WillReleaseScriptContext( diff --git a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h index f0a0205..2400cfe 100755 --- a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h +++ b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h @@ -61,10 +61,9 @@ class ContentRendererClientEfl : public content::ContentRendererClient { blink::WebNavigationPolicy default_policy, bool is_redirect) override; - void DidCreateScriptContext( - blink::WebFrame* frame, - v8::Handle context, - int world_id); + void DidCreateScriptContext(content::RenderFrame* render_frame, + v8::Handle context, + int world_id); void WillReleaseScriptContext( blink::WebFrame* frame, diff --git a/tizen_src/ewk/efl_integration/renderer/render_frame_observer_efl.cc b/tizen_src/ewk/efl_integration/renderer/render_frame_observer_efl.cc index 6df21a8..0edf0b5 100644 --- a/tizen_src/ewk/efl_integration/renderer/render_frame_observer_efl.cc +++ b/tizen_src/ewk/efl_integration/renderer/render_frame_observer_efl.cc @@ -202,8 +202,7 @@ void RenderFrameObserverEfl::DidCreateScriptContext( ContentRendererClientEfl* client = static_cast( GetContentClientExport()->renderer()); - client->DidCreateScriptContext(render_frame()->GetWebFrame(), context, - world_id); + client->DidCreateScriptContext(render_frame(), context, world_id); } void RenderFrameObserverEfl::WillReleaseScriptContext( diff --git a/tizen_src/ewk/efl_integration/url_request_context_getter_efl.cc b/tizen_src/ewk/efl_integration/url_request_context_getter_efl.cc index 7baa31c..844ea4c 100644 --- a/tizen_src/ewk/efl_integration/url_request_context_getter_efl.cc +++ b/tizen_src/ewk/efl_integration/url_request_context_getter_efl.cc @@ -31,6 +31,7 @@ #include "net/proxy_resolution/proxy_resolution_service.h" #include "net/ssl/ssl_config_service_defaults.h" #include "net/url_request/static_http_user_agent_settings.h" +#include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" #include "net/url_request/url_request_job_factory.h" #include "network_delegate_efl.h" -- 2.7.4 From dfb40db17f1c2dd82ad7e9ad2c845542ec4e2564 Mon Sep 17 00:00:00 2001 From: "ayush.k123" Date: Wed, 4 Jan 2023 16:39:31 +0530 Subject: [PATCH 12/16] fixup! Add build switch to separate onscreen and offscreen targets This patch fixes the path error of pak files during build and packaging of rpm when out directory does not exist yet. Change-Id: I77fe89c4a10175b4f1b4ea28f21cba92b5e007a7 Signed-off-by: Ayush Kumar --- packaging/chromium-efl.spec | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec index 1f6c3ee..d6b0c1f 100644 --- a/packaging/chromium-efl.spec +++ b/packaging/chromium-efl.spec @@ -362,12 +362,6 @@ install -d "%{buildroot}%{CHROMIUM_EXE_DIR}" install -d "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales install -d "%{buildroot}%{CHROMIUM_DATA_DIR}"/themes -# locale for ewk layer -cp -r "%{OUTPUT_FOLDER}/locale" "%{buildroot}/%{CHROMIUM_LOCALE_DIR}" - -# locale for chromium layer -install -m 0644 "%{OUTPUT_FOLDER}"/locales/efl/*.pak "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales - install -d "%{buildroot}"%{_libdir}/../local/lib/ %if %{__use_clang} == 1 install -m 0644 %{_libdir}/libatomic.so* "%{buildroot}"%{_libdir}/../local/lib/ @@ -378,10 +372,6 @@ install -m 0755 "%{OUTPUT_FOLDER}"/snapshot_blob.bin "%{buildroot}%{CHROMIUM_EXE install -m 0644 "%{OUTPUT_FOLDER}"/content_shell.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}%{CHROMIUM_DATA_DIR}"/themes -install -m 0644 "%{OUTPUT_FOLDER}"/locales/*.pak "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales -install -m 0644 "%{OUTPUT_FOLDER}"/chrome_100_percent.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" -install -m 0644 "%{OUTPUT_FOLDER}"/resources.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" - install -d "%{OUTPUT_FOLDER}"/packages install -d %{buildroot}%{_xmldir} sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \ @@ -413,7 +403,16 @@ install -m 0755 "%{OUTPUT_FOLDER}"/libminigbm.so "%{buildroot}"%{_libdir} install -m 0755 "%{OUTPUT_FOLDER}"/chrome_crashpad_handler "%{buildroot}%{CHROMIUM_EXE_DIR}"/chrome_crashpad_handler sed 's#@binary@#%{CHROMIUM_EXE_DIR}/chrome_crashpad_handler#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome_crashpad_handler install -m 0644 "%{OUTPUT_FOLDER}"/ui_resources_100_percent.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" + install -m 0644 "%{OUTPUT_FOLDER}"/locales/*.pak "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales + install -m 0644 "%{OUTPUT_FOLDER}"/chrome_100_percent.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" + install -m 0644 "%{OUTPUT_FOLDER}"/resources.pak "%{buildroot}%{CHROMIUM_EXE_DIR}" %else + # locale for ewk layer + cp -r "%{OUTPUT_FOLDER}/locale" "%{buildroot}/%{CHROMIUM_LOCALE_DIR}" + + # locale for chromium layer + install -m 0644 "%{OUTPUT_FOLDER}"/locales/efl/*.pak "%{buildroot}%{CHROMIUM_EXE_DIR}"/locales + install -m 0755 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{_libdir} install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}%{CHROMIUM_EXE_DIR}" @@ -458,12 +457,10 @@ install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/ %{CHROMIUM_EXE_DIR}/content_shell.pak %{CHROMIUM_EXE_DIR}/locales/*.pak %{CHROMIUM_DATA_DIR}/themes/*.edj -%{CHROMIUM_LOCALE_DIR} -%{CHROMIUM_EXE_DIR}/chrome_100_percent.pak -%{CHROMIUM_EXE_DIR}/resources.pak -%{CHROMIUM_EXE_DIR}/locales/*.pak %if %{__build_chrome} == 1 + %{CHROMIUM_EXE_DIR}/chrome_100_percent.pak + %{CHROMIUM_EXE_DIR}/resources.pak %{CHROMIUM_EXE_DIR}/ui_resources_100_percent.pak %{CHROMIUM_EXE_DIR}/content_shell %{_bindir}/content_shell @@ -472,6 +469,7 @@ install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/ %{CHROMIUM_EXE_DIR}/chrome_crashpad_handler %{_bindir}/chrome_crashpad_handler %else + %{CHROMIUM_LOCALE_DIR} %{_libdir}/libchromium-ewk.so %if "%{?tizen_profile_name}" == "tv" %caps(cap_mac_admin,cap_mac_override,cap_setgid=ei) %{CHROMIUM_EXE_DIR}/efl_webprocess -- 2.7.4 From 4a6f2b17cb63017a0cfc6407b7f7674c6e416069 Mon Sep 17 00:00:00 2001 From: Chandan Padhi Date: Tue, 3 Jan 2023 18:03:13 +0530 Subject: [PATCH 13/16] fixup! Remove InProcessGpuThreadEfl and GpuChildThreadEfl In GpuChildThread, GpuChannelManager's shared context will be overriden with the one created by EFL. Therefore, we can avoid creation of default shared context in GpuChannelManager. Change-Id: Id32b42bbf68cc9fc77a85614d5681bd9df293881 Signed-off-by: Chandan Padhi --- gpu/ipc/service/gpu_channel_manager.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gpu/ipc/service/gpu_channel_manager.cc b/gpu/ipc/service/gpu_channel_manager.cc index 7a905bc..8bd30f8 100644 --- a/gpu/ipc/service/gpu_channel_manager.cc +++ b/gpu/ipc/service/gpu_channel_manager.cc @@ -334,7 +334,9 @@ GpuChannelManager::GpuChannelManager( gpu_feature_info.enabled_gpu_driver_bug_workarounds), delegate_(delegate), watchdog_(watchdog), +#if !BUILDFLAG(IS_EFL) share_group_(new gl::GLShareGroup()), +#endif mailbox_manager_(gles2::CreateMailboxManager(gpu_preferences)), scheduler_(scheduler), sync_point_manager_(sync_point_manager), -- 2.7.4 From c0fac8e23b9d1801f07c0af62c7c23bc30dbea38 Mon Sep 17 00:00:00 2001 From: Venugopal S M Date: Tue, 3 Jan 2023 19:31:12 +0530 Subject: [PATCH 14/16] [MM] Implement MMPlayer(CAPI) path to support HBBTV. Many of functions for HBBTV contents are implemented in MMPlayer side. To reuse these implementations, MMPlayer will be used for playing HBBTV contents. Others will be played by ESPP API. Reference: https://review.tizen.org/gerrit/276142 https://review.tizen.org/gerrit/276755 https://review.tizen.org/gerrit/276965 Change-Id: I4618e6e9f9a820bff4ada655aa22cb537bccd96b Signed-off-by: YongGeol Jung Signed-off-by: Venugopal S M --- media/base/media_resource.cc | 7 + media/base/media_resource.h | 4 + media/base/media_url_demuxer.cc | 8 + media/base/media_url_demuxer.h | 3 + media/mojo/mojom/renderer_extensions.mojom | 3 + .../platform/media/web_media_player_impl.cc | 16 ++ .../content/browser/media/tizen_renderer_impl.cc | 138 ++++++++---- .../content/browser/media/tizen_renderer_impl.h | 10 +- .../media/tizen/media_player_renderer_client.cc | 7 + .../media/tizen/media_player_renderer_client.h | 3 + .../media/base/efl/media_player_efl.cc | 84 ++++---- .../media/base/efl/media_player_efl.h | 5 - .../media/base/efl/media_player_manager_efl.h | 41 ++-- .../media/base/efl/media_player_util_efl.cc | 17 +- .../media/base/tizen/media_player_bridge_capi.cc | 106 ++++----- .../media/base/tizen/media_player_bridge_capi.h | 12 +- .../filters/media_player_bridge_capi_adapter.cc | 236 +++++++++++++++++++++ .../filters/media_player_bridge_capi_adapter.h | 121 +++++++++++ .../media/filters/media_player_esplusplayer.cc | 5 + .../media/filters/media_player_esplusplayer.h | 42 ++-- .../media/filters/media_player_tizen.h | 100 +++++++++ tizen_src/chromium_impl/media/media_efl.gni | 21 ++ .../renderer/content_renderer_client_efl.cc | 18 ++ .../renderer/content_renderer_client_efl.h | 5 + 24 files changed, 826 insertions(+), 186 deletions(-) create mode 100644 tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.cc create mode 100644 tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.h create mode 100644 tizen_src/chromium_impl/media/filters/media_player_tizen.h mode change 100755 => 100644 tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h diff --git a/media/base/media_resource.cc b/media/base/media_resource.cc index 802a8dd..5944795 100644 --- a/media/base/media_resource.cc +++ b/media/base/media_resource.cc @@ -41,4 +41,11 @@ void MediaResource::ForwardDurationChangeToDemuxerHost( NOTREACHED(); } +#if defined(TIZEN_MULTIMEDIA) +void MediaResource::ForwardBufferUpdateToDemuxerHost(base::TimeDelta time) { + // Only implemented by MediaUrlDemuxer, for the MediaPlayerRendererClient. + NOTREACHED(); +} +#endif + } // namespace media diff --git a/media/base/media_resource.h b/media/base/media_resource.h index 90d278c..f7c2287 100644 --- a/media/base/media_resource.h +++ b/media/base/media_resource.h @@ -64,6 +64,10 @@ class MEDIA_EXPORT MediaResource { // This method could be refactored if WMPI was aware of the concrete type of // Demuxer* it is dealing with. virtual void ForwardDurationChangeToDemuxerHost(base::TimeDelta duration); + +#if defined(TIZEN_MULTIMEDIA) + virtual void ForwardBufferUpdateToDemuxerHost(base::TimeDelta time); +#endif }; } // namespace media diff --git a/media/base/media_url_demuxer.cc b/media/base/media_url_demuxer.cc index 180887a..029bdd4 100644 --- a/media/base/media_url_demuxer.cc +++ b/media/base/media_url_demuxer.cc @@ -48,6 +48,14 @@ void MediaUrlDemuxer::ForwardDurationChangeToDemuxerHost( host_->SetDuration(duration); } +#if defined(TIZEN_MULTIMEDIA) +void MediaUrlDemuxer::ForwardBufferUpdateToDemuxerHost(base::TimeDelta time) { + Ranges buffered; + buffered.Add(base::Milliseconds(0), time); + host_->OnBufferedTimeRangesChanged(buffered); +} +#endif + void MediaUrlDemuxer::Initialize(DemuxerHost* host, PipelineStatusCallback status_cb) { DVLOG(1) << __func__; diff --git a/media/base/media_url_demuxer.h b/media/base/media_url_demuxer.h index f4c721a..b420105 100644 --- a/media/base/media_url_demuxer.h +++ b/media/base/media_url_demuxer.h @@ -54,6 +54,9 @@ class MEDIA_EXPORT MediaUrlDemuxer : public Demuxer { const MediaUrlParams& GetMediaUrlParams() const override; MediaResource::Type GetType() const override; void ForwardDurationChangeToDemuxerHost(base::TimeDelta duration) override; +#if defined(TIZEN_MULTIMEDIA) + void ForwardBufferUpdateToDemuxerHost(base::TimeDelta time) override; +#endif // Demuxer interface. std::string GetDisplayName() const override; diff --git a/media/mojo/mojom/renderer_extensions.mojom b/media/mojo/mojom/renderer_extensions.mojom index e750c7d..2d66c33 100644 --- a/media/mojo/mojom/renderer_extensions.mojom +++ b/media/mojo/mojom/renderer_extensions.mojom @@ -24,6 +24,9 @@ interface MediaPlayerRendererClientExtension { OnDurationChange(mojo_base.mojom.TimeDelta duration); [EnableIf=tizen_multimedia] + OnBufferUpdate(mojo_base.mojom.TimeDelta time); + + [EnableIf=tizen_multimedia] OnNewFrameAvailable(uint32 playerId, mojo_base.mojom.UnsafeSharedMemoryRegion frame, uint32 size, diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc index e136260..f31d3a4 100644 --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc @@ -858,6 +858,16 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type, loaded_url_ = GURL(url); load_type_ = load_type; +#if defined(TIZEN_MULTIMEDIA) + // |MediaUrlDemuxer| will be created if |IsHbbTV| function returns true. In + // this case, |demuxer_override_| is not null. (i.e, |demuxer_override_| is + // allocated only for hbbtv case.) Even if hbbtv case, default MM path should + // be used for MSE contents. Only ME HbbTV contents will use + // |MediaUrlDemuxer| according to this condition. + if (demuxer_override_ && load_type != kLoadTypeURL) + demuxer_override_.release(); +#endif + ReportMetrics(load_type, loaded_url_, *frame_, media_log_.get()); // Set subresource URL for crash reporting; will be truncated to 256 bytes. @@ -2245,6 +2255,12 @@ bool WebMediaPlayerImpl::CanPlayThrough() { return true; if (chunk_demuxer_) return true; +#if defined(TIZEN_MULTIMEDIA) + if (demuxer_override_) { + // TODO : Need to check buffered status + return true; + } +#endif if (data_source_ && data_source_->AssumeFullyBuffered()) return true; // If we're not currently downloading, we have as much buffer as diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc index 8888c69..35b74aa 100644 --- a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc @@ -23,12 +23,15 @@ #include "media/base/renderer_client.h" #include "media/base/video_decoder_config.h" #include "tizen_src/chromium_impl/content/browser/media/media_player_renderer_web_contents_observer.h" +#include "tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.h" #include "tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h" +#include "tizen_src/chromium_impl/media/filters/media_player_tizen.h" namespace content { class TizenRendererImpl::RendererClientInternal final - : public media::RendererClient { + : public media::RendererClient, + public media::MediaPlayerTizenClientExtension { public: RendererClientInternal(media::DemuxerStream::Type type, TizenRendererImpl* renderer) @@ -84,6 +87,29 @@ class TizenRendererImpl::RendererClientInternal final renderer_->OnVideoFrameRateChange(fps); } + // MediaPlayerTizenClientExtension implementation + void OnVideoSizeChange(const gfx::Size& size) override { + renderer_->OnVideoSizeChange(size); + } + + void OnDurationChange(base::TimeDelta duration) override { + renderer_->OnDurationChange(duration); + } + + void OnBufferUpdate(base::TimeDelta time) override { + renderer_->OnBufferUpdate(time); + } + + void OnNewFrameAvailable(uint32_t playerId, + base::UnsafeSharedMemoryRegion frame, + uint32_t size, + base::TimeDelta timestamp, + uint32_t width, + uint32_t height) override { + renderer_->OnNewFrameAvailable(playerId, std::move(frame), size, timestamp, + width, height); + } + private: media::DemuxerStream::Type type_; TizenRendererImpl* renderer_; @@ -142,11 +168,25 @@ TizenRendererImpl::~TizenRendererImpl() { weak_factory_.InvalidateWeakPtrs(); - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Release(); + if (GetPlayer()) { + GetPlayer()->Release(); + + // TODO(yg48.jung) : Currently |EsppPlayer| is singelton. |media_player_| + // will be changed as |std::unique_ptr| type later. + if (media_player_ != + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()) + delete media_player_; + media_player_ = nullptr; + } + if (web_contents_observer_) web_contents_observer_->RemoveMediaPlayerRenderer(this); } +media::MediaPlayerTizen* TizenRendererImpl::GetPlayer() { + return media_player_; +} + void TizenRendererImpl::Initialize(media::MediaResource* media_resource, media::RendererClient* client, media::PipelineStatusCallback init_cb) { @@ -160,45 +200,53 @@ void TizenRendererImpl::Initialize(media::MediaResource* media_resource, init_cb_ = std::move(init_cb); media_resource_ = media_resource; - if (!media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() - ->CreatePlayer()) { + if (media_resource_->GetType() == media::MediaResource::STREAM) { + media_player_ = + media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer(); + } else { + media_player_ = new media::MediaPlayerBridgeCapiAdapter( + media_resource->GetMediaUrlParams().media_url, volume_); + } + + if (!GetPlayer()->CreatePlayer()) { std::move(init_cb_).Run(media::PIPELINE_ERROR_INITIALIZATION_FAILED); return; } // TODO: return unsupported error for CDM. std::move(init_cb_).Run(media::PIPELINE_OK); - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetTaskRunner( - task_runner_.get()); + GetPlayer()->SetTaskRunner(task_runner_.get()); } void TizenRendererImpl::SetStreamInfo() { + if (media_resource_->GetType() == media::MediaResource::URL) { + video_renderer_client_ = std::make_unique( + media::DemuxerStream::VIDEO, this); + GetPlayer()->SetStreamInfo(media::DemuxerStream::VIDEO, 0, + video_renderer_client_.get()); + GetPlayer()->SetRendererClientExtension(video_renderer_client_.get()); + return; + } + audio_stream_ = media_resource_->GetFirstStream(media::DemuxerStream::AUDIO); if (audio_stream_) { audio_renderer_client_ = std::make_unique( media::DemuxerStream::AUDIO, this); - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetStreamInfo( - media::DemuxerStream::AUDIO, audio_stream_, - audio_renderer_client_.get()); + GetPlayer()->SetStreamInfo(media::DemuxerStream::AUDIO, audio_stream_, + audio_renderer_client_.get()); } video_stream_ = media_resource_->GetFirstStream(media::DemuxerStream::VIDEO); if (video_stream_) { video_renderer_client_ = std::make_unique( media::DemuxerStream::VIDEO, this); - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetStreamInfo( - media::DemuxerStream::VIDEO, video_stream_, - video_renderer_client_.get()); -#if defined(TIZEN_TBM_SUPPORT) - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() - ->SetFrameAvailableCallback( - base::BindRepeating(&TizenRendererImpl::OnNewTbmFrameAvailable, - base::Unretained(this))); -#else + GetPlayer()->SetStreamInfo(media::DemuxerStream::VIDEO, video_stream_, + video_renderer_client_.get()); + + // Will be removed later by using |ClientExtention| interface. media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() ->SetFrameAvailableCallback(base::BindRepeating( &TizenRendererImpl::OnNewFrameAvailable, base::Unretained(this))); -#endif } } @@ -251,37 +299,34 @@ void TizenRendererImpl::Flush(base::OnceClosure flush_cb) { flush_cb_ = std::move(flush_cb); state_ = STATE_FLUSHING; - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Flush( - std::move(flush_cb)); + GetPlayer()->Flush(std::move(flush_cb)); } void TizenRendererImpl::Seek(base::TimeDelta time) { LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " time : " << time.InMicroseconds(); - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Seek(time); + GetPlayer()->Seek(time); } void TizenRendererImpl::StartPlayingFrom(base::TimeDelta time) { LOG(INFO) << "(" << static_cast(this) << ") " << __func__ << " time : " << time.InMicroseconds(); + DCHECK(GetPlayer()); DCHECK(task_runner_->BelongsToCurrentThread()); TRACE_EVENT1("media", "TizenRendererImpl::StartPlayingFrom", "time_us", time.InMicroseconds()); - if (!media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() - ->IsInitialized()) - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Initialize( - sink_); + if (!GetPlayer()->IsInitialized()) + GetPlayer()->Initialize(sink_); - if (!media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() - ->IsPrepared()) { + if (!GetPlayer()->IsPrepared()) { SetStreamInfo(); SetPlayerVolume(); - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Prepare(); + GetPlayer()->Prepare(); } state_ = STATE_INITIALIZING; - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Seek(time); + GetPlayer()->Seek(time); state_ = STATE_PLAYING; } @@ -298,12 +343,12 @@ void TizenRendererImpl::SetPlaybackRate(double playback_rate) { playback_rate_ = playback_rate; // TODO: Random error is observed on TM1. - // MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetRate(playback_rate_); + // EsppPlayer::GetEsppPlayer()->SetRate(playback_rate_); if (playback_rate > 0) - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Play(); + GetPlayer()->Play(); else - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->Pause(); + GetPlayer()->Pause(); } void TizenRendererImpl::SetVolume(float volume) { @@ -313,17 +358,18 @@ void TizenRendererImpl::SetVolume(float volume) { return; volume_ = volume; - SetPlayerVolume(); + + // |SetVolume| could be called before initializing. + if (GetPlayer()) + SetPlayerVolume(); } -void TizenRendererImpl::SetPlayerVolume() const { - media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer()->SetVolume( - volume_); +void TizenRendererImpl::SetPlayerVolume() { + GetPlayer()->SetVolume(volume_); } base::TimeDelta TizenRendererImpl::GetMediaTime() { - return media::MediaPlayerESPlusPlayer::GetMediaPlayerESPlusPlayer() - ->GetCurrentTime(); + return GetPlayer()->GetCurrentTime(); } void TizenRendererImpl::OnSelectedVideoTracksChanged( @@ -377,7 +423,7 @@ void TizenRendererImpl::OnVideoConfigChange( } void TizenRendererImpl::OnVideoNaturalSizeChange(const gfx::Size& size) { - NOTIMPLEMENTED(); + client_->OnVideoNaturalSizeChange(size); } void TizenRendererImpl::OnVideoOpacityChange(bool opaque) { @@ -393,4 +439,16 @@ void TizenRendererImpl::InitiateScopedSurfaceRequest( NOTIMPLEMENTED(); } +void TizenRendererImpl::OnVideoSizeChange(const gfx::Size& size) { + client_extension_->OnVideoSizeChange(size); +} + +void TizenRendererImpl::OnDurationChange(base::TimeDelta duration) { + client_extension_->OnDurationChange(duration); +} + +void TizenRendererImpl::OnBufferUpdate(base::TimeDelta time) { + client_extension_->OnBufferUpdate(time); +} + } // namespace content diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h index 6c26839..f7c469f 100644 --- a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h @@ -86,6 +86,11 @@ class CONTENT_EXPORT TizenRendererImpl // Should be removed. void Seek(base::TimeDelta time); + // Proxy functions for MediaPlayerRendererClientExtension + void OnVideoSizeChange(const gfx::Size& size); + void OnDurationChange(base::TimeDelta duration); + void OnBufferUpdate(base::TimeDelta time); + void OnNewFrameAvailable(uint32_t playerId, base::UnsafeSharedMemoryRegion frame, uint32_t size, @@ -108,7 +113,7 @@ class CONTENT_EXPORT TizenRendererImpl }; void SetStreamInfo(); - void SetPlayerVolume() const; + void SetPlayerVolume(); void OnRendererEnded(); void OnError(media::PipelineStatus error); void OnStatisticsUpdate(const media::PipelineStatistics& stats); @@ -121,6 +126,8 @@ class CONTENT_EXPORT TizenRendererImpl void OnVideoOpacityChange(bool opaque); void OnVideoFrameRateChange(absl::optional fps); + media::MediaPlayerTizen* GetPlayer(); + media::RendererClient* client_; State state_; @@ -147,6 +154,7 @@ class CONTENT_EXPORT TizenRendererImpl media::DemuxerStream* audio_stream_; media::DemuxerStream* video_stream_; + media::MediaPlayerTizen* media_player_ = nullptr; double volume_ = kDefaultVolume; double playback_rate_ = 0.0; diff --git a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc index 26b405b..4756451 100644 --- a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc +++ b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.cc @@ -127,4 +127,11 @@ void MediaPlayerRendererClient::OnNewFrameAvailable( sink_->PaintSingleFrame(std::move(video_frame)); } +#if defined(TIZEN_MULTIMEDIA) +void MediaPlayerRendererClient::OnBufferUpdate(base::TimeDelta time) { + DCHECK(media_task_runner_->BelongsToCurrentThread()); + media_resource_->ForwardBufferUpdateToDemuxerHost(time); +} +#endif + } // namespace content diff --git a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h index b7e9e87..930fbb6 100644 --- a/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h +++ b/tizen_src/chromium_impl/content/renderer/media/tizen/media_player_renderer_client.h @@ -60,6 +60,9 @@ class CONTENT_EXPORT MediaPlayerRendererClient // media::mojom::MediaPlayerRendererClientExtension implementation void OnDurationChange(base::TimeDelta duration) override; void OnVideoSizeChange(const gfx::Size& size) override; +#if defined(TIZEN_MULTIMEDIA) + void OnBufferUpdate(base::TimeDelta time) override; +#endif void OnNewFrameAvailable(uint32_t playerId, base::UnsafeSharedMemoryRegion frame, uint32_t size, diff --git a/tizen_src/chromium_impl/media/base/efl/media_player_efl.cc b/tizen_src/chromium_impl/media/base/efl/media_player_efl.cc index 8263549..cab7c00 100644 --- a/tizen_src/chromium_impl/media/base/efl/media_player_efl.cc +++ b/tizen_src/chromium_impl/media/base/efl/media_player_efl.cc @@ -6,6 +6,8 @@ #include +#include "base/logging.h" +#include "base/process/process_handle.h" #include "content/public/browser/browser_thread.h" #include "media/base/efl/media_player_manager_efl.h" #include "media/base/efl/media_player_util_efl.h" @@ -13,14 +15,17 @@ namespace media { -MediaPlayerEfl::MediaPlayerEfl(int player_id, - MediaPlayerManager* manager) - : width_(0), height_(0), player_id_(player_id), suspended_(false), +MediaPlayerEfl::MediaPlayerEfl(int player_id, MediaPlayerManager* manager) + : width_(0), + height_(0), + player_id_(player_id), + suspended_(false), manager_(manager) {} -#if defined(TIZEN_TBM_SUPPORT) void MediaPlayerEfl::DeliverMediaPacket(ScopedMediaPacket packet) { - tbm_surface_info_s suf_info = {0, }; + tbm_surface_info_s suf_info = { + 0, + }; tbm_surface_h tbm_surface = nullptr; if (MEDIA_PACKET_ERROR_NONE != @@ -39,34 +44,38 @@ void MediaPlayerEfl::DeliverMediaPacket(ScopedMediaPacket packet) { width_ = static_cast(suf_info.width); height_ = static_cast(suf_info.height); - manager()->OnMediaDataChange( - GetPlayerId(), width_, height_, MEDIA_VIDEO_MASK); + manager()->OnMediaDataChange(GetPlayerId(), width_, height_, + MEDIA_VIDEO_MASK); } // TODO(max): Need to check if we can use "media_packet_get_pts" instead of // generating a new timestamp in here. - base::TimeDelta timestamp = - base::TimeDelta::FromSecondsD(GetCurrentTime()); + base::TimeDelta timestamp = base::Seconds(GetCurrentTime()); -#if defined(TIZEN_MULTIMEDIA_ZEROCOPY_SUPPORT) - gfx::TbmBufferHandle tbm_handle = { tbm_surface, packet.release() }; +#if defined(TIZEN_TBM_SUPPORT) + gfx::TbmBufferHandle tbm_handle; + tbm_handle.tbm_surface = reinterpret_cast(tbm_surface); + tbm_handle.media_packet = reinterpret_cast(packet.release()); manager()->OnNewTbmBufferAvailable(GetPlayerId(), tbm_handle, timestamp); #else - base::SharedMemory shared_memory; - uint32 shared_memory_size = suf_info.size; - if (!shared_memory.CreateAndMapAnonymous(shared_memory_size)) { - LOG(ERROR) << "Shared Memory creation failed."; + base::UnsafeSharedMemoryRegion shared_memory; + base::WritableSharedMemoryMapping memory_mapping; + uint32_t shared_memory_size = + suf_info.planes[0].size + (suf_info.planes[0].size / 2); + shared_memory = base::UnsafeSharedMemoryRegion::Create(shared_memory_size); + if (!shared_memory.IsValid()) { + LOG(ERROR) << "Shared Memory creation failed. Player " << GetPlayerId(); return; } - base::SharedMemoryHandle foreign_memory_handle; - if (!shared_memory.ShareToProcess(base::GetCurrentProcessHandle(), - &foreign_memory_handle)) { - LOG(ERROR) << "Shared Memory handle could not be obtained"; + memory_mapping = shared_memory.Map(); + if (!memory_mapping.IsValid()) { + LOG(ERROR) << "Shared Memory handle could not be obtained. Player " + << GetPlayerId(); return; } - unsigned char* y_ptr = static_cast(shared_memory.memory()); + unsigned char* y_ptr = static_cast(memory_mapping.memory()); // Video format will always be converted to I420 switch (suf_info.format) { @@ -75,22 +84,21 @@ void MediaPlayerEfl::DeliverMediaPacket(ScopedMediaPacket packet) { unsigned char* v_ptr = u_ptr + (suf_info.planes[0].size * 5 / 4); libyuv::NV12ToI420(suf_info.planes[0].ptr, suf_info.planes[0].stride, suf_info.planes[1].ptr, suf_info.planes[1].stride, - y_ptr, suf_info.planes[0].stride, - u_ptr, suf_info.planes[1].stride / 2, - v_ptr, suf_info.planes[1].stride / 2, - suf_info.width, suf_info.height); + y_ptr, suf_info.planes[0].stride, u_ptr, + suf_info.planes[1].stride / 2, v_ptr, + suf_info.planes[1].stride / 2, suf_info.width, + suf_info.height); break; } case TBM_FORMAT_YUV420: { unsigned char* u_ptr = y_ptr + suf_info.planes[0].size; unsigned char* v_ptr = u_ptr + suf_info.planes[1].size; - libyuv::I420Copy(suf_info.planes[0].ptr, suf_info.planes[0].stride, - suf_info.planes[1].ptr, suf_info.planes[1].stride, - suf_info.planes[2].ptr, suf_info.planes[2].stride, - y_ptr, suf_info.planes[0].stride, - u_ptr, suf_info.planes[1].stride, - v_ptr, suf_info.planes[2].stride, - suf_info.width, suf_info.height); + libyuv::I420Copy( + suf_info.planes[0].ptr, suf_info.planes[0].stride, + suf_info.planes[1].ptr, suf_info.planes[1].stride, + suf_info.planes[2].ptr, suf_info.planes[2].stride, y_ptr, + suf_info.planes[0].stride, u_ptr, suf_info.planes[1].stride, v_ptr, + suf_info.planes[2].stride, suf_info.width, suf_info.height); break; } default: { @@ -99,25 +107,25 @@ void MediaPlayerEfl::DeliverMediaPacket(ScopedMediaPacket packet) { return; } } - manager()->OnNewFrameAvailable( - GetPlayerId(), foreign_memory_handle, shared_memory_size, timestamp); + + manager()->OnNewFrameAvailable(GetPlayerId(), std::move(shared_memory), + shared_memory_size, timestamp); #endif } -#endif void MediaPlayerEfl::OnMediaError(MediaError err) { blink::WebMediaPlayer::NetworkState state = - blink::WebMediaPlayer::NetworkStateEmpty; + blink::WebMediaPlayer::kNetworkStateEmpty; switch (err) { case MEDIA_ERROR_FORMAT: - state = blink::WebMediaPlayer::NetworkStateFormatError; + state = blink::WebMediaPlayer::kNetworkStateFormatError; break; case MEDIA_ERROR_DECODE: - state = blink::WebMediaPlayer::NetworkStateDecodeError; + state = blink::WebMediaPlayer::kNetworkStateDecodeError; break; case MEDIA_ERROR_NETWORK: - state = blink::WebMediaPlayer::NetworkStateNetworkError; + state = blink::WebMediaPlayer::kNetworkStateNetworkError; break; } diff --git a/tizen_src/chromium_impl/media/base/efl/media_player_efl.h b/tizen_src/chromium_impl/media/base/efl/media_player_efl.h index 901a1c1..f2ea9ab 100644 --- a/tizen_src/chromium_impl/media/base/efl/media_player_efl.h +++ b/tizen_src/chromium_impl/media/base/efl/media_player_efl.h @@ -79,16 +79,11 @@ class MEDIA_EXPORT MediaPlayerEfl { protected: explicit MediaPlayerEfl(int player_id, MediaPlayerManager* manager); - MediaPlayerEfl(const MediaPlayerEfl&) = delete; - MediaPlayerEfl& operator=(const MediaPlayerEfl&) = delete; - // Release the player resources. virtual void Release() = 0; MediaPlayerManager* manager() { return manager_; } -#if defined(TIZEN_TBM_SUPPORT) void DeliverMediaPacket(ScopedMediaPacket packet); -#endif virtual void OnMediaError(MediaError error_type); int width_; diff --git a/tizen_src/chromium_impl/media/base/efl/media_player_manager_efl.h b/tizen_src/chromium_impl/media/base/efl/media_player_manager_efl.h index 7a66b92..b670084 100644 --- a/tizen_src/chromium_impl/media/base/efl/media_player_manager_efl.h +++ b/tizen_src/chromium_impl/media/base/efl/media_player_manager_efl.h @@ -7,12 +7,13 @@ #include -#include "base/memory/shared_memory.h" #include "media/base/efl/media_player_efl.h" -#include "third_party/blink/public/platform/WebMediaPlayer.h" +#include "third_party/blink/public/platform/web_media_player.h" #if defined(TIZEN_TBM_SUPPORT) -#include "ui/gfx/gpu_memory_buffer.h" +#include "ui/gfx/tbm_buffer_handle.h" +#else +#include "base/memory/unsafe_shared_memory_region.h" #endif namespace media { @@ -25,29 +26,33 @@ class MEDIA_EXPORT MediaPlayerManager { virtual MediaPlayerEfl* GetPlayer(int player_id) = 0; virtual void OnTimeChanged(int player_id) = 0; - virtual void OnTimeUpdate(int player_id, double current_time) = 0; - virtual void OnRequestSeek(int player_id, double seek_time) = 0; - virtual void OnPauseStateChange(int player_id, bool state) = 0; - virtual void OnSeekStateChange(int player_id, bool state) = 0; + virtual void OnTimeUpdate(int player_id, double current_time) = 0; + virtual void OnRequestSeek(int player_id, double seek_time) = 0; + virtual void OnPauseStateChange(int player_id, bool state) = 0; + virtual void OnSeekStateChange(int player_id, bool state) = 0; virtual void OnBufferUpdate( int player_id, std::vector buffer_range) = 0; - virtual void OnDurationChange(int player_id, double duration) = 0; + virtual void OnDurationChange(int player_id, double duration) = 0; virtual void OnReadyStateChange(int player_id, blink::WebMediaPlayer::ReadyState state) = 0; virtual void OnNetworkStateChange( - int player_id, blink::WebMediaPlayer::NetworkState state) = 0; - virtual void OnMediaDataChange(int player_id, int width, - int height, int media) = 0; - virtual void OnNewFrameAvailable( int player_id, - base::SharedMemoryHandle handle, - uint32_t length, - base::TimeDelta timestamp) = 0; + blink::WebMediaPlayer::NetworkState state) = 0; + virtual void OnMediaDataChange(int player_id, + int width, + int height, + int media) = 0; + #if defined(TIZEN_TBM_SUPPORT) - virtual void OnNewTbmBufferAvailable( - int player_id, gfx::TbmBufferHandle tbm_handle, - base::TimeDelta timestamp) = 0; + virtual void OnNewTbmBufferAvailable(int player_id, + gfx::TbmBufferHandle tbm_handle, + base::TimeDelta timestamp) = 0; +#else + virtual void OnNewFrameAvailable(int player_id, + base::UnsafeSharedMemoryRegion shm_region, + uint32_t length, + base::TimeDelta timestamp) = 0; #endif virtual void OnInitComplete(int player_id, bool success) = 0; virtual void OnResumeComplete(int player_id) = 0; diff --git a/tizen_src/chromium_impl/media/base/efl/media_player_util_efl.cc b/tizen_src/chromium_impl/media/base/efl/media_player_util_efl.cc index d2052c0..3655861 100644 --- a/tizen_src/chromium_impl/media/base/efl/media_player_util_efl.cc +++ b/tizen_src/chromium_impl/media/base/efl/media_player_util_efl.cc @@ -7,6 +7,8 @@ #include "base/logging.h" #include "base/time/time.h" +#include "tizen/system_info.h" + #include #include @@ -57,7 +59,7 @@ std::string GetErrorString(int player_error) { std::stringstream sstream; sstream << "PLAYER_ERROR_UNKNOWN(-0x" << std::abs(player_error) << ") " - << get_error_message(player_error); + << get_error_message(player_error); return sstream.str(); } @@ -81,13 +83,12 @@ void MediaPacketDeleter::operator()(media_packet_s* ptr) const { } double ConvertNanoSecondsToSeconds(int64_t time) { - return base::TimeDelta::FromMicroseconds( - time / - base::Time::kNanosecondsPerMicrosecond).InSecondsF(); + return base::Microseconds(time / base::Time::kNanosecondsPerMicrosecond) + .InSecondsF(); } double ConvertMilliSecondsToSeconds(int time) { - return base::TimeDelta::FromMilliseconds(time).InSecondsF(); + return base::Milliseconds(time).InSecondsF(); } double ConvertSecondsToMilliSeconds(double time) { @@ -96,7 +97,7 @@ double ConvertSecondsToMilliSeconds(double time) { time = 0; } - return base::TimeDelta::FromSecondsD(time).InMillisecondsF(); + return base::Seconds(time).InMillisecondsF(); } GURL GetCleanURL(std::string url) { @@ -115,18 +116,22 @@ void WakeUpDisplayAndAcquireDisplayLock() { if (!IsMobileProfile() && !IsWearableProfile()) return; +#if !defined(EWK_BRINGUP) if (device_power_wakeup(false) != DEVICE_ERROR_NONE) LOG(ERROR) << "|device_power_wakeup| request failed"; if (device_power_request_lock(POWER_LOCK_DISPLAY, 0) != DEVICE_ERROR_NONE) LOG(ERROR) << "|device_power_request_lock| request failed"; +#endif } void ReleaseDisplayLock() { if (!IsMobileProfile() && !IsWearableProfile()) return; +#if !defined(EWK_BRINGUP) if (device_power_release_lock(POWER_LOCK_DISPLAY) != DEVICE_ERROR_NONE) LOG(ERROR) << "|device_power_release_lock| request failed"; +#endif } } // namespace media diff --git a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc index 96c7ed7..c693f64 100644 --- a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc +++ b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc @@ -8,7 +8,7 @@ #include "base/logging.h" #include "base/strings/string_util.h" -#include "base/thread_task_runner_handle.h" +#include "base/threading/thread_task_runner_handle.h" #include "build/tizen_version.h" #include "media/base/efl/media_player_manager_efl.h" #include "media/base/efl/media_player_util_efl.h" @@ -96,17 +96,21 @@ static void InterruptCb(player_interrupted_code_e code, void* data) { namespace media { -//static -MediaPlayerEfl* MediaPlayerEfl::CreatePlayer( - int player_id, const GURL& url, double volume, - MediaPlayerManager* manager, const std::string& ua) { +// static +MediaPlayerEfl* MediaPlayerEfl::CreatePlayer(int player_id, + const GURL& url, + double volume, + MediaPlayerManager* manager, + const std::string& ua) { LOG(INFO) << "MediaElement is using |CAPI| to play media"; return new MediaPlayerBridgeCapi(player_id, url, volume, manager, ua); } -MediaPlayerBridgeCapi::MediaPlayerBridgeCapi( - int player_id, const GURL& url, double volume, - MediaPlayerManager* manager, const std::string& user_agent) +MediaPlayerBridgeCapi::MediaPlayerBridgeCapi(int player_id, + const GURL& url, + double volume, + MediaPlayerManager* manager, + const std::string& user_agent) : MediaPlayerEfl(player_id, manager), task_runner_(base::ThreadTaskRunnerHandle::Get()), player_(NULL), @@ -146,19 +150,20 @@ void MediaPlayerBridgeCapi::Prepare(CompleteCB cb) { if (url_.SchemeIsFile()) is_file_url_ = true; - complete_callback_ = cb; + complete_callback_ = std::move(cb); player_set_uri(player_, url_.spec().c_str()); +#if !defined(EWK_BRINGUP) player_set_sound_type(player_, SOUND_TYPE_MEDIA); +#endif player_set_volume(player_, static_cast(volume_), static_cast(volume_)); - if (player_set_streaming_user_agent( - player_, - user_agent_.c_str(), - user_agent_.length()) != PLAYER_ERROR_NONE) - LOG(ERROR) << "Unable to set streaming user agent."; + if (player_set_streaming_user_agent(player_, user_agent_.c_str(), + user_agent_.length()) != + PLAYER_ERROR_NONE) + LOG(ERROR) << "Unable to set streaming user agent."; ret = player_set_media_packet_video_frame_decoded_cb( - player_, MediaPacketDecodedCb, this); + player_, MediaPacketDecodedCb, this); if (ret != PLAYER_ERROR_NONE) { OnHandlePlayerError(ret, FROM_HERE); RunCompleteCB(false, FROM_HERE); @@ -176,9 +181,9 @@ void MediaPlayerBridgeCapi::Prepare(CompleteCB cb) { RunCompleteCB(false, FROM_HERE); } else { manager()->OnReadyStateChange( - GetPlayerId(), blink::WebMediaPlayer::ReadyStateHaveNothing); + GetPlayerId(), blink::WebMediaPlayer::kReadyStateHaveNothing); manager()->OnNetworkStateChange( - GetPlayerId(), blink::WebMediaPlayer::NetworkStateLoading); + GetPlayerId(), blink::WebMediaPlayer::kNetworkStateLoading); } } @@ -219,9 +224,9 @@ void MediaPlayerBridgeCapi::Suspend() { // otherwise we will never be able to play such video. if (!is_initialized_) { manager()->OnReadyStateChange( - GetPlayerId(), blink::WebMediaPlayer::ReadyStateHaveEnoughData); - manager()->OnNetworkStateChange( - GetPlayerId(), blink::WebMediaPlayer::NetworkStateLoaded); + GetPlayerId(), blink::WebMediaPlayer::kReadyStateHaveEnoughData); + manager()->OnNetworkStateChange(GetPlayerId(), + blink::WebMediaPlayer::kNetworkStateLoaded); is_initialized_ = true; } @@ -244,7 +249,7 @@ void MediaPlayerBridgeCapi::Release() { if (GetPlayerState() > PLAYER_STATE_IDLE && player_unprepare(player_) != PLAYER_ERROR_NONE) - LOG(ERROR) << "|player_unprepare| failed"; + LOG(ERROR) << "|player_unprepare| failed"; manager()->OnSuspendComplete(GetPlayerId()); } @@ -346,9 +351,8 @@ void MediaPlayerBridgeCapi::Seek(const double time) { return; } - int err = player_set_play_position(player_, - ConvertSecondsToMilliSeconds(time), - true, SeekCompletedCb, this); + int err = player_set_play_position( + player_, ConvertSecondsToMilliSeconds(time), true, SeekCompletedCb, this); if (err != PLAYER_ERROR_NONE) { LOG(ERROR) << "|player_set_play_position| failed"; @@ -455,9 +459,8 @@ void MediaPlayerBridgeCapi::OnCurrentTimeUpdateTimerFired() { void MediaPlayerBridgeCapi::StartCurrentTimeUpdateTimer() { if (!current_time_update_timer_.IsRunning()) { current_time_update_timer_.Start( - FROM_HERE, - base::TimeDelta::FromMilliseconds(kDurationUpdateInterval), - this, &MediaPlayerBridgeCapi::OnCurrentTimeUpdateTimerFired); + FROM_HERE, base::Milliseconds(kDurationUpdateInterval), this, + &MediaPlayerBridgeCapi::OnCurrentTimeUpdateTimerFired); } } @@ -468,12 +471,12 @@ void MediaPlayerBridgeCapi::StopCurrentTimeUpdateTimer() { void MediaPlayerBridgeCapi::OnBufferingUpdateTimerFired() { int start = 0, current = 0; - if (player_get_streaming_download_progress( - player_, &start, ¤t) == PLAYER_ERROR_NONE) { + if (player_get_streaming_download_progress(player_, &start, ¤t) == + PLAYER_ERROR_NONE) { if (current == 100) { StopBufferingUpdateTimer(); manager()->OnNetworkStateChange( - GetPlayerId(), blink::WebMediaPlayer::NetworkStateLoaded); + GetPlayerId(), blink::WebMediaPlayer::kNetworkStateLoaded); } std::vector buffer_range; media::MediaPlayerEfl::TimeRanges range; @@ -490,9 +493,8 @@ void MediaPlayerBridgeCapi::OnBufferingUpdateTimerFired() { void MediaPlayerBridgeCapi::StartBufferingUpdateTimer() { if (!buffering_update_timer_.IsRunning()) { buffering_update_timer_.Start( - FROM_HERE, - base::TimeDelta::FromMilliseconds(kDurationUpdateInterval), - this, &MediaPlayerBridgeCapi::OnBufferingUpdateTimerFired); + FROM_HERE, base::Milliseconds(kDurationUpdateInterval), this, + &MediaPlayerBridgeCapi::OnBufferingUpdateTimerFired); } } @@ -524,9 +526,8 @@ void MediaPlayerBridgeCapi::SeekCompleteUpdate() { if (is_play_pending_) { is_play_pending_ = false; - delayed_player_state_ = is_end_reached_ ? - PLAYER_STATE_DELAYED_NULL : - PLAYER_STATE_DELAYED_PLAY; + delayed_player_state_ = + is_end_reached_ ? PLAYER_STATE_DELAYED_NULL : PLAYER_STATE_DELAYED_PLAY; } ExecuteDelayedPlayerState(); @@ -548,9 +549,9 @@ void MediaPlayerBridgeCapi::PlayerPrepared() { } UpdateDuration(); manager()->OnReadyStateChange( - GetPlayerId(), blink::WebMediaPlayer::ReadyStateHaveEnoughData); - manager()->OnNetworkStateChange( - GetPlayerId(), blink::WebMediaPlayer::NetworkStateLoaded); + GetPlayerId(), blink::WebMediaPlayer::kReadyStateHaveEnoughData); + manager()->OnNetworkStateChange(GetPlayerId(), + blink::WebMediaPlayer::kNetworkStateLoaded); ExecuteDelayedPlayerState(); RunCompleteCB(true, FROM_HERE); } @@ -572,7 +573,7 @@ void MediaPlayerBridgeCapi::HandleBufferingStatus(int percent) { StartBufferingUpdateTimer(); manager()->OnReadyStateChange( - GetPlayerId(), blink::WebMediaPlayer::ReadyStateHaveEnoughData); + GetPlayerId(), blink::WebMediaPlayer::kReadyStateHaveEnoughData); } else { if (GetPlayerState() != PLAYER_STATE_PLAYING) return; @@ -583,20 +584,19 @@ void MediaPlayerBridgeCapi::HandleBufferingStatus(int percent) { StopCurrentTimeUpdateTimer(); manager()->OnReadyStateChange( - GetPlayerId(), blink::WebMediaPlayer::ReadyStateHaveCurrentData); + GetPlayerId(), blink::WebMediaPlayer::kReadyStateHaveCurrentData); } - manager()->OnNetworkStateChange( - GetPlayerId(), blink::WebMediaPlayer::NetworkStateLoading); + manager()->OnNetworkStateChange(GetPlayerId(), + blink::WebMediaPlayer::kNetworkStateLoading); } -void MediaPlayerBridgeCapi::RunCompleteCB( - bool success, - const tracked_objects::Location& from) { +void MediaPlayerBridgeCapi::RunCompleteCB(bool success, + const base::Location& from) { if (!success) LOG(ERROR) << __FUNCTION__ << " is called from : " << from.ToString(); if (!complete_callback_.is_null()) { - complete_callback_.Run(success); + std::move(complete_callback_).Run(success); complete_callback_.Reset(); } } @@ -609,15 +609,15 @@ player_state_e MediaPlayerBridgeCapi::GetPlayerState() { void MediaPlayerBridgeCapi::ExecuteDelayedPlayerState() { switch (delayed_player_state_) { - case PLAYER_STATE_DELAYED_PLAY : + case PLAYER_STATE_DELAYED_PLAY: delayed_player_state_ = PLAYER_STATE_DELAYED_NULL; Play(); break; - case PLAYER_STATE_DELAYED_PAUSE : + case PLAYER_STATE_DELAYED_PAUSE: delayed_player_state_ = PLAYER_STATE_DELAYED_NULL; Pause(false); break; - case PLAYER_STATE_DELAYED_SEEK : + case PLAYER_STATE_DELAYED_SEEK: delayed_player_state_ = PLAYER_STATE_DELAYED_NULL; Seek(pending_seek_duration_); break; @@ -631,7 +631,7 @@ void MediaPlayerBridgeCapi::OnMediaPacketUpdated(media_packet_h packet) { task_runner_->PostTask( FROM_HERE, base::BindOnce(&MediaPlayerBridgeCapi::DeliverMediaPacket, - weak_factory_.GetWeakPtr(), base::Passed(&packet_proxy))); + weak_factory_.GetWeakPtr(), std::move(packet_proxy))); } void MediaPlayerBridgeCapi::OnPlaybackCompleteUpdate() { @@ -659,8 +659,8 @@ void MediaPlayerBridgeCapi::OnHandleBufferingStatus(int percent) { } void MediaPlayerBridgeCapi::OnHandlePlayerError( - int player_error_code, const tracked_objects::Location& location) { - + int player_error_code, + const base::Location& location) { LOG(ERROR) << GetErrorString(player_error_code) << " from " << location.ToString(); diff --git a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h index e4f2d09..dd55516 100644 --- a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h +++ b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h @@ -7,9 +7,9 @@ #include +#include "base/location.h" #include "base/memory/weak_ptr.h" #include "base/timer/timer.h" -#include "base/tracked_objects.h" #include "content/public/browser/browser_message_filter.h" #include "media/base/efl/media_player_efl.h" #include "media/base/ranges.h" @@ -30,9 +30,6 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi : public MediaPlayerEfl { MediaPlayerBridgeCapi& operator=(const MediaPlayerBridgeCapi&) = delete; ~MediaPlayerBridgeCapi() override; - MediaPlayerBridgeCapi(const MediaPlayerBridgeCapi&) = delete; - MediaPlayerBridgeCapi& operator=(const MediaPlayerBridgeCapi&) = delete; - // MediaPlayerTizen implementation. void Initialize() override; void Resume() override; @@ -50,8 +47,7 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi : public MediaPlayerEfl { void OnSeekCompleteUpdate(); void OnPlayerPrepared(); void OnHandleBufferingStatus(int percent); - void OnHandlePlayerError(int player_error_code, - const tracked_objects::Location& loc); + void OnHandlePlayerError(int player_error_code, const base::Location& loc); void OnResumeComplete(bool success); void OnInitComplete(bool success); void OnMediaPacketUpdated(media_packet_h packet); @@ -81,7 +77,7 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi : public MediaPlayerEfl { void SeekCompleteUpdate(); void PlayerPrepared(); void HandleBufferingStatus(int percent); - void RunCompleteCB(bool success, const tracked_objects::Location& from); + void RunCompleteCB(bool success, const base::Location& from); player_state_e GetPlayerState(); private: @@ -111,6 +107,8 @@ class MEDIA_EXPORT MediaPlayerBridgeCapi : public MediaPlayerEfl { base::RepeatingTimer buffering_update_timer_; std::string user_agent_; + int media_type_; + // NOTE: Weak pointers must be invalidated before all other member variables. base::WeakPtrFactory weak_factory_; }; diff --git a/tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.cc b/tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.cc new file mode 100644 index 0000000..a122ed2 --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.cc @@ -0,0 +1,236 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.h" + +#include + +#include "base/logging.h" +#include "media/base/renderer_client.h" +#include "media/base/tizen/media_player_bridge_capi.h" + +namespace media { + +MediaPlayerBridgeCapiAdapter::MediaPlayerBridgeCapiAdapter(const GURL& url, + double volume) + : url_(url), volume_(volume) {} + +MediaPlayerBridgeCapiAdapter::~MediaPlayerBridgeCapiAdapter() {} + +bool MediaPlayerBridgeCapiAdapter::CreatePlayer() { + if (media_player_) + return true; + + // TODO: Get user agent string from caller + std::string user_agent = ""; + media_player_ = + media::MediaPlayerEfl::CreatePlayer(0, url_, volume_, this, user_agent); + return true; +} + +void MediaPlayerBridgeCapiAdapter::Initialize(VideoRendererSink* /*sink*/) { + media_player_->Initialize(); +} + +bool MediaPlayerBridgeCapiAdapter::IsInitialized() { + return is_initialized_; +} + +void MediaPlayerBridgeCapiAdapter::Prepare() { + // Prepare function is called internally. + is_prepared_ = true; +} + +bool MediaPlayerBridgeCapiAdapter::IsPrepared() { + return is_prepared_ && is_initialized_; +} + +void MediaPlayerBridgeCapiAdapter::Release() { + if (!media_player_) + return; + + delete media_player_; + media_player_ = nullptr; +} + +void MediaPlayerBridgeCapiAdapter::SetTaskRunner( + const scoped_refptr& task_runner) { + NOTIMPLEMENTED(); +} + +void MediaPlayerBridgeCapiAdapter::SetStreamInfo(DemuxerStream::Type /*type*/, + DemuxerStream* /*stream*/, + RendererClient* client) { + renderer_client_ = client; +} + +void MediaPlayerBridgeCapiAdapter::SetRendererClientExtension( + media::MediaPlayerTizenClientExtension* client_extension) { + client_extension_ = client_extension; +} + +void MediaPlayerBridgeCapiAdapter::Play() { + media_player_->Play(); +} + +void MediaPlayerBridgeCapiAdapter::Pause(bool is_media_related_action) { + media_player_->Pause(is_media_related_action); +} + +void MediaPlayerBridgeCapiAdapter::SetRate(double rate) { + media_player_->SetRate(rate); +} + +void MediaPlayerBridgeCapiAdapter::Seek(base::TimeDelta time) { + media_player_->Seek(time.InSecondsF()); +} + +void MediaPlayerBridgeCapiAdapter::Flush(base::OnceClosure flush_cb) { + std::move(flush_cb).Run(); +} + +void MediaPlayerBridgeCapiAdapter::SetVolume(double volume) { + media_player_->SetVolume(volume); +} + +base::TimeDelta MediaPlayerBridgeCapiAdapter::GetCurrentTime() { + return base::Seconds(media_player_->GetCurrentTime()); +} + +void MediaPlayerBridgeCapiAdapter::SetFrameAvailableCallback( + const DataRequestCB& datacb) { + NOTIMPLEMENTED(); +} + +MediaPlayerEfl* MediaPlayerBridgeCapiAdapter::GetPlayer(int player_id) { + return media_player_; +} + +void MediaPlayerBridgeCapiAdapter::OnTimeChanged(int player_id) {} + +void MediaPlayerBridgeCapiAdapter::OnTimeUpdate(int player_id, + double current_time) { + // Move to OnSeekStateChange? + renderer_client_->OnBufferingStateChange( + media::BUFFERING_HAVE_ENOUGH, media::BUFFERING_CHANGE_REASON_UNKNOWN); +} + +void MediaPlayerBridgeCapiAdapter::OnRequestSeek(int player_id, + double seek_time) { + NOTIMPLEMENTED(); +} + +void MediaPlayerBridgeCapiAdapter::OnPauseStateChange(int player_id, + bool state) { + NOTIMPLEMENTED(); +} + +void MediaPlayerBridgeCapiAdapter::OnSeekStateChange(int player_id, + bool state) { + NOTIMPLEMENTED(); +} + +void MediaPlayerBridgeCapiAdapter::OnBufferUpdate( + int player_id, + std::vector buffer_range) { + media::MediaPlayerEfl::TimeRanges range = buffer_range.at(0); + client_extension_->OnBufferUpdate(base::Microseconds(range.end)); +} + +void MediaPlayerBridgeCapiAdapter::OnDurationChange(int player_id, + double duration) { + client_extension_->OnDurationChange(base::Seconds(duration)); +} + +void MediaPlayerBridgeCapiAdapter::OnReadyStateChange( + int player_id, + blink::WebMediaPlayer::ReadyState state) { + media::BufferingState buffer_state; + media::BufferingStateChangeReason reason; + switch (state) { + case blink::WebMediaPlayer::kReadyStateHaveEnoughData: + case blink::WebMediaPlayer::kReadyStateHaveCurrentData: + buffer_state = media::BUFFERING_HAVE_ENOUGH; + reason = media::BUFFERING_CHANGE_REASON_UNKNOWN; + break; + case blink::WebMediaPlayer::kReadyStateHaveNothing: + // buffer_state = media::BUFFERING_HAVE_NOTHING; + // reason = media::DEMUXER_UNDERFLOW; + return; + default: + NOTREACHED(); + } + renderer_client_->OnBufferingStateChange(buffer_state, reason); +} + +void MediaPlayerBridgeCapiAdapter::OnNetworkStateChange( + int player_id, + blink::WebMediaPlayer::NetworkState state) {} + +void MediaPlayerBridgeCapiAdapter::OnMediaDataChange(int player_id, + int width, + int height, + int media) { + width_ = width; + height_ = height; + renderer_client_->OnVideoNaturalSizeChange(gfx::Size(width, height)); +} + +#if defined(TIZEN_TBM_SUPPORT) +void MediaPlayerBridgeCapiAdapter::DestroyMediaPacket(void* media_packet) { + if (MEDIA_PACKET_ERROR_NONE != + media_packet_destroy(static_cast(media_packet))) { + LOG(WARNING) << "Fail to release media_packet"; + } +} + +void MediaPlayerBridgeCapiAdapter::OnNewTbmBufferAvailable( + int player_id, + gfx::TbmBufferHandle tbm_handle, + base::TimeDelta timestamp) { + DCHECK(client_extension_); + + void* media_packet = reinterpret_cast(tbm_handle.media_packet); + tbm_handle.media_packet = reinterpret_cast(media_packet); + tbm_handle.player_handle = reinterpret_cast(this); + tbm_handle.width = width_; + tbm_handle.height = height_; + + client_extension_->OnNewTbmFrameAvailable(player_id, tbm_handle, timestamp); +} +#else +void MediaPlayerBridgeCapiAdapter::OnNewFrameAvailable( + int player_id, + base::UnsafeSharedMemoryRegion shm_region, + uint32_t length, + base::TimeDelta timestamp) { + NOTIMPLEMENTED(); +} +#endif + +#if defined(TIZEN_VIDEO_HOLE) +void MediaPlayerBridgeCapiAdapter::SetVideoHole(bool is_video_hole) { + NOTIMPLEMENTED(); +} + +void MediaPlayerBridgeCapiAdapter::SetMediaGeometry( + const gfx::Rect& viewport_rect, + const gfx::RectF& rect) { + NOTIMPLEMENTED(); +} +#endif + +void MediaPlayerBridgeCapiAdapter::OnInitComplete(int player_id, bool success) { + is_initialized_ = success; +} + +void MediaPlayerBridgeCapiAdapter::OnResumeComplete(int player_id) { + NOTIMPLEMENTED(); +} + +void MediaPlayerBridgeCapiAdapter::OnSuspendComplete(int player_id) { + NOTIMPLEMENTED(); +} + +} // namespace media diff --git a/tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.h b/tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.h new file mode 100644 index 0000000..3b348fe --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.h @@ -0,0 +1,121 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_BASE_TIZEN_MEDIA_PLAYER_BRIDGE_CAPI_ADAPTER_H_ +#define MEDIA_BASE_TIZEN_MEDIA_PLAYER_BRIDGE_CAPI_ADAPTER_H_ + +#include + +#include "base/memory/weak_ptr.h" +#include "base/task/single_thread_task_runner.h" +#include "base/time/time.h" +#include "media/base/ranges.h" +#include "media/base/video_renderer_sink.h" +#include "tizen_src/chromium_impl/media/base/efl/media_player_manager_efl.h" +#include "tizen_src/chromium_impl/media/filters/media_player_tizen.h" + +typedef struct media_packet_s* media_packet_h; + +namespace media { + +class DemuxerStream; +class MediaPlayerEfl; +class RendererClient; +class VideoRendererSink; + +class MEDIA_EXPORT MediaPlayerBridgeCapiAdapter : public MediaPlayerTizen, + public MediaPlayerManager { + public: + MediaPlayerBridgeCapiAdapter(const GURL& url, double volume); + ~MediaPlayerBridgeCapiAdapter() override; + + bool CreatePlayer() override; + void Initialize(VideoRendererSink* sink) override; + bool IsInitialized() override; + void Prepare() override; + bool IsPrepared() override; + void Release() override; + + void SetTaskRunner( + const scoped_refptr& task_runner) override; + + void SetStreamInfo(DemuxerStream::Type type, + DemuxerStream* stream, + RendererClient* client) override; + + void SetRendererClientExtension( + media::MediaPlayerTizenClientExtension* client_extension) override; + + void Play() override; + void Pause(bool is_media_related_action = false) override; + void SetRate(double rate) override; + void Seek(base::TimeDelta time) override; + void Flush(base::OnceClosure flush_cb) override; + void SetVolume(double volume) override; + base::TimeDelta GetCurrentTime() override; + + void SetFrameAvailableCallback(const DataRequestCB& datacb) override; + +#if defined(TIZEN_TBM_SUPPORT) + void DestroyMediaPacket(void* media_packet) override; +#endif + +#if defined(TIZEN_VIDEO_HOLE) + void SetVideoHole(bool is_video_hole) override; + void SetMediaGeometry(const gfx::Rect& viewport_rect, + const gfx::RectF& rect) override; +#endif + + // MediaPlayerManager + MediaPlayerEfl* GetPlayer(int player_id) override; + void OnTimeChanged(int player_id) override; + void OnTimeUpdate(int player_id, double current_time) override; + void OnRequestSeek(int player_id, double seek_time) override; + void OnPauseStateChange(int player_id, bool state) override; + void OnSeekStateChange(int player_id, bool state) override; + void OnBufferUpdate( + int player_id, + std::vector buffer_range) override; + void OnDurationChange(int player_id, double duration) override; + void OnReadyStateChange(int player_id, + blink::WebMediaPlayer::ReadyState state) override; + void OnNetworkStateChange(int player_id, + blink::WebMediaPlayer::NetworkState state) override; + void OnMediaDataChange(int player_id, + int width, + int height, + int media) override; + +#if defined(TIZEN_TBM_SUPPORT) + void OnNewTbmBufferAvailable(int player_id, + gfx::TbmBufferHandle tbm_handle, + base::TimeDelta timestamp) override; +#else + void OnNewFrameAvailable(int player_id, + base::UnsafeSharedMemoryRegion shm_region, + uint32_t length, + base::TimeDelta timestamp) override; +#endif + void OnInitComplete(int player_id, bool success) override; + void OnResumeComplete(int player_id) override; + void OnSuspendComplete(int player_id) override; + + private: + MediaPlayerEfl* media_player_ = nullptr; + RendererClient* renderer_client_ = nullptr; + MediaPlayerTizenClientExtension* client_extension_ = nullptr; + + GURL url_; + double volume_ = 1.0f; + + bool is_initialized_ = false; + bool is_prepared_ = false; + + int width_ = 0; + int height_ = 0; +}; + +} // namespace media + +#endif // MEDIA_BASE_TIZEN_MEDIA_PLAYER_BRIDGE_CAPI_ADAPTER_H_ diff --git a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc index ea6f04e..b5f83e3 100644 --- a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc +++ b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc @@ -222,6 +222,11 @@ void MediaPlayerESPlusPlayer::SetStreamInfo(DemuxerStream::Type type, InitializeStreamConfig(type); } +void MediaPlayerESPlusPlayer::SetRendererClientExtension( + media::MediaPlayerTizenClientExtension* client_extension) { + NOTIMPLEMENTED(); +} + void MediaPlayerESPlusPlayer::Prepare() { LOG(INFO) << "(" << static_cast(this) << ") " << __func__; if (is_prepared_ || is_preparing_) diff --git a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h index b6d22db..a557153 100644 --- a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h +++ b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h @@ -17,6 +17,7 @@ #include "tizen_src/chromium_impl/base/tizen/static_map.h" #include "tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h" #include "tizen_src/chromium_impl/media/filters/esplusplayer_util.h" +#include "tizen_src/chromium_impl/media/filters/media_player_tizen.h" namespace media { @@ -26,7 +27,7 @@ class RendererClient; using Queue = base::circular_deque>; // This class handles media source extensions for CAPI port. -class MEDIA_EXPORT MediaPlayerESPlusPlayer { +class MEDIA_EXPORT MediaPlayerESPlusPlayer : public MediaPlayerTizen { public: static MediaPlayerESPlusPlayer* GetMediaPlayerESPlusPlayer(); @@ -37,26 +38,32 @@ class MEDIA_EXPORT MediaPlayerESPlusPlayer { base::TimeDelta, uint32_t, uint32_t)>; - bool CreatePlayer(); - void Initialize(VideoRendererSink* sink); - bool IsInitialized(); - void Prepare(); - bool IsPrepared(); - void Release(); + bool CreatePlayer() override; + void Initialize(VideoRendererSink* sink) override; + bool IsInitialized() override; + void Prepare() override; + bool IsPrepared() override; + void Release() override; void SetTaskRunner( - const scoped_refptr& task_runner); + const scoped_refptr& task_runner) override; + void SetStreamInfo(DemuxerStream::Type type, DemuxerStream* stream, - RendererClient* client); + RendererClient* client) override; + + void SetRendererClientExtension( + media::MediaPlayerTizenClientExtension* client_extension) override; + + void Play() override; + void Pause(bool is_media_related_action = false) override; + void SetRate(double rate) override; + void Seek(base::TimeDelta time) override; + void Flush(base::OnceClosure flush_cb) override; + void SetVolume(double volume) override; + base::TimeDelta GetCurrentTime() override; - void Play(); - void Pause(bool is_media_related_action = false); - void SetRate(double rate); - void Seek(base::TimeDelta time); - void Flush(base::OnceClosure flush_cb); - void SetVolume(double volume); - base::TimeDelta GetCurrentTime(); + void SetFrameAvailableCallback(const DataRequestCB& datacb) override; // Callback handler void OnReadyToPrepare(const esplusplayer_stream_type stream_type); @@ -71,7 +78,6 @@ class MEDIA_EXPORT MediaPlayerESPlusPlayer { void OnError(const esplusplayer_error_type error_type); void OnBufferingStatusChanged(DemuxerStream::Type type, BufferStatus status); - void SetFrameAvailableCallback(const DataRequestCB& datacb); private: struct ElementryStream { @@ -88,7 +94,7 @@ class MEDIA_EXPORT MediaPlayerESPlusPlayer { friend struct base::DefaultSingletonTraits; explicit MediaPlayerESPlusPlayer() = default; - ~MediaPlayerESPlusPlayer(); + ~MediaPlayerESPlusPlayer() override; MediaPlayerESPlusPlayer(const MediaPlayerESPlusPlayer&) = delete; MediaPlayerESPlusPlayer& operator=(const MediaPlayerESPlusPlayer&) = delete; diff --git a/tizen_src/chromium_impl/media/filters/media_player_tizen.h b/tizen_src/chromium_impl/media/filters/media_player_tizen.h new file mode 100644 index 0000000..dda750f --- /dev/null +++ b/tizen_src/chromium_impl/media/filters/media_player_tizen.h @@ -0,0 +1,100 @@ +// Copyright 2022 Samsung Electronics Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef MEDIA_MEDIA_PLAYER_TIZEN_H_ +#define MEDIA_MEDIA_PLAYER_TIZEN_H_ + +#include "base/task/single_thread_task_runner.h" +#include "media/base/demuxer_stream.h" +#include "ui/gfx/geometry/rect_f.h" + +namespace media { + +class DemuxerStream; +class RendererClient; +class VideoRendererSink; + +// We introduce |MediaPlayerTizenClientExtension| to avoid direct relationship +// with |MediaPlayerRendererClientExtension|. +// (Generation timing of |MediaPlayerRendererClientExtension| from mojom file +// is not guaranteed.) +class MEDIA_EXPORT MediaPlayerTizenClientExtension { + public: + virtual void OnDurationChange(base::TimeDelta duration) = 0; + virtual void OnVideoSizeChange(const gfx::Size& size) = 0; + virtual void OnBufferUpdate(base::TimeDelta time) = 0; +#if defined(TIZEN_TBM_SUPPORT) + virtual void OnNewTbmFrameAvailable( + uint32_t playerId, + const gfx::TbmBufferHandle& tbm_buffer_handle, + base::TimeDelta timestamp) = 0; +#else + virtual void OnNewFrameAvailable(uint32_t playerId, + base::UnsafeSharedMemoryRegion frame, + uint32_t size, + base::TimeDelta timestamp, + uint32_t width, + uint32_t height) = 0; +#endif +}; + +class MEDIA_EXPORT MediaPlayerTizen { + public: +#if defined(TIZEN_TBM_SUPPORT) + using DataRequestCB = base::RepeatingCallback< + void(uint32_t, gfx::TbmBufferHandle, base::TimeDelta)>; +#else + using DataRequestCB = + base::RepeatingCallback; +#endif + + MediaPlayerTizen() {} + virtual ~MediaPlayerTizen() {} + + virtual bool CreatePlayer() = 0; + virtual void Initialize(VideoRendererSink* sink) = 0; + virtual bool IsInitialized() = 0; + virtual void Prepare() = 0; + virtual bool IsPrepared() = 0; + virtual void Release() = 0; + + virtual void SetTaskRunner( + const scoped_refptr& task_runner) = 0; + + virtual void SetStreamInfo(DemuxerStream::Type type, + DemuxerStream* stream, + RendererClient* client) = 0; + + virtual void SetRendererClientExtension( + MediaPlayerTizenClientExtension* client_extension) = 0; + + virtual void Play() = 0; + virtual void Pause(bool is_media_related_action = false) = 0; + virtual void SetRate(double rate) = 0; + virtual void Seek(base::TimeDelta time) = 0; + virtual void Flush(base::OnceClosure flush_cb) = 0; + virtual void SetVolume(double volume) = 0; + virtual base::TimeDelta GetCurrentTime() = 0; + + // Will be replaced by |ClientExtention| interface. + virtual void SetFrameAvailableCallback(const DataRequestCB& datacb) = 0; + +#if defined(TIZEN_TBM_SUPPORT) + virtual void DestroyMediaPacket(void* media_packet) = 0; +#endif + +#if defined(TIZEN_VIDEO_HOLE) + virtual void SetVideoHole(bool is_video_hole) = 0; + virtual void SetMediaGeometry(const gfx::Rect& viewport_rect, + const gfx::RectF& rect) = 0; +#endif +}; +} // namespace media + +#endif // MEDIA_MEDIA_PLAYER_TIZEN_H_ diff --git a/tizen_src/chromium_impl/media/media_efl.gni b/tizen_src/chromium_impl/media/media_efl.gni index ce25af0..e158e8a 100644 --- a/tizen_src/chromium_impl/media/media_efl.gni +++ b/tizen_src/chromium_impl/media/media_efl.gni @@ -100,7 +100,28 @@ if (tizen_multimedia) { "//tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.h", "//tizen_src/chromium_impl/media/filters/esplusplayer_util.cc", "//tizen_src/chromium_impl/media/filters/esplusplayer_util.h", + "//tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.cc", + "//tizen_src/chromium_impl/media/filters/media_player_bridge_capi_adapter.h", "//tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc", "//tizen_src/chromium_impl/media/filters/media_player_esplusplayer.h", + "//tizen_src/chromium_impl/media/filters/media_player_tizen.h", + ] + + # MMPlayer implementation + external_media_video_decode_config += [ + "//tizen_src/build:capi-media-player", + "//tizen_src/build:libcapi-media-player", + "//tizen_src/build:ecore", + "//tizen_src/build:libecore", + ] + + external_media_video_decode_sources += [ + "//tizen_src/chromium_impl/media/base/efl/media_player_efl.cc", + "//tizen_src/chromium_impl/media/base/efl/media_player_efl.h", + "//tizen_src/chromium_impl/media/base/efl/media_player_manager_efl.h", + "//tizen_src/chromium_impl/media/base/efl/media_player_util_efl.cc", + "//tizen_src/chromium_impl/media/base/efl/media_player_util_efl.h", + "//tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc", + "//tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.h", ] } diff --git a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc index 78dbbeb..e36f486 100644 --- a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc +++ b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc @@ -21,6 +21,7 @@ #include "content/public/renderer/content_renderer_client.h" #include "content/public/renderer/render_thread.h" #include "content/renderer/common_renderer_client.h" +#include "media/base/media_url_demuxer.h" #include "renderer/content_settings_client_efl.h" #if !defined(EWK_BRINGUP) // FIXME: m94 bringup #include "renderer/editorclient_agent.h" @@ -299,3 +300,20 @@ void ContentRendererClientEfl::ApplyCustomMobileSettings(blink::WebView* webview maximum_page_scale_for_mobile); } } + +std::unique_ptr ContentRendererClientEfl::OverrideDemuxerForUrl( + content::RenderFrame* render_frame, + const GURL& url, + scoped_refptr task_runner) { + bool use_url_demuxer = false; +#if defined(OS_TIZEN_TV_PRODUCT) && !defined(EWK_BRINGUP) + use_url_demuxer = content::IsHbbTV(); +#endif + if (use_url_demuxer) { + blink::WebLocalFrame* frame = render_frame->GetWebFrame(); + return std::make_unique( + task_runner, url, frame->GetDocument().SiteForCookies(), + frame->GetDocument().TopFrameOrigin(), true, false); + } + return nullptr; +} diff --git a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h old mode 100755 new mode 100644 index 2400cfe..16c8c7d --- a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h +++ b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.h @@ -88,6 +88,11 @@ class ContentRendererClientEfl : public content::ContentRendererClient { bool IsLinkVisited(uint64_t link_hash) override; + std::unique_ptr OverrideDemuxerForUrl( + content::RenderFrame* render_frame, + const GURL& url, + scoped_refptr task_runner) override; + bool shutting_down() const { return shutting_down_; } void set_shutting_down(bool shutting_down) { shutting_down_ = shutting_down; } -- 2.7.4 From 400894fe3ec5464d31d7056e5f46e664ba42092d Mon Sep 17 00:00:00 2001 From: "ayush.k123" Date: Thu, 5 Jan 2023 14:08:20 +0530 Subject: [PATCH 15/16] [M108 Migration] Use third party libevent instead of system library This patch makes changes to use Chromium third party libevent for all profiles. This fixes following error occurring on the device with new platform binary. >> error while loading shared libraries: libevent-2.1.so.7: Applying this patch does not change the size of libchromium-ewk.so Reference: https://review.tizen.org/gerrit/279837 Change-Id: I684e6c735ddc13ba6126b0ba2539747b9580ef7a Signed-off-by: ayush.k123 --- packaging/chromium-efl.spec | 1 - third_party/libevent/BUILD.gn | 2 +- tizen_src/build/common.sh | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec index d6b0c1f..e7c90cc 100644 --- a/packaging/chromium-efl.spec +++ b/packaging/chromium-efl.spec @@ -88,7 +88,6 @@ BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(icu-i18n) BuildRequires: pkgconfig(libdrm) -BuildRequires: pkgconfig(libevent) BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(libffi) diff --git a/third_party/libevent/BUILD.gn b/third_party/libevent/BUILD.gn index f5cb1c5..776b6f5 100644 --- a/third_party/libevent/BUILD.gn +++ b/third_party/libevent/BUILD.gn @@ -43,7 +43,7 @@ static_library("libevent") { "mac/event-config.h", ] include_dirs = [ "mac" ] - } else if (is_linux || is_chromeos) { + } else if (is_linux || is_chromeos || is_tizen) { sources += [ "epoll.c", "linux/config.h", diff --git a/tizen_src/build/common.sh b/tizen_src/build/common.sh index 579968b..deca03d 100755 --- a/tizen_src/build/common.sh +++ b/tizen_src/build/common.sh @@ -24,7 +24,6 @@ function getSystemDeps() { local host_arch=$(getHostArch) local platform=$1 local system_deps="--system-libraries - libevent libpng libxml libxslt -- 2.7.4 From 5d77536c73414a62c821de365ca461a5e4936b54 Mon Sep 17 00:00:00 2001 From: "ayush.k123" Date: Fri, 6 Jan 2023 14:36:24 +0530 Subject: [PATCH 16/16] [M108 Migration][API] Add PWA APIs as public API This patch adds below PWA APIs as public API. - Ewk_View_Request_Manifest_Callback - ewk_view_request_manifest - Ewk_View_Request_Manifest - Ewk_View_Orientation_Type - Ewk_View_Web_Display_Mode - ewk_manifest_short_name_get - ewk_manifest_name_get - ewk_manifest_start_url_get - ewk_manifest_orientation_type_get - ewk_manifest_web_display_mode_get - ewk_manifest_theme_color_get - ewk_manifest_background_color_get - ewk_manifest_icons_count_get - ewk_manifest_icons_src_get - ewk_manifest_icons_type_get - ewk_manifest_icons_sizes_count_get - ewk_manifest_icons_width_get - ewk_manifest_icons_height_get References: https://review.tizen.org/gerrit/272868/ Change-Id: Ie4fc7a2e90ca0a5d21b16863e7469e90f4b5d2e7 Signed-off-by: Ayush Kumar --- tizen_src/ewk/efl_integration/BUILD.gn | 4 + tizen_src/ewk/efl_integration/eweb_view.cc | 12 +++ tizen_src/ewk/efl_integration/eweb_view.h | 6 ++ .../private/ewk_manifest_private.cc | 114 +++++++++++++++++++++ .../efl_integration/private/ewk_manifest_private.h | 49 +++++++++ .../ewk/efl_integration/public/ewk_manifest.cc | 6 +- .../ewk/efl_integration/public/ewk_manifest.h | 15 +-- .../efl_integration/public/ewk_manifest_internal.h | 2 +- tizen_src/ewk/efl_integration/public/ewk_view.cc | 17 ++- .../efl_integration/web_contents_delegate_efl.cc | 31 ++++++ .../efl_integration/web_contents_delegate_efl.h | 22 ++-- 11 files changed, 253 insertions(+), 25 deletions(-) create mode 100644 tizen_src/ewk/efl_integration/private/ewk_manifest_private.cc create mode 100644 tizen_src/ewk/efl_integration/private/ewk_manifest_private.h diff --git a/tizen_src/ewk/efl_integration/BUILD.gn b/tizen_src/ewk/efl_integration/BUILD.gn index f774408..ffbec1e 100644 --- a/tizen_src/ewk/efl_integration/BUILD.gn +++ b/tizen_src/ewk/efl_integration/BUILD.gn @@ -374,6 +374,8 @@ shared_library("chromium-ewk") { "private/ewk_hit_test_private.h", "private/ewk_main_private.cc", "private/ewk_main_private.h", + "private/ewk_manifest_private.cc", + "private/ewk_manifest_private.h", "private/ewk_notification_private.cc", "private/ewk_notification_private.h", "private/ewk_object_private.h", @@ -474,6 +476,8 @@ shared_library("chromium-ewk") { "public/ewk_main.cc", "public/ewk_main.h", "public/ewk_main_internal.h", + "public/ewk_manifest.cc", + "public/ewk_manifest.h", "public/ewk_manifest_internal.h", "public/ewk_media_downloadable_font_info.h", "public/ewk_media_downloadable_font_info_product.h", diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index c71aa3d..279642c 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -2549,3 +2549,15 @@ void EWebView::OnOverscrolled(const gfx::Vector2dF& accumulated_overscroll, : SmartCallback().call(); } } + +void EWebView::RequestManifest(Ewk_View_Request_Manifest_Callback callback, + void* user_data) { + web_contents_delegate_->RequestManifestInfo(callback, user_data); +} + +void EWebView::DidRespondRequestManifest( + _Ewk_View_Request_Manifest* manifest, + Ewk_View_Request_Manifest_Callback callback, + void* user_data) { + callback(evas_object_, manifest, user_data); +} diff --git a/tizen_src/ewk/efl_integration/eweb_view.h b/tizen_src/ewk/efl_integration/eweb_view.h index 56131ba..92bef08 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.h +++ b/tizen_src/ewk/efl_integration/eweb_view.h @@ -486,6 +486,12 @@ class EWebView { void HandleZoomGesture(blink::WebGestureEvent& event); void ClosePage(); + void RequestManifest(Ewk_View_Request_Manifest_Callback callback, + void* user_data); + void DidRespondRequestManifest(_Ewk_View_Request_Manifest* manifest, + Ewk_View_Request_Manifest_Callback callback, + void* user_data); + void SyncAcceptLanguages(const std::string& accept_languages); void OnOverscrolled(const gfx::Vector2dF& accumulated_overscroll, diff --git a/tizen_src/ewk/efl_integration/private/ewk_manifest_private.cc b/tizen_src/ewk/efl_integration/private/ewk_manifest_private.cc new file mode 100644 index 0000000..ddb79b0 --- /dev/null +++ b/tizen_src/ewk/efl_integration/private/ewk_manifest_private.cc @@ -0,0 +1,114 @@ +// Copyright 2016 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. + +#include "ewk_manifest_private.h" + +// We need to provide a value here which is out of the range of a 32-bit integer +// since otherwise we would not be able to check whether a theme color was valid +// or not. The simplest way to do this is to simply add one to the maximum +// possible 32-bit integer. +const int64_t _Ewk_View_Request_Manifest::kInvalidOrMissingColor = + static_cast(std::numeric_limits::max()) + 1; + +_Ewk_View_Request_Manifest::_Ewk_View_Request_Manifest( + blink::mojom::ManifestPtr manifest) { + if (manifest->short_name && !manifest->short_name->empty()) + short_name = base::UTF16ToUTF8(manifest->short_name->c_str()); + + if (manifest->name && !manifest->name->empty()) + name = base::UTF16ToUTF8(manifest->name->c_str()); + + start_url = manifest->start_url.possibly_invalid_spec(); + + int orientation = static_cast(manifest->orientation); + orientation_type = static_cast(orientation); + + int display = static_cast(manifest->display); + web_display_mode = static_cast(display); + + // Set the theme color based on the manifest value. + theme_color = manifest->has_theme_color ? manifest->theme_color + : kInvalidOrMissingColor; + + // Set the background color based on the manifest value. + background_color = manifest->has_background_color ? manifest->background_color + : kInvalidOrMissingColor; + + // If any icons are specified in the manifest, they take precedence over any + // we picked up from the web_app stuff. + for (const auto& icon : manifest->icons) { + Icon ewk_icon; + ewk_icon.src = icon.src.possibly_invalid_spec(); + ewk_icon.type = base::UTF16ToUTF8(icon.type); + + for (const auto& size : icon.sizes) { + _Ewk_View_Request_Manifest::Size size_pair; + size_pair.width = size.width(); + size_pair.height = size.height(); + ewk_icon.sizes.push_back(size_pair); + } + icons.push_back(ewk_icon); + } +} + +_Ewk_View_Request_Manifest::~_Ewk_View_Request_Manifest() {} + +_Ewk_View_Request_Manifest::Icon::Icon() {} +_Ewk_View_Request_Manifest::Icon::~Icon() {} + +static_assert(int(blink::mojom::DisplayMode::kUndefined) == + int(WebDisplayModeUndefined), + "mismatching enums: WebDisplayModeUndefined"); +static_assert(int(blink::mojom::DisplayMode::kBrowser) == + int(WebDisplayModeBrowser), + "mismatching enums: WebDisplayModeBrowser"); +static_assert(int(blink::mojom::DisplayMode::kMinimalUi) == + int(WebDisplayModeMinimalUi), + "mismatching enums: WebDisplayModeMinimalUi"); +static_assert(int(blink::mojom::DisplayMode::kStandalone) == + int(WebDisplayModeStandalone), + "mismatching enums: WebDisplayModeStandalone"); +static_assert(int(blink::mojom::DisplayMode::kFullscreen) == + int(WebDisplayModeFullscreen), + "mismatching enums: WebDisplayModeFullscreen"); +static_assert(int(blink::mojom::DisplayMode::kWindowControlsOverlay) == + int(WebDisplayModeWindowControlsOverlay), + "mismatching enums: WebDisplayModeWindowControlsOverlay"); +static_assert(int(blink::mojom::DisplayMode::kTabbed) == + int(WebDisplayModeTabbed), + "mismatching enums: WebDisplayModeTabbed"); +static_assert(int(blink::mojom::DisplayMode::kMaxValue) == + int(WebDisplayModeLast), + "mismatching enums: WebDisplayModeLast"); + +static_assert(int(device::mojom::ScreenOrientationLockType::DEFAULT) == + int(WebScreenOrientationLockDefault), + "mismatching enums: WebScreenOrientationLockDefault"); +static_assert(int(device::mojom::ScreenOrientationLockType::PORTRAIT_PRIMARY) == + int(WebScreenOrientationLockPortraitPrimary), + "mismatching enums: WebScreenOrientationLockPortraitPrimary"); +static_assert( + int(device::mojom::ScreenOrientationLockType::PORTRAIT_SECONDARY) == + int(WebScreenOrientationLockPortraitSecondary), + "mismatching enums: WebScreenOrientationLockPortraitSecondary"); +static_assert( + int(device::mojom::ScreenOrientationLockType::LANDSCAPE_PRIMARY) == + int(WebScreenOrientationLockLandscapePrimary), + "mismatching enums: WebScreenOrientationLockLandscapePrimary"); +static_assert( + int(device::mojom::ScreenOrientationLockType::LANDSCAPE_SECONDARY) == + int(WebScreenOrientationLockLandscapeSecondary), + "mismatching enums: WebScreenOrientationLockLandscapeSecondary"); +static_assert(int(device::mojom::ScreenOrientationLockType::ANY) == + int(WebScreenOrientationLockAny), + "mismatching enums: WebScreenOrientationLockAny"); +static_assert(int(device::mojom::ScreenOrientationLockType::LANDSCAPE) == + int(WebScreenOrientationLockLandscape), + "mismatching enums: WebScreenOrientationLockLandscape"); +static_assert(int(device::mojom::ScreenOrientationLockType::PORTRAIT) == + int(WebScreenOrientationLockPortrait), + "mismatching enums: WebScreenOrientationLockPortrait"); +static_assert(int(device::mojom::ScreenOrientationLockType::NATURAL) == + int(WebScreenOrientationLockNatural), + "mismatching enums: WebScreenOrientationLockNatural"); diff --git a/tizen_src/ewk/efl_integration/private/ewk_manifest_private.h b/tizen_src/ewk/efl_integration/private/ewk_manifest_private.h new file mode 100644 index 0000000..eee4e61 --- /dev/null +++ b/tizen_src/ewk/efl_integration/private/ewk_manifest_private.h @@ -0,0 +1,49 @@ +// Copyright 2016 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. + +#ifndef ewk_manifest_private_h +#define ewk_manifest_private_h + +#include +#include +#include + +#include "base/strings/utf_string_conversions.h" +#include "public/ewk_manifest.h" +#include "third_party/blink/public/mojom/manifest/manifest.mojom.h" + +/// Represents current's page manifest information. +struct _Ewk_View_Request_Manifest { + explicit _Ewk_View_Request_Manifest(blink::mojom::ManifestPtr manifest); + ~_Ewk_View_Request_Manifest(); + + std::string short_name; + std::string name; + std::string start_url; + Ewk_View_Orientation_Type + orientation_type; /**> orientation type of web screen */ + Ewk_View_Web_Display_Mode web_display_mode; /**> display mode of web screen */ + int64_t theme_color; + int64_t background_color; + + struct Size { + int width; + int height; + }; + + struct Icon { + Icon(); + ~Icon(); + + std::string src; + std::string type; + std::vector sizes; + }; + std::vector icons; + + // Constant representing an invalid color. Set to a value outside the + // range of a 32-bit integer. + static const int64_t kInvalidOrMissingColor; +}; +#endif // ewk_manifest_private_h diff --git a/tizen_src/ewk/efl_integration/public/ewk_manifest.cc b/tizen_src/ewk/efl_integration/public/ewk_manifest.cc index 40bc62e..0e18397 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_manifest.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_manifest.cc @@ -64,7 +64,8 @@ Eina_Bool ewk_manifest_theme_color_get(_Ewk_View_Request_Manifest* manifest, uint8_t* b, uint8_t* a) { EINA_SAFETY_ON_NULL_RETURN_VAL(manifest, EINA_FALSE); - if (manifest->theme_color == content::Manifest::kInvalidOrMissingColor) + if (manifest->theme_color == + _Ewk_View_Request_Manifest::kInvalidOrMissingColor) return EINA_FALSE; if (r) @@ -87,7 +88,8 @@ Eina_Bool ewk_manifest_background_color_get( uint8_t* b, uint8_t* a) { EINA_SAFETY_ON_NULL_RETURN_VAL(manifest, EINA_FALSE); - if (manifest->background_color == content::Manifest::kInvalidOrMissingColor) + if (manifest->background_color == + _Ewk_View_Request_Manifest::kInvalidOrMissingColor) return EINA_FALSE; if (r) diff --git a/tizen_src/ewk/efl_integration/public/ewk_manifest.h b/tizen_src/ewk/efl_integration/public/ewk_manifest.h index 4fe87b1..fe5a203 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_manifest.h +++ b/tizen_src/ewk/efl_integration/public/ewk_manifest.h @@ -65,12 +65,15 @@ typedef enum _Ewk_View_Orientation_Type Ewk_View_Orientation_Type; * @since_tizen 3.0 */ enum _Ewk_View_Web_Display_Mode { - WebDisplayModeUndefined = 0, /**< undefined */ - WebDisplayModeBrowser, /**< browser */ - WebDisplayModeMinimalUi, /**< minimul-ui */ - WebDisplayModeStandalone, /**< standalone */ - WebDisplayModeFullscreen, /**< fullscreen */ - WebDisplayModeLast = WebDisplayModeFullscreen + WebDisplayModeUndefined = 0, /**< undefined */ + WebDisplayModeBrowser, /**< browser */ + WebDisplayModeMinimalUi, /**< minimul-ui */ + WebDisplayModeStandalone, /**< standalone */ + WebDisplayModeFullscreen, /**< fullscreen */ + WebDisplayModeWindowControlsOverlay, /**< window-controls-overlay*/ + WebDisplayModeTabbed, /**< tabbed */ + WebDisplayModeBorderless, /**< borderless */ + WebDisplayModeLast = WebDisplayModeBorderless }; /** diff --git a/tizen_src/ewk/efl_integration/public/ewk_manifest_internal.h b/tizen_src/ewk/efl_integration/public/ewk_manifest_internal.h index 65658b2..63f3803 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_manifest_internal.h +++ b/tizen_src/ewk/efl_integration/public/ewk_manifest_internal.h @@ -54,4 +54,4 @@ EXPORT_API const char* ewk_manifest_push_sender_id_get(Ewk_View_Request_Manifest #ifdef __cplusplus } #endif -#endif // ewk_manifest_internal_h +#endif // ewk_manifest_internal_h diff --git a/tizen_src/ewk/efl_integration/public/ewk_view.cc b/tizen_src/ewk/efl_integration/public/ewk_view.cc index fb078f9..c1cff329 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_view.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_view.cc @@ -1166,11 +1166,6 @@ void ewk_view_session_timeout_set(Evas_Object* o, unsigned long timeout) LOG_EWK_API_MOCKUP(); } -void ewk_view_request_manifest(Evas_Object* o, Ewk_View_Request_Manifest_Callback callback, void* user_data) -{ - LOG_EWK_API_MOCKUP(); -} - Evas_Object* ewk_view_widget_get(Evas_Object* view) { LOG_EWK_API_MOCKUP(); @@ -1334,11 +1329,6 @@ Eina_Bool ewk_view_tts_mode_set(Evas_Object* view, ewk_tts_mode tts_mode) { return false; } -void ewk_view_request_manifest_from_url(Evas_Object* o, Ewk_View_Request_Manifest_Callback callback, void* user_data, const char* host_url, const char* manifest_url) -{ - LOG_EWK_API_MOCKUP(); -} - void ewk_view_authentication_callback_set( Evas_Object* ewk_view, Ewk_View_Authentication_Callback callback, @@ -1493,3 +1483,10 @@ void ewk_view_auto_login(Evas_Object *view, const char* user_name, const char* p { LOG_EWK_API_MOCKUP(); } + +void ewk_view_request_manifest(Evas_Object* o, + Ewk_View_Request_Manifest_Callback callback, + void* user_data) { + EWK_VIEW_IMPL_GET_OR_RETURN(o, impl); + impl->RequestManifest(callback, user_data); +} diff --git a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc index 2836a30..72bc9a5 100644 --- a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc +++ b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc @@ -14,6 +14,7 @@ #include "components/favicon_base/favicon_types.h" #include "components/password_manager/core/common/password_manager_pref_names.h" #include "components/prefs/pref_service.h" +#include "content/browser/manifest/manifest_manager_host.h" #include "content/common/content_switches_internal.h" #include "content/common/render_messages_efl.h" #include "content/public/browser/browser_thread.h" @@ -34,6 +35,7 @@ #include "private/ewk_user_media_private.h" #include "private/webview_delegate_ewk.h" #include "third_party/blink/public/common/input/web_input_event.h" +#include "third_party/blink/public/common/manifest/manifest_util.h" #include "url/gurl.h" #if BUILDFLAG(IS_TIZEN) @@ -794,4 +796,33 @@ void WebContentsDelegateEfl::TitleWasSet(NavigationEntry* entry, web_view_->GetBackForwardList()->UpdateItemWithEntry(entry); } +void WebContentsDelegateEfl::RequestManifestInfo( + Ewk_View_Request_Manifest_Callback callback, + void* user_data) { + WebContentsImpl* wci = static_cast(&web_contents_); + ManifestManagerHost* manifest_manager_host = + ManifestManagerHost::GetOrCreateForPage(wci->GetPrimaryPage()); + if (!manifest_manager_host) { + web_view_->DidRespondRequestManifest(nullptr, callback, user_data); + return; + } + + manifest_manager_host->GetManifest( + base::BindOnce(&WebContentsDelegateEfl::OnDidGetManifest, + base::Unretained(this), callback, user_data)); +} + +void WebContentsDelegateEfl::OnDidGetManifest( + Ewk_View_Request_Manifest_Callback callback, + void* user_data, + const GURL& manifest_url, + blink::mojom::ManifestPtr manifest) { + if (blink::IsEmptyManifest(*manifest)) { + web_view_->DidRespondRequestManifest(nullptr, callback, user_data); + } else { + _Ewk_View_Request_Manifest ewk_manifest(std::move(manifest)); + web_view_->DidRespondRequestManifest(&ewk_manifest, callback, user_data); + } +} + } // namespace content diff --git a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h index a50a0c9..37878c3 100644 --- a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h @@ -7,19 +7,21 @@ #include -#include "content/public/browser/browser_context.h" +#include "browser/favicon/favicon_downloader.h" #include "browser/javascript_dialog_manager_efl.h" #include "browser_context_efl.h" -#include "eweb_view.h" +#include "content/browser/web_contents/web_contents_impl.h" +#include "content/public/browser/browser_context.h" +#include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_delegate.h" -#include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents_observer.h" -#include "content/browser/web_contents/web_contents_impl.h" -#include "url/gurl.h" -#include "browser/favicon/favicon_downloader.h" +#include "eweb_view.h" +#include "private/ewk_manifest_private.h" #include "public/ewk_view_internal.h" +#include "third_party/blink/public/mojom/manifest/manifest.mojom.h" #include "ui/base/ime/text_input_type.h" +#include "url/gurl.h" class DidPrintPagesParams; class Ewk_Wrt_Message_Data; @@ -207,12 +209,20 @@ class WebContentsDelegateEfl : public WebContentsDelegate, EWebView* web_view() const { return web_view_; } WebContents& web_contents() const { return web_contents_; } + void RequestManifestInfo(Ewk_View_Request_Manifest_Callback callback, + void* user_data); + private: void OnGetContentSecurityPolicy(IPC::Message* reply_msg); void OnWrtPluginMessage(const Ewk_Wrt_Message_Data& data); void OnWrtPluginSyncMessage(const Ewk_Wrt_Message_Data& data, IPC::Message* reply); + void OnDidGetManifest(Ewk_View_Request_Manifest_Callback callback, + void* user_data, + const GURL& manifest_url, + blink::mojom::ManifestPtr manifest); + EWebView* web_view_; bool is_fullscreen_; WebContents& web_contents_; -- 2.7.4