Deadkeys in xiwi : work only when used twice

I gave xiwi a try : if I don't do anything, I get a qwerty keyboard ; and if I do "setxkbmap -layout fr" (like I do with the usual X11 crouton), then I do get an azerty keyboard, but the dead keys don't work (like they do with the usual X11 crouton). The accentuated letters which are directly accessible with the keyboard do work.

I made more tests (was forced to : since I updated to the devel channel, xiwi was the only way to get my chroot up), and found out that when switching to the fr layout, deadkeys actually do work!

Can you please post the output of croutonversion?

Uh... the result is pretty interesting! The version is unknown, the release is unknown and the architecture is unknown... For the host, things look better: version 68865.0.0 (Official Build) dev-channel daisy-freon.
I can add it's an ARM samsung chromebook.

Ok, so that's freon. I was under the impression that this problem was fixed with freon (see https://code.google.com/p/chromium/issues/detail?id=425156#c16 , #1428 for the same issue on X11).
I'll have a look.

Confirmed on peppy/6885.0.0. Filed a crbug here: https://code.google.com/p/chromium/issues/detail?id=472071 (feel free to star the issue).

croutonversion is working on the stable channel with Samsung ARM, but the -u toggles between two different versions or hashes of crouton (by design?), and croutonversion appears to just read /etc/crouton/xmethod and will display the contents there, even if the user is using xiwi with -X xiwi and vice versa.
(precise)ted@localhost:~$ croutonversion -u
crouton: version 1-20150325193646~master:f7b2a0af
Retrieving latest version of crouton
latest: version 1-20150330191406~master:6b1fd1ef
(precise)ted@localhost:~$ croutonversion -u
crouton: version 1-20150325193646~master:f7b2a0af
Retrieving latest version of crouton
latest: version 1-20150330191406~master:6b1fd1ef
(precise)ted@localhost:~$ croutonversion
crouton: version 1-20150325193646~master:f7b2a0af
release: precise
architecture: armhf
xmethod: xephyr
targets: xfce,xiwi,xephyr
host: version 6680.78.0 (Official Build) stable-channel daisy
kernel: Linux localhost 3.8.11 #1 SMP Fri Mar 20 15:38:03 PDT 2015 armv7l armv7l armv7l GNU/Linux
freon: no
(precise)ted@localhost:~$

Not really relevant to this issue, but croutonversion -u doesn't actually update the chroot; it just reports what the latest upstream version is.  So the first version printed is your current version, and the second is what's available on the internets.

Also not that pertinent but I have an alias defined to update 'crouton':
'alias cru='sudo enter-chroot croutonversion -du'
And similar ones for 'croutoncycle':
alias 0='sudo enter-chroot croutoncycle cros'
alias 1='sudo enter-chroot croutoncycle 1'
alias 2='sudo enter-chroot croutoncycle 2'
alias 3='sudo enter-chroot croutoncycle 3'
alias cros='sudo enter-chroot croutoncycle cros'
alias list='sudo enter-chroot croutoncycle list 2>&1 | grep -iv -e mount
-e entering'
alias next='sudo enter-chroot croutoncycle next'
alias prev='sudo enter-chroot croutoncycle prev'
I find'em pretty handy.
On Tue, Mar 31, 2015 at 2:17 PM, David Schneider<EMAIL_ADDRESS>wrote:

Not really relevant to this issue, but croutonversion -u doesn't actually
update the chroot; it just reports what the latest upstream version is. So
the first version printed is your current version, and the second is what's
available on the internets.
—
Reply to this email directly or view it on GitHub
https://github.com/dnschneid/crouton/issues/1548#issuecomment-88195753.

--
DennyL@GMail

@dnschneid OK, then the wording should be something like: "Retrieving version info. of latest Crouton, but not downloading it"
Unless -d is used to download it, then it could use the current text string.
@DennisLfromGA I'm a pretty fast typer, so croutonversion -d is quite fast. I did find your chroots.sh script a lot faster than croutonversion -al though, but I think it needs to be updated to show encryption and platform status.
I'm not sure what the 0 - 3 and cros, list, next and prev do. I only have 2 chroots, a precise and a kali, and can get into them pretty fast by typing. I do have a script that brings up both in xiwi windows, but it doesnt use croutoncycle, just:
startxfce4 -n precise -b -X xiwi
startxfce4 -n kali -b -X xiwi
or something close to the above.

Still not relevant to the bug.

@dnschneid agree, and when -d is used, the text is fine:
chronos@localhost / $ croutonversion -d -u
crouton: version 1-20140301024303~master:06549cb2
Retreiving latest version of crouton
latest: version
Saving latest version to /home/chronos/user/Downloads/crouton
chronos@localhost / $ which croutonversion
/usr/local/bin/croutonversion
chronos@localhost / $
if anyone else is confused by just -u I can enter a new issue, and possibly even fix it as it appears to be a pie issue, but if no one else is confused by it, there is no need to fix it.

@SnarkBoojum Are you still having the keyboard issues in your original post? If not, feel free to close this open issue.

I downgraded to the beta channel, as I couldn't stand having a broken french keyboard in addition to the broken wifi -- chromeOS has been a pain since months now...
So I can't tell you if the issue is still there unfortunately :-(

I have the same issue on my Asus C300 chromebook with Danish keyboard layout.
(wily)byrial@localhost:~$ croutonversion
crouton: version 1-20151104200003~master:2a1fc9da
release: wily
architecture: amd64
xmethod: xiwi
targets: keyboard,xiwi,xfce-desktop
host: version 7520.63.0 (Official Build) stable-channel quawks
kernel: Linux localhost 3.10.18 #1 SMP Fri Dec 11 19:13:33 PST 2015 x86_64 x86_64 x86_64 GNU/Linux
freon: yes
When I select Danish keyboard in ChromeOS there are two dead keys (with key codes 21 and 35).  But that is independent on the selected keyboard layout in the xiwi window. If I use "setxkbmap -layout dk" they work as dead keys, but have to be used twice to work. If I switch to "setxkbmap -layout us" they are not dead keys (they are = and ]), but they still have to be used twice to work.
However if I select US keyboard in ChromeOS, when all keys works fine in xiwi, again independent on the selected keyboard layout in the xiwi window.
So as a workaround: If I use a keyboard layout without dead keys in ChromeOS, then dead keys works fine in xiwi. (But if use a keyboard layout with dead keys in ChromeOS, then they have to be used twice in xiwi even if they are not dead keys in xiwi).

Isn't this issue not really a duplicate of #1428 (xiwi: Setting a keyboard layout in Chromium OS with dead keys (e.g. US Intl) leads to lost key events)?

Yes, it looks like it! Let me close.


Add polyfill for :checked selector for IE7/8

