Skip to content

Instantly share code, notes, and snippets.

View yjbanov's full-sized avatar
💭
Building a Web runtime for Flutter: http://bit.ly/flutter-web

Yegor yjbanov

💭
Building a Web runtime for Flutter: http://bit.ly/flutter-web
View GitHub Profile
@yjbanov
yjbanov / focusable_platform_view.dart
Last active August 2, 2023 21:23
Demonstrates an issue in semantic node focusability
import 'dart:ui_web' as ui_web;
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:web/web.dart' as web;
void main() async {
_registerFactory();
runApp(const MyApp());
@yjbanov
yjbanov / serve_skwasm
Created August 2, 2023 18:12
Serves Flutter Web apps compiled for Skwasm
#!/usr/bin/env python3
from http.server import HTTPServer, SimpleHTTPRequestHandler, test
import sys
import os
class CORSRequestHandler (SimpleHTTPRequestHandler):
def end_headers (self):
self.send_header('Cross-Origin-Opener-Policy', 'same-origin')
self.send_header('Cross-Origin-Embedder-Policy', 'require-corp')
SimpleHTTPRequestHandler.end_headers(self)
@yjbanov
yjbanov / flutter_test_error.txt
Created December 5, 2022 18:31
flutter test --platform=chrome Windows error
[ +11 ms] C:\code\flutter\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev
C:\code\flutter\flutter\bin\cache\dart-sdk\bin\snapshots\frontend_server.dart.snapshot --sdk-root C:\code\flutter\flutter\bin\cache\flutter_web_sdk/
--incremental --target=dartdevc --experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill
C:\Users\FLUTTE~1\AppData\Local\Temp\flutter_tools.57bf1561\flutter_test.7cb2f1fe\out --packages
C:\code\flutter\flutter\packages\flutter\.dart_tool\package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts
--track-widget-creation --filesystem-root C:\code\flutter\flutter\packages\flutter\test --filesystem-root
C:\Users\FLUTTE~1\AppData\Local\Temp\flutter_tools.57bf1561\flutter_test.7cb2f1fe\ --filesystem-scheme org-dartlang-app --initialize-from-dill
build\c7922d95bf4a2462b75c84a97c312edb.cache.dill.track.dill --platform C:\code\flutter\flutter\bin\cache\flutter_web_sdk\kernel\ddc_outline.dill
--verbosity=error --no-sound-null-safety
[ +125
class CapturedAccessibilityAnnouncement {
const CapturedAccessibilityAnnouncement(this.message, this.textDirection, {this.assertiveness = Assertiveness.polite});
final String message;
final TextDirection textDirection;
final Assertiveness? assertiveness;
void matches({
Matcher? message,
Matcher? textDirection,
Matcher? assertiveness,
@yjbanov
yjbanov / ck_androd_issue.js
Created August 16, 2022 21:28
Attempts to reproduce CanvasKit issue on Nexus 5X
const transforms = [
[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -0.01, 1],
[1, 0, 0, 0, 0, 0.996917333733128, -0.07845909572784494, -2.353772871835348, 0, 0.07845909572784494, 0.996917333733128, -0.0924799880061613, 0, -0.0007845909572784495, -0.00996917333733128,
1.0009247998800617],
[1, 0, 0, 0, 0, 0.9876883405951378, -0.15643446504023087, -4.693033951206926, 0, 0.15643446504023087, 0.9876883405951378, -0.3693497821458678, 0, -0.0015643446504023087, -0.009876883405951378,
1.0036934978214587],
[1, 0, 0, 0, 0, 0.9723699203976766, -0.2334453638559054, -7.0033609156771615, 0, 0.2334453638559054, 0.9723699203976766, -0.8289023880697037, 0, -0.002334453638559054, -0.009723699203976767,
1.008289023880697],
[1, 0, 0, 0, 0, 0.9510565162951535, -0.3090169943749474, -9.270509831248422, 0, 0.3090169943749474, 0.9510565162951535, -1.4683045111453943, 0, -0.0030901699437494742, -0.009510565162951536,
1.014683045111454],
@yjbanov
yjbanov / raw_dart_ui.dart
Created May 9, 2022 16:28
An example that uses raw dart:ui to fill the screen with green color
import 'dart:ui';
void main() {
var recorder = PictureRecorder();
var canvas = Canvas(recorder, Rect.largest);
canvas.drawColor(const Color(0xFF00FF00), BlendMode.srcOver);
var picture = recorder.endRecording();
var sceneBuilder = SceneBuilder();
sceneBuilder.addPicture(Offset.zero, picture);
var scene = sceneBuilder.build();
@yjbanov
yjbanov / image_decoder_stress_test.html
Created January 5, 2022 00:27
ImageDecoder stress test
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ImageDecoder memory usage test</title>
</head>
<body>
<script>
@yjbanov
yjbanov / disappearing_test.html
Created December 14, 2021 01:08
CanvasKit text disappears in the presence of MakeLazyImageFromTextureSource image
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Where's text?</title>
</head>
<body>
<canvas id=foo width=300 height=300></canvas>
@yjbanov
yjbanov / frame-order-skia-vs-webcodecs.html
Created December 8, 2021 22:42
frame decode order skia vs webcodecs
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SkImage.readPixels</title>
</head>
<body>
<canvas id=foo width=300 height=300></canvas>
@yjbanov
yjbanov / flutter-analyze-2.txt
Created November 29, 2021 21:16
flutter update-packages && flutter analyze --flutter-repo
$ flutter update-packages
Running "flutter pub get" in flutter_update_packages.RFBKQF... 4.5s
Ran pub get in dev/integration_tests/web in 1.2s...
Ran pub get in dev/integration_tests/web_compile_tests in 1.3s...
Ran pub get in dev/tools/vitool in 1.5s...
Ran pub get in packages/flutter_test in 1.6s...
Ran pub get in packages/flutter_tools/test/data/asset_test/main in 2.1s...
Ran pub get in examples/platform_view in 2.1s...
Ran pub get in packages/integration_test/integration_test_macos in 0.9s...
Ran pub get in packages/flutter_test/test/test_config/project_root in 2.2s...