diff --git a/README.md b/README.md
index 9278bb61c..9913a25e4 100644
--- a/README.md
+++ b/README.md
@@ -84,4 +84,4 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina
| [**video_player_tizen**](packages/video_player) | 4.0 | ✔️ | ✔️ | ⚠️ | ❌ | Functional limitations,
TV emulator issue |
| [**wakelock_tizen**](packages/wakelock) | 4.0 | ✔️ | ✔️ | ❌ | ❌ | Cannot override system settings |
| [**wearable_rotary**](packages/wearable_rotary) | 4.0 | ✔️ | ✔️ | ❌ | ❌ | Not applicable for TV |
-| [**webview_flutter_tizen**](packages/webview_flutter) | 5.5 | ✔️ | ✔️ | ✔️ | ✔️ | Not for production use |
+| [**webview_flutter_tizen**](packages/webview_flutter) | 5.5 | ❌ | ❌ | ✔️ | ❌ |
diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md
index ae58e29f3..c8e1d2318 100644
--- a/packages/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.0
+
+* Change the backing web engine from LWE to EFL WebKit (EWK).
+
## 0.5.6
* Update LWE binary (9af6ea4101d173935fe6e6cd3f2c91ca17ed451e).
diff --git a/packages/webview_flutter/README.md b/packages/webview_flutter/README.md
index b21eee605..5e9a7c2c8 100644
--- a/packages/webview_flutter/README.md
+++ b/packages/webview_flutter/README.md
@@ -2,7 +2,8 @@
[](https://pub.dev/packages/webview_flutter_tizen)
-The Tizen implementation of [`webview_flutter`](https://github.com/flutter/plugins/tree/main/packages/webview_flutter).
+The Tizen implementation of [`webview_flutter`](https://github.com/flutter/plugins/tree/main/packages/webview_flutter) only for Tizen TV devices.
+The WebView widget is backed by the EFL WebKit (EWK) on Tizen.
## Required privileges
@@ -21,7 +22,7 @@ This package is not an _endorsed_ implementation of `webview_flutter`. Therefore
```yaml
dependencies:
webview_flutter: ^3.0.4
- webview_flutter_tizen: ^0.5.6
+ webview_flutter_tizen: ^0.6.0
```
## Example
@@ -46,6 +47,4 @@ class WebViewExampleState extends State {
## Supported devices
-This plugin is supported on devices running Tizen 5.5 or later.
-
-The WebView widget is backed by the Lightweight Web Engine (LWE) on Tizen. For a detailed list of features supported by the Lightweight Web Engine, refer to [this page](https://git.tizen.org/cgit/platform/upstream/lightweight-web-engine/tree/docs/Spec.md?h=tizen).
+This plugin is supported on Tizen TV devices running Tizen 5.5 or later.
diff --git a/packages/webview_flutter/lib/src/platform_view_tizen.dart b/packages/webview_flutter/lib/src/platform_view_tizen.dart
deleted file mode 100644
index 66835e57b..000000000
--- a/packages/webview_flutter/lib/src/platform_view_tizen.dart
+++ /dev/null
@@ -1,659 +0,0 @@
-// Copyright 2021 Samsung Electronics Co., Ltd. All rights reserved.
-// Copyright 2013 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// github.com:flutter/flutter.git@57a688c1f04d56eaa40beeb9f44e549eaf0ce54d
-// packages/flutter/lib/src/rendering/platform_view.dart
-// packages/flutter/lib/src/widgets/platform_view.dart
-// packages/flutter/lib/src/services/platform_views.dart
-// Imported from above files, the content has been minimally modified.
-// (e.g. Rename keyword 'Android' -> 'Tizen' )
-
-// ignore_for_file: public_member_api_docs
-
-part of '../webview_flutter_tizen.dart';
-
-enum _PlatformViewState {
- uninitialized,
- resizing,
- ready,
-}
-
-class TizenView extends StatefulWidget {
- const TizenView({
- super.key,
- required this.viewType,
- this.onPlatformViewCreated,
- this.hitTestBehavior = PlatformViewHitTestBehavior.opaque,
- this.layoutDirection,
- this.gestureRecognizers,
- this.creationParams,
- this.creationParamsCodec,
- this.clipBehavior = Clip.hardEdge,
- }) : assert(viewType != null),
- assert(hitTestBehavior != null),
- assert(creationParams == null || creationParamsCodec != null);
-
- final String viewType;
- final PlatformViewCreatedCallback? onPlatformViewCreated;
- final PlatformViewHitTestBehavior hitTestBehavior;
- final TextDirection? layoutDirection;
- final Set>? gestureRecognizers;
- final dynamic creationParams;
- final MessageCodec? creationParamsCodec;
- final Clip clipBehavior;
-
- @override
- State createState() => _TizenWebViewState();
-}
-
-class _TizenWebViewState extends State {
- int? _id;
- late TizenViewController _controller;
- TextDirection? _layoutDirection;
- bool _initialized = false;
- FocusNode? _focusNode;
-
- static final Set> _emptyRecognizersSet =
- >{};
-
- @override
- Widget build(BuildContext context) {
- return Focus(
- focusNode: _focusNode,
- onFocusChange: _onFocusChange,
- child: _TizenPlatformTextureView(
- controller: _controller,
- hitTestBehavior: widget.hitTestBehavior,
- gestureRecognizers: widget.gestureRecognizers ?? _emptyRecognizersSet,
- clipBehavior: widget.clipBehavior,
- ),
- );
- }
-
- void _initializeOnce() {
- if (_initialized) {
- return;
- }
- _initialized = true;
- _createNewTizenWebView();
- _focusNode = FocusNode(debugLabel: 'TizenWebView(id: $_id)');
- }
-
- @override
- void didChangeDependencies() {
- super.didChangeDependencies();
- final TextDirection newLayoutDirection = _findLayoutDirection();
- final bool didChangeLayoutDirection =
- _layoutDirection != newLayoutDirection;
- _layoutDirection = newLayoutDirection;
-
- _initializeOnce();
- if (didChangeLayoutDirection) {
- _controller.setLayoutDirection(_layoutDirection!);
- }
- }
-
- @override
- void didUpdateWidget(TizenView oldWidget) {
- super.didUpdateWidget(oldWidget);
-
- final TextDirection newLayoutDirection = _findLayoutDirection();
- final bool didChangeLayoutDirection =
- _layoutDirection != newLayoutDirection;
- _layoutDirection = newLayoutDirection;
-
- if (widget.viewType != oldWidget.viewType) {
- _controller.dispose();
- _createNewTizenWebView();
- return;
- }
-
- if (didChangeLayoutDirection) {
- _controller.setLayoutDirection(_layoutDirection!);
- }
- }
-
- TextDirection _findLayoutDirection() {
- assert(
- widget.layoutDirection != null || debugCheckHasDirectionality(context));
- return widget.layoutDirection ?? Directionality.of(context);
- }
-
- @override
- void dispose() {
- _controller.dispose();
- super.dispose();
- }
-
- void _createNewTizenWebView() {
- _id = platformViewsRegistry.getNextPlatformViewId();
- _controller = PlatformViewsServiceTizen.initTizenView(
- id: _id!,
- viewType: widget.viewType,
- layoutDirection: _layoutDirection!,
- creationParams: widget.creationParams,
- creationParamsCodec: widget.creationParamsCodec,
- onFocus: () {
- _focusNode!.requestFocus();
- },
- );
- if (widget.onPlatformViewCreated != null) {
- _controller
- .addOnPlatformViewCreatedListener(widget.onPlatformViewCreated!);
- }
- }
-
- void _onFocusChange(bool isFocused) {
- if (!_controller.isCreated) {
- return;
- }
- if (!isFocused) {
- _controller.clearFocus().catchError((dynamic e) {
- if (e is MissingPluginException) {
- return;
- }
- });
- return;
- }
- SystemChannels.textInput.invokeMethod(
- 'TextInput.setPlatformViewClient',
- {'platformViewId': _id},
- ).catchError((dynamic e) {
- if (e is MissingPluginException) {
- return;
- }
- });
- }
-}
-
-enum _TizenViewState {
- waitingForSize,
- creating,
- created,
- disposed,
-}
-
-class TizenViewController extends PlatformViewController {
- TizenViewController._({
- required this.viewId,
- required String viewType,
- required TextDirection layoutDirection,
- dynamic creationParams,
- MessageCodec? creationParamsCodec,
- bool waitingForSize = true,
- }) : assert(viewId != null),
- assert(viewType != null),
- assert(layoutDirection != null),
- assert(creationParams == null || creationParamsCodec != null),
- _viewType = viewType,
- _layoutDirection = layoutDirection,
- _creationParams = creationParams,
- _creationParamsCodec = creationParamsCodec,
- _state = waitingForSize
- ? _TizenViewState.waitingForSize
- : _TizenViewState.creating;
-
- @override
- final int viewId;
-
- final String _viewType;
-
- TextDirection _layoutDirection;
-
- _TizenViewState _state;
-
- final dynamic _creationParams;
-
- final MessageCodec? _creationParamsCodec;
-
- final List _platformViewCreatedCallbacks =
- [];
-
- static int pointerAction(int pointerId, int action) {
- return ((pointerId << 8) & 0xff00) | (action & 0xff);
- }
-
- int? _textureId;
-
- int? get textureId => _textureId;
-
- /// The current offset of the platform view.
- Offset _off = Offset.zero;
-
- Future setSize(Size size) async {
- assert(_state != _TizenViewState.disposed,
- 'Tizen view is disposed. View id: $viewId');
- assert(_state != _TizenViewState.waitingForSize,
- 'Tizen view must have an initial size. View id: $viewId');
- assert(size != null);
- assert(!size.isEmpty);
-
- final Map