Fixes problems with custom checkbox display in IE.
[finishes #103204412]

LGTM!


iPhone exit fullscreen and touch interaction

Hi guys,
It seems that something in mediaelement is disabling touch interactions in the area of the player when you exit fullscreen on iphone. The only interactions I can perform are tapping the big play button, or scrolling the page. This means that if there are any other UI elements sitting over the video, you cannot fire the events on these elements.
I am currently developing a responsive, full-screen media browser, so this is a real issue for me - If I play a video on iPhone, I then lose the ability to swipe to the next media item because of this.
Interestingly, this does not appear to happen on iPad, even when I manually put the video into native full-screen mode and exit back out - Touch events still fire just fine. I am assuming that there is some kind of stopPropagation() or something interfering, and I will continue to look into this more, but thought it should be raised here, too.
(Safari, iOS 6.1.3, iPhone 5)
Cheers,
D
// EDIT
The problem seems to reproduce on iPad when the iPadUseNativeControls option is set to true, too, FYI

@djeglin Is this still an issue?

I'm afraid I don't know. I no longer work on the project which this was an issue on, nor for the company at which I worked on it. I would imagine that the code has moved on some in the almost 3 years since this was an issue, though.

Thanks for your response. I'll close it and we can reopen if it raises a concern in the future


MR->VFO and cycling through the bands

go to VFO mode. Enter a frequency (let's call it F1)
go to MR mode. Copy you MR to VFO (F+1) (let's call it F2)
do cycle through out the bands until you return to the first band -> F1 is shown. It that normal ? (I would expect to see F2)

You can redo the steps. At step #2, change F2 (with UP or DOWN key). At step #3 then you will find F2 as expected.

Will be fixed in v2.6


ssl handshake failed crypto error:00000000:lib(0)::reason(0)

Describe the bug
Hello everyone,
I am currently experiencing an issue with Unbound while attempting to establish an SSL connection with 3 of the root DNS servers: b, e, and f. The service starts correctly, but the SSL handshake consistently fails with the following error messages in the logs:
start of service (unbound 1.17.1).
Aug 06 12:01:59 unbound-2 systemd[1]: Started unbound.service - Unbound DNS server.
 Unbound is trying to contact servers on port 53. For me it prints that the channel is closed, and not a list of zeroes. With trying this, I see that B root gives answers on port 853. To configure unbound to use port 853 for the TLS traffic, use config:
stub-zone:
        name: "."
        stub-addr: <IP_ADDRESS>@853
        stub-tls-upstream: yes

The stub-tls-upstream sets it to use tls, and the port number is specified to be correct. A stub-zone is then used instead of the root-hints setting.

you have two options to use DNS Over TLS either with the
forward-zone:
setting: name: "."
forward-tls-upstream: yes
forward-addr<EMAIL_ADDRESS>forward-addr<EMAIL_ADDRESS>and then there is the forward-host option where unbound looks up the names itself. I only gave you an example with Adguard DNS above, you have to adapt it to your provider. or you use as the Unbound dev says the option: stub-zone.

For the stub zone it should look like this again an example:
Stub Zone:
name: "."<EMAIL_ADDRESS>stub-tls-upstream: yes
stub-addr<EMAIL_ADDRESS>stub-addr<EMAIL_ADDRESS>For the Stub Zone it should look like this:
Stub Zone:
name: "."<EMAIL_ADDRESS>stub-tls-upstream: yes
stub-addr<EMAIL_ADDRESS>stub-addr<EMAIL_ADDRESS>You should just try to see if you have to enter this symbol: "." or actually the IP and the name of the provider. I have inserted both for you but it's exactly the same here, you have to enter the provider you want to use.


Rebuild the .rds files and then everyone download

[ ] Chris to rebuild all the .rds files EXCEPT last.yr.base.model, as calc.mcmc() no longer dividing by 2 in 9bfca8e.
No rush since may be re-running base model, and age-1 index, and maybe the bridging models (#880).

Tick off when you've downloaded the new .rds files:

[ ] Chris

[ ] Kelli

[ ] Aaron

[ ] Andy

[ ] Andy will check that this fixes the Tables and Figures mentioned in #820.

Just noting that I changed a forecast quantity, but this should be taken care of when we rebuild the rds file which hasn't been done yet.  The change was to update the 2021 TAC forecast run to the correct value, 473880, as it was still set at the 2020 TAC of 529290.

Everything is done except for the base model. I didn't bother because we may be changing it Mon Jan 24. If it changes it will just be for diagnostic purposes and should not affect the parameter estimates.

@chris Do you have time to rebuild the base model .rds? I know it will likely get redone anyway, but there's a bunch of results/figures that can't quite be checked until it's re-run (but are fixed in the build .rds code). Depends when the model's being re-run with new catch value.

I re-ran the forecasting last night and went to bed but the build RDS failed, so I am trying again now.

Base model with "good" diagnostics and corrected forecast value done. It is huge, 3.3 GB. Download like this:
s3_quick_download("models/2022.01.10_base_v2/2022.01.10_base_v2.rds")
If that fails try this:
s3_download("models/2022.01.10_base_v2/2022.01.10_base_v2.rds")

Presumably will also need
s3_quick_download(folders="models/2022.01.10_base_v2", ext = "ss")

for the appendices.

s3_quick_download() only works with a vector of exactly named files, not with ext because there is no index for it to compare to. Downloading the index (list of files) is why it takes so long. There are like 5,000,000 files!!

Thought so, it worked okay. Just building....

everyone checked off their name, so closing


Add property to indicate how to evaluate the measured QA in comparison to the expected QA

In the current TOMASys/Metacontrol implementation, we need to write a SWRL rule for each QA type we use to infer when the QA is violated. The comparison operator (e.g., greater than, less than etc.) is hard-coded in the rule, e.g. swrlb:greaterThan(?qav, ?nfrv) . It would be interesting to be able to model which operator to use.
I suggest adding a comparison_operator property to QualittyAttributeType to indicate which operator to use, and limit its values to {<, <=, >, >=}.
This opens the possibility to have more general rules.


BUGFIX: Follow-up

A follow up to #245 fixing the DoctrineEventStorage so that it
actually exits the retry-loop when successful (*doh).


About heading font is not good

@venkatasai24 Share a Screenshot

Yeah, here is the screenshot you asked for
@HimanshuNarware
As we can see the font of remaining sub headings are much better than the main heading..

I request you to assign it to me!!

@HimanshuNarware  Also, on the documentation page, the font is bad and the font size of 'step'  is not appropriate!!

@venkatasai24  ok start working on that

yeah ,completed it,pls review the pull request I made @HimanshuNarware

@venkatasai24 Kindly assign this task to me


click point on element

As a tester I need to be able to click on a point on an element to be able to verify things like sliders

Fixed with #341


(PUP-9395) specify version-specific documentation params with install

With this commit, install specifies version-specific parameters to not install
documentation, and specify those parameters independent of the source parameter.

CLA signed by all contributors.

Added a commit implementing a common execute_gem_command method.
This commit also reverts the unrelated change with source.

@tkishel it looks like this PR has two commits in it with the same message - should they be squashed? Otherwise I think we're good to get this merged now

That's because Josh asked for:

It might be good to have a general gem_command method

So if we did want that, we could squash them;
and if not, we could drop the second commit and just update the document flags :)
Can you squash them, or do I need to?

@tkishel Ah, I see what's in the second commit now. I think that's enough of a change from what this PR does that it should be its own commit still, just with a new commit message describing how stuff got moved to the common method (and why). Once you've got that reworded, I think I can merge this :+1:

So ...
Modify the body of the second commit message and/or the title?
And keep the second commit in this PR?

Yeah, keep the second command and update both the title and body (I guess mark it as (maint) in the title, since it's not really part of fixing PUP-9395?)


[DevOps]: Speed up integration tests on GitHub Actions by caching test data downloads

Overview
We run the CI/CD workflow for pull requests and pushes to main, which takes around 11-13 minutes.
The testing step takes up ~75% of the build time. Most of this time is from downloading the test data from LCRC.
The Problem
This slow build time has a hidden cost that impacts overall productivity:

...developers could either be waiting the entire time a build runs or end up context-switching to work on something else while a build runs. Both of these impact overall productivity (more on this below).
-- https://github.blog/2022-12-08-experiment-the-hidden-costs-of-waiting-on-slow-build-times/

Possible Solutions
Look into caching the test download data. We need to develop a scheme for refreshing the cached download data too.
https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows

+1 on the productivity, and thanks for including the links 😃

Of course @mahf708! I'm always onboard for efficiency and improvements.

In PR #747, I cleaned up integration tests and removed redundant ones. This cut the total build time to ~6 minutes. Here's an a build run showing these improvements: https://github.com/E3SM-Project/e3sm_diags/actions/runs/7199737714
The remaining integration is an image diff check. It performs a diagnostic run using default sets and a list of parameters This test diagnostic run is pretty heavy, which is why it takes ~3 minutes.
It actually only takes ~30 secs to download the integration test data and images. It is still a good idea to cache these resources because they don't change often.


Remove out/in parameters from function pointers to avoid generating marshalling stubs.

Contributes to #1315 and #1318

Some of these are already addressed in the staging/aot branch.  But these changes might be worth having in master before the aot branch is merged.  We should do a comparison between the changes here and there and make sure they are done in the same way or any that are missing there are ported.

change the target branch for this PR to staging/AOT

Didn't Mano say that the changes should probably be merged to master before we officially merge the AOT branch?

It just feels like a recipe to have a bazillion merge conflicts. I don't really see the point of merging them first. You don't gain much even if you published another patch release from master, just with this, if you don't have all the other improvements from the AOT branch anyway. Just seems like extra (and very annoying) work for no reason. Better ways to spend your time 😅

Some of these fixes have been implemented in the AOT branch, so I feel like rebasing this would probably lead to lots of duplicates.

You would have to deal with that eventually anyway. My point is, we can at least just do it once, in the AOT branch.

The point of this PR would be to bring some of this from staging/AOT to master. Everything should be already in staging/AOT. If something is missing I can see about porting those change to staging/AOT.


I can't configure aws_appsync_domain_name and aws_appsync_domain_name_api_association because it requires certificates with valid domains

What happened?
When testing aws_appsync_domain_name I got the following error:
    message: 'apply failed: error creating Appsync Domain Name: BadRequestException:
      Certificate is invalid.: '

A valid domain is needed to validate the certificate. The final version of the example is below:
apiVersion: appsync.aws.upbound.io/v1beta1
kind: DomainName
metadata:
  annotations:
    crossplane.io/external-name: example-dns.upbound-providers.io
    meta.upbound.io/example-id: appsync/v1beta1/domainname
  labels:
    testing.upbound.io/example-name: example
  name: example
spec:
  forProvider:
    certificateArnSelector:
      matchLabels:
        testing.upbound.io/example-name: certificate
    region: us-east-1
---
apiVersion: acm.aws.upbound.io/v1beta1
kind: Certificate
metadata:
  name: example-dns
  labels:
    testing.upbound.io/example-name: certificate
spec:
  forProvider:
    region: us-east-1
    domainName: example-dns.upbound-providers.io
    tags:
      Environment: test
    validationMethod: DNS

How can we reproduce it?

Cut resource from config/externalnamenottested.go
Paste it into config/externalname.go
Run make generate for CRD generation.
Copy examples-generated to examples
I added the resources it depends on the example and fix example
Run make generate
Apply CRDs with kubectl apply -f package/crds
Run make uptest UPTEST_EXAMPLE_LIST=examples/appsync/domainname.yaml

What environment did it happen in?
Local development

Hi,
Just wondering if any progress had been made on this? Or if not if there is plans to pick this up soon?


[Docs]: Update the notice design

Is there an existing issue for this?

[X] I have searched the existing issues

Engineering Ticket Link
NA
Release Date
NA
Release Number
NA
First Draft
NA
Loom video
No response
Discord/slack/intercom Link if needed
No response
PRD
No response
Test plan/cases
No response
Use cases or user requests
Update the design for notices. Something similar to https://developers.google.com/style/notices#examples

@vasanthappsmith - Could you please add this to the design pipeline, once the designs are ready please pass it on to the doc team.

Here it is Figma

@vasanthappsmith - As discussed earlier, here are the callouts available in Docusaurus. Could you please modify the design for these?

Closing this. We will revisit if needed.


Add leaderboard for curators

One of the ways we want to encourage curation of data is to add a leaderboard that highlights the amount individuals have curated and contributed to the website.

This is related to #31 and the more outlandish ideas in #111. One add-on in terms of how to present this would be to keep an eye on when someone started contributing, so if you're looking for how much you've curated in relation to others, you might get an overall understanding, but also an understanding of how much you've contributed in relation to those who started contributing around the same time as you.
And of course: as this is related to trust in the data, don't focus only on the amount of contribution, but also aim to make the individual contributions accessible through this (challenge, as they might be too many).


add informations about David J. Malan

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Copied from https://en.wikipedia.org/wiki/David_J._Malan


Black Screen with Audio Issue on Video Playback Across Different Systems

One issue I've had with this package from the beginning is that on some users' systems, videos play perfectly without any problems (even on systems with the weakest resources).
However, on some other systems, the videos won't play; instead, there's only audio with a black screen.
What's interesting is that, for example, someone with Windows 11 and high-end specs gets the black screen issue, while another person with Windows 7 and minimal system resources can play the videos without any problem.
It's really strange, and now many of our customers are complaining that they only get audio with a black screen but no video.
I was hoping you could guide me and provide a solution to help my customers.
I've attached the log files and system images from one of my customers.
Thank you so much!

Log :
logger (1).txt

FINEST: 2024-12-15 12:15:45.501126: Added p--column widget

k for P tag
SPAN tag
g
FINE: 2024-12-15 12:17:03.352516: Built body successfuly.
t
INFO: 2024-12-15 12:17:41.571386: 00000222DDA6FC80 MediaControl.prepare(0, ...) mem://2349007654976+FINEST: 2024-12-15INFO: 2024-12-15 12:17:41.571386: default00000222E1E516B0 FINE: 2024-12-15 12:17:41.572385: 00000222E1E516B0start frame reader thread: 11092
x86)\KarimiAcademy\KarimiAcademy\Release\ffmpeg-7.dll
FINE: 2024-12-15 12:17:41.670800: ffmpeg loaded: C:\Program Files (x86)\KarimiAcademy\KarimiAcademy\Release\ffmpeg-7.dll
FINE: 2024-12-15 12:17:41.681795: [FFmpeg:mov,mp4,m4a,3gp,3g2,mj2] Protocol name not provided, cannot determine if input is local or a network protocol, buffers and access patterns cannot be configured optimally without knowing the protocol
FINE: 2024-12-15 12:17:41.676799: default 00000222E1E516B0 FrameReader::update MediaStatus 0X2=>0X2
FINE: 2024-12-15 12:17:41.682796: after avformat_open_input. pb: 00000222DDCE4080, iformat: 00007FFBCFAA6820, context flags: 2097280, input format flags: 67141640
detect --disable-iamf --enable-libvpl --disable-ptx-compression --enable-mediafoundation --disable-postproc --toolchain=msvc --windres=llvm-windres --extra-windresflags='--target=x86_64-pc-windows-msvc -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.41.34120/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.41.34120/ATLMFC/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Auxiliary/VS/include -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/ucrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/um -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/shared -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/winrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/cppwinrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/NETFXSDK/4.8/include/um' --enable-pic --extra-cflags='-I/d/a/avbuild/avbuild/tools/Vulkan-Headers/include -MD -Zi -FS -guard:cf -I/d/a/avbuild/avbuild/tools/dep/include -D_WIN32_WINNT=0x0600' --extra-ldflags='-NODEFAULTLIB:libcmt -DEBUG -guard:cf -OPT:REF -SUBSYSTEM:CONSOLE' --enable-small --disable-outdevs --disable-filters --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-protocols --disable-filter=scale_cuda --enable-decoder='*sub*,movtext,*web*,aac*,ac3*,eac3*,alac*,ape,ass,av1*,ccaption,cfhd,cook,dca,dnxhd,exr,truehd,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*[mj]peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe,ffv*' --enable-demuxer='*sub*,*ac3,*ac,*avs*,*[mj]peg*,*vc*,*web*,au,ape,ass,av[1i],concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,kux,matroska,mov,mp3,mxf,obu,ogg,pcm*,rawvideo,rt*p,spdif,srt,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='*_at,aac,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,vp[8-9]*,wrapped_avframe,ff*,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis,*yuv*' --enable-muxer='*jpeg,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*,og*' --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,atempo,pan,crop,eq*,framerate,hw*,scale,volume,yadif*,allrgb,allyuv,*bars,color,test*,*key,draw*,*_qsv,*_vaapi,*v4l2*' --enable-protocol='cache,concat*,crypto*,data,fd,*file,ftp,h*,i*,pipe,rt*,s*,t*,u*'
FINE: 2024-12-15 12:17:41.671803: global option: ffmpeg.configuration = --extra-version=avbuild --disable-doc --disable-debug --enable-shared --enable-runtime-cpudetect --disable-iamf --enable-libvpl --disable-ptx-compression --enable-mediafoundation --disable-postproc --toolchain=msvc --windres=llvm-windres --extra-windresflags='--target=x86_64-pc-windows-msvc -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.41.34120/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.41.34120/ATLMFC/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Auxiliary/VS/include -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/ucrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/um -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/shared -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/winrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/cppwinrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/NETFXSDK/4.8/include/um' --enable-pic --extra-cflags='-I/d/a/avbuild/avbuild/tools/Vulkan-Headers/include -MD -Zi -FS -guard:cf -I/d/a/avbuild/avbuild/tools/dep/include -D_WIN32_WINNT=0x0600' --extra-ldflags='-NODEFAULTLIB:libcmt -DEBUG -guard:cf -OPT:REF -SUBSYSTEM:CONSOLE' --enable-small --disable-outdevs --disable-filters --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-protocols --disable-filter=scale_cuda --enable-decoder='*sub*,movtext,*web*,aac*,ac3*,eac3*,alac*,ape,ass,av1*,ccaption,cfhd,cook,dca,dnxhd,exr,truehd,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*[mj]peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe,ffv*' --enable-demuxer='*sub*,*ac3,*ac,*avs*,*[mj]peg*,*vc*,*web*,au,ape,ass,av[1i],concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,kux,matroska,mov,mp3,mxf,obu,ogg,pcm*,rawvideo,rt*p,spdif,srt,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='*_at,aac,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,vp[8-9]*,wrapped_avframe,ff*,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis,*yuv*' --enable-muxer='*jpeg,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*,og*' --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,atempo,pan,crop,eq*,framerate,hw*,scale,volume,yadif*,allrgb,allyuv,*bars,color,test*,*key,draw*,*_qsv,*_vaapi,*v4l2*' --enable-protocol='cache,concat*,crypto*,data,fd,*file,ftp,h*,i*,pipe,rt*,s*,t*,u*'
FINE: 2024-12-15 12:17:41.717775: supports 216 ffmpeg sw pixel formats. unsupported: uyyvyy411 rgb8 x2rgb10be x2bgr10be gbrap14be gbrap14le rgbf16be rgba128be rgba128le rgb96be rgb96le y216be y216le
FINE: 2024-12-15 12:17:41.671803: global option: ffmpeg.version = 7
FINE: 2024-12-15 12:17:41.671803: 00000222DDD68C40 url opened
FINE: 2024-12-15 12:17:41.671803: Selected avformat runtime version: 61.9.100 (build: 61.9.100), license: LGPL version 2.1 or later
FINE: 2024-12-15 12:17:41.671803: url is not supported by MediaIO FFmpeg
pdate MediaStatus 0X2=>0X4
FINE: 2024-12-15 12:17:41.671803: Selected avcodec runtime version: 61.24.100 (build: 61.24.100), license: LGPL version 2.1 or later
FINE: 2024-12-15 12:17:41.717775:<PHONE_NUMBER> player2348838410352 onEvent: metadata -  - 0
FINE: 2024-12-15 12:17:41.718776: 00000222E1E516B0 start to decode video#0 packet @0.057100/0.000000 pos: 41707
FINE: 2024-12-15 12:17:41.719774: 00000222E1E516B0 start to decode audio#1 packet @0.000000/0.000000 pos: 63686
FINE: 2024-12-15 12:17:41.730767:<PHONE_NUMBER> player2348838410352 onEvent: thread.audio -  - 1
INFO: 2024-12-15 12:17:41.717775: Format: mov,mp4,m4a,3gp,3g2,mj2, range: 0 +115680ms, bitrate: 229654, size: 0
Metadata:
  creation_time: 2021-11-08T14:49:09.000000Z
  major_brand: mp42
  minor_version: 0
  comment: Captured with Snagit 2<IP_ADDRESS>89
Webcam - Microsoft Camera Front
Microphone - Microphone Array (Realtek High Definition Audio(SST))

  compatible_brands: mp41isom
Streams: 2
 Video:
  stream#0, range: 57 +115623FINE: 2024-12-15 12:17:41.736763: a3->QueryVideoMemoryInfo(0, DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL, &vmi[1]) ERROR@171 DumpInfo: (0X8876086A) unknown error
 fps: 8.99478, bframes: 0
  extra data(41): 01 4D 00 28 FF E1 00 1A 27 4D 00 28 95 A0 19 40 89 F9 F0 11 00 00 03 00 01 00 00 03 00 3C 8D A1 C3 2A 01 00 04 28 EE 3C 80
  Metadata:
   creation_time: 2021-11-08T14:49:09.000000Z
   language: und
   encoder: AVC Coding
   handler_name: VideoHandler
   vendor_id: [0][0][0][0]
 Audio:
  stream#1, range: 0 +115589ms, frames: 4978
  codec: aac tag: 'mp4a' profile: 1 level: -99, sample size: 0/16, block align: 0, frame_size: 1024, f32p stereo(2) @44100Hz, bitrate: 133560
  extra data(2): 12 10
  Metadata:
   creation_time: 2021-11-08T14:49:09.000000Z
   language: und
   handler_name: SoundHandler
   vendor_id: [0][0][0][0]

X124
FINE: 2024-12-15 12:17:41.748756: try to convert mp4 extra data to annexb
1.000000)
FINE: 2024-12-15 12:17:41.734765:<PHONE_NUMBER> player2348838410352 onEvent: reader.buffering -  - 100
FINE: 2024-12-15 12:17:41.749755: nal length field bytes: 4, annexb extradata size: 38
FINE: 2024-12-15 12:17:41.736763:
058376970 player2348838410352 onMediaStatus: MediaStatus(+loaded+buffering) => MediaStatus(+loaded+prepared+buffered)
FINE: 2024-12-15 12:17:41.745758: default FrameReader00000222E1E516B0 request to pause 1, loaded: 4.

FINE: 2024-12-15 12:17:41.798726: max supported size: 7680x4320
FINE: 2024-12-15 12:17:41.754752: struct ComInit *__cdecl ThreadLocal<struct ComInit>::get(void) const allocate and initialize ThreadLocal data
FINE: 2024-12-15 12:17:41.718776: default FrameReader00000222E1E516B0 state: 0=>2=>1, 1
AMD Radeon HD 6470M
INFO: 2024-12-15 12:17:41.735764: 00000222DDA6FC80 seek end audio frame @0.000000 seek_pos_: -1, sync_ao_ 1
TE=93360, MF_MT_MAJOR_TYPE=MFMediaType_Video, MF_MT_DEFAULT_STRIDE=1616, MF_MT_FIXED_SIZE_SAMPLES=1, MF_MT_VIDEO_ROTATION=0, MF_MT_FRAME_RATE=128849018881001 (30000:1001), MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1:1), MF_MT_ALL_SAMPLES_INDEPENDENT=1, MF_MT_SAMPLE_SIZE=2608224, MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_NV12,
FINE: 2024-12-15 12:17:41.745758: default FrameReader00000222E1E516B0 request to pause 0, loaded: 4.
e.paused => PlaybackState.playing
T_FRIENDLY_NAME_Attribute=Microsoft H264 Video Decoder MFT, MFT_INPUT_TYPES_Attributes=(64)[{MFMediaType_Video,MFVideoFormat_H264},{MFMediaType_Video,MFVideoFormat_H264_ES}], MFT_TRANSFORM_CLSID_Attribute=CLSID_MSH264DecoderMFT, MFT_OUTPUT_TYPES_Attributes=(160)[{MFMediaType_Video,MFVideoFormat_NV12},{MFMediaType_Video,MFVideoFormat_YV12},{MFMediaType_Video,MFVideoFormat_IYUV},{MFMediaType_Video,MFVideoFormat_I420},{MFMediaType_Video,MFVideoFormat_YUY2}], MF_TRANSFORM_FLAGS_Attribute=1, MF_TRANSFORM_CATEGORY_Attribute=MFT_CATEGORY_VIDEO_DECODER,
, delta: -66 +0.023220
FINE: 2024-12-15 12:17:41.842698: selected IMFMediaType index: 0
FINE: 2024-12-15 12:17:41.839700: stream cout: in=1, out=1
ream#1 AOT frame is sent
rPoolFINE: 2024-12-15 12FINE: 2024-FINE: 2024-12-15 12:17:41.840699: 2 attributes: MF_MT_MAJOR_TYPE=MFMediaType_Video, MF_MT_SUBTYPE=MFVideoFormat_H264_ES,
_MAJOR_TYPE=MFMediaType_Video, MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_H264,
ds=4, CODECAPI_AVLowLatencyMode=1, MFT_DECODER_QUALITY_MANAGEMENT_CUSTOM_CONTROL=0, {ac2c1838-1eb9-4933-85a3-cd62d1b9ec1b}=0, MFT_DECODER_QUALITY_MANAGEMENT_RECOVERY_WITHOUT_ARTIFACTS=1, MF_SA_D3D_AWARE=1, MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER=0, CODECAPI_AVDecVideoAcceleration_H264=1,
laybackStateChanged: PlaybackState.playing => PlaybackState.paused
FINE: 2024-12-15 12:17:41.860688: insert CSD
FINE: 2024-12-15 12:17:41.735764: a3->QueryVideoMemoryInfo(0, DXGI_MEMORY_SEGMENT_GROUP_LOCAL, &vmi[0]) ERROR@170 DumpInfo: (0X8876086A) unknown error
FINE: 2024-12-15 12:17:41.864685: MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS
FINE: 2024-12-15 12:17:41.864685: selectOutputType for stream id 0
t--[44100Hz fltp:stereo]--swr:default
| (abuffer) |
+-----------+

                                          +---------------+
swr:default--[44100Hz flt:stereo]--default|      dst      |
                                          | (abuffersink) |
                                          +---------------+

                                           +-------------+
src:default--[44100Hz fltp:stereo]--default|     swr     |default--[44100Hz flt:stereo]--dst:default
                                           | (aresample) |
                                           +-------------+

 MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_NV12,
FINE: 2024-12-15 12:17:41.864685: 17 attributes: MF_MT_FRAME_SIZE=6940667151424 (1616x1088), MF_MT_AVG_BITRATE=93360, MF_MT_MAJOR_TYPE=MFMediaType_Video, MF_MT_DEFAULT_STRIDE=1616, MF_MT_D3D_DECODE_PROFILE_GUID=PROFILE_H264, MF_MT_GEOMETRIC_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_PAN_SCAN_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_FIXED_SIZE_SAMPLES=1, MF_MT_VIDEO_NOMINAL_RANGE=2, MF_MT_VIDEO_ROTATION=0, MF_MT_FRAME_RATE=128849018881001 (30000:1001), MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1:1), MF_MT_ALL_SAMPLES_INDEPENDENT=1, MF_MT_MINIMUM_DISPLAY_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_SAMPLE_SIZE=2637312, MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_NV12,
FINE: 2024-12-15 12:17:41.870683: output stream info: dwFlags=263, cbSize=3516416, cbAlignment=0
FINE: 2024-12-15 12:17:41.842698: 12 attributes: MF_MT_FRAME_SIZE=6940667151412 (1616x1076), MF_MT_AVG_BITRATE=93360, MF_MT_MAJOR_TYPE=MFMediaType_Video, MF_MT_DEFAULT_STRIDE=1616, MF_MT_FIXED_SIZE_SAMPLES=1, MF_MT_VIDEO_ROTATION=0, MF_MT_FRAME_RATE=128849018881001 (30000:1001), MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1:1), MF_MT_ALL_SAMPLES_INDEPENDENT=1, MF_MT_SAMPLE_SIZE=2608224, MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_I420,
FINE: 2024-12-15 12:17:41.870683: 00000222E1EA4EA0 19 attributes: MF_MT_FRAME_SIZE=6940667151424 (1616x1088), MF_MT_AVG_BITRATE=93360, MF_MT_COMPRESSED=0, MF_MT_MAJOR_TYPE=MFMediaType_Video, MF_MT_DEFAULT_STRIDE=1616, MF_MT_D3D_DECODE_PROFILE_GUID=PROFILE_H264, MF_MT_GEOMETRIC_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_PAN_SCAN_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_AVG_BIT_ERROR_RATE=0, MF_MT_FIXED_SIZE_SAMPLES=1, MF_MT_VIDEO_NOMINAL_RANGE=2, MF_MT_VIDEO_ROTATION=0, MF_MT_FRAME_RATE=128849018881001 (30000:1001), MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1:1), MF_MT_ALL_SAMPLES_INDEPENDENT=1, MF_MT_MINIMUM_DISPLAY_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_SAMPLE_SIZE=2637312, MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_NV12,
FINE: 2024-12-15 12:17:41.864685: selected IMFMediaType index: 0
FINE: 2024-12-15 12:17:41.842698: onOutputTypeChanged: 14 attributes: MF_MT_FRAME_SIZE=6940667151412 (1616x1076), MF_MT_AVG_BITRATE=93360, MF_MT_COMPRESSED=0, MF_MT_MAJOR_TYPE=MFMediaType_Video, MF_MT_DEFAULT_STRIDE=1616, MF_MT_AVG_BIT_ERROR_RATE=0, MF_MT_FIXED_SIZE_SAMPLES=1, MF_MT_VIDEO_ROTATION=0, MF_MT_FRAME_RATE=128849018881001 (30000:1001), MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1:1), MF_MT_ALL_SAMPLES_INDEPENDENT=1, MF_MT_SAMPLE_SIZE=2608224, MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_NV12,
FINE: 2024-12-15 12:17:41.870683: onOutputTypeChanged: 19 attributes: MF_MT_FRAME_SIZE=6940667151424 (1616x1088), MF_MT_AVG_BITRATE=93360, MF_MT_COMPRESSED=0, MF_MT_MAJOR_TYPE=MFMediaType_Video, MF_MT_DEFAULT_STRIDE=1616, MF_MT_D3D_DECODE_PROFILE_GUID=PROFILE_H264, MF_MT_GEOMETRIC_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_PAN_SCAN_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_AVG_BIT_ERROR_RATE=0, MF_MT_FIXED_SIZE_SAMPLES=1, MF_MT_VIDEO_NOMINAL_RANGE=2, MF_MT_VIDEO_ROTATION=0, MF_MT_FRAME_RATE=128849018881001 (30000:1001), MF_MT_PIXEL_ASPECT_RATIO=4294967297 (1:1), MF_MT_ALL_SAMPLES_INDEPENDENT=1, MF_MT_MINIMUM_DISPLAY_APERTURE=(16) 0 0 0 0 0 0 0 0 50 6 0 0 34 4 0 0, MF_MT_SAMPLE_SIZE=2637312, MF_MT_INTERLACE_MODE=7, MF_MT_SUBTYPE=MFVideoFormat_NV12,
FINE: 2024-12-15 12:17:41.870683: used output type:
FINE: 2024-12-15 12:17:41.870683: output format: nv12, bpc:8, bpp:12(8,16), channels:(1,2), map: 0 1 2 0
FINE: 2024-12-15 12:17:41.871682: video area: (0, 0) 1616x1076
FINE: 2024-12-15 12:17:51.116221: default 00000222E1E516B0-FrameReader::seek(9308, 0X402)
2 +FromStart). now: 9136
FINE: 2024-12-15 12:17:51.117201: default 00000222E1E516B0 FrameReader::update MediaStatus 0X124=>0X1A4
FINE: 2024-12-15 12:17:51.117201: 00000222E1E516B0 default FrameReaderImpl::seekTo(9308, 0X402 #1)
FINE: 2024-12-15 12:17:51.130198: invalid audio frame @-1.000000
FINE: 2024-12-15 12:17:51.117201:<PHONE_NUMBER> player2348838410352 onMediaStatus: MediaStatus(+loaded+prepared+buffered) => MediaStatus(+loaded+prepared+buffered+seeking)
FINE: 2024-12-15 12:17:51.187696: default 00000222E1E516B0-FrameReader::seek(9430, 0X402)
FINE: 2024-12-15 12:17:51.167709: >>>>>>>>1st audio frame (after seek) rendered: 1, ao: 9249, a: 9311, delta: -62 +0.023220
FINE: 2024-12-15 12:17:51.187696: default FrameReader 00000222E1E516B0 seek target 9430ms skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:51.218676: 00000222DDA6FC80-MediaControl::seek(pos: 9553, flag:0X402 +FromStart). now: 9430
FINE: 2024-12-15 12:17:51.226672: default 00000222E1E516B0-FrameReader::seek(9920, 0X402)
FINE: 2024-12-15 12:17:51.234666: default FrameReader 00000222E1E516B0 seek target 10043ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.130198: 00000222E1E516B0 audio stream#1 is seeking #1... got flush pkt. flush decodeFINE: 2024-12-15 12:17:51.130198: 00000222E1E516B0 #1/1 audio seek_done: 1, seek_wait_frame_: 0/1
11201s. seeking: 0
024-12-15 12:17:51.167709: 00000222E1E516B0 audio stream#1 AOT frame is sent
0288ms skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:51.274642: 00000222DDA6FC80-MediaControl::seek(pos: 11757, flag:0X402 +FromStart). now: 11267
NE: 2024-12-15 12:17:51.282636: seeking media's position is 11757=====
FINE: 2024-12-15 12:17:51.206684: seeking media's position is 9430=====
26, ...)
FINE: 2024-12-15 12:17:51.217675: 00000222E1ADE8A0 player.seek(9553, 1026, ...)
et 9553ms FINE: 2024-12-15 12:17:51.250656: seeking media's position is 10288=====
, ...)
 flag:0X402 +FromStart). now: 9553
