Highlighted

Chrome Flash Player 21.0.0.213

New Here ,
Apr 06, 2016

Copy link to clipboard

Copied

Today the Chrome Flash Player runtime was updated to 21.0.0.213 and it is causing severe issues.  So far I am unable to install the same version debugger in order to investigate.  Also, this version is not available for other browsers and there are no release notes.  Is Adobe aware of the issue?  When will this update occur for the PepperFlash debugger and for other browsers?

Views

3.4K

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

Chrome Flash Player 21.0.0.213

New Here ,
Apr 06, 2016

Copy link to clipboard

Copied

Today the Chrome Flash Player runtime was updated to 21.0.0.213 and it is causing severe issues.  So far I am unable to install the same version debugger in order to investigate.  Also, this version is not available for other browsers and there are no release notes.  Is Adobe aware of the issue?  When will this update occur for the PepperFlash debugger and for other browsers?

Views

3.4K

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Apr 06, 2016 0
Adobe Employee ,
Apr 06, 2016

Copy link to clipboard

Copied

Hi,

Can you please share a reproducible scenario for this issue?

Thanks

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 06, 2016 0
New Here ,
Apr 06, 2016

Copy link to clipboard

Copied

Yes, the problem appears to be with a change to the way regular expressions are evaluated.

For example, in the following image, you'll see an expression result in a match with an older version of Flash Player on the left, while the same expression results in no matches with the latest version released on Chrome.  (You can run this test for yourself here: ActionScript Regular Expression Tester‌) 

Pattern: [^.-\d]

Test Value: a

I believe the old version is evaluating the expression correctly, and I have verified this with a few other non-AS3 reg ex testing tools.

skitch-1.png

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 06, 2016 0
New Here ,
Apr 06, 2016

Copy link to clipboard

Copied

My guess is that with the new version it is failing because it is trying to evaluate the '-' as a range.  Making it '\-' to force a literal solved this:

[^.\-\d]

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 06, 2016 0
Adobe Employee ,
Apr 06, 2016

Copy link to clipboard

Copied

Yeah, we moved from PCRE1 to PCRE2 with this release.  PCRE2 is a little more correct in its interpretation in some instances.

We concur with your interpretation that escaping the hyphen in this instance is the correct syntax.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 06, 2016 0
Community Beginner ,
Apr 07, 2016

Copy link to clipboard

Copied

I suppose that any Flex app using Regex is affected by the PCRE->PCRE2 change ?

Anything to watch for ? (in addition to the hyphen mentioned above)

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 07, 2016 0
Adobe Employee ,
Apr 07, 2016

Copy link to clipboard

Copied

Any Flash content that uses RegEx will now use the PCRE2 library.

It seems like PCRE1 might have been a little more forgiving in some instances.  The syntax for the example above was technically wrong, but it worked in PCRE1.  PCRE2 appears to be more correct in it's parsing, so our expectation is that where people run into problems, they will fall into the "PCRE was more forgiving with ambiguous syntax" category. 

FWIW, we have a pretty large suite of RegEx unit tests, and those all pass with both libraries.    We've been running PCRE2 in beta for quite a while and haven't had really any feedback.  We have a lot of beta users with large enterprise Flex installations, and haven't seen much traffic on it at this point.  We're actively investigating a couple other RegEx related results, but traffic has been pretty light so far (fingers crossed).

If you want to audit your existing regular expressions, you can use the following mms.cfg flag to switch between the PCRE1 and PCRE2 library:

enablePCRE2=0

We included this to provide relief for enterprise users that weren't paying attention to the beta and found themselves negatively impacted, and we'll ultimately remove support for the flag and pull the PCRE1 code out of the codebase entirely, but we wanted to give folks an opportunity to transition without being horrendously broken, esp. in scenarios where they didn't have access to the source.

There's a flex-based regular expression tester here:

http://probertson.com/resources/projects/actionscript-regexp-test/RegExpTestHarness.html

You can then flip between PCRE1 and PCRE2 to compare how your expressions evaluate.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 07, 2016 1
New Here ,
Apr 08, 2016

Copy link to clipboard

Copied

I'd love some help with this situation if anyone knows a way to handle it.

Our application uses the following regular expression which works in PCRE:

