TF-3924 Thread Detail Memory leak resolve
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
// Copyright 2019 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.
|
||||
|
||||
/// This file shims dart:ui in web-only scenarios, getting rid of the need to
|
||||
/// suppress analyzer warnings.
|
||||
|
||||
// TODO(): flutter/flutter#55000 Remove this file once web-only dart:ui APIs
|
||||
// are exposed from a dedicated place.
|
||||
export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
|
||||
@@ -1,21 +0,0 @@
|
||||
// Copyright 2019 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.
|
||||
|
||||
// Fake interface for the logic that this package needs from (web-only) dart:ui.
|
||||
// This is conditionally exported so the analyzer sees these methods as available.
|
||||
|
||||
/// Shim for web_ui engine.PlatformViewRegistry
|
||||
/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
|
||||
// ignore: camel_case_types
|
||||
class platformViewRegistry {
|
||||
/// Shim for registerViewFactory
|
||||
/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
|
||||
static void registerViewFactory(
|
||||
String viewTypeId, dynamic Function(int viewId) viewFactory) {}
|
||||
}
|
||||
|
||||
/// Signature of callbacks that have no arguments and return no data.
|
||||
typedef VoidCallback = void Function();
|
||||
|
||||
dynamic get window => null;
|
||||
@@ -1,5 +0,0 @@
|
||||
// Copyright 2019 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.
|
||||
|
||||
export 'dart:ui_web';
|
||||
@@ -4,7 +4,6 @@ import 'dart:math' as math;
|
||||
|
||||
import 'package:core/presentation/constants/constants_ui.dart';
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/utils/shims/dart_ui.dart' as ui;
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/html/html_interaction.dart';
|
||||
import 'package:core/utils/html/html_template.dart';
|
||||
@@ -370,22 +369,7 @@ class _HtmlContentViewerOnWebState extends State<HtmlContentViewerOnWeb>
|
||||
_createdViewId = _getRandString(10);
|
||||
_htmlData = _generateHtmlDocument(widget.contentHtml);
|
||||
|
||||
final iframe = html.IFrameElement()
|
||||
..width = _actualWidth.toString()
|
||||
..height = _actualHeight.toString()
|
||||
..srcdoc = _htmlData ?? ''
|
||||
..style.border = 'none'
|
||||
..style.overflow = 'hidden'
|
||||
..style.width = '100%'
|
||||
..style.height = '100%';
|
||||
|
||||
ui.platformViewRegistry.registerViewFactory(_createdViewId, (int viewId) => iframe);
|
||||
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_webInit = Future.value(true);
|
||||
});
|
||||
}
|
||||
_webInit = Future.value(true);
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -413,9 +397,19 @@ class _HtmlContentViewerOnWebState extends State<HtmlContentViewerOnWeb>
|
||||
future: _webInit,
|
||||
builder: (_, snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
final htmlView = HtmlElementView(
|
||||
final htmlView = HtmlElementView.fromTagName(
|
||||
key: ValueKey('$_htmlData-${widget.key}'),
|
||||
viewType: _createdViewId,
|
||||
tagName: 'iframe',
|
||||
onElementCreated: (element) {
|
||||
(element as html.IFrameElement)
|
||||
..width = _actualWidth.toString()
|
||||
..height = _actualHeight.toString()
|
||||
..srcdoc = _htmlData ?? ''
|
||||
..style.border = 'none'
|
||||
..style.overflow = 'hidden'
|
||||
..style.width = '100%'
|
||||
..style.height = '100%';
|
||||
},
|
||||
);
|
||||
|
||||
if (widget.viewMaxHeight != null) {
|
||||
|
||||
Reference in New Issue
Block a user