requested
FINE: 2024-12-15 12:17:51.234666: seeking media's position is 9920=====
s: 10655, flag:0X402 +FromStart). now: 10288
INE: 2024-12-15 12:17:51.237665: seeking media's position is 10043=====
FINE: 2024-12-15 12:17:51.242661: 00000222E1ADE8A0 player.seek(10288, 1026, ...)
 flag:0X402 +FromStart). now: 10043
FINE: 2024-12-15 12:17:51.258651: 00000222E1ADE8A0 player.seek(10900, 102FINE: 2024-12-15 12:17:51.258651: default FrameReader 00000222E1E516B0 seek target 10900ms skipped: 1 frequent seek requested
eeking media's position is 12247=====
6, ...)
4, 0X402)
2 +FromStart). now: 10655
INFO: 2024-12-15 12:17:51.354592: 00000222DDA6FC80-MediaControl::seek(pos: 15432, flag:0X402 +FromStart). now: 15309
FINE: 2024-12-15 12:17:51.338602: seeking media's position is 14574=====
ek targeFINE: 2024-12-15 12:17:51.298628: default FrameReader 00000222E1E516B0 seek targeFINE: 2024-12-15 12:17:51.417554: seeking media's position is 17759=====
eek(12982, 0X402)
FINE: 2024-12-15 12:17:51.290632: default 00000222E1E516B0-FrameReader::seek(1249FINE: 2024-12-15 12:17:51.306623: 00000222E1ADE8A0 player.seek(13472, 1026, ...)
t 16167ms skipped: 1 frequent seek requested
efault 00000222E1E516B0-FrameReader::seek(13962, 0X402)
2 +FromStart). now: 14942
equested
INFO: 2024-12-15 12:17:51.451534: 00000222DDA6FC80-MediaControl::seek(pos: 19228, flag:0X402 +FromStart). now: 18984
equested
INFO: 2024-12-15 12:17:51.338602: 00000222DDA6FC80-MediaControl::seek(pos: 14942, flag:0X402 +FromStart). now: 14574
FINE: 2024-12-15 12:17:51.498506: default FrameReader 00000222E1E516B0 seek target 20331ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.514495: 00000222E1ADE8A0 player.seek(20576, 1026, ...)
FINE: 2024-12-15 12:17:51.498506: default 00000222E1E516B0-FrameReader::seek(20331, 0X402)
FINE: 2024-12-15 12:17:51.537480: seeking media's position is 21066=====
6, ...)
FINE: 2024-12-15 12:17:51.514495: default 00000222E1E516B0-FrameReader::seek(20576, 0X402)
FINE: 2024-12-15 12:17:51.562437: seeking media's position is 21678=====
FINE: 2024-12-15 12:17:51.354592: default FrameReader 00000222E1E516B0 seek target 15432ms skipped: 1 frequent seek requested
6FC80-MediaControl::seek(pos: 16779, flag:0X402 +FromStart). now: 16411
FINE: 2024-12-15 12:17:51.402562: default 00000222E1E516B0-FrameReader::seek(17514, 0X402)
INFO: 2024-12-15 12:17:51.466524: 00000222DDA6FC80-MediaControl::seek(posFINE: 2024-12-15 12:17:51.394568: seeking media's position is 16779=====
: 15799, flag:0X402 +FromStart). now: 15432
000222E1EINFO: 2024-12-15 12:17:51.474520: 00000222DDA6FC80-MediaControl::seek(pos: 19841, flag:0X402 +FromStart). now: 19596
equested
4-12-15 12:17:51.410558: seeking media's position is 17514=====
: 20576, flag:0X402 +FromStart). now: 20331
FINE: 2024-12-15 12:17:51.546440: 00000222E1ADE8A0 player.seek(21433, 1026, ...)
INFO: 2024-12-15 12:17:51.522490: 00000222DDA6FC80-MediaControl::seek(pos: 20821, flag:0X402 +FromStart). now: 20576
FINE: 2024-12-15 12:17:51.530486: default FrameReader 00000222E1E516B0 seek target 21066ms skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:51.634391: 00000222DDA6FC80-MediaControl::seek(pos: 21923, flag:0X402 +FromStart). now: 21800
FINE: 2024-12-15 12:17:51.466524: default 00000222E1E516B0-FrameReader::seek(19596, 0X402)
FINE: 2024-12-15 12:17:51.634391: default 00000222E1E516B0-FrameReader::seek(21923, 0X402)
FINE: 2024-12-15 12:17:51.538481: seeking media's position is 21066=====
INFO: 2024-12-15 12:17:51.530486: 00000222DDA6FC80-MediaControl::seek(pos: 21066, flag:0X402 +FromStart). now: 20821
equested
INFO: 2024-12-15 12:17:51.546440: 00000222DDA6FC80-MediaControl::seek(pos: 21433, flag:0X402 +FromStart). now: 21188
equested
FINE: 2024-12-15 12:17:51.418553: 00000222E1ADE8A0 player.seek(18126, 1026, ...)
t 18861ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.538481: default FrameReader 00000222E1E516B0 seek target 21188ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.458530: seeking media's position is 19228=====
FINE: 2024-12-15 12:17:51.554440: seeking media's position is 21433=====
INFO: 2024-12-15 12:17:51.562437: 00000222DDA6FC80-MediaControl::seek(pos: 21800, flag:0X402 +FromStart). now: 21678
FINE: 2024-12-15 12:17:51.546440: default 00000222E1E516B0-FrameReader::seek(21433, 0X402)
INFO: 2024-12-15 12:17:51.538481: 00000222DDA6FC80-MediaControl::seek(pos: 21188, flag:0X402 +FromStart). now: 21066
FINE: 2024-12-15 12:17:51.706857: default 00000222E1E516B0-FrameReader::seek(22045, 0X402)
FINE: 2024-12-15 12:17:51.657378: seeking media's position is 21923=====
FINE: 2024-12-15 12:17:51.706857: default FrameReader 00000222E1E516B0 seek target 22045ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.410558: default FrameReader 00000222E1E516B0 seek target 17759ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.705858: 00000222E1ADE8A0 player.seek(22045, 1026, ...)
FINE: 2024-12-15 12:17:51.451534: default FrameReader 00000222E1E516B0 seek target 19228ms skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:51.706857: 00000222DDA6FC80-MediaControl::seek(pos: 22045, flag:0X402 +FromStart). now: 21923
FINE: 2024-12-15 12:17:51.546440: default FrameReader 00000222E1E516B0 seek target 21433ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.706857: seeking media's position is 21923=====
eek(20821, 0X402)
skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:51.554440: default 00000222E1E516B0-FrameReader::seek(21678, 0X402)
FINE: 2024-12-15 12:17:51.378577: default 00000222E1E516B0-FrameReader::seek(16411, 0X402)
FINE: 2024-12-15 12:17:51.474520: 00000222E1ADE8A0 player.seek(19841, 1026, ...)

