New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 724166 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug-Regression



Sign in to add a comment

UTF8 Byte order marker breaks script execution (Outlook.Live.com stopped working in Chrome Canary)

Project Member Reported by elawrence@chromium.org, May 18 2017

Issue description

Chrome Version: 60.3103
OS: Windows

What steps will reproduce the problem?
(1) Open hotmail.com in Incognito
(2) Login
(3) Observe: Error page. Script errors in console:

Uncaught SyntaxError: Unexpected end of input
boot.worldwide.1.mouse.init.js:2 Uncaught SyntaxError: Unexpected end of input
boot.worldwide.2.mouse.init.js:2 Uncaught ReferenceError: _y is not defined

Bisect turns up a V8 roll.
https://chromium.googlesource.com/chromium/src/+log/952d07a6309c7e2a8f1531d85e3dcf626c3d5dd9..90e87f4bb986def04af8f8310cd495bfbead49bb
 
Labels: OS-Mac OS-Windows
Summary: Outlook.Live.com stopped working in Chrome Canary (Uncaught SyntaxError: Unexpected end of input) (was: Outlook.Live.com stopped working in Chrome Canary)
Of the things in the V8 roll, this one seems most likely to be related: https://chromium.googlesource.com/v8/v8/+/ce538f70c12864fe700c716b991fa57c5693ff4f
Cc: wiktorg@google.com
Labels: ReleaseBlock-Dev
Summary: UTF8 Byte order marker breaks script execution (Outlook.Live.com stopped working in Chrome Canary) (was: Outlook.Live.com stopped working in Chrome Canary (Uncaught SyntaxError: Unexpected end of input))
Deleting the UT8 signature at the top of the script files appears to fix the regression.

The following FiddlerScript makes the site load correctly.

        public static void OnBeforeResponse(Session oSession)
        {
if (oSession.ResponseBody.Length > 3 &&
	oSession.ResponseBody[0] == 0xEF &&
	oSession.ResponseBody[1] == 0xBB &&
	oSession.ResponseBody[2] == 0xBF)
{
	oSession.ResponseBody[0] = 0x20;
	oSession.ResponseBody[1] = 0x20;
	oSession.ResponseBody[2] = 0x20;
	oSession["ui-backcolor"] = "red";
}
Simplified repro page: https://bayden.com/test/utf8bom.html
Cc: manoranj...@chromium.org ligim...@chromium.org adamk@chromium.org ahaas@chromium.org bustamante@chromium.org ajha@chromium.org kavvaru@chromium.org brajkumar@chromium.org
 Issue 724028  has been merged into this issue.
Labels: M-60 OS-Linux

Comment 7 by adamk@chromium.org, May 18 2017

Owner: adamk@chromium.org
Status: Started (was: Untriaged)

Comment 8 by adamk@chromium.org, May 18 2017

Cc: vogelheim@chromium.org marja@chromium.org
Labels: -OS-Linux -OS-Windows -OS-Mac OS-All
Confirmed that reverting wiktorg's change fixes the issue on the simplified repro page. Revert in the CQ:  https://chromium-review.googlesource.com/c/508888
Project Member

Comment 9 by bugdroid1@chromium.org, May 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/9397c1b73a607de3c836d9869527cf478668eb19

commit 9397c1b73a607de3c836d9869527cf478668eb19
Author: Adam Klein <adamk@chromium.org>
Date: Thu May 18 19:28:58 2017

Revert "[parser] Refactor streaming scanner streams."

This reverts commit ce538f70c12864fe700c716b991fa57c5693ff4f.

Reason for revert: breaks BOM handling (thus breaking Outlook web apps).

Original change's description:
> [parser] Refactor streaming scanner streams.
> 
> Unify, simplify logic, reduce UTF8 specific handling.
> 
> Intend of this is also to have stream views.
> Stream views can be used concurrently by multiple threads, but
> only one thread may fetch new data from the underlying source.
> This together with unified stream view creation is intended to be
> used for parse tasks.
> 
> BUG= v8:6093 
> 
> Change-Id: Ied8e93090c506d4735080298f0fdaeed32043915
> Reviewed-on: https://chromium-review.googlesource.com/501789
> Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45336}

TBR=marja@chromium.org,vogelheim@chromium.org,jochen@chromium.org,wiktorg@google.com
BUG= v8:6093 ,  chromium:724166 

Change-Id: I022a23b8052d20d83a640c07b7864c622548bf90
Reviewed-on: https://chromium-review.googlesource.com/508888
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45404}
[modify] https://crrev.com/9397c1b73a607de3c836d9869527cf478668eb19/include/v8.h
[modify] https://crrev.com/9397c1b73a607de3c836d9869527cf478668eb19/src/parsing/scanner-character-streams.cc
[modify] https://crrev.com/9397c1b73a607de3c836d9869527cf478668eb19/test/cctest/parsing/test-scanner-streams.cc

Comment 10 by adamk@chromium.org, May 18 2017

Status: Fixed (was: Started)
adamk@, thank you for quickly reverting the suspect.
Status: Available (was: Fixed)
Chrome Canary 60.0.3104.0 Revision	a64d3f2e11c37e5c017c4ae5cceb10b8144eaf0f-refs/heads/master@{#473014} remains broken today. 

Does something special need to happen here to get a new V8 over with this revert?
#12: A bit more patience, please.

- The fix is in V8 tip-of-tree.
- It's in V8 6.0.262.
- Current Chrome canary 60.0.3103.1 still uses V8 6.0.261.0, so no fix yet.
- Chromium pulled V8 6.0.262 in [1], so anything afterwards should have the fix.

The version you reference is 2 hours older (Friday, 01:25); while the V8 version that rolled the fix into Chromium is from Friday, 03:10.


[1]  https://chromium.googlesource.com/chromium/src/+/c6f657f00388ac1f8bb097b00e6674355b420868


Status: Fixed (was: Available)
Re #13: Thanks for the summary. 

As this is marked as a ReleaseBlock issue, I think it's supposed to remain in a pre-Fixed state until Chrome itself is actually fixed. The V8 roll that brought over the revert (473054) should be the one that set this issue to fixed. Does that make sense?

That roll should be in 60.0.3105.0 as it missed the 3104 cutoff by 40 revisions.

Sign in to add a comment