^([^\x{0000}-\x{001F}\x{0022}\x{002A}\x{002F}\x{003A}\x{003C}\x{003E}\x{003F}\x{005C}\x{007C}\x{1680}\x{180E}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}\x{2006}\x{2008}\x{2009}\x{200A}\x{200B}\x{2028}\x{2029}\x{205F}\x{3000}])*$



Flash Player 21.0.0.213's upgrade to PCRE2 meant that regular expression didn't work any more. It was recommended that we use this instead:

^([^\u0000-\u001F\u0022\u002A\u002F\u003A\u003C\u003E\u003F\u005B\u005C\u005D\u007C\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2008\u2009\u200A\u200B\u2028\u2029\u205F\u3000])*$

That one works great in PCRE2 (we can use the enablePCRE2 flag to switch between the two), but it does not work in PCRE.

My understanding from this thread is that "PCRE is more forgiving" but that valid PCRE2 syntax should also be valid for PCRE.

According to this link:

http://www.regular-expressions.info/unicode.html

Perl and PCRE do not support the \uFFFF syntax. They use \x{FFFF} instead.


So, \x{FFFF} works in PCRE but not PCRE2. \uFFFF works in PCRE2 but not PCRE. This really puts us in a bind as we have customers on version 21.0.0.213 (PCRE2) and also on versions prior to that (PCRE). What syntax can we use that will be accepted by both PCRE and PCRE2? 


Edited to add... It appears that the \x{FFFF} syntax should work in PCRE2 with the default settings, but if the -PCRE2_ALT_BSUX option is uesd, \x{...} syntax no longer works, only \u.  The only information I can find on the PCRE2_ALT_BSUX option is that it is the "alternate handling of \u, \U, and \x".  I guess I now have two questions. With the PCRE2_ALT_BSUX option, is there a format that will work with both PCRE and PCRE2. Or, conversely, can the PCRE2_ALT_BSUX option be turned off?


Thanks,

Ann

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 08, 2016 0
Adobe Employee ,
Apr 08, 2016

Copy link to clipboard

Copied

It's not an unreasonable request.  I'm raising it with the team today.  It will probably be Monday at the earliest before we'd have an answer, and the earliest shipping window would be our next monthly release.

You might want to flip the impacted folks back to the PCRE library using the mms.cfg flag for the moment.  We'll eventually remove the PCRE library, so even if they forget to switch it back, they won't be stuck in an odd-ball state indefinitely.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 08, 2016 0
New Here ,
Apr 12, 2016

Copy link to clipboard

Copied

I noticed that the \s metacharacter is no longer matching non-breaking spaces (\xA0) and ideographic spaces (\u3000).  Prior to 21.0.0.213, those spaces were targeted.  Suddenly not supporting these characters is causing us a lot of grief with our Flash application. Is there something in the Flex SDK we can set up to revert back to PCRE1?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2016 0
Adobe Employee ,
Apr 12, 2016

Copy link to clipboard

Copied

Thanks for the head's up.  I've surfaced it to the team to see if it's something we can resolve in future versions.

In the meantime, we built both PCRE and PCRE2 into Flash Player, but you have to toggle the behavior at the client.  We moved to PCRE2 after patching a long stream of latent security problems in the unmaintained PCRE codebase, and providing ActionScript hooks for reverting to the old version negates any value on the security front.

That approach is a very temporary relief valve for impacted developers, and PCRE will ultimately be dropped once we've sorted out any lingering issues like this that didn't show up in feedback about our beta releases.

If changing the client behavior isn't feasible (It's pretty easy for system administrators to push out an mms.cfg to their organization, but not convenient for end-users), then you'll have to temporarily modify the regular expression to explicitly match the problematic characters.  I realize that's a tall order, and apologize for the inconvenience.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2016 0
New Here ,
Apr 12, 2016

Copy link to clipboard

Copied

Thank you for the update.  I opened a bug ticket a few days ago with the issue and updated it with a sample illustrating the issue.  See: https://bugbase.adobe.com/index.cfm?event=bug&id=4137804

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 12, 2016 0
Adobe Employee ,
May 16, 2016

Copy link to clipboard

Copied

Hi,

This issue is fixed in latest FP.

5/12/2016 - Release - Flash Player 21

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
May 16, 2016 0