FINE: 2024-12-15 12:17:57.827806: seeking media's position is 22168=====
eek(22168, 0X402)
2 +FromStart). now: 22045
equested
FINE: 2024-12-15 12:17:57.946754: seeking media's position is 22168=====
FINE: 2024-12-15 12:17:57.995297: default FrameReader 00000222E1E516B0 seek target 22290ms skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:58.003293: 00000222DDA6FC80-MediaControl::seek(pos: 22658, flag:0X402 +FromStart). now: 22290
equested
FINE: 2024-12-15 12:17:58.034273: 00000222E1ADE8A0 player.seek(23270, 1026, ...)
t 23270ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:58.018288: seeking media's position is 22658=====
INFO: 2024-12-15 12:17:58.042267: 00000222DDA6FC80-MediaControl::seek(pos: 23515, flag:0X402 +FromStart). now: 23270
FINE: 2024-12-15 12:17:58.049780: seeking media's position is 23515=====
FINE: 2024-12-15 12:17:58.066769: default 00000222E1E516B0-FrameReader::seek(24373, 0X402)
FINE: 2024-12-15 12:17:58.073765: default 00000222E1E516B0-FrameReader::seek(24740, 0X402)
FINE: 2024-12-15 12:17:58.082759: default FrameReader 00000222E1E516B0 seek target 24985ms skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:58.089755: 00000222DDA6FC80-MediaControl::seek(pos: 25475, flag:0X402 +FromStart). now: 24985
FINE: 2024-12-15 12:17:58.082759: default 00000222E1E516B0-FrameReader::seek(24985, 0X402)
FINE: 2024-12-15 12:17:58.018288: 00000222E1ADE8A0 player.seek(22903, 1026, ...)
FINE: 2024-12-15 12:17:58.042267: seeking media's position is 23270=====
6, ...)
t 23515ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:58.050778: default 00000222E1E516B0-FrameReader::seek(23760, 0X402)
skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:58.049780: 00000222DDA6FC80-MediaControl::seek(pos: 23760, flag:0X402 +FromStart). now: 23515
FINE: 2024-12-15 12:17:58.056776: seeking media's position is 23760=====
: 24005, flag:0X402 +FromStart). now: 23760
equested
FINE: 2024-12-15 12:17:58.057774: 00000222E1ADE8A0 player.seek(24005, 1026, ...)
24-12-15 12:17:58.065772: 00000222DDA6FC80-MeINFO: 2024-12-15 12:17:58.073765: 00000222DDA6FC80-MediaControl::seek(pos: 24740, flag:0X402 +FromStart). now: 24373
000222E1ADE8A0 player.seek(24985, 1026, ...)
 flag:0X40FINE: 2024-12-15 12:17:58.089755: seeking media's position is 24985=====
