Skip to content

Commit

Permalink
Merge pull request #932 from kevmoo/credentialless_iframe
Browse files Browse the repository at this point in the history
  • Loading branch information
sarbagyastha authored Apr 12, 2024
2 parents 09a6ec4 + 7828873 commit f54469c
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 11 deletions.
5 changes: 5 additions & 0 deletions packages/youtube_player_iframe_web/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 3.0.2
- Use `credentialless` `iframe`, to allow videos to play in pages with
`Cross-Origin-Embedder-Policy` set.
- Require `sdk: ^3.3.0` and `flutter: '>=3.19.0'`.

## 3.0.1
- Bumps dependencies to latest version.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
import 'dart:async';
import 'dart:convert';
import 'dart:js_interop';
import 'dart:js_interop_unsafe';
import 'dart:ui_web';

import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:web/helpers.dart';
import 'package:web/web.dart';
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart';

Expand Down Expand Up @@ -40,13 +42,22 @@ class WebYoutubePlayerIframeControllerCreationParams

/// The underlying element used as the WebView.
@visibleForTesting
final HTMLIFrameElement ytiFrame =
(document.createElement('iframe') as HTMLIFrameElement)
..id = 'youtube-${_nextIFrameId++}'
..style.width = '100%'
..style.height = '100%'
..style.border = 'none'
..allow = 'autoplay;fullscreen';
final HTMLIFrameElement ytiFrame = HTMLIFrameElement()
..id = 'youtube-${_nextIFrameId++}'
..style.width = '100%'
..style.height = '100%'
..style.border = 'none'
..allow = 'autoplay;fullscreen'
..credentialless = true;
}

extension on HTMLIFrameElement {
// See
// https://developer.mozilla.org/en-US/docs/Web/Security/IFrame_credentialless
// https://developer.chrome.com/blog/anonymous-iframe-origin-trial
set credentialless(bool value) {
this['credentialless'] = value.toJS;
}
}

/// An implementation of [PlatformWebViewController] using Flutter for Web API.
Expand Down
8 changes: 4 additions & 4 deletions packages/youtube_player_iframe_web/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: youtube_player_iframe_web
description: Web implementation of webview_flutter plugin tailored for using with youtube_player_iframe package.
version: 3.0.1
version: 3.0.2
homepage: https://github.com/sarbagyastha/youtube_player_flutter/tree/master/packages/youtube_player_iframe_web

environment:
sdk: '>=3.0.0 <4.0.0'
flutter: '>=3.18.0-0'
sdk: ^3.3.0
flutter: '>=3.19.0'

flutter:
plugin:
Expand All @@ -21,7 +21,7 @@ dependencies:
sdk: flutter
flutter_web_plugins:
sdk: flutter
web: ^0.5.0
web: ^0.5.1
webview_flutter_platform_interface: ^2.10.0

dev_dependencies:
Expand Down

0 comments on commit f54469c

Please sign in to comment.