6, ...)
FINE: 2024-12-15 12:17:58.138725: seeking media's position is 28047=====
FINE: 2024-12-15 12:17:58.121736: seeking media's position is 27067=====
: 25965, flag:0X402 +FromStart). now: 25475
A6FC80-MediaControl::seek(pos: 29517, flag:0X402 +FromStart). now: 29027
098748: default FrameReader 00000222E1E516B0 seek target 25965ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:58.146719: default 00000222E1E516B0-FrameReader::seek(29027, 0X402)
skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:58.164708: 00000222DDA6FC80-MediaControl::seek(pos: 29762, flag:0X402 +FromStart). now: 29517
FINE: 2024-12-15 12:17:58.177699: seeking media's position is 30006=====
: 27067, flag:0X402 +FromStart). now: 26455
equested
FINE: 2024-12-15 12:17:58.266333: default 00000222E1E516B0-FrameReader::seek(30741, 0X402)
FINE: 2024-12-15 12:17:58.114739: seeking media's position is 26455=====
6, ...)
 flag:0X402 +FromStart). now: 30496
equested
FINE: 2024-12-15 12:17:58.266333: 00000222E1ADE8A0 player.seek(30741, 1026, ...)
FINE: 2024-12-15 12:17:58.218042: 00000222E1ADE8A0 player.seek(30496, 1026, ...)
7, 0X402)
FINE: 2024-12-15 12:17:58.170705: default FrameReader 00000222E1E516B0 seek target 30006ms skipped: 1 frequent seek requested
INFO: 2024-12-15 12:17:58.202053: 00000222DDA6FC80-MediaControl::seek(pos: 30374, flag:0X402 +FromStart). now: 30251
equested
FINE: 2024-12-15 12:17:58.164708: default 00000222E1E516B0-FrameReader::seek(29762, 0X402)
FINE: 2024-12-15 12:17:58.242348: seeking media's position is 30496=====
eek(30251, 0X402)
FINE: 2024-12-15 12:17:58.194059: default FrameReader 00000222E1E516B0 seek target 30251ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:17:58.130732: default 00000222E1E516B0-FrameReader::seek(28047, 0X402)
2 +FromStart). now: 30619
FINE: 2024-12-15 12:17:58.170705: default 00000222E1E516B0-FrameReader::seek(30006, 0X402)
FINE: 2024-12-15 12:17:58.170705: seeking media's position is 29762=====
: 30496, flag:0X402 +FromStart). now: 30374
FINE: 2024-12-15 12:17:58.130732: seeking media's position is 27434=====
6, ...)

INFO: 2024-12-15 12:18:14.882248: 00000222DDA6FC80-MediaControl::seek(pos: 11512, flag:0X402 +FromStart). now: 12370
INFO: 2024-12-15 12:18:14.834276: 00000222DDA6FC80-MediaControl::seek(pos: 17514, flag:0X402 +FromStart). now: 18494
eking media's position is 17514=====
: 16411, flag:0X402 +FromStart). now: 17514
equested
FINE: 2024-12-15 12:18:14.850267: default FrameReader 00000222E1E516B0 seek target 15309ms skipped: 1 frequent seek requested
E8A0 player.seek(14329, 1026, ...)
t 14329ms FINE: 2024-12-15 12:18:14.866257: sFINE: 2024-12-15 12:18:14.962200: default 00000222E1E516B0-FrameReader::seek(4041, 0X402)
02 +FromStart)INFO: 2024-12-15 12:18:14.978190: 00000222E1E516B0 ***buffering progress 100%***
flag:0X402 +FromStart). now: 8695
FINE: 2024-12-15 12:18:14.939214: default FrameReader 00000222E1E516B0 seek target 6001ms skipped: 1 frequent seek requested

INE: 2024-12-15 12:18:14.962200: seeking media's position is 4776=====
FINE: 2024-12-15 12:18:14.978190:
058376970 player2348838410352 onMediaStatus: MediaStatus(+loaded+prepared+buffered+seeking) => MediaStatus(+loaded+prepared+buffering+seeking)
FINE: 2024-12-15 12:18:14.930218: seeking media's position is 7226=====
FINE: 2024-12-15 12:18:15.002173: default FrameReader 00000222E1E516B0 seek target 979ms skipped: 1 frequent seek requested
FINE: 2024-12-15 12:18:14.978190:<PHONE_NUMBER> player2348838410352 onMediaStatus: MediaStatus(+loaded+prepared+buffering+seeking) => MediaStatus(+loaded+prepared+buffered+seeking)
2 onEvent: reader.buffering -  - 100
FINE: 2024-12-15 12:18:14.970194: 00000222E1ADE8A0 player.seek(3429, 1026, ...)
FINE: 2024-12-15 12:18:14.946209: default FrameReader 00000222E1E516BFINE: 2024-12-15 12:18:14.970194: seeking media's position is 4041=====
s: 7226, flag:0X402 +FromStart). now: 7961
requested
-12-15 12:18:14.990184: seeking media's position is 2204=====
FINE: 2024-12-15 12:18:14.978190: default 00000222E1E516B0-FrameReader::seek(2816, 0X402)
FINE: 2024-12-15 12:18:15.010169: 00000222E1ADE8A0 player.seek(367, 1026, ...)
 MFT decoder does not produce any frame. btw, the log is not complete, I have to know the dependency version from the beginning of log. https://github.com/wang-bin/fvp?tab=readme-ov-file#upgrade-dependencies-manually


[New Feature]: Deployment of latest SPS w/Airflow onto sbg venue

Acceptance Criteria:
o Demonstrated invocation of all currently available SBG CWL workflows on sbg venue
o Up to date CI/CD pipelines for automatic execution of all SBG workflows

@LucaCinquini I've deployed into unity-sbg-dev can this be marked as done?

Thanks Drew, yes!


Report the IE007, IE010 error family (network subgraph error) less frequently

The best approach here probably is to wrap the operations that lead to these in a withErrorThreshold and only log an error after the 10th time or so, otherwise a warning with no error code.

Old, the loop that does this has changed significantly.  Closing.


build: use github actions instead of travis ci

Coverage remained the same at 87.767% when pulling 6dc284677841eab417e3721fd0c25f4efe21789b on abutterworth/gh-actions into f0937bf31c275dce686be8888240d929b4ef6d16 on master.

:tada: This PR is included in version 12.2.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Need an option to find flannel version being used

Today we are unable to say what flannel version is being used other than looking into the code. We would need a way to find the version in the logs or using a command
$ /var/lib/rancher/k3s/data/*/bin/flannel
CNI Plugin  version  (linux/amd64) commit  built on

Reproduced with v1.23.6+k3s1

Flannel version NOT displayed

$ /var/lib/rancher/k3s/data/*/bin/flannel
CNI Plugin  version  (linux/amd64) commit  built on

Verified with master commit 2f22703c9e2f3cee40709265de8676811d0aadff

Flannel version is displayed

$ /var/lib/rancher/k3s/data/*/bin/flannel
CNI Plugin flannel version v0.17.0 (linux/amd64) commit 2f22703c9e2f3cee40709265de8676811d0aadff built on 2022-05-04T18:27:58Z

@mdrahman-suse can I move this to the next milestone?

@katran001 This has been fixed, I will close it as part of RC validation

Verified with RC v1.23.7-rc1+k3s1
$ k3s -v
k3s version v1.23.7-rc1+k3s1 (4b2aa16c)
go version go1.17.5

$ /var/lib/rancher/k3s/data/*/bin/flannel
CNI Plugin flannel version v0.17.0 (linux/amd64) commit 4b2aa16ce617f6e22376ca85f692c31f194f99f0 built on 2022-05-26T14:25:47Z


Execution of ReactiveCommand throws sometimes an ObjectDisposedException

Do you want to request a feature or report a bug?
bug
What is the current behavior?
Throws an ObjectDisposedException if the executing command somehow disposes itself.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
This is a small program which causes the described ObjectDisposedException.
using ReactiveUI;
using ReactiveUI.Fody.Helpers;
using System;
using System.Diagnostics;
using System.Reactive;
using System.Reactive.Concurrency;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using System.Threading.Tasks;
using System.Windows.Threading;

class Program
{
    static async Task Main(string[] args)
    {
        using (var manager = new CustomerManagerViewModel())
        {
            Debug.Assert(manager.OpenedCustomer == null);
            if (await manager.NewCustomer.CanExecute.FirstOrDefaultAsync())
            {
                await manager.NewCustomer.Execute();
            }
            Debug.Assert(manager.OpenedCustomer != null);
            if (await manager.OpenedCustomer.Leave.CanExecute.FirstOrDefaultAsync())
            {
                await manager.OpenedCustomer.Leave.Execute(); // this line causes ObjectDisposedException
            }
        }
    }
}

class CustomerManagerViewModel : ReactiveObject, IDisposable
{
    private readonly IDisposable serialDisposeLastOpenedCustomer;

    public CustomerManagerViewModel()
    {
        CanLeave = true;

        NewCustomer = ReactiveCommand.Create(() => { },
            outputScheduler: ImmediateScheduler.Instance);
        Subject<Unit> openedCustomerLeft = new Subject<Unit>();
        NewCustomer
            .Select(_ =>
                new CustomerViewModel(
                    canLeaveObservable: this.WhenAnyValue(x => x.CanLeave)))
            .Merge(openedCustomerLeft.Select(_ => (CustomerViewModel)null))
            .ToPropertyEx(this, x => x.OpenedCustomer, scheduler: ImmediateScheduler.Instance);

        // Serial dispose last opened customer
        serialDisposeLastOpenedCustomer =
            this.WhenAnyValue(x => x.OpenedCustomer)
                .Select(customer =>
                    customer == null ? Observable.Empty<Unit>()
                    : Observable.Create<Unit>(_ => customer))
                .Switch()
                .Subscribe();

        this.WhenAnyObservable(x => x.OpenedCustomer.Leave)
            .Subscribe(openedCustomerLeft);
    }

    public CustomerViewModel OpenedCustomer { [ObservableAsProperty] get; }

    [Reactive]
    public bool CanLeave { get; set; }

    public ReactiveCommand<Unit, Unit> NewCustomer { get; }

    public void Dispose() => serialDisposeLastOpenedCustomer.Dispose();
}

class CustomerViewModel : ReactiveObject, IDisposable
{
    public CustomerViewModel(IObservable<bool> canLeaveObservable)
    {
        if (canLeaveObservable == null)
            throw new ArgumentNullException(nameof(canLeaveObservable));

        Leave = ReactiveCommand.Create(() => { },
            // Register external source as can execute to get a requirement for dispose
            canExecute: canLeaveObservable,
            outputScheduler: ImmediateScheduler.Instance);
    }

    public ReactiveCommand<Unit, Unit> Leave { get; }

    public void Dispose() => Leave.Dispose();
}

The disposal of the _executionInfo-Subject on the line ReactiveCommand.cs#L683 switches the internal observable to an DisposedObserver which throws an ObjectDisposedException if something is getting called from it. In this case it is the line ReactiveCommand.cs#L666 which will call the OnNext method.
What is the expected behavior?
If the execution of the command somehow disposes itself it should not throw on the finally block of the execution.
What is the motivation / use case for changing the behavior?
I have upgraded our program from 7.4.0 to 9.4.1 and got on some places an ObjectDisposedException. It gets thrown on the line ReactiveCommand.cs#L666.
We have many places in our application which has a command that causes the container of the command to get disposed. For example: We have a back button which is bound to a Leave-ReactiveCommand this causes the surrounding ViewModel to dispose together with the Leave-ReactiveCommand. Also an important information: We use a dispatcher scheduler which will execute the output immediately if it is already on the dispatcher thread. This is the reason why the sample code uses the ImmediateScheduler.
Which versions of ReactiveUI, and which platform / OS are affected by this issue? Did this work in previous versions of ReativeUI? Please also test with the latest stable and development snapshot
This has worked with the version 7.4.0. After the installation of the 9.4.1 version this issue happened. Other versions were not tested.
Other information (e.g. stacktraces, related issues, suggestions how to fix)
Possible workaround
I figured out a possible workaround with the observation of the IsExecuting-Observable. Together with a RefCountDisposable i can prevent the disposal until the execution is completed.
SingleAssignmentDisposable isExecutingSubscription = new SingleAssignmentDisposable();
var refCountDisposable = new RefCountDisposable(
    new CompositeDisposable(isExecutingSubscription, reactiveCommand));
disposeAfterExecute = refCountDisposable;
isExecutingSubscription.Disposable =
    reactiveCommand.IsExecuting
        .Select(isExecuting =>
            isExecuting
            ? Observable.Create<Unit>(_ => refCountDisposable.GetDisposable())
            : Observable.Empty<Unit>())
        .Switch()
        .Subscribe();

Instead disposing the reactiveCommand it will now dispose the disposeAfterExecute-Disposable.
Ideas for a fix
I think this issue was not raised earlier because the ReactiveCommand is used most of the time with an deferred scheduler.

One way would be to defer the disposal of the _executionInfo via an RefCountDisposable.
Another way would be to mark the ReactiveCommand as disposed and do not call the OnNext method if it is the case.

Maybe there are even better approaches than these above.

Can anyone solve this? .. I need to call dispose on my commands and I am getting this issue
Or .. how can I(if possible) implement mentioned workaround in my extended ReactiveCommand?
THX!

Why do you need to dispose your command? You almost never should.

Yes I've seen your comment and I have that situation .. due to a structure of program I have cross referenced objects:
Command owner is not the same class as execute and canExecute observables. So I'd like to clean up after I'm done using particular instance.
Also it seems pretty elementary functionality and since it has Dispose method I think its important to be working correctly, even if its ALMOST never required.
Its also weird that (in my case) exception only happens when NOT in debugging mode (I guess due to speed of code execution)
Thx for your response!

We have the same problem here: we got a lot of ReactiveCommand everywhere and, as it was IDisposable, we did dispose them everytime. Also some of them do subscribe to services that might be shared in the application... If we must not dispose ReactiveCommand, why do they implement IDisposable ? Generally I think that Disposing should be harmless. Here it works if we dispose all subscriptions to this command and then the command. But this is heavy.
Thx for any answer on that.

Don't dispose ReactiveCommand is the general advice, the reality is a lot of IObservable can be not Disposed, it's essentially the wrong pattern in some ways since it's not your traditional meaning of "IDispose" where you should always dispose.

Ok we got the general advise on that and we read it a couple of time already but this is a regression since ReactiveCommands were disposable before. We have hundreds of commands and some MUST be disposed beacause of not we have memory leaks. What do we do with those ?

In general you just won't have memory leaks is more the point of what conversation.
I have pushed a change d24e69f2dd47729045507d7f16ad0bb418c6925e which reverts some internal disposing. We only need to dispose the external subscription passed in for the can change. I'll release soon, let me know if it helps.

https://github.com/reactiveui/ReactiveUI/releases/tag/18.2.5 is the release.

Thanks a lot for your work and reactivity !


Automated cherry pick of #6402: fix: disable delete standard image

Cherry pick of #6402 on release/3.2.
#6402: fix: disable delete standard image

Codecov Report

Merging #6403 into release/3.2 will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@               Coverage Diff               @@
##           release/3.2    #6403      +/-   ##
===============================================
- Coverage         7.05%    7.05%   -0.01%
===============================================
  Files              649      649
  Lines           111327   111333       +6
===============================================
  Hits              7856     7856
- Misses          102862   102868       +6
  Partials           609      609

Flag
Coverage Δ

#aFlag
7.05% <0.00%> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/compute/models/dbinstanceresource.go
0.00% <0.00%> (ø)

pkg/vpcagent/ovnutil/ovn_nbctl.go
0.00% <0.00%> (ø)

pkg/cloudcommon/validators/validators_cert.go
39.77% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 61a707b...4b6723d. Read the comment docs.


WIP: New test e2e

checking to see if the image registry.ci.openshift.org/ocp/4.11:node-observability-agent works

closing this pull request as it was used to check the validity of the agent image registry.ci.openshift.org/ocp/4.11:node-observability-agent


reload devtools_page

Given this code
// manifest.json
...
"devtools_page": "devtools.html",
...

// devtools.html
<script src="j/devtool.js"></script>

// devtool.js
chrome.devtools.panels.create('abc', '', 'devpanel.html', function() {});

// devpanel.html
<script src="j/devpanel.js"></script>

Is it possible to reload devtool.js and devpanel.js?
I could install some instrumentation manually if that is the problem.

Currently the plugin reloads all the assets managed by the webpack.
If both devpanel and devtool are processed and outputted by Webpack, it should work. You still need to have both content and background scripts for this plugin work tho.

All javascript files are managed by webpack indeed. Yet content script is reloaded, background script is reloaded, and devtools/devpanel for some reason is not. Maybe there is some exception thrown that I cannot see because there is no devtools for devtools) I'll try to dig deeper at some point later.


add vaula info

Description

Checklists
General Checks

[x] the branch is up to date with main/master
[x] the code works when pulled and run locally
[x] All CI checks pass
[x] all conflicts are resolved (if any)
[x] PR has a descriptive title
[x] PR has appropriate labels and milestones for easy identification
[x] PR it is assigned to the owner
[x] reviewers are assigned
[x] the PR contributes only one focused change
[x] It is in the appropriate column in the project board (if necessary)
[x] has short and clear description
[x] is linked to an issue (if it is related)
[x] feedback is addressed (if any and if it is appropriate feedback.)

Markdown

[x] the markdown source is formatted
[x] spelling and grammar is correct in all text
[x] The markdown looks correct when you preview the file
[x] all links and images work

@netocalderon Don't link unnecessary PRs! Create your own PR and link that to the issue


To Skip command,  not downloadable file ??

Plz suggest me  Command , To Skip,  not downloadable file in folder ?
There is stopping after getting not downloadable file. So, i need.
--continue is now working.

Can you provide an example link?

https://drive.google.com/drive/folders/1dvfdi7ZIXMDylDPXkhu7NZOIiDlrHdMA
There are 24 files in this folder, but the downloading stops after 10 files are downloaded.
When i removed 11th file from Google Drive Folder Then i can Download other files.
11th Link is https://drive.google.com/file/d/0B6AEQfSUQMO_WWd5eDNESU5qZmdacWZsR3JQS19uLXE5ejRF/view?usp=drivesdk&resourcekey=0-N5uZl3PpuRknUcIxavcqNg
I am unable to download this link via gdown, But other script can download it.

f"gdown {folder_url} --fuzzy -O {output_folder}"
I am using this Command line

I confirmed that Gdown cannot download it, but it seems a browser cannot too (if I don't log in).
I wonder something is wrong with the file.

Ok, But Gdown stops Downloading at that file.
Is this possible to Continue Download next files, skipping that undownloadable link


Ability to disable the browser's context menu on web

This PR provides an API to disable (and re-enable) the browser's context menu on web.  It also shows EditableText's context menu on web when the browser's context menu is disabled.

API
I've created some platform channel messages and a simple API so that users can disable the context menu like this:
await BrowserContextMenu.disableContextMenu();
// ...
await BrowserContextMenu.enableContextMenu();

If someone really wants to, it's also possible to enable/disable the context menu for a specific gesture:
  onSecondaryTapDown: (TapDownDetails details) {
    await BrowserContextMenu.disableContextMenu();
    await Future.delayed(const Duration(seconds: 0));
    BrowserContextMenu.enableContextMenu();
  }

For a full example app that uses this feature, see the bottom of the engine PR's description (https://github.com/flutter/engine/pull/38682).
References
Depends on engine PR https://github.com/flutter/engine/pull/38682.
Fixes https://github.com/flutter/flutter/issues/78671
Fixes https://github.com/flutter/flutter/issues/84219

From the goldens, it looks like the cursor is disappearing from some screenshots. Is that expected?

Definitely not intended for the cursor to disappear, and this really shouldn't affect anything like that... I tried cleaning up my tests a bit in case some state was leaking through, we'll see if that fixes it.  I can't reproduce locally right now.

Nope.  I'll take another look tomorrow.

@justinmc I looked at the goldens one more time. It looks like the new goldens are the correct ones. They match the goldens produced by other platforms (linux, etc) e.g. material.text_field_cursor_width_test.0

I went ahead and triaged all of them (3) as positives.

@mdebbar That's reassuring about the goldens, thanks for checking for me!  I was worried and I couldn't figure out how I had affected that.


Update README.md

There is no .jar file on https://jcenter.bintray.com/org/osmdroid/osmdroid-android/5.6.1/ it is .aar

when an artifact is published with the pom correctly defined as type=aar, then at least in theory @aar shouldn't be required

thanks for the contribution though!


Add myself to translation_authors.yaml

Now that the Dreamcast and GBA translations have been approved, I think it's time to add myself to the translators list :)

Rightfully so!


Add back setting environment variable

Description of the change:
The commit ed92d3668ca921270d01055d8d8e01f3fd5187d3 removed the setAnsibleEnvVars function. However, that function is important to make sure the command line flags ansible-roles-path and ansible-collections-path work. These command line flags are set into environment variables that will be picked up later.
Motivation for the change:
This PR fixes an issue introduced by a previous PR.
Not sure we need a change log for this kind of fix, because it is fixing a bug that is not yet released.

Great catch @tengqm! Thanks!
This was actually released in v0.19.0, so we'll need to backport this. Because of this, can you please add a CHANGELOG fragment?

/lgtm

/cherry-pick v0.19.x


html font-size/line-height is broken since correct units implemented

After https://github.com/chris-pearce/scally/pull/95 was merged, the font shorthand rule in _root.scss has broken, as it's treating it all as a mathematical operation.
Instead of font: 1em/1.5 Arial, sans-serif;, we now get font: 0.66667em Arial, sans-serif;

Yep I seen this late last night when testing a V2 feature, I fixed in V2 and I'll push a fix for V1 right away.
Can you label Issues :+1:.

Ah, I didn't know that I could! I've never looked up there before :)


ScalaTest 3.2

Updated to use ScalaTest 3.2.13.
Dropped PhantomJS support.
Added support for new MS Edge browser support.

@mkurz I just pushed a quick commit according to your comments, do you mind to see if it is fit for merging now?
Thanks!

@mkurz I have resolved the conflict and upgraded to use scalatest+selenium <IP_ADDRESS>, which includes a new support for MS Edge browser, do you mind to review and consider merging this when it is convenient for you?
Thanks!

@cheeseng Sure I will, I was a bit busy the last days, I will be back working on Play soon. Stay tuned.

@mkurz Ping!  I have resolved the conflict and this PR is ready for your review again.  Thanks!

Thanks  @cheeseng! I want to set up GitHub actions before merging this pull request (actually, this is the last repo in the Play organization missing GHA) to make sure this change passes all the tests.

@mkurz That's a good idea, I am adding CI build in scalatest+selenium (one of the dependency here) and it seems to work:
https://github.com/scalatest/scalatestplus-selenium/pull/20
But when I added the same ci.yml here it failed with this weird error:
[error] Failed to derive version from git tags. Maybe run `git fetch --unshallow`? Version: 0.0.0+1-1e104898

I am not familiar with this, may be it is related to sbt-dynver?

@mkurz By the way I think the current main is broken now?  When I tried to build it I got the following error:
cheeseng@cheeseng-RAVEN:~/git/scalatestplus-play$ sbt clean test
[info] welcome to sbt 1.7.1 (GraalVM Community Java 1.8.0_302)
[info] loading global plugins from /home/cheeseng/.sbt/1.0/plugins
[info] loading settings for project scalatestplus-play-build from plugins.sbt ...
[info] loading project definition from /home/cheeseng/git/scalatestplus-play/project
/home/cheeseng/git/scalatestplus-play/build.sbt:35: warning: method sonatypeRepo in class ResolverFunctions is deprecated (since 1.7.0): Use sonatypeOssRepos instead
ThisBuild / resolvers += Resolver.sonatypeRepo("releases")
                                  ^
[info] loading settings for project scalatestplus-play-root from build.sbt ...
[info] set current project to scalatestplus-play-root (in build file:/home/cheeseng/git/scalatestplus-play/)
[success] Total time: 0 s, completed Jul 13, 2022 10:58:49 PM
[info] Updating
[info] Resolved  dependencies
[warn]
[warn] 	Note: Unresolved dependencies path:
[error] sbt.librarymanagement.ResolveException: Error downloading org.scalatestplus:selenium-4-1_2.13:<IP_ADDRESS>
[error]   Not found
[error]   Not found
[error]   not found: /home/cheeseng/.ivy2/local/org.scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/service/local/repositories/releases/content/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/content/repositories/snapshots/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://repo.artima.com/releases/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: /home/cheeseng/.m2/repository/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/content/repositories/orgscalactic-1457/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/content/repositories/orgscalatest-1753/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error] 	at lmcoursier.CoursierDependencyResolution.unresolvedWarningOrThrow(CoursierDependencyResolution.scala:345)
[error] 	at lmcoursier.CoursierDependencyResolution.$anonfun$update$38(CoursierDependencyResolution.scala:314)
[error] 	at scala.util.Either$LeftProjection.map(Either.scala:573)
[error] 	at lmcoursier.CoursierDependencyResolution.update(CoursierDependencyResolution.scala:314)
[error] 	at sbt.librarymanagement.DependencyResolution.update(DependencyResolution.scala:60)
[error] 	at sbt.internal.LibraryManagement$.resolve$1(LibraryManagement.scala:59)
[error] 	at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$12(LibraryManagement.scala:133)
[error] 	at sbt.util.Tracked$.$anonfun$lastOutput$1(Tracked.scala:73)
[error] 	at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$20(LibraryManagement.scala:146)
[error] 	at scala.util.control.Exception$Catch.apply(Exception.scala:228)
[error] 	at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11(LibraryManagement.scala:146)
[error] 	at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11$adapted(LibraryManagement.scala:127)
[error] 	at sbt.util.Tracked$.$anonfun$inputChangedW$1(Tracked.scala:219)
[error] 	at sbt.internal.LibraryManagement$.cachedUpdate(LibraryManagement.scala:160)
[error] 	at sbt.Classpaths$.$anonfun$updateTask0$1(Defaults.scala:3688)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] 	at sbt.Execute.work(Execute.scala:291)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] 	at java.lang.Thread.run(Thread.java:748)
[error] (scalatestplus-play / update) sbt.librarymanagement.ResolveException: Error downloading org.scalatestplus:selenium-4-1_2.13:<IP_ADDRESS>
[error]   Not found
[error]   Not found
[error]   not found: /home/cheeseng/.ivy2/local/org.scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/service/local/repositories/releases/content/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/content/repositories/snapshots/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://repo.artima.com/releases/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: /home/cheeseng/.m2/repository/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/content/repositories/orgscalactic-1457/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error]   not found: https://oss.sonatype.org/content/repositories/orgscalatest-1753/org/scalatestplus/selenium-4-1_2.13/<IP_ADDRESS>/selenium-4-1_2.13-<IP_ADDRESS>.pom
[error] Total time: 10 s, completed Jul 13, 2022 10:59:00 PM

@mkurz I have added ci.yml that will run CI, here's the successfully run for this PR:
https://github.com/playframework/scalatestplus-play/runs/7341113874?check_suite_focus=true
Cheers.

@mkurz Ping again!  I have updated the PR to use the newly released ScalaTest 3.2.13, the CI tests run that included in this PR seems to be green also:
https://github.com/playframework/scalatestplus-play/runs/7604177607?check_suite_focus=true
Cheers.

@mkurz Ping again!  I have updated the PR to use selenium 4.4.0 and htmlunit 3.64.0, and the CI build is green.

@cheeseng Thanks again, fantastic! I will have a look asap :+1:

@mkurz Ping again!  I fixed the conflict and added some fix to avoid flickering of test failures, the CI passed also, do you mind to look at this again?
Thanks.

@cheeseng Sorry not being responsive here, I want to dedicate time tomorrow for this issue.


AOBO flow

Is it possible to acquire a token through the AOBO (Admin-On-Behalf-Of) flow?

@manuelmazzuola can you expand on your scenario? Would On-Behalf-Of flow work for you? If not, how does Admin-On-Behalf-Of differ?

The scenario should be, the CSP admin agent add a new customer on partner center, then add a new azure plan to the newly customer, and finally, the part that I cannot reproduce via API, the CSP admin agent has to create resources inside the azure customer subscription.
Spoiler: I already managed that, but using the ROPC flow, using username/password of the admin agent, but I cannot do that anymore because of MFA.
So, I need a way to get a token from the customers, that authorize the admin agent to retrieve a specific token for the customer tenant to use on the scope management.azure.com//.default.

@sangonzal yes, except the last part, I'd like the app to do Authorization Code flow, which passes the token to CSP admin agent, who then exchanges token with AAD to get a token to access to the customer azure tenant (to provision resources, virtual machines, etc..)
As i said, I already do that, using the confidential client with username and password of the admin, but I have to move away from this flow.

@sangonzal look, the token acquired using the following code works:
PublicClientApplication app = PublicClientApplication.builder( PUBLIC_CLIENT_ID )
                .authority( "https://login.microsoftonline.com/testpocazureeng.onmicrosoft.com" )
                .build();

        UserNamePasswordParameters parameters = UserNamePasswordParameters
                .builder( Collections.singleton( "https://management.azure.com/.default" ), ADMIN_USERNAME, ADMIN_PASSWORD.toCharArray() )
                .build();

        IAuthenticationResult result = app.acquireToken( parameters ).join();

the following code not:
IClientCredential credential = ClientCredentialFactory.createFromSecret(MY_SECRET);
            ConfidentialClientApplication cca =
                    ConfidentialClientApplication
                            .builder( CLIENT_ID, credential)
                            .authority("https://login.microsoftonline.com/testpocazureeng.onmicrosoft.com")
                            .build();

            ClientCredentialParameters parameters =
                    ClientCredentialParameters
                            .builder(Collections.singleton( "https://management.azure.com/.default" ))
                            .build();

        IAuthenticationResult tokenResult = cca.acquireToken( parameters ).join();

it says:
Exception in thread "main" com.microsoft.azure.CloudException: Status code 401, {"error":{"code":"InvalidAuthenticationTokenTenant","message":"The access token is from the wrong issuer 'https://sts.windows.net/96d7c757-e1a4-4ef3-88e3-4f3801f19a17/'. It must match the tenant 'https://sts.windows.net/baaf7b71-4cdf-4542-8d8b-ab2f05780b04/' associated with this subscription. Please use the authority (URL) 'https://login.windows.net/baaf7b71-4cdf-4542-8d8b-ab2f05780b04' to get the token. Note, if the subscription is transferred to another tenant there is no impact to the services, but information about new tenant could take time to propagate (up to an hour). If you just transferred your subscription and see this error message, please try back later."}}: The access token is from the wrong issuer 'https://sts.windows.net/96d7c757-e1a4-4ef3-88e3-4f3801f19a17/'. It must match the tenant 'https://sts.windows.net/baaf7b71-4cdf-4542-8d8b-ab2f05780b04/' associated with this subscription. Please use the authority (URL) 'https://login.windows.net/baaf7b71-4cdf-4542-8d8b-ab2f05780b04' to get the token. Note, if the subscription is transferred to another tenant there is no impact to the services, but information about new tenant could take time to propagate (up to an hour). If you just transferred your subscription and see this error message, please try back later.

I'm just trying to figure out an alternative method to the first one, but i can't :D

@manuelmazzuola is the tenant id for testpocazureeng.onmicrosoft.com 96d7c757-e1a4-4ef3-88e3-4f3801f19a17 or baaf7b71-4cdf-4542-8d8b-ab2f05780b04?
The error message is saying that you acquired a token for 96d7c757-e1a4-4ef3-88e3-4f3801f19a17, but are trying to access resources for baaf7b71-4cdf-4542-8d8b-ab2f05780b04. What happens if you use authority in "https://login.microsoftonline.com/baaf7b71-4cdf-4542-8d8b-ab2f05780b04"?
I don't think this will solve your MFA issue though, as client credentials is not an interactive flow. Take a look at https://github.com/Azure-Samples/ms-identity-java-webapi . In your scenario, the client app would be the msal-web-sample and the CSP admin agent would be msal-obo-sample.

What happens if you use authority in "https://login.microsoftonline.com/baaf7b71-4cdf-4542-8d8b-ab2f05780b04"?

testpocazureeng.onmicrosoft.com is 96d7c757-e1a4-4ef3-88e3-4f3801f19a17, and is not correct to use baaf7b71-4cdf-4542-8d8b-ab2f05780b04 because the subscription is in the tenant of customer testpocazureeng.onmicrosoft.com.
However, I've just tried, and when i try to use the access token with the azure api:
The received access token is not valid: at least one of the claims 'puid' or 'altsecid' or 'oid' should be present. If you are accessing as application please make sure service principal is properly created in the tenant.

I don't think this will solve your MFA issue though, as client credentials is not an interactive flow. Take a look at https://github.com/Azure-Samples/ms-identity-java-webapi . In your scenario, the client app would be the msal-web-sample and the CSP admin agent would be msal-obo-sample.

I'll take a look, I let you know

@sangonzal nope, same issue, in the sample app I've changed the scope from graph to azure and I get the same permission error:
Exception in thread "main" org.jclouds.rest.AuthorizationException: {"error":{"code":"AuthorizationFailed","message":"The client<EMAIL_ADDRESS>with object id '28cfc43b-2946-49aa-9cc0-f718a441d27e' does not have authorization to perform action 'Microsoft.Resources/subscriptions/providers/read' over scope '/subscriptions/730c3e12-f5d9-401b-bb47-3b7497f310db' or the scope is invalid. If access was recently granted, please refresh your credentials."}}
In the on-behalf-of flow used in the sample you linked to me, the admin acts on behalf of the customer, but he inherit also the non-permissions to manage azure resources.
I think that it's impossible without giving to the customer the proper permissions on the owned azure subscription.
Here (https://azure.microsoft.com/en-gb/offers/ms-azr-0145p/) says that:
When a new Microsoft Azure subscription is created in a customer tenant, the partner is granted
owner rights on this subscription; however, the customer is not granted owner rights by default.
Therefore, the customer cannot log in to the Microsoft Azure Management Portal and
create/start/stop new Azure services for the specific subscription – the partner has to do this on
behalf of the customer.

At this point after all the tests i did i think that the above statement applies only to the UI and not using the REST API.

This is the endpoint called when on the interface, as partner, I click the button on the customer subscription to manage the resources: https://login.microsoftonline.com/testpocazureeng.onmicrosoft.com/oauth2/v2.0/authorize?client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c&response_mode=form_post&response_type=code+id_token&scope=https%3a%2f%2fmanagement.core.windows.net%2f%2fuser_impersonation+openid+email+profile&state=OpenIdConnect.AuthenticationProperties%3d&redirect_uri=https%3a%2f%2fportal.azure.com%2fsignin%2findex%2f%40testpocazureeng.onmicrosoft.com%3ffeature.refreshtokenbinding%3dtrue%26feature.snivalidation%3dtrue%26feature.usemsallogin%3dtrue&site_id=501430&client-request-id=04da22b0-9b60-4be9-978a-735caa4c5d85&x-client-SKU=ID_NET&x-client-ver=1.0.40306.1554
After that I am redirected to the standard MS login form, where I insert the partner credentials, and then it redirects me to the azure portal in the customer directory logged as the partner.
So, using the interface I've to do an interactive login using the partner credentials, and I can't use the partner credentials for an interactive login into an automated process.

Didn't hear back. Feel free to reopen if you have any other questions.

I found it.
This is the flow:
Get an authentication code going to: https://login.windows.net/PARTNER_TENANT/oauth2/authorize?client_id=NATIVE_MULTI_TENANT_APP_ID&response_type=code &response_mode=query&resource=https://api.partnercenter.microsoft.com&prompt=consent
Now get the refresh token executing the following form POST:
http -f POST https://login.microsoftonline.com/PARTNER_TENANT/oauth2/token
grant_type=authorization_code
client_id=NATIVE_MULTI_TENANT_APP
client_secret="SECRET"
code="AUTH_CODE"
redirect_uri="https://login.microsoftonline.com/common/oauth2/nativeclient"

now with the refresh token I can issue azure tokens for my customers like that:
http -f POST https://login.windows.net/CUSTOMER_TENANT/oauth2/token
grant_type=refresh_token
client_id=NATIVE_MULTI_TENANT_APP_ID
client_secret="SECRET"
scope="openid"
refresh_token="REFRESH_TOKEN"
resource="https://management.azure.com"

@sangonzal I can't reproduce the last POST used to retrieve an azure token using the msal4j library, I thought I had to use the ConfidentialClientApplication and the RefreshTokenParameters but there isn't a builder that accept the resource field as in the above request.

@sangonzal And I know that is the oauth2 endpoint, it's not the v2 version, but the secure application model documentation uses the old one https://docs.microsoft.com/en-us/partner-center/develop/enable-secure-app-model
And all the examples on the internet use the old oauth2 endpoint.

@manuelmazzuola two notes:

MSAL4J doesn't expose the refresh token, and instead asks users to use acquireTokenSilently. You'll see that the AuthenticationResult object does not expose RefreshToken. More instructions on how you might do this below.
Resource is a v1 construct, instead you want to use scopes. You'll want to convert that resource to that scope. This MSAL.NET wiki page has a good section on how to do so.  You should just be able to append the scope to the resource. Possible scopes for a resource are listed in the Azure portal.

It seems like what you want to do is:

Use getAuthorizationRequestUrl() to build the authorization code url. Navigate to the url, have th user input their creds, and then once AAD redirects back to your app, your parse the response.
Use the authorization code returned in step 1 to acquire a token for resource https://api.partnercenter.microsoft.com via acquireToken(AuthorizationCodeParameters).
The ConfidentialClientApplication object will then have an account and tokens for resource https://api.partnercenter.microsoft.com. You can get the account in the cache by using getAccounts() You would then acquireTokenSilently with the account and the new scope (for resource "https://management.azure.com"). I haven't tried this myself, but I'm assuming that since the user has not consented to the letting the application access "https://management.azure.com", this might fail with an InteractionRequired exception. The solution to this is to let users consent to both resources in step 1, as described here, but unfortunately Java does not have support for this yet. I opened up #218 to track this work. I think you could work around this if you chose to by - prompting the user again via steps 1 and 2, or having the tenant admin give consent to the whole tenant in the portal.

Steps 1-3 are demoed in the web application sample: https://github.com/Azure-Samples/ms-identity-java-webapp

It's not the customer that inputs its cred in the first step, it's the admin agent of the partner center.
Step 1 and 2 must be done manually, then when I have a refresh token I store it on a vault.
When I need to issue a new token I retrieve the refresh token from the vault and use it in the last step.

I haven't tried this myself, but I'm assuming that since the user has not consented to letting the application access "https://management.azure.com", this might fail with an InteractionRequired exception.

Yes, the last step fails because of that, the error says the customer has not consented to the application with id ######### to access to his resources.
So the workaround is that I show the consent form to the customer too using that url
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
scope=openid+https%3A%2F%2Fmanagement.azure.com%2Fuser_impersonation
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%3A8081
&prompt=consent
&client_id=d6c3df6a-6470-4791-98cf-fbfe1650b281
&response_mode=query
&nonce=1234

and then if I repeat the last step it works without errors.


Add safe access to UrlReferrer in Log404

This is a rebase of #3340 onto release/9.4.x for @engineering87
Closes #3339

@mitchelsellers @david-poindexter since I recreated this PR, I can't give the second approval.  Can one of you greenlight this for me?


[lit-html] Add MathML support with the math template tag

Fixes #4636
This adds a math template tag to enable writing MathML fragment templates, just like how we have the svg template tag for SVG fragment templates.
The change adds another TemplateResult type for MATHML, and just creates a <math> wrapper element for fragment templates like we do for SVG.
I had to update the @open-wc/testing dependency of the starter kits because 3.x had hard-coded the template result types. 4.x works with the new type. So there is the possibility that that this will break type-checking of other libraries that hard-code the types. Hopefully they can upgrade quickly if they need to. Our policy is to not consider type-only breaks as semver major, so this change is semver minor.
cc @lukewarlow @bkardell 😄

@augustjk Thanks! I added unsafeMath() and SSR tests

There's a small question of the name of the template tag. I chose math because I think it's a lot easier to read and write then mathml.
html, svg, and css are more clear about what their content are than just math, and that might help with built-in language support in tools. For instance, mathml might conceivable trigger XML or even MathML specific highlighting. math might not - though we can highlight it in our tools.

Regarding the tag name, I have a preference for mathml

Let's ask Discord before merging.
It's not unchangeable at least. Just a couple of byte cost to export two names.

Math being the root element name for the MathML namespace makes me lean towards math as the tagged template name too fwiw.

Math being the root element name for the MathML namespace makes me lean towards math as the tagged template name too fwiw.

That's a good point. <svg> -> svg, <math> -> math

Discord seems to be leaning heavily towards mathml

@justinfagnani Do we also need a static version of mathml tag function?

@justinfagnani Do we also need a static version of mathml tag function?

done!


NodeSDK does not allow to override idGenerator

I would like to be able to override idGenerator when using NodeSDK:
const sdk = new NodeSDK({idGenerator: new AWSXrayIdGenerator()})

But it looks like that option is not supported. Any chance it can be added?

You can assign